Kühnel | MicroPython | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 392 Seiten

Kühnel MicroPython

Das Handbuch für Maker und IoT-Development
1. Auflage 2026
ISBN: 978-3-367-11570-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das Handbuch für Maker und IoT-Development

E-Book, Deutsch, 392 Seiten

ISBN: 978-3-367-11570-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Mikrocontroller-Programmierung muss nicht schwierig und umständlich sein. Mit Micropython haben Sie ein Werkzeug, das die Arbeit mit den Arduinos, dem ESP32/8266 oder dem Raspberry Pi Pico einfach macht: Im Handumdrehen lesen Sie Sensoren aus, richten Webserver ein und versenden Daten über Bluetooth LE oder WLAN. Wie das geht, zeigt Ihnen Claus Kühnel in diesem Praxisbuch.

Aus dem Inhalt:

  • Grundlagen: Python für Maker
  • Entwicklungsboards und -umgebungen
  • Bibliotheken und Tools
  • Multitasking mit Threads und AsyncIO
  • Interrupts und Timer
  • UART, SPI, I2C und CAN
  • Ein LoRa-Netz aufbauen
  • Debugging und Fehlersuche


Dr. Claus Kühnel studierte Informationstechnik an der Technischen Universität Dresden und hat über viele Jahre Embedded Systems für die Labordiagnostik u.a. entwickelt. In diesem interdisziplinären Spannungsfeld kam er mit der Maker-Szene in Berührung. Er hat zahlreiche Artikel und Bücher zu Hard- und Software von Mikrocontrollern im In- und Ausland veröffentlicht. Von der Zeitschrift Elektronik erhielt sein Beitrag „Arduino & Co“ die Auszeichnung „Artikel des Jahres 2011“. Mit Leidenschaft gibt er sein umfangreiches und fundiertes Wissen an interessierte Leser weiter.
Kühnel MicroPython jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


  1.  Python 3 vs. MicroPython ... 11


       1.1 ... Popularität von Programmiersprachen ... 12

       1.2 ... Gemeinsamkeiten und Unterschiede ... 14

  2.  Entwicklungsboards und -umgebungen ... 19


       2.1 ... Eingesetzte Hardware ... 20

       2.2 ... Entwicklungsumgebungen ... 43

       2.3 ... Firmware installieren ... 51

       2.4 ... MicroPython-Benchmarks ... 66

  3.  Die Sprachelemente von MicroPython ... 73


       3.1 ... Grundlegende Syntax ... 73

       3.2 ... Operatoren ... 87

       3.3 ... Kontrollstrukturen ... 92

       3.4 ... Funktionen ... 102

       3.5 ... Module in MicroPython ... 111

       3.6 ... Besonderheiten von MicroPython ... 131

  4.  Daten speichern, teilen und anzeigen ... 167


       4.1 ... Dateien und Dateisystem ... 167

       4.2 ... Kommunikation ... 176

       4.3 ... Anzeigeeinheiten ... 210

  5.  Fortgeschrittene Programmierung ... 229


       5.1 ... Multitasking mit Threads und AsyncIO ... 229

       5.2 ... State Machines ... 235

       5.3 ... Raspberry Pi Pico: PIO-Programmierung ... 239

       5.4 ... Bildverarbeitung ... 248

  6.  Debugging ... 257


       6.1 ... Statische Codeanalyse ... 257

       6.2 ... Debugging über REPL ... 259

       6.3 ... print()-Debugging ... 261

       6.4 ... Thonny-Debugger ... 262

  7.  Best Practices ... 265


       7.1 ... Auswahlkriterien für den Mikrocontroller ... 265

       7.2 ... Auswahl der Firmware ... 267

       7.3 ... MicroPython und das CPU Diagnostic Tool ... 270

       7.4 ... Fazit ... 280

  8.  MicroPython-Anwendungen ... 283


       8.1 ... Anwesenheitsdetektion zur Raumüberwachung ... 283

       8.2 ... BLE-Sensor-Netzwerk mit BLE-MQTT-Gateway ... 299

       8.3 ... Monitoring des Raumklimas ... 310

       8.4 ... Intelligenter Regenalarm ... 330

       8.5 ... Messwerterfassung und Visualisierung im Webserver ... 345

       8.6 ... Visualisierung von Bilddaten im Webserver ... 355

       8.7 ... Echtzeit-Audiovisualisierung ... 363

       8.8 ... Internetzugriff auf IoT-Geräte ... 372

  Index ... 385


1.2    Gemeinsamkeiten und Unterschiede


Bevor ich ausschließlich auf MicroPython eingehe, möchte ich Ihnen die Gemeinsamkeiten zwischen Python 3 und MicroPython aufzeigen. Eine ideale Ableitung von Python 3 zu MicroPython ist erstrebenswert, aufgrund der unterschiedlichen Hardware-Basis wohl aber kaum erreichbar. Tabelle 1.1 zeigt die Gemeinsamkeiten, die in den grundlegenden Merkmalen liegen.

Bereich

Beschreibung

Syntax

MicroPython basiert auf Python 3, daher ist die Syntax (z. B. Schleifen, Bedingungen, Funktionen, Klassen) weitgehend identisch.

Datentypen

Unterstützt die gleichen grundlegenden Typen, wie int, float, str, list, tuple, dict, set, bool.

Kontrollstrukturen

if, for, while, try/except, with werden gleich verwendet.

Funktionen und Klassen

Definition und Nutzung von Funktionen (def) und Klassen (class) sind fast identisch.

Module

Das Importieren von Modulen mit import funktioniert gleich (z. B. import math).

Objektorientierung

vollständig objektorientiert wie Python 3

Interaktivität

REPL (Read–Eval–Print Loop) ist vorhanden – man kann Befehle direkt eingeben und testen.

Tabelle 1.1     Gemeinsamkeiten von Python 3 und MicroPython

Abhängig von der Performance der Zielplattform ist bei MicroPython mit Einschränkungen zu rechnen. Tabelle 1.2 listet deshalb die Unterschiede zwischen Python 3 und MicroPython auf, die Sie bei der Programmierung unbedingt beachten müssen.

Bereich

Python 3

MicroPython

Zielplattform (Target)

Läuft auf Computern (Windows, Linux, macOS).

Läuft auf Mikrocontrollern (z. B. ESP32, RP2040, STM32).

Speicher und Performance

Rechnet mit viel RAM und hoher Rechenleistung.

Es läuft extrem ressourcenschonend mit wenigen KB RAM und Flash.

Standardbibliothek

vollständige Standardbibliothek (os, re, threading, multiprocessing, tkinter …)

Verwendet nur einen Teil der Standardbibliothek, angepasst für Embedded Systems.

Hardware-Zugriff

kein direkter Zugriff auf GPIOs, I²C, SPI usw.

Enthält spezielle Module wie machine, pyb, esp für die direkte Arbeit mit der betreffenden Hardware.

Dateisystem

Nutzt das Host-Dateisystem.

Nutzt ein kleines Flash-Dateisystem auf dem Mikrocontroller.

Threading und Multiprocessing

vollwertige Unterstützung

meist kein echtes Multithreading – nur »Lightweight«-Varianten (uasyncio)

Garbage Collection

automatisch und effizient

Vereinfacht, um Speicher zu sparen; erfordert teils manuelles Eingreifen (gc.collect()).

Kompatibilität

standardisiert (PEP-konform).

Nicht alle PEPs unterstützt; manche Features fehlen (z. B. komplexe Metaklassen, async eingeschränkt).

Paketmanagement

pip über PyPI

upip oder mip mit geringerem Funktionsumfang

Floating Point

voll unterstützt, inklusive decimal

abhängig vom Chip (manchmal nur einfache float-Unterstützung)

Tabelle 1.2     Unterschiede zwischen Python 3 und MicroPython

Was sind eigentlich PEPs?


PEP steht für Python Enhancement Proposal (dt. »Vorschlag zur Verbesserung von Python«).

Ein PEP ist ein offizielles Dokument, das

  • neue Features oder Sprachfunktionen,

  • Änderungen an der Syntax oder Standardbibliothek,

  • Empfehlungen für Programmierstil oder Best Practices

  • oder Informationen zu Designentscheidungen in der Python-Sprache

beschreibt.

Die Liste aller PEPs zu Python 3 finden Sie unter https://peps.python.org/. MicroPython folgt der Philosophie und Syntax von Python 3, implementiert jedoch nur die PEPs, die auf einem Mikrocontroller effizient umsetzbar sind. Ziel ist Kompatibilität bei minimalem Speicherbedarf, ohne unnötigen Overhead.

Eine Reihe von PEPs haben eher universellen Charakter, wobei ich vor allem auf die beiden folgenden PEPs verweisen möchte:

  • PEP 8 – Style Guide for Python Code

  • PEP 20 – The Zen of...


Kühnel, Claus
Dr. Claus Kühnel studierte Informationstechnik an der Technischen Universität Dresden und hat über viele Jahre Embedded Systems für die Labordiagnostik u.a. entwickelt. In diesem interdisziplinären Spannungsfeld kam er mit der Maker-Szene in Berührung. Er hat zahlreiche Artikel und Bücher zu Hard- und Software von Mikrocontrollern im In- und Ausland veröffentlicht. Von der Zeitschrift Elektronik erhielt sein Beitrag „Arduino & Co“ die Auszeichnung „Artikel des Jahres 2011“. Mit Leidenschaft gibt er sein umfangreiches und fundiertes Wissen an interessierte Leser weiter.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.