Inhaltsverzeichnis | 5 |
Vorwort zur zweiten Auflage | 13 |
Kapitel 1: Setup und Betrieb | 17 |
1.1 Ein Raspberry-Pi-Modell wählen | 17 |
1.2 Ein Gehäuse für den Raspberry Pi | 19 |
1.3 Auswahl eines Netzteils | 20 |
1.4 Eine Betriebssystem-Distribution wählen | 22 |
1.5 Eine MicroSD-Karte mit NOOBS beschreiben | 23 |
1.6 Das System anschließen | 26 |
1.7 Einen DVI- oder VGA-Monitor anschließen | 27 |
1.8 Einen Composite-Monitor oder Fernseher verwenden | 28 |
1.9 Die Bildgröße auf Ihrem Monitor anpassen | 29 |
1.10 Die Leistung maximieren | 31 |
1.11 Das Passwort ändern | 33 |
1.12 Den Pi direkt in ein Terminal booten | 34 |
1.13 Den Raspberry Pi herunterfahren | 35 |
1.14 Ein Raspberry-Pi-Kameramodul installieren | 37 |
1.15 Bluetooth nutzen | 39 |
Kapitel 2: Vernetzung | 43 |
2.1 Kabelgebundener Anschluss an ein Netzwerk | 43 |
2.2 Die IP-Adresse ermitteln | 45 |
2.3 Eine statische IP-Adresse einstellen | 47 |
2.4 Den Netzwerknamen eines Raspberry Pi einstellen | 49 |
2.5 Eine WLAN-Verbindung einrichten | 50 |
2.6 Anschluss per Konsolenkabel | 52 |
2.7 Den Pi entfernt über SSH steuern | 55 |
2.8 Den Pi entfernt per VNC steuern | 57 |
2.9 Den Pi entfernt per RDP steuern | 58 |
2.10 Filesharing in einem Mac-Netzwerk | 60 |
2.11 Den Pi-Screen auf dem Mac nutzen | 62 |
2.12 Einen Raspberry Pi als NAS (Network Attached Storage) nutzen | 63 |
2.13 Im Netzwerk drucken | 66 |
Kapitel 3: Betriebssystem | 69 |
3.1 Dateien grafisch verschieben | 69 |
3.2 Eine Terminal-Session starten | 70 |
3.3 In einem Terminal durch das Dateisystem navigieren | 71 |
3.4 Dateien oder Ordner kopieren | 75 |
3.5 Dateien oder Ordner umbenennen | 76 |
3.6 Eine Datei editieren | 77 |
3.7 Den Inhalt einer Datei ansehen | 79 |
3.8 Eine Datei ohne Editor erzeugen | 80 |
3.9 Ein Verzeichnis anlegen | 80 |
3.10 Dateien oder Verzeichnisse löschen | 81 |
3.11 Befehle mit Superuser-Rechten ausführen | 82 |
3.12 Dateizugriffsrechte verstehen | 83 |
3.13 Dateizugriffsrechte ändern | 85 |
3.14 Den Eigentümer einer Datei ändern | 86 |
3.15 Einen Screenshot erzeugen | 87 |
3.16 Software installieren mit apt-get | 88 |
3.17 Installierte Software mit apt-get löschen | 89 |
3.18 Python-Pakete per pip installieren | 90 |
3.19 Dateien über die Kommandozeile herunterladen | 91 |
3.20 Quellcode mit Git herunterladen | 92 |
3.21 Ein Programm oder Skript beim Booten automatisch ausführen | 92 |
3.22 Ein Programm oder Skript beim Booten automatisch als Service ausführen | 93 |
3.23 Ein Programm oder Skript in regelmäßigen Abständen automatisch ausführen | 95 |
3.24 Das Verzeichnissystem durchsuchen | 96 |
3.25 Die Kommandozeilen-Historie nutzen | 97 |
3.26 Die Prozessoraktivität überwachen | 99 |
3.27 Mit Archivdateien arbeiten | 101 |
3.28 Angeschlossene USB-Geräte auflisten | 102 |
3.29 Ausgaben der Befehlszeile in eine Datei umleiten | 102 |
3.30 Dateien verketten | 103 |
3.31 Pipes nutzen | 104 |
3.32 Die Ausgabe im Terminal unterbinden | 105 |
3.33 Programme im Hintergrund ausführen | 105 |
3.34 Befehls-Aliase anlegen | 106 |
3.35 Datum und Uhrzeit setzen | 107 |
3.36 Freien Speicherplatz auf der SD-Karte ermitteln | 108 |
Kapitel 4: Software | 109 |
4.1 Ein Mediacenter einrichten | 109 |
4.2 Office-Software auf dem Raspi nutzen | 111 |
4.3 Andere Browser installieren | 112 |
4.4 Einen Webcam-Server einrichten | 113 |
4.5 Einen Emulator für klassische Spielekonsolen ausführen | 116 |
4.6 Minecraft Pi Edition ausführen | 117 |
4.7 Einen Minecraft-Server ausführen | 119 |
4.8 Raspberry-Pi-Radiosender | 121 |
4.9 GIMP ausführen | 123 |
4.10 Internetradio | 124 |
Kapitel 5: Python-Grundlagen | 127 |
5.1 Zwischen Python 2 und Python 3 wählen | 127 |
5.2 Python-Programme mit IDLE editieren | 128 |
5.3 Die Python-Konsole nutzen | 130 |
5.4 Python-Programme über das Terminal ausführen | 131 |
5.5 Variablen | 133 |
5.6 Werte ausgeben | 133 |
5.7 Benutzereingaben einlesen | 134 |
5.8 Arithmetik | 135 |
5.9 Strings erzeugen | 136 |
5.10 Strings verketten (verbinden) | 137 |
5.11 Zahlen in Strings umwandeln | 137 |
5.12 Strings in Zahlen umwandeln | 138 |
5.13 Die Länge eines Strings bestimmen | 139 |
5.14 Die Position eines Strings in einem anderen String suchen | 140 |
5.15 Einen Teilstring extrahieren | 140 |
5.16 Einen Teilstring durch einen anderen ersetzen | 141 |
5.17 Einen String in Groß- oder Kleinbuchstaben umwandeln | 142 |
5.18 Befehle bedingt ausführen | 143 |
5.19 Werte vergleichen | 144 |
5.20 Logische Operatoren | 145 |
5.21 Anweisungen genau x-mal ausführen | 146 |
5.22 Befehle wiederholen, bis sich eine Bedingung ändert | 147 |
5.23 Aus einer Schleife ausbrechen | 148 |
5.24 Eine Funktion in Python definieren | 148 |
Kapitel 6: Python-Listen und -Dictionaries | 151 |
6.1 Eine Liste erzeugen | 151 |
6.2 Auf Elemente einer Liste zugreifen | 152 |
6.3 Die Länge einer Liste ermitteln | 153 |
6.4 Elemente zu einer Liste hinzufügen | 153 |
6.5 Elemente aus einer Liste entfernen | 154 |
6.6 Eine Liste durch Parsing eines Strings erzeugen | 155 |
6.7 Iteration über eine Liste | 156 |
6.8 Eine Liste durchzählen | 156 |
6.9 Eine Liste sortieren | 157 |
6.10 Eine Liste zerlegen | 158 |
6.11 Eine Funktion auf eine Liste anwenden | 159 |
6.12 Ein Dictionary anlegen | 160 |
6.13 Auf ein Dictionary zugreifen | 161 |
6.14 Elemente aus einem Dictionary entfernen | 162 |
6.15 Iteration über Dictionaries | 163 |
Kapitel 7: Python für Fortgeschrittene | 165 |
7.1 Zahlen formatieren | 165 |
7.2 Datum & Uhrzeit formatieren | 166 |
7.3 Mehrere Werte zurückliefern | 167 |
7.4 Eine Klasse definieren | 168 |
7.5 Eine Methode definieren | 169 |
7.6 Vererbung | 170 |
7.7 In eine Datei schreiben | 171 |
7.8 Aus einer Datei lesen | 172 |
7.9 Pickling | 173 |
7.10 Ausnahmebehandlung | 174 |
7.11 Module nutzen | 176 |
7.12 Zufallszahlen | 177 |
7.13 Webanfragen aus Python versenden | 178 |
7.14 Kommandozeilenargumente in Python | 179 |
7.15 Linux-Befehle aus Python heraus ausführen | 180 |
7.16 E-Mail aus Python heraus versenden | 181 |
7.17 Einen einfachen Webserver in Python entwickeln | 182 |
7.18 Mehrere Dinge gleichzeitig tun | 184 |
7.19 Nichts tun mit Python | 185 |
7.20 Python mit der Minecraft Pi Edition nutzen | 186 |
Kapitel 8: Computer Vision | 189 |
8.1 SimpleCV installieren | 189 |
8.2 Eine USB-Kamera für Computer Vision einrichten | 190 |
8.3 Das Raspberry-Pi-Kameramodul für Computer Vision nutzen | 192 |
8.4 Münzen zählen | 193 |
8.5 Gesichtserkennung | 198 |
8.6 Bewegungserkennung | 199 |
8.7 Optische Zeichenerkennung | 202 |
Kapitel 9: GPIO-Grundlagen | 203 |
9.1 Den GPIO-Anschluss verstehen | 203 |
9.2 Den Raspberry Pi bei der Arbeit mit dem GPIO-Anschluss schützen | 206 |
9.3 I2C einrichten | 207 |
9.4 Die I2C-Tools nutzen | 210 |
9.5 SPI einrichten | 211 |
9.6 PySerial installieren, um aus Python heraus auf den seriellen Port zuzugreifen | 212 |
9.7 Minicom zum Testen des seriellen Ports installieren | 213 |
9.8 Ein Steckbrett mit Schaltdrähten nutzen | 214 |
9.9 Ein Steckbrett mit einem Pi-Cobbler nutzen | 215 |
9.10 Einen Raspberry Squid nutzen | 217 |
9.11 Einen Raspberry-Pi-Squid-Button nutzen | 219 |
9.12 5-V-Signale mit zwei Widerständen in 3,3 V umwandeln | 221 |
9.13 5-V-Signale mit einem Pegelwandler-Modul in 3,3 V umwandeln | 222 |
9.14 Den Raspberry Pi mit Batterien betreiben | 223 |
9.15 Einen Raspberry Pi mit einem LiPo-Akku betreiben | 225 |
9.16 Erste Schritte mit dem Sense HAT | 227 |
9.17 Erste Schritte mit dem Explorer HAT Pro | 229 |
9.18 Erste Schritte mit dem RasPiRobot-Board | 230 |
9.19 Erste Schritte mit einem Pi-Plate-Prototyping- Board | 232 |
9.20 Ein HAT-Modul (Hardware At Top) entwickeln | 237 |
9.21 Das Pi Compute Module | 240 |
9.22 Der Pi Zero | 241 |
Kapitel 10: Hardware steuern | 243 |
10.1 Eine LED anschließen | 243 |
10.2 Die GPIO-Pins in sicherem Zustand verlassen | 246 |
10.3 Die Helligkeit einer LED steuern | 247 |
10.4 Einen Summton erzeugen | 249 |
10.5 Hochleistungs-Gleichstromgeräte mit einem Transistor schalten | 251 |
10.6 Ein Hochleistungsgerät mit einem Relais schalten | 253 |
10.7 Ein Hochspannungs-Wechselstromgerät steuern | 256 |
10.8 Eine Benutzerschnittstelle zum Ein- und Ausschalten von Komponenten | 257 |
10.9 Eine Benutzerschnittstelle für die PWM-Steuerung von LEDs und Motoren | 259 |
10.10 Die Farbe einer RGB-LED ändern | 261 |
10.11 Mit vielen LEDs arbeiten (Charlieplexing) | 263 |
10.12 Ein Analoginstrument als Anzeige nutzen | 266 |
10.13 Mit Interrupts programmieren | 268 |
Kapitel 11: Motoren | 273 |
11.1 Servomotoren steuern | 273 |
11.2 Servomotoren präzise steuern | 277 |
11.3 Eine große Anzahl von Servomotoren steuern | 280 |
11.4 Die Geschwindigkeit eines Gleichstrommotors steuern | 283 |
11.5 Die Drehrichtung eines Gleichstrommotors steuern | 285 |
11.6 Einen unipolaren Schrittmotor nutzen | 290 |
11.7 Einen bipolaren Schrittmotor nutzen | 294 |
11.8 Einen bipolaren Schrittmotor mit einem Schrittmotor-HAT steuern | 296 |
11.9 Ein RasPiRobot-Board zur Steuerung eines bipolaren Schrittmotors nutzen | 299 |
11.10 Einen einfachen Robot-Rover bauen | 301 |
Kapitel 12: Digitale Eingänge | 305 |
12.1 Einen Taster anschließen | 305 |
12.2 Etwas per Taster umschalten | 308 |
12.3 Einen Wipp- oder Schiebeschalter nutzen | 310 |
12.4 Einen Drei-Wege-Schalter nutzen | 311 |
12.5 Eine Taste entprellen | 314 |
12.6 Einen externen Pull-up-Widerstand nutzen | 316 |
12.7 Einen Drehgeber nutzen | 317 |
12.8 Eine Matrixtastatur nutzen | 320 |
12.9 Bewegungen erkennen | 324 |
12.10 Den Raspberry Pi um GPS erweitern | 325 |
12.11 Tastendruck abfangen | 329 |
12.12 Bewegungen der Maus abfangen | 331 |
12.13 Eine Echtzeituhr nutzen | 332 |
Kapitel 13: Sensoren | 337 |
13.1 Ohmsche Widerstände nutzen | 337 |
13.2 Licht messen | 342 |
13.3 Temperatur mit Thermistor messen | 345 |
13.4 Methan erkennen | 348 |
13.5 Eine Spannung messen | 351 |
13.6 Spannungen zu Messzwecken reduzieren | 353 |
13.7 Ohmsche Sensoren mit einem A/D-Wandler nutzen | 355 |
13.8 Temperatur mit einem A/D-Wandler messen | 357 |
13.9 Die CPU-Temperatur des Raspberry Pi messen | 359 |
13.10 Temperatur, Luftfeuchtigkeit und Luftdruck mit einem Sense HAT messen | 361 |
13.11 Temperatur messen per digitalem Sensor | 363 |
13.12 Beschleunigung messen | 365 |
13.13 Die IMU des Sense HAT nutzen | 369 |
13.14 Den magnetischen Norden mit dem Sense HAT bestimmen | 371 |
13.15 Magneten mit einem Reedschalter aufspüren | 372 |
13.16 Magneten mit dem Sense HAT aufspüren | 373 |
13.17 Entfernungen messen | 374 |
13.18 Berührungssensoren nutzen | 377 |
13.19 Sensorwerte ausgeben | 379 |
13.20 Daten auf einem USB-Flash-Laufwerk speichern | 381 |
Kapitel 14: Displays | 385 |
14.1 Ein vierstelliges LED-Display nutzen | 385 |
14.2 Nachrichten auf einer I2C-LED-Matrix ausgeben | 387 |
14.3 Das Matrix-Display des Sense HAT nutzen | 390 |
14.4 Nachrichten auf einem alphanumerischen LCD HAT ausgeben | 392 |
14.5 Nachrichten auf einem alphanumerischen LC-Display ausgeben | 394 |
14.6 Ein grafisches OLED-Display nutzen | 398 |
14.7 Adressierbare RGB-LED-Streifen nutzen | 400 |
Kapitel 15: Das Internet der Dinge | 405 |
15.1 GPIO-Ausgänge über eine Webschnittstelle steuern | 405 |
15.2 Sensorwerte auf einer Webseite ausgeben | 411 |
15.3 E-Mails und andere Nachrichten per IFTTT versenden | 414 |
15.4 Tweets senden per ThinkSpeak | 418 |
15.5 CheerLights | 420 |
15.6 Sensordaten an ThingSpeak senden | 422 |
15.7 Mit Dweet und IFTTT auf Tweets reagieren | 424 |
Kapitel 16: Arduino und Raspberry Pi | 429 |
16.1 Einen Arduino per Raspberry Pi programmieren | 430 |
16.2 Mit dem Arduino über den seriellen Monitor kommunizieren | 432 |
16.3 PyFirmata einrichten und einen Arduino von einem Raspberry Pi steuern | 434 |
16.4 Digitale Ausgänge des Arduino vom Raspberry Pi steuern | 437 |
16.5 PyFirmata mit der seriellen Schnittstelle (TTL-Pegel) nutzen | 439 |
16.6 Digitale Eingänge des Arduino mit PyFirmata einlesen | 441 |
16.7 Analoge Eingänge des Arduino mit PyFirmata einlesen | 443 |
16.8 Digitale Ausgänge (PWM) mit PyFirmata nutzen | 445 |
16.9 Einen Servo mit PyFirmata steuern | 447 |
16.10 Maßgeschneiderte serielle Kommunikation mit dem Arduino | 449 |
16.11 Maßgeschneiderte Kommunikation mit dem Arduino über I2C | 453 |
16.12 Kleine Arduinos mit dem Raspberry Pi nutzen | 457 |
16.13 Erste Schritte mit dem aLaMode-Board und einem Raspberry Pi | 459 |
16.14 Ein Arduino-Shield mit einem aLaMode-Board und einem Raspberry Pi nutzen | 462 |
Anhang A: Teile und Lieferanten | 465 |
Anhang B: Pin-Belegungen | 471 |
Index | 473 |
Über den Autor | 483 |
Kolophon | 483 |
www.oreilly.de | 0 |