IOIO-Board UART, Funkverbindung

Zum Fernsteuern von meinem Quadrocopter möchte ich ein Funkmodul und die UART-Schnittstelle des IOIO-Boards nutzen. Im Wiki auf Github ist das auch sehr einfach beschrieben, trotzdem hatte ich Probleme.

Für das Senden und Empfangen von Daten über die Serielleschnittstelle des IOIO-Boards wird zuerst ein UART-Objekt erzeugt. Anschließend kann (wie in Java recht häufig) auf einen InputStream und OutputStream darauf zugegriffen werden.

UART uart = ioio.openUart(rxPin, txPin, baud, parity, stopBits);
InputStream in = uart.getInputStream();
OutputStream out = uart.getOutputStream();

// empfangen
int data = in.read();

// senden
int answer = 42;
out.write(answer);

Weitere Infos dazu und allgemein zu UART gibt es hier.

Was hab ich gemacht bzw. warum hatte ich Probleme? Ich habe das Funkmodul an das IOIO-Board angeschlossen, die App gestartet und versucht Nachrichten zu empfangen und zu senden. Manchmal klappt es und manchmal nicht. In so einem Fall ist es eigentlich naheliegend, dass es ein Problem mit der Funkverbindung geben könnte. Es hat mich aber erstaunlich viel Zeit gekostet, bis ich auf diese Idee gekommen bin. 😉

Nachdem ich das Funkmodul gegen einen ganz normalen USB-UART Adapter getauscht habe funktionierte alles problemlos. Das ist natürlich für den Quadrocopter keine Option, da auf diese Weise ein etwa 30 cm langes Kabel zwischen meinem Notebook und dem IOIO-Board verläuft. Aber erstmal (zum programmieren) wird es reichen.

Das Funkproblem muss dann später gelöst werden.

Schreibe einen Kommentar