Raspberry Pi Roboter selber bauen – Projektübersicht

23. Oktober 2017
2 Comments

Mit dem Raspberry Pi können fast alle denkbaren Projekte realisiert werden. Ein sehr beliebtes Thema, worauf ich des öfteren angesprochen wurde, ist wie man einen eigenen Roboter baut. Dazu gibt es viele verschiedene Bausätze und Möglichkeiten, wie man einen Raspberry Pi Roboter baut. Mein Roboter kann so z.B. Linien folgen, Hindernissen ausweichen, einer Stimme folgen, lässt sich fernsteuern uvm.

In dieser Übersicht möchte ich auf die einzelnen Themen eines Raspberry Pi Robots eingehen und hilfreiche Tipps zum Selbstbau geben. Durch Nachbauen dieses Tutorials kann ein voll funktionstüchtiger Roboter mit einer Menge Features erstellt werden, aber auch eigene Modifikationen können eingebracht werden.

 

 

Raspberry Pi Roboter Komponenten

Zu Beginn liste ich alle verwendeten Bauteile auf, die ich für den Zusammenbau meines Roboters benutzt habe. Falls du ihn 1:1 nachbauen möchtest, benötigst du die folgenden Komponenten. Natürlich kannst du auch eigene Erweiterungen anbringen, aber musst diese dann ggf. anpassen.

 

 

Raspberry Pi Roboter Karosserie

Das Fahrgestell unseres ist der wichtigste Aspekt unseres gesamten Projekts. Hierbei gibt es verschiedene Modelle, welche überwiegend entweder zwei (2WD) oder vier (4WD) Motoren haben, welche separat angesteuert werden können. Der Vorteil von vier Motoren ist neben einer besseren Standfähigkeit auch ein präziseres Rotieren. Jene Roboter Fahrgestelle, welche zwei Motoren haben, kommen mit mindestens einem schwenkbaren Stützrad, was das präzise Navigieren u.U. ein wenig schwieriger macht.

Da mein Roboter aber lediglich in der Wohnung herumfahren soll, habe ich einen solchen zweirädrigen Bausatz als Basis genommen. Dabei ist auch ein Batteriehalter gewesen, welcher als zusätzliche Energiezufuhr für die Motoren dienen soll. Eine genaue Anleitung zum Zusammenbau und Erstellung des ersten Raspberry Pi Roboter Codes findest du hier:

Raspberry Pi Robot Bausatz – Zusammenbau (Teil 1)

Möchtest du ein anderes Fahrgestell nehmen, sind hier ein paar Ideen:


Normales Roboter Fahrgestell mit zwei Reifen

Fahrgestell aus Plastik mit vier Motoren und Batteriehalter

Karosserie aus Aluminium

Rundes Fahhrgestell „Turtle“
Sobald die Motoren mit entsprechenden Treiber ICs (L293D) verbunden sind, könnten sie bereits gesteuert werden. Der Raspberry Pi wird im Idealfall über einen Akku bzw. eine Powerbank mit Strom versorgt, wohingegen die Spannung für die Motoren aus den Batterien kommt.

 

Roboter folgt Linien

Raspberry Pi Roboter - Line Follower

Raspberry Pi Line Follower Modul (TCRT5000)

Nach dem Zusammenbau des Karosserie Bausatzes kann unser Roboter leider noch recht wenig – bis auf das Fahren. Daher lassen wir ihn nun Linien folgen. Dies funktioniert mit Hilfe von Infrarot Modulen, welche an der Unterseite des Fahrgestellt angebracht werden. Indem wir eine Linie mit dunklem (Licht-absorbierendem) Klebeband legen, können diese Sensoren erkennen, ob sie sich auf der Linie befinden und die Motoren entsprechend steuern.

Raspberry Pi Robot programmieren: Linien folgen lassen (Teil 2)

Wie das in Aktion aussieht, kannst du im nachfolgenden Video sehen. Sobald der Roboter die Linie verliert, schwenkt er in einem festgelegten Winkel nach rechts und links, um die Linie zu finden. Wird sie gefunden, so folgt er einfach weiter. Falls nichts in diesem Bereich gefunden wurde, so wird der Modus beendet und der Roboter stoppt.

 

 

Raspberry Pi Roboter Fernsteuerung – per Infrarot Fernbedienung

Damit wir den Roboter auch eigenhändig funklos steuern können, haben wir einige Möglichkeiten. Die einfachste ist eine Steuerung per Infrarot Fernbedienung. Dazu können wir das Programm Lirc nutzen, womit der Anschluss eines IR Empfängers sehr einfach realisierbar ist. Wie die Einrichtung genau funktioniert und was beachtet werden muss, findest du in diesem Tutorial:

Raspberry Pi: Per IR Remote Befehle ausführen

Sobald alles fertig ist, kann der Raspberry Pi per IR Fernbedienung gesteuert werden, wie im Video zu sehen

Davor muss aber noch der Code erweitert werden. Den gespeicherten Tasten der Fernbedienung können wir Befehle zuweisen. In meinem Fall sind die Tasten zum Steuern in die verschiedenen Richtungen gedacht sowie zum Wechseln der Modi. Die komplette Anleitung zum Anlegen der Befehle und Erweitern des Python Codes gibt es hier:

Raspberry Pi Robot per Infrarot Fernbedienung steuern (Teil 3)

 

 

Hindernissen ausweichen per Ultraschall

Servomotor mit HC-SR04 auf dem Raspberry Pi Roboter.

Frontansicht: Servomotor mit HC-SR04 auf dem Raspberry Pi Roboter.

Als weiteres Feauture habe ich mir einen Autopiloten Modus für meinen Raspberry Pi Roboter überlegt. Er soll im Raum umherfahren können, ohne dass er mit Gegenständen kollidiert. Um dieses Vorhaben zu realisieren entschied ich mich für ein Ultraschallmodul. Der Vorteil liegt darin, dass es sehr schnell misst und die Messung auch nicht all zu ungenau ist. Es stellt sich die Frage, ob man lieber mehrere Module an mehreren Stellen anbringen möchte oder – wie ich es getan habe – einen einzigen Ultraschallsensor nutzt.

Damit nicht nur die Entfernung zu einem Punkt gemessen wird und mein Roboter auch variabel ist, habe ich das HC-SR04 Modul auf einem Servo Motor angebracht. Der große Vorteil besteht darin, dass mein Sensor dadurch rotiert und automatisch die bestmögliche Richtung erkannt wird – nämlich die Richtung, in der am meisten Platz ist. Wie genau die Implementation des ganzen aussieht kannst du im vierten Teil des Raspberry Pi Roboter Tutorials durchlesen:

Raspberry Pi Robot: Automatisch Hindernissen ausweichen (Teil 4)

 

 

Raspberry Pi Roboter per Stimme lotsen

Im nächsten Teil haben wir den Roboter auf Stimmen reagieren lassen. Hierbei wird kein Mikrophon, sondern mehrere Stimm-Detektoren verwendet und an der Karosserie angebracht. Diese Sensoren ignorieren überwiegend die Umgebungsgeräusche und messen die Lautstärke einer Stimme. Da mehrere rund um die Karosserie angebracht sind, können wir ungefähr feststellen, woher die Stimme kam, da sie vom nähesten Sensor am lautesten wahrgenommen wird.

Diese Module arbeiten analog und liefern einen entsprechenden Wert. Damit wir sie auslesen können, benötigen wir einen Analog-Digital Wandler. Um so mehr Detektoren wir an unserem Raspberry Pi Roboter angebracht haben, umso genauer können wir den Ursprung der Stimme lokalisieren und dementsprechend dorthin fahren.

Die Verkabelung ist entsprechend einfach, da lediglich der MCP3008 ADC angeschlossen werden muss und an diesen die 3 (oder mehr) Sound-Detektoren kommen. Die restliche Navigation findet rein per Software statt. Beides kann im fünften Teil der Reihe nachgelesen werden:

Raspberry Pi Robot der eigenen Stimme folgen lassen (Teil 5)

 

 

Per Xbox 360 Controller den Raspberry Pi Roboter steuern

Im sechsten Teil der Reihe habe ich entschlossen eine „erweiterte“ Steuerung zu bauen. Dafür nutze ich einen Xbox 360 Controller, welcher mittels eines Funkadapters per USB mit dem Raspberry Pi vebrunden wird. Danach ist es uns möglich alle Eingaben des Controllers auszulesen und entsprechend zu reagieren. So habe ich den linken Joystick als Steuerelement zum Lenken der Karosserie genutzt. Zusätzlich ist es möglich alle anderen Tasten zu belegen – z.B. indem man andere Modi, wie das automatische Ausweichen von Hindernissen, starten lässt. Was dafür genau zu tun ist, erfährst du hier:

Mit Xbox 360 Controller Raspberry Pi Robot fernsteuern (Teil 6)

Wie du im Video sehen kannst, sind die Motoren recht schnell und man muss dementsprechend schnell reagieren. Daher habe ich den A-Knopf als Bremse definiert – solange dieser gedrückt ist, bewegt sich der Robot nicht.

 

Weitere denkbare Roboter Feautures

Wie anfangs erwähnt ist das natürlich noch längst nicht alles, was man an einem selbstgebauten Roboter anbringen kann. Vielleicht werde ich den Roboter in der Zukunft noch erweitern – wenn es hierzu Vorschläge gibt, immer her damit 🙂
Folgende Einfälle hatte ich noch, bin aber (bisher) nicht dazu gekommen, diese umzusetzen:

  • GPS Navigation: Wer mit dem kleinen auch draußen unterwegs sein will oder zuhause guten GPS Empfang hat, könnte sich eine Steuerung per Satelliten Daten überlegen. In Gebäuden wird die Genauigkeit zum exakten navigieren wohl nicht ausreichen, allerdings könnte im Freien eine GPS Koordinate übermittelt werden, an die dann gefahren wird (in Kombination mit unserem Hindernis-Ausweich Mechanismus). Ein Tutorial zur Einrichtung eines GPS Empgängers findest du übrigens hier.
  • Sprachsteuerung: Amazon Echo, Siri, S-Voice, u.a. machen es vor: Die Sprachsteuerung gehört längst nicht mehr der Vergangenheit an. Dass es auch mit einem Raspberry Pi möglich ist auf Sprachbefehle zu reagieren, haben wir bereits gesehen. Auch ein Raspberry Pi Roboter sollte mit einem Mikrofon einfach per Sprache steuerbar sein.
  • schwenkbarer Livestream: Nachdem wir mit dem linken Joystick unseres Xbox 360 Controllers die Richtung, in die der Roboter lenken soll, vorgeben, ist der rechte Joystick noch nicht belegt. Wie eine einfache Steuerung eines Servo Motors mit dem Xbox 360 Controller aussieht, ist hier erklärt. Darüber hinaus haben wir in der Vergangenheit auch bereits einen Livestream der Raspberry Pi Kamera auf dem Smartphone mit Hilfe von VNC realisiert. Diese beiden Komponenten zu verbinden ist nicht all zu schwer: Einfach die Kamera auf einem Servo platzieren und diesen per rechten Joystick hin und her bewegen. Der Stream kann dann auf dem Handy angesehen werden.
  • Gesichtserkennung: Sofern wir eine Kamera platziert haben, können wir mit Hilfe von OpenCV auch Gesichter und andere Objekte erkennen. Dadurch können wir den Raspberry Pi Roboter automatisch in jene Richtung steuern lassen, in der ein Gesicht oder ein Mensch erkannt wurde. Das Prinzip würde dabei dem der automatischen Hinderniserkennung gleichen – ein Servo mit Kamera rotiert im Halbkreis und bspw. alle 20° wird geschaut, ob etwas erkannt wurde. Falls ja, wird in diese Richtung gefahren, falls nicht wird weiter gesucht.

Weitere Ideen nehme ich natürlich gerne auf – falls du eine Idee hast, hinterlasse doch einen kurzen Kommenar.

 

Raspberry Pi Roboter Code

Falls du den gesamten Code herunterladen möchtest, kannst du dies auch. Dazu habe ich ein GitHub Repository erstellt, worin die Dateien enthalten sind. Auf deinen Pi kannst du den Code für unseren Roboter ganz einfach laden:

git clone https://github.com/tutRPi/RaspberryPi-Robot
cd RaspberryPi-Robot

Darin sind alle Skripte und die komplette Roboter-Klasse enthalten, die wir mit jedem Tutorial Schritt für Schritt erweitert haben.

 

Wer möchte kann Bilder seines Roboters hochladen und hier verlinken – mich würde interessieren was ihr so gebaut habt.

2 Kommentare

  1. Ich finde diesen Artikel super!!! Das wäre ein tolles Technik Projekt für eine Schulklasse um darzustellen, wie umfangreich „Technik“ sein kann, von allem ist etwas dabei:) Danke für diesen Artikel.

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!