Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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.2.1 Das Gehirn des Roboter-Autos: Warum der Raspberry Pi zum Einsatz kommt
29
2.2.2 Der Raspberry Pi 4 Modell B und seine Familienmitglieder
32
2.2.3 Das kleinste Familienmitglied: Die Raspberry-Pi-ZERO-Familie
32
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.7.1 Die Akku-Notlösung
39
2.8 Kabel
40
2.8.1 Jumper-Kabel
40
2.8.2 Zweiadriges Kupferkabel
41
2.8.3 USB-C-Kabel
41
2.8.4 Mini-Tamiya-Kabel
41
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
3.2.1 Lötzubehör
47
3.2.2 Optionales Zubehör: Die »Dritte Hand«
49
4 Besseres Drehmoment? Der richtige Antrieb für das Roboter-Auto
51
4.1 Grundlagen zum Elektromotor
51
4.1.1 Gleichstrommotor
51
4.1.2 Der Servomotor
53
4.1.3 Bürstenloser Gleichstrommotor
54
4.1.4 Schrittmotoren
54
4.1.5 Elektromotoren und das Drehmoment
55
4.2 Gar nicht so banal: Räder
57
4.2.1 Rad-Typen
57
4.2.2 Radbefestigung
59
5 Damit es mit dem Blick unter die Haube klappt: Das Chassis
61
5.1 Ein Chassis aus Pappe
61
5.1.1 Cardboard-Chassis: Modellzeichnung
63
5.1.2 Einbau der Getriebemotoren und der Elektronik
66
5.2 Ein Chassis aus LEGO®-Bausteinen
68
5.2.1 Aufbau der Getriebemotorhalterung
69
5.2.2 Fahrgestell montieren
71
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.1.1 Die Reihenschaltung
79
6.1.2 Die Parallelschaltung
80
6.1.3 Ohmsches Gesetz
81
6.1.4 Elektrische Leistung
81
6.2 Beispielrechnung zu den Grundlagen der Elektrizitätslehre
81
6.2.1 Beispiel Reihenschaltung
82
6.2.2 Beispiel Parallelschaltung
82
6.2.3 Beispiel LED-Vorwiderstand
83
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.2.1 Die Ausrichtung der 40-Pin-Stiftleiste des Raspberry Pi
90
7.2.2 Übersicht über die Verkabelung des Motortreibers mit den GPIO-Pins
92
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.1.1 Schritt 1: Download der Image-Datei
100
8.1.2 Schritt 2: Image auf microSD-Karte aufspielen
101
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.2.1 Das Steuerungsprogramm für den Motortreiber in Python
147
12.2.2 Steuerungsprogramm für das Roboter-Auto in Python
153
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.1.1 Kameramodul aktivieren
159
13.1.2 Bilder aufnehmen
161
13.1.3 Videos aufnehmen
161
13.2 Mehr als eine bloße Dash-Cam: Live-Video-Stream
161
13.2.1 Kernelmodul laden
162
13.2.2 mjpg-streamer konfigurieren
163
13.2.3 mjpg-streamer starten
165
13.2.4 Die Videoauflösung in mjpg-streamer anpassen
166
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.2.1 Den Service manuell starten
191
15.3 Den RobotControlWeb-Dienst einrichten
191
15.3.1 Das »web-control-start.sh«-Skript erstellen
192
15.3.2 Den Cron-Daemon anpassen
192
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.3.1 Gyroskop
202
16.3.2 Magnetometer
202
16.3.3 Beschleunigungssensor
203
16.3.4 Temperatursensor
203
16.3.5 Luftdrucksensor
203
16.3.6 Luftfeuchtesensor
203
16.3.7 LED-Matrix
203
16.3.8 Sense-HAT-Joystick
203
16.4 Einführung in den I2C-Datenbus
204
16.4.1 Der I2C-Bus des Raspberry Pi
205
16.4.2 Grove-I2C-Hub
206
16.4.3 Optional, aber gut zu wissen: Der bidirektionale I2C-Pegelwandler
206
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.1.1 Raspberry Pi mit Port Doubler und Sense HAT
214
17.1.2 Servocontroller, Step-down-Converter und Motortreiber befestigen
215
17.1.3 Befestigen der Time-of-Flight-Abstandssensoren
215
17.1.4 I2C-Hub befestigen
216
17.1.5 Raspberry-Pi-Kamera befestigen
217
17.1.6 Den GPS-Empfänger befestigen
218
17.2 Die elektronischen I2C-Komponenten im Roboter-Auto verkabeln
220
17.2.1 Den I2C-Hub mit dem Raspberry-Pi-I2C-Bus verbinden
221
17.2.2 Verbindung des Servocontrollers PCA9685 mit dem I2C-Hub
222
17.2.3 Die beiden ToF-Sensoren mit dem I2C-Hub verbinden
223
17.3 Die weiteren elektronischen Komponenten im Roboter-Auto verkabeln
225
17.3.1 Den GPS-Empfänger am USB-Anschluss anschließen
225
17.3.2 Motortreiber L298N am Servocontroller anschließen für das PWM-Signal
226
17.3.3 Motortreiber am Raspberry Pi anschließen für die Drehrichtung
227
17.3.4 Anschließen des Pan-Tilt-Kits am Servocontroller
228
17.3.5 Anschließen der Stromversorgung
229
18 Upgrade für Ihr Roboter-Auto: Neue Software für das autonome Fahren
231
18.1 I2C-Bus-Software installieren
231
18.1.1 Fehlersuche am I2C-Bus
233
18.2 Octave installieren
234
18.3 GPS-Software installieren und testen
234
18.3.1 Funktionstest des GPS-Empfängers
234
18.3.2 gpsd-Dienst starten
236
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.1.1 Das Python-Programm für das Gyroskop
242
19.1.2 Das Python-Programm für das Magnetometer
246
19.1.3 Das Python-Programm für die LED-Matrix
252
19.2 Python-Programm zur Verarbeitung der GPS-Koordinaten
259
19.3 Python-Programme für den Time-of-Flight-Sensor
262
19.3.1 Programm für den Lesezugriff auf den ToF-Sensor
262
19.3.2 Programm für die Anzeige der gemessenen Entfernungen mit dem ToF-Sensor
264
19.4 Python-Programme für den Servocontroller
266
19.4.1 Steuerungsprogramm für den L298N-Motortreiber mit dem Servocontroller
266
19.4.2 Steuerungsprogramm für zwei Servomotoren oder ein Pan-Tilt-Kit
273
20 Auf die Überholspur: Einführung in die parallele Programmierung mit Python
277
20.1 Grundlagen der parallelen Programmierung mit Python
277
20.1.1 Ein Beispielprogramm mit zwei Threads
278
20.1.2 Ein Beispielprogramm mit zwei Threads und einem Lock
283
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
21.2.1 Berechnung der Entfernung zwischen zwei GPS-Koordinaten und dem Kurswinkel
320
21.2.2 Autonom eine GPS-Koordinate anfahren
328
22 Pimpen Sie Ihr Roboter-Auto
345
22.1 Die Kühlung des Raspberry Pi
345
22.2 Steuerung mit einem Gamepad
346
22.2.1 PS4-Gamepad verbinden
347
22.2.2 Python-Programm Robotersteuerung
348
22.3 Anzeige mit einem OLED-Display
354
22.3.1 OLED-Display anschließen
355
22.3.2 Softwareinstallation
356
22.3.3 Anzeige auf dem OLED-Display
356
22.3.4 Anzeige auf dem OLED-Display automatisch starten
357
23 Immer noch nicht genug? Weitere Ideen aus der Welt der Modell-Roboter-Autos
359
Index
361