Bluetooth_bitbloq_2

Möchtest du via Bluetooth mit deiner Steuerplatine kommunizieren? Dafür benötigst du ein Bluetooth-Modul, das mit Arduino kompatibel ist oder eine Platine wie die ZUM BT-328, in der es integriert ist. Eine Kommunikation findet immer zwischen zwei Teilnehmern statt, zwischen zwei Makern, zwei Robotern, zwei Salatköpfen….Huch! Naja, die Salatköpfe können wohl etwas schlechter miteinander kommunizieren… Was ich eigentlich sagen wollte ist, dass wir für eine kabellose Kommunikation über Bluetooth zwei Programme benötigen: eines, das im Computer oder im Handy/Tablet ausgeführt wird und ein anderes, das in der von dir verwendeten Steuerplatine ausgeführt wird.

Bluetooth_bitbloq_2

In diesem Beitrag erklären wir dir, wie diese Kommunikation mit einem Computer der Bluetooth-fähig ist durchgeführt werden kann. Wir benötigen dafür:

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

Öffne bitbloq und lade die Arduino-IDE herunter. Los geht´s!

ÜBER DIE BLUETOOTH VERBINDUNG SCHREIBEN


Serial_bitbloq__BT__1

In diesem ersten Beispiel wollen wir den folgenden Satz über Bluetooth senden „Bluetooth war ein Wikinger“. Dabei sollen zwischen jedem Versand zwei Sekunden liegen.

Teil 1: SENDER – Programmierung in bitbloq

Im Wesentlichen verwenden wir diesen bitbloq-Block aus dem Reiter Kommunikation, um die Parameter der seriellen Bluetooth-Schnittstelle zu initialisieren. Wenn du eine ZUM BT 328 Platine verwendest musst du eine Geschwindigkeit von 19200 Baud einsetzen.

blu__1

Wenn du hingegen das Bluetooth-Modul aus dem Bausatz „Mi Primer Kit de Robótica“ verwendest, ein HC-05, musst du 38400 Baud eingeben und es auf die folgende Art und Weise anschließen:

bluetooth_bitbloq_2 conexion_ModuloBluetooth

ACHTUNG! In dem Augenblick, in dem du die Anweisung gibst, dass das Programm in die Steuerplatine geladen werden soll, darf das orangefarbige Kabel nicht mit dem Pin 0 verbunden sein. Wenn du hingegen das Programm durchführen willst, verbinde das Kabel erneut wie auf der Abbildung zu sehen ist.

Die bitbloq-Blöcke aus diesem Programmierbeispiel sind sehr einfach:

bloques_bluetooth_enviar

Wie du gesehen hast benötigen wir nur den Block Bluetooth: Senden. Dort hängen wir den Textblock mit unserem Satz an. Lade dieses Programm in die Platine.

Teil 2: EMPFÄNGER – Wir verwenden den seriellen Monitor der Arduino-IDE

Beginnen wir mit dem zweiten Teil, und zwar den Computer so einzustellen, dass er als Empfänger fungieren kann.

Wenn du die Platine ZUM BT-328 verwendest denk daran, dass du den Knopf auf AN stellen und die Schalter in der folgenden Position bewegen musst:

  conmutadores_Bluetooth_1_23
  • Conmutador 1: ON
  • Conmutador 2: OFF
  • Conmutador 3: OFF

Lade die Platine mit dem Batteriefach, dem Adapter oder einem USB-Kabel.

>> Bluetooth Konfiguration in Windows 7:

Öffne die Start-Leiste und suche dort den Bluetooth-Konfigurationsassistenten, der dich durch den Verbindungsaufbau führen wird.

cap__0

Der Konfigurationsassistent kann zwar auf manchen Computern etwas anders aussehen, aber dies sind die Schritte die befolgt werden müssen:

cap_win7_bluetooth

Wenn die Konfiguration abgeschlossen ist und wir auf Verbinden klicken, werden wir aufgefordert eine PIN-Nummer einzugeben. Diese ist standardmäßig auf 1234 eingestellt.

cap__4_PIIIN >> Bluetooth Konfiguration in Linux (Ubuntu):

  1. Öffne ein Terminal (Alt + F2) und gib gnome-terminal ein
  2. Gib das folgende Kommando ein, um nach der Einrichtung neuer Bluetooth-Geräte zu suchen:

    $ sudo hcitool scan Scanning … 98:D3:31:B2:DB:09 bqZUM_BT328

  3. Schreibe das folgende Kommando unter Verwendung der Adresse, die wir im vorigen Schritt erhalten haben, um dein Gerät mit dem Anschluss ´/dev/rfcomm0´ zu verbinden:

    $ sudo rfcomm bind /dev/rfcomm0 98:D3:31:B2:DB:09

>> Bluetooth Konfiguration in MacOX:

  1. Wähle in den Systemeinstellungen Bluetooth aus.
    Captura de pantalla 2015-01-28 13.22.51 Captura de pantalla 2015-01-28 13.23.19
  2. Suche deine Platine und klicke auf Verknüpfen. Wenn die Verbindung nicht hergestellt werden kann und ein Fehler erscheint, musst du dein Bluetooth-Gerät mit dem Computer „angleichen“. Hierfür klickst du auf Optionen und gibst den Code „1234“ ein und klickst erneut auf Verknüpfen.
    Captura de pantalla 2015-01-28 13.23.45

Und schon sind wir verbunden! Jetzt kennen wir auch den Anschluss, der je nach Betriebssystem beispielsweise so aussehen kann: ‘COM46′, ‘/dev/rfcomm0′, ‘/dev/tty.bqZUM_BT320-SPPDev’…

Öffne die Arduino-IDE und wähle in der Symbolleiste die Platine [ArduinoUNO oder Arduino BT w/ATmega328] und den Port [z.B.: COM46]

cap__6_arduino_puerto_placa

Jetzt können wir den Seriellen Monitor über die Symbolleiste/Serieller Monitor auswählen oder auf dieses Symbol klicken:

cap__7_arduino_abre_SerialMonitor

Denk daran, je nach Platine eine Geschwindigkeit von 19200 oder 38400 Baud auszuwählen. Du wirst sehen wie der Satz alle zwei Sekunden abgebildet wird.

cap__8_arduino_monitor_recibe_1

ÜBER DIE BLUETOOTH VERBINDUNG LESEN


Serial_bitbloq__BT__2

Über Bluetooth empfangen:

Wir führen ein Beispiel durch, um Daten über den Port den wir geöffnet haben zu empfangen. Dieser Kommunikationsblock überprüft ob Daten über Bluetooth angekommen sind:

blu__0

Wenn wir etwas über den erstellten Anschluss erhalten wird es in einer lokalen Variable die „Daten“ heißt gespeichert. Diese gleichen wir ab, um zu sehen ob es der Großbuchstabe A ist. Wenn ja schalten wir die in der Platine integrierte LED ein. Das heißt die des digitalen Pins 13 (so musst du das LED-Modul nicht anschließen). Wenn wir andere Daten erhalten schalten wir die LED aus:

bloques_bluetooth_recibir

“- Aber… du hast die Information mit einer 65 verglichen? – ” Ja liebe Robonauten, denn momentan gibt es in bitbloq keinen Block, der Variablen vom Typ 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).

Lade dieses Programm in deiner Platine und öffne den Serial Monitor erneut. Schreibe ein A als Großbuchstaben und klicke auf Senden … Siehst du wie sich die LED einschaltet? Was passiert wenn du eine andere Information sendest?

cap__9_arduino_monitor_envia_fix

Da du nun Experte in der Kommunikation mit Bluetooth und bitbloq bist verraten wir dir auch noch, dass die Android-Anwendung mit dem Namen RoboPad die folgenden Zeichen sendet wenn wir auf die Steuerknöpfe der Printbots drücken: S, U, D, R, L, C, M…(stop, up, down, right, left, claw, manual). Hier findest du die ASCII Tabelle, um die Übereinstimmung der Buchstaben und Zeichen zu überprüfen.

Ascii_A

Hast du gesehen, dass die Zahlen 0, 1, 2, 3 usw. auch als Zeichen gesendet werden und ihnen im ASCII Code eine Dezimalzahl entspricht? Was man nicht alles an einem Tag lernen kann … Bald bist du so weit und kannst die Zeichen der Matrix entziffern!