Montag, 24. August 2015

Racing Car über Bluetooth steuern

Nachdem ich bereits in einem vorherigen Post erklärt habe, wie man mittels einem Arduino ein RC Auto in einen Roboter verwandeln kann, möchte ich heute darauf eingehen, wie man eine Bluetoothfernsteuerung für den Roboter bauen kann. Dadurch kann man nicht nur das ferngesteuertes Auto  bequem über einen Touchscreen steuern, sondern in einer weiteren Ausbaustufe auch Informationen über das Internet nachladen, beispielsweise Karten, um dem Roboter Wegpunkte zu setzen, welche es dann über GPS nacheinander anfährt.

Die Hardware

Zunächst einmal benötigt man, um die beiden Motoren des Autos zu steuern eine H-Bridge, etwa den L293D Chip. Ich verwende zwei, wodurch ich verhindern möchte, dass sie wegen zu viel Stromfluss durchbrennen.
Die Pinbelegung für die H-Bridge(L293D) und die korrekte Verwendung findet ihr hier.

Außerdem benötigt man ein Bluetoothmodul. Ich verwende das HC 05 Bluetoothmodul. Der Vorteil des 05 gegenüber dem 06 Bluetoothmodul ist, dass es auch als Master verwendet werden kann, also von sich aus eine Bluetoothverbindung mit einem anderen Gerät herstellen kann. Wer das nicht benötigt kann sich auch die ca. 3 € sparen und das ansonsten gleiche HC06 Bluetoothmodul nehmen.
Das Bluetoothmodul wird mit GND an den Ground und mit VCC an die 5V des Arduino angeschlossen. RXD und TXD werden mit TX und RX, oder über SoftwareSerial mit zwei beliebigen Pins des Arduino verbunden.

Die Software

Zunächst einmal das Grundprinzip:
Jede Anweisung zur Steuerung des Autos besteht aus einer zweistelligen Zahl. Die erste Ziffer gibt die Richtung für den ersten Motor an, also vorwärts, stehen bleiben oder rückwärts, und die zweite Ziffer die Richtung für den zweiten Motor, also links, mittig oder rechts. Die Zahl 0 steht dabei für die erste Möglichkeit, 1 für die Zweite, und 2 für die Dritte. Für den jeweils anderen Motor wird 3 gesendet, also keine Veränderung.

Ein Arduino Sketch der die Motoren nach diesem Prinzip steuert sähe so aus:

Sollten bei euch nachher die Richtungen vertauscht sein, also statt links, rechts oder nach vorne statt nach hinten, ist es am einfachsten die Kabel zur Richtungssteuerung am L293D zu tauschen.

Um das Auto zu steuern habe ich mit Processing eine Oberfläche aus Rechtecken, und als Beschriftung Pfeile erstellt. Sobald die Maus dann über einem der Flächen gedrückt wurde, wird die entsprechende Zahl über die serielle Bluetoothverbindung an den Arduino gesendet. Hier findet ihr ein Tutorial, wie man Bluetooth in Processing verwendet.

Meine Programmoberfläche:
Und so sieht mein Processingsketch aus:

Keine Kommentare:

Kommentar veröffentlichen