Daten speichern mit MicroPython 

           
Elektronik-Labor   Projekte   Microbit 

Der übliche Umgang mit dem Micro:bit erfordert für die Programmentwicklung immer einen Zugriff auf das Internet. Eine Ausnahme bildet MicroPython. Da gibt es zwar auch eine Online-Programmierumgebung, aber möglich ist auch die Offline-Programmierung auf dem heimischen PC, sodass alle Daten auf der eigenen Festplatte liegen. Dazu gibt es den Mu-Editor: https://github.com/mu-editor/mu

Der Mu-Editor ist selbst in Python geschrieben und für alle wichtigen Betriebssysteme erhältlich. Unter Windows ist es einfach nur eine exe-File, das ohne weitere Installation gestartet werden kann. Mu findet den am USB angeschlossenen Micro:bit problemlos und überträgt mit dem Flash-Knopf die gesamte Micropython-Runtime und das gerade geschriebene Programm. Startet man das eingebaute Terminal (Repl), kann man auch direkt mit dem System kommunizieren. Die Eingabe von "Help()" bringt tatsächlich einige nützliche Informationen.

>>> help()
Welcome to MicroPython on the micro:bit!

Try these commands:
  display.scroll('Hello')
  running_time()
  sleep(1000)
  button_a.is_pressed()
What do these commands do? Can you improve them? HINT: use the up and down
arrow keys to get your command history. Press the TAB key to auto-complete
unfinished words (so 'di' becomes 'display' after you press TAB). These
tricks save a lot of typing and look cool!

Explore:
Type 'help(something)' to find out about it. Type 'dir(something)' to see what
it can do. Type 'dir()' to see what stuff is available. For goodness sake,
don't type 'import this'.

Control commands:
  CTRL-C        -- stop a running program
  CTRL-D        -- on a blank line, do a soft reset of the micro:bit
  CTRL-E        -- enter paste mode, turning off auto-indent

Available modules: antigravity, array, collections, gc, love, math,
micropython, music, neopixel, os, radio, random, speech, struct, sys, this

For more information about Python, visit: http://python.org/
To find out about MicroPython, visit: http://micropython.org/
Python/micro:bit documentation is here: https://microbit-micropython.readthedocs.io/
>>>
>>> 

Der beste Einstieg gelingt mit der in der Hilfe genannten Seite https://microbit-micropython.readthedocs.io/. Da findet man die wichtigsten Themen und zahlreiche Programmbeispiele. Unter anderem gibt es da Informationen zum File-System. Mit MicroPython kann man Dateien speichern und lesen, ideal zur Realisierung von Datenloggern aller Art.

Das habe ich nun probiert. Das Ziel ist ein Beschleunigungs-Datenlogger, den man im Auto mitführen kann. Damit lässt sich der individuelle Fahrtstil von "ruhig und gelassen" bis "sportlich und risikoreich" unterscheiden. Ich habe hier die Beschleunigung in x- und y-Richtung einfach addiert, was physikalisch nicht ganz korrekt ist und teilweise höhere Beschleunigungen anzeigt als die vektorielle Addition. Aber wer schnell in die Kurve fährt und dann auch noch hart beschleunigt oder bremst, fährt doppelt gefährlich.


from microbit import *

with open('Axy.py', 'w') as my_file:
    my_file.write("axy\n")
    for n in range(1, 2001, 1):
        a = accelerometer.get_x()+accelerometer.get_y()
        my_file.write(str(a)+"\n")
        sleep(100)
print("done")


Das Programm ist erfreulich kurz und speichert 2000 Messwerte in einem Zeitraum von insgesamt 1000 Sekunden, also etwa einer Viertelstunde. Es wird eine Datei mit dem Namen Axy.py erzeugt. Man könnte sie auch Axy.txt nennen, aber die Endung py ist praktisch, weil man die Daten dann direkt in Mu ansehen kann.

Und das geht so: Man klickt auf den Files-Knopf. Ein eventuell gerade laufendes Programm wird gestoppt, und Mu verschafft sich den Zugriff auf das File-System. Da steht nun tatsächlich die gerade erzeugte Datei. Man kann sie mit der linken Maustaste packen und nach rechts auf den eigenen Computer ziehen. Damit die die Datei kopiert, die Daten sind gerettet. Mit der Übertragung eines neuen Programms wird die Datei nämlich auf jeden Fall gelöscht. Möglich sind aber mehrere Dateien im Grundverzeichnis, nicht jedoch Unterverzeichnisse.


Die Datei Axy.py kann man nun direkt in den Editor laden oder mit anderer Software auswerten. 

In diesem Fall wurden die Daten aus dem Mu-Editor kopiert und in eine Excel-Tabelle eingefügt. Die grafische Auswertung zeigte dann einen katastrophalen Fahrstil, der zum sofortigen Verlust des Führerscheins führte. Nein, stimmt gar nicht. Da war nur eine Simulation, bei der ich etwas mit dem Micro:bit gewackelt habe.    


Elektronik-Labor   Projekte   Microbit