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.
@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.
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...
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.
Ü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.
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.
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...