Stapel | Roboter-Autos mit dem Raspberry Pi | E-Book | sack.de
E-Book

E-Book, Deutsch, 366 Seiten

Reihe: Rheinwerk Computing

Stapel Roboter-Autos mit dem Raspberry Pi

Planen, bauen, programmieren
2. Auflage 2019
ISBN: 978-3-8362-6757-1
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Planen, bauen, programmieren

E-Book, Deutsch, 366 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-6757-1
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Der Raspberry Pi ist ein wahres Multitalent! Wie Sie ihm sogar das Fahren beibringen, zeigt Ihnen diese detaillierte Anleitung. Schritt für Schritt bauen Sie Ihr eigenes, individuelles Roboter-Auto. Entweder programmieren Sie die Steuerung und entscheiden genau, wo's lang geht, oder Sie lassen Ihren Wagen selbstständig fahren. Alle Grundlagen und eine Auflistung der benötigten Hardware finden Sie hier.

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


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.
Stapel Roboter-Autos mit dem Raspberry Pi jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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...


Stapel, Ingmar
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.