84
MANIFEST RASPBERRY PI Hardware, Betriebssystem, Programmierung und Elektronik GÜLTIG FÜR ALLE AKTUELLEN MODELLE 50+ PROJEKTE E. F. Engelhardt 800 SEITEN

Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

MANIFESTR A S P B E R R Y P I

Hardware, Betriebssystem, Programmierung und Elektronik

GÜLTIG FÜR ALLEAKTUELLEN MODELLE 50+

PROJEKTE

E . F . E n g e l h a r d t

800SEITEN

Page 2: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

E. F. Engelhardt

RASPBERRY PIMANIFEST

Hardware, Betriebssystem, Programmierung und Elektronik

60493-2 Titelei.qxp_X 04.10.16 09:32 Seite 1

Page 3: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Über den Autor:E. F. Engelhardt, Jahrgang 1975, hat bereits über 40 Computerbücher veröffentlicht – und keines dieser Bücher ist wie andere Computerbücher:Der Autor beginnt direkt mit Praxis, ohne langatmige Technikerläuterungen.Engelhardt zeichnet sich dadurch aus, dass er alle seine Projekte selbst entwickelt.

60493-2 Titelei.qxp_X 04.10.16 09:32 Seite 2

Page 4: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Bibliografische Information der Deutschen Bibliothek

Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar.

Alle Angaben in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt und unter Einschaltung wirksa-mer Kontrollmaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. Der Verlag und der Autor sehen sich deshalb ge-zwungen, darauf hinzuweisen, dass sie weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgen, dieauf fehlerhafte Angaben zurückgehen, übernehmen können. Für die Mitteilung etwaiger Fehler sind Verlag und Autor jederzeit dankbar.Internetadressen oder Versionsnummern stellen den bei Redaktionsschluss verfügbaren Informationsstand dar. Verlag und Autor über-nehmen keinerlei Verantwortung oder Haftung für Veränderungen, die sich aus nicht von ihnen zu vertretenden Umständen ergeben.Evtl. beigefügte oder zum Download angebotene Dateien und Informationen dienen ausschließlich der nicht gewerblichen Nutzung. Einegewerbliche Nutzung ist nur mit Zustimmung des Lizenzinhabers möglich.

© 2016 Franzis Verlag GmbH, 85540 Haar bei München

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen undVerbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung desVerlags gestattet und wird widrigenfalls strafrechtlich verfolgt.

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden,sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.

Autor: E. F. EngelhardtProgrammleitung und Lektorat: Dr. Markus StäubleSatz: DTP-Satz A. Kugge, Münchenart & design: www.ideehoch2.deDruck: M.P. Media-Print Informationstechnologie GmbH, 33100 PaderbornPrinted in Germany

ISBN 978-3-645-60493-2

60493-2 Titelei.qxp_X 04.10.16 09:32 Seite 4

Page 5: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Vorwort

Wie würden Sie jemandem erklären, was der Raspberry Pi ist und warum eine Platine in Kreditkartengröße solch einen großen Erfolg hat?

Ursprünglich wurde der Raspberry Pi dafür entwickelt, der sinkenden Zahl von Infor-matikstudenten an der Universität Cambridge entgegenzuwirken und wieder mehr Freude an der Programmierung zu wecken. Eben Upton und seinem Team ist aber weitaus mehr gelungen: ein System zu einem günstigen Preis, in kompakter Bauweise, mit einem Open-Source-Betriebssystem, mit hoher Erweiterbarkeit sowie einer großer Community – wobei sich die Community natürlich erst nachher gebildet hat. Diese Faktoren haben dazu beigetragen, dass sich der Erfolg verselbstständigt hat. Inzwischen wurden über zehn Millionen Exemplare des Minicomputers verkauft (Stand: September 2016; Quelle: raspberrypi.org).

Angefangen hat alles weit vor 2006. In jenem Jahr stellte Eben Upton den ersten Prototyp des Raspberry Pi vor, damals noch auf Basis eines Atmel ATmega644 – der fertige Raspberry Pi trägt einen ARM-Mikroprozessor. Am 31.12.2011 wurden die ersten zehn Modelle auf eBay versteigert. Das Board mit der Seriennummer #01 erzielte einen Preis von 3.500 englischen Pfund. Im Februar 2012 war es endlich so weit, der Raspberry Pi ging in Serie. Zu Beginn der Serienproduktion musste man noch lange auf den Raspberry Pi warten und teils Mondpreise bezahlen, inzwischen bekommt man den Raspberry Pi 3 bei den üblichen Elektronikversendern, und das auch noch für unter 40 Euro. Wobei es inzwischen nicht mehr den einen Raspberry Pi gibt: Nicht nur in unterschiedlichen Modellen, auch in unterschiedlichen Bauformen ist der Raspberry Pi erhältlich. Mit dem Compute Module gibt es sogar ein Modul für die Industrie.

Es ist aber nicht nur der Preis von unter 40 Euro, sondern vor allem die große Com-munity und die Erweiterbarkeit, die für den Raspberry Pi sprechen. Die Offenheit des Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für den Raspberry Pi benötigt – die vielfältigen Programmiersprachen, angefangen bei Python bis zum grafischen Scratch, ermöglichen auch Einsteigern die Programmierung des Raspberry Pi. Inzwischen ist die Softwareunterstützung exzellent, mit der Bibliothek gpiozero lässt sich unter anderem in wenigen Zeilen ein Motor ansteuern.

Längst haben Bastler nicht mehr nur einen Raspberry Pi zu Hause, sondern eine Ansammlung von Platinen und Erweiterungsmodulen. Der Pi, wie er von seinen Anhängern liebevoll genannt wird, ist sehr vielfältig: Vom Roboter bis zur Smart-Home-Steuerung ist alles möglich. Mit der passenden Schaltung an der GPIO-Schnittstelle und dem richtigen Programmcode macht der Pi viel Spaß und nimmt diverse Aufgaben ab, die zuvor ein ausgewachsener PC oder eine teure Steuerung erledigt hat.

Page 6: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Vorwort

6

Mit diesem Buch können Sie sich die Welt des Raspberry Pi selbst erarbeiten und finden Antworten auf Ihre Fragen. Ob Sie Einsteiger oder Profi sind, in diesem Buch finden Sie sicherlich viele nützliche Dinge, die Sie bisher nicht kannten. Ob als Server im Netzwerk (Kapitel 5), als Spielekonsole (Kapitel 6), Navigationssystem im Auto (Kapitel 10), Digitalkamera (Kapitel 12) oder als Haushaltshilfe (Kapitel 13), für jeden Geschmack ist etwas dabei.

Apropos Geschmack, für Feinschmecker sei das Kapitel 13.2 empfohlen, hier lernen Sie, wie Sie die Fleischtemperatur mit dem Raspberry Pi messen. Dann guten Appetit!

Wir wünschen Ihnen viel Spaß mit dem Buch!

Autor und Verlag

Sie haben Anregungen, Fragen, Lob oder Kritik zu diesem Buch? Sie erreichen den

Autor per E-Mail unter [email protected].

Page 7: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

1 Raspberry 1, 2, 3 oder Zero? .....................................................................................19 1.1 Linux auf dem Raspberry Pi ......................................................................................... 25

1.1.1 Terminal – Kommandozeile für den Raspberry Pi .................................. 25 1.1.2 Konsolenbasics: wichtige Befehle im Überblick......................................26 1.1.3 chmod: effektive Berechtigungen................................................................28 1.1.4 Device-Tree-Optionen in der config.txt ....................................................29

1.2 Praktisches Zubehör für den Raspberry-Betrieb ................................................... 32 1.2.1 Micro-USB-Kabel und Netzteil .................................................................... 33 1.2.2 (Micro-)SD-Karten: der Unterschied zwischen schnell und

langsam...............................................................................................................34 1.2.3 Bildschirm: HDMI, FBAS oder nichts .........................................................36 1.2.4 Tastatur............................................................................................................... 37 1.2.5 Maus.................................................................................................................... 37 1.2.6 Bluetooth-USB-Dongle................................................................................... 37 1.2.7 WLAN-USB-Dongle........................................................................................ 37 1.2.8 USB-LAN-Netzwerkadapter .........................................................................38 1.2.9 pHAT – Raspberry Pi per Shield erweitern ...............................................38

1.3 IO-Board und Compute Module (CM) in Betrieb nehmen................................40 1.3.1 Compute Module: Bootvarianten durchleuchtet.....................................41 1.3.2 Remote-Installation über USB-Kabel .........................................................42 1.3.3 Betriebssystem auf eMMC-Speicher konfigurieren ..............................44

2 Raspberry Pi: Selbstbau in zwei Minuten ..............................................................47 2.1 Das Gehäuse: selbst bauen oder kaufen? ...............................................................47

2.1.1 Plexiglasgehäuse zum einfachen Zusammenschrauben......................48 2.1.2 Kreativ und bunt: Legogehäuse aus der Spielzeugkiste.........................51

3 Raspberry Pi einrichten und konfigurieren ............................................................ 53 3.1 Für Einsteiger: mehrere Betriebssysteme zum Ausprobieren ...........................54

3.1.1 NOOBS – der erste Start ................................................................................ 55 3.2 Für Fortgeschrittene: Image auswählen und auf Micro-SD-Karte

installieren.........................................................................................................................56 3.2.1 Spätere Inbetriebnahme: root oder pi?......................................................59 3.2.2 Via Mac-OS-X-Konsole: Raspberry-Image aufspielen ........................60 3.2.3 Windows: das USB Image Tool im Einsatz ...............................................61 3.2.4 Man schreibt deutsch: Konsoleneinstellungen anpassen....................68 3.2.5 sudo oder root? ................................................................................................ 72

Page 8: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

8

3.2.6 Datum und Uhrzeit setzen über das Terminal ........................................ 72 3.3 Tuningmaßnahmen für den Raspberry Pi................................................................ 72

3.3.1 USB-Tastatur – Ziffernblock einschalten .................................................. 73 3.3.2 Überblick über die Systemauslastung mit htop...................................... 73 3.3.3 Optimierung per Speichersplitting .............................................................74 3.3.4 Kommandozeilenfetischisten: GUI-Start unterbinden.......................... 75 3.3.5 Arbeitsspeicher unterstützen: Swap-Datei anlegen ............................. 75 3.3.6 Swap-Datei in fstab konfigurieren ..............................................................76 3.3.7 Dateien und Verzeichnisse via fstab optimieren....................................76 3.3.8 Konsolen reduzieren ....................................................................................... 77

3.4 USB-Massenspeicher als Systemdatenträger........................................................78 3.4.1 Flaschenhals USB 2.0......................................................................................78 3.4.2 Micro-SD mit SSD – mehr Speicher, mehr Geschwindigkeit..............79

3.5 Festplatte oder SSD: BerryBoot als Pi-Mastermind..............................................82 3.5.1 Nr. 5 lebt – Micro-SD-Karte vorbereiten ..................................................83 3.5.2 BerryBoot auf die Micro-SD-Karte übertragen .......................................86 3.5.3 BerryBoot – der erste Start............................................................................87 3.5.4 Immer aktuell: eigenes BerryBoot-Image mit SquashFS ......................92

3.6 Jenseits von Berryboot – Raspberry Pi über USB-Massenspeicher booten und betreiben ....................................................................................................95 3.6.1 USB-Massenspeicher in Betrieb nehmen .................................................99

3.7 Raspberry Pi über das Netzwerk booten und betreiben.................................... 103 3.7.1 Vorbereitungen............................................................................................... 103 3.7.2 NFS auf dem Ubuntu-Server einrichten.................................................. 105 3.7.3 DHCP und DNS für Raspberry Pi konfigurieren.................................... 107 3.7.4 TFTP-Konfiguration anpassen und Inbetriebnahme............................ 109

4 Raspberry Pi mit der Maus – Benutzeroberfläche LXDE .................................... 111 4.1 Daten, Dateien und Dateisystem.............................................................................. 112

4.1.1 Persönliche Daten........................................................................................... 114 4.1.2 Micro-SD-Karte sichern................................................................................ 114

4.2 Raspbian Jessie – die wichtigsten Programme und Tools ................................. 115 4.2.1 Surfmaschine Raspberry Pi – Webbrowser mit HTML5 ..................... 115 4.2.2 LibreOffice – Schreibmaschine in der Streichholzschachtel............... 116 4.2.3 LibreOffice-Tuning für den Raspberry Pi.................................................. 117

4.3 Startmenü-Zubehör: Tools und Hilfsprogramme ................................................ 118 4.3.1 Hilfe zur Selbsthilfe: Debian-Referenz ...................................................... 118 4.3.2 Spielend bauen – Minecraft Pi Edition ...................................................... 119

4.4 Drucken mit CUPS........................................................................................................ 120 4.4.1 CUPS-Basisinstallation ................................................................................. 121 4.4.2 Optional: Druckertreiberinstallation..........................................................123 4.4.3 Drucker mit CUPS koppeln – Admin-Webseite nutzen ..................... 124

Page 9: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

9

4.4.4 Drucker im Heimnetz CUPS hinzufügen und einrichten .................... 126 4.5 Unterschiedliche Wege – Programme installieren ............................................. 129

4.5.1 Paketinstallation in der Konsole über apt-get......................................... 131 4.6 Eingebaute oder nachgerüstete Bluetooth-Schnittstelle nutzen .....................133

4.6.1 Bluetooth-Kopplung über LXDE-GUI .......................................................133 4.6.2 Bluetooth-Kopplung über die bluetoothctl-Kommandozeile............ 135

5 Raspberry Pi im Netzwerk ...................................................................................... 139 5.1 Eingebauten WLAN-Adapter nutzen oder nachrüsten: Achtung,

Chipsatz...........................................................................................................................140 5.1.1 Mit Sicherheit: Netzwerkeinstellungen festlegen................................. 142

5.2 Raspberry Pi über SSH steuern: PuTTY, Terminal & Co. im Einsatz.............. 144 5.2.1 Praktisch und sicher: Zugriff über SSH .................................................... 144 5.2.2 Keine Installation nötig: Windows-Zugriff über PuTTY ..................... 145 5.2.3 Raspberry Pi per Mausklick abschalten................................................... 147 5.2.4 Bequem Daten kopieren mit WinSCP...................................................... 148 5.2.5 Mac OS X: SSH-Zugriff über eingebaute Konsole ............................... 150 5.2.6 Ubuntu: SSH-Zugriff nachrüsten................................................................ 151

5.3 Datei- und Druckdienste im Heimnetz ................................................................... 151 5.3.1 Zugriff auf das Raspberry-Pi-Dateisystem im Heimnetz ................... 152 5.3.2 Mac OS X mit Raspberry Pi via Samba koppeln ................................... 156 5.3.3 Windows-Ordner für Raspberry Pi im Heimnetz freigeben .............. 161 5.3.4 Windows zickt bei Samba-Zugriff: Freigabeprobleme lösen............ 162

6 Raspberry Pi als Spielkonsole ................................................................................ 167 6.1 Retrospielhölle auf dem Raspberry Pi ..................................................................... 168

6.1.1 MS-DOS-Spiele auf dem Raspberry Pi .................................................... 168 6.2 Retropie – das Emulator-Image für den Raspberry Pi .........................................173

6.2.1 Image auf SD-Karte: Retropie installieren ...............................................173 6.2.2 Zwingend nötig: Spiele in Retropie installieren ..................................... 174 6.2.3 Amiga, Atari, C64, SNES, Nintendo64 & Co. auf dem

Raspberry Pi..................................................................................................... 176 6.2.4 Man spricht deutsch: Retropie konfigurieren ........................................ 179

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau .......................................................... 181 7.1 OpenELEC: laden oder kompilieren?....................................................................... 182

7.1.1 OpenELEC-Image herunterladen und anpassen................................... 182 7.1.2 Inbetriebnahme eines fertigen Kodi/OpenELEC-Image..................... 183

7.2 Kodi-Mediacenter einrichten .................................................................................... 184 7.2.1 OpenELEC-Einstellungen anpassen und Freigaben einrichten......... 186 7.2.2 Administration über Kommandozeile – SSH-Zugriff

einschalten....................................................................................................... 188

Page 10: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis 10

7.2.3 Samba einrichten: bequemer Zugriff auf das Mediacenter .............. 189 7.2.4 Zugriff auf NFS/Samba-Freigaben im Heimnetz.................................. 194 7.2.5 NFS konfigurieren: Zugriff auf Linux/NAS-Server................................ 195 7.2.6 CIFS/Samba konfigurieren: Zugriff auf Windows-Freigaben ........... 196 7.2.7 Praktisch: Kodi/XBMC-Webserver einschalten................................... 199 7.2.8 Wettervorhersage mit dem Wetter-Plug-in .......................................... 201 7.2.9 OpenELEC: hohe CPU-Auslastung reduzieren..................................... 202 7.2.10 Mehr Funktionen: Add-ons nachrüsten, einrichten und

nutzen............................................................................................................... 203 7.2.11 MPEG-2- und MPEG-1-Codec nachreichen ......................................... 206 7.2.12 Manchmal praktisch: Screenshots erstellen ......................................... 208

7.3 Raspberry Pi als TV-Box ............................................................................................ 209 7.3.1 Besser zum Streamen: TV-Box auf Linux-Basis................................... 209 7.3.2 Streaming-Server installieren...................................................................... 211 7.3.3 TV-Box mit Kodi verheiraten ......................................................................213 7.3.4 Mehr Komfort: Fernbedienung mit Pi koppeln ...................................... 215 7.3.5 LiveTV auf Zero-Kodi genießen ................................................................ 217

8 Elektronik und GPIO – Experimentierkasten Raspberry Pi............................... 219 8.1 Elektronik für Nichtelektroniker............................................................................... 220

8.1.1 Strom und Spannung – Schaltungen verstehen .................................... 221 8.1.2 Steckboard richtig nutzen............................................................................222 8.1.3 Die erste Schaltung auf dem Steckboard................................................223 8.1.4 Raspberry-Pi-GPIO mit Steckboard koppeln........................................ 224 8.1.5 Fritzing – Freeware für das Schaltungsdesign .......................................225

8.2 Programmierung der GPIO-Pinleiste ......................................................................227 8.2.1 GPIO-Leiste – Unterschiede: BCM-, WiringPi- und

Pinzählung....................................................................................................... 228 8.2.2 Gewusst wie – Zugriff auf die GPIO-Schnittstelle............................... 230 8.2.3 GPIO-Funktionen nutzen – Pinbelegung entschlüsselt...................... 230 8.2.4 Raspberry Pi 1 Revision B2: zusätzlichen GPIO-Sockel nutzen.........233 8.2.5 Jenseits von Pin 26: GPIO-Anschlüsse des Raspberry Pi ab

Version Raspberry Pi 1 Modell B+ .............................................................235 8.2.6 Compute Module: massenhaft GPIO-Anschlüsse.............................. 236 8.2.7 PIP-Installer installieren .............................................................................. 239 8.2.8 raspi-gpio auf der Shell................................................................................240

8.3 Python-Zugriff mit der RPi.GPIO-API .................................................................... 243 8.3.1 LED-Praxis mit der RPi.GPIO-Bibliothek ................................................ 246 8.3.2 PIR-Praxis mit der RPi.GPIO-Bibliothek.................................................. 247

8.4 Temperaturmessung mit dem DS18B20-Sensor ............................................... 248 8.4.1 Temperaturmessung mit dem Steckboard ........................................... 248 8.4.2 Temperatursensor in Betrieb nehmen ..................................................... 251

Page 11: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis 11

8.4.3 Funktion des Temperatursensors prüfen ................................................252 8.4.4 Kernelmodule automatisch laden ............................................................ 254 8.4.5 Temperaturmessung mit Python ..............................................................255

8.5 MQTT und IoT...............................................................................................................257 8.5.1 Installation von Mosquitto ......................................................................... 258 8.5.2 Betrieb von Mosquitto................................................................................. 260 8.5.3 Arduino als MQTT-Client........................................................................... 262 8.5.4 Raspberry Pi als MQTT-Client .................................................................. 270

8.6 WiringPi-API: schnell auf der Shell..........................................................................275 8.6.1 WiringPi-API und Python............................................................................277 8.6.2 PIR-Modul am Raspberry Pi....................................................................... 278 8.6.3 Shellskript für PIR-Bewegungsmelder..................................................... 280

8.7 gpiozero-Bibliothek im Einsatz ................................................................................ 282 8.7.1 LED-Praxis mit der gpiozero-Bibliothek ................................................. 283 8.7.2 PIR-Bewegungsmelder mit der gpiozero-Bibliothek........................... 284 8.7.3 Viele Klassen und Funktionen ................................................................... 285

9 Datenausgabe auf dem Bildschirm.......................................................................287 9.1 Komfort und Durchblick: Mini-Touch-LCD-Display ......................................... 288

9.1.1 Touch-LCD-Display: wichtige Vorbereitungen.................................... 290 9.1.2 Touch-LCD-Display in Betrieb nehmen .................................................. 291 9.1.3 Feintuning: kalibrieren und konfigurieren............................................... 294

9.2 Raspberry-Pi-Touchscreen im Einsatz .................................................................. 298 9.2.1 Zusammenbau und Vorbereitungen....................................................... 299 9.2.2 Einsatz und Konfiguration ........................................................................... 301

9.3 Touchdisplay-Alternative: Mini-LCD-Bildschirm .............................................. 305 9.3.1 Mini-LCD-Bildschirm am I2C-Bus.............................................................. 311

9.4 Kommunizieren mit LEDs – Scroll pHAT............................................................... 319 9.4.1 Scroll pHAT mit Python............................................................................... 319

10 Navigationssystem im Eigenbau ...........................................................................323 10.1 Immer informiert mit dem GPS-Modul................................................................. 324

10.1.1 GPS-Stick in Betrieb nehmen..................................................................... 324 10.1.2 GPS-Daten auf dem Raspberry Pi ............................................................ 326 10.1.3 Fotos und GPS-Daten zusammenführen .................................................331 10.1.4 GPS-Datenverarbeitung mit Python........................................................ 334

10.2 Die ganze Welt auf dem Raspberry Pi....................................................................336 10.2.1 Navigationssystem laden und installieren..............................................337 10.2.2 Navit-Feintuning und Betrieb ....................................................................340 10.2.3 Man spricht deutsch: Navit-Sprachausgabe......................................... 344

10.3 Mini-Touch-LCD-Display im Einsatz: Navit-Parameter anpassen ............... 345

Page 12: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

12

11 Wegfahralarm und Routenprüfung...................................................................... 349 11.1 GPS-Koordinaten und Entfernungen...................................................................... 350

11.1.1 Vom Längen- und Breitengrad zur Postadresse .................................. 350 11.1.2 Abstands- und Distanzmessung mit Python ........................................353 11.1.3 Aufbereitung der GPS-Daten und Routenspeicherung ..................... 356 11.1.4 Routendarstellung mittels GPSBabel .......................................................357

11.2 Auto weg: Raspberry Pi als SMS-Alarmanlage.................................................... 361 11.2.1 Neue Firmware: gefahrlos und schnell ................................................... 362 11.2.2 SIM900-GPRS/GSM-Modul in Betrieb nehmen ................................ 367 11.2.3 SIM900-Modem mit Python steuern..................................................... 368 11.2.4 Mobilfunkmodem mit minicom-Konsole steuern ................................372 11.2.5 SMS-Nachrichten über minicom-Konsole ............................................ 374 11.2.6 AT-Kommandos über Python .................................................................... 381 11.2.7 SMS-Versand mit Python........................................................................... 383 11.2.8 Auf den Spuren der NSA: Handyüberwachung per SMS.................. 387

11.3 Standortinformationen ohne GPS: GSM-Hacking mit dem Raspberry Pi......................................................................................................... 388 11.3.1 Standortinformationen im Mobilfunknetz............................................. 389 11.3.2 Mobilfunkverbindung prüfen..................................................................... 390 11.3.3 LAC, CID & Co.: Standortdaten auslesen .............................................. 392 11.3.4 Einfache Geolocation ohne GPS mit GSM-Standort .......................... 394 11.3.5 Standortdatenverarbeitung mit Python.................................................. 395

11.4 GPS und GSM kombinieren: Alarm mit dem Raspberry Pi .............................400 11.4.1 Benachrichtigung per SMS.........................................................................400 11.4.2 Aktuellen Standort per SMS abfragen ....................................................405

12 Fotografieren und Video .......................................................................................... 411 12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera? .................................... 412

12.1.1 Klein, leicht, stark: Raspberry-Pi-Kamera............................................... 413 12.1.2 Inbetriebnahme per Software.....................................................................414 12.1.3 Pi-Kameramodul in Betrieb nehmen ........................................................414 12.1.4 Fotografieren mit Kommandozeilenbefehl ............................................. 416 12.1.5 LED abschalten und heimlich fotografieren ...........................................418 12.1.6 Programmierung der Raspberry-Pi-Kamera ..........................................418 12.1.7 Infrarotfotografie mit dem Pi-NoIR-Modul ............................................ 421 12.1.8 Lange Leitung: CSI-Kabel austauschen .................................................. 422 12.1.9 USB-Webcam zum Leben erwecken ...................................................... 422

12.2 Motoren und Steppermotoren................................................................................. 426 12.2.1 Oft vernachlässigt: Spannungsversorgung des Motors..................... 427

12.3 Motorsteuerung vs. Motortreiber........................................................................... 428 12.3.1 Mehr Kontrolle – Schrittmotorcontroller ............................................... 429

12.4 Motorprojekt: LED steuern per GPIO ....................................................................430

Page 13: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

13

12.4.1 Steckboard mit GPIO nutzen – stecken statt löten.............................430 12.5 Die erste Schaltung – LED-Lampen steuern ........................................................430 12.6 GPIO-Steuerung über die Konsole und Python .................................................. 434

12.6.1 Schalten per Konsole ................................................................................... 434 12.7 Unipolaren Steppermotor mit ULN2803-IC steuern ........................................ 436

12.7.1 Schaltung auf Steckboard umsetzen....................................................... 436 12.7.2 Vollschritt- vs. Halbschrittverfahren im Detail .................................... 439 12.7.3 Step by Step: Vollschritt- und Halbschrittverfahren im Einsatz.......441 12.7.4 Vorwärts- und Rückwärtsbewegungen umsetzen..............................444

12.8 Raspberry Pi – Auslösekabel im Selbstbau ..........................................................446 12.8.1 China-Auslösekabel besorgen, testen und modden........................... 447 12.8.2 Scharf stellen und auslösen – Auslösekabel durchleuchtet..............448 12.8.3 Schaltung für den GPIO-Einsatz designen und testen .......................449 12.8.4 Endmontage: Platine löten und Inbetriebnahme .................................. 451 12.8.5 Fotografieren über die Kommandozeile ................................................. 453

12.9 Scharf, schärfer, Selbstbauslider – GPIO-Scanner-Modding.......................... 454 12.9.1 Kamerakabelauslöser und Motorsteuerung im Gleichschritt .......... 454 12.9.2 Scanner ausschlachten und umbauen .................................................... 455 12.9.3 Makromotorsteuerung mit dem Raspberry Pi...................................... 456 12.9.4 Scannermotor als Makroscanner ............................................................. 458

12.10 Kameraslider im Eigenbau ........................................................................................ 459 12.10.1 Notwendiges Zubehör, Konstruktion und Vorarbeiten ..................... 459 12.10.2 Steppermotor mit Motortreiber koppeln ............................................... 463 12.10.3 Steuerung und Programmierung des Kamerasliders..........................466

12.11 Eigenbaukamera mit dem Raspberry Pi ................................................................. 471 12.11.1 Projekt franzisCAM – die Bauteilliste...................................................... 472 12.11.2 GPIO-Eingänge schalten: Risiken und Nebenwirkungen................... 473 12.11.3 Anschluss gesucht – Schaltung und GPIO-Pins verheiraten............ 478 12.11.4 Bildschirm-Modding für die franzisCAM................................................481 12.11.5 Kamerafirmware im Eigenbau...................................................................488 12.11.6 Inbetriebnahme – Hürden und Stolperschwellen ................................ 509 12.11.7 Gehäusebau mit der Laubsäge: Kamera aus Holz................................. 511 12.11.8 Neue Horizonte: zusätzliche Objektive im Einsatz .............................. 515 12.11.9 Hardcore-OP – Raspberry-Pi-Kamera......................................................522

12.12 Zeitrafferaufnahmen mit dem Raspberry Pi ........................................................ 524 12.12.1 Zeitraffersteuerung per Shellskript ...........................................................525 12.12.2 Alles auf Automatik – automatisch fotografieren ................................527 12.12.3 Zeitrafferaufnahmen mit dem Raspberry Pi erstellen ........................ 529 12.12.4 Aufnahme seitenverkehrt? – imagemagick im Einsatz...................... 529 12.12.5 Zeitraffervideo mit dem Raspberry Pi erstellen .................................... 531

12.13 Infusion für den Raspberry Pi – Wassertropfen fotografieren.........................533 12.13.1 Wasserpumpe – der Schaltungsaufbau ................................................. 534

Page 14: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

14

12.13.2 Mit Kabelbinder und Plastikflasche: Wassertropfenfotografie ....... 536 12.13.3 Wasserpumpe macht Fotos – Python-Skript anpassen .................... 538

12.14 Fotografieren mit dem Akustiksensor ................................................................... 543 12.14.1 Akustiksensor – Schaltungsaufbau.......................................................... 544 12.14.2 Shellskript für Akustiksensor ..................................................................... 545 12.14.3 Auslöser steuern – fotografieren oder filmen ....................................... 548

12.15 Schalter und Bewegungssensor kombinieren ..................................................... 549 12.15.1 Reed-Schalter am Raspberry Pi ................................................................ 550 12.15.2 Shellskript für Schalter- und Bewegungsmodul .................................... 551

12.16 Serienaufnahmen – Fotograf im Vogelhaus..........................................................553 12.16.1 Konsolenfotos: fswebcam via Shell nutzen ............................................553 12.16.2 Kamera und Bewegungsmelder: Piri-Skript aufbohren...................... 554 12.16.3 Ohne Strom nix los: Akkupack auswählen ............................................ 556 12.16.4 Vogelhausmontage: kleben und knipsen ................................................557

12.17 Objekt- und Gesichtserkennung mit OpenCV.................................................... 558 12.17.1 Einführung und Vorbereitung.................................................................... 559 12.17.2 OpenCV kompilieren ................................................................................... 560 12.17.3 Kein Bildschirm angeschlossen: OpenCV mit Remotedesktop....... 562 12.17.4 Gesichtserkennung mit OpenCV ............................................................. 563 12.17.5 Von der Gesichtserkennung zur Gesichtswiedererkennung

und Objekterkennung .................................................................................. 566 12.17.6 Haarcascade im Eigenbau – Schritt für Schritt zur

Beschreibungsdatei ...................................................................................... 569 12.18 OpenCV: von den Formen zu den Farben .............................................................573

12.18.1 Kamera und OpenCV im Zusammenspiel mit dem Raspberry Pi.....................................................................................................573

12.18.2 Farberkennung mit OpenCV und USB-Kamera ................................... 574 12.18.3 Farberkennung mit OpenCV und Raspberry-Pi-CSI-Kamera .......... 578

12.19 Big Brother zu Hause mit dem Raspberry Pi........................................................ 580 12.19.1 Wie gewohnt: ZoneMinder per apt-get installieren............................ 581 12.19.2 ZoneMinder mit Apache-Webserver koppeln..................................... 583 12.19.3 Zwingend notwendig: Benutzer für ZoneMinder anlegen................ 585 12.19.4 Kein Firefox – Cambozola installieren..................................................... 585 12.19.5 MySQL-Datenbank mit ZoneMinder-Daten initialisieren ................ 586 12.19.6 Lokale Webcam für ZoneMinder-Einsatz vorbereiten ...................... 587 12.19.7 Kamera in Raspberry-Pi-ZoneMinder einbinden................................. 588 12.19.8 Lib-JPEG-Fehlermeldung eliminieren....................................................... 591

12.20 IP-Kamera mit dem Raspberry Pi koppeln ........................................................... 594 12.20.1 IP-Kamera in Betrieb nehmen ................................................................... 595 12.20.2 IP-Kamera konfigurieren ............................................................................. 596 12.20.3 IP-Kamera mit ZoneMinder koppeln ...................................................... 602 12.20.4 Mehr Bandbreite, mehr Qualität – ZoneMinder-Feintuning ............604

Page 15: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis 15

12.20.5 Elektronischer Wachhund auf dem Raspberry Pi ................................ 605 12.20.6 Raspberry Pi als Fernbedienung für die Webcam nutzen .................609 12.20.7 Alles unter Kontrolle – IP-Kamera aus der Ferne steuern.................. 615

13 Raspberry Pi als Haushaltshilfe ............................................................................. 619 13.1 Grill- und Backofen-Modding ................................................................................... 619

13.1.1 Analog/Digital-Wandler MCP3008/MCP3208 nachrüsten......... 620 13.1.2 Datenblatt prüfen und Funktionen verstehen....................................... 620 13.1.3 MCP3008 und MCP3208 auf Steckboard nutzen .............................. 621 13.1.4 Programmierung des MCP3008 mit Python........................................ 624 13.1.5 SPI-Schnittstelle aktivieren ........................................................................ 629 13.1.6 SPI-Nutzung ohne Umwege: py-spidev-Modul installieren.............. 631 13.1.7 Mehrere Analogsensoren über py-spidev verarbeiten ...................... 632 13.1.8 Programmierung des MCP3208 mit Python........................................ 635

13.2 Temperaturmessung mit Fleischthermometer und MCP3208..................... 636 13.2.1 Grillthermometer vom Möbelhändler..................................................... 638 13.2.2 Schaltung für Thermometer und MCP3208......................................... 638 13.2.3 MCP3208-IC über SPI-Schnittstelle abfragen...................................... 641 13.2.4 Rechnen und normalisieren: Widerstand nach Temperatur

überführen....................................................................................................... 645 13.2.5 Tuning für das Raspberry-Pi-Thermometer ..........................................649

13.3 Braten und grillen mit dem Raspberry Pi ............................................................... 651 13.3.1 Kerntemperaturmessung – bessere Steaks mit dem

Raspberry Pi..................................................................................................... 651 13.4 Staubsauger-Modding ............................................................................................... 652

13.4.1 Vorwerk vs. Neato – mehr als nur eine Kopie ...................................... 653 13.4.2 Einrichtung und Treiberinstallation.......................................................... 654 13.4.3 Zugriff über PuTTY auf das Betriebssystem ......................................... 658

13.5 Staubsauger über Raspberry Pi steuern................................................................ 659 13.5.1 Staubsaugerroboter mit Raspberry Pi verbinden................................. 659 13.5.2 minicom-Modemzugang zum Staubsauger einrichten ..................... 662 13.5.3 minicom-Steuerung für den Staubsauger..............................................664 13.5.4 Staubsaugerkommandozeile im Überblick............................................ 667 13.5.5 Python-Programmierung über python-serial........................................ 668 13.5.6 Spazierfahrt mit der Kommandozeile – Staubsauger

fortbewegen..................................................................................................... 671 13.5.7 Zeitplanung für die Staubsaugermaschine............................................ 674

13.6 Vorwerk/Neato-Staubsauger und Raspberry Pi koppeln ................................ 677 13.6.1 Aufwecken aus dem Schlafmodus........................................................... 678 13.6.2 USB-Geräte über GPIO schalten ..............................................................680 13.6.3 Staubsauger mit dem Raspberry Pi verbinden ..................................... 682 13.6.4 Schaltung über Kommandozeile prüfen .................................................684

Page 16: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

16

13.7 Roboter über die Webseite steuern ....................................................................... 685 13.7.1 Python-Zugriff über Browser – Bottle im Einsatz ................................ 686

13.8 Video-Streaming installieren und einbinden ....................................................... 692 13.8.1 Streaming-Werkzeug laden und installieren ........................................ 693 13.8.2 MJPG-Streamer als Live-View-Quelle ................................................... 695 13.8.3 Live-View und Steuerung verheiraten .................................................... 699 13.8.4 Fotografieren mit dem Vorwerk/Neato-Staubsauger .......................704

13.9 Drahtlos-Raspberry-Pi einrichten ........................................................................... 705 13.9.1 Raspberry Pi mit drahtloser Stromversorgung ..................................... 706 13.9.2 Akkupack und USV für Raspberry Pi kombinieren.............................. 707 13.9.3 WLAN-Netzwerk einrichten und Verbindung aufnehmen............... 708 13.9.4 Umschalten zwischen WLAN-Verbindungen....................................... 712 13.9.5 WLAN-Verbindung mit Python steuern ................................................. 714

13.10 Staubsaugerroboter mit dem Smartphone steuern............................................ 715 13.10.1 USB-Debugging-Modus – Smartphone einrichten .............................. 716 13.10.2 Staubsaugerroboter mit dem Smartphone koppeln ............................ 717

13.11 LIRC im Einsatz: Raspberry Pi, NUC & Co. ............................................................ 719 13.11.1 Infrarotsignalverarbeitung mit dem Raspberry Pi................................. 719 13.11.2 LIRC-Gerätedatei für den Roomba-Staubsauger erstellen ................732

13.12 PyGame-Benutzeroberfläche für die IR-Steuerung ...........................................740 13.12.1 Installation und Inbetriebnahme...............................................................740 13.12.2 Erste Schritte mit PyGame .........................................................................740 13.12.3 Ausgabe eines Bildschirmhintergrunds mit Text ................................ 742 13.12.4 Interaktion mit dem Benutzer.................................................................... 745 13.12.5 Ausgabe der x,y-Koordinaten beim Klicken.......................................... 745 13.12.6 Grafikausgabe und Interaktion.................................................................. 748 13.12.7 Grafische Benutzeroberfläche für eine Fernbedienung.......................753 13.12.8 Infrarotsignale versenden mit PyGame .................................................. 754

14 Jenseits der Standard-pHATs: Erweiterungen ...................................................757 14.1 Gertboard – Tulpen für den Raspberry Pi ..............................................................757

14.1.1 Gertboard – Platinen- und Funktionsübersicht .................................... 758 14.1.2 Installation und Inbetriebnahme............................................................... 760 14.1.3 Raspberry Pi für Arduino-IDE vorbereiten.............................................. 761 14.1.4 ATmega-IC für Arduino-IDE verkabeln.................................................. 764 14.1.5 Gertboard-ATmega-IO- und Arduino-Pins im Blick........................... 766 14.1.6 Remotedesktop für den Arduino-Zugriff einrichten ........................... 768 14.1.7 Raspberry Pi macht Sketche: Arduino-IDE im Einsatz....................... 768

14.2 Motorsteuerung mit dem Raspberry-Pi-Gertboard ........................................... 771 14.2.1 Gleichstrommotor am Gertboard .............................................................772

14.3 Arduino-Shields für den Raspberry Pi – Embedded Pi im Einsatz ..................773 14.3.1 Embedded Pi – Raspberry Pi und Arduino ..............................................773

Page 17: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Inhaltsverzeichnis

17

14.3.2 Inbetriebnahme und Installation............................................................... 774 14.3.3 Mit arduPi: Arduino-Code auf dem Raspberry Pi .................................775 14.3.4 Einfache LED-Schaltung mit Embedded Pi ............................................ 776 14.3.5 Motorsteuerung mit Embedded Pi und Arduino ................................. 778

14.4 Gertboard schrumpft zu GertDuino....................................................................... 780 14.4.1 GertDuino: Installation und Inbetriebnahme ......................................... 781 14.4.2 GertDuino und Raspberry Pi verbinden................................................... 781 14.4.3 Arduino-IDE & Co. installieren.................................................................. 782 14.4.4 Arduino-GUI mit GertDuino nutzen........................................................ 785 14.4.5 GertDuino im Praxiseinsatz ....................................................................... 786

Stichwortverzeichnis ............................................................................................... 791

Page 18: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für
Page 19: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Raspberry 1, 2, 3 oder Zero?

Die Entwicklung schreitet nicht nur in der IT generell, sondern auch beim Raspberry-Pi-Projekt fort. Alle paar Monate gibt es sowohl auf Software- als auch auf Hardware-seite eine Weiterentwicklung zu vermelden: Während das erste Raspberry Pi 1 Modell A mit nur einem USB-Port und ohne Netzwerkanschluss ausgeliefert wurde, war sein Nachfolger, Modell B, bereits mit zwei USB-Ports und einer RJ45-10/100-MBit-Netzwerkschnittstelle ausgerüstet.

Bild 1.1: Alle Anschlüsse an Bord: Links befindet sich der Micro-SD-Kartenslot, dann folgen die Pinlöcher für den 40-Pin-Header der GPIO-Schnittstelle, je zwei Pins für Reset und FBAS-Videoausgang, der Micro-USB-Spannungsanschluss und der Micro-USB für Daten und USB-Erweiterungen. Zu guter Letzt ist die Mini-HDMI-Buchse verbaut.

Page 20: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

20

Im Herbst 2012 wurde das Modell B von einem zweiten B-Modell (Revision 2) abgelöst, das im Vergleich zu seinem Vorgänger mit mehr Arbeitsspeicher ausgestattet ist. Während die ersten Modelle mit 256 MByte Kapazität bestückt sind, bietet das Modell B2 nunmehr 512 MByte – also doppelt so viel RAM. Diese Speichermenge findet sich auch bei dem im Dezember 2015 veröffentlichten Raspberry Pi Zero, während der Raspberry Pi 2 Modell B vom Februar 2015 eine Speichergröße von 1 GByte mitbringt. Der Prozessor ist bei diesen großen 2015er-Modellen der A7-Cortex mit vier Kernen und 900 MHz Taktfrequenz, was in den Benchmarks einer rund sechsfachen Leistungs-steigerung gegenüber dem Raspberry Pi 1 entspricht.

Bild 1.2: Im ersten Quartal 2016 wurde der Raspberry Pi 3 mit integrierter WLAN- und Bluetooth-Schnittstelle der Öffentlichkeit präsentiert.

Im Februar 2016 wurde von der Raspberry-Pi-Foundation der A8-Cortex mit 64-Bit-CPU BCM 2837 mit 1,2 GHz, einem integrierten WLAN-Modul und einem Bluetooth-Modul veröffentlicht. Laut Hersteller soll die neue Platine rund 50 bis 60 % schneller als die CPU des Vorgängers Raspberry Pi 2 sein, und auf jeden Fall benötigt der Raspberry Pi 3 somit nach Wunschdenken der Raspberry-Pi-Foundation auch ein besseres Netzteil mit 2,5 A (A = Ampere) Stromstärke, was bei 5 V (V = Volt) Span-nung ein 12-W-Netzteil (W = Watt) bedeutet. In der Praxis funktionieren die »alten« Netzteile der älteren Raspberry-Pi-Platinen nach wie vor, bei zusätzlich angeschlosse-nem USB-Equipment an den USB-Buchsen bieten sie jedoch keine Leistungsreserven mehr. Wie beim Raspberry Pi Zero wird auf die Overklocking-Option im Werkzeug raspi-config verzichtet, dies lässt also keine Anpassung der Taktfrequenz zu.

Page 21: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

21

Warum Raspberry Pi?

Bekanntlich stammt das Wort »Raspberry« aus dem Englischen und bedeutet Himbeere. »Pi« ist die Abkürzung für Python Interpreter, wobei Python von der Raspberry-Pi-Foundation und dem Autor als bevorzugte Programmiersprache auf dem Raspberry Pi empfohlen wird.

Im Juli 2014 wurden das Industriemodul Raspberry Pi Compute Module samt pas-sendem IO-Board sowie der auf dem Raspberry Pi B(2) basierende verbesserte Raspberry Pi B+ vorgestellt. Zwar setzen beide 2014er-Modelle noch im Wesent-lichen auf die gleiche Basis auf, differieren jedoch hinsichtlich der Anzahl der Schnitt-stellen und den damit verbundenen Möglichkeiten.

Raspberry

Pi

Raspberry

Pi 1

Modell A

Raspberry

Pi 1

Modell A+

Raspberry

Pi 1

Modell B

Raspberry

Pi 1

Modell B2

Raspberry

Pi 1

Modell B+

Raspberry

Pi 2

Modell B

Raspberry

Pi 3

Modell B

Modell

CMIO (A)

Raspberry

Pi Zero1

CPU 700 MHz

ARM1176JZ

F-S core

(ARM11)

700 MHz

ARM1176JZ

F-S

(ARM11)

700 MHz

ARM1176JZ

F-S core

(ARM11)

700 MHz

700 MHz

ARM1176JZ

F-S

700 MHz

ARM1176JZ

F-S

(ARM11)

900 MHz

ARM

Cortex-A7

1.200 MHz

ARM

Cortex-A8

700 MHz

ARM1176J

ZF-S

(ARM11)

1 GHz MHz

ARM1176JZ

F-S

(ARM11)

SoC Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2836

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2837

(CPU +

GPU + DSP

+ SDRAM)

Broadcom

BCM2835

(CPU +

GPU +

DSP +

SDRAM)

Broadcom

BCM2835

(CPU +

GPU + DSP

+ SDRAM)

GPU Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Broadcom

Video-

Core IV,

OpenGL

ES 2.0,

1080p30

h.264/MP

EG-4-

AVC-

Decoder

Broadcom

VideoCore

IV,

OpenGL ES

2.0,

1080p30

h.264/MPE

G-4-AVC-

Decoder

Speicher 256 MByte

(geteilt

mit GPU)

256 MByte

(geteilt

mit GPU)

256 MByte

(geteilt

mit GPU)

512 MByte

(geteilt

mit GPU)

512 MByte

(geteilt

mit GPU)

1.024 MBy

te (ge-

teilt mit

GPU)

1.024 MBy

te (ge-

teilt mit

GPU)

512 MByt

e (ge-

teilt

mit GPU)

512 MByte

(geteilt

mit GPU)

USB-2.0-

Anschlüsse

1 1 2 (ein-

gebauter

USB-Hub)

2 (ein-

gebauter

USB-Hub)

4 (ein-

gebauter

USB-Hub)

4 (ein-

gebauter

USB-Hub)

4 (ein-

gebauter

USB-Hub)

1 1

1 Am 16.05.2016 hat die Raspberry Pi Foundation den Raspberry Pi Zero mit FPC-Anschuss für die

Kamera veröffentlicht, ansonsten ist das Modell identisch mit der in dieser Tabelle aufgeführten Version.

Page 22: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

22

Raspberry

Pi

Raspberry

Pi 1

Modell A

Raspberry

Pi 1

Modell A+

Raspberry

Pi 1

Modell B

Raspberry

Pi 1

Modell B2

Raspberry

Pi 1

Modell B+

Raspberry

Pi 2

Modell B

Raspberry

Pi 3

Modell B

Modell

CMIO (A)

Raspberry

Pi Zero2

Video-

ausgang

Composite

RCA (PAL

und

NTSC),

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von 640 × 350 bis

1.920 × 1.200

(PAL und

NTSC)

HDMI

(Rev. 1.3

und 1.4),

HDMI-Auf-

lösung

von 640 ×350 bis

1.920 × 1.200

(PAL und

NTSC),

Compo-

site-RCA-

Signal

über 3,5-

mm-Klinke

Composite

RCA (PAL

und

NTSC),

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von

640 × 350 bis

1.920 × 1.200 (PAL

und NTSC)

Composite

RCA (PAL

und

NTSC),

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von 640 × 350 bis

1.920 × 1.200

(PAL und

NTSC)

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von 640 ×350 bis

1.920 × 1.200

(PAL und

NTSC),

Compo-

site-RCA-

Signal

über 3,5-

mm-Klinke

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von 640 ×350 bis

1.920 × 1.200

(PAL und

NTSC),

Compo-

site-RCA-

Signal

über 3,5-

mm-Klinke

HDMI

(Rev. 1.3

und 1.4),

HDMI-

Auflösung

von 640 × 350 bis

1.920 × 1.200

(PAL und

NTSC),

Compo-

site-RCA-

Signal

über 3,5-

mm-Klinke

HDMI

(Rev.

1.3 und

1.4),

HDMI-

Auflö-

sung von

640 × 350 bis

1.920 × 1.200

(PAL und

NTSC)

Mini-

HDMI-

Auflösung

von 640 × 350 bis

1.920 × 1.200

(PAL und

NTSC)

Audio-

ausgang

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

3,5-mm-

Klinke,

HDMI

HDMI HDMI,

über PWM-

GPIO

Onboard-

Steck-

plätze

SD-/MMC-/

SDIO-

Karten-

slot

Micro-

SD-/MMC-/

SDIO-

Karten-

slot

SD-/MMC-/

SDIO-

Karten-

slot

SD-/MMC-/

SDIO-

Karten-

slot

Micro-

SD-/MMC-

/SDIO--

Karten-

slot

Micro-

SD-/MMC-

/SDIO-

Karten-

slot

Micro-

SD-/MMC-

/SDIO-

Karten-

slot

- Micro-

SD-/MMC-

/SDIO-

Karten-

slot

Onboard-

eMMC-

Speicher

- - - - - - - 4 GByte -

Onboard-

Netz-

werkan-

schluss

- - 10/100

Ethernet

10/100

Ethernet

10/100

Ethernet

10/100

Ethernet

10/100

Ethernet

- -

Onboard-

WLAN-

Anschluss

- - - - - - BCM43143

2,4 GHz

WLAN

b/g/n

- -

Onboard-

Bluetooth-

Schnitt-

stelle

- - - - - - Bluetooth

4.1 Low

Energy

- -

Low-Level-

Anschlüsse

18 GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

27 × GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

18 GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

18 GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

27 × GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

27 × GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

27 × GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

27 × GPIO,

UART,

I2C-Bus,

SPi-Bus,

+3,3 V,

+5 V,

Masse

2 Am 16.05.2016 hat die Raspberry Pi Foundation den Raspberry Pi Zero mit FPC-Anschuss für die

Kamera veröffentlicht, ansonsten ist das Modell identisch mit der in dieser Tabelle aufgeführten Version.

Page 23: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

23

Raspberry

Pi

Raspberry

Pi 1

Modell A

Raspberry

Pi 1

Modell A+

Raspberry

Pi 1

Modell B

Raspberry

Pi 1

Modell B2

Raspberry

Pi 1

Modell B+

Raspberry

Pi 2

Modell B

Raspberry

Pi 3

Modell B

Modell

CMIO (A)

Raspberry

Pi Zero3

Stromauf-

nahme

500 mA

(2,5 W)

400 mA

(3 W)

700 mA

(3,5 W)

700 mA

(3,5 W)

600 mA

(3 W)

800 mA

(4 W)

1.200 mA

(6 W)

500 mA

(2,5 W)

600 mA

(3 W)

Größe 85,60 × 53,98 mm

65 × 56 mm

85,60 × 53,98 mm

85,60 × 53,98 mm

85 × 56 mm

85 × 56 mm

85 × 56 mm

65 mm × 35 mm

(S0-

DIMM-

Platine)

85 × 56 mm

GPIO-

Pinleiste

Anzahl

Pins

26 40 26 26 40 40 40 120 40 (ohne

Stift-

leiste)

Tabelle 1: Technische Daten der Raspberry-Pi-Modelle im Überblick

Die GPIO-Schnittstelle besitzt bei den älteren Raspberry Pi 1-Modellen A, B und B2 26 Pins, bei den verbesserten Modellen Raspberry Pi 1 A+ und B+ sowie beim Raspberry Pi 2 Modell B 40 Pins und bei dem IO-Board des Compute Module 120 Pins. Im Fall eines Raspberry Pi 1 Modell A, B, B2 verwendet der Prozessor insgesamt 54 Ein- und Ausgabeleitungen, von denen 17 als »echte« GPIO-Schnittstellen zur Verfügung stehen. Die eigentliche Anzahl der im Endeffekt frei nutzbaren GPIO-Anschlüsse wird nochmals reduziert, da einige Pins alternative Funktionen mitbrin-gen, etwa eine I2C4- oder eine SPI-Schnittstelle oder die serielle UART-Schnittstelle, die beispielsweise einen RX- und einen TX-Pin benötigt. Sollen sämtliche Schnittstel-len verwendet werden, verbleiben bei den »alten« Raspberry-Pi-Platinen acht »echte« GPIO-Pins, die sich für Hardwareexperimente verwenden lassen. Mit der Einführung der verbesserten A+- und B+-Modelle bei den alten Raspberry-Pi-1-Platinen bzw. dem Raspberry-Pi-2-, Zero- und CMIO-Board wird mit mehr zur Verfügung stehen-den Pins auch die Anzahl der zur Verfügung stehenden GPIO-Anschlüsse erhöht.

Die Raspberry-Pi-Modelle mit den 40 Pins lösen nebenher auch die »alten« Rasp-berry-Pi-Modelle der ersten Generation mit der kleinen 26-poligen Stiftreihe ab, die nicht mehr produziert werden. Um nach Kauf und Lieferung zu kontrollieren, was genau unter der Haube steckt und welche Version des Raspberry Pi geliefert wurde, geben Sie in der Kommandozeile folgenden Befehl ein:

cat /proc/cpuinfo

Damit lassen Sie sich die Hardwareinformationen, etwa die CPU-Prozessorinforma-tionen, ausgeben. In der tabellarischen Ausgabe suchen Sie nach dem Eintrag Revi-sion – hier steht für den Raspberry Pi Modell A der Code 1. Für den B-Nachfolger wird Code 2 bzw. eine weitere unwesentlich geänderte Revision 3 genutzt, während für das Modell Raspberry Pi 1 B Revision 2 die Codes 4, 5 und 6 zum Einsatz kommen.

3 Am 16.05.2016 hat die Raspberry Pi Foundation den Raspberry Pi Zero mit FPC-Anschuss für die

Kamera veröffentlicht, ansonsten ist das Modell identisch mit der in dieser Tabelle aufgeführten Version. 4 Auch I2C geschrieben. In diesem Buch wird durchgängig I2C verwendet.

Page 24: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

24

Bild 1.3: Für den kleinen, günstigen Raspi Zero wird Code 7 verwendet.

Um den Raspberry Pi zu erträglichen Kosten zu erhalten, sollten Sie den Kauf bei den offiziellen Raspberry-Distributoren wie Farnell & Co. präferieren. Zwar gibt es zahl-reiche Händler, die über die bekannten Verlaufsplattformen im Internet ebenfalls Raspberry-Pi-Platinen verkaufen, doch es kommt hin und wieder vor, dass noch immer Mondpreise verlangt werden.

Bild 1.4: 50 Euro werden für die kleine Raspberry-Pi-Platine beim Kauf auf eBay fällig. Bei Farnell & Co. kam es nach Ankündigung der Zero-Platine zu Lieferengpässen – wir warteten fast vier Wochen, bis wir den Raspberry Pi Zero in den Händen halten durften.

Bei undurchsichtigen Händlern sollten Sie von Ihrem Umtauschrecht Gebrauch machen, bei Privatkäufen ist das jedoch eine zähe Angelegenheit. Wie auch immer: Ungeduldige, die den Raspberry Pi möglichst heute noch in den Händen halten wollen, zahlen bei Auktionsplattformen einen satten Aufschlag: So sind Preise um die 50 Euro für die nackte Raspberry-Pi-Zero-Platine leider nichts Ungewöhnliches.

Page 25: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1.1 Linux auf dem Raspberry Pi

25

Kaufen Sie zumindest bei einem gewerblichen Verkäufer, wenn Sie Wert auf Garantie und Rückgaberecht legen.

1.1 Linux auf dem Raspberry Pi

Der Raspberry Pi ist ein preisgünstiges Board für den Einstieg in die Welt des immer weiter verbreiteten Embedded Linux – demzufolge ist auch das eingesetzte Betriebs-system aus der Linux-Welt. Linux selbst wurde bekanntlich von Linus Torvalds, der für den PC den ersten Unix/Linux-Kernel entwickelte, ins Leben gerufen. Je nach ein-gesetzter Hardware und Einsatzzweck sind am Markt diverse Unix/Linux-Varianten verbreitet, und für den Raspberry Pi existiert ebenfalls eine speziell angepasste Ver-sion. Die Macher hinter dem Raspberry Pi veröffentlichen laufend aktuelle Versionen des Raspbian-Linux (zusammengesetzt aus den Begriffen Raspberry Pi und Debian-Linux). Debian kommt bei größeren Distributionen wie der Ubuntu-Familie ebenfalls zum Einsatz – für den Raspberry Pi existieren neben dem »originalen« Raspbian auch weitere speziell angepasste Lösungen, die genau auf den jeweiligen Einsatzzweck zugeschnitten sind.

Linux Einsatzzweck

Raspbian Büro/Office-Suite

Raspbian Lite Einsatz mit Serverdiensten und Services

Kodi/OpenELEC Multimedia-Linux/Streaming-Gerät

Retropie Raspbian mit speziellen Arcade-Konsolenspielan-

passungen und Oberfläche

Egal welches Raspberry-Pi-Linux zum Einsatz kommt, allen gemeinsam ist, dass der Raspberry Pi selbst kein BIOS besitzt. Die nötigen Hardwareparameter und Einstel-lungen finden Sie in der Datei /boot/config.txt. Diese Textdatei kann im laufenden Betrieb mit einem gewöhnlichen Linux-Editor (vi oder nano in der Konsole, gedit in der GUI) geöffnet werden. Die Bearbeitung ist mit administrativen root-Rechten möglich, dafür benötigen Sie ein vorangestelltes sudo-Kommando. Alternativ kom-men Sie auch über die Micro-SD-Karte auf einem Windows-/Mac-Computer über die /boot-Partition an diese Datei heran, die mit einem passenden Editor wie Textpad, Notepad++ oder Notepad angepasst werden kann. Andere Editoren oder gar Textverarbeitungen sind hier zu meiden, da sie den Zeilenumbruch der Unix-Datei zerstören können – die Datei ist unter Linux dann nicht mehr wie vorgesehen ver-arbeitbar.

1.1.1 Terminal – Kommandozeile für den Raspberry Pi Manche Dinge lassen sich auf der Kommandozeile – im Terminal und hier im Spezi-ellen im LXTerminal – schneller und bequemer erledigen. Das LXTerminal-Programm

Page 26: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

26

bietet die Möglichkeit, mehrere Register in einem Fenster zu halten, was für Übersicht auf dem Desktop sorgt.

Befehlseingaben wiederholen

Um nicht immer das Rad neu erfinden und lange Befehlszeilen stupide neu eintippen zu müssen, können Sie mit den Pfeiltasten [½] und [¼] zwischen den zuletzt verwendeten Kommandos navigieren. Damit greifen Sie auf die in der History gespeicherten Kommandos zu – welche das genau sind, können Sie sich per history-Befehl auf der Kommandozeile ausgeben lassen. Die History wird ständig um die neuen Eingaben ergänzt und bleibt auch bei einem Neustart des Raspberry Pi erhalten.

1.1.2 Konsolenbasics: wichtige Befehle im Überblick Die Konsole bzw. bei Linux und Mac OS das Terminal kommt standardmäßig im Textmodus daher und lässt sich ebenfalls von der GUI aus starten. Damit sich auch Linux-Neulinge auf Anhieb auf der Kommandozeile wohlfühlen, folgen hier die wich-tigsten Befehle im Überblick:

Beschreibung Befehl

MAC-Adresse herausfinden. arp –a

Verknüpfung von Dateien. cat

Ordner wechseln. cd /[ORDNERNAME]

Datei kopieren. cp [dateiname.erweiterung]

[ZIEL]/

Textdateien spaltenweise bearbeiten. cut

Datum und Zeit ausgeben. date

Aktuelles Fenster bzw. Verbindung oder

Session schließen.

exit

DNS-Namensauflösung auf der Konsole. echo

Vergleich/Differenz zweier Dateien aus-

geben.

diff

Statusinformationen eines DNS-Servers

abfragen

dig

Bitweises Kopieren von Datenträgern. dd

Freien Speicherplatz anzeigen. df -h

Datei suchen. find -name "[datei-

name.erweiterung]"

Dateiinhalt durchsuchen. grep

GZ-Archiv auspacken. gunzip [dateiname.gz]

Page 27: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1.1 Linux auf dem Raspberry Pi

27

Beschreibung Befehl

Laufende Prozesse beenden und System

herunterfahren.

halt

Liste der bisher eingegebenen Kommandos

anzeigen.

history

DNS-Informationen herausfinden. host

Zeigt den Hostnamen an. hostname

Netzwerkkonfiguration anzeigen. ifconfig

Drahtlose Netzwerkkonfiguration anzei-

gen.

iwconfig

Beendet den angegebenen laufenden Pro-

zess.

kill

Wie ifconfig ip

Wie iwconfig. iw

Dateiinhalt anzeigen. less

[dateiname.erweiterung]

Erzeugt Links zwischen Dateien und Ord-

nern.

ln

Ordnerinhalt anzeigen. ls oder

ls –al

Zeigt den aktuellen Standort im Ordner. lwd

Verzeichnis erstellen. mkdir [VERZEICHNISNAME]

Hilfe zu einzelnen Befehlen. man [BEFEHL]

Mehrere Dateien verschieben (Multiple

Move mit Wildcard-Parametern).

mmv

[dateiname.erweiterung]

Datei löschen. rm [dateiname.erweiterung]

Datei verschieben. mv [dateiname.erweiterung]

[ZIEL]/

Editor nano. nano [Pfad][Dateiname]

[Strg] + [X] zum Speichern

und Beenden

Offene Ports und bestehende Netzwerk-

verbindungen zeigen.

netstat

Erreichbarkeit anderer Netzwerkgeräte

prüfen.

ping

Passwort ändern. passwd

Liste der aktiven Prozesse anzeigen. ps –ax

Name des aktuellen Verzeichnisses an-

zeigen

pwd

Page 28: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

28

Beschreibung Befehl

Anzeige der Routingtabelle. route

Ordner löschen. rmdir ORDNERNAME]

Dienste auf dem Raspberry Pi neu star-

ten.

service [dienstname]

restart

Dienste auf dem Raspberry Pi starten. service [dienstname] start

Dienste auf dem Raspberry Pi beenden. service [dienstname] stop

SSH-Verbindung zu entferntem Computer

aufnehmen.

ssh [IP-Adresse] oder

ssh [DNS-Adresse]

bei Benutzerwechsel den

gewünschten Benutzer-

namen vor [IP-Adresse]

bzw. [DNS-Adresse]

ssh_benutzername@[IP-Ad-

resse]

Befehl als Superuser ausführen. sudo [BEFEHL]

TGZ-Archiv entpacken. tar xzvf [dateiname.tgz]

Verbindungsanalyse. traceroute

Zugriffsstempel einer Datei ändern. touch [DATEINAME]

Benutzer hinzufügen. useradd [BENUTZER]

Benutzer löschen. userdel [BENUTZER]

Benutzer ändern. usermod [BENUTZER]

Editor vi. vi [Pfad][Dateiname]

Esc-Taste und :q zum

Speichern

i-Taste zum Ändern/

Einfügen von Text

Zeigt den Pfad eines Programms an. which

Um weitere Informationen zu einem Befehl zu erhalten, nutzen Sie am besten den apropos- oder den man-Mechanismus. Mit dem man-Befehl (Manual, Handbuch) wirft die Konsole für nahezu jeden Konsolenbefehl die passende Syntax und die entspre-chenden Parameter aus. Geben Sie beispielsweise man cp ein, listet man sämtliche Parameter zum Kopieren der Datei/des Ordners auf.

1.1.3 chmod: effektive Berechtigungen Eine Spezialität unter Unix im Allgemeinen ist der Befehl chmod, mit dem Sie den Zugriff auf Dateien und Verzeichnisse regeln können. Das Unix-Rechtesystem hat drei verschiedene Bereiche:

Page 29: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1.1 Linux auf dem Raspberry Pi

29

] Benutzer (user)

] Gruppe (group)

] andere (other)

Für jeden Bereich können folgende Eigenschaften zugewiesen werden:

] r = lesbar (readable), Wert: 4

] w = beschreibbar (writeable), Wert: 2

] x = ausführbar (executable), Wert: 1

Beim Linux des Raspberry Pi, wenn Sie also beispielsweise ls ausführen, werden diese Eigenschaften im folgenden Format angezeigt:

rwxrwxrwx

Die ersten Buchstaben gelten für den Bereich user, weitere drei für group und die letzten drei für other. Der Ausdruck rwxr--r-- bedeutet: Der Besitzer darf die Datei lesen, schreiben und ausführen, alle anderen Personen haben nur Lesezugriff. Um die Darstellung in Form einer oktalen Zahl zu erhalten, müssen Sie alle Werte für jeden Bereich addieren. In diesem Fall gilt: (4 +2 + 1) (4) (4) = 744. So können Sie mit

chmod 744 [DATEINAME.DATEIERWEITERUNG]

die entsprechenden Rechte setzen.

1.1.4 Device-Tree-Optionen in der config.txt Seit Kernel 3.18.3 verwendet Raspbian standardmäßig das Overlay-Modell und kann somit durch einen Gerätebaum (Device Tree) effektiv ergänzt werden, ohne dass dabei der Kernel selbst angepasst werden muss. Der Device Tree ist standardmäßig aktiviert und kann entweder über das Werkzeug raspi-config oder über die /boot/config.txt abgeschaltet werden. Dafür tragen Sie dort die Zeile

device_tree=

ein. Das neue Overlay-Modell funktioniert jedoch bei älterer Hardware nicht immer, was zur Folge hat, dass die Overlay-Technik mit dem Eintrag device_tree= in der config.txt auszuschalten ist, damit das Treibermodell über die Module wieder funk-tioniert. Alternativ lässt sich dies auch mit einem Eigenbaukernel bewerkstelligen, doch auf dem Raspberry Pi ist dies eine zeitraubende Angelegenheit.

Bei der Rückkehr zum »alten« Modulkonzept lassen sich anschließend mit dem »neuen« Raspbian die Kernelmodule wie bisher über das Eintragen oder Auskom-mentieren in der Datei /etc/modprobe.d/raspi-blacklist.conf steuern. Empfeh-lenswerter ist es, sich beim Einsatz eines neuen Raspberry Pi und beim Bau eines neuen Projekts näher mit den Device-Tree-Optionen zu beschäftigen. Diese werden über die Systemdatei /boot/config.txt gesteuert.

Page 30: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

1 Raspberry 1, 2, 3 oder Zero?

30

sudo su

nano /boot/config.txt

Für verschiedene Geräte bzw. Schnittstellen sind dort in Zusammenhang mit der akti-vierten dt-Option die in der nachstehenden Tabelle aufgeführten Einträge möglich.

Treiber/Geräte-

schnittstelle

Nötiger Eintrag in

/boot/config.txt

Bemerkung

I2C dtparam=i2c_arm=on Die weitere Zuordnung wie

ehemals:

dtparam=i2c1=on bzw.

dtparam=i2c0=on ist nicht

mehr nötig.

SPI dtparam=spi=on

I2S dtparam=i2s=on Soundschnittstelle.

lirc-rpi dtoverlay=lirc-rpi Fernbedienung.

dtoverlay=lirc-

rpi,gpio_in_pin=16,gpio_i

n_pull=high

Fernbedienung mit Modulpa-

rameter (GPIO-Pin 16).

w1-gpio dtoverlay=w1-gpio-

pullup,gpiopin=gpio_pin_x

1-Wire/OneWire, z. B.

Thermometer an GPIO x.

pullup,gpiopin=gpio_pin_x

,pullup=gpio_pin_y

1-Wire/OneWire, z. B.

Thermometer – hier mit ex-

ternen Pull-up-Widerstand

an GPIO y.

pHAT –

HiFiBerry

oder DAC

dtoverlay=hifiberry-dac

dtoverlay=hifiberry-

dacplus

dtoverlay=hifiberry-digi

dtoverlay=iqaudio-dac

dtoverlay=iqaudio-dacplus

Abhängig vom jeweiligen

Geräte(modell).

Beachten Sie, dass die in der Datei /boot/config.txt vorgenommenen Änderungen erst mit dem Neustart des Systems in Kraft treten.

Schnittstellenanpassung ohne raspi-config

Aufgrund des flexiblen Zweidrahtdesigns (Serial Data) und SCL (Serial Clock) sind nur zwei Pins auf der GPIO-Leiste des Raspberry Pi nötig – die Unterscheidung der ange-schlossenen Geräte erfolgt über ihre Geräteadresse auf dem I2C-Bus. Damit das funktioniert, muss zunächst das I2C-Kernelmodul auf dem Raspberry Pi in Betrieb genommen werden. Dies erledigen Sie dadurch, dass Sie im ersten Schritt ebenjenes Kernelmodul aus der raspi-blacklist.conf-Datei entfernen und im zweiten Schritt

Page 31: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Raspberry Pi: Selbstbau in zwei Minuten

Je nach Verwendungszweck und persönlichen Vorlieben wird die kleine Raspberry-Pi-Platine von Hartgesottenen ohne jeglichen Schutz in Form eines Gehäuses oder Ähn-lichem betrieben. Je nach Ablageort der Platine und eventuellen Witterungseinflüssen ist ein passendes Gehäuse aber nicht nur ratsam, sondern manchmal sogar zwingend erforderlich. Ideen und Beispiele für den Selbstbau bzw. den Zusammenbau eines Gehäuses bietet das Raspberry-Pi-Forum im Speziellen und das Internet im Allgemei-nen zuhauf. Sie benötigen nur ein wenig Zeit und Kreativität, um ein persönliches Schmuckstück für den Raspberry Pi zu gestalten.

2.1 Das Gehäuse: selbst bauen oder kaufen?

Wer keine kreative Selbstbauader hat, bedient sich in der Ramschzone des Internets in den Auktionshäusern und sucht sich bei den zahlreichen Anbietern ein passendes Gehäuse aus. Achten Sie vor allem auf die Typbezeichnung für das Raspberry-Pi-Gehäuse – zwar sind die großen Raspberry-Pi-Modelle nahezu identisch, doch die Zahl der Anschlüsse ist je nach Modell des Raspberry Pi 1 unterschiedlich, und selbst die neueren Platinen Raspberry Pi 2 und Raspberry Pi 3 sind leicht unterschiedlich, was sich auch auf das Gehäuse und Buchsen auswirkt.

Page 32: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

2 Raspberry Pi: Selbstbau in zwei Minuten

48

Bild 2.1: Die Originalgehäuse der Raspberry-Pi-Foundation haben für die jeweiligen Schnittstellen die passenden Öffnungen im Gehäuse.

Es ist anzunehmen, dass die Nachfolgemodelle ähnlich kompakt gebaut und über-sichtlich designt sind. Grundsätzlich lassen sich die Raspberry Pi 1/2/3 und der kleine Zero aufgrund der kleinen und robusten Bauform auch ohne Gehäuse betreiben. Je nach Anwendungszweck und Aufstellungsort sollten Sie dennoch über die Verwen-dung eines Gehäuses nachdenken – gerade wenn der Raspberry Pi beispielsweise im Wohnzimmer am TV platziert wird und kleine Kinderfinger im Haushalt auf Ent-deckungsreise gehen.

2.1.1 Plexiglasgehäuse zum einfachen Zusammenschrauben Sie bekommen spottbillige Gehäuse auf dem Markt – daran ist nicht zu zweifeln. Wie alles in der Welt hat aber auch ein ordentliches Gehäuse seinen Preis – auf Amazon & Co. werden mit dem Start schon kleine passende Gehäuse angeboten, die teilweise mehr kosten als der Raspberry Pi selbst. Die Auswahl beginnt bei der Optik: Je billiger ein Gehäuse ist, desto langweiliger sieht es normalerweise aus, was beispielsweise im Fall des Raspberry Pi Zero egal sein dürfte, solange er später per Klett- oder Klebe-band hinter dem TV verschwinden soll.

Grundsätzlich gilt: Je hübscher, desto besser die Verarbeitung und desto höher der Preis. Für einen guten Kompromiss in Sachen Preis und Optik sorgen in diesem Fall Plexiglasplatten.

Page 33: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

2.1 Das Gehäuse: selbst bauen oder kaufen?

49

Bild 2.2: Bastelstunde: Die Einzelteile sind bereits angeordnet – setzen Sie Schritt für Schritt das Gehäuse zusammen.

Gute Gehäuse für den Raspberry Pi haben viele kleine Erleichterungen beim Zusam-menbau zu bieten. Beispielsweise wird die Platine in eine Gehäusehalterung geklemmt, die Sie zum leichteren Zusammenbau einfach zusammenstecken und die einen robusten Eindruck machen.

Bild 2.3: Fertig: Abgesehen vom GPIO-Anschluss lassen sich nun sämtliche Anschlüsse des Raspberry Pi nutzen. Beachten Sie, dass es Gehäuse gibt, die das Wechseln der Micro-SD-Karte erst nach einem Zerlegen des Gehäuses möglich machen.

Allzu häufig auseinander- und zusammenbauen sollten Sie Plexiglasgehäuse aber nicht, denn schnell gehen die Plastikschrauben und Muttern verloren, und die Klemm-anschlüsse brechen leicht ab, wenn Sie nicht gut aufpassen. Die häufig bei Versen-dern angebotenen Gehäuse für Raspberry-Pi-2-Platinen lassen sich prinzipiell auch

Page 34: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

2 Raspberry Pi: Selbstbau in zwei Minuten

50

für den Raspberry Pi 3 verwenden – die Positionen der Onboard-LEDs sind jedoch anders, was im Praxiseinsatz für Irritationen sorgen kann. Hochwertiger, sicherer, aber auch deutlich teurer sind Fertiggehäuse aus Plastik oder Aluminium, bei denen das Raspberry-Pi-Board mit Schrauben befestigt wird.

Bild 2.4: Freie Auswahl: Für nahezu jeden Einsatzzweck stehen bei den Händlern im Internet passende Gehäuse in vielen Variationen zur Verfügung.

Wer beispielsweise eine Eigenbauerweiterungsplatine, ein pHAT oder eines der zahlreichen Entwicklerboards an dem GPIO-Anschluss des Raspberry Pi anschließen möchte, der muss die Anschlüsse mit einem Flachbandkabel nach außen führen, da die meisten Gehäuse nicht für solche Erweiterungen vorgesehen sind. Alternativ bauen Sie das passende Gehäuse für den Raspberry Pi samt Erweiterung selbst – wer nicht mit Sperrholzplatte und Handsäge loslegen möchte, der kann mit Legobau-steinen selbst kreativ werden.

Page 35: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

2.1 Das Gehäuse: selbst bauen oder kaufen?

51

2.1.2 Kreativ und bunt: Legogehäuse aus der Spielzeugkiste Steht noch eine Kiste mit Legosteinen im Keller und staubt vor sich hin, ist die Anschaffung des Raspberry Pi eine Gelegenheit, den Staub von der Kiste herunterzu-klopfen und mit den vorhandenen Legosteinen ein passendes Gehäuse zu bauen.

Bild 2.5: Einfach, praktisch, gut: Beim Gehäusebasteln achten Sie darauf, dass für die spätere Inbetriebnahme die Anschlüsse noch gut erreichbar bleiben.

Hier können Sie Ihrer Kreativität freien Lauf lassen: Sparen Sie beim Zusammensetzen der Legosteine die Stellen für die jeweiligen Anschlüsse einfach aus, etwa für die Stromversorgung oder je nach Anwendungszweck für den USB- und/oder Mini-HDMI-Ausgang für den Anschluss des Bildschirms.

Page 36: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für
Page 37: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Wohnzimmer-PC 3.0: SmartTV-Eigenbau

Einen flexiblen, leistungsfähigen und vor allem leisen Computer im Wohnzimmer zu haben, erfordert besondere Komponenten. Die Zeiten, da klobige Computer im Mini- und Midi-Tower-Format für eine flüssige, ruckelfreie Wiedergabe von Videodateien und den Internet-/Heimnetzzugriff eingesetzt wurden, sind vorbei. Nutzen Sie stattdessen den kleinen, lüfterlosen Raspberry Pi Zero mit dem eigens gebauten OpenELEC-System – nicht nur um aus allen verfügbaren Videoquellen in Ihrem Heimnetz sämtliche Video- und Musikdateien abzuspielen, darüber hinaus haben Sie einen komfortablen Zugang zu den Internet-TV-Archiven der öffentlich-rechtlichen Sender sowie zu anderen, auch ausländischen TV-Kanälen, die ihre Sendungen im Internet publizieren.

Zu guter Letzt erfahren Sie, wie Sie per Add-ons Videoarchive wie Spiegel Online, Süddeutsche.de, ARD/ZDF Mediathek und andere online komfortabel durchstöbern und werbefrei nutzen – alles bequem vom Sofa aus. Gerade die Verlagsfernsehsender bieten ein einzigartiges Programm rund um die Uhr: Reportagen, Sport, Doku-mentationen, Berichte zum Zeitgeschehen – ein völlig neues Fernseherlebnis per Mausklick und on demand – wann immer Sie die Sendung sehen wollen, steht sie umgehend zur Verfügung.

Mit dem Raspberry Pi in Verbindung mit dem Open Embedded Linux Entertainment Center – kurz OpenELEC – haben Sie einen Alleskönner im Wohnzimmer, der den

Page 38: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

182

Überblick über sämtliche Mediendateien im Haushalt behält und für deutlich gesteigerten Komfort und mehr Auswahl im TV-Alltag sorgt.

7.1 OpenELEC: laden oder kompilieren?

Entscheiden Sie sich für den Einsatz von OpenELEC, sollten Sie sich darüber im Klaren sein, dass Installation und Konfiguration der Multimedia-Funktionen im Raspberry Pi kein Hexenwerk sind und etwas Zeit und Geduld sowie vor allem den Willen erfordern, auftretende Probleme selbst zu verstehen und zu lösen. Fortgeschrittene haben naturgemäß mehr Möglichkeiten, auf die Konfiguration und die Zusammenstellung von OpenELEC Einfluss zu nehmen, wenn das Paket – also das System, das auf die SD-Karte kommt – selbst zusammengestellt und kompiliert wird. Jenen, die mit Linux, Terminal, Shell- und Perl-Skripten wenig oder nichts anfangen können, sei an dieser Stelle empfohlen, besser ein vorkompiliertes OpenELEC-Paket herunterzuladen und zu nutzen.

7.1.1 OpenELEC-Image herunterladen und anpassen Egal welche Größe die Imagedatei hat, sie kommt in einem komprimierten Dateiformat in Form einer *.tar.gz- oder *.tar.bz2-Datei. Während das Entpacken solcher Dateien unter Mac OS und Linux mit eingebauten Betriebssystemwerkzeugen möglich ist, benötigen Sie unter Windows Hilfestellung. Dazu laden Sie sich am besten den kostenlosen und für den Heimgebrauch völlig ausreichenden Packer 7-zip (www.7-zip.de/download.html) herunter. Das OpenELEC-Image holen Sie sich eben-falls aus dem Internet – die wichtigsten Internetadressen dazu sind:

OpenELEC.tv Projektwebseite

Komplett-Images http://openelec.tv/get-openelec/

Raspberry-Pi-Image-

Downloader und Nightly-

Builds (zum

Ausprobieren)

http://mrpfister.com/journal/raspberry

-pi-os-image-downloader/

Welches Betriebssystem-Image Sie auswählen, ist zunächst Geschmackssache, grundsätzlich laden Sie am besten eine Imagedatei mit einem relativ frischen Build-Datum sowie – falls unterschiedliche Größen für die Ziel-SD-Karte zur Verfügung stehen – das passende Betriebssystem-Image zur vorliegenden SD-Karte. In diesem Fall sparen Sie sich das spätere Anpassen der OpenELEC-Installation an die tat-sächliche Kapazität der Speicherkarte.

Page 39: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.1 OpenELEC: laden oder kompilieren?

183

7.1.2 Inbetriebnahme eines fertigen Kodi/OpenELEC-Image Zumindest bei Inbetriebnahme und Ersteinrichtung ist der SSH-Zugriff auf das Raspberry-Pi-System empfehlenswert, der bei OpenELEC jedoch standardmäßig abgeschaltet ist. SSH kann aber nachträglich bei gestartetem Kodi/XBMC (wie im Kapitel »Administration über Kommandozeile – SSH-Zugriff einschalten« auf Seite 188 beschrieben) oder durch das Erstellen einer leeren Datei mit der Bezeichnung ssh_enable im Verzeichnis /storage/.config bequem eingeschaltet werden.

Bild 7.1: Das Aktivieren des SSH-Servers kann grundsätzlich auch über Kodi erfolgen. Bei der Inbetriebnahme von Kodi ist jedoch schon vorher der SSH-Zugriff notwendig. Alle Änderungen in diesem Add-on werden erst nach einem Neustart übernommen.

Dafür stecken Sie die Speicherkarte gegebenenfalls noch mal in den Computer, mounten die Speicherkarte in einem Unix-System und verwenden folgende Befehle im Terminalfenster, um die Datei anzulegen:

cd /storage/.config

touch ssh_enable

Wird die Karte anschließend in einen Raspberry Pi gesteckt, sollte beim Hochfahren von OpenELEC nun der SSH-Server mitgestartet werden. Damit ist eine SSH-Verbindung vom Computer zum Raspberry Pi möglich. Steht die SSH-Verbindung zum OpenELEC-Server, ändern Sie das Kennwort des administrativen root-Benutzers (Standard: openelec) per passwd-Kommando. Die weiteren Konfigurationsschritte erstrecken Sie auf die Konfiguration der Kodi-Oberfläche, die im Kapitel »OpenELEC-Einstellungen anpassen und Freigaben einrichten« auf Seite 186 beschrieben ist.

Page 40: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

184

7.2 Kodi-Mediacenter einrichten

Die Kodi-Oberfläche ist sozusagen das sichtbare Herzstück von OpenELEC. Nach dem Einschalten bootet das System direkt in diese Oberfläche – eine Anmeldung mit Benutzerkennung und Passwort ist nicht notwendig. Sind am Raspberry Pi eine Tastatur und eine Maus angeschlossen, können Sie fürs Erste damit auch navigieren. Deutlich komfortabler sind Funktastaturen – hier gibt es eine große Auswahl, ange-fangen bei den kleinen Rii-Funk-Bluetooth-Tastaturen bis hin zu vollwertigen 105-Tasten-Tastaturen, die beispielsweise auch am Notebook betrieben werden können.

Bild 7.2: Bei Funktastaturen ist bei OpenELEC das A und O die Bluetooth-Treiberunterstützung des USB-Dongles. Dieser ist bei den Rii-Tastaturen im Lieferumfang enthalten, befindet sich innerhalb der Fernbedienung oberhalb des Touchfelds und kann zur Nutzung seitlich herausgezogen werden.

In unserem Fall hatten wir in der Computerecke noch eine betagte schnurlose Logitech-Tastatur diNovo edge herumliegen und sogar den kleinen dazugehörigen Bluetooth-Adapter gefunden. Einstecken, ausprobieren und siehe da: Die Tastatur wird auf Anhieb von OpenELEC unterstützt, eine weitere Installation ist nicht not-wendig.

Nach Anschluss der Tastatur prüfen Sie den SSH-Zugang zum Raspberry Pi – im Gegensatz zu dem »normalen« Raspberry-Pi-Image ist bekanntlich ein anderer Benut-zer samt Kennwort bei Kodi/OpenELEC zu verwenden. Benutzen Sie für den Remote-Zugriff den administrativen Benutzer root, als initiales Kennwort ist openelec vorein-gestellt.

Page 41: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.2 Kodi-Mediacenter einrichten

185

Bild 7.3: Erfolgreich installiert, SSH läuft. Nun können Sie Schritt für Schritt den Raspberry Pi, OpenELEC sowie Kodi konfigurieren und auf Ihre Bedürfnisse zuschneiden.

Haben Sie nicht per Kernelparameter den SSH-Zugriff aktiviert, ist bei OpenELEC die SSH-Verbindung abgeschaltet. Sie kann aber nachträglich über Kodi oder durch das Erstellen einer leeren Datei mit der Bezeichnung ssh_enable im Verzeichnis /storage/.config bequem eingeschaltet werden.

Haben Sie die erste Verbindung erfolgreich hergestellt, können Sie entweder weiter mit SSH oder WinSCP arbeiten, oder Sie richten sich eine komfortable Lösung via Samba ein, mit der Sie bequem von Ihrem Windows-Computer aus per Explorer oder via Mac OS per Finder auf die entsprechend freigegebenen Verzeichnisse des Raspberry Pi bzw. OpenELEC zugreifen und diese bearbeiten können.

Bild 7.4: Der Weg ist das Ziel: Wie hier in dieser Abbildung stehen für sämtliche Zwecke entsprechende Austauschverzeichnisse zwischen dem Raspberry Pi und den Computern im Heimnetz zur Verfügung.

Um beispielsweise die Samba-Unterstützung für den Zugriff auf das OpenELEC-System einzuschalten, muss zunächst der Samba-Daemon auf dem Raspberry Pi

Page 42: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

186

aktiviert werden. Dies nehmen Sie bei gestartetem OpenELEC über die Kodi-Ober-fläche vor.

7.2.1 OpenELEC-Einstellungen anpassen und Freigaben einrichten

Während früher das Einbinden der Netzwerkfreigaben per netmount.conf-Datei notwendig war, besitzt Kodi jetzt einen eingebauten Support für den NFS- (Linux), Samba- (Windows) und AFP-(Apple-)Zugriff, was den Umgang mit den unter-schiedlichen Medien und Speicherorten im Heimnetz deutlich komfortabler macht. Ausgewählte Betriebssystemeinstellungen sowie ihre Kodi/XBMC-relevanten Services lassen sich mithilfe des mitgelieferten Add-ons OpenELEC OS Settings bequem über das Programs-Menü ändern. Starten Sie per Mausklick oder [Enter]-Taste der Tastatur die entsprechende Option auf dem XBMC.

Bild 7.5: Über die Kodi-Oberfläche lassen sich auch sogenannte Add-ons einbinden, mit denen das darunterliegende Betriebssystem gesteuert werden kann.

Ist das Add-on OpenELEC OS Settings gestartet, werden vier Register angezeigt, die Sie Schritt für Schritt durchlaufen und deren Optionen Sie an Ihre persönlichen Wünsche anpassen können. Im Register System stellen Sie zunächst das Layout für die angeschlossene Tastatur ein. Haben Sie eine QWERTZ-Tastatur samt Umlauten, wählen Sie für das Layout de (deutsch) – für das alternative Keyboardlayout beispiels-weise en oder eines nach Wahl. Automatische Updates sind in diesem Beispiel abgeschaltet, beim Einsatz eines LCD-Schirms lassen sich noch Treiberanpassungen vornehmen.

Page 43: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.2 Kodi-Mediacenter einrichten

187

Bild 7.6: Haben Sie sich »verkonfiguriert«, können Sie per Klick auf Defaults wieder zu den Standardeinstellungen zurückkehren.

Im Register Network sind die aktuellen Netzwerkeinstellungen untergebracht. Hier befinden sich die Parameter der eingebauten kabelgebundenen eth0-Netzwerk-schnittstelle. Haben Sie ein WLAN-USB-Steckmodul im Einsatz, ist es über das Register Network 2 zu konfigurieren.

Im Feld Systemname geben Sie den Namen des Raspberry Pi ein, wie er im IP-Netzwerk bzw. lokal genannt werden soll. Das hat jedoch nichts mit dem Samba-Servernamen zu tun, den Sie aus dem Windows-Netz vielleicht kennen. Im Feld Network Adapter brauchen Sie nichts zu ändern, es sei denn, Sie haben einen guten Grund dazu. Grundsätzlich ist OpenELEC so konfiguriert, dass es sich via DHCP automatisch mit einer IP-Adresse versorgen lässt.

Manchmal kann es auch sinnvoll sein, dem Raspberry Pi eine statische IP-Adresse zuzuweisen, etwa dann, wenn kein DHCP-Server im Netz zur Verfügung steht. In diesem Fall tragen Sie hier die IP-Adresse, die Netzmaske (in der Regel Präfix 24 für 255.255.255.0) sowie das Gateway und den DNS-Server ein.

Page 44: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

188

Bild 7.7: Das Umstellen der Tastatur erleichtert vor allem die Suche und das Navigieren, falls Umlaute genutzt werden.

Im nächsten Schritt schalten Sie die Zugriffsfunktionen auf das OpenELEC-Mediacenter ein. Bevor der Zugriff auf das Raspberry-Pi-System via Samba oder SSH möglich ist, muss es zunächst eingeschaltet und anschließend konfiguriert werden.

Im Register Services schalten Sie per Mausklick oder Tastatur die Option Start Samba at boot ein. Wer den Zugriff auf den Raspberry Pi auf Benutzerebene absichern möchte, der aktiviert zusätzlich die Option Use Samba Passwords und trägt an-schließend einen Samba-Benutzernamen sowie das dazugehörige Kennwort ein. Bei einer späteren Samba-Netzwerkverbindung von Ihrem Computer aus wird dann genau diese Authentifizierungsmethode genutzt – also notieren Sie sich gegebenen-falls diese Parameter.

7.2.2 Administration über Kommandozeile – SSH-Zugriff einschalten

Falls noch nicht via cmdline.txt-Kniff beim Erstellen des SD-Karten-Image geschehen, kann über die XBMC-Oberfläche nachträglich noch der SSH-Zugang eingeschaltet werden. Zu guter Letzt aktivieren Sie den SSH-Zugriff mit dem genannten OpenELEC-Add-on – für administrative Zwecke im Heimnetz geradezu eine Pflicht.

Page 45: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.2 Kodi-Mediacenter einrichten

189

Bild 7.8: Samba und SSH einschalten: Mehr ist in diesem Dialog nicht zu tun. Schließen Sie die Konfiguration per Klick auf OK ab.

Beenden Sie das Plug-in. Möchten Sie auf Nummer sicher gehen, starten Sie den Raspberry neu, damit die Änderungen aktiv werden. Anschließend können Sie die mitgelieferte Konfigurationsdatei von Samba an Ihre Bedürfnisse anpassen, oder Sie erstellen sie komplett neu.

7.2.3 Samba einrichten: bequemer Zugriff auf das Mediacenter Grundsätzlich nehmen Sie die Änderungen an der Samba-Konfiguration im Verzeich-nis /storage/.config/ vor. Ist diese Datei fehlerfrei, wird das entsprechende Original im /etc/-Verzeichnis überschrieben und genutzt. Haben Sie also in der Datei

/storage/.config/samba.conf

eine persönliche, funktionierende Konfiguration für den vorhin aktivierten Samba-Server hinterlegt, wird die Standardkonfiguration von /etc/samba/samba.conf beim Start des Samba-Service verworfen, und die neue Datei wird genutzt.

Page 46: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

190

Bild 7.9: Für den erstmaligen Zugriff reicht es im Idealfall aus, die in /storage/.config/ vorhandene samba.conf.sample-Datei als Vorlage zu nutzen und dort die Arbeits-gruppe/Workgroup auf die von Ihnen im Heimnetz genutzte Bezeichnung zu ändern.

Der erstmalige Zugriff auf die Datei

/storage/.config/samba.conf.sample

ist anfangs etwas trickreich: Kopieren Sie nach dem Verbindungsaufbau via SSH in der Konsole einfach die sample-Datei als conf-Datei und öffnen Sie die erstellte Datei mit dem altbekannten vi-Editor:

cp /storage/.config/samba.conf.sample /storage/.config/samba.conf

vi /storage/.config/samba.conf

Wer mit dem vi-Editor zurechtkommt, passt hier die Arbeitsgruppe, den NetBIOS-Namen (netbios name), unter dem die Freigaben im Windows-Netz sichtbar sein sollen, sowie gegebenenfalls andere Parameter wie beispielsweise zusätzliche Freigaben an. Beachten Sie jedoch auch hier: Weniger ist mehr – Hauptsache, es funktioniert eine Freigabe, und das richtig. Nach der Änderung wechseln Sie per [Esc]-Taste in den Befehlsmode des vi und beenden mit dem Befehl

:wq

Page 47: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.2 Kodi-Mediacenter einrichten

191

die Bearbeitung der Datei. Möchten Sie keine Änderung vornehmen bzw. diese nicht speichern, nutzen Sie

:q!

um die Bearbeitung abzubrechen. In diesem Beispiel wurde folgende Samba-Konfi-guration verwendet, die Sie als Muster oder zur Kontrolle nutzen können:

[global]

server string = Raspberry Media Center (%i)

workgroup = WORKGROUP

domain master = yes

local master = yes

preferred master = yes

os level = 100

netbios name = RaspiTV

security = share

guest account = root

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536

SO_SNDBUF=65536

smb ports = 445

max protocol = SMB2

min receivefile size = 16384

deadtime = 30

mangled names = no

syslog only = yes

syslog = 2

name resolve order = lmhosts wins bcast host

printcap name = /dev/null

load printers = no

browseable = yes

writeable = yes

printable = no

encrypt passwords = true

enable core files = no

passdb backend = smbpasswd

smb encrypt = disabled

use sendfile = yes

[Update]

path = /storage/.update

available = yes

browseable = yes

public = yes

writable = yes

root preexec = mkdir -p /storage/.update

[Videos]

Page 48: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

194

path = /media

available = yes

browseable = yes

public = yes

writable = yes

root preexec = mkdir -p /media

[Logfiles]

path = /storage/logfiles

available = yes

browseable = yes

public = yes

writable = yes

root preexec = mkdir -p /storage/logfiles

root preexec = createlog

Den Samba-Service starten Sie manuell neu mit dem Kommando:

smbd -s storage/.config/samba.conf

Gerade bei den neueren Windows-Versionen ab Windows 7/8 bzw. Windows 10 kommt es vor, dass die Freigaben des Kodi-Mediacenters auf dem Raspberry Pi in der Netzwerkumgebung nicht sofort sichtbar sind. In diesem Fall folgen Sie den im Kapitel »Windows zickt bei Samba-Zugriff: Freigabeprobleme lösen« auf Seite 162 beschriebenen Tipps zur Windows-Konfiguration für den Zugriff auf den Rasp-berry Pi. Hier reicht die Angabe des NetBIOS-Namens (RaspiTV) oder alternativ die IP-Adresse des Raspberry Pi im Adressfeld des Windows-Explorers mit zwei vorangestellten Backslash-Zeichen aus, um sich die verfügbaren Freigaben anzeigen zu lassen.

7.2.4 Zugriff auf NFS/Samba-Freigaben im Heimnetz Um entfernte Freigaben von anderen Computern auf dem Raspberry Pi bzw. auf dem Kodi-Server so einbinden zu können, als lägen sie direkt auf dem Raspberry Pi, benötigen Sie dort einen sogenannten Mountpoint. Dieser ist prinzipiell nichts anderes als ein Verzeichnis, das den Inhalt der Netzwerkfreigabe virtuell lokal zur Verfügung stellt – nämlich so lange, wie die Freigabe auch im Heimnetz erreichbar ist.

cd /storage

mkdir video2

mkdir video3

mkdir music2

ls -latr

Dafür erzeugen Sie im beschreibbaren /storage-Bereich das oder die Verzeichnisse, die auch mit Kodi genutzt werden sollen. Ist SSH aktiviert, verbinden Sie sich mit dem Kodi-Raspberry Pi und nutzen obige Kommandos, um wie in diesem Beispiel zwei

Page 49: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7.2 Kodi-Mediacenter einrichten

195

Samba-Freigaben für die Videowiedergabe und eine NFS-Freigabe für zusätzliche Musik in den Raspberry Pi einzubinden.

7.2.5 NFS konfigurieren: Zugriff auf Linux/NAS-Server Um vom Raspberry Pi aus auf andere Linux-Computer und NAS-Speicher in einem Heimnetz zuzugreifen, muss dieser Zugriff erst einmal eingeschaltet und konfiguriert sein. Während bessere NAS-Systeme mit RAID5 ein eingebautes grafisches Konfigurationsmenü haben, in dem sich die gängigsten Freigabearten wie Samba, AFP (Apple File Protocol), FTP und auch NFS einfach per Mausklick einrichten lassen, ist dies bei einem selbst gebauten NAS oder einem Linux-System ein klein wenig aufwendiger. Hier tragen Sie das Verzeichnis, das Sie im Netz per NFS freigeben möchten, in eine sogenannte exports-Datei ein.

Diese ist im /etc-Verzeichnis zu finden – öffnen Sie sie mit einem Editor und tragen Sie das Verzeichnis, das für den Raspberry Pi (oder auch für andere Computer im Heimnetz) freigegeben werden soll, dort ein. Wie bei Unix-Systemen üblich, ist in dieser Konfigurationsdatei eine bestimmte Schreibweise der Freigabe notwendig – richten Sie sich am besten nach den selbsterklärenden Beispieleinträgen, die auch in der nachstehenden Abbildung zu sehen sind.

Bild 7.10: In diesem Beispiel werden das /-Verzeichnis und das /var/nfs-Verzeichnis für einen Computer mit der IP-Adresse 192.168.123.49 zur Verfügung gestellt.

Das /var/nfs/music-Verzeichnis wird ausschließlich für die IP-Adresse 192.168.123.49, hinter der sich in diesem Beispiel der Raspberry Pi verbirgt, freige-geben. Nach dem Speichern der Datei aktivieren Sie zunächst die Änderungen mit diesem Kommando:

exportfs -a

Page 50: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

7 Wohnzimmer-PC 3.0: SmartTV-Eigenbau

196

Anschließend lassen Sie sich mit dem Befehl

exportfs

die aktiven NFS-Freigaben des Computers anzeigen.

Bild 7.11: Änderung erfolgreich: Die Musikfreigabe für den Raspberry Pi ist nun aktiv.

Auf dem Raspberry Pi mit OpenELEC reicht das Konsolenkommando

mount 192.168.123.36:/var/nfs/music/ /storage/music2

aus, um die exportierte Freigabe /var/nfs/music/ der Unix-Maschine mit der IP-Adresse 192.168.123.36 zu mounten. Anschließend ist für das Mediacenter der Inhalt dieses Verzeichnisses in der Kodi-Freigabe /storage/music2 sichtbar.

Bessere NAS-Systeme für den SOHO-Bereich bringen ebenfalls die Windows-Frei-gabetechnik in Form von Samba mit – der Zugriff von einem Unix-System ist mittels CIFS (Common Internet File System) möglich.

7.2.6 CIFS/Samba konfigurieren: Zugriff auf Windows-Freigaben

Nachfolgend wird davon ausgegangen, dass eine Samba- und/oder Windows-Freigabe im Heimnetz bereits existiert. Das ist auch unter Windows keine große Wissenschaft, hier wählen Sie den entsprechenden Ordner aus, wählen im Kontextmenü der rechten Maustaste Eigenschaften, klicken dort auf das Register Freigabe und anschließend auf die Schaltfläche Erweiterte Freigabe. Danach tragen Sie einen aussagekräftigen Freigabenamen ein und klicken auf die OK-Schaltfläche.

Page 51: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Fotografieren und Video

Als Besitzer einer Digitalkamera haben Sie sicher schon viele Bildmotive fotografiert: Menschen, Tiere, Architektur, Landschaften und vieles mehr – einfach alles, was Ihnen vor die Linse gekommen ist. Diese Aufnahmen haben Sie mit dem Sucher oder dem Live-View-Bild an der Kamera eingefangen und auf das Knöpfchen gedrückt. Soll es hingegen um Aufnahmen gehen, bei denen es neben dem Blick für das Motiv auch auf eine verstärkte technische Umsetzung ankommt, etwa bei Zeitrafferaufnahmen, Focus Stacking und Stapelfotografie, oder auf eine Umsetzung von Spezialeffekten wie beispielsweise bei der Wassertropfenfotografie, kann der Raspberry Pi nicht nur eine Hilfestellung, sondern mit diesem Buch auch praxisnahe Lösungen bieten. Mit dem geeigneten Stück Elektronik und einer passenden Schaltung lässt sich der Raspberry Pi nämlich auch zum Anfertigen von Fotoaufnahmen nutzen, die so bisher in der Qualität nicht oder nur mit hohem manuellem technischem Aufwand möglich waren. Damit steht dem Hobbyfotografen nun eine Technik zur Verfügung, auf die sonst nur Profis mit entsprechendem Equipment zurückgreifen konnten.

Diese Fülle an Möglichkeiten, die der Raspberry Pi bietet, kann einen richtigen Einstieg im der Raspberry-Pi-Kamera oder eine über einem Auslösekabel gekoppelte Digitalkamera aber auch erschweren. Denn nicht (nur) das Fotografieren als solches steht in diesem Kapitel im Fokus, sondern auch das Zusammenspiel der unterschied-lichen Komponenten und deren Programmierung. Vor allem das Zusammenwirken mehrerer GPIO-Anschlüsse sowie die Steuerung der Abläufe, gebündelt mit tech-nischem Know-how und Programmierbeispielen in Python- und Shellskripten, erweitern

Page 52: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12 Fotografieren und Video

412

den Horizont enorm, damit Sie diese Techniken mit dem Raspberry Pi auch in tolle Fotos umsetzen können. Erfahren Sie kurz und knackig, wie Sie eine eigene Kamera-firmware programmieren und sie auf dem Raspberry Pi und dem passenden Kamera-modul einsetzen können. Die wichtigsten Fakten, Techniken und Lösungen zum Thema Objekt-, Gesichts- und Farberkennung mit OpenCV auf dem Raspberry Pi sind mit Projekten zum Nachbauen zusammengefasst. Dazu lernen Sie auch, wie Sie die Code-beispiele in eigene, selbst gestrickte Lösungen einbauen können.

12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera?

Der Begriff »Dashcam« setzt sich aus »Dashboard« und »Cam« zusammen, was sich sinngemäß mit Armaturenbrettkamera übersetzen lässt. In der Vergangenheit waren solche Dashcams vor allem als Kamera im Auto zur Beweissicherung bei Polizei-einsätzen bekannt, und auch hierzulande kommen sie mit den kleinen Gadgets wie dem Raspberry Pi immer mehr in Mode. Gerade in osteuropäischen Ländern gehört das Filmen bestimmter Ereignisse im Straßenverkehr zum Standard. Entsprechende »Fertiggeräte« sehen oder aus wie gewöhnliche Navigationsgeräte kleben an der Frontschutzscheibe. Je nach Baujahr der Fertiglösung hängen damit recht klobige Klötze an den Windschutzscheiben, wer es etwas dezenter oder gar nahezu unsichtbar mag, der nutzt einen Raspberry Pi in Verbindung mit einem CSI-Kameramodul oder einer USB-Kamera. Zwar kann die Eigenbau-Dashcam mit dem Raspberry Pi mit einem passenden Gehäuse wie ein mobiles Navi mithilfe eines Saugnapfs an der Wind-schutzscheibe fixiert werden, doch wer dann noch ein echtes Navigationssystem montiert, der pflastert sich die Scheibe zu – daher ist die bessere Alternative ein längeres Flachbandkabel für die Raspberry-Pi-Kamera, damit der Raspberry Pi beispiels-weise im Handschuhfach oder einer anderen Ablage untergebracht werden kann.

Bild 12.1: Praktisch für den mobilen Einsatz ist ein passgenaues Gehäuse für das Raspberry-Pi-Kameramodul.

Page 53: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera?

413

Je nach Länge des Kameraflachbandkabels können Sie die Kamera jedoch auch für andere Zwecke im Kraftfahrzeug verwenden – von einer Innenraum- bis zu einer Lade- und Kofferraumüberwachung oder einer Rückfahrkamera ist alles möglich.

12.1.1 Klein, leicht, stark: Raspberry-Pi-Kamera Obwohl zeitgleich mit der damaligen Veröffentlichung des Raspberry Pi vorgestellt, ist die Raspberry-Pi-Kamera erst seit Mai 2013 bestellbar, verbunden mit langen Wartezeiten. Liegt die HD-fähige Raspberry-Pi-Kamera endlich im Briefkasten und ist ausgepackt, kann über die Kompaktheit und das mit wenigen Gramm geringe Gewicht des Kameramoduls nur gestaunt werden: In der Größe ist die Platine in etwa mit einer SD-Karte vergleichbar, die Bauhöhe des Linsenobjektivs samt Platine entspricht mit 9 mm drei aufeinanderliegenden 1-Euro-Münzen. Der Mini Raspberry Pi Zero besitzt keine CSI-Schnittstelle und kann somit kein Kameramodul aufnehmen.

Bild 12.2: Das im Juni 2013 ausge-lieferte Raspberry-Pi-Kameramodul trägt die Revision V1.3 und ist in etwa so groß wie eine SD-Karte.

Die technischen Werte des Kamerasensors der Raspberry-Pi-Kamera sind mit jenen eines Smartphones vergleichbar, mit dem 5-Megapixel-Sensor sind zudem Videos im HD-Format 1080p oder 720p sowie im betagten VGA-Format 640 × 480 möglich.

Bild 12.3: Beim Einsetzen in den CSI-Pfosten zeigen die Anschlüsse des Flachbandkabels in Richtung HDMI-Anschluss auf der Raspberry-Pi-Platine.

Page 54: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12 Fotografieren und Video

414

Nach dem Einstecken des Flachbandkabels installieren Sie die notwendige Software und nehmen die Kamera in Betrieb. Die weitere Konfiguration und Nutzung des angeschlossenen Raspberry-Pi-Kameramoduls erfolgt über das Betriebssystem – nach dem Starten des Compute Module ist das Werkzeug raspi-config dafür die erste Anlaufstelle.

12.1.2 Inbetriebnahme per Software Ist die Kamera mit dem Raspberry Pi verbunden, müssen das Betriebssystem und die Firmware des Raspberry Pi auf den aktuellen Stand gebracht werden, sofern das noch nicht geschehen ist. Für das weitverbreitete Raspbian nutzen Sie folgende Kom-mandos – nicht nur um das Betriebssystem aufzufrischen, sondern auch um die Kamera in Betrieb zu nehmen.

sudo –s

apt-get update -y

apt-get upgrade -y

apt-get dist-upgrade -y

apt-get install git-core -y

wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O

/usr/bin/rpi-update

chmod +x /usr/bin/rpi-update

rpi-update

Das Auffrischen des Betriebssystems dauert abhängig von der Anzahl der bereits installierten Pakete sowie der zur Verfügung stehenden Internetbandbreite eine Weile. Zu guter Letzt wird die Firmware auf den aktuellen Stand gebracht. Sind die installierten Pakete sowie die Firmware für den Raspberry Pi aktualisiert und die notwendigen Treiber für die Kamera installiert, prüfen Sie nach dem Neustart per Kommando:

reboot

den Versionsstand des Raspberry Pi.

uname -a

Im nächsten Schritt richten Sie die Kamera mit dem bewährten Konfigurations-werkzeug raspi-config ein.

12.1.3 Pi-Kameramodul in Betrieb nehmen Je nach verwendeter Raspbian-Version nehmen Sie wie immer zunächst über apt-get update/apt-get upgrade die Aktualisierung des Betriebssystems vor. Im nächsten Schritt wählen Sie auf der Konsole im Konfigurationswerkzeug raspi-config den Menüpunkt Enable Camera aus, der zum Einschalten einer angeschlos-senen Kamera zur Verfügung steht.

Page 55: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera?

415

Bild 12.4: Nach dem Start des Raspberry Pi starten Sie per Kommandozeile das Konfigurationswerkzeug raspi-config.

Navigieren Sie mit den Pfeiltasten zum Punkt Enable Camera und drücken Sie die [Enter]-Taste. Anschließend erscheint ein Dialog, in dem Sie die Auswahl per Enable nochmals bestätigen. Analog gehen Sie vor, wenn Sie die Kamera später wieder abschalten wollen – in diesem Fall wählen Sie dann aber den Eintrag Disable aus.

Bild 12.5: Auch das Camera Module V2 wird mit dem raspi-config-Werkzeug eingerichtet.

Im nächsten Schritt legen Sie im Menü bei Advanced Options und dem Untermenü Memory Split fest, wie viel Grafikspeicher für die GPU zur Verfügung stehen soll. Hier

Page 56: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12 Fotografieren und Video

416

lautet die Empfehlung, je nach Raspberry Pi die Hälfte des vorhandenen Arbeits-speichers für die GPU zu nutzen. In diesem Beispiel – im Einsatz ist ein mit 256 MByte ausgestatteter Raspberry Pi 1, Modell A – bekommt die GPU demnach mit dem Wert 128 entsprechend viel RAM-Speicher zugeordnet.

Bild 12.6: Nach der Zuordnung der Speichermenge von 128 MByte für die GPU navigieren Sie per [Tab]-Taste zur Ok-Schaltfläche und schließen den Vorgang ab.

Das Einrichten der Kamera ist damit abgeschlossen. raspi-config möchte nun einen Neustart initiieren, damit beispielsweise die Speicherzuordnung für die GPU aktiv wird. Bestätigen Sie den Neustart per Ok-Auswahlmenü. Nach dem Neustart kann die Kamera umgehend genutzt werden.

12.1.4 Fotografieren mit Kommandozeilenbefehl Nach dem Neustart des Raspberry Pi stehen über das Betriebssystem Raspbian neben der Kamera auch neue Tools auf der Kommandozeile zur Verfügung, die zusätzliche Tools wie fswebcam überflüssig machen sollen. Sie können raspistill zur Aufnahme einzelner Fotos nutzen, während das Werkzeug raspivid für die Aufnahme von Videos vorgesehen ist.

Page 57: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera?

417

Bild 12.7: Mit der simplen Eingabe von raspistill lassen Sie sich den Hilfedialog ausgeben, mit dem Kommando raspistill -o aufnahme.jpg erzeugen Sie die ersten Aufnahmen mit der Kamera und speichern sie in die Datei aufnahme.jpg im aktuellen Verzeichnis.

In Sachen Dateiausgabe unterstützt raspistill die gängigsten Formate wie JPEG, BMP, GIF und PNG, das Tool raspivid nimmt in H.264-Codierung auf. Zusätzlich können mit raspistill auf der Kommandozeile Parameter wie Belichtungsmodi, Farbeffekte und Kontrasteinstellungen verändert werden. Das Tool bietet umfang-reiche Möglichkeiten, beim Fotografieren und Verarbeiten der Aufnahmen diverse Parameter zu setzen. So lässt sich beispielsweise mit der Option -t die Verzögerung in Millisekunden einstellen, falls am Raspberry Pi ein Bildschirm angeschlossen ist, um eine Vorschau des Kamerabilds anzuzeigen.

raspistill -t 500 -o aufnahme.jpg

Page 58: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12 Fotografieren und Video

418

Wenn die Kamera beispielsweise an einem Türspion eingesetzt wird und seitenver-kehrte Aufnahmen erzeugt, können Sie die Ansicht des Bilds mit der Option -hf anpassen:

raspistill -hf -o aufnahme.jpg

Über die zahlreichen weiteren Optionen und Parameter des raspistill-Werkzeugs informiert die Hilfeseite, die Sie mit der einfachen Eingabe von raspistill| less auf der Konsole aufrufen. Mit den Pfeiltasten navigieren Sie in den Hilfeseiten, mit der [Q]-Taste (Quit) verlassen Sie die Hilfe. Viel Spaß beim Fotografieren mit dem Raspberry Pi.

12.1.5 LED abschalten und heimlich fotografieren Wie die meisten Kameras hat auch das Raspberry-Pi-Kameramodul eine optische Benachrichtigung in Form einer LED, die beim Anfertigen einer Aufnahme standard-mäßig leuchtet. Es kann jedoch Einsatzzwecke geben, in denen diese rote LED besser abgeschaltet werden sollte, etwa beim heimlichen Fotografieren durch den Türspion bei einem Klingelsignal oder in einem Vogelhaus, in dem das Motiv nicht mitbe-kommen soll, dass es fotografiert wird. Zum Abschalten der angesprochenen LED auf dem Raspberry-Pi-Kameraboard reicht ein zusätzlicher Eintrag in der config.txt-Datei des Raspberry Pi aus:

disable_camera_led=1

Um die config.txt zu bearbeiten, benötigen Sie neben root-Berechtigungen auch einen Editor – hier kommt nano zum Einsatz. Mit dem Kommando

sudo nano /boot/config.txt

öffnen Sie die Datei und nutzen die Pfeiltasten, um zum Dateiende zu gelangen. Dort geben Sie den obigen Eintrag disable_camera_led=1 ein und drücken anschließend die bekannte Tastenkombination [Strg]+[X], um den nano-Editor zu beenden. Das bestätigen Sie mit Drücken der [Y]-Taste, gefolgt von [Enter]. Nun sollte beim Anfertigen einer Aufnahme beispielsweise durch raspistill die optische Benach-richtigung ausgeschaltet sein. Die Änderung wird selbstverständlich erst nach einem Neustart des Raspberry Pi aktiv.

12.1.6 Programmierung der Raspberry-Pi-Kamera Wie auf dem Raspberry Pi üblich, können die mit dem Computer verbundenen Geräte und angeschlossenen Gadgets über die Kommandozeile mit den Standardwerk-zeugen des Betriebssystems angesprochen und genutzt werden. Das gilt gleicher-maßen für eine am USB-Anschluss angeschlossene Webcam wie auch für eine im CSI-Anschluss angesteckte Raspberry-Pi-Kamera, die sich wie der Raspberry Pi standardmäßig ohne Gehäuse im einfachen Platinenlook zeigt und mithilfe des 15-poligen Flachbandkabels mit dem Raspberry Pi verbunden ist.

Page 59: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12.1 Vielfältiger Einsatz: Kameramodul oder USB-Kamera?

419

Ist die Kamera ordnungsgemäß am Betriebssystem angemeldet, können Sie prinzi-piell jede Skript- und Programmiersprache nutzen. Gerade für Einsteiger empfiehlt es sich, zunächst auf Bewährtes zurückzugreifen und möglichst verfügbare Bibliotheken und APIs für die eigenen Programme und Skripte zu verwenden. So stehen für nahezu sämtliche Anwendungszwecke solche Bibliotheken und APIs zur Verfügung. Manche Perlen müssen Sie wirklich suchen, denn bei der Vielzahl von Möglichkeiten – Repository-Verwaltung der Marktführer GitHub und Urgestein SourceForge, aber auch zig unterschiedlichen Foren und Blogs – geht manchmal der Überblick etwas verloren.

Auf der sicheren Seite sind Sie, wenn Sie sich zunächst auf GitHub und SourceForge umsehen, von dort die eine oder andere API auf den Raspberry Pi herunterladen und einfach mal ausprobieren, ob Sie mit dem, was der oder die Entwickler für die Open-Source-Gemeinde zur Verfügung gestellt hat, überhaupt etwas anfangen können. Für die Raspberry-Pi-Kamera gibt es Module und Erweiterungen wie Sand am Meer, aber wie im täglichen Leben ist hier weniger mehr. Generell wird nachfolgend das installierte Python-Entwicklerpaket benötigt, um damit später die Installation ver-schiedener Python-APIs und Module auf dem Raspberry Pi fehlerfrei anzustoßen – andernfalls lauern Fehlermeldungen wie fatal error: Python.h: Datei oder Verzeichnis nicht gefunden, die auf das fehlende Python.h-Modul hinauslaufen:

sudo apt-get install python-dev

Die meisten APIs sind redundant oder teilweise schlicht und ergreifend nutzlos, da mittlerweile bereits verbesserte Versionen wie raspistill und raspivid zur Verfügung stehen. Es gibt aber dennoch gerade für Entwickler Praktisches zu entdecken, das nicht nur in Sachen Codeoptimierung und Lesbarkeit, sondern auch beim Programmieraufwand als solchem wertvolle Hilfe leisten kann. Für die Raspberry-Pi-Kamera lohnt sich für den Python-Entwickler beispielsweise das picam-Modul, das auf GitHub (https://github.com/ashtons/picam) zur Verfügung steht.

mkdir picam

cd picam

wget https://github.com/ashtons/picam/archive/master.zip

mv master.zip picam-master.zip

unzip picam-master.zip

cd picam-master/

sudo python setup.py install

Das python setup.py install-Kommando sorgt dafür, dass das Python-Modul auf dem lokalen Computer zur Verfügung steht und bei der Entwicklung eines Python-Programms einfach per import modulname eingebunden werden kann, um die Funktionen des Moduls nutzen zu können. In diesem konkreten Fall reicht die Zeile

import picam

Page 60: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

12 Fotografieren und Video

420

aus, um das picam-Modul in das eigene Python-Skript einzubinden. Um nun per Python-Aufruf eine Aufnahme anzufertigen, ist folgender Code ausreichend:

#!/bin/python

import picam

pic = picam.takePhoto()

pic.save('/home/pi/picam/bild.jpg')

Speichern Sie die Datei und führen Sie sie aus.

Bild 12.8: Erscheinen Fehlermeldungen wie beispielsweise ImportError: No module named PIL, ist das in der Regel auf fehlende Pakete im Raspberry Pi zurückzuführen.

Im obigen Fall ist die Installation von PIL mit dem Kommando

sudo apt-get install python-imaging-tk

notwendig, um das Skript erfolgreich zu starten. Augenscheinlich ist natürlich der Aufwand etwas höher, um eine gewöhnliche Aufnahme zu erzeugen, der Vorteil der picam-Library liegt aber vor allem darin, bei automatisierten Aufnahmen die Kamera optimal nach bestimmten Parametern automatisch steuern und konfigurieren zu können, bevor der Auslösevorgang erfolgt.

picam.config.imageFX = picam.MMAL_PARAM_IMAGEFX_WATERCOLOUR

picam.config.exposure = picam.MMAL_PARAM_EXPOSUREMODE_AUTO

picam.config.meterMode = picam.MMAL_PARAM_EXPOSUREMETERINGMODE_AVERAGE

picam.config.awbMode = picam.MMAL_PARAM_AWBMODE_SHADE

picam.config.ISO = 0 #auto

picam.config.ISO = 400

picam.config.ISO = 800

picam.config.sharpness = 0 # -100 bis 100

picam.config.contrast = 0 # -100 bis 100

picam.config.brightness = 50 # 0 bis 100

Page 61: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Raspberry Pi als Haushaltshilfe

Mit den in diesem Buch vorgestellten Projekten und dem Einsatz von Sensoren stellt es für Sie kein Problem dar, beispielsweise einen Temperatursensor abzufragen oder einen Feuchtigkeitssensor in Betrieb zu nehmen, der Nässe oder gar einen Wasser-rohrbruch im Keller feststellt. Je nach Kommunikationseinstellungen sendet der Raspberry Pi umgehend eine SMS als Alarmmeldung – auch Überwachung von Zuständen oder Messen des Strom- und Heizungsverbrauchs ist mit den passenden Sensoren keine große Herausforderung mehr, und grundsätzlich können mit ein klein wenig Elektronik und einem Raspberry Pi der Energieverbrauch im Alltag und damit die Kosten erheblich gesenkt werden – zumindest wenn Sie wissen, von welcher Seite Sie den Lötkolben anfassen müssen. Wer vorhandene Haushaltsgeräte oder neue Technologien wie beispielsweise einen Haushaltsroboter als Haushaltshilfe ver-wendet, der kann auch dabei den Raspberry Pi als Werkzeug und Hilfsmittel ein-setzen, um diesen Roboter zu steuern, zu überwachen und ihm zusätzliche Funk-tionen einzuhauchen, die der Hersteller in dieser Form nicht vorgesehen hat.

13.1 Grill- und Backofen-Modding

Der Raspberry Pi hat bisher, abgesehen von seiner klingenden Bezeichnung Raspberry Pie – Himbeerkuchen –, nichts mit einem Kuchen geschweige denn einem Backofen zu tun gehabt. Doch im Zusammenspiel mit einer Eigenbauerweiterung lässt sich mit dem kreditkartengroßen Computer auch in der Küche am Backofen oder draußen im Garten mit dem Grill allerhand anstellen: Mit einem über die Schaltung angeschlos-

Page 62: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

620

senen Grillthermometer lässt sich der Raspberry Pi zum Überwachen des Back- oder Grillguts sowie der Temperatur verwenden oder einfach als Wecker bzw. als Alarm-funktion nutzen.

13.1.1 Analog/Digital-Wandler MCP3008/MCP3208 nachrüsten

Im Gegensatz zu anderen Mikrocontroller-Boards, beispielsweise aus der Arduino-Ecke, fehlen dem Raspberry Pi die Analogeingänge. Ist der Einsatz von kostengünstigen analogen Sensoren gewünscht, ist entweder der direkte Umweg über einen Arduino oder über ein Analog/Digital-Wandler-Board notwendig, falls auf dem Raspberry Pi bzw. in dem zu steuernden Programmcode genauere Messwerte verarbeitet werden sollen. Im Raspberry-Pi-Umfeld ist der 10-Bit-Analog/Digital-Wandler MCP3008-IC (Datenblatt: www.adafruit.com/datasheets/MCP3008.pdf bzw. www.microchip.com/ wwwproducts/Devices.aspx?dDocName=en010530) weit verbreitet, der für wenig Geld im Elektronikhandel erhältlich ist. Eine bessere Messgenauigkeit dank der höheren Auflösung von 12 Bit liefert der Analog/Digital-Wandler MCP3208-IC (Datenblatt: ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf), der im Vergleich zum MCP3008-IC mit knapp unter 3 Euro etwas teurer in der Anschaffung ist.

13.1.2 Datenblatt prüfen und Funktionen verstehen Um die Funktionsweise und das Zusammenspiel der Anschlüsse zu durchschauen, damit Sie den Analog/Digital-Wandler MCP3008-IC oder den MCP3208-IC mit dem Raspberry Pi einsetzen können, benötigen Sie aus dem Datenblatt Informationen darüber, wie die Kommunikation von Mikrocontroller und Analog/Digital-Wandler vonstattengeht.

Bild 13.1: Die oberste Zeile in der Abbildung aus dem Datenblatt zeigt das Chip-Select-Signal, das bei der dargestellten fallenden Flanke von HIGH auf LOW geht.

Page 63: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

621

Um eine Datenübertragung anzutriggern, muss zunächst der Clock-Pin (SCLK) auf LOW-Pegel (GPIO-Pin auf False) gesetzt werden. Im nächsten Schritt benötigt der IC einen Befehl, damit er den Messwert des gewünschten Kanals zurückliefert. Der MCP3008 hat wie der MCP3208 acht analoge Kanäle (CH0 bis CH7), im Datenblatt wird das Kommando zum Auslesen des Messwerts in obiger Abbildung bei MCU Transmitted Data (Aligned with falling edge of clock) mit dem Startbit 1 grafisch dargestellt. Hier bezeichnen die mit D0, D1 und D2 beschrifteten Bits den Binärwert des verwendeten Kanals. Somit sind neben den drei Bits für den Kanal das Startbit 1 und das SGL/DIFF-Bit notwendig, um den jeweiligen Kanal anzuschubsen, damit er den Messwert zum Mikrocontroller zurückschickt. Wie Sie dies in Programmcode umsetzen, lesen Sie, nachdem Sie die passende Schaltung auf dem Steckboard umgesetzt haben.

13.1.3 MCP3008 und MCP3208 auf Steckboard nutzen Um die Grundfunktionen des MCP3008 oder des MCP3208-IC kennenzulernen, bauen Sie im nächsten Schritt eine Beispielschaltung mit einem Drehpotenziometer auf dem Steckboard auf und verbinden den IC mit der SPI-Schnittstelle sowie der Masse und der Spannungsversorgung des Raspberry Pi. Der SPI (Serial Peripheral Interface Bus) lässt sich für die Signalübertragung zwischen dem Single Master (in diesem Fall der Raspberry Pi) und einem oder mehreren Slavegeräten bestens ver-wenden. Die SPI-Schnittstelle selbst benötigt auf der GPIO-Leiste des Raspberry Pi die fünf Pins SCLK (Serial Clock, Taktgeber), MOSI (Master Out, Slave In), MISO (Master In, Slave Out) und CE0/CE1 (Slave Select). Das MISO/MOSI-Pinpaar ist für die Full-Duplex-Kommunikation zwischen dem Master und den Slaves zuständig, während über den CLK-Pin die angeschlossenen Geräte mit dem Master synchroni-siert bleiben.

Bauteil Beschreibung Händler/Bestellnum-

mer

Preis

Drehpotenzio-

meter 10 kOhm

BOURNS – 3310Y-1-103L

– POTENTIOMETER, 10K

Farnell/Bestell-

nummer 9353976

2,88

Euro

MCP3008 MICROCHIP – MCP3008-

I/P – 10BIT

ADC,2.7V,8CH,SPI,16DIP

Farnell/Bestell-

nummer 1627174

2,59

Euro

MCP3208 MICROCHIP – MCP3208-

BI/P – ADC 12BIT

2.7V,8KANAL,SPI,16DIP

Farnell/Bestell-

nummer 1863934

3,66

Euro

Durch seine Bauform mit Beinchen lässt sich der Standard-IC bequem in einem Steckboard für Experimentierzwecke und somit später auch in der selbst bestückten Platine einsetzen.

Page 64: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

622

Bild 13.2: MCP3008/MCP3208: Zeigt die Kerbe des IC nach oben, erfolgt die Zählung der Anschlüsse wie beim Schreiben des Buchstabens U von links oben nach unten zum Anschlusspin 8, um dann von rechts unten (Pin 9) wieder nach oben zu Pin 16 zu gelangen.

Sämtliche acht analogen Eingangskanäle sind auf Pin 1 bis 8 auf der linken Seite untergebracht, während die Stromversorgungs- und Schnittstellenanschlüsse rechts von Pin 9 bis 16 Platz finden. Die anliegende Spannung an den acht analogen Ein-gangskanälen (CH0 bis CH7) darf laut Datenblatt –0,6 V bis VDD+0,6 V nicht unter- oder überschreiten, da sonst der Schaltkreis beschädigt werden könnte. Nach der Messung der Anschlüsse mittels eines Vergleichs mit der am V-REF-(VREF-)Pin anlie-genden Spannung erfolgt die Berechnung der Differenz bei dem MCP3008-IC in einer Auflösung von 1.024 (10 Bit, 210) bzw. beim MCP3208 mit 4.096 (12 Bit, 212), die anschließend an die Datenschnittstelle übergeben wird.

Bemerkung Bezeich-

nung

Pin O Pin Bezeichnung Bemerkung

Kanal 1 CH0 1 16 VDD Versorgungsspannung liegt

zwischen 2,7 V und 5,5 V mit

VDD(max) von 7 V.

Kanal 2 CH1 2 15 VREF Referenzspannung, mit der

die jeweils an den analogen

Anschlüssen anliegende

Spannung verglichen und die

Abweichung berechnet werden

kann.

Kanal 3 CH2 3 14 AGND Massesignal, analoger

Schaltkreis.

Kanal 4 CH3 4 13 CLK Taktsignal.

Kanal 5 CH4 5 12 DOUT Digitaler Ausgang SPI-

Schnittstelle.

Kanal 6 CH5 6 11 DIN Digitaler Eingang SPI-

Schnittstelle.

Kanal 7 CH6 7 10 CS Falls Steuereingang (Cable

Select, Chip Select, Chip

Enable ...) low, ist der

Schaltkreis aktiv.

Kanal 8 CH7 8 9 DGND Massesignal, digitaler

Schaltkreis.

Page 65: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

623

Durch das Drehpotenziometer haben Sie die Möglichkeit, am Analogeingang die Spannung manuell zu regulieren. Durch die Drehung des Stellrads des Drehpoten-ziometers ändern sich die Widerstandsparameter und somit auch die Werte des Spannungsteilers, die sich auf die anliegende Spannung auswirken. Diese wird mit der Referenzspannung verglichen und kann somit digital als Vergleichswert dargestellt werden. Ist das IC-Modul im Steckboard eingesteckt, nutzen Sie für die Verbindung zum Raspberry Pi am besten die gewohnten Jumperkabel. Die einzelnen Pins auf der rechten Seite des IC sind anhand der obigen Tabelle bzw. dem Datenblatt (www.adafruit.com/datasheets/MCP3008.pdf für MCP3008 bzw. ww1.microchip.com/ downloads/en/DeviceDoc/21298e.pdf für MCP3208) schnell zugeordnet und an der GPIO-Reihe bestückt.

Bild 13.3: Das notwendige Potenziometer (oben) wird außen mit der Masse (–) und mit dem 3,3-V-Anschluss des Raspberry Pi (Revision 2) verbunden. Der Mittelanschluss des Potenzio-meters wird am Eingang CH0 – also Pin 1 des IC – angeschlossen.

Page 66: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

624

Entsprechend den Angaben werden in diesem Beispiel Pin 15 und 16 mit 3,3 V, Pin 14 und 9 mit Masse, Pin 13 mit GPIO #11 (P1/23), Pin 12 mit GPIO #09 (P1/21), Pin 11 mit GPIO #10 (P1/19) und Pin 10 des IC mit GPIO #08 (P1/24) mit den Anschlüssen des Raspberry Pi verbunden.

Für den ersten Test wird mit dem 10K-Potenziometer ein gewöhnliches Modell für den Steckboardeinsatz verwendet. Das Potenziometer wird an den beiden äußeren Anschlüssen je mit Masse (–) und dem 3,3-V-Anschluss verbunden. Der Mittel-anschluss des Potenziometers wird am Eingang CH0 – also Pin 1 des MCP3008-/ MCP3208-IC – angeschlossen.

Bild 13.4: Raspberry Pi im SPI-Einsatz: Auf dem Steckboard ist zusätzlich ein Drehpotenziometer gesteckt, dessen Mittelanschluss mit dem IC-Pin 1 (Kanal CH0) verbunden ist.

Ist die Schaltung verkabelt, kann der Raspberry Pi an die Stromversorgung ange-schlossen und eingeschaltet werden. Im nächsten Schritt wird die manuelle An-steuerung des MCP3008-/MCP3208-IC exemplarisch an dem MCP3008-IC über Python realisiert.

13.1.4 Programmierung des MCP3008 mit Python Aus dem Datenblatt bzw. dem vorigen Abschnitt wird ersichtlich, dass der MCP3008-IC eine 10-Bit-Auflösung, also 210 mögliche Bitkombinationen bietet. Im Umkehrschluss bedeutet das, dass bei einer vorliegenden Eingangspannung bzw. Referenzspannung von 3,3 V für jede einzelne Bitänderung im Bereich von 0 bis 1023 ein anderer Messwert im Bereich von 0 bis 3,3 V vorliegt. Für jedes einzelne Bit wäre in diesem Fall die Änderung leicht zu berechnen, indem Sie die Referenzspannung durch die Anzahl der Auflösung teilen (hier 3,3 V/1024), was 0,00322265625 V bzw. 3,22265625 mV entspricht. Da die Stromstärke gleicht bleibt, ändert sich bei einer Drehung des Potenziometers der Widerstand und somit auch die anliegende Spannung, die nach dem Vergleich mit der Referenzspannung die Differenz an die Datenschnittstelle übergeben wird.

Page 67: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

625

MCP3008-

Pin

MCP3008 Poti-Pin

10 kOhm

Raspberry-Pi-

Bezeichnung

Raspberry-

Pi-Pin

WiringPi

1 CH0 3 - - -

16 VDD 2 3,3 V 1 -

15 VREF - 3,3 V 1 -

16 VDD - 3,3 V 1 -

11 DIN - GPIO10/SPI MOSI 19 12

12 DOUT - GPIO9/SPI MISO 21 13

13 CLK - GPIO11/SPI0_SCLK 23 14

10 CS/SHDN - GPIO8/SPI0_CE0_N 24 10

9 DGND - Masse 6 -

14 AGND 1 Masse 6 -

Ist der Raspberry Pi mit dem Steckboard und mit dem MCP3008-IC verbunden, lassen sich natürlich nur dann Messwerte auslesen und verarbeiten, wenn an einem oder mehreren der acht verfügbaren Analogeingänge auch jeweils ein Signal anliegt. Die einfachste Methode ist in diesem Fall der Anschluss eines Drehpotenziometers, mit dem Sie per Drehung die Werte des Spannungsteilers manuell anpassen.

cd ~

mkdir mcp3008

cd mcp3008

nano mcp3008-step1.py

Ist die Python-GPIO-Library installiert, prüfen Sie mit einem Python-Skript die Schaltung auf dem Steckboard. Die SPI-Library kommt in einem späteren Beispiel zum Einsatz. Die Beispieldatei mcp3008-step1.py finden Sie im Quellcodeverzeichnis MCP3008. Zunächst legen Sie die genutzten GPIO-Ein- und -Ausgänge fest. In diesem Beispiel wird die BCM-Zählung auf einem Raspberry Pi B Revision 2 verwendet – achten Sie bei der Verwendung einer älteren Revision auf die korrekte Zuordnung der GPIO-Nummern. Für das Auslesen der Werte an den Eingängen des MCP3008-IC wird die Funktion getAnalogData genutzt, die mit den entsprechenden GPIO-Nummern der verwendeten Pins aufgerufen wird. Nach der Festlegung des Kanals kann die im Datenblatt beschriebene Syntax für das Auslesen der am jeweiligen Kanal anliegenden Spannung angewendet werden. Mit der Zeile GPIO.output(CS_Pin, False) erzeugt das Skript eine steil abfallende Signalflanke (von 3,3 V auf 0 V) und aktiviert per Cable Select (CS) den A/D-Wandler des IC.

Binärwert Kanal

000 0

001 1

Page 68: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

626

Binärwert Kanal

010 2

011 3

100 4

101 5

110 6

111 7

Die beim pushcmd-Kommando festgelegte Bitfolge wird über den MOSI-Kanal ausge-ben und mit der Zeile pushcmd = poti_channel mit der Nummer des Analogeingangs gekennzeichnet, die durch drei Bits dargestellt wird. Durch das bitweise ODER in der Zeile pushcmd |= 0b00011000 werden die drei Adressbits von rechts eingefügt, und anschließend wird die Bitfolge über die for-Schleife gesendet.

Binärfolge Bemerkung

0b00011000 000 gibt die verwendete Kanaladresse (CH0) in binä-

rer Schreibweise an.

0b00011000 SGL-(Signal-)Bit.

0b0001100 Startbit.

Das Holen bzw. Auslesen der Messwerte ist ebenfalls über eine for-Schleife reali-siert. Hier nehmen Sie einen Pegelwechsel mit den beiden Befehlen GPIO.output (CLK_Pin, True) und GPIO.output(CLK_Pin, False) vor und lesen die Daten-schnittstelle anschließend Bit für Bit aus. Liegt am MISO-Anschluss ein Pegel an, ist das letzte Bit eine 1, sonst bleibt der Wert 0. Auch diese Zuordnung wird mit der bitweisen ODER-Operation durchgeführt. Zu guter Letzt wird der in der Variablen poti_channel_value gesicherte Wert von der Funktion zurückgegeben.

# -*- coding: utf-8 -*-

#!/bin/python

import RPi.GPIO as GPIO

import time, os

#----------------------------------------------------------------------

# E.F.Engelhardt, Franzis Verlag, 2016

# ---------------------------------------------------------------------

# Das Skript nutzt die Analogeingaenge des MCP3008-IC

# und liest diese ueber den SPI-Bus aus

# Datei mcp3008-step1.py

# --------------------------------------------------------------------

GPIO.setmode(GPIO.BCM) # GPIO Mode

# --------------------------------------------------------------------

# Konfiguration Eingangskanal und GPIOs

poti_channel = 0 # Analog/Digital-Kanal 0

CLK_Pin = 11 # Clock -> Pin 13 / GPIO11 / SPI0_SCLK/ Pin 23 / wiringPi = 14

Page 69: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

627

DIN_Pin = 10 # Digital in -> Pin 11 / GPIO10 / SPI MOSI / Pi Pin 19 /

wiringPi = 12

DOUT_Pin = 9 # Digital out -> Pin 12 / GPIO9 / SPI MISO / Pin 21 / wiringPi

= 13

CS_Pin = 8 # Cable-Select -> Pin 10 / GPIO8 / SPI0_CE0_N / Pin 24 /

wiringPi = 10

# --------------------------------------------------------------------

# GPIO konfigurieren

GPIO.setup(CLK_Pin, GPIO.OUT)

GPIO.setup(DIN_Pin, GPIO.OUT)

GPIO.setup(DOUT_Pin, GPIO.IN)

GPIO.setup(CS_Pin, GPIO.OUT)

# ---------------------------------------------------------------------

# Funktionen

#

def getAnalogData(poti_channel, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin):

# Pegel definieren

GPIO.output(CS_Pin, True)

GPIO.output(CS_Pin, False)

GPIO.output(CLK_Pin, False) #

pushcmd = poti_channel

pushcmd |= 0b00011000 # = Hex 0x18 (1:Startbit, 1:Single/ended)

# Kommando zum Werte-Abruf des Kanals

# Bitfolge senden

for i in range(5):

GPIO.output(DIN_Pin, bool(pushcmd & 0b10000))

# 4. Bit prüfen und mit 0 anfangen

# Clocksignal negative Flanke erzeugen

GPIO.output(CLK_Pin, True)

GPIO.output(CLK_Pin, False) # Taktsignal MCP anschubsen, um Bit auf

MOSI zu nehmen

pushcmd <<= 1 # Bitfolge eine Stelle nach links verschieben.

# Damit kommt das nächste Bit an Position 5 und kann im nächsten

Schleifenlauf

# ausgeworfen werden

# Daten holen

poti_channel_value = 0 # Wert auf 0 resetten

for i in range(11):

GPIO.output(CLK_Pin, True)

GPIO.output(CLK_Pin, False)

poti_channel_value <<= 1 # Um eins nach links schieben

if(GPIO.input(DOUT_Pin)): # Liegt an MISO-Pegel an, dann wird

poti_channel_value |= 0x01 # letztes Bit eine 1, sonst bleibt es 0

time.sleep(0.5)

return poti_channel_value

# ----------------------------------------------

# Start Python-Skript

# ----------------------------------------------

Page 70: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

628

os.system('clear')

print "[mcp3008] Messung Drehpotenziometer"

try:

while True:

tmp_value = getAnalogData(poti_channel, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin)

print "Wert Kanal Nr.", poti_channel, "=", tmp_value

time.sleep(2) # Sekunden warten

except KeyboardInterrupt:

# CTRL-C gedrueckt

# Reset GPIO

print "[mcp3008] Messung abgebrochen."

GPIO.cleanup()

# ------------------- EOF -----------------------

Durch die Drehung des Stellrads des Drehpotenziometers ändern sich die Wider-standsparameter und somit auch die Werte des Spannungsteilers, die sich auf die anliegende Spannung auswirken. Diese wird anschließend mit der Referenzspannung verglichen und kann somit digital als Vergleichswert dargestellt werden.

Bild 13.5: Stellrad am Anschlag: Mit der Ausgabe des Werts 1023 erreicht das Potenziometer den höchsten digitalen Wert. Der Jitter schwankt zwischen den Werten 1022 und 1023.

Läuft das Skript in einer Dauerschleife, kann es vorkommen, dass der angezeigte Wert etwas schwankt, obwohl das Drehpotenziometer nicht betätigt wurde. Die Ursache dafür liegt im sogenannten Jittering, bei dem die Übergänge zwischen zwei aufeinanderfolgenden unterschiedlichen Bits für schwankende Ausgaben sorgen. Um die Messung bzw. die Darstellung der Messwerte zu verbessern, nutzen Sie am besten eine Normalisierung im Python-Skript. Sie können beispielsweise die Warte-zeit in der while-Schleife nutzen, um mehrere Messungen zusammenzufassen, und sich stattdessen anschließend den errechneten normalisierten Mittelwert ausgeben lassen.

# Datei mcp3008-step2.py

# ----------------------------------------------

# Start Python-Skript

# ----------------------------------------------

os.system('clear')

print "[mcp3008] Messung Drehpotenziometer"

Page 71: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

629

anz=3

# Drei hintereinanderfolgende Messungen werden gemittelt (anz)

try:

while True:

sum=0

for i in range(anz):

tmp = getAnalogData(poti_channel, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin)

sum=(sum+tmp)

print "Summe =", sum

time.sleep(0.15)

tmp_value = sum / anz

print "Wert Kanal Nr.", poti_channel, "=", tmp_value

time.sleep(2) # Sekunden warten

except KeyboardInterrupt:

# CTRL-C gedrueckt

# Reset GPIO

print "[mcp3008] Messung abgebrochen."

GPIO.cleanup()

# ------------------- EOF -----------------------

Die angepasste Version mit den normalisierten Messwerten finden Sie gespeichert in der Datei mcp3008-step2.py. Im nächsten Schritt aktivieren Sie die SPI-Schnittstelle des Raspberry Pi, um Zugriff auf das angeschlossene MCP3008-IC-Modul zu erhal-ten.

13.1.5 SPI-Schnittstelle aktivieren Das Serial Peripheral Interface (kurz SPI) ist ein einfaches, serielles Protokoll, das die Kommunikation zwischen dem Raspberry Pi und dem MCP3008-IC bzw. dem MCP3208-IC übernimmt. Hier steuert der Master (Raspberry Pi) die Kommunikation, und der Slave (MCP3008-/MCP3208-IC) führt Befehle aus. Für die Kommunikation werden einfache Byte-Befehlscodes verwendet, die als Spannungsgröße codiert über-tragen werden.

SPI Name der Signale/

Leitungen auf Master

Name der Signale/

Leitungen auf Slave

Taktleitung/Clock CLK, SCLK, SCK CLK, SCLK, SCK

Daten vom Master zum

Slave (Schreiboperation)

MOSI, SIMO Dateneingang eines

Bauteils: SDI, DI,

SI, IN

Daten vom Slave zum

Master (Leseoperation)

MISO, SOMI Datenausgang eines

Bauteils: SDO, DO,

SO, OUT

Slaveansprache/-auswahl SS (Slave Select),

CS (Chip Select)

-

Page 72: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

630

Der Raspberry Pi besitzt zwei Slaveanschlüsse (CE0 und CE1, Raspberry-Pi-Pin 24 und 26), mit denen zwei SPI-Geräte bei einer maximalen Taktrate von 32 MHz gleichzeitig verwendet werden können. Ist der Raspberry Pi gestartet, prüfen Sie in der Datei /etc/modprobe.d/raspi-blacklist.conf die Zeile, die das Modul spi-bcm2708 »blacklistet«. Achten Sie darauf, dass sich vor der genannten Zeile das Lattenzaunsymbol # befindet, um die Anweisung auszukommentieren.

Bild 13.6: Mit dem Kommando sudo nano /etc/modprobe.d/ras

pi-blacklist.conf

starten Sie den nano-Editor und fügen am Anfang der Zeile, in der sich das spi-bcm2708-Modul befindet, ein #-Symbol ein.

Nach der Änderung speichern Sie mit der Befehlsfolge [Strg]+[X], dann [Y] und schließlich [Enter] die Datei und starten mit dem reboot-Kommando den Raspberry Pi neu, damit die Änderung aktiv wird.

Bild 13.7: Nach dem Reboot mit sudo reboot prüfen Sie, ob das notwendige Modul automatisch gestartet worden ist.

Um herauszufinden, ob das Modul betriebsbereit zur Verfügung steht, verwenden Sie diesen Befehl:

lsmod | grep spi_bcm2708

Page 73: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13.1 Grill- und Backofen-Modding

631

Anschließend sollte der Eintrag spi_bcm2708 in der Bildschirmausgabe erscheinen – falls nicht, nutzen Sie den sudo insmod spi_bcm2708-Befehl, um das Modul manuell zu starten. Ist das Modul ordnungsgemäß geladen, installieren Sie im nächsten Schritt die SPI-Erweiterung für den bequemen Zugriff auf die SPI-Schnittstelle mit Python.

13.1.6 SPI-Nutzung ohne Umwege: py-spidev-Modul installieren

Warum das Rad neu erfinden, wenn bereits sinnvolle und praktische Alternativen zur Verfügung stehen? Das trifft auch bei der GPIO-Schnittstelle und Erweiterungen zu, hier existieren für Schnittstellen viele verschiedene Module und Bibliotheken, die vor allem eines gemeinsam haben: Sie sind kostenlos über GitHub oder SourceForge erhältlich und stellen einfach zu nutzende Funktionen zur Verfügung, um die wichtigsten Funktionen und Schnittstellen zu nutzen. So existiert auch für den SPI-Bus (Serial Peripheral Interface Bus) eine praktische Erweiterung, die Sie in dem Python-Skript und umgehend auf dem Raspberry Pi einsetzen können.

Bild 13.8: Für Einsteiger deutlich bequemer als eine selbst programmierte Logik für den Zugriff auf die SPI-Schnittstelle ist das spidev-Paket.

Page 74: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

13 Raspberry Pi als Haushaltshilfe

632

Für die Einrichtung sind folgende Befehle notwendig – die py-spidev-Erweiterung wird zunächst in ein eigenes Verzeichnis (/home/pi/py-spidev) herunterladen und anschließend per Python-Installationsskript installiert:

cd ~

mkdir py-spidev

cd py-spidev

wget https://raw.github.com/doceme/py-spidev/master/setup.py

wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c

Alternativ klonen Sie mit git das komplette Paket in das Homeverzeichnis des Users pi:

cd ~

git clone git://github.com/doceme/py-spidev

Die Installation erfolgt in beiden Fällen mit dem Kommando:

sudo python setup.py install

Damit ist die Installation erledigt, und das Modul kann direkt per import-Kommando in einem Python-Skript verwendet werden.

13.1.7 Mehrere Analogsensoren über py-spidev verarbeiten Die Vorteile des py-spidev-Moduls ergeben sich gerade beim Einsatz mehrerer ana-loger Sensoren an einem MCP3008- oder MCP3208-IC. Hier müssen Sie sich nicht mehr auf die Bit-Ebene begeben, um an die Messwerte der an den analogen Eingän-gen anliegenden Spannung heranzukommen. Stattdessen nutzen Sie wie in dem Beispiel mcp3008-step3.py eine eigene Funktion (def getadcChannel(channel):), die als Übergabeparameter die zu prüfende Kanalnummer (Wert von 0 bis 7) am MCP3008-IC erhält. Dies erfolgt in einer »Dauerschleife«, die mit dem altbekannten [Strg]+[C]-Tastenkürzel abgebrochen werden kann. Zugegriffen wird auf das SPI-Objekt über diese beiden Zeilen:

spi = spidev.SpiDev()

spi.open(0,0) # open spi port 0, device (CS) 0 – Pin 24

Nutzen Sie den zweiten SPI-Kanal (Cable Select 1), ist stattdessen das Kommando

spi.open(0,1) # open spi port 0, device (CS) 1 – Pin 26

das richtige. Für die Umrechnung des Messwerts in die aktuelle Spannung sorgt die Funktion convertVolts, die die Berechnung auf Basis der verwendeten 10-Bit-Einheit vornimmt. In dem nachstehenden Codebeispiel sind an dem MCP3008-IC an Kanal 0 das Potenziometer sowie an Kanal 1, 2 und 3 jeweils ein analoger Lichtsensor ange-schlossen.

# -*- coding: utf-8 -*-

#!/usr/bin/python

Page 75: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

Symbole /dev/ttyACM0 373, 663 /dev/video 553 +CREG 393 1-Wire-Sensoren 248

A A4988 429, 464 Abmelden 63 Abstandsmessung 353 Adafruit-Display-Erweiterungsboard 289 adafruit-lcd-step2.sh 291 Add-ons nachrüsten 203 Akkupacks 557 Allegro 463 APF-Protokoll 157 apt-get 131 Arbeitsgruppe 156 Arbeitsspeicher 75 Arcade-Spiele 168 Arduino 761, 766, 782

MQTT-Client 262 Arduino-IDE 762, 783 Arduino-Pin 766 Arduino-Shields 773 arp –a 26 AT+CMGS 378 Atari 2600 167 AT-Kommandos 381 ATmega 759 ATmega328P 761, 782 Ausschalten 63 AVR 759 avrdude 762

B Barebone 723 bcm_host.h 694 Befehle 26, 27, 28 Benutzer pi 112 Benutzereingaben 745 Benutzeroberfläche, deutsch 66 BerryBoot 87

Image erstellen 92 SquashFS 92

Betriebssystem auffrischen 414 Betriebssystem-Images 56 Bewegungsmelder 282, 554

Shellskript 280, 545 Bild

Anzeige ohne GUI 496 EXIF 497 fbi 496 GPS-Information 497

Bildeffekte 517 Bluetooth 447

PIN 136 Bottle 686 bottle.py 686 bottle_pisauger.py 701 Breitengrad 350

C C128 167 C64 167, 168 CAN 773 Canon 446 cat 26 cd 26, 276

Page 76: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

792

CD-/DVD-Laufwerk 517 Cell ID 389 chmod 28 CID 389 CIFS/Samba konfigurieren 196 Class 6 35 clean 665, 667 cmake 490, 560 CMakeLists.txt 491 Compute Module, GPIO-Anschlüsse 236 con 669 con.write 669 config.txt 418 cp 26 CPU-Auslastung 202 CrystalDiskMark 35 CSI-Anschluss 422 CSI-Kabel austauschen 422 CSV-Datei 357 CUPS 121

Drucker einrichten 126 Drucker hinzufügen 126 Standardpasswort 126

cut 26 Cyberduck 150

D Dashcam 412 date 26 Dateien optimieren 76 dd 26 Debian, Referenz 118 deb-Pakete 291 Desktopsymbole 303 df -h 26 DiagTest 667 diff 26 dig 26 Display Serial Interface 298 Distanzmessung 353 dmesg 660

Drahtlose Stromversorgung, Raspberry Pi 706

Drehmoment 428 Drucker installieren 121 DSI 298 Duracell Powermat 706

E echo 26 Einwegkamera 519 Elektronik 220, 221, 225, 311, 411, 426, 452,

454, 455, 465, 472, 558, 619, 620, 637, 678, 725, 757 für Nichtelektroniker 220 Raspberry Pi 219 Schaltung auf dem Steckboard 223

Embedded Pi 773 Enable Camera 414 Eneloop 557 EOS 446 Epiphany 115 Erstkonfiguration 63 Erststart 63 exiftool 331 exit 26 export 291

F FBAS 481 FBAS-Anschluss 36 fbi 496 feedback 670 Fernbedienung, mit Pi koppeln 215 FFMpeg 423 find -name 26 Firmware 695

auffrischen 414 SIM900-Modem 362

Foto EXIF 497 fbi 496 GPS-Information 497

Page 77: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

793

Franzis 551 Freilaufdioden 428 Fritzing, Schaltungsdesign 225 fstab 76 fswebcam 554 FTP/HTTP-Server 156 Funktion, tempsensor.py 255

G Gehäuse 47 Geodaten auswerten 330 Geolocation 394 geopy-Bibliothek 353 Geosetter 333 Gertboard 757 GertDuino 780

Arduino-GUI 785 im Praxiseinsatz 786

Gesichtserkennung 566 Gesichtswiedererkennung 566 GetAccel 667 GetAnalogSensors 667 getFileNameFromIndex 496 GetSchedule 667, 674 GetVersion 667 git 490 git pull origin 276 GitHub 419, 686 GIT-Versionsverwaltung 276 GNU-nano-Editor 424 GPIO 554 GPIO-Anschluss 49 GPIO-Bibliothek 243 GPIO-Funktionen 230 GPIO-Option 242, 243 GPIO-Pinleiste

Programmierung 227 Unterschiede 228

GPIO-Schnittstelle, Zugriff 230 GPS

Routenspeicherung 356 GPS

Daten aufbereiten 356 GPS und GSM kombinieren 400 gps2pic.sh 331 GPSBabel 357 gpsd 327 GPS-Daten 326

output.csv 360 Verarbeitung 334

GpsDrive 337 GPS-Koordinaten 350 GPS-Modul 324, 350 GPS-Stick in Betrieb nehmen 324 gpsthief-step1.py 334, 350 gpsthief-step2.py 351 gpsthief-step3.py 356 GPU 416 grep 26 Großkreis-Methode 353 GSM-Hacking 388 GUI-Start unterbinden 75 gunzip 26

H H264 417, 504 Halbschrittbetrieb 440 Halbschrittverfahren 440 halt 27 Handyüberwachung per SMS 387 Haushaltshilfe

Modding 619 Raspberry Pi 619

HDMI 504 HDMI-Anschluss 36 HDMI-Ausgang 33 Heimnetz 151 help 665, 667 help SetSchedule 674 Herunterfahren 63 history 27 host 27 hostname 27 HTML5 115

Page 78: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

794

htop 73

I IDE 768 ifconfig 27 imagemagick 530 Inbetriebnahme 59 Indiana Jones 168 input_file.so 692 input_raspicam.so 693 Intel NUC 723 IoT 257 ip 27 IP-Adresse, WinSCP 148 IP-Kamera 594

aus der Ferne steuern 615 in Betrieb nehmen 595 konfigurieren 596 mit Raspberry Pi koppeln 594 mit ZoneMinder koppeln 602

IR-Infrarotfilter 421 irnumber 753 iRobot 731 irrecord 732 iw 27 iwconfig 27

J jhead 531

K Kabelfernbedienung 448 Kamerasensor 413 kill 27 Klingelanlage 36 Klinkenstecker 448 Kommandozeile 416 Konfigurationsdateien 53 Konsole 77, 282 Konsolenbefehle 26

L L293D 428 L6203 758 LAC 389 LAI 389 Längengrad 350 LED abschalten 418 LED-Bildschirm 481 Legosteine 51 Lib-JPEG-Fehlermeldung 591 LibreOffice 116

deutsche Oberfläche 116 Tuning 117

Linsen 516 Linux 25

NumLock 73 Linux-Computer 195 Linux-Kommandos 53 LIRC

Fernbedienung aufnehmen 728 Installation 723 irrecord 728 Raspberry Pi 726

LmCompatibilityLevel 164 ln 27 Location Area Code 389 Location Area Identity 389 Log-in-Profile 152 ls 27 lsusb 659, 684 lwd 27 LXTerminal 25

M make 276 MAME 168 Maus 37 MCC 389 MCP3002 758 MCP4801 758

Page 79: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

795

Micro-USB-Kabel 33 Minecraft 119

Pocket Edition 119 Steuerung 119

minicom 372, 662 minicom-Emulationsfenster 666 Mini-HDMI-Anschluss 36 Mini-USB-Hub 682 mjpg-streamer 693 MJPG-Streamer 692 mkdir 27 mmv 27 MNC 389 Mobile Country Code 389 Mobile Network Code 389 Mobilfunkschnittstelle 371 Modell A 19 Modell B 19 Modell B2 20 modprobe 291 mogrify 530 Monkey Island 168 Mosquitto 258

Betrieb 260 Schnellcheck ohne MQTT-Client 261

Motor bipolar 426 unipolar 426

Motorcontroller 428, 758 MP4 504 MP4Box 504 MPEG-1-Codec 206 MPEG-2-Codec 206 MQTT 257 MQTT und IoT 257 MQTT-Client

Arduino 262 Raspberry Pi 270

Mute-Taste 754 mv 27

N nano 27 NAS-Server 162 Navigationssystem

Eigenbau 323 installieren 337

Navit 337 Betrieb 340 Feintuning 340 Parameter anpassen 345 Sprachausgabe 344

Neato 653 NetBIOS-Name 157, 158 netstat 27 Netzwerkfreigaben 164 Netzwerkkabel 38 Netzwerkschnittstelle 139 NFS 556 NFS konfigurieren 195 Nintendo 64 168 Normtemperatur 645 NUC 723

O Objekterkennung 566 Objektive 516 OMXPlayer 504 Onscreen-Tastatur 288 OpenCV 558

Farberkennung 574 kompilieren 560 mit Remotedesktop 562 Objekt- und Gesichtserkennung 558 und Raspberry Pi 573 von den Formen zu den Farben 573 vorbereiten 559

OpenELEC 181, 202 OpenELEC.tv 182 OpenELEC-Image 182

Page 80: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

796

P passwd 27 Pi NoIR 421 Pi Store 129 picam-Modul 420 ping 27 PIP-Installer 239 PIR-Modul 278 Plexiglasgehäuse 48 Pololu 463 Pololu A4988 429 Postadresse 350 ps 27 PuTTY 144, 145, 146, 659 pwd 27 PWM 758 PWR-Taste 754 PyGame

Farben 742 Grundlagen 740 Inbetriebnahme 740

PyGame-Praxis, IR-Fernbedienung 753 pygame-step02.py 742 pygame-step03.py 747 pygame-step04.py 748 pygame-step05.py 753, 754 py-spidev-Modul 631 Python, GPS-Daten 334 python-serial-API 668

R Raspberry Pi

Briefkastenalarm 549 drahtlose Stromversorgung 706 GPIO-Anschlüsse 235 Haushaltshilfe 619 Im Vogelhaus 553 MQTT-Client 270 MQTT-Publisher 272 SMS-Gateway 361 TV-Box 209

Raspberry Pi ausschalten 63 Raspberry-Pi-GPIO, mit Steckboard koppeln

224 Raspberry-Pi-Kamera 413

Pi NoIR 421 Programmierung 418

Raspbian 25 Programme installieren 129

Raspbian Jessie 115 raspi-config 63, 69, 414 raspi-gpio 240 raspistill 416, 419 raspivid 416, 419 RDP 768 Reed-Schalter 550 Relais 681 Repository-Verwaltung 419 Retropie

Download 173 Installation 173 N64 176 Spiele installieren 174

Retrospiele 168 rm 27 rmdir 28 Roomba 731 Roomba, Fernbedienung 731 rotate 293 Rotor 426 route 28 Routenprüfung 349 Routenspeicherung 356 RPi.GPIO-API

Installation 243 Rx-Verbindungen 376

S Samba 556

einrichten 189 Samba-Konfiguration 153, 154 Samba-Server 162 Samba-Testprogramm 154

Page 81: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

797

Schrittwinkel 465 SCP 148 screen 740, 742 Screenshots 208 Scroll pHAT 319

mit Python 319 SDHC-Karten 35 SD-Karten 34 serial-Bibliothek 382 service

restart 28 start 28 stop 28

set_background 745 set_icons 748 SetMotor 671 SetSchedule 667 SetSystemMode 667 SetTime 667 setup.py 244 SetWallFollower 667 SFTP-Protokoll 150 showImage 496 SIM900

Firmware-Update 363 GPRS/GSM-Modul 367

sim900-gsmkoordinaten.py 395 SIM900-Modem 368

Python 368 richtig verkabeln 362

sim900-sende-gps-sms-step2.py 405 sim900-sende-sms.py 383 Skript

adafruit-lcd-step2.sh 291 fotocheck.sh 453 franzisCAM 492 franziscam-step1.sh 489 franziscam-step2.sh 489 franziscam-step3.sh 489 franziscam-step4.sh 489 franziscam-step5.sh 489 gpiostart.sh 435

gps2pic.sh 331 gpsthief-step1.py 334, 350 gpsthief-step2.py 351 gpsthief-step3.py 356 mjpeg.sh 701 motorledcam.py 466 noise-step1.sh 546 piri.sh 281 piriblink.sh 552 piriblinkcam.sh 555 pygame-step02.py 742 pygame-step03.py 747 pygame-step04.py 748 pygame-step05.py 753 pygame-step06.py 754 raspistill 492 raspitimelapse.sh 525 setup.py 244 sim900-gsmkoordinaten.py 395 sim900-sende-gps-sms-step2.py 405 sim900-sende-sms.py 383 watermotor.py 538

SMB 158 smbpasswd-Datei 154 SMS 400

PDU 378 Textversand 378

SMS-Alarmanlage 361 SMS-Nachrichtenversand 404 SMS-Versand 374, 378

mit Python 383 SourceForge 419 Speicherauslastung 202 Speicherkarte 35 Speicherkarten-Image 61 Speichersplitting 74 spi-bcm2708 291 Spiele

Pac Man 167 Ping Pong 167 Retropie 176 Retrospiele 176

Page 82: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

798

Space Invaders 167 SPI-Schnittstelle aktivieren 629 Spulenwiderstand 429 ssh 28 SSH 144 Standort abfragen per SMS 405 Standortdaten auslesen 392 Standortinformationen

im Mobilfunknetz 389 ohne GPS 388

start 353 Startmenü 112 startx 292 Stator 426 Staubsauger 652

minicom-Steuerung 664 Staubsaugerroboter 652

am Raspberry Pi 659 Treiber 654

Steinhart-Hart-Gleichung 645 Steppermotor 427 Stromversorgung 33 sudo 28 Swap-Datei anlegen 75 Systemauslastung 73

T tar xzvf 28 Taskmanager 118 Tastatur 37

deutsche 67 Temperaturmessung 636

DS18B20-Sensor 248 mit Python 255 Steckboard 248

Temperaturmessung, Grillthermometer 638

Temperatursensor 251 Terminal 25, 144

Befehle 26 Terminalemulation 668 testmode 671

TestMode on/off 667 testparm 154 Textverarbeitung 116 Thermistor 646 touch 28 Touchbildschirm 298 Touch-LCD-Display 288, 290, 345 Touch-LCD-Treiber 290 Touch-Overlay 288 traceroute 28 Tuning 72 Türspion 418, 515, 517, 521 TV-Box 209

auf Linux-Basis 209 mit Kodi 213 Streaming-Server 211

TV-Taste 754 Tx-Verbindungen 376

U Ubuntu 151 udev-Daemon 328 uln_clean_motor_gpio.py 439 uln_full_half.py 441 ULN2803 428 ULN2803A 758 uname 414 Upload 668 USB Image Tool 61, 114 USB-Hub 141 USB-Kabel 682 usbserial 660 USB-Webcam 553 USB-WLAN-Adapter 140 useradd 28 userdel 28 usermod 28

V Versionsstand 414 Verzeichnisse optimieren 76 Videoüberwachung 36

Page 83: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

Stichwortverzeichnis

799

Vincenty-Formel 353 Vollschrittverfahren 439 Vorwerk 653

W Web Server Gateway Interface 686 Webbrowser 115 Webcam 422 Wegfahrplan 349 wget 276 which 28 Wi-Fi, Netzwerkeinstellungen 142 Windows-Ordner freigeben 161 WINS 156 WinSCP 148 WiringPi-API 275

Python 277 WLAN, Netzwerkeinstellungen 142 Wohnzimmer-PC 181 wpa_passphrase 711 write 684 WSGI 686

X Xarchiver 118 XBMC 194 XBMC-Mediacenter 184 xinput_calibrator 296

Z Zeiteinstellung 72 Zeitzone 66 Zentraler Drucker 151 Zero, Betriebssystem 115 ziel 353 ZIP-Format 118 ZoneMinder 581

Feintuning 604 lokale Webcam 587 mit Apache-Webserver 583 MySQL-Datenbank 586

Zubehör 32, 118 Zusammenführen von Fotos und GPS-

Daten 331

Page 84: Raspberry Pi Manifest - Leseprobe -  · Raspberry Pi durch die programmierbare GPIO-Schnittstelle hat bastelwilligen Informatikern die Tür geöffnet. Wobei man gar kein Studium für

MANIFESTR A S P B E R R Y P I

Hardware, Betriebssystem, Programmierung und Elektronik

E . F . E n g e l h a r d t

29,95 EUR [D] / 30,80 EUR [A]ISBN 978-3-645-60493-2

Besuchen Sie unsere Website www.franzis.de

Ursprünglich wurde der Raspberry Pi entwickelt, um bei mehr

Menschen die Freude am Programmieren zu wecken. Eben

Upton und seinem Team ist hier aber weitaus mehr gelungen:

ein System zu einem günstigen Preis, in kompakter Bauweise,

mit einem Open-Source-Betriebssystem, mit hoher Erweiter-

barkeit sowie einer großer Community. Eigentlich wurde an

alles gedacht – nur nicht an eine ausführliche Anleitung.

E. F. Engelhardt hat diese Lücke mit dem vorliegenden Buch

gefüllt. Schon seit 2013 beschäftigt er sich mit dem Pi und

hat sein Wissen in praxisnaher Weise niedergeschrieben.

Für Einsteiger fängt er mit der Beschreibung der einzelnen

Modelle an und geht dann ausführlich zur Installation und

Konfiguration des Betriebssystems über.

In mehr als 50 Projekten erfahren Sie, wie Sie den Minicom-

puter für Ihre Zwecke nutzen. Schritt für Schritt zeigt Ihnen

Engelhardt seine Lösungen: von der Spielekonsole bis zum

Netzwerkdrucker, von SmartTV bis Navigationssystem, für

jeden ist etwas dabei.

PROjEKTE FüR MEHR KOMFORT uNDuM GELD Zu SPAREN: ALTEN TV ZuMSMARTTV uMRüSTEN, EIGENESNAVIGATIONSSySTEM, DRuCKER-SERVER uND MEHR.

QUELLCODESDER PROJEKTE STEHEN ZUMDOWNLOAD

BEREIT.Aus dem Inhalt:• Raspberr y-Pi-Modelle: 1, 2, 3, Zero

und Compute Module

• Netzwerk: WLAN, SSH, Datei- und Druckdienste

• Raspberr y Pi als Spielekonsole

• Wohnzimmer-PC 3.0: Smar tT V-Eigenbau

• Programmierung der GPIO-Pinleiste

• Temperaturmessung mit dem DS18B20-Sensor

• MQTT und IoT

• gpiozero -Bibliothek im Einsatz

• Datenausgabe auf Displays

• Navigationssystem im Eigenbau

• Wegfahralarm und Routenprüfung

• Fotografieren und Video

• IP-Kamera mit dem Raspberr y Pi koppeln

• Grill- und Backofen-Modding

• Braten und grillen mit dem Raspberr y Pi

• Video -Streaming installieren und einbinden

• Staubsaugerroboter mit demSmar tphone steuern

• PyGame -Benutzerober fläche fürdie IR-Steuerung

• Arduino -Shields für den Raspberr y Pi

• und vieles mehr ...