Mbed und MicroBit.h      

           
Elektronik-Labor   Projekte   Microbit 

Kap. 13 des Buchs Micro:bit Praktikum

Sobald man in Mbed in eigenen C++-Programmen die Datei MicroBit.h einbindet, ist man wieder ganz auf der Linie der Entwickler. Nun spielt es keine Rolle mehr, welcher Port des Controllers wo angeschlossen ist, man kann sich einfach an die gewohnten Bezeichnungen halten. Außerdem hat man nun wieder die vorgefertigten Funktionen, die auch schon in den Blocks vorhanden waren.

Unter https://developer.mbed.org/platforms/Microbit/ findet man die offizielle Anschlussbelegung und Links auf weitere Informationen zum System.

 
Die Entwickler des Micro:bit an der Universität Lancaster haben eine vollständige API-Dokumentation zusammengestellt, die man benötigt um die einzelnen Funktionen zu verwenden. https://lancaster-university.github.io/microbit-docs/ubit/

Damit ist es nicht schwer, die ersten Programme zu schreiben. Auch hier war wieder eine der ersten Fragen: Wie läuft das mit der seriellen Schnittstelle. Wenn man ein erstes Beispiel hat, geht alles weitere wie von allein. Hier werden einige Messwerte erfasst und seriell an den PC übertragen.

Im Software-Archiv: Mbed21.cpp.txt

Mit Micro.Bit.h hat man auch Zugriff auf Dinge, die vorher nicht erreichbar waren. Hier wird die Systemzeit ausgelesen. Es handelt sich dabei um einen Millisekunden-Timer, der mit jedem Reset neu startet. Auch die interne Temperaturmessung des Controllers ist zugänglich. Und schließlich wird der Analogwert am Anschluss P0 gemessen. Eine Initialisierung als AD-Eingang ist nicht erforderlich, weil die Funktion selbst dafür sorgt. Anders als sonst in Mbed, aber so wie in den Blocks liefert der AD-Wandler 10-Bit-Integerwerte bis 1023 zurück.

Das Beispiel kann man als Text aus dem Programm-Archiv laden. Es wurde als Text-Datei Mbed21.cpp.txt abgelegt. Man kann es mit einem Editor öffnen und dann in ein vorhandenes main.cpp kopieren. Zum Testen des Programms wird ein beliebiges Terminal eingesetzt. Hier muss eine Übertragungsrate von 115200 Baud eingestellt werden.

Im Textfenster sieht man die einzelnen Ausgaben. Damit lässt sich auch die Verzögerungszeit und die Verarbeitungszeit messen. Zwischen zwei Ausgaben liegen 1004 ms, also 1000 ms für die Wartezeit und 4 ms für die Ausführung der Messungen und Ausgaben.

Die Temperaturmessung zeigt 24 Grad, und die Leerlaufspannung an einem offenen Eingang wird mit 238 ausgegeben, was man ja auch schon in den anderen Programmierumgebungen gesehen hat.  Insgesamt ist das Verhalten bei der Verwendung vom MicroBit.h sehr ähnlich dem in der Blocks-Programmierung, eben weil Blocks-Programme grundsätzlich in Mbed übersetzt werden.

Das schnelle Oszilloskop

Ein zweites Programm soll die Ausgabe auf dem LED-Display und  die PWM-Ausgabe testen. Hier wurde das schnellere Oszilloskop aus Kap. 7 in C++ möglichst ähnlich nachprogrammiert.

Im Software-Archiv: Mbed22.cpp.txt

Wieder wird der Port 1 als analoger Eingang verwendet und der Port 0 als PWM-Ausgang. Hier funktioniert jedoch die Einstellung der Periodendauer problemlos. Bei einer Periode von 500 µs entsteht das gewünschte Ausgangssignal mit einer Frequenz von 2 kHz.





Elektronik-Labor   Projekte   Microbit