LEGO®-Roboter bauen, steuern und programmieren mit Raspberry Pi und Python - Thomas Kaffka - E-Book

LEGO®-Roboter bauen, steuern und programmieren mit Raspberry Pi und Python E-Book

Thomas Kaffka

0,0

Beschreibung

  • Bau- und Programmieranleitungen für mehr als 10 spannende Roboter-Projekte
  • Labyrinthe lösen, Pappkarten per Bilderkennung abschießen, Formen mit einem neuronalen Netz erkennen u.v.m.
  • Programmcode und Bauanleitungen für alle Roboter zum Download

LEGO®-Steine – sei es als selbstgebaute LEGO®-Fahrzeuge, -Roboter oder als LEGO®-Fertigmodelle – lassen sich hervorragend mit Elektronikkomponenten zum Leben erwecken und programmieren. Hierfür ist der Mikrocontroller Raspberry Pi besonders gut geeignet. Anhand konkreter Projekte zeigt Ihnen der Autor, wie Sie Sensoren und Motoren von LEGO® sowie weitere Elektronikkomponenten mit dem Raspberry Pi verbinden und Ihre Roboter programmieren. Durch den Einsatz der Programmiersprache Python können die Roboter einfache und komplexe Aufgaben lösen bis hin zu Linienverfolgung mit einem neuronalen Netz oder Bilderkennung.

Im ersten Teil des Buches erhalten Sie eine kurze Einführung in den Mikrocontroller Raspberry Pi sowie den BrickPi, der für die Verbindung von LEGO®-Sensoren mit dem Raspberry Pi benötigt wird. Außerdem vermittelt der Autor die Grundlagen zu allen Elektronikkomponenten, mit denen Sie Ihre LEGO®-Modelle oder -Roboter ausstatten können. Dazu zählen unter anderem mittlere und große LEGO®-Motoren sowie folgende Komponenten: Color-Sensor, Touch-Sensor und Infrarot-Sensor von LEGO®, Kompass-Sensor und Gyro-Sensor von Hitechnic, Raspberry-Pi-Kamera, Fototransistor, LEDs und Motoren.

Im zweiten Teil des Buches finden Sie eine kurze Einführung in die Grundlagen der Programmierung mit Python, gefolgt von einem umfangreichen Projektteil mit 11 spannenden Robotern, die diverse Aufgaben lösen, wie zum Beispiel:

  • Gegenstände erkennen und diesen ausweichen
  • Lösen eines Labyrinths mithilfe von künstlicher Intelligenz
  • Linienverfolgung und Formen erkennen mit einem neuronalen Netz
  • Pappkarten abschießen per Bilderkennung
  • Sammeln farbiger Joghurtbecher
  • Texte morsen inkl. Anleitung zum Basteln eines eigenen Touch-Sensors

Bei allen Projekten erläutert der Autor sowohl den Bau der Roboter als auch die entsprechende Programmierung.

Hardware:

Für die Projekte im Buch werden sowohl die LEGO®-eigenen Komponenten als auch günstige handelsübliche Motoren und Sensoren eingesetzt. Sie können einen eigenen Roboter bauen, die LEGO®-Roboter im Buch nachbauen oder als Grundlage ein LEGO®-Fertigmodell verwenden. Für alle im Buch verwendeten LEGO®-Roboter gibt es die Bauanleitungen zum kostenlosen Download.

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: 282

Veröffentlichungsjahr: 2021

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
Impressum
Einleitung
Mit dem Buch arbeiten
Der LEGO Digital Designer 4.3
Teil I: Die Hardware für die Roboter
Kapitel 1: LEGO als Grundlage für unsere Roboter
1.1 Roboter als Bausatz
1.2 LEGO mit Elektronikkomponenten versehen
1.2.1 Folgende LEGO-Elektronikkomponenten werden verwendet
1.2.2 Folgende ‌Fremdkomponenten werden verwendet
Kapitel 2: Der Raspberry Pi stellt sich vor
2.1 Der Einplatinencomputer
2.2 Die GPIO-Schnittstelle
2.3 Den ‌Raspberry Pi konfigurieren
2.3.1 Den RPi mit weiterer Hardware versehen
2.3.2 Die SD-Karte vorbereiten
2.4 Den BrickPi3 anschließen
Kapitel 3: Die elektronischen Komponenten
3.1 Verwendung der LEGO-Elektronik-Komponenten
3.1.1 Der LEGO-‌Colorsensor
3.1.2 Der LEGO-‌Touchsensor
3.1.3 Der LEGO-Infrarotsensor
3.1.4 Der Hitechnic-Kompass-Sensor
3.1.5 Der Hitechnic-Gyrosensor
3.1.6 Der mittlere LEGO-Motor
3.1.7 Der LEGO-Motor
3.2 Verwendung von Fremdkomponenten
3.2.1 Der Fototransistor
3.2.2 Die LED
3.2.3 Der Touchsensor
3.2.4 Der Schallgeber
3.2.5 Die Motoren und der Motortreiber
3.2.6 Die Kamera
3.2.7 Der BrickPi3
Teil II: Programmieren lernen
Kapitel 4: Die Programmiersprache Python
4.1 Die Entwicklungsumgebung
4.2 Die ersten Schritte
4.3 Hallo, ich bin ein Roboter
4.4 Editieren und ausführen
Kapitel 5: Variablen
5.1 Datentypen
5.1.1 Zahlen
5.1.2 Strings (Zeichenketten)
5.1.3 Wahrheitswerte
5.2 Datenstrukturen
5.2.1 Listen
5.2.2 Tupel
5.3 Konstanten
Kapitel 6: Verzweigungen
6.1 Bedingungen
6.2 Das if-Statement
6.3 Das else-Statement
6.4 else-if-Kaskaden
6.5 Modulbibliotheken
6.6 Experiment: LED schalten
Kapitel 7: Schleifen
7.1 Das while-Statement
7.2 Das for-Statement
7.3 Das break-Statement
7.4 Das continue-Statement
7.5 Experiment: Blinklicht
7.6 Experiment: LED dimmen
Kapitel 8: Funktionen
8.1 ‌Deklaration
8.2 Parameter
8.3 ‌Rückgabewert
8.4 Experiment: Licht erkennen
Kapitel 9: Klassen und Objekte
9.1 Definition einer Klasse
9.2 Methoden einer Klasse
9.3 Vererbung
9.4 Experiment: Töne erzeugen
Teil III: Projekte
Projekte mit dem BrickPi3 und LEGO-Komponenten
Kapitel 10: Wänden und Gegenständen ausweichen
10.1 Das LEGO-Modell
10.2 Die LED
10.3 Der Infrarotsensor
10.4 Die Motoren
10.5 Wänden und Gegenständen ausweichen
Kapitel 11: Himmelsrichtungen erkennen
11.1 Das LEGO-Modell
11.2 Der Kompass-Sensor
11.3 Der Touchsensor
11.4 Die übrige Hardware
11.5 Himmelsrichtungen erkennen
Kapitel 12: Auf dem Tisch bleiben
12.1 Das LEGO-Modell
12.2 Der Gyrosensor
12.3 Die übrige Hardware
12.4 Auf dem Tisch bleiben
Kapitel 13: Ein Labyrinth lösen mit einem Expertensystem
13.1 Das LEGO-Modell
13.2 Der Colorsensor
13.3 Die übrige Hardware
13.4 Das Expertensystem
13.4.1 Die Regelbasis
13.4.2 Der Stapelspeicher (Stack)
13.4.3 Der Regelinterpreter
13.4.4 Die Move Engine
13.4.5 Die Funktion move_since_wall
13.4.6 Die Funktion move_back
13.4.7 Die Funktion rotate
13.5 Labyrinth
Kapitel 14: Linienverfolgung mit einem neuronalen Netz
14.1 Das LEGO-Modell
14.2 Einführung in neuronale Netze
14.3 Der Colorsensor als Lichtsensor
14.4 Die übrige Hardware
14.5 Das neuronale Netz
14.6 Linienverfolgung klassisch
14.7 Linienverfolgung trainieren
14.8 Linienverfolgung mit neuronalem Netz
Kapitel 15: Objekte klassifizieren mit einem neuronalen Netz
15.1 Das LEGO-Modell
15.2 Benötigte Hardware
15.3 Kategorisieren lernen
15.4 Trainingsdaten erzeugen
15.5 Das ‌Training
15.6 Objekte klassifizieren
Kapitel 16: Pappkarten abschießen per Bilderkennung
16.1 Das LEGO-Modell
16.2 Die RPi-Kamera
16.3 Die übrige Hardware
16.4 Bilderkennung
16.4.1 Farben identifizieren und definieren
16.4.2 Objekt im Bild erkennen
16.4.3 Die eigentliche Bilderkennung
16.5 Pappkarten abschießen
Kapitel 17: Joghurtbecher sammeln per Bilderkennung
17.1 Das LEGO-Modell
17.2 Benötigte Hardware
17.3 Bilderkennung
17.4 Joghurtbecher sammeln
Projekte mit elektronischen Fremdkomponenten
Kapitel 18: Texte morsen
18.1 Das LEGO-Modell
18.2 Eine Hilfsplatine basteln
18.2.1 Die Spannungsversorgung
18.2.2 Die Spannungsteiler
18.2.3 Das I2C-Interface
18.2.4 Der Taster
18.2.5 Die LED
18.2.6 Der Piezo-Schallgeber
18.2.7 Der IC MCP3008
18.3 Touchsensoren basteln
18.4 Morsecode übersetzen und eingeben
18.4.1 Text in Morsecode übersetzen
18.4.2 Morsecode in Text überführen
Kapitel 19: Abfahren der »platonischen Flächen«
19.1 Das LEGO-Modell
19.2 Getriebemotor mit Encoder und Motortreiber
19.3 Die »platonischen Flächen«
Kapitel 20: Suche des hellsten Orts im Raum
20.1 Das LEGO-Modell
20.2 Der Fototransistor
20.3 Die hellste Lichtquelle des Raumes finden
Kapitel 21: Ausblick
Anhang A: Anhang
A.1 Download
A.2 Bezugsquellen

für Viorica

Thomas Kaffka

LEGO®-Roboter

bauen, steuern und programmieren

mit Raspberry Pi und 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-0312-6 1. Auflage 2021

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

© 2021 mitp Verlags GmbH & Co. KG

LEGO®, das LEGO Logo, die Konfiguration der Noppen und die Minifigur sind Marken der LEGO Gruppe, durch die das vorliegende Buch weder gesponsert noch autorisiert oder unterstützt wird.

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

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.

Lektorat: Janina Bahlmann, Rebecca Saalfeld Sprachkorrektorat: Petra Heubach-Erdmann Coverbild: Thomas Kaffka Covergestaltung: Christian Kalkertelectronic publication: III-satz, Husby, www.drei-satz.de

Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungsproblemen kommen.

Der Verlag räumt Ihnen mit dem Kauf des ebooks 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 Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.

Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert.

Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Einleitung

Die Robotertechnologie wird in unserem alltäglichen Leben immer präsenter. Es gibt Roboter, die unseren Boden kehren, die unseren Rasen mähen oder uns in einem gewissen Umfang bedienen können. In der Industrie werden schon seit Längerem Roboter zur Fertigung eingesetzt. Es werden von ihnen dort aber auch Überwachungs- und Serviceleistungen erbracht. Es spannt sich schon jetzt ein weites Feld auf, in dem Roboter eingesetzt werden können.

Abb. 1: Roboter, die beispielsweise in der industriellen Fertigung eingesetzt werden können (mit freundlicher Genehmigung der Firma KUKA AG, Augsburg)

Und die Einsatzmöglichkeiten werden immer ausgefeilter. Es befinden sich Roboter in der Entwicklung, die kranke und alte Menschen versorgen können, oder Roboter, die uns eine echte Küchenhilfe sein können.

Außerdem wäre die Erforschung anderer Planeten, wie beispielsweise des Mars, ohne Roboter nicht denkbar. Aktuell befindet sich der NASA-Roboter »Perseverance« (Ausdauer) auf dem Mars, um diesen nach Lebensspuren zu erkunden.

Abb. 2: Der Roboter Perseverance (Quelle: NASA-Webseite)

Wegen der großen Entfernung zwischen Mars und Erde sind die Signale, die der Roboter und das Kontrollzentrum der NASA austauschen, etwa drei Minuten unterwegs (der Mars ist zurzeit etwa 56 Mio. km von der Erde entfernt und die Lichtgeschwindigkeit beträgt etwa 300.000 km/sec). Diese Zeit ist zu lang, als dass die NASA den Roboter in Echtzeit steuern könnte. Es ist nur möglich, dem Roboter generelle Befehle zu senden, die er dann autark ausführt.

Abb. 3:

Teil I: Die Hardware für die Roboter

In diesem Teil:

Kapitel 1

LEGO als Grundlage für unsere Roboter

Kapitel 2

Der Raspberry Pi stellt sich vor

Kapitel 3

Die elektronischen Komponenten

Kapitel 1: LEGO als Grundlage für unsere Roboter

Es ist eine gute Idee, LEGO-Komponenten zum Roboterbau zu verwenden. Ein aufgebauter Roboter kann immer wieder zerlegt werden und ein neuer erfunden und gebaut werden. Der eigenen Fantasie sind dabei grundsätzlich keine Grenzen gesetzt. Daher verwende ich in meinem Buch LEGO-Komponenten, um ein Roboterchassis zu erstellen. Ich lege dabei die Bauteile des LEGO-‌EV3-Baukastens zugrunde.

Leser, die diesen Baukasten nicht besitzen, aber über LEGO-Bausteine verfügen oder gewillt sind, sich diese anzuschaffen, können auch ganz entspannt sein. Denn ich gebe bei jedem Roboter eine ‌Teileliste über die LEGO- oder Fremdkomponenten an, die ich für den jeweiligen Roboter verwende. Diese Teilelisten sind im Download zum Buch (www.mitp.de/0310) sowie in den einzelnen Kapiteln zu finden.

1.1  Roboter als Bausatz

Sie könnten sich natürlich, wenn Sie sich mit der Robotik beschäftigen möchten, auch einen Bausatz zu einem fertigen Roboter anschaffen, statt eigene Roboter aus LEGO zu bauen. Diese Roboter haben aber den Nachteil, dass es sich um fertige Maschinen handelt, die in ihren Freiheitsgraden eben deshalb beschränkt sind. Wenn man ihre Motoren und sonstigen Aktoren programmiert hat, ist es nicht mehr interessant, sich mit ihnen weiter zu beschäftigen.

Dazu hier einige Beispiele von Robotern, die ich mir unter anderem angeschafft habe (Abbildung 1.1 bis Abbildung 1.3).

Der ‌YETI (Abbildung 1.1) ist ein einfacher Roboter, der über zwei Beine verfügt. Er ist mechanisch so aufgebaut, dass er mit zwei Servomotoren gesteuert werden kann. Um zu gehen, verlagert er sein Gewicht auf eines der beiden Beine und bewegt das andere vor. Danach wird das gegenüberliegende Bein belastet. Ich habe für den Roboter zusätzlich ein Vier-Segment-Display angeschafft und eingebaut. Damit kann er Meldungen oder seinen Status mitteilen.

Abb. 1.1: Der YETI von AREXX Engineering

Abb. 1.2:

Kapitel 2: Der Raspberry Pi stellt sich vor

Abb. 2.1: Der Raspberry Pi 3 B+

2.1  Der Einplatinencomputer

Der ‌Raspberry Pi 3 B+ hat das Format einer Scheckkarte, ist also sehr klein. Auch wenn es nicht so aussieht, er ist ein vollständiger Computer mit Betriebssystem. Es ist zumeist das ‌Raspberry Pi OS, bei dem es sich um eine ‌Linux-Distribution handelt. An den Raspberry Pi können eine ‌USB-Tastatur, eine ‌USB-Maus, ein ‌HDMI-Monitor, ein ‌LAN-Kabel sowie ein ‌USB-Netzteil angeschlossen werden. Er verfügt aber auch über ‌WLAN.

Das Betriebssystem wird auf einer Mikro-‌SD-Karte installiert. Das hat einen entscheidenden Vorteil. Wir verwenden den Raspberry Pi in diesem Buch sowohl zur Ansteuerung von LEGO-Komponenten als auch von sogenannten »‌Fremdkomponenten« (das sind elektronische Komponenten, die auf dem Elektromarkt verfügbar sind). Dazu werden zwei verschiedene Betriebssystemumgebungen benötigt. Insbesondere verwenden wir bei der Steuerung der LEGO-Komponenten eine spezielle Distribution von Raspbian (auch ein Betriebssystem ‌für den Raspberry Pi), die von ‌Dexter Industries, dem Lieferanten der Schnittstelle (‌BrickPi3) zu den LEGO-Komponenten, zur Verfügung gestellt wird. Beide Umgebungen halten wir jeweils auf einer eigenen ‌Mikro-SD-Karte vor. Wenn wir zwischen der Ansteuerung von LEGO- und Fremdkomponenten wechseln, brauchen wir so nur die Mikro-SD-Karte auszutauschen, wirklich praktisch.

Das Betriebssystem ‌Raspberry Pi OS sowie das Raspbian (der Vorgänger des erstgenannten Betriebssystems) bieten eine grafische Oberfläche (‌GUI, graphical user interface), ähnlich wie der von Windows, sodass man mit dem Computer komfortabel arbeiten kann.

Abb. 2.2: Die GUI des Raspberry Pi OS

Das Betriebssystem bringt bereits eine Installation von ‌

Kapitel 3: Die elektronischen Komponenten

Roboter arbeiten mit Motoren, die sie antreiben, und ‌Sensoren, mit denen sie sich in ihrer Umgebung orientieren. Ich stelle in meinem Buch sowohl vollkommen aus LEGO-Komponenten gebaute Roboter als auch aus LEGO und ‌Fremdkomponenten gebaute Roboter vor. Die nächsten beiden Abschnitte zeigen diese Komponenten und geben jeweils eine kurze Beschreibung. Außerdem stelle ich mit »‌Codeschnipseln« die Verwendung der Komponenten vor. Dabei werden die Klassen (siehe Kapitel 9 für mehr Informationen über Klassen) verwendet, die ich zu den einzelnen Komponenten entwickelt habe. Die Codeschnipsel nehmen hier natürlich die Themen des Teils II meines Buches vorweg. Sie sollen Ihnen später als Nachschlagewerk dienen, wenn Sie sich mit der Programmierung des Raspberry Pi vertraut gemacht haben.

Teil II: Programmieren lernen

Im zweiten Teil dieses Buches möchte ich Ihnen grundsätzlich die Grundlagen des Programmierens näherbringen. Wenn Sie dazu eine vollständige Einführung lesen möchten, dann empfehle ich Ihnen »Raspberry Pi programmieren mit Python« von Michael Weigend, erschienen im mitp Verlag.

In den folgenden Kapiteln erhalten Sie einen Einstieg in die Programmierung mit ‌‌Python, damit Sie die in den Projekten vorgestellten Roboter verstehen und selbst programmieren können. Ich erläutere, was Variablen in Programmen sind, um was es sich bei Verzweigungen handelt, wozu Schleifen in Programmen dienen und warum Funktionen verwendet werden. Außerdem gebe ich Ihnen einen kurzen Einblick in die objektorientierte Programmierung.

In den Kapiteln 6 bis 9 werden Sie jeweils ein kleines Experiment finden, mit dem Sie das Wissen aus dem Kapitel praktisch anwenden können. Alle Experimente beziehen sich auf die Steuerung von Hardware durch den Raspberry Pi. Für die Experimente benötigen Sie die elektronischen Komponenten der Tabelle T.1. Die jeweiligen Bezugsquellen finden Sie im Anhang.

Tabelle T.1: Einzelteile für die Experimente

Kapitel

Komponente

6

1 x Steckplatine

1 x rote LED

1 x 220-Ohm-Widerstand

2 x Patchkabel für den Raspberry Pi

7

Siehe Kapitel 6

8

1 x Steckplatine

1 x ADC MCP3008

1 x Fototransistor SFH300

1 x rote LED

1 x Widerstand 220 Ohm

1 x Widerstand 22 kOhm

Roter Draht (Litze)

Schwarzer Draht (Litze)

7 x Patchkabel in verschiedenen Farben

9

1 x Steckplatine

1 x Piezo-Schallgeber

2 x Patchkabel

In diesem Teil:

Kapitel 4

Die Programmiersprache Python

Kapitel 5

Variablen

Kapitel 6

Verzweigungen

Kapitel 7

Schleifen

Kapitel 8

Funktionen

Kapitel 9

Klassen und Objekte

Kapitel 4: Die Programmiersprache Python

Die Programmiersprache ‌Python wurde so gestaltet, dass man mit ihr im Vergleich zu anderen Programmiersprachen auf einfache Weise Computerprogramme erstellen kann. Daher verwende ich Python in meinem Buch, um Ihnen den Einstieg in die Programmierung möglichst zu erleichtern.

Python wurde von Guido van Rossum am »Centrum voor Wiskunde en Informatica« in Amsterdam erfunden. Heute wird sie durch die »Python Software Foundation« als Freeware weiterentwickelt. Die integrierte Entwicklungsumgebung (Integrated Development Environment, ‌IDE) von Python beinhaltet einen ‌Interpreter. Das bedeutet, dass die eingegebenen Programme direkt verarbeitet werden und der Computer durch den Interpreter gesteuert wird. Im Gegensatz dazu sind auch sogenannte ‌Compiler im Einsatz, die den Programmtext zunächst in die Maschinenbefehle des ‌Prozessors umsetzen (das wird Kompilieren genannt). Diese werden dann vom Prozessor direkt verarbeitet. Ein Interpreter hat den Vorteil, dass es auch möglich ist, ‌Programmbefehle (sogenannte ‌Statements) direkt ausführen zu lassen, wie Sie noch sehen werden.

4.1  Die Entwicklungsumgebung

Wenn Sie die ‌IDE von Python auf dem Raspberry Pi aufrufen, ergibt sich das Bild von Abbildung 4.1. Die IDE ist bereits vorinstalliert und wird aktiviert durch einen Klick auf Menü (Himbeerbutton) / Programming‌/ Thonny Python IDE.

Abb. 4.1: Die IDE von Python (Thonny Python IDE) auf dem Raspberry Pi

Die Python-IDE des ‌Raspberry Pi gliedert sich in eine Buttonleiste und zwei Fenster. In der Buttonleiste sind die folgenden Buttons für uns relevant:

New – Editor für ein neues Programm aufrufen

Load – Ein Programm in den Editor laden

Save – Ein Programm speichern

Run – Ein Programm ausführen

Im Editor befindet sich ein noch nicht gespeichertes Programm (oberes Fenster) und im unteren Fenster wird die sogenannte ‌Shell angezeigt. Dabei handelt es sich um den Python ‌Interpreter. In ihr wird ein sogenanntes ‌Promptzeichen >>> angezeigt. Dieses Zeichen kennzeichnet die Zeile, in der Statements eingegeben werden können.

Wenn ein Programm mit Load geladen wird, öffnet sich ein neues ‌Editorfenster und das Listing (der Programmtext) wird angezeigt. Sie können ein Python-Programm über den Button Run starten. Das Programm wird dann in der Shell ausgeführt und seine Ausgaben angezeigt.

4.2  Die ersten Schritte

Um sich mit der IDE von Python (‌Thonny Python IDE) vertraut zu machen, geben Sie in der Shell nach dem Prompt das Statement aus Listing 4.1 ein.

print ("Ich lerne Python")

Listing 4.1: Das erste Statement

Betätigen Sie danach Enter und Sie erhalten eine Ausgabe wie in Abbildung 4.2 in der Shell.

Abb. 4.2: Das erste Statement

Hinweis

Die ‌Anführungszeichen zeigen Python, dass es sich bei den eingeschlossenen Zeichen um einfachen Text handelt, und nicht um Python-Statements.

Sie können anstelle des doppelten auch das einfache Anführungszeichen verwenden, sehen Sie selbst in Abbildung 4.3.

Abb. 4.3: Verwendung des einfachen Anführungszeichens

Gratulation, Sie haben nun Ihre ersten Statements erfolgreich eingegeben und der Computer hat gemacht, was Sie wollten. Wie Sie in der Shell sehen, färben sich die Statements entsprechend der Bedeutung der einzelnen Bestandteile ein, um Ihnen die Übersicht zu erleichtern. Das geschieht so auch im Programmeditor.

Sie können die Anführungszeichen auch mischen, wenn Sie innerhalb Ihres Textes Anführungszeichen benötigen.

Abb. 4.4: Verwendung von Anführungszeichen im Text

Außerdem kann die Shell auch zum Rechnen benutzt werden. Geben Sie die Zeilen aus Abbildung 4.5 ein und betätigen Sie jeweils Enter.

Sie können Rechenaufgaben direkt eingeben oder diese mit print ausgeben lassen, wie es in Programmen Anwendung findet.

Nun haben Sie schon einen guten Eindruck von Python erhalten. Wir beschäftigen uns im nächsten Abschnitt mit Ihrem ersten Python-Programm.

Abb. 4.5:

Kapitel 5: Variablen

‌Variablen sind wichtige Konstruktionen in Programmen, in denen Daten gespeichert werden und aus denen Daten abgerufen werden können. Stellen Sie sich Variablen als eine Reihe von Briefkästen vor, die jeweils mit einem Namen beschriftet sind. Man kann Briefe in sie hineingeben und diese Briefe wieder gezielt herausholen. Nur, dass es sich bei den Briefen um Zahlen, Zeichenketten oder Wahrheitswerte handelt. Man sagt dann, eine Variable hat einen bestimmten Typ.

5.1  Datentypen

In diesem Abschnitt behandeln wir die ‌Datentypen Zahlen, Zeichenketten (Strings) und Wahrheitswerte, die u.a. in Variablen gespeichert werden können.

5.1.1  Zahlen

Wie in der Mathematik unterscheidet man auch bei der Programmierung zwischen ganzen ‌Zahlen und Dezimalzahlen (man verwendet den Dezimalpunkt), die auch in ‌Gleitkommadarstellung vorkommen können. Außerdem können Zahlen als ‌binäre, ‌oktale und ‌hexadezimale Zahlen dargestellt werden (außerdem sind auch noch ‌‌komplexe Zahlen möglich, auf die ich in meinem Buch aber nicht eingehen möchte). Das folgende Programm zeigt die verschiedenen Datentypen (siehe Abbildung 5.1).

Abb. 5.1: Die verschiedenen Datentypen

Die erste Berechnung wendet die ‌‌ganzzahlige Division an. Das Ergebnis ist also ganzzahlig. Wenn Sie den ganzzahligen Divisionsrest bestimmen möchten, verwenden Sie den Operator %.

Die nächste Berechnung verwendet die ‌‌normale Division. Das Ergebnis ist eine Dezimalzahl.

Bei der ‌Exponentialdarstellung wird ein ‌Exponent zur Basis 10 verwendet. Eigentlich steht dort: 2.3*104.

Die ‌Binärdarstellung einer Zahl beginnt mit 0b gefolgt von Einsen und Nullen. Die ‌‌‌oktale Darstellung beginnt mit 0o gefolgt von den Ziffern Null bis Sieben. Bei der ‌hexadezimalen Darstellung beginnt die Zahl mit 0x gefolgt von den Ziffern 0 bis 9 und den Buchstaben A bis F. Damit können auf einer Stelle 16 Ziffern definiert werden. Unter Windows können Sie die ‌Rechner-App im Menü auf Programmierer stellen und so die verschiedenen Zahlendarstellungen eingeben und ineinander umwandeln.

Abb. 5.2: Der Rechner unter Windows

Jetzt werden Sie sich fragen, wozu die verschiedenen ‌Zahlentypen eigentlich verwendet werden. Binärzahlen kommen in Programmen oft zum Einsatz, wenn man sich bestimmte Dinge merken möchte. Dann wird in einer Binärzahl einfach eine Ziffer auf 1 gesetzt. In einem Byte, das aus acht Bits besteht, können somit acht Ereignisse gespeichert werden. Man nennt solche Ziffern auch »‌Flags«.

Wenn nun längere Bitfolgen betrachtet werden, werden diese gerne in die hexadezimale Schreibweise umgewandelt, da diese kürzer ist und ein ungefährer Eindruck entsteht, wie groß die Bitzahl ist.

Wenn das Programm aus Abbildung 5.1 ausgeführt wird, ergibt sich das Ergebnis aus Abbildung 5.3.

Abb. 5.3: Die errechneten Datentypen

Bei Berechnungen können Klammern verwendet werden. Die in den Klammern eingeschlossenen Berechnungen werden zuerst ausgeführt.

Abb. 5.4: Klammern bei der Berechnung

Mit Zahlen können die folgenden ‌Operationen durchgeführt werden:

2 + 3 ‌Addition

2 – 3 ‌Subtraktion

2 * 3 ‌Multiplikation

2 ** 3 ‌Potenz

2 / 3 ‌Division

2 // 3 ‌ganzzahlige Division

2 % 3 ‌‌ganzzahliger Divisionsrest

Zahlen können in ‌