Software-Editor für Hardware mit Arduino als Mikrocontroller?

Es ist zunächst mal nur eine Idee und würde gerne wissen, ob das grundsätzlich gehen würde.

Szenario:
Ich habe einen Arduino-Klon (Teensy3.2) in einen MIDI-Hardware-Controller verbaut.
Dieser ist per USB an meinen PC angeschlossen.
Auf dem PC ist ein Software-MIDI-Instrument installiert.
Ich verändere mit dem MIDI-Hardware-Controller bestimmte Werte in dem Software-MIDI-Instrument.
Prinzip: Ich drehe ein Poti und dieser sendet dann
usbMIDI.send(type, data1, data2, channel)
(Dies ist kein Arduino Befehl, geht nur mit dem Teensy, ist aber für die Frage unerheblich!)

Soweit, so gut. Und das funktioniert perfekt!

Jetzt möchte ich aber das Ganze verfeinern.
Es geht um den letzten Wert im Befehl, dem „channel“.
Diesen Wert habe ich im Sketch auf dem Teensy natürlich festgelegt, genauso wie „type“, nur „data1“ und „data2“ werden durch das Drehen des Potis verändert.

Mein Wunsch wäre es, auf dem PC eine Art Software-Editor zu öffnen, welche auf den Teensy zugreift, und mit dem ich diesen Wert dauerhaft, also bis zum nächsten Zugriff, verändere…

Meine Frage an euch ist:
Ist das überhaupt möglich?
…und natürlich:
Wenn ja, wie?

Im Voraus schonmal besten Dank für eure Bemühungen.

BG aus Kopenhagen

Nennt sich: Arduino IDE
Sketch einladen, ändern, uploaden, fertig
Oder wie oft willst Du die Werte verändern? Stündlich, täglich, wöchentlich?

@noiasca
schickst halt über die Serielle Schnittstelle derartige Steueranweisungen. Was bereitet dir dabei ein Problem?

Zum Beispiel, dass ich noch nie irgendwie einen Software Editor selber programmiert habe und keine Ahnung habe, wie ich das überhaupt anstellen soll...

Dann solltest du ein paar Übungen/Tutorials zur Seriellen Schnittstelle ansehen und zunächst mal versuchen, ein Led über die Serielle Schnittstelle ein und auszuschalten.

im einfachsten Fall das Beispiel 04. Communication / Dimmer aus der IDE

Wenn du das Schalten der LED schaffst, kannst du auch unterschiedliche Funktionen in deinem Programm aktivieren.

@moko

Die IDE ist aber kein Editor!
Ich möchte auf meinem PC ein Fenster aufmachen, und dann nur diesen Wert verändern.
Das muss dann automatisch auch im Sketch gespeichert werden.

Wie oft ich den Wert verändern will, kommt ja auf die Umstände an, manchmal kann das tagelang bleiben, manchmal muss es mehrmals in kurzer Zeit verändert werden.
Ich will dazu nicht immer in den Sketch selber, da ich während der Arbeit an dem Controller nicht darin rumstochern möchte und dann was versemmele...

@noiasca

Ich möchte nicht über die IDE die Werte verändern, sondern über einen eigenen Editor.

Weiss halt nicht, ob es sowas als Freeware oder vielleicht auch käuflich zu erwerben gibt, so eine Art DIY Editor.
Über diesen Editor möchte ich dann ganz bestimmte Werte im Sketch verändern.
Das soll dann automatisch gespeichert werden im Sketch.

Und im Editor dann sowas wie Presets anlegen...

(deleted)

@Peter-CAD-HST

CoolTerm?

Das hört sich cool an…
Ja, ich denke, dass du mein Problem erkannt hast.
Jetzt werde ich mir mal dieses Terminalprogramm ansehen…

Besten Dank!

Peter-CAD-HST:
Moin,

dafür nehme ich das CoolTerm Terminalprogramm und auf den Arduino läuft ein dementsprechender Command Line Interpreter.

Gruss Peter
und gesund bleiben

p.s dass funktioniert auch ganz extrem geschmeidig mit einer BT Schnittstelle, wenn man gerade keinen PC zur Hand hat. :slight_smile:

Sodele, habe mir CoolTerm mal angeschaut.
Und weisst du was?
Das ist GENAU das, was ich gesucht habe...

Also allerbesten Dank, ich freue mir hier gerade einen Ast!

...und das mit der BT Schnittstelle ist ja ein Traum!

Gruss Achim, und bleib auch du GEsund!

Du hattest geschrieben

Über diesen Editor möchte ich dann ganz bestimmte Werte im Sketch verändern.
Das soll dann automatisch gespeichert werden im Sketch.

Also der Sketch die Textdatei mit Dateiendung .INO und die ganzen Befehle

setup()
loop()

usw. sind nur auf dem PC gespeichert. Wenn du "hochladen" anklickst, dann wird der für Menschen lesbare Text "setup()" usw in maschinenlesbare Zahlencodes übersetzt. Und diese Zahlencodes werden dann auf dem Arduino gespeichert.

Mal ein Beispiel:
in deinem Sketch (=der *.INO-Textdatei steht

MyVar = 1000;

Was jetzt mit dem Terminalprogramm nicht geht ist auf dem Arduino den Quellcode abzuändern in

MyVar = 3456;

Was geht ist über die serielle Schnittstelle einen Wert einlesen und diesen Wert dann der entsprechenden Variable zuweisen

MyVar = MySerialInputValue()

Der Zahlenwert der durch MySerialInputValue() eingegeben wurde geht aber beim Neustart des Arduino verloren.
Wenn dieser Wert gespeichert bleiben soll dann muss er irgendwo auch wirklich gespeichert werden. Dazu könnte man einen EEPROM oder auch eine SD-Karte verwenden.

Oder du hast eben vorbereitete Text-Dateien deren Werte dann per Mausklick an den Arduino übertragen werden.
Mit Terminalprogrammen geht das. Wenn es noch komfortabler werden soll könnte man in irgendeiner PC-Programmiersprache
Python, Java, Delphi usw. ein entsprechendes Progrämmchen schreiben. Die Programmiersprache muss halt auf einfache Weise
die serielle Schnittstelle ansprechen können. Das muss man als erstes testen ob das gut geht oder ob man da Klimmzüge für machen muss.

viele Grüße Stefan

Mein Wunsch wäre es, auf dem PC eine Art Software-Editor zu öffnen, welche auf den Teensy zugreift, und mit dem ich diesen Wert dauerhaft, also bis zum nächsten Zugriff, verändere…

Ein Terminal (VT100 Emulation) verwenden, z.B. puTTY
Und mit mcurses ein Menue aufbauen.

@StefanL38

Danke, da waren sehr wertvolle Tipps bei, die ich sehr gut gebrauchen kann...

Das mit dem Abspeichern im Quellcode, da weiss ich noch nicht, ob ich evtl ohne leben kann.
Scheint ja sehr kompliziert zu werden, wenn das noch dazu käme...

Ich werde jetzt erstmal viel mit Testen zu tun haben...

Besten Dank für deine sehr Ausführliche Antqwort, hast mir sehr geholfen...

combie:
Ein Terminal (VT100 Emulation) verwenden, z.B. puTTY
Und mit mcurses ein Menue aufbauen.

Der (oder das) mcurses sieht sehr interessant aus, nicht nur für diesen Zweck!

puTTY sieht kompliziert aus, aber mal schauen...

Jedenfalls besten Dank für die Infos, kann ich alles gut gebrauchen...