Arduino per PC mit Variablen füllen

Moin zusammen,

ich hab schon ein paar Erfahrungen mit div. Arduino-kompatiblen Boards sammeln können, stehe aber aktuell vor einer - für mich - größeren Herausforderung.

Ich habe mir ein USB-Eingabegerät für meinen PC gebaut (Tastatureingaben mit Arduino simulieren - janbpunkt.de), bei welchem über versch. Taster versch. Tastenkombinationen am PC ausgeführt werden.

Funktioniert super, allerdings sind die Tastenkombinationen alle fest im Sketch definiert.

Ich möchte nun eine Anwendung für den PC schreiben, um diese Kombinationen per GUI wechseln zu können.

Problem:
wie kommuniziere ich am besten mit dem Arduino und wo schreibe ich die Werte hin?

Meine bisherige Recherche hat mich immer wieder zur EPROM-Library geführt. Wäre das der richtige Ansatz?

Wenn ja, wie könnte eurer Meinung nach die Kommunikation vom PC zum Arduino (per USB) gestaltet werden?
Ich hab da keine richtige Idee.

Danke vielmals :slight_smile:

Grüße,
Jan

Mit dem EEprom (nicht EProm) liegst du quasi schon richtig.

Dazu musst du allerdings deinen Sketch umschreiben.

Im ersten Step gibt's du die neuen Daten per serieller Schnittstelle in den Arduino und dieser schiebt die Daten in das EEprom.

Aus dem EEprom werden dann zukünftig deine aktuellen Parameter gelesen.

Gut, das Umschreiben der Sketch ist das kleinste Problem.

Ich muss erstmal gucken, wie ich die Daten rein bekomme.

Prinzipiell würde ich denken, dass ich die Serielle Schnittstelle öffne und auf Daten warte. Der Rest käme dann vom Programm auf dem PC.

Na, da hab ich mir ja was vorgenommen :smiley:

Danke soweit.

Weitere Kommentare sind gern gesehen :slight_smile:

janbpunkt:
.....
Ich muss erstmal gucken, wie ich die Daten rein bekomme.

Prinzipiell würde ich denken, dass ich die Serielle Schnittstelle öffne und auf Daten warte. Der Rest käme dann vom Programm auf dem PC.
.....

Ja, das ist korrekt.
Du kannst es zum Testen auch mit dem seriellen Monitor machen.
Wenn es dann läuft, dein PC-Programm schreiben.

HotSystems:
Du kannst es zum Testen auch mit dem seriellen Monitor machen.

Gut, dass Du das erwähnst!
Bisher hab ich den immer nur als Fenster zur Ausgabe von Werten verwendet und vergesse ständig, dass es ja auch andersherum funktioniert :slight_smile:

Ha, tolle Community. Bin schwer begeistert.
Danke nochmals :slight_smile:

janbpunkt:
Gut, dass Du das erwähnst!
Bisher hab ich den immer nur als Fenster zur Ausgabe von Werten verwendet und vergesse ständig, dass es ja auch andersherum funktioniert :slight_smile:

Ha, tolle Community. Bin schwer begeistert.
Danke nochmals :slight_smile:

Gerne doch und viel Erfolg.

Würde mich freuen, wenn du dein Projekt später vorstellst.

Arduino verwendet bei den ATMega32U4 eine CDC Implementierung...

Im Grunde erlaubt CDC einen (langsamen) Datenkanal in beide Richtungen.
Zusätzlich zur HID Implementierung

In wie weit die Arduino Lib dafür vorbereitet ist, kann ich nicht sagen.

Grundsätzliche Information findest du in den verschiedenen PDFs auf dieser Seite.

Serial, neben HID, gleichzeitig, geht leider nicht.
Das kann nur per umschalten erledigt werden.

combie:
Arduino verwendet bei den ATMega32U4 eine CDC Implementierung...

Im Grunde erlaubt CDC einen (langsamen) Datenkanal in beide Richtungen.
Zusätzlich zur HID Implementierung

In wie weit die Arduino Lib dafür vorbereitet ist, kann ich nicht sagen.

Grundsätzliche Information findest du in den verschiedenen PDFs auf dieser Seite.

Serial, neben HID, gleichzeitig, geht leider nicht.
Das kann nur per umschalten erledigt werden.

Uff.
Danke für den Hinweis und den Link.

Das wird ja doch spaßiger, als gedacht.

Fällt euch ein Workaround ein?

Fällt euch ein Workaround ein?

Der Schalter an deinem Arduino!

janbpunkt:
Funktioniert super, allerdings sind die Tastenkombinationen alle fest im Sketch definiert.

Ich möchte nun eine Anwendung für den PC schreiben, um diese Kombinationen per GUI wechseln zu können.

Problem:
wie kommuniziere ich am besten mit dem Arduino und wo schreibe ich die Werte hin?

Ich würde das ganz anders machen.
Per Arduino würde ich einzelne Zeichen an den Rechner schicken.
Dann eine Anwendung für den PC schreiben, der die serielle Schnittstelle überwacht, und je nach Zeichen von der seriellen Schnittstelle einen Tastaturcode an deine Anwedung sendet.
Wenn man sich eine Ini-Datei erstellt, kann man auch schnell die Tastencodes wechseln.
Und der Code auf dem Arduino muss nicht geändert werden.

Moko:
Ich würde das ganz anders machen.
Per Arduino würde ich einzelne Zeichen an den Rechner schicken.
Dann eine Anwendung für den PC schreiben, der die serielle Schnittstelle überwacht, und je nach Zeichen von der seriellen Schnittstelle einen Tastaturcode an deine Anwedung sendet.
Wenn man sich eine Ini-Datei erstellt, kann man auch schnell die Tastencodes wechseln.
Und der Code auf dem Arduino muss nicht geändert werden.

Oh!
Die Idee ist gut.
Das liesse sich sogar mit Python relativ simpel umsetzen.

Werd ich mal im Hinterkopf behalten.
Vielen Dank :slight_smile:

combie:
Der Schalter an deinem Arduino!

Meinst Du nun einen Schalter, den ich anbauen könnte oder einer, der schon vorhanden ist? Sorry, steh grad auf dem Schlauch.

janbpunkt:
Meinst Du nun einen Schalter, den ich anbauen könnte oder einer, der schon vorhanden ist? Sorry, steh grad auf dem Schlauch.

Das ist mir ganz egal.....
Ob ein zusätzlicher Taster/Schalter, ein schon vorhandener, oder eine reine Software Lösung.

  • Es ist nur so, dass du ein HID Geräte gebaut hast.
  • Und dass dir die CDC Doku scheinbar zu kompliziert ist.
  • Aber Serial sympatisch erscheint....

(habe ich die drei Punkte gut/richtig erfasst?)

Nur geht HID und Serial nicht gleichzeitig.
Darum muss umgeschaltet werden.
Das "Wie", überlasse ich ganz dir.