Roboter mit Raspberry Pi | 1 |
Impressum | 4 |
Vorwort | 5 |
Zusatzinformationen zum Produkt | 6 |
Inhaltsverzeichnis | 7 |
1. Lenken und Steuern mit der GPIO-Schnittstelle | 11 |
1.1 Betriebssystem und Treiber aktualisieren | 15 |
1.2 Analog-digital-Wandler MCP3008 nachrüsten | 16 |
Datenblatt prüfen, Funktionen verstehen | 16 |
MCP3008 auf dem Steckboard nutzen | 17 |
Programmierung des MCP3008 mit Python | 21 |
SPI-Schnittstelle aktivieren | 26 |
SPI-Nutzung ohne Umwege: py-spidev-Modul installieren | 28 |
1.3 Joystick-Steuerung mit dem Raspberry Pi | 30 |
GPIO-Eingang schalten: Risiken und Nebenwirkungen | 31 |
Schaltungsdesign vom Steckboard auf die Rasterplatine | 34 |
Joystick-Steuerung mit Python | 35 |
Richtungsbestimmung mittels ADC-Werten | 37 |
1.4 I2C-Bus – Schnittstelle wecken und checken | 41 |
I2C-Geräte und Raspberry-Pi-Revision | 45 |
1.5 Schalten und walten mit Touchsensor | 46 |
Touch- und Drucksensor – Dateneingabe über den I2C-Bus | 47 |
Flexibler Zugriff dank I2C- und MRP121-Bibliothek | 48 |
Inbetriebnahme des MRP121-Touchsensors | 50 |
2. Fahren und bremsen – Motorsteuerung mit dem Raspberry Pi | 53 |
2.1 Die erste Schaltung – LEDs mit 10ULN2803A steuern | 53 |
2.2 GPIO-Steuerung über die Konsole und Python | 56 |
Schalten per Konsole | 57 |
2.3 Motoren und Steppermotoren | 59 |
2.4 Motorsteuerung versus Motortreiber | 63 |
Mehr Kontrolle – Schrittmotorcontroller | 64 |
2.5 Unipolaren Steppermotor mit ULN2803-IC steuern | 65 |
Schaltung auf Steckboard umsetzen | 65 |
Vollschritt- vs. Halbschrittverfahren im Detail | 69 |
Schritt für Schritt: Vollschritt- und Halbschrittverfahren einsetzen | 70 |
Vorwärts- und Rückwärtsbewegungen | 74 |
2.6 Praktisch und sicher – USV für den Raspberry Pi | 76 |
Pi USV in Betrieb nehmen | 77 |
Ohne Strom nix los – Akkupack auswählen | 78 |
Pi-USV-Software in Betrieb nehmen | 79 |
Status der Pi USV erkennen | 81 |
Status der Pi USV mit Python auslesen | 82 |
3. Pan/Tilt-Kamera im Eigenbau | 85 |
3.1 Raspberry-Pi-Kamera im Robotik-Einsatz | 86 |
Kameramodul mit dem Raspberry Pi koppeln | 86 |
Inbetriebnahme per Software | 87 |
raspistill – Fotografieren über die Kommandozeile | 91 |
LED abschalten und heimlich fotografieren | 93 |
Programmierung der Raspberry-Pi-Kamera | 93 |
3.2 Einzellösung: Tower-SG90-Servomotor | 96 |
3.3 Hardware-PWM-Ausgang mit LED testen | 99 |
3.4 Servoblaster-Treiber installieren | 101 |
3.5 Motoren mit Servoblaster in Betrieb nehmen | 103 |
3.6 Servomotor mit Python steuern | 105 |
3.7 Pan/Tilt-Achse und Kamera steuern | 106 |
3.8 Steuerung der Raspberry-Pi-Kamera | 108 |
3.9 Bewegungen und Aufnahmen steuern | 109 |
3.10 Hürden bei der Inbetriebnahme umgehen | 114 |
Automatischer Log-in: pi vom Start weg | 114 |
Autostart nach dem Einschalten | 115 |
4. Haushaltshilfe: Staubsauger-Modding | 117 |
4.1 Vorwerk vs. Neato – mehr als nur eine Kopie | 118 |
Einrichtung und Treiberinstallation | 119 |
Zugriff über PuTTY auf das Betriebssystem | 124 |
4.2 Staubsauger über Raspberry Pi steuern | 126 |
Staubsaugerroboter mit Raspberry Pi verbinden | 126 |
minicom-Modemzugang zum Staubsauger einrichten | 129 |
minicom-Steuerung für den Staubsauger | 131 |
Staubsaugerkommandozeile im Überblick | 134 |
Python-Programmierung über python-serial | 135 |
Spazierfahrt mit der Kommandozeile – Staubsauger fortbewegen | 138 |
Zeitplanung für den Staubsauger | 140 |
4.3 Staubsauger und Raspberry Pi koppeln | 144 |
Aufwecken aus dem Schlafmodus | 144 |
USB-Geräte über GPIO schalten | 146 |
Staubsauger mit dem Raspberry Pi verbinden | 148 |
Schaltung über Kommandozeile prüfen | 150 |
4.4 Roboter über die Webseite steuern | 151 |
Python-Zugriff über Browser – Bottle im Einsatz | 152 |
4.5 Videostreaming installieren und einbinden | 158 |
Streaming-Werkzeug laden und installieren | 159 |
MJPG-Streamer als Live-View-Quelle | 162 |
Live-View und Steuerung verheiraten | 165 |
Fotografieren mit dem Vorwerk/Neato-Staubsauger | 170 |
4.6 Drahtlos-Raspberry-Pi einrichten | 171 |
Raspberry Pi mit drahtloser Stromversorgung | 172 |
Akkupack und USV für Raspberry Pi kombinieren | 173 |
WLAN-Netzwerk einrichten und Verbindung aufnehmen | 174 |
Umschalten zwischen WLAN-Verbindungen | 178 |
WLAN-Verbindung mit Python steuern | 180 |
4.7 Staubsaugerroboter mit dem Smartphone steuern | 183 |
USB-Debugging-Modus – Smartphone einrichten | 183 |
Staubsaugerroboter mit dem Smartphone koppeln | 185 |
5. Schrauben, löten, programmieren: RC-Car-Modding | 187 |
5.1 Basis für das RaspiRoboCAR-Projekt | 188 |
5.2 Lenken und Steuern über die Tastatur | 191 |
5.3 Google-Streetview-RC-Car mit der Raspberry-Pi-Kamera | 203 |
6. LEGO® Pi mit Mindstorms EV3 und LEGO®-Technic | 205 |
6.1 Viel kreativer Spielraum für Technikfantasien | 205 |
6.2 LEGO®-Technic und LEGO®-Mindstorms mit Raspberry Pi aufmotzen | 208 |
6.3 BrickPi: LEGO®-Mindstorms im Eigenbau | 209 |
BrickPi-Treiber in Betrieb nehmen | 210 |
BrickPi-Schnittstellen aktivieren | 212 |
Python-Bibliothek für BrickPi installieren | 213 |
Motoren und Sensoren im BrickPi-Einsatz | 215 |
6.4 Legokran- und -greifer-Steuerung mit demRaspberry Pi | 216 |
Basis, Neigung und Greifer: drei Motoren für den Kran | 218 |
6.5 LEGO®-Modding: Mindstorms im Eigenbau | 224 |
LEGO®-Steine mit LED-Birnen nachrüsten | 225 |
Servomotor-Modding für LEGO®-Technic | 226 |
LEGO®-Extrem-Modding: bis zu 16 Servomotoren steuern | 228 |
Adressbelegung für den Anschluss am I2C-Bus | 230 |
Mehrere Servomotoren im Zusammenspiel | 232 |
Anhang | 239 |
A Python-Basics auf dem Raspberry Pi | 239 |
Schneller Zugriff über die Wiring-Pi-API | 245 |
Raspberry-Pi-Revision 2: zusätzlicher GPIO-Sockel | 248 |
Stichwortverzeichnis | 253 |