STM32 Entwicklungs-Board mit MicroPython das erste Beispiel

Willkommen in der Welt von MicroPython mit einem 32 bit STM32F405RG Mikrocontroller. MicroPython ist eine schlanke und effiziente Implementierung der Programmiersprache Python 3, die eine kleine Teilmenge der Python-Standardbibliothek enthält und für den Betrieb auf Mikrocontrollern und in eingeschränkten Umgebungen optimiert ist.

In dieser Anleitung werden die ersten Schritten von der Installation hin zu kleinen Beispielanwendungen beschrieben.

Das MicroPython-Entwicklungs-Board besitzt neben dem STM32F405RG Mikrocontroller ein Beschleunigungssensor, vier LEDs zwei Taster und einen SD-Kartenhalter. Auf dem Mikrocontroller läuft MicroPython als Low-Level-Python-Betriebssystem.

Aufbau des Boards:

 

  • STM32F405RG Mikrocontroller
  • Platinengröße: 70 x 60 mm
  • 168 MHz Cortex M4 CPU mit Hardware-Fließkommaberechungseinheit
  • 1 MB Flash-ROM und 192KB RAM
  • Micro-USB-Anschluss für Stromversorgung und serielle Kommunikation
  • Integrierter Micro-SD-Kartensteckplatz
  • 3-Achsen-Beschleunigungsmesser (MMA7660)
  • Echtzeituhr mit optionalem Batterie-Backup
  • 36 GPIO am linken und rechten Rand, plus vier LEDs auf der Platine
  • 3x 12-Bit Analog-Digital-Wandler, verfügbar auf 16 Pins
  • 2x 12-Bit-Digital-Analog-Wandler (DAC), verfügbar auf den Pins X5 und X6.
  • 4 LEDs (rot, grün, gelb und blau)
  • 1 Reset und 1 frei verwendbarer Taster
  • Integrierter 3,3V LDO-Spannungsregler Eingang über Micro-USB
  • DFU-Bootloader im ROM zur einfachen Aktualisierung der Firmware

Die Belegung der Pins ist wie folgt:

Installation der Treiber:

Nach dem anschließen des MicroPython Entwicklungs-Boards erscheint dieses als “PYBFLASH” – Laufwerk.

Außerdem wird es im Windows Geräte-Manager als “Serielles USB-Gerät (COMXY)” angezeigt:

Sollte Windows nicht automatisch einen Treiber installieren, kann der im “PYBFLASH” abgelegte Treiber genutzt werden.

Programmieren über das Terminal mit PuTTY

Über das Tool PuTTY kann eine direkte serielle Verbindung mit dem Board aufgebaut werden, über welche live programmiert werden kann.

Als erstes PuTTY starten und “Serial” auswählen. Im Anschluss den COM-Port aus dem Geräte-Manager übertragen und die serielle Kommunikation starten:

Durch das öffnen der Verbindung erscheint folgendes Terminal: (Sollte der Verbindungsaufbau Fehlschlagen, ist die Reset-Taste auf dem Entwicklungsboard zu betätigen und Putty erneut zu öffnen).

Das erste Programm “Hallo Welt!” in MicroPython

Wie in anderen Programmiersprachen auch empfiehlt es sich über eine einfache “Hallo Welt!”-Ausgabe zu starten. Der dazu benötigte Code:

print("Hallo Welt!")

wird einfach im Terminal eingeben und mit “Enter” bestätigt.

Es lassen sich auch Rechenaufgaben in dieser Konsole lösen:

LEDs und GPIOs schalten

Über den Folgenden Code lässt sich die grüne LED (D1) einschalten:

pyb.LED(1).on()

Die GPIOs lassen sich ebenso ansteuern:

pyb.Pin.cpu.A10.on()
pyb.Pin.cpu.A10.off()

“A10” steht hier für den Pin: PA10. Python besitzt die Funktion Befehle über die Tabulator-Taste Vervollständigen zu lassen.

Reboots des Boardes

Wenn etwas schief geht, kann das Board auf zwei Arten zurückgesetzt werden. Die erste ist, STRG-D im MicroPython-Prompt zu drücken, welches einen Soft-Reset durchführt.

Sollte dies nicht funktioniert, können Sie einen Hard-Reset (Ein- und Ausschalten) durchführen, indem Sie den RST-Schalter (K1) drücken. Dadurch wird die serielle Sitzung beendet und die Verbindung zu (z.B. PuTTY ) getrennt.

Zurücksetzen des Boardes

Sollte beim Programmieren etwas schief gehen, ist ein Zurücksetzen meist kein Problem.

Das erste, was Sie versuchen müssen, ist, in den abgesicherten Modus zu wechseln: Dies überspringt vorübergehend die Ausführung von boot.py und main.py und gibt die Standard-USB-Einstellungen an.

Wenn Sie Probleme mit dem Dateisystem haben, können Sie einen Factory-Reset durchführen, der das Dateisystem in seinen ursprünglichen Zustand zurückversetzt.

Abgesicherter Modus:

Um in den abgesicherten Modus zu gelangen, gehen Sie wie folgt vor:

  1. Schließen Sie das Board an USB an, damit es eingeschaltet wird.
  2. Halten Sie den K2-Taster gedrückt.
  3. Während Sie K2-Taster gedrückt halten, drücken Sie den RST-Schalter (K1) kurz und lassen Sie diesen wieder los.
  4. Die LEDs leuchten dann blau und orange.
  5. Den K2-Taster in dem Moment loslassen, in welchem die orange LED leuchtet.
  6. Die orangefarbene LED sollte 4 mal schnell blinken und dann erlöschen.
    Sie befinden sich nun im abgesicherten Modus.
  7. Im abgesicherten Modus werden die Dateien boot.py und main.py nicht ausgeführt, so dass das Pyboard mit den Standardeinstellungen bootet. Dies bedeutet, dass Sie nun Zugriff auf das Dateisystem haben (das USB-Laufwerk sollte erscheinen), und Sie können boot.py und main.py bearbeiten, um alle Probleme zu beheben.

Der Eintritt in den abgesicherten Modus ist temporär und führt keine Änderungen an den Dateien auf der Pyboard durch.

Rücksetzen des Dateisystems auf Werkseinstellung

Wenn das Dateisystem deines Entwicklungsboards beschädigt ist, oder du hast Code in boot.py oder main.py, welcher den Mikrocontroller in einen unerwünschten Zustand versetzt, dann kannst du das Dateisystem zurücksetzen.

Das Zurücksetzen des Dateisystems löscht alle Dateien auf dem internen Speicher (nicht die SD-Karte) und stellt die Dateien boot.py, main.py, README.txt und pybcdc.inf wieder in ihren ursprünglichen Zustand her.

Um einen Factory-Reset des Dateisystems durchzuführen, gehen Sie ähnlich vor wie beim Eintritt in den abgesicherten Modus, aber lassen den K2-Taster auf blau+orange los:

  1. Schließen Sie das Board an USB an, damit es eingeschaltet wird.
  2. Halten Sie den K2-Taster gedrückt.
  3. Während Sie K2-Taster gedrückt halten, drücken Sie den RST-Schalter (K1) und lassen Sie diesen los.
  4. Die LEDs leuchten dann blau und orange.
  5. Halten Sie K2-Taster gedrückt, bis sowohl die blaue als auch die orangefarbene LED leuchten, und lassen Sie dann den K2-Taster los.
  6. Die blaue und orangefarbene LED sollten 4 mal schnell blinken.
  7. Die grüne LED leuchtet (grün, blau und orange leuchten).
  8. Das Board setzt nun das Dateisystem zurück (dies dauert einige Sekunden).
  9. Die LEDs erlöschen alle.
  10. Sie haben nun ein zurückgesetztes Dateisystem und befinden sich im abgesicherten Modus.
  11. Den RST-Taster drücken und loslassen, um normal zu booten.

Weiter Informationen

Details zur MicroPython-Bibliothek sind unter folgendem Link zu finden: http://docs.micropython.org/en/latest/pyboard/library/index.html