Serial_bitbloq__USB_mini

In diesem Beitrag wollen wir euch zeigen, wie man eine serielle Kommunikation mit USB zwischen eurem Computer und der Steuerplatine herstellen kann. Einfacher gesagt: wie man Informationen und Anweisungen über das USB-Kabel an die Platine sendet.

Für eine Kommunikation braucht es immer zwei, einen Sender und einen Empfänger. Wir benötigen daher zwei Dinge:

  1. Ein Programm in der Steuerplatine das Daten sendet/empfängt (dafür verwenden wir bitbloq).
  2. Ein Programm im Computer das Daten sendet/empfängt (hier verwenden wir den seriellen Monitor der Arduino-IDE)

Serial_bitbloq__USB

Öffne bitbloq und lade die Arduino-IDE herunter. Ganz gleich ob du eine ZUM-BT 328 Platine oder eine FreaduinoUNO Platine verwendest, verbinde sie über das USB-Kabel mit dem Computer und … Lass uns anfangen!

“”Hier Robonauta an Echo-Basis. Können Sie mich hören?””

Über den seriellen Port schreiben


Serial_bitbloq__USB__1

Im nächsten Beispiel senden wir, wenn der IR Sensor diese Farbe wahrnimmt, von der Steuerplatine das Wort  ‘SCHWARZ‘. Verbinde diesen Sensor mit dem digitalen Pin 3:

zum_IR3

Teil 1: SENDER – Programmierung in bitbloq

Um den Datenversand von der Platine in bitbloq zu programmieren benötigen wir lediglich den Block mit dem Namen „Über seriellen Port drucken“.

bit_serie_5

Daher ist es nicht schwierig, ein Programm zu entwerfen, in dem jede Sekunde (1000 ms) der Wert des Sensors verglichen wird. Entspricht dieser dem Wert Null, wird das Wort gesendet. Lade dieses Programm in deiner Platine:

bit_serie_3

Teil 2: EMPFÄNGER – mit Verwendung des seriellen Monitors der Arduino-IDE

Wie gesagt verwenden wir den seriellen Monitor der Arduino-IDE. Schließe bitbloq und öffne bei angeschlossener Platine das Arduino Programm.

Jetzt wählst du die Steuerplatine unter Werkzeuge/Karte aus. Wenn du die Platine ZUM BT-328 verwendest, wählst du „Arduino BT w/ATmega328“ aus. Verwendest du eine FreaduinoUNO wählst du „Arduino UNO“ aus.

ardu_seleccion_placa

Wähle in Werkzeuge/Serieller Port den Port aus, an den die Platine angeschlossen ist:

ardu_seleccion_puerto

Jetzt können wir den Seriellen Monitor in Werkzeuge/Serieller Monitor auswählen oder hier klicken:

ardu_seleccion_MonitorSerial

Es öffnet sich ein Fenster, in dem wir überprüfen müssen, dass eine Geschwindigkeit von 9600 Baud ausgewählt ist.

ardu_serie_sol_1

Wenn der IR Sensor in unserem Beispiel das Wort mehrmals wahrnimmt erscheint auf dem Monitor das Wort „SCHWARZ“ ohne Unterbrechung:

ardu_serie_sol_2

Wenn wir möchten, dass uns das Ergebnis etwas ordentlicher angezeigt wird, verwenden wir den Block „Über seriellen Port mit Zeilensprung drucken“:

bit_serie_4

Dann sieht die Ausgabe folgendermaßen aus:

ardu_serie_sol_3

DEN SERIELLEN PORT LESEN


Serial_bitbloq__USB__2

Teil 1: EMPFÄNGER – Programmierung mit bitbloq

In diesem Fall ist unsere Steuerplatine der Empfänger. Für alles was von der Platine empfangen werden soll, verwenden wir diesen bitbloq Block. Er überprüft, ob etwas beim seriellen Port angekommen ist:

bit_serie_1

Wenn dieser Fall eintrifft lesen wir die erhaltenen Daten und speichern sie in einer Variablen:

bit_serie_6

Jetzt können wir die Daten vergleichen und je nach dem Wert dieser Information handeln. Wenn wir beispielsweise ein großes A erhalten, schalten wir die in die Platine integrierte LED ein (D13). Bei allen anderen Daten schalten wir die besagte LED aus. Das Programm sieht dann folgendermaßen aus:

bit_serie_8

“- Aber … du hast die Information mit einer 65 verglichen?! –” Ja liebe Robonauten, denn momentan gibt es in bitbloq keinen Block, der Variablen der Art char vergleicht, sondern momentan können sie nur vom Typ String sein. Mach dir nichts daraus, wenn du nur Bahnhof verstehst, du musst für dieses Beispiel nur wissen, dass wir stellvertretend für die Buchstaben Zahlen verwenden.

Der Buchstabe A entspricht im Ascii Code der Dezimalzahl 65 (sieh dir die Tabelle am Ende dieses Beitrags an).

Teil 2: SENDER – wir verwenden den seriellen Monitor der Arduino-IDE

Die Platine ist bereits startklar zum Empfangen. Schließe bitbloq und öffne den Seriellen Monitor der Arduino-IDE erneut. Achte dieses Mal nicht nur darauf, dass 9600 Baud als Geschwindigkeit angegeben sind, sondern auch auf die Option „Die Zeile hat kein Ende“.

ardu_serie_sol_4

Schreibe ein A mit Großbuchstaben und drücke Versenden. Schaltet sich die integrierte LED ein? Versuch mal andere Daten zu senden, um die besagte LED D13 auszuschalten.

Hier findest du die ASCII Tabelle, damit du Buchstaben und Zahlen vergleichen kannst, die über den seriellen Port übertragen werden:

Ascii_A