Raspberry Pi programmieren mit Python - Michael Weigend - E-Book

Raspberry Pi programmieren mit Python E-Book

Michael Weigend

0,0

Beschreibung

  • Alle Python-Grundlagen, die Sie für Ihren Raspberry Pi 5, 4, 3 oder Zero brauchen
  • Projekte mit Sensoren, Relais und AD-Wandlern
  • Einsatz von Peripheriegeräten wie Kameramodul und Lautsprecher

Raspberry Pi – der Mini-Computer zum Experimentieren

Der Raspberry Pi ist ein preiswerter Computer in der Größe einer Kreditkarte. In Kombination mit der Programmiersprache Python bietet er eine hervorragende Umgebung für die schnelle Realisierung technischer Ideen und Projekte. In diesem Buch lernen Sie alle Grundlagen, die Sie brauchen, um mit dem Raspberry Pi oder dem Raspberry Pi Zero spannende Projekte zu realisieren.

Zahlreiche Projekte mit Sensoren, Kamera u.v.m.

Sie finden in diesem Buch eine Fülle von kleinen Projekten, die auf die besondere Hardware des Raspberry Pi und das Linux-Betriebssystem Raspberry Pi OS zugeschnitten sind. Dazu gehören sowohl Schaltungen mit Sensoren (Temperatur, Licht, Alkohol), Relais, AD-Wandlern und LEDs als auch die Verwendung des Kameramoduls und des 1-Wire- sowie SPI-Bus zur Datenkommunikation. Zahlreiche Illustrationen und einfache Beispiele zum Ausprobieren erleichtern das Verständnis.

Die Programmiersprache Python als Grundlage

Python ist – auch für Programmiereinsteiger – einfach zu lernen und deshalb Teil des Gesamtkonzepts des Raspberry Pi. Dieses Buch vermittelt Ihnen anhand anschaulicher Beispiele sowohl die Grundlagen von Python als auch fortgeschrittene Techniken wie Objektorientierung, Internetprogrammierung und grafische Benutzungsoberflächen. Am Ende jedes Kapitels finden Sie Aufgaben mit Lösungen zum Download, mit denen Sie Ihr Wissen festigen, erweitern und vertiefen können.

Aus dem Inhalt:

  • Gerätesteuerung
  • Messwerterfassung und -visualisierung
  • Interaktive Spiele mit Schaltern und Sensoren
  • Animationen und Simulationen
  • Automatische Textproduktion
  • Digitale Bildverarbeitung
  • Morsezeichen senden und Signalmuster erkennen
  • Projekte mit dem Sense HAT
  • Farben und Bewegung wahrnehmen
  • Steuerung mit Potentiometer und AD-Wandler
  • Auswertung von Daten aus dem Internet
  • Webserver und Webcam

Zum Download:Programmcode für alle Projekte sowie Lösungen der Übungsaufgaben

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 445

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Inhaltsverzeichnis
Einleitung
Was macht man mit dem Raspberry Pi?
Interaktives Exponat
System mit speziellen Eingabegeräten
System mit speziellen Ausgabegeräten
Mobiles Gerät
Server für spezielle Aufgaben
Warum überhaupt Python auf dem RPi?
Zum Aufbau dieses Buchs
Lösungen und Programmcode zum Download
Kapitel 1: Begegnung mit Python
1.1 Was ist Python?
1.2 IDLE‌
1.2.1 IDLE-Shell
1.2.2 Hotkey‌s
1.3 Die IDLE-Shell als Taschenrechner‌
1.3.1 Operatoren‌ und Term‌e
1.3.2 Zahlen
1.3.3 Mathematische Funktion‌‌en
1.4 Hilfe
1.5 Namen und Zuweisungen
1.5.1 Zuweisungen für mehrere Variablen
1.5.2 Rechnen mit Variablen in der Shell
1.5.3 Syntaxregeln für Bezeichner‌‌
1.5.4 Neue Namen für Funktionen und andere Objekte
1.5.5 Erweiterte Zuweisungen
1.6 Mit Python-Befehlen Geräte steuern‌
1.6.1 Projekt: Eine LED‌‌ ein- und ausschalten
1.6.2 Das Modul gpiozero‌
1.6.3 Steuern mit Relais
1.6.4 Projekt: Eine Taschenlampe an- und ausschalten‌‌
1.6.5 Projekt: Steuerung eines LED-Strips mit MOSFETs
1.7 Aufgaben
Kapitel 2: Python-Skripte‌
2.1 Ein Skript mit IDLE erstellen
2.1.1 Ein neues Projekt starten
2.1.2 Programmtext eingeben
2.1.3 Das Skript ausführen
2.1.4 Shortcuts
2.2 Programme ausführen
2.2.1 Programm‌ in der Konsole starten
2.2.2 Anklicken des Programmicons im File-Manager‌
2.3 Interaktive Programme – das EVA-Prinzip‌
2.3.1 Format‌ mit Bedeutung – Aufbau eines Python-Programmtextes
2.3.2 Eingabe – die input()‌-Funktion
2.3.3 Verarbeitung – Umwandeln von Datentypen und Rechnen
2.3.4 Ausgabe – die print()‌-Funktion
2.4 Programmverzweigung‌en
2.4.1 Einfache Bedingungen
2.4.2 Wie erkennt man eine gute Melone? Zusammengesetzte Bedingungen
2.4.3 Einseitige Verzweigung‌‌en und Programmblöcke
2.4.4 Haben Sie Ihr Idealgewicht?
2.4.5 Eine Besonderheit von Python: Wahrheitswerte für Objekt‌e
2.5 Bedingte Wiederholung‌ – die while‌-Anweisung
2.5.1 Projekt: Zahlenraten‌‌
2.5.2 Have a break‌! Abbruch einer Schleife
2.6 Projekte mit dem GPIO‌
2.6.1 Blinklicht‌
2.6.2 Schalter‌
2.6.3 Zähler‌
2.6.4 Die Methode wait_for_press()
2.7 Projekt: Eine Alarmanlage‌‌
2.7.1 Aufbau und Arbeitsweise der Alarmanlage
2.7.2 Programmierung
2.8 Aufgaben
Kapitel 3: Kollektionen: Mengen, Listen, Tupel und Dictionaries
3.1 Die Typhierarchie‌
3.1.1 Reihenfolge der Elemente und Zugriff
3.1.2 Änderbarkeit
3.2 Gemeinsame Operationen für Kollektion‌en
3.3 Kollektionen in Bedingungen
3.3.1 Projekt: Kundenberatung‌‌
3.3.2 Projekt: Sichere Kommunikation‌‌
3.4 Iteration‌ – die for‌-Anweisung
3.4.1 Verwendung von break‌
3.5 Sequenz‌en
3.5.1 Konkatenation und Vervielfältigung‌
3.5.2 Direkter Zugriff auf Elemente – Indizierung‌‌
3.5.3 Slicing‌
3.5.4 Projekt: Lesbare Zufallspasswörter‌‌
3.6 Tupel‌
3.7 Zeichenkette‌n (String‌s)
3.7.1 Strings durch Bytestring‌s codieren
3.7.2 Formatieren‌
3.8 Liste‌n
3.8.1 Listen sind Objekte und empfangen Botschaft‌en
3.8.2 Klasse‌, Typ‌ und Instanz‌
3.8.3 Kopie‌ oder Alias‌?
3.8.4 Liste‌noperationen
3.8.5 Projekt: Zufallsnamen‌‌
3.8.6 Projekt: Telefonliste‌‌
3.8.7 Listen durch Comprehension‌s erzeugen
3.9 Zahlen in einer Folge – range()‌-Funktion
3.10 Projekt: Klopfzeichen‌‌
3.11 Menge‌n
3.12 Projekt: Zufallssounds‌‌
3.12.1 Wie kommen Töne aus dem Raspberry Pi?
3.12.2 Sound‌s mit PyGame
3.12.3 Programmierung
3.13 Dictionaries
3.13.1 Operationen für Dictionaries‌
3.13.2 Projekt: Morsen‌‌
3.14 Aufgaben
Kapitel 4: Funktionen‌
4.1 Aufruf von Funktionen
4.1.1 Unterschiedliche Anzahl von Argumenten
4.1.2 Positionsargument‌e und Schlüsselwort-Argument‌e
4.2 Definition von Funktion‌en
4.3 Funktionen in der IDLE-Shell testen
4.4 Docstrings
4.5 Veränderliche und unveränderliche Objekte als Parameter‌
4.6 Voreingestellte Parameterwerte‌‌
4.7 Beliebige Anzahl von Parametern‌
4.8 Die return-Anweisung unter der Lupe
4.9 Mehr Sicherheit! Vorbedingungen testen
4.10 Namensräume: Global und lokal
4.11 Rekursive Funktionen – die Hohe Schule der Algorithmik
4.11.1 Projekt: Rekursive Summe‌‌
4.11.2 Projekt: Quicksort‌‌
4.12 Funktionen per Knopfdruck aufrufen: Callback-Funktionen
4.12.1 Projekt: Klangmaschine‌
4.12.2 Projekt: Zeit schätzen
4.13 Aufgaben
Kapitel 5: Fenster für den RPi – Grafische Benutzungsoberflächen‌‌
5.1 Wie macht man eine Benutzungsoberfläche?
5.2 Projekt: Die digitale Lostrommel‌‌
5.2.1 Die Gestaltung der Widgets‌
5.2.2 Das Layout-Management‌
5.3 Projekt: Farbmischer‌‌
5.4 Wer die Wahl hat, hat die Qual: Checkbutton‌ und Radiobutton‌
5.5 Projekt: Automatische Urlaubsgrüße ‌‌
5.6 Projekt: Digitaler Glückskeks‌‌
5.7 Viele Widgets schnell platziert: Das Grid-Layout‌
5.8 Projekt: 100 Farben‌‌
5.8.1 Die professionelle Version
5.9 Aufgaben
Kapitel 6: Daten finden, laden und speichern
6.1 Dateien‌
6.1.1 Daten speichern‌
6.1.2 Daten laden‌
6.2 Ein Blick hinter die Kulissen: Die SD-Karte‌
6.2.1 Experiment 1: Wie viel Zeit wird zum Schreiben von 10 MB auf die SD-Karte benötigt?
6.2.2 Experiment 2: Wie viel Zeit wird zum Lesen von 100 MB von der SD-Karte benötigt?
6.3 Datenstrukturen haltbar machen mit pickle‌
6.4 Versuch und Irrtum – Mehr Zuverlässigkeit durch try‌-Anweisungen
6.5 Projekt: Karteikasten‌‌
6.5.1 Der Editor‌
6.5.2 Der Presenter
6.6 Benutzungsoberfläche zum Laden und Speichern
6.6.1 Dialogbox‌en
6.6.2 Erweiterung des Editors für Karteikarten
6.6.3 Erweiterung des Presenters
6.7 Daten aus dem Internet
6.8 Projekt: Goethe‌‌ oder Schiller‌‌?
6.8.1 Methoden der String‌-Objekte
6.8.2 Programmierung
6.9 Daten finden mit regulären Ausdrücken
6.9.1 Reguläre Ausdrück‌‌e
6.9.2 Die Funktion findall()‌
6.9.3 Projekt: Staumelder‌‌
6.9.4 Programmierung
6.10 Aufgaben
Kapitel 7: Projekte mit Zeitfunktionen‌
7.1 Projekt: Fünf Sekunden stoppen und gewinnen‌‌
7.2 Datum und Zeit im Überblick
7.3 Projekt: Digitaluhr‌‌
7.3.1 Woher bekommt der RPi die Zeit?
7.3.2 Was ist ein Prozess?‌
7.3.3 Vollbildmodus‌
7.3.4 Event‌-Verarbeitung
7.3.5 Autostart‌
7.4 Projekt: Ein digitaler Bilderrahmen‌‌
7.4.1 Zugriff auf das Dateisystem: Das Modul os‌
7.4.2 Python Imaging Library (PIL)‌
7.4.3 Die Programmierung
7.5 Projekt: Wahrnehmungstest‌‌
7.5.1 Die Programmierung
7.6 Aufgaben
Kapitel 8: Objektorientierte Programmierung‌‌
8.1 Überall Objekte
8.2 Klassen ‌und Vererbung ‌bei Python
8.2.1 Einführendes Beispiel: Alphabet‌‌
8.2.2 Qualitätsmerkmal Änderbarkeit
8.2.3 Vererbung‌
8.3 Projekt: Pong revisited
8.3.1 Die Klasse Canvas
8.3.2 Aufbau des Projekts
8.3.3 Die Tick‌-Metapher
8.3.4 Die Programmierung
8.3.5 Erweiterungen
8.4 Aufgaben
Kapitel 9: Sensortechnik‌
9.1 Was ist ein digitaler Temperatursensor‌?
9.2 Den DS1820 anschließen
9.3 Temperaturdaten lesen
9.3.1 Temperaturdaten eines Sensors automatisch auswerten
9.4 Projekt: Ein digitales Thermometer ‌‌mit mehreren Sensoren
9.4.1 Ein Modul für die Messwerterfassung‌
9.4.2 Die grafische Oberfläche
9.4.3 Temperaturdaten per E-Mail senden‌
9.5 Projekt‌: Ein Temperaturplotter‌
9.5.1 Temperatur-Zeitdiagramme‌
9.5.2 Programmierung
9.6 Spannung messen‌
9.6.1 Das SPI-Protokoll‌
9.6.2 Programmierung
9.7 Alkoholsensor‌
9.7.1 Projekt: Achtung! Alkoholisches Getränk‌!‌
9.7.2 Projekt: Den Alkoholgehalt der Luft und von Flüssigkeiten messen‌‌
9.7.3 Wie kann man den Alkoholgehalt von Flüssigkeiten messen?
9.7.4 Messen und interpolieren
9.8 Projekte mit einem digitalen Lichtsensor‌‌‌
9.8.1 Ein Paket in einer virtuellen Umgebung‌ installieren
9.8.2 Die Programmierung
9.8.3 Das Modul smbus‌
9.8.4 Mit dem Raspberry Pi Farben messen ‌– Absorptionsspektrometer‌
9.9 Kohlendioxid-Sensor‌
9.9.1 Projekt: Datenlogger‌‌
9.9.2 Das Sensormodul kalibrieren
9.9.3 Projekt: Ein Experiment zur Diffusion von Gasen‌‌‌‌
9.10 Mit Ultraschall‌ Entfernungen messen
9.10.1 Die Schaltung
9.10.2 Projekt: Abstandsmessungen‌‌
9.10.3 Projekt: Fische‌‌ – eine interaktive Animation mit Ultraschall-Sensor
9.11 Aufgaben
9.12 Lösung des Rätsels
Kapitel 10: Projekte mit der Kamera‌
10.1 Das Kameramodul‌ anschließen
10.2 Die Kamerasoftware
10.3 Projekt: Überwachungskamera‌‌ – Livebild auf dem Bildschirm
10.4 Projekt: Bewegung erfassen‌‌
10.5 Projekt: Gerichtete Bewegungen ‌‌erfassen
10.5.1 Files verarbeiten mit subprocess‌ und io‌
10.5.2 Die Programmierung
10.6 Projekt: Birnen oder Tomaten‌‌?
10.6.1 Magische Methode‌‌n – das Überladen‌ von Operatoren
10.6.2 Programmierung
10.6.3 Weiterentwicklungen
10.7 Projekt: Fotos per E-Mail verschicken‌‌
10.8 Randbemerkung: Was darf man? Was soll man?
10.9 Aufgabe: Wie lang? Wie breit?
Kapitel 11: Webserver‌
11.1 Der RPi im lokalen Netz
11.1.1 WLAN‌
11.1.2 Virtual Network Computing (VNC)
11.2 Webserver
11.2.1 Der Apache‌-Webserver
11.2.2 Die eigene Startseite
11.3 Was ist los im Gartenteich?
11.3.1 Projekt: Einfache Webcam‌‌ mit statischer Webseite
11.4 Lösungen zu den Zwischenfragen
Kapitel 12: Erweiterungen: OLED und HAT
12.1 OLED-Display‌
12.2 Anschluss
12.3 Installation der SSD1306‌-Bibliothek
12.4 Auf dem Display Texte und Formen ausgeben
12.4.1 Projekt: Uhrzeit
12.5 Mit ImageDraw‌ zeichnen und Texte schreiben
12.5.1 Grafiken zeichnen
12.5.2 Schriftart‌en definieren
12.6 Projekt: Thermometer‌‌
12.7 Sense HAT‌
12.8 Die Klasse SenseHat
12.9 Grafische Ausgabe über die LED-Matrix‌
12.10 Die räumliche Orientierung des Sense HAT
12.10.1 Projekt: Das Murmellabyrinth‌‌
12.11 Der Joystick‌
12.11.1 InputEvent
12.11.2 Die Klasse JoyStick
12.11.3 Definition von Eventhandlern
12.11.4 Auf Events warten und Events abfragen
12.12 Aufgaben
Anhang A: Den Raspberry Pi einrichten
A.1 Hardware-Ausstattung‌
A.2 Das Betriebssystem installieren‌
A.3 Raspberry Pi das erste Mal starten und konfigurieren
A.4 Die grafische Oberfläche‌‌von Raspberry Pi OS‌
A.4.1 Überblick über die Standardsoftware
A.4.2 LXTerminal
Anhang B: Der GPIO
B.1 Der GPIO
Anhang C: Autostart‌
Anhang D: Bau eines Fußschalters
Anhang E: Virtuelle Umgebungen
E.1 Eine virtuelle Umgebung einrichten
E.2 Die virtuelle Umgebung aktivieren
E.3 Eine virtuelle Umgebung verwenden
E.4 Die virtuelle Umgebung deaktivieren
Anhang F: Lösungen zu den Aufgaben
Lösungen zu Kapitel 1
Lösungen zu Kapitel 2
Lösungen zu Kapitel 3
Lösungen zu Kapitel 4
Lösungen zu Kapitel 5
Lösungen zu Kapitel 6
Lösungen zu Kapitel 7
Lösungen zu Kapitel 8
Lösungen zu Kapitel 9
Lösung zu Kapitel 10
Lösungen zu Kapitel 12

Michael Weigend

Raspberry Pi programmieren mit Python

Impressum

Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN 978-3-7475-0831-2 6. Auflage 2024

www.mitp.de E-Mail: [email protected] Telefon: +49 7953 / 7189 - 079 Telefax: +49 7953 / 7189 - 082

© 2024 mitp Verlags GmbH & Co. KG

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Dieses E-Book verwendet das EPUB-Format und ist optimiert für die Nutzung mit Apple Books auf dem iPad von Apple. Bei der Verwendung von anderen Readern kann es zu Darstellungsproblemen kommen.

Der Verlag räumt Ihnen mit dem Kauf des E-Books das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Der Verlag schützt seine E-Books vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die E-Books mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert. Bei Kauf in anderen E-Book-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Lektorat: Janina Vervost Sprachkorrektorat: Petra Heubach-Erdmann, Christine Hoffmeister Covergestaltung: Christian Kalkert Coverbild: © Michael Weigend Satz: III-satz, Kiel, www.drei-satz.deelectronic publication: III-satz, Kiel, www.drei-satz.de

Einleitung

Der Raspberry Pi – kurz RPi – ist ein preiswerter, kreditkartengroßer Computer, der fast keinen Strom verbraucht, eine SD-Karte als Peripheriespeicher verwendet und an einen hochauflösenden Monitor angeschlossen werden kann. Mittlerweile gibt es ihn in vielen Varianten. Das neuste Modell ist der Raspberry Pi 5, der nicht mehr ganz so billig, aber sehr leistungsfähig ist. Es gibt aber eine preiswerte Alternative, den Raspberry Pi Zero W. Alle Projekte in diesem Buch funktionieren auf beiden Modellen und auf älteren RPis ab Modell 3.

Der RPi beflügelt die Fantasie von Bastlern, professionellen Technikern und Wissenschaftlern. In Kombination mit der Programmiersprache Python bietet er eine wunderbare Umgebung zur Realisierung technischer Ideen.

Dieses Buch erklärt alles von Grund auf. Es werden keine Vorkenntnisse zu Linux, zur Programmierung und zur Hardware des Raspberry Pi vorausgesetzt. Im Anhang finden Sie Hinweise zur Hardware und eine Schritt-für-Schritt-Anleitung zur Installation des Betriebssystems.

Was macht man mit dem Raspberry Pi?

Dieses Buch ist eine Einführung in die Programmiersprache Python auf dem Raspberry Pi. Doch die Beschäftigung mit dem Raspberry Pi ist oft nicht nur reine Programmierung. Ziel eines typischen RPi-Projekts ist der Prototyp einer kompletten Maschine – Hardware und Software. Der RPi legt Technik, die sonst versteckt ist, offen. Auf dem Markt gibt es eine zunehmende Zahl elektronischer Bauteile, die man mit dem RPi verbinden kann. Zudem gibt es immer mehr Firmen, die das benötigte Material im Internet anbieten. Bestellung und Lieferung der oft sehr speziellen Bauteile sind heute kein Problem.

Dieses Buch will eine Idee vom Charme der Programmiersprache Python vermitteln. Darüber hinaus soll es inspirieren, das gelernte Programmierwissen in konkrete Projekte einfließen zu lassen. Damit die Beschreibung von Hardwaretechnik und spezieller Schnittstellen nicht ins Uferlose wächst, gehe ich von fünf allgemeinen Hardwarekonfigurationen aus.

Interaktives Exponat

Auf dem Raspberry Pi läuft ein interaktives Programm mit grafischer Benutzungsoberfläche. Das kleine Gerät ist hinter einen großen Touchscreen geklebt und nicht zu sehen. Der RPi startet das Programm automatisch beim Einschalten. Eine solche Anordnung kann ein interaktives Exponat einer Ausstellung oder ein Auskunftssystem im Foyer eines öffentlichen Gebäudes sein. Da der RPi Grafik in HD-Qualität unterstützt, ist er für diesen Zweck hervorragend geeignet. Projekte dieser Art sind Maschinen, die Bilder und Texte automatisch erzeugen (Kapitel 5), digitale Karteikästen, Staumelder, die Informationen aus dem Internet auswerten und einen Überblick über die aktuelle Verkehrslage geben (Kapitel 6), digitale Bilderrahmen und Kalender (Kapitel 7) oder Animationen, die ihr Verhalten ändern, wenn sich jemand dem Bildschirm nähert (Kapitel 9).

System mit speziellen Eingabegeräten

Bei diesem Typ ist der RPi mit Sensoren oder einer Kamera verbunden. Auf dem Computer läuft ein Programm, das auf Signale dieser Sensoren reagiert. Das kann z.B. ein Spiel sein, bei dem Objekte auf dem Bildschirm über Fußschalter gesteuert werden. Die Sensoren kann man sich mit wenigen Elektronikbauteilen (Kabeln, Widerständen, Thermoelementen, AD-Wandlern) und Alltagsmaterialien (Pappe, Alufolie, Schaumgummi) zusammenbauen. Schon in den ersten beiden Kapiteln finden Sie einfache Beispiele für Programme, die Signale externer Schalter verarbeiten und LEDs oder Relais ansteuern: z.B. Zähler, Alarmanlagen. Komplexere Projekte mit einer grafischen Oberfläche sind z.B. ein Pong-Spiel, bei dem ein Schläger auf dem Bildschirm mit einer selbst gebauten Konsole bewegt wird (Kapitel 8) oder eine Simulation, bei der Sie ein Auto mit einem Potentiometer steuern. Ein ganz besonderes Eingabegerät ist das Kameramodul des Raspberry Pi. In Kapitel 10 werden Projekte vorgestellt, bei denen das Livebild der Kamera auf dem Bildschirm dargestellt und ausgewertet wird. Bewegungen werden erkannt und sogar die Bewegungsrichtung eines Objekts erfasst. Für den RPi gibt es eine Reihe von speziellen Sensoren (Kohlendioxid, Alkohol, Licht), mit denen man Geräte wie Spektralphotometer oder naturwissenschaftliche Experimente entwickeln kann, die automatisch oder halbautomatisch durchgeführt und ausgewertet werden (Kapitel 9).

System mit speziellen Ausgabegeräten

Viele Computerprogramme verwenden den Monitor als Ausgabegerät für Texte oder Bilder. Typische RPi-Projekte experimentieren aber auch mit anderen Ausgabegeräten. Zum Beispiel kann man die aktuelle Uhrzeit oder Temperatur auch auf einem OLED-Display anzeigen (Kapitel 12) oder über eine Bluetooth-Box als gesprochenen Text ausgeben (Kapitel 9). Mithilfe von MOSFET-Chips können Sie farbige LED-Strips ansteuern (Kapitel 1).

Mobiles Gerät

Der RPi ist klein und braucht wenig Strom. Er ist deshalb sehr gut für mobile Geräte und autonome Roboter geeignet. Bei den Projekten in diesem Buch steht die Programmierung im Vordergrund. Die Hardware ist möglichst einfach und enthält Bauteile (Steckplatinen, LEDs, Widerstände, Thermoelement, Ultraschallsensor, Kamera, OLED-Display), die man auch noch für andere Vorhaben verwenden kann. Typische Anwendungen sind mobile Messgeräte, die Messwerte (z.B. die Temperatur) speichern, oder ein Suchgerät, das in der Lage ist, die heißeste Stelle im Raum zu finden (Kapitel 9). In Kapitel 11 finden Sie ein Beispiel für eine mobile Webcam. Eine spezielle Erweiterung des RPi ist die HAT-Technik. In Kapitel 12 wird das Sense-HAT vorgestellt, eine Zusatzplatine, die man auf den RPi aufschraubt und die einige Sensoren und eine LED-Matrix enthält.

Server für spezielle Aufgaben

Der RPi kostet wenig und benötigt eine elektrische Leistung von nur 3,5 Watt (Modell B). Damit ist er der ideale Server, der permanent arbeitet und ständig bereit ist, Anfragen über das Internet oder Intranet zu beantworten (HTTP-Server). Ein solcher Server braucht weder Tastatur noch Monitor. Er kann über eine VNC-Verbindung von einem anderen Rechner aus gesteuert werden. In Kapitel 11 finden Sie Beispiele für serverbasierte Projekte, darunter eine Webcam.

Warum überhaupt Python auf dem RPi?

Ursprünglich sollte der RPi mit einem fest eingebauten Interpreter für Python-Programme ausgestattet werden (Pi steht für Python interpreter). Aber letztlich ist das Design doch flexibler geworden. Betriebssystem und Programmiersprachen können nach Wunsch installiert werden. Python ist besonders leicht zu lernen und erlaubt aber dennoch die Entwicklung komplexer Programme. Ein Vorteil für experimentelle Projekte mit dem Raspberry Pi ist, dass ein reicher Schatz freier Softwarepakete zur Verfügung steht, die man aus dem öffentlichen Python Package Index (PyPI) herunterladen und installieren kann.

Zum Aufbau dieses Buchs

In den Kapiteln werden Schritt für Schritt die wesentlichen Elemente der Python-Programmierung eingeführt. Ab Kapitel 2 werden kleine in sich abgeschlossene Projekte beschrieben, die praktische Anwendungsmöglichkeiten der zuvor eingeführten Techniken illustrieren. Dabei spielen in den ersten Kapiteln Peripheriegeräte noch keine Rolle. Der RPi wird in einer Standard-Hardwarekonfiguration mit Tastatur, Maus und Monitor benutzt wie ein normaler Computer. Die Elemente der Programmiersprache Python werden Schritt für Schritt eingeführt, von den elementaren Grundlagen bis zu fortgeschrittenen Techniken der objektorientierten Programmierung. Die spannenderen Projekte kommen weiter hinten. Haben Sie also zu Beginn etwas Geduld.

In Kapitel 5 werden grafische Benutzungsoberflächen eingeführt. Die meisten Projekte sind nun Anwendungsprogramme, die nicht mehr auf eine Tastatur angewiesen sind und leicht zu interaktiven Exponaten für Ausstellungen oder Ähnlichem weiterentwickelt werden können. Etwa ab der Mitte des Buchs enthält jedes Kapitel Anregungen und Beispiele für Projekte mit speziellen Hardware-Komponenten, wie Kamera, Temperatur-Sensoren, AD-Wandlern, Schaltern und LEDs. Am Ende jedes Kapitels finden Sie Aufgaben mit Lösungen zum Download, mit denen Sie Ihr Wissen festigen, erweitern und vertiefen können.

Speziellere Informationen zum Betriebssystem (Installation, Autostart) und zur Hardware des RPi (GPIO) finden Sie in den Anhängen.

Lösungen und Programmcode zum Download

Unter der Webadresse http://www.mitp.de/0829 können Sie die Listings aus dem Buch sowie die Lösungen zu den Aufgaben kostenlos downloaden.

Kapitel 1: Begegnung mit Python

In diesem Kapitel verwenden Sie Python im interaktiven Modus. Sie geben in der Kommandozeile der IDLE-Shell einzelne Befehle ein, die der Python-Interpreter sofort ausführt. Sie lernen Operatoren, Datentypen, die Verwendung von Funktionen und den Aufbau von Termen kennen. Dabei bekommen Sie einen ersten Eindruck vom Charme und der Mächtigkeit der Programmiersprache Python. Ich gehe davon aus, dass Sie bereits ein fertig konfiguriertes Computersystem besitzen, bestehend aus SD-Karte, Tastatur, Netzteil, Monitor und natürlich – als Herzstück – den Raspberry Pi, der meist als Raspi oder RPi abgekürzt wird. Auf der SD-Speicherkarte ist als Betriebssystem Raspberry Pi OS installiert. Das neuste und leistungsstärkste Modell des Minicomputers ist der Raspberry Pi 5. Alle Projekte in diesem Buch funktionieren aber auch auf den älteren Modellen 3 und 4 und auch auf dem besonders preiswerten Raspberry Pi Zero WH. Beachten Sie, dass der kleine Raspberry Pi Zero sehr langsam ist. Haben Sie mit ihm Geduld und halten Sie nur möglichst wenige Fenster geöffnet.

Falls Sie noch nicht so weit sind, können Sie in Anhang A nachlesen, welche Komponenten Sie benötigen und wie Sie bei der Einrichtung Ihres RPi-Systems vorgehen.

1.1  Was ist Python?

Python ‌ist eine Programmiersprache, die so gestaltet wurde, dass sie leicht zu erlernen ist und besonders gut lesbare Programmtexte ermöglicht. Ihre Entwicklung wurde 1989 von Guido van Rossum‌ am Centrum voor Wiskunde en Informatica (CWI) in Amsterdam begonnen und wird nun durch die nichtkommerzielle Organisation »Python Software Foundation‌« (PSF‌, http://www.python.org/psf) koordiniert. Das Logo der Programmiersprache ist eine stilisierte Schlange. Dennoch leitet sich der Name nicht von diesem Schuppenkriechtier ab, sondern soll an die britische Comedy-Gruppe Monty Python erinnern.

Ein Python-Programm – man bezeichnet es als Skript – wird von einem Interpreter ausgeführt und läuft auf den gängigen Systemplattformen (Unix, Windows, Mac OS). Ein Programm, das auf Ihrem Raspberry Pi funktioniert, läuft in der Regel auch auf einem Windows-Rechner. Python ist kostenlos und kompatibel mit der GNU General Public License (GPL).

Python ist objektorientiert, unterstützt aber auch andere Programmierparadigmen (z.B. funktionale und imperative Programmierung). Python ist eine universelle Programmiersprache mit vielen Einsatzmöglichkeiten. Es wird in der Wissenschaft und Technik verwendet (z.B. im Deutschen Zentrum für Luft- und Raumfahrt), aber auch für visuell-kreative Projekte (z.B. bei Disney zur Entwicklung von Computerspielen). Python hat gegenüber älteren Programmiersprachen drei Vorteile:

Python ist leicht zu erlernen und hat eine niedrige »Eingangsschwelle«. Ohne theoretische Vorkenntnisse kann man sofort die ersten Programme schreiben. Im interaktiven Modus kann man einzelne Befehle eingeben und ihre Wirkung beobachten. Es gibt nur wenige Schlüsselwörter, die man lernen muss. Gewohnte Schreibweisen aus der Mathematik können verwendet werden, z.B. mehrfache Vergleiche wie 0 < a < 10.

Python-Programme sind kurz und gut verständlich. Computerprogramme werden von Maschinen ausgeführt, aber sie werden für Menschen geschrieben. Software wird meist im Team entwickelt. Programmtext muss für jedermann gut lesbar sein, damit er verändert, erweitert und verbessert werden kann. Der berühmte amerikanische Informatiker Donald Knuth hat deshalb schon vor drei Jahrzehnten vorgeschlagen, Programme als Literatur zu betrachten, so wie Romane und Theaterstücke. Nicht nur Korrektheit und Effizienz, auch die Lesbarkeit ist ein Qualitätsmerkmal.

Programme können mit Python nachweislich in kürzerer Zeit entwickelt werden als mit anderen Programmiersprachen. Das macht Python nicht nur für die Software-Industrie interessant; auch Universitäten verwenden immer häufiger Python, weil so weniger Zeit für den Lehrstoff benötigt wird.

1.4  Hilfe

‌Mit der Funktion help() können Sie detaillierte Informationen zu allen Sprachelementen von Python abfragen. Sie verwenden help() auf zwei unterschiedliche Weisen: mit und ohne Argument.

Wenn Sie Informationen zu einer bestimmten Funktion (oder einem anderen Objekt) benötigen, übergeben Sie den Namen als Argument. Beispiel:

>>> help(round)Help on built-in function round in module builtins:round(...) round(number[, ndigits]) -> number...

Wenn Sie nicht genau wissen, was Sie suchen, geben Sie help() ohne Argument ein. Dann wechselt die IDLE-Shell in einen interaktiven Hilfe-Modus. Sie sehen einen neuen Prompt:

help>

Das Hilfesystem gibt Ihnen Hinweise, was Sie nun tun können. Wenn Sie z.B. eine Liste aller verfügbaren Module haben wollen, geben Sie modules ein. Um den Hilfe-Modus zu verlassen, geben Sie quit ein.

help> quitYou are now leaving help and returning to the Python interpreter ...>>>