Hallo Community und frohes Fest! Zu Weihnachnachten hab ich endlich ein bisschen Zeit, und schon kommen die ersten Frhen auf. Ich will über Processing mein Arduino steuern. Über 3Grafische Tasten sollen je ein Bit High/Löw gesetzt werden und dass dritte Bit soll blinken. Nun meine Frage.. 1. in Processing habe ich die 3 Tasten in ein int Array eingelesen. Wie übertrage ich nun dieses Array über Uart an mein Arduino Board? Ein Bit kann ich schon rüberschaufeln. Aber 3 Bits? Hat jmd eine Idee? Vielen Dank schonmal im vorraus.
Bernd Hubert schrieb: > Ein Bit kann ich schon rüberschaufeln Wie schaufelst du über UART 1Bit? Bis jetzt war ich der Meinung es geht immer nur 1 Byte.
Ok dass zeigt dass ich den serial Port noch nicht beherrsche. Wenn ich die Tasten z.B. 0,1,0 in ein Array einlese und den an den serial Port Sende über SerialPort.write(myarray) dann lese ich im Terminal: [0] [1] [0] Aber wie lese ich dieses Array in mein Arduino ein? Gibt es ein Beispiel Programm der sowas zeigt ?
Bei den Arduino Beispielen gibt es unter Communikation ein SerialEvent. Das Ergebnis ist inChar. Dieses inChar kannst du dann abfragen welchen Wert es hat und entsprechend eine Aktion starten.
Und das inChar loggt den gesamten Array mit? Wenn ich auf dem Serial Port die [0] [1] [0] Sende, wie sieht der Inhalt des inChars aus?
Eigentlich habe ich gerade näher darüber nachgedacht und der richtige weg ist eigentlich dass ich nicht alle tastenwerte auf einmal sende, sondern nur eine Taste als Datensatz versende. Bsp. Taste 1 = Enable und kann die Werte 0/1 annehmen Taste 2 = Direktion und kann die Werte 0/1 annehmen. Wird also Taste 1 gedrückt, müsste ein Datensatz gesendet werden der folgendermaßen Aussieht: | Enable | , | 0 | Das liegt dann an der Uart Schnittstelle meines PCs an an dem ich Processing laufen habe. Das müsste dann ein String sein. Aber dann muss ich ja in meinem Arduino den String einlesen.. Rausfinden dass es sich um das Enable Signal handelt und das Bit von eine. String in ein Integer oder boolean Wandeln. Soweit meine Erkenntnis. Ist das Extrahieren der Daten sehr schwierig? Nach was muss ich denn suchen um ein Beispiel dazu zu finden? Eigentlich geht es mir tatsächlich darum einen Datensatz zu übertragen. Vielen Dank schonmal für eure Hilfe
Du kannst auch mehrere Tasten auf einmal senden. Du musst nur wissen wie der Datensatz aussieht. Wenn der Datensatz so aussieht für Taste 1 00000010 oder für Taste 1 und Taste 2 00000110 dann ist auch das auswerten von inChar kein Problem. if (inChar ==2) ist wahr wenn Taste 1 gedrückt ist. Wenn du also weißt was du zum Arduino schickst, ist das Auswerten kein Problem mehr.
Hallo an alle, so habe ich es vorerst einmal gelöst: https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-4/recipe-4-8 Als MOUSE TAG nehme ich das ENABLE DIR und MODE Als Int Value übergebe ich das High low bit. Somit kann ich mit einem Datensatz abfragen welches Bit wie gesetzt werden soll. Es funktioniert, aber irgendwie finde ich es immer noch nicht so elegant. Ich tüftel mal weiter.
Die Basis von Processing ist C++. Besorg dir ein C++-Buch und lerne das Kapitel über Arrays. C++ kann man auch auf dem PC lernen, da gibt es auch Debugger mit SingleStep um zu sehen, was da wirklich passiert.
Bernd Hubert schrieb: > Es funktioniert, aber irgendwie finde ich es immer noch nicht so > elegant. "Eleganz" ist Ansichtssache. Tatsache ist aber, dass du an der seriellen Schnittstelle zur Übertragung erst mal nur einzelne Bytes hast. Alles darauf weiter aufbauende, wie zum Beispiel die Übertragung von Bytesequenzen ist dein Bier als Programmierer. Um mehrere Werte zu übertragen (wie sie zb bei dir in Form eines Arrays vorliegen) musst du ein System finden, wie du * alles auf die Übertragung von einzelnen Bytes zurück führst * der Empfänger erkennen kann, welches Byte er gerade empfängt und welche Bedeutung er ihm daher zuerkennen muss. Und ja. Speziell der letzte Punkt bedeutet im Normalfall, dass es zusätzlich zu den reinen Nutzdaten in einer Übertragung auch Steuerdaten geben muss, die den Empfänger bei der Interpretation und Zuordnung der Nutzdaten leiten.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.