mbot-xbee-tutorial-by-generation-robots

Fernsteuerung des Lernroboters mBot mithilfe eines XBee-Moduls

This entry was posted in Bildung & Robotik on by Anja Lutze.

Dieses Tutorial ist ein Anwendungsbeispiel für ein serielles Protokoll zur Steuerung des Lernroboters mBot. So können Sie sich in den Code einarbeiten, um ihn besser bei Ihren Projekten einzusetzen (oder beispielsweise bei den Prüfungen des Robocup Jr).

mbot-robocup-jr-maze
Der mBot-Roboter wird bei den Prüfungen des Robocup Jr. häufig eingesetzt.

Die Fernsteuerung eines Roboters mit einem XBee-Chip bietet zwei Hauptvorteile:

  • Im Vergleich zu einer Steuerung per WiFi oder Bluetooth ist die Installation wesentlich einfacher.
  • Mit dem XBee-Modul können Sie Informationen der verschiedenen Sensoren des mBot weiterleiten , was mit der Fernsteuerung über die Makeblock-App für mBot nicht möglich ist.

Wie funktioniert unsere Montage?

xbee-arduino-grove-systeme

Das System besteht aus zwei XBee-Modulen (eines fungiert als Sender, das andere als Empfänger), einem mBot Lernroboter und einem Modul, das den Befehl sendet.

In diesem Tutorial besteht letzteres Modul aus einem Arduino UNO Board und einem Grove Joystick. Dieses System kann durch eine Arbotix Commander Fernbedienung, ersetzt werden, bei der ein XBee-Chip bereits integriert ist!

Was den Code betrifft, wollen wir den für die Fernbedienung Arbotix Commander existierenden Code an das System Arduino + Joystick anpassen.

Der hier verwendete Datenblock besteht aus 8 Bit:

Index (n° octet) BESCHREIBUNG BEISPIEL
0 neues Block (0xff) 1111 1111 (dez: -1)
1 Joystick rechts V 0100 0000 (dez: 64)
2 Joystick rechts H 0000 0000 (dez: 0)
3 Joystick links V 0000 0000 (dez: 0)
4 Joystick links H 0000 0000 (dez: 0)/td>
5 Status der Schaltflächen 0000 0000 (dez: 0)
6 Extra 0000 0000 (dez: 0)
7 Sciherheit 0000 0000 (dez: 0)

Hier haben wir an das zweite Byte (Index 1) den Dezimalwert 64 gesandt, was dem binären Wert 0100 0000 entspricht.

In unserem System Arduino-Board + Joystick verwenden wir nur einen Joystick, die einzigen wichtigen Daten sind daher das Byte 0 (neuer Block), 1 (rechter Joystick V – Vertikal), 2 (rechter Joystick H – Horizontal) und 7 (Sicherheit).

Um die Werte der Joysticks in Motorsteuerbefehle zu übersetzen, brauchen Sie die folgenden mathematischen Formeln:

Geschwindigkeit des rechten Motors = rechter Joystick V – rechter Joystick H
Geschwindigkeit des linken Motors = rechter Joystick V + rechter Joystick H

Das ergibt also unter Einsatz des zuvor versandten Blocks:

Geschwindigkeit des rechten Motors = 64 – 0 = 64
Geschwindigkeit des linken Motors = 64 + 0 = 64

Demzufolge bewegt sich der Roboter geradeaus.

Software, Libraries, Firmware, die Sie für dieses Tutorial benötigen

Konfiguration der XBee-Chips

xbee-explorer-usb-sparkfun

Jeder XBee-Chip muss mithilfe der XCTU Software konfiguriert werden. Wiederholen Sie die nachstehenden Konfigurationsschritte für jeden XBee-Chip.
1. Den XBee-Chip über die XBee Explorer USB-Schnittstelle an den Computer anschließen.
2. Mithilfe der Software XCTU eine Verbindung zum XBee-Chip aufbauen. Das folgende Video erklärt Ihnen das auf anschauliche Weise.

3. Anschließend die Einstellungen jedes der verwendeten XBee-Chips anpassen (verwenden Sie dazu die nachstehende Tabelle):

  • Den XBee links (1) auswählen und die Registerkarte Konfiguration (2) öffnen
  • Wechseln Sie die ID des XBee (jeder Chip braucht eine eigene ID) und die Zieladresse (3)
  • Vérifiez son channel ainsi que le baud rate (identiques entre tous les XBee qui doivent communiquer entre eux) (3)
  • Klicken Sie auf “Write”, um die Eingaben zu sichern (4)
xbee-chiffres
XBee angeschlossen an Channel Destination address Source address Interface data rate
mBot C 2 1 38400
USB PC C 1 2 38400

Anschlüsse am mBot-Roboter

xbee-10

In der nachstehenden Tabelle finden Sie eine Zusammenfassung der verschiedenen Anschlüsse zwischen dem Mikrocontroller des mBot-Roboters und der XBee Explorer USB-Schnittstelle.

XBee mBot
5V 5V
GND GND
RX 10
TX 9

Die Schnittstelle 2 des mBot-Roboters wird vom XBee-Chip verwendet, hier darf nichts angeschlossen werden!

Erforderliche Anschlüsse am Arduino-Board

xbeet-arduino-mbot-connexion
xbee-arduino-mbot-connexion-2

In der nachstehenden Tabelle finden Sie eine Zusammenfassung der verschiedenen Anschlüsse zwischen dem Arduino-Board, dem XBee-Chip und dem Grove Joystick.

XBee Joystick Arduino
Vcc 3v3
GND GND GND
RX 9
TX 10
Y A1
X A0
Key (unused)

Installation der Firmware des Arduino-Boards

  1. Schließen Sie Ihr Arduino über ein USB-Kabel an den PC an.
  2. Öffnen Sie die Datei Arduino_code.ino (Download-Link unter „Voraussetzungen“).
  3. Ändern Sie den Kartentyp und die serielle Schnittstelle entsprechend Ihrer Konfiguration.
  4. Download auf das Board (Ctrl + U).

Installation der Firmware des mBot-Roboters

  1. Schließen Sie den mBot über ein USB B-Kabel an den PC an.
  2. Öffnen Sie das Arduino IDE und installieren Sie die Makeblock-Library (Hilfe).
  3. Öffnen Sie die Datei Mbot_code.ino (Download-Link unter „Voraussetzungen“).
  4. Ebenfalls im Arduino IDE den Kartentyp ändern: Wählen Sie tool -> board -> arduino uno.
  5. Download auf das Board (Ctrl + U).

Nach der korrekten Installation der Firmware den Roboter neu starten. Das war’s!