Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Dieses Buch ist ein kompakter und praktischer Leitfaden für den Raspberry Pi Pico und Pico W inklusive der Programmierung mit MicroPython.
Sie lernen zunächst die Hardware mit allen Anschlüssen und technischen Daten sowie die Firmware kennen und erfahren, wie Sie die Entwicklungsumgebung Thonny installieren und konfigurieren.
Anschließend behandelt der Autor alle Themen, die für den ersten Einstieg relevant sind: Ein- und Ausgänge, Verarbeitung analoger Daten, Temperaturmesser, digitale Anzeigen wie LED, LCD und OLED sowie die Verwendung von Schnittstellen wie UART, I2C und Wifi. Zum Abschluss zeigt Ihnen der Autor weitere mögliche Programmerweiterungen.
Mit diesem Buch sind Sie bestens vorbereitet, den Raspberry Pi Pico selbstständig für eigene Projekte einzusetzen.
Aus dem Inhalt
In diesem Kapitel werden Sie das erste Programm in MicroPython erstellen und auf den Raspberry Pi Pico laden. Nach dem Blink-Programm lernen Sie den Programmaufbau und die ersten Programmbefehle kennen.
Die Programmierung des Pico über die Thonny-Entwicklungsumgebung erfordert einen angeschlossenen Raspberry Pi Pico. Somit müssen Sie den Pico über das USB-Kabel mit dem Rechner verbinden.
In der Shell wird die Verbindung mit einem entsprechenden Hinweis ausgegeben (Abbildung 3.1)
Abb. 3.1: ThonnyIDE - MicroPython mit Pico
Das erste Programm kann nun über die Shell ausgeführt werden. Dazu gibt man in der Shell nach >>> die Programm-Anweisung ein.
In unserem Fall werden wir einen Text in der Konsole ausgeben und mit einem Zeilenumbruch (Enter) bestätigen
Nach der Eingabe wird das Programm direkt ausgeführt. Der MicroPython-Interpreter, der auf dem Pico läuft, führt die Anweisung umgehend aus. Die- ser Modus wird als »interactive Mode« bezeichnet (Abbildung 3.2)
Abb. 3.2: MicroPython - Anweisung im interactive Mode
In diesem Betriebsmodus können auch Anweisungen über mehrere Zeilen eingegeben werden. Diese Shell-Oberfläche ist ebenfalls unter der englischen Abkürzung repl (read, evaluate, print und loop) bekannt.
Wir wollen nun die Onboard-Leuchtdiode (eine Leuchtdiode wird in der Kurzform als LED bezeichnet) ansteuern.
Die Onboard-LED ist bei den beiden Pico-Boards unterschiedlich (Tabelle 3.1).
Tab. 3.1: Pin für Onboard-Leuchtdiode
Dazu müssen wir im ersten Schritt eine sogenannte Bibliothek (Library), also ein vorgefertigtes Paket von MicroPython-Code mit Funktionen, importieren. In unserem Fall die Bibliothek machine. Diese Bibliothek beinhaltet alle Funktionen, die zur Kommunikation mit dem Pico und zur Ansteuerung der einzelnen Pins benötigt werden.
In der nächsten Programmzeile definieren wir eine Variable led. Diese ist ein aussagekräftiger Verweis auf den Pin für die Onboard-LED. Den Variablen-Namen können Sie nach Wunsch wählen, auch Hotdog, Susanne oder Schlafsack würden funktionieren. In der Programmierung verwendet man aber aussagekräftige Variablennamen, um in einem längeren Programm auch den Zusammenhang zu verstehen. Ein anderer Anwender, der Ihren Code verwendet, würde bei der Variablen Hotdog nicht direkt einen Zusammenhang mit der Leuchtdiode erkennen.
Für die Ansteuerung der Leuchtdiode wird eine Funktion Pin aus der machine-Bibliothek verwendet. Dieser Funktion müssen wir die Pin-Nummer 25 (Pico) beziehungsweise die Pinvariable und die Art des Pins (Eingang oder Ausgang) übergeben.
Pico:
Pico W:
Jetzt können wir der LED den Wert 1 übergeben.
Mit dem Wert 1 wird die Leuchtdiode eingeschaltet und mit 0 kann diese wieder ausgeschaltet werden.
Gratulation, Sie haben das erste MicroPython-Programm für den Pico geschrieben!
Dieses interaktive Betriebsmodul eignet sich natürlich nur für Tests und für einfache Eingaben über die Shell-Oberfläche. Die einzelnen Zeilen dieses »Programms« sind nämlich nicht gespeichert. Nach dem nächsten Start der Entwicklungsumgebung oder einem Neustart des Pico ist das Programm nicht mehr vorhanden.
In diesem ersten richtigen Programm wollen wir jetzt die einzelnen Anweisungszeilen aus Abschnitt 3.1 zu einem Programm zusammenführen und als Programm speichern.
Im ersten Schritt werden wieder die nötigen Bibliotheken geladen. Die utime-Bibliothek wird für die Wartezeit zwischen den Blink-Zuständen benötigt.
Nun wird für den Raspberry Pi Pico die Variable für die Onboard-Leuchtdiode deklariert und dem Pin 25 zugewiesen.
Im Hauptprogramm wird nun der Wert der LED-Variablen auf 1 gesetzt und die LED leuchtet. Anschließend erfolgt eine Wartezeit von 1 Sekunde. Da- nach wird die Leuchtdiode wieder mit dem Wert 0 ausgeschaltet. Nach einer weiteren Wartezeit von 1 Sekunde ist ein Programmdurchlauf abgeschlossen und beginnt wieder von vorne.
Nach dem Erstellen des Blink-Programms kann es gespeichert werden. Falls auf dem Pico bereits ein Programm läuft, muss dieses über das Stopp-Icon in der Menüleiste gestoppt werden.
Mit dem Aufruf der Speicher-Funktion in Thonny öffnet sich ein Dialogfenster.
Hier besteht die Möglichkeit, das Programm lokal auf dem Rechner oder auf dem Pico abzuspeichern (Abbildung 3.3).
Abb. 3.3: MicroPython-Programm speichern
Wir wählen die Auswahl Raspberry Pi Pico und speichern das Blink-Programm als Datei blink.py auf dem Pico ab (Abbildung 3.4).
Abb. 3.4: blink.py auf Pico speichern
Somit ist das erste MicroPython-Programm gespeichert und kann bei Bedarf auch wieder vom Pico geladen werden.
Wenn bei jedem Start des Pico das gleiche Programm geladen werden muss, muss dieses als Datei main.py gespeichert werden. Auf diese Weise kann der Pico auch ohne mit dem Rechner verbunden zu sein ein gewünschtes Programm ausführen. MicroPython prüft dabei jeweils, ob eine Datei main.py im Filesystem des Pico vorhanden ist.
Das Beispiel »Blink« aus Abschnitt 3.2 zeigt die Grundstruktur eines Programms für den Pico in MicroPython.
Mit Kommentaren versehen sieht der Programmaufbau anhand des Blink-Programms so aus:
Im Blink-Beispiel ist einzig bei den Funktionen keine Codezeile vorhanden. Dieses Programm führt keine eigene Funktion aus.
Nach dem Import der Bibliotheken und der Initialisierung von Variablen und Objekten wird das Hauptprogramm (Loop) ausgeführt.
Das Hauptprogramm wird jeweils vom Anfang bis zum Ende durchlaufen und beginnt dann wieder am Anfang. Dieser Vorgang wird ausgeführt, bis die Spannungsversorgung des Pico unterbrochen wird.
Im Hauptprogramm der Blink-Anwendung wird die Leuchtdiode ein- und ausgeschaltet, wobei dazwischen jeweils eine Wartezeit von einer Sekunde liegt.
Für Kommentarzeilen setzt man ein # vor die jeweilige Zeile. Alle Anweisungen hinter dem Zeichen # werden als Kommentar betrachtet und nicht ausgeführt.
Kommentare eignen sich, um den eigenen Programmcode mit Erklärungen zu ergänzen.
Variablen in MicroPython sind wie in jeder anderen Programmiersprache kleine Speicher, die einen Namen besitzen und Daten speichern. Der Variablenname kann dabei nach Wunsch gewählt werden und sollte aussagekräftig sein. In jeder Programmiersprache gibt es reservierte Namen, die nicht als Variablennamen verwendet werden dürfen. In Python oder MicroPython sind das beispielsweise:
and, break, def, class, else, False, not, or, True
Eine ausführliche Liste der reservierten Namen für Python beziehungsweise MicroPython finden Sie hier:
https://www.w3schools.com/python/python_ref_keywords.asp
Auch beim Einsatz von Sonderzeichen ist Vorsicht geboten.
Im Beispiel der Variablen led wird in der Variablen der Verweis auf den Ausgang mit der Onboard-Leuchtdiode gespeichert:
Im ganzen Programm kann anschließend die Variable led quasi als Platzhalter eingesetzt werden. Möchte man den Inhalt der Variablen ändern, beispielsweise einen anderen Pin verwenden, muss die neue Pin-Nummer nur zu Beginn des MicroPython-Programms angepasst werden.
Beispiel: externe Leuchtdiode an Pin GP2
In einem Programm kann sich der Wert der Variablen während des Programmablaufs verändern. Eine Zählervariable runden startet mit einem Wert 0 und wird jeweils um 1 erhöht. Der Wert der Zählervariablen wird in der Shell ausgegeben.
Beispiel: Rundenzähler
In diesem Beispiel des Rundenzählers beginnt der Zähler bei 0. In jedem Programmdurchlauf wird der Wert um 1...
Dateiformat: ePUBKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.