Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Programmieren mit MicroPython #1: Mikrocontroller und Entwicklungsumgebung

Posted on 12. Mai 202026. Mai 2023 by Stefan Draeger

In dem ersten Beitrag möchte ich dir zeigen, wie du dein erstes Programm in MicroPython programmierst und auf einen Mikrocontroller aufspielst.

  • Mikrocontroller für MicroPython
  • Flashen des ESP32 Chips für die Programmierung von MicroPython auf einem Mikrocontroller
    • Schritt 1 – installieren von esptool
    • Schritt 2 – löschen des Inhalts
    • Schritt 3 – schreiben der neuen Firmwareversion
  • Entwicklungsumgebung uPyCraft für die Programmierung in MicroPython auf einem Mikrocontroller
    • Aufbau der Oberfläche
  • Aufbau einer Verbindung
  • Programm „Hello World!“ auf dem ESP32
  • Fazit

Mikrocontroller für MicroPython

Die Programmiersprache MicroPython habe ich bereits in der Beitragsreihe zum Microcontroller BBC micro:bit angeschnitten. Jedoch möchte ich in dieser Beitragsreihe den „normalen“ ESP32 verwenden.

Microcontroller micro:bit von der Firma BBC
Microcontroller ESP32

Der Vorteil des „normalen“ ESP32 ist einmal dieser günstig in der Anschaffung sowie durch die Stiftleisten ohne weitere Shields / Module auf ein 400 Pin Breadboard gesteckt werden kann. Solltest du kein 400 Pin oder 720 Pin Breadboard haben, so kannst du auch 2 170 Pin Breadboards verwenden.

ESP32 auf zwei 170 Pin Breadboard
ESP32 auf 400 Pin Breadboard

Flashen des ESP32 Chips für die Programmierung von MicroPython auf einem Mikrocontroller

Mein mir vorliegender Mikrocontroller wurde mit der Firmware für die Arduino IDE ausgeliefert, d.h. ich konnte diesen prima mit der genannten IDE verbinden und dort Sketche / Programme entwickeln und hochladen. ABER für MicroPython war diese Version nicht geeignet, daher musste ich eine neue Firmware einspielen.

Das Einspielen einer Firmware ist nicht immer ganz ungefährlich, wenn dieser Vorgang abgebrochen wird oder etwas schiefläuft kann es unter Umständen passieren, dass der Mikrocontroller nicht mehr reagiert.

Im nachfolgenden, möchte ich dir aufzeigen wie ich den ESP32 Mikrocontroller mit dem Chip  ESP32D0WDQ6 geflasht habe.

Schritt 1 – installieren von esptool

Damit wir auf den Mikrocontroller eine neue Firmware installieren können, benötigen wir ein Tool. Es gibt hierzu 2 verschiedene Tools, ich möchte den Weg über das Tool esptool.py erläutern.

Ich verwende ein Microsoft Windows 10 mit einer installierten Python3 Version.

Das Programm esptool.py wird über die Kommandozeile mit dem Befehl

pip install esptool

installiert.

installieren des Tools esptool über pip
Installieren des Tools esptool über pip

Nachdem das Tool installiert wurde, muss der Ordner geöffnet werden in welchem dieses Tool installiert wurde, bei mir ist es der Pfad:

C:\Users\<BENUTZERNAME>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts

Sollte dieser Pfad nach der Anpassung des Benutzernames nicht geöffnet werden können so navigiere ab dem Punkt „/Packages“ über den Dateiexplorer.

Schritt 2 – löschen des Inhalts

Im zweiten Schritt habe ich den Inhalt des ESP32 gelöscht, dieses wird mit einem einfachen Befehl auf der Konsole erledigt. Du benötigst dazu die Bezeichnung des COM Anschlusses. Diesen kannst du zbsp. im Geräte-Manager unter dem Punkt „Anschlüsse (COM & LPT)“ ablesen.

Geräte-Manager unter Windows 10, CH340
Geräte-Manager unter Windows 10, CH340

In meinem Fall ist der Microcontroller am COM10 angeschlossen.

esptool.py --chip esp32 --port COM10 erase_flash

Wenn dieser Befehl mit der Enter-Taste bestätigt wird, werden zunächst die Spezifikationen des Chips ausgelesen und angezeigt. Danach wird der Flashspeicher gelöscht und der Mikrocontroller neu gestartet.

löschen des Flashspeichers auf dem ESP32 mit esptool.py
löschen des Flashspeichers auf dem ESP32 mit esptool.py

Das der Mikrocontroller gelöscht wurde erkennt man nun daran das die BUILD_IN LED, welche zuvor im Intervall geblinkt hat, nicht mehr blinkt.

Schritt 3 – schreiben der neuen Firmwareversion

Im dritten und letzten Schritt schreiben wir nun eine aktuelle Version der Firmware für MicroPython auf den ESP32.
Diese *.bin Datei findest du unter https://micropython.org/download/esp32/ dort findest du jeweils zwei Versionen, einmal ein tagesaktuelles Artefakt und einmal ein Release.

MicroPython Artefakte
MicroPython Artefakte

Die Version mit „unstable“ sind tagesaktuelle Artefakte und können ggf. Fehler / Features beinhalten, welche zu einem Fehlverhalten führen können. Ich habe mich für die Datei „esp32-idf3-20101220-v1.12.bin“ entschieden und heruntergeladen. Diese Datei habe ich in das Verzeichnis abgelegt, wo auch die ausführbare Datei esptool.py.exe liegt.

Des Weiteren habe ich die Datei umbenannt, so das der Befehl

esptool.py --chip esp32 --port COM10 --baud 460800 write_flash -z 0x1000 esp32-idf3.bin

deutlich kürzer wird.

flashen eines MicroPython Artefakten auf den ESP32
flashen eines MicroPython Artefakten auf den ESP32

Entwicklungsumgebung uPyCraft für die Programmierung in MicroPython auf einem Mikrocontroller

Für die Programmierung nutze ich das Tool uPyCraft, dieses gibt es für Windows, macOS und Linux.  Auf der Herstellerseite http://docs.dfrobot.com.cn/upycraft/ findest du den Link zum Download der Windows Version.

Leider ist die Seite nur auf Chinesisch verfügbar, somit kann ich keine Aussage über den Rest der Seite machen jedoch ist die Anwendung selbst in Englischer Sprache gehalten.

Wenn die ca. 13 MB große Datei heruntergeladen wurde (dauert ungewöhnlich lange) kann uPyCraft gestartet werden.

Mein Windows Defender hat die Datei „uPyCraft_V1.1.exe“ als potentiell gefährlich gemeldet, so das ich die Ausführung explizit bestätigen musste. Nachdem ich die IDE gestartet wurde, wird ein Dialog angezeigt das ich zusätzlich

Aufbau der Oberfläche

Die Oberfläche der Anwendung uPyCraft ist sehr einfach gehalten, quasi auf das wesentliche beschränkt, aber trotzdem sehr mächtig.

Auf der linken Seite (1) findest du einen Baum mit den Dateien aus deinem aktuellen Workspace, sowie die verbundenen Geräte.
Der Editor für den Quellcode befindet sich in der Mitte (2) der Anwendung, es können mehrere Dateien gleichzeitig geöffnet werden, diese werden dann in Tabs dargestellt.
Einen neuen Tab bzw. Editor für man mit der Schaltfläche „New“ (3) hinzu. Darunter befindet sich die Schaltfläche zum Öffnen einer bestehenden *.py Datei (4). Zum Speichern des aktuellen Tabs nutzt man entweder die Tastenkombination „Strg + S“ oder die Schaltfläche (5).

Die Schaltfläche „DownloadAndRun“ (6) speichert das aktuelle Skript auf den ESP32 und führt einen Neustart durch.

Die Bezeichnung finde ich etwas irreführend denn eigentlich macht man einen Upload.

Mit der Schaltfläche „Stop“ (7) wird der Vorgang abgebrochen.

Die Schaltfläche (8) dient zum Verbinden mit dem ESP32 und verändert sich bei erfolg in die Schaltfläche zum Trennen der Verbindung. Wenn man eine Verbindung über diese Funktion aufgebaut hat, dann kann man quasi Inline Befehle eingeben und sofort ausführen lassen.

Die Ausgabe von Fehlermeldungen / Kompilermeldungen und auch die von der seriellen Schnittstelle werden im Ausgabefenster (9) angezeigt.

Entwicklungsumgebung uPyCraft für MicroPython
Entwicklungsumgebung uPyCraft für MicroPython auf dem Mikrocontroller

Alle diese Funktionen (und viele weitere) findest auch über das Hauptmenü. Jedoch möchte ich zunächst einfache kleine Programme schreiben.

Aufbau einer Verbindung

Bevor wir unser erstes Programm schreiben, wollen wir eine Verbindung mit dem ESP32 aufbauen. Dazu navigieren wir vom Hauptmenüpunkt „Tools“ > „Serial“ und wählen dort unseren Mikrocontroller aus.

uPyCraft, Serial > COM10
uPyCraft, Serial > COM10

In meinem Fall ist dieser am Port COM10 angeschlossen.

Wenn eine Verbindung aufgebaut wurde, wird der Inhalt des Mikrocontrollers im Baum unter „device“ angezeigt.

uPyCraft, Inhalt des ESP32 anzeigen
uPyCraft, Inhalt des ESP32 anzeigen

Ich habe bereits ein Programm hochgeladen, somit existiert neben der wichtigen „boot.py“ zusätzlich die Datei „helloWorld.py“.

Über das Kontextmenü in diesem Knoten können wir Dateien bearbeiten.

"uPyCraft,

Sehr gut finde ich zbsp. das Feature das eine hochgeladene Datei wieder einfach heruntergeladen und bearbeitet werden kann. Dieses Feature würde ich mir bei den Arduinos auch sehr gerne wünschen.

Programm „Hello World!“ auf dem ESP32

Nachdem wir den ESP32 mit der für MicroPython passenden Firmware geflasht und die Entwicklungsumgebung uPyCraft „installiert“ haben, möchten wir ein einfaches kleines Programm schreiben. Dieses Programm soll und zunächst auf der Konsole die Zeichenkette „Hello World!“ ausgeben.

Zunächst benötigen wir eine Bibliothek, damit wir eine kleine Pause zwischen den Ausgaben des Textes einfügen können.
Die importieren wir mit dem Befehl „import“.

import time as time

Danach benötigen wir eine Endlosschleife, denn sonst würde das Programm einmal die Zeichenkette „Hello World!“ ausgeben und dann beendet werden.

while(1):

In dieser Endlosschleife führen wir nun die zwei Funktionen aus zum Schreiben der Zeichenkette sowie für die Pause von 0,5 Sekunden.

print("Hello World!")
time.sleep(0.5)

Das gesamte Programm.

import time as time
while(1):
    print("Hello World!")
    time.sleep(0.5)

Wenn wir nun das Programm über die Schaltfläche „DownloadAndRun“ hochladen, dann wird dieses auf der Konsole angezeigt. Das Programm startet auch sofort nach erfolgreichem reboot des Mikrocontrollers.

Ausgabe "Hello World!"
Ausgabe „Hello World!“

Fazit

Wir haben nun einen ESP32 eingerichtet und mit der Anwendung uPyCraft ein erstes Programm hochgeladen. Es bedarf für mich einiger suche („Google ist mein Freund“) aber du hast in diesem Beitrag alles für dein erstes MicroPython Programm zusammen.

Als Nächstes möchte ich nun einsteigen einige Sensoren & Aktoren (LEDs, Piezo Buzzer, DHT11, Servomotoren usw.) über MicroPython zu programmieren.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}