Modellvarianten

Bluetooth 4.1 (BLE) Modul HM-10

Was Buggy, Flitzer & Co. sonst noch können.

Das Buch enthält zahlreiche Modellvarianten – aber bei weitem nicht alle möglichen.
Einige Modellideen von uns, die den Weg ins Buch nicht (mehr) geschafft haben, finden sich hier.
Wir hoffen auch auf viele kreative Ideen unserer Leser.

Simple IR-Fernsteuerung

In zahlreichen Arduino-Sensor-Kits findet sich die abgebildete (oder eine ähnliche) einfache Infrarot-Fernbedienung. Mit ihr können die Modelle ebenfalls ferngesteuert werden.

IR-Steuerung
Die Zuverlässigkeit der erzeugten Codes ist bei dieser simplen (dafür kostengünstigen) IR-Fernbedienung, die das NEC-Protokoll verwendet, im Vergleich zu bspw. Acer- oder Samsung-Fernbedienungen gering. Allerdings ist sie weit verbreitet; daher haben wir den Fernsteuerungs-Sketch aus Kapitel 3.3 so angepasst, dass der Buggy direkt damit gesteuert werden kann. Eine entsprechende Anpassung für den Flitzer ist einfach; sie überlassen wir als „Fingerübung“ den Lesern. Die Abbildung zeigt die Belegung der Tasten zu folgendem Sketch: Sketch Buggy mit IR-Steuerung.

Bluetooth-Fernsteuerung via App

Alle Roboter des Buchs (bis auf den Plotter…) lassen sich auch bequem via Smartphone steuern. Besonders viel Spaß macht das mit dem Buggy und dem Flitzer.

Fernsteuerungs-App
Die App „ArduinoBlue“ (gibt es für iOS und Android) kommuniziert über Bluetooth 4.x (Bluetooth Low Energy, BLE) mit dem Arduino, besitzt einen „virtuellen Joystick“ und wertet die Neigungssensoren des Smartphones aus. Außerdem können „Schaltknöpfe“ konfiguriert und Textnachrichten übermittelt werden. Für den Arduino gibt es eine passende Bibliothek. Die Reichweite der Fernsteuerung liegt bei etwa 10-12 m.

Hardware
Den Arduino statten wir mit einem BLE-Modul HM-10 aus (8-12 Euro im Elektronikhandel). Es kann beim Buggy, beim Flitzer, beim Greifer und beim Delta direkt auf die Pins D8 („State“) bis D13 („EN“) des Adafruit Motor Shield gesteckt werden.

Konfiguration
Die Einstellungen des HM-10 können so übernommen werden. Änderungen erfolgen über AT-Befehle. Mit einem kleinen Konfigurations-Sketch funktioniert das über den seriellen Monitor. Auf den Befehl „AT+HELP“ wird eine Liste aller AT-Kommandos des Moduls ausgegeben; „AT+NAMExxxxxx“ benennt das Modul um.

Testprogramm
Eine angepasste Version des mit der Bibliothek ausgelieferten Testprogramms gibt auf dem seriellen Monitor die vom ArduinoBlue übertragenen Steuerdaten aus. Vorher muss die App mit dem Modul verbunden werden (voreingestellter Name: MLT-BT05, keine PIN erforderlich).

Steuerung von Flitzer und Buggy
Mit den beiden folgenden Arduino-Sketchen werden der Buggy und der Flitzer via BLE ferngesteuert. In der ArduinoBlue-App sind für den Flitzer zuvor noch die Tasten 1 (Licht), 2 (Warnblinker) und 3 (Einparken) zu konfigurieren (siehe Abbildung): ArduinoBlue-Sketche.

Eine ausführliche Erläuterung dieser Smartphone-Fernsteuerung findet sich in der ft:pedia 3/2020, S. 93-100.

Timer für Bremslicht und Hupe

Die Hupe des Flitzers wird über die Fernsteuerung aktiviert, kann aber natürlich auch bei einer Notbremsung automatisch ausgelöst werden. Dafür benötigen wir einen Mechanismus, der die Hupe nach einer vorgegebenen Zeitspanne auch wieder deaktiviert (Danke für diese Idee an Klaus Janßen!). Ähnliches gilt für das Bremslicht: Fährt der Flitzer autonom, erfolgt die Motorverzögerung so schnell, dass ein nachfolgendes Fahrzeug das aufblitzende Bremslicht kaum wahrnimmt. Auch hier ist ein künstliches „Nachleuchten“ sinnvoll, damit das Bremslicht seine Warnfunktion erfüllen kann.

Zeitsteuerung
Die einfachste Lösung ist ein delay()-Kommando: Der Programmfluss wird für eine bestimmte Zeit (z.B. 500 ms) unterbrochen, bis Hupe bzw. Bremslicht wieder ausgeschaltet werden können. In dieser Zeit kann der Flitzer aber keine Steuerkommandos empfangen oder auf Sensorwerte reagieren. Daher ist eine Zeit-Funktion sinnvoll. Das geht elegant mit einem Timer-Interrupt – aber für unsere Anwendung genügt auch eine Zeitabfrage. Das Prinzip zeigt der nebenstehende einfache Sketch. In den auf der Material-Seite zum Download bereitgestellten Steuerungs-Sketchen für den Flitzer ist der Mechanismus bereits integriert.

Fernsteuerung mit PS2-Controller

Neben BLE, Funk, IR und Nunchuk gibt es noch eine weitere Variante zur Fernsteuerung der Modelle: einen kabellosen Playstation-2-Controller. Unser Leser Arnoud van Delden hat ihn integriert und damit den Flitzer gesteuert.

Hardware
Für rund 20 € findet man über das Internet zahlreiche Versionen des „Wireless Gamepad“ für die Sony Playstation 2 mit Empfängermodul. Die Steuerung verfügt über 12 Tasten (die z. T. analog ausgewertet werden können), zwei Vibrationsmotoren (als „Rücksignal“) und zwei Joysticks.

Anschluss
Die Ausgänge des Empfängers werden mit den SPI-Pins des Arduino verbunden. Auf Github findet man eine Arduino-PS2X-Bibliothek von Bill Porter, mit der die Daten des PS2-Controllers empfangen und ausgewertet werden können. Ausführlich hat das Arnoud van Delden in einem Beitrag in der ft:pedia 4/2020 (S. 58-63) und in einem Youtube-Video beschrieben.

E-Mail-Benachrichtigung über neue Inhalte abonnieren:

%d Bloggern gefällt das: