UART Kommunikation zwischen Processing und Arduino

Hallo Community,

ich bin gerade dabei einen NEMA17 Motor anzusteuern. Mein Ziel ist es, über Processing 3 graphische Tasten (wie in dem arduino_output Example) einzulesen und dadurch mit meinem Arduino Programm, dass ich auf meinem ATMEGA644 geladen habe zu kommunizieren.

Der konkrete Aufbau sieht so aus:

ATMEGA644 mit Arduino Bootloader.
Daran hängt ein Pololu Motortreiber und daran der NEMA17.

Im Arduino Programm gibt es folgende Variablen:

EN = Enable = Motortreiber an/aus
STEP = Toggelndes Bit
DIR = Richtung Links/rechts
MODE = Zahl 0-4 = Schrittweite des Motors. FULLSTEP, HALFSTEP, ...

So nun zu meinem Knoten im Kopf.
Wir nehmen an, dass der Mode fest in der Arduino SW einprogrammiert ist, D.h. voresrt sind nur zwei Variablen über UART zu übertragen.

Wie kann ich denn den EN Wert und den DIR wert in ein Array lesen und dann über UART an mein Arduino Board senden. Ist eigentlich ganz simpel, aber ich häng gerade dermaßen.

Weg 1: FIRMATA
Ich habe es geschafft mittels FIRMATA DIREKT den Port HIGH/LOW zu setzen. Aber dann fehlt mir die Idee, wie ich denn dass Step signal (STEP = HIGH -> DELAY -> Step = LOW) realisieren kann.

Mach ich dass in Processing und sende das Toggelnde Bit permanent über UART an das Arduino Board, ruckelt der Motor ganz stark.

Eigentlich müsste es doch irgendwie gehen, mit FIRMATA die Ports direkt über Processing anzusteuern und ZUSÄTZLICH in der FIRMATA SW dieses Toggelnde STEP Signal zu realisieren. Sodass ich nur über Processing das ENABLE und das DIR Signal direkt beinflussen muss.

Aber laut FIRMATA Website, lädt man FIRMATA auf sein Arduino und dann macht man alles nur über Processing. Aber dann hat man doch immer Delays zwecks UART?! Irgendwie versteh ich den Anwendungsfall von FIRMATA nicht, wenn ich AUSSER ein Bit High/Low zu setzen auch noch z.B. permanent etwas Toggeln lassen will. Geht dass überhaupt mit FIRMATA?

So dass war die FIRMATA Variante an der ich gescheitert bin.

Weg 2: Serial selbst initialisieren

Dann gibt es ja noch die Standard Variante, dass alles ohne FIRMATA zu lösen, indem ich den Serial Port selbst Initialisiere.

Mein Problem ist allerdings.

Die Tasten kann ich in Processing einlesen, diese setzte ich dann in ein INT Array, dann sende ich diese über port.write() an den UART, ABER:

Wie lese ich das ARRAY in Arduino ein?

Im Endeffekt sieht das Array so aus:

ENABLE-SIGNAL und DIR-Signal
[0/1, 0/1]

Und diese zwei Bits muss ich doch irgendwie einlesen können?

Im Internet finde ich immer nur die Übertragung einzelner Bits/ Strings aber nie von einem Array.

Hat mir jemand ein Simples BSP, wie ich in Processing ein Array schicke und in Arduino dieses auslese?

Ich komm gerade einfach nicht weiter.

Vielen Dank
Rodriguez

Entweder hies in ENGLISH schreiben, oder diese post löschen und im Deutsch forum fragen. Aber nicht beides.

English: Either ask here in english, or delete this post and use the german board. But not both.

Topic moved.