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).
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?
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
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 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
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
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
- Schließen Sie Ihr Arduino über ein USB-Kabel an den PC an.
- Öffnen Sie die Datei Arduino_code.ino (Download-Link unter „Voraussetzungen“).
- Ändern Sie den Kartentyp und die serielle Schnittstelle entsprechend Ihrer Konfiguration.
- Download auf das Board (Ctrl + U).
Installation der Firmware des mBot-Roboters
- Schließen Sie den mBot über ein USB B-Kabel an den PC an.
- Öffnen Sie das Arduino IDE und installieren Sie die Makeblock-Library (Hilfe).
- Öffnen Sie die Datei Mbot_code.ino (Download-Link unter „Voraussetzungen“).
- Ebenfalls im Arduino IDE den Kartentyp ändern: Wählen Sie tool -> board -> arduino uno.
- Download auf das Board (Ctrl + U).
Nach der korrekten Installation der Firmware den Roboter neu starten. Das war’s!