Roboter-Autos mit dem Raspberry Pi

Planen, bauen, programmieren
 
 
Rheinwerk (Verlag)
  • 2. Auflage
  • |
  • erschienen am 22. November 2019
  • |
  • 366 Seiten
 
E-Book | ePUB mit Wasserzeichen-DRM | Systemvoraussetzungen
E-Book | ePUB ohne DRM | Systemvoraussetzungen
978-3-8362-6757-1 (ISBN)
 

Der Raspberry Pi lernt fahren! Und Sie sind sein Fahrlehrer ¿

  • Let the good times roll: Ohne Vorwissen einfach einsteigen
  • Alle relevanten Programmier-, Elektronik- und Hardwaregrundlagen
  • Ferngesteuerte und autonome Modelle bauen; mit vollständiger Teile-Liste
Raspberry Pi und Robotik faszinieren Sie? Dann bringt Sie dieses Buch sicher richtig in Fahrt! ¿¿¿¿ Ob Einsteiger oder fortgeschrittener RasPi-Bastler: Schritt für Schritt lernen Sie, wie Sie mit dem Raspberry Pi ein ferngesteuertes Roboter-Auto entwickeln. Oder soll das Auto gleich selber fahren können? Perfekt, denn im zweiten Teil des Buches bauen Sie genau das: ein autonomes Roboter-Auto. ¿¿¿¿ Quasi im Vorbeifahren lernen Sie alle Grundlagen, die Sie für beide Projekte benötigen. Hardware, Elektronik, Bau Ihres bevorzugten Auto-Chassis und natürlich die Programmierung der nötigen Software in Scratch und Python. ¿¿¿¿ Die Formel Eins gewinnen Sie mit dem Roboter-Auto vielleicht nicht - viele spannende Erkenntnisse und Lernspaß dafür aber sicher!

Aus dem Inhalt:

  • Die elektronischen Komponenten kennenlernen: Raspberry Pi, Kamera- und W-LAN-Modul, Motoren, Step-Down-Converter, Ultraschall-Sensor, GPS-Empfänger u. v. m.
  • Die benötigten Werkzeuge kennenlernen: Lötkolben, Dritte Hand und Co.
  • Grundlagen zum Elektromotor
  • So fügt sich alles zusammen: Chassis basteln, Fahrgestell montieren, Elektronik verbauen
  • Grundlagen der Elektrizitätslehre
  • Verkabelung der elektronischen Komponenten
  • Den Raspberry Pi in Betrieb nehmen
  • Wichtige Linux-Grundlagen
  • Einführung in die Programmierung mit Scratch und Python
  • Das Google-Auto hat eine und Ihres auch: Die Kamera nutzen
  • Auto-Steuerung: via W-LAN fernsteuern oder vollständig autonom
  • Liste der benötigten Elektronik-Komponenten sowie alle Steuerungsprogramme zum Download

Die Fachpresse zur Vorauflage: MagPi: »Das Buch ist eine Fundgrube für viele praktische Tipps zu allen Arbeitsschritten eines solchen Autobaus.«

weitere Ausgaben werden ermittelt
Ingmar Stapel studierte technische Informatik und ist aktuell im internationalen Bankenumfeld als IT-Projektleiter tätig; daneben beschäftigt er sich seit Jahren intensiv mit dem Raspberry Pi und der Robotik. Dieses Wissen teilt er gerne auf Vorträgen zum Thema Robotik mit Interessierten aus der Bastler-Szene. Auf seinen privaten Blogs schreibt er außerdem zu vielen aktuellen Techniktrends und berichtet von seinen Reisen.

Materialien zum Buch ... 14
Geleitwort ... 15
Vorwort ... 19
1. Einleitung: Was dieses Buch leistet, und was Sie erwartet ... 23

Teil I Bauen Sie Ihr eigenes ferngesteuertes Roboter-Auto mit dem Raspberry Pi! ... 25

2. Das etwas andere Kfz-Praktikum: Einführung in die elektronischen Komponenten ... 27

2.1 ... Komponenten für ein ferngesteuertes Roboter-Auto ... 27
2.2 ... Raspberry Pi: Der Single-Board-Computer ... 29
2.3 ... Das Raspberry-Pi-Kameramodul ... 34
2.4 ... Motortreiber ... 36
2.5 ... Getriebemotoren ... 37
2.6 ... Step-down-Converter ... 38
2.7 ... Batteriehalter und Akkus ... 39
2.8 ... Kabel ... 40
2.9 ... Die richtige microSD-Karte ... 42
2.10 ... Optional, aber unabhängiger trotz Kabel: Ein Netzteil ... 42
2.11 ... Optional, aber gut für weite Strecken: Ein WLAN-USB-Modul ... 43
2.12 ... Optional, aber ideal für die Montage: Raspberry-Pi-Abstandshalter ... 44

3. Schrauber aufgepasst: Eine Übersicht über die benötigten Werkzeuge ... 45

3.1 ... Lötstation ... 46
3.2 ... Löten ... 47

4. Besseres Drehmoment? Der richtige Antrieb für das Roboter-Auto ... 51

4.1 ... Grundlagen zum Elektromotor ... 51
4.2 ... Gar nicht so banal: Räder ... 57

5. Damit es mit dem Blick unter die Haube klappt: Das Chassis ... 61

5.1 ... Ein Chassis aus Pappe ... 61
5.2 ... Ein Chassis aus LEGO®-Bausteinen ... 68
5.3 ... Ein Chassis mithilfe eines Acrylglas-Bausatzes ... 74

6. Benzin war gestern: Grundlagen der Elektrizitätslehre ... 79

6.1 ... Elektrische Gesetze und Formeln ... 79
6.2 ... Beispielrechnung zu den Grundlagen der Elektrizitätslehre ... 81

7. Lange Leitung? Manchmal besser! Verkabelung der elektronischen Komponenten ... 85

7.1 ... Stromversorgung der elektronischen Komponenten ... 86
7.2 ... Motortreiber und Raspberry Pi logisch verbinden ... 88
7.3 ... Verkabelung der Getriebemotoren ... 94
7.4 ... Getriebemotoren mit dem Motortreiber verbinden ... 96

8. Das richtige Betriebssystem macht's! -- Das Raspberry-Pi-Betriebssystem installieren ... 99

8.1 ... Das Betriebssystem auf microSD-Karte vorbereiten ... 100
8.2 ... Raspberry Pi booten ... 102
8.3 ... Raspbian-Spracheinstellungen ... 104
8.4 ... WLAN einrichten ... 105

9. Nerds aufgepasst! Befehle und Programme im Terminal-Fenster ... 109

9.1 ... Das Terminal-Fenster ... 109
9.2 ... Temporäre Administratorrechte ... 110
9.3 ... Im Filesystem navigieren ... 111
9.4 ... Den Texteditor Nano kennenlernen ... 112
9.5 ... Zugriffsrechte ändern ... 114
9.6 ... Neustarten und Herunterfahren des Raspberry Pi ... 115
9.7 ... Die IP-Adresse des Raspberry Pi anzeigen ... 116
9.8 ... Dateiverknüpfung setzen ... 117
9.9 ... Die Programmausgabe in eine ».log«-Datei umleiten ... 117
9.10 ... Wget -- Dateien aus dem Internet herunterladen ... 117

10. Nur so kommt das Ding ans Laufen: Softwareinstallation und -konfiguration ... 119

10.1 ... Das Betriebssystem und die Raspberry-Pi-Firmware aktualisieren ... 121
10.2 ... Den Midnight Commander installieren ... 123
10.3 ... Real VNC Server konfigurieren und Viewer installieren ... 125
10.4 ... PuTTY installieren ... 128
10.5 ... Notepad++ installieren ... 130
10.6 ... Samba Server installieren ... 131
10.7 ... Python-Erweiterungen installieren ... 133
10.8 ... Flask-Web-Framework ... 134
10.9 ... Video-Streaming-Server installieren ... 134
10.10 ... NTP-Zeit-Dienst einrichten ... 135

11. Einfacher geht's nicht: Programmieren mit Scratch ... 137

11.1 ... Die Scratch-Grundlagen ... 138
11.2 ... Ein Scratch-Programmbeispiel für Ihr Roboter-Auto ... 140
11.3 ... Steuerungsprogramm für das Roboter-Auto in Scratch ... 142

12. Fahren ohne Schlangenlinien: Programmieren mit Python ... 145

12.1 ... Kurze Einführung in Python ... 145
12.2 ... Das Steuerungsprogramm in Python ... 146
12.3 ... Die Roboter-Auto-Steuerung starten ... 158

13. Geisterfahrer aufgepasst! Wir sorgen für Durchblick ... 159

13.1 ... Das Google-Auto hat's -- und unseres auch: Die Raspberry-Pi-Kamera installieren ... 159
13.2 ... Mehr als eine bloße Dash-Cam: Live-Video-Stream ... 161

14. Kommuniziere, kommuniziere: Webinterface-Steuerung über WLAN ... 167

14.1 ... Das Web-Framework Flask ... 168
14.2 ... Die Webinterface-Steuerung programmieren ... 168
14.3 ... Das Webinterface starten ... 185

15. Start-Automatik: Den Autostart der Programme konfigurieren ... 187

15.1 ... Ein Start-Skript für den mjpg-streamer anlegen ... 188
15.2 ... Den mjpg-streamer-Dienst einrichten ... 190
15.3 ... Den RobotControlWeb-Dienst einrichten ... 191
15.4 ... Was Sie im ersten Teil des Buches erreicht haben ... 195

Teil II Hände weg vom Steuer: Lassen Sie Ihr Roboter-Auto autonom fahren ... 197

16. Pfadfinder elektronisch: Mit diesen Komponenten fahren Sie autonom ... 199

16.1 ... Komponenten für das autonome Fahren ... 199
16.2 ... Übersicht über die Werkzeuge für Teil 2 des Buches ... 201
16.3 ... Raspberry Pi Sense HAT ... 201
16.4 ... Einführung in den I2C-Datenbus ... 204
16.5 ... Time-of-Flight-Abstandssensor ... 208
16.6 ... GPS-Empfänger ... 210
16.7 ... Servocontroller PCA9685 ... 211
16.8 ... Port Doubler ... 212

17. Achtung, Kabelsalat: Anbau und Verkabelung der elektronischen Komponenten ... 213

17.1 ... Befestigung der elektronischen Komponenten am Roboter-Auto ... 213
17.2 ... Die elektronischen I2C-Komponenten im Roboter-Auto verkabeln ... 220
17.3 ... Die weiteren elektronischen Komponenten im Roboter-Auto verkabeln ... 225

18. Upgrade für Ihr Roboter-Auto: Neue Software für das autonome Fahren ... 231

18.1 ... I2C-Bus-Software installieren ... 231
18.2 ... Octave installieren ... 234
18.3 ... GPS-Software installieren und testen ... 234
18.4 ... NTP-Zeit-Dienst mit GPS-Unterstützung ... 237
18.5 ... Servocontroller-Software installieren ... 238
18.6 ... Installation der VL53L1X-Python-Software ... 239

19. Auslesen, verstehen und programmieren: Bringen Sie die Sensoren und Aktoren zum Laufen ... 241

19.1 ... Raspberry Pi Sense HAT auswerten und programmieren ... 241
19.2 ... Python-Programm zur Verarbeitung der GPS-Koordinaten ... 259
19.3 ... Python-Programme für den Time-of-Flight-Sensor ... 262
19.4 ... Python-Programme für den Servocontroller ... 266

20. Auf die Überholspur: Einführung in die parallele Programmierung mit Python ... 277

20.1 ... Grundlagen der parallelen Programmierung mit Python ... 277
20.2 ... Drehen mit dem Gyroskop ... 288
20.3 ... Orientieren mit dem Kompass ... 294
20.4 ... Annährung zwischen zwei Hindernissen ... 303

21. Machen Sie es sich einfach auf der Rückbank bequem: Programme für autonomes Fahren ... 311

21.1 ... Hindernissen autonom ausweichen ... 311
21.2 ... GPS-Wegpunkte abfahren ... 320

22. Pimpen Sie Ihr Roboter-Auto ... 345

22.1 ... Die Kühlung des Raspberry Pi ... 345
22.2 ... Steuerung mit einem Gamepad ... 346
22.3 ... Anzeige mit einem OLED-Display ... 354

23. Immer noch nicht genug? Weitere Ideen aus der Welt der Modell-Roboter-Autos ... 359
Index ... 361

2.2    Raspberry Pi: Der Single-Board-Computer


Auf Messen und über meine Website erreicht mich immer wieder die Frage, warum ich den Raspberry Pi und nicht den Arduino für das Roboter-Auto verwende. Daher möchte ich Ihnen sowohl den Raspberry Pi als auch den Arduino kurz vorstellen, auf die Unterschiede eingehen und meine Beweggründe für die Wahl des Raspberry Pi darstellen.

2.2.1    Das Gehirn des Roboter-Autos: Warum der Raspberry Pi zum Einsatz kommt


Der Raspberry Pi ist einer der populärsten Single-Board-Computer (oder kurz: SBC). Er wird von der britischen Raspberry Pi Foundation entwickelt. Die Idee und das Ziel ist es, Schulen, Studenten, Makern und Industrieunternehmen einen Computer zu einem günstigen und erschwinglichen Preis anzubieten. Mit diesem Konzept sollen auch Menschen erreicht werden, die sonst keinen Zugang zu einem Computer hätten, mit dem sie z. B. das Programmieren erlernen können.

Der Raspberry Pi ist ein kleiner, scheckkartengroßer Single-Board-Computer (SBC), der meist ein auf Linux basierendes Betriebssystem nutzt. Die Leistung der SBCs ist in den letzten Jahren sehr stark gestiegen, sodass sie als vollwertige Computer eingesetzt werden können. Der Raspberry Pi 4 Modell B ist spätestens jetzt mit seinen 4 GB RAM zu einem vollwertiger Desktop-Computer herangewachsen. Die Single-Board-Computer verfügen in der Regel über sehr viele Ein- und Ausgänge, die über eine entsprechende Software geschaltet werden können. Ein großer Vorteil der SBCs ist, dass sie aus energiesparenden Komponenten aufgebaut sind und mit einer kleinen Batterie oder einem Akku betrieben werden können.

Auf dem Raspberry Pi sind der Prozessor (englisch Central Processing Unit, CPU) sowie die Grafikkarte in einem hochintegrierten Chip, dem sogenannten System-on-a-Chip (SoC), vereinigt. Durch diese Integration wird für den Betrieb des SBC wenig Strom benötigt. Des Weiteren verfügt der neueste Raspberry Pi 4 Modell B über zwei HDMI-Schnittstellen zum parallelen Anschluss von zwei Monitoren sowie über USB-Schnittstellen für den Anschluss weiterer Peripheriegeräte, beispielsweise einer Maus und einer Tastatur. Als Festplatte wird im Raspberry Pi eine microSD-Karte verwendet, die in den dafür vorgesehenen Steckplatz eingesetzt wird.

Über die 40-Pin-Stiftleiste werden diverse Schnittstellen des SoC nach außen geführt, um z. B. Sensoren anschließen zu können. Für die Konnektivität verfügt der Raspberry Pi 4 Modell B über eine WLAN-, LAN- und Bluetooth-Schnittstelle. In Abbildung 2.2 sind die wichtigsten Komponenten und Anschlüsse des Raspberry Pi 4 Modell B dargestellt.

Abbildung 2.2    Komponenten und Anschlüsse des Raspberry Pi 4 Modell B

Der Arduino ist ein sogenannter Mikrocontroller, der im Wesentlichen aus einem einzigen Chip besteht, einem Integrated Circuit (IC). Als in der Maker-Szene sehr beliebter und weitverbreiteter Vertreter der Mikrocontroller eignet sich der Arduino ebenfalls für verschiedenste Bastelprojekte. Er ist seit 2005 auf dem Markt, und dank seiner großen Anhängerschaft gibt es für den Arduino viele Zusatzplatinen, die ihn um weitere Funktionen wie ein Display, Motortreiber oder WLAN/LAN-Anschlüsse erweitern. Diese Zusatzplatinen werden Shields genannt und können übereinander direkt auf die Anschlüsse des Arduino aufgesteckt werden. Abbildung 2.3 zeigt einen Arduino UNO R3 mit einem ATMEGA-328PU-IC.

Mikrocontroller wie der Arduino verfügen im Gegensatz zu einem SBC wie dem Raspberry Pi über ein paar Einschränkungen. Allerdings wollte ich bei meinen Projekten auf die Funktionen, die der Raspberry Pi dem Arduino voraushat, nicht verzichten:

  • Zum einen kann auf dem IC des Arduino kein Betriebssystem ausgeführt werden. Der Raspberry Pi hingegen verfügt über ein vollwertiges Betriebssystem mit einer grafischen Oberfläche, die eine einfache Bedienung ermöglicht. Für die Programmierung des Arduino wird ein weiterer Computer benötigt, auf dem die Entwicklung stattfindet und von dem aus der Programmcode in den Arduino geladen wird.

  • Zum anderen verfügt der Raspberry Pi über eine Vielzahl von Schnittstellen, wie beispielsweise zwei HDMI-Grafikausgänge, WLAN, LAN und Bluetooth, USB-3.0/2.0-Schnittstellen, die bei einem Arduino UNO R3 bei Bedarf über zusätzliche Shields nachgerüstet werden müssen. Diese zusätzlichen Shields würden den Arduino in der Höhe deutlich vergrößern und damit unhandlicher machen. Von der Kostenseite betrachtet, würden die einzelnen Shields deutlich teurer werden als ein Raspberry Pi 4 Modell B.

  • Der Raspberry Pi verfügt über wesentlich mehr Rechenleistung, ein eigenes Betriebssystem und die bereits erwähnten vielfältigen Anschlussmöglichkeiten. Deshalb habe ich ihn für das Roboter-Auto-Projekt ausgewählt. Außer im Roboter-Auto können Sie den Raspberry Pi auch als Mediacenter, Arcade-Spielautomat und für viele weitere Projekte verwenden. Hier sind dem Arduino Grenzen gesetzt: Seine Einsatzgebiete sind nicht derart flexibel.

Abbildung 2.3    Komponenten des Arduino UNO R3

Auch Single-Board-Computer-Modelle von anderen Herstellern, wie der Odroid C2 von Hardkernel, das ASUS Tinker Board und der NVIDIA Jetson Nano eignen sich generell für den Bau des Roboter-Autos. Schlussendlich habe ich mich aber für den Raspberry Pi entschieden, da die große und weltweit aktive Raspberry Pi Community bei vielen Fragestellungen aktiv weiterhilft und die Softwareunterstützung des Raspberry Pi keine Wünsche offenlässt.

2.2.2    Der Raspberry Pi 4 Modell B und seine Familienmitglieder


Für das Roboter-Auto empfehle ich Ihnen, den Raspberry Pi 4 Modell B mit 4 GB RAM zu verwenden. Es handelt sich dabei um das aktuellste und leistungsstärkste Modell der Raspberry-Pi-Familie. Der Raspberry Pi 4 Modell B wird in drei Varianten angeboten die sich lediglich in der Größe des Arbeitsspeichers von 1 GB, 2 GB oder 4 GB unterscheiden.

Damit Sie einen Überblick über die gesamte Raspberry-Pi-Familie bekommen, sehen Sie hier die unterschiedlichen Modelle, die von 2012 bis Juli 2019 von der Raspberry Pi Foundation veröffentlicht wurden:

  • Raspberry Pi Modell A (Erscheinungsdatum: 2012)

  • Raspberry Pi Modell B (2012)

  • Raspberry Pi Modell A+ (2013)

  • Raspberry Pi Modell B+ (2013)

  • Raspberry Pi Compute Module (2014)

  • Raspberry Pi 2 Modell B (2015)

  • Raspberry Pi ZERO (2015)

  • Raspberry Pi 3 Modell B (2016)

  • Raspberry Pi ZERO 1.3 (2016)

  • Raspberry Pi ZERO W/WH (2017/2018)

  • Raspberry Pi 3 Modell B+ (2018)

  • Raspberry Pi 4 Modell B mit 1/2/4 GB RAM (2019)

Im Wesentlichen unterscheiden sich die Modelle in der Anzahl der Schnittstellen, in der Größe des Arbeitsspeichers und in der CPU-Geschwindigkeit.

Auf der Website der Raspberry Pi Foundation stehen weitere Informationen über die Raspberry-Pi-Familie zur Verfügung:

http://www.raspberrypi.org/

2.2.3    Das kleinste Familienmitglied: Die Raspberry-Pi-ZERO-Familie


Die Raspberry-Pi-ZERO-Familie nimmt eine besondere Rolle unter den Single-Board-Computern ein. Daher möchte ich auf diese Modelle etwas näher eingehen. Mit einem Preis von ca. 5 ? und einer CPU-Taktrate von 1 GHz ist der ZERO extrem kostengünstig. Der Raspberry Pi ZERO W wurde 2017 vorgestellt und verfügt über ein WLAN-Modul. Der Raspberry Pi ZERO WH wird mit WLAN und aufgelöteter 40-Pin-Headerleiste geliefert. Dennoch verfügen alle Raspberry-Pi-ZERO-Modelle nur über eine geringe Anzahl von Anschlüssen. Dazu gehören ein Mikro-USB-Anschluss, ein Mini-HDMI-Anschluss und eine Mikro-CSI-Schnittstelle für die Raspberry-Pi-Kamera. Dieser Mikro-CSI-Anschluss ist ab der ZERO-Version 1.3 verbaut und ist schmaler als der herkömmliche CSI-Anschluss, der bei den anderen Raspberry-Pi-Modellen verwendet wird.

Daher wird für alle Modelle des Raspberry Pi ZERO ein spezielles CSI-Kabel für den Anschluss der Kamera benötigt, das Sie in...

Dateiformat: EPUB
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Dateiformat: EPUB
Kopierschutz: ohne DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "glatten" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Ein Kopierschutz bzw. Digital Rights Management wird bei diesem E-Book nicht eingesetzt.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

26,90 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
E-Book bestellen

26,90 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB ohne DRM
siehe Systemvoraussetzungen
E-Book bestellen