Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Dieser Beitrag ist in drei Teilbereiche unterteilt. Zuerst werden zwei Programme vorgestellt mit denen die Funktionsweise der verbauten Komponenten überprüft werden. Das erste Programm testet ob der Ultraschall Sensor funktioniert und die gemessene Entfernung ausgibt. Das Zweite Programm überprüft ob sich die Motoren überhaupt drehen und wenn ja in die richtige Richtung. Das dritte Programm kombiniert dann die beiden ersten Programme zu einer vollwertigen Steuerung des Roboter Autos so dass dieses selbständig durch die Wohnung fährt.

Beispielprogramm 1 – Ultraschall Sensor HC-SR04

Mit diesem kleinen Programm ist es möglich zu überprüfen ob der Ultraschall Sensor funktioniert. Also ob dieser richtig angeschlossen ist, die passenden Bibliotheken installiert sind und er Sensor selber nicht defekt ist. Einfach das Programm in die Arduino Entwicklungsumgebung in ein leeres Programm bzw. Sketch kopieren und auf den NordeMCU übertragen.

Das Programm steht hier als download zur Verfügung: esp8266 nodemcu test HC-SR04 program

Programm übertragen und testen

Das Übertragen des kleinen Programmes auf den NodeMCU ist denkbar einfach. Dazu links oben im Menü auf den Button mit dem Pfeil nach rechts der den Namen „Hochladen“ trägt drücken. Es sollte jetzt die Programmierung des ESP8266 Chips starten. Den aktuellen Stand sieht man in der kleinen Konsole in der entsprechende Ausgaben zu sehen sind.

Nach dem das Programm übertragen ist erfolgt die Ausgabe der Entfernung Messung im serial Monitor Fenster. Diesen seriellen Monitor erreicht man über das Menü „Werkzeuge“ und dann auf „Seriellen Monitor“ klicken. Hier ist es wieder wichtig den passenden COM-Port zu wählen und die richtige Geschwindigkeit von 9600.

Die Ausgabe sollte jetzt wie im folgenden Bild gezeigt im Monitor aussehen.

Arduino IDE HC-SR04 Programm serieller Monitor

Arduino IDE HC-SR04 Programm serieller Monitor

Hat die Übertragung auf den NodeMCU funktioniert und die Anzeige der Entfernungsmessung im seriellen Monitor gibt passende Werte aus dann ist jetzt das erste Programm fertig.

Beispielprogramm 2 – Motoren Steuerung

Dieses Programm kombiniert jetzt den PCA9685 Servo Kontroller und den L298N Motortreiber. Es dient dazu einmal überhaupt die Motoren mit den Räder drehen zu lassen. Aber es erfüllt auch den Zweck festzustellen, ob die Motoren richtig angeschlossen sind, also sich in die richtige Richtung drehen so wie wir das möchten.

Schließe jetzt noch zusätzlich an Deinem Laptop das zweite USB Kabel an damit der Motortreiber auch mit Strom versorgt wird. Andernfalls drehen sich die Motoren nicht.

Hinweis: Wenn Du die Motoren jetzt mit einer Power Bank mit Strom versorgst kann es passieren, dass sich die Motoren nicht drehen . Das liegt dann daran, dass Power Bank und PC einen unterschiedlichen GND Pegel haben und somit der Motortreiber ein HIGH von einem LOW Signal nicht unterscheiden kann. Daher immer nur eine Stromquelle nutzen damit der ESP8266 mit dem PCA9685 den gleichen GND verwenden wie der L298N Motortreiber. Daher entweder nur den PC oder nur die PowerBank als Stromquelle verwenden.

Das Programm ist so geschrieben, dass sich der linke Motor zuerst nach vorne drehen soll. Anschließend wechselt der linke Motor die Drehrichtung. Dann stoppt der linke Motor und es soll sich der rechte Motor nach vorne drehen und anschließend nach hinten drehen. Drehen sich die Motoren in dieser Reihenfolge in die richtige Richtung dann ist alles richtig verkabelt. Wenn nicht, dann muss abhängig vom Fehlerbild die Verkabelung der Motoren am Motortreiber getauscht werden.

Das Programm steht hier als download zur Verfügung: esp8266 nodemcu test PCA9685 L298N program

Mit diesem kleinen Programm sollte es jetzt geklappt haben festzustellen, ob die Motoren in die richtige Richtung drehen und wenn nicht die Verkabelung anzupassen. Wer das Programm bereits soweit verstanden hat, kann auch im Code die Programmierung anpassen und so die Drehrichtung der Motoren via Software steuern.

Hauptprogramm Roboter Auto

Wenn jetzt der Ultraschall Sensor und die Motoren Steuerung funktionieren folgt das Hauptprogramm für die Steuerung des Roboter Autos. Mit diesem kleinen Programm kann das Roboter Auto selbständig nach dem Zufallsprinzip seinen Weg durch die Wohnung finden.

Im Programm selber ist dokumentiert welche Funktion was macht. Spiele jetzt das Programm auf Deinen ESP8266 NodeMCU auf und schließe den ESP und den Motortreiber an der PowerBank deines Roboter-Autos an. Damit ist es frei und kann sofort in der Wohnung losfahren.

Das Programm steht hier als download zur Verfügung: esp8266 nodemcu robot control program

Video Roboter Auto

In dem kleinen Video ist das Roboter Auto zu sehen wie es selbständig durch die Wohnung fährt. Gut zu erkennen ist, wie das Zufallsprinzip entscheidet in welche Richtung es dreht und für wie lange es sich in diese Richtung dreht. Im Ergebnis fährt es wild durch die Wohnung.

Zusammenfassung

Der Ultraschall Sensor misst die Entfernung in Zentimeter zu einem Objekt vor dem Roboter Auto und die Motoren drehen sich. Das Test Programm für die Motoren hat Klarheit darüber geschaffen ob die Motoren richtig angeschlossen sind sich also in die richtige Richtung drehen. Damit hat sich schon ein richtig großer Erfolg eingestellt und im nächsten Artikel geht es dann darum das Roboter Auto alleine auf große Reise durch die Wohnung zu schicken. Wenn alles geklappt hat fährt jetzt das Roboter Auto autonom durch die Wohnung. Jetzt ist es möglich im Programmcode z. B. die minimale Entfernung anzupassen wann das Roboter Auto drehen soll oder rückwärts fahren soll. Dazu einfach in Ruhe das Beispielprogramm durcharbeiten und sich mit den If / Else Abfragen und Entfernungen vertraut machen.


Artikel Übersicht ESP8266 NodeMCU Roboter Auto:

Roboter bauen mit dem ESP8266 Entwicklungsboard – Einleitung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Stromversorgung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Bauteile
Roboter bauen mit dem ESP8266 Entwicklungsboard – Chassis
Roboter bauen mit dem ESP8266 Entwicklungsboard – Verkabelung Teil 1
Roboter bauen mit dem ESP8266 Entwicklungsboard – Verkabelung Teil 2
Roboter bauen mit dem ESP8266 Entwicklungsboard – Arduino Entwicklungsumgebung einrichten
Roboter bauen mit dem ESP8266 Entwicklungsboard – Ultraschall Sensor und Motorensteuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – WIFI Fernsteuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Servo Motor Steuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – OLED Display
Roboter bauen mit dem ESP8266 Entwicklungsboard – Magnetometer
Roboter bauen mit dem ESP8266 Entwicklungsboard – GPS Empfänger Einführung

Artikel Ausblick:

Roboter bauen mit dem ESP8266 Entwicklungsboard – Gyroskop
Roboter bauen mit dem ESP8266 Entwicklungsboard – GPS Wegpunkte
Roboter bauen mit dem ESP8266 Entwicklungsboard – Solarzelle
(Visited 97 times, 1 visits today)