Bevor es los gehen kann sind ein paar Vorarbeiten zu erledigen damit der Mikrocontroller mit Micropython programmiert werden kann.
Für jeden Mikrocontroller müssen diese Schritte (am besten von der Lehrkraft) im Vorfeld einmal durchgeführt werden um den Schülern die Hardware "ready-to-go" an die Hand zu geben.
Da der Amica Node MCU von Haus aus nicht mit der Micropython-Firmware ausgestattet ist, muss dieser zunächst einmal umprogrammiert werden. Erst danach lassen sich Micropython-Programme darauf ausführen.
Auf den Speicher des esp8266 (der Prozessor des NodeMCU) muss sozusagen ein neues Betriebsystem - Micropython - installiert werden. Man spricht dann vom flashen.

Anders als bei einem Arduino muss man die Firmware nicht jedes mal, wenn man eine Änderung am Programm vorgenommen hat, neu flashen. Das "Micropython-Betriebssystem" hat - anders als ein Arduino - ein Dateisystem. Das Programm wird später auf den Mirkocontroller kopiert.

Die vorhandene Firmware des NodeMCU, die auf der Programmiersprache LUA basiert, wird beim flashen natürlich überschrieben.

Software installieren

Um das Board zu flashen müssen zwei Programme und zwei Python-Bibliotheken installiert werden. Dazu müssen die folgenden Befehle mit root-Rechten auf den Linux-Computern ausgeführt werden. MeinBenutzername muss natürlich durch den Benutzername ersetzt werden.

sudo apt-get install python-pip wget
sudo pip install mpfshell
sudo pip install esptool
sudo adduser MeinBenutzername dialout

Der erste Befehl installiert den Packetmanager für Python2. Damit lassen sich die beiden folgenden Befehle ausführen. Also es lassen sich damit Programme, Bibliotheken und allerlei Erweiterungen für Python installieren.

Der zweite Befehl installiert das Hauptwerkzeug für die Kommunikation mit dem Mikrocontroller. Damit können die Programme auf den esp8266 kopiert, verschoben und gelöscht werden und viels mehr. Eine detaillierte Anleitung findet man in englischer Sprache hier.

Der dritte Befehl installiert das Programm esptool. Damit wird die Firmware geflasht. Auf den Computern, auf denen die Schüler arbeiten werden, muss esptool nicht installiert werden.

Mit dem vierten Befehl wird der Benutzer der Gruppe dialout hinzugefügt. Dadurch erhält er die Rechte um auf die Serielle Schnittstelle des PCs zuzugreifen. Damit diese Änderung wirksam wird, muss sich der Benutzer einmal ab- und wieder anmelden.

Die Frimware flashen

Als nächstes soll die Firmware auf den NodeMCU geflasht werden. Zunächst werden dazu zwei Ordner angelegt. Der Code zeigt, wie man das in einem Linux-Terminal macht.

Als nächstes läd man sich die letzte stabile Firmware hier herunter und speichert sie im Ordner ~/esp8266/firmware

cd ~
mkdir esp8266
cd esp8266
mkdir firmware
cd firmware

Der NodeMCU wird spätestens jetzt an den Computer angeschlossen und dann wird geflasht.

In Zeile 1 wird der gesamte Speicher des NodeMCU gelöscht und in Zeile 2 wird die neue Firmware auf das Board geflasht. Die beiden Befehle müssen für jedes Board einmal durchgeführt werden.

esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 firmware.bin

Wenn alles geklappt hat, kann es mit dem Programmieren nun endlich losgehen.

  • Autor: Pascal Deneaux
  • Datum: 6. Mai 2018
Zurück