BBC Microbit Grundlagen
Der micro:bit ist ein Mikrocontroller Projekt für Schulen, entwickelt unter der Federführung der BBC. Nachdem 1 Million davon kostenlos an britische Schüler verteilt wurden, gibt es den Mikrocontroller seit einigen Wochen auch für normale Endanwender zu kaufen. Zeit für eine Einführung, was in dem kleinen Kerl steckt.
Hardware
Auf dem Micro:Bit werkelt zwei ARM Cortex M0 CPUs, der Haupt Prozessor ist von Nordic Semiconductor, der nRF51822. Als USB Controller kommt ein NXP ARM Cortex M0 der Kinetis KL26 Serie zum Einsatz. Im Gegensatz zu anderen Boards wie dem Arduino stecken auf dem Basisboard bereits eine Reihe an Sensoren und Aktoren. Hardware Übersicht
- ARM Cortex M0 CPU, 16MHz, 16kB RAM, 256kB Flash, Nordic nRF51822
- 3-Achsen Beschleunigungssensor NXP MMA8653
- elektronischer Kompass NXP MAG3110
- 2 Taster
- 5×5 LED Matrix (rot, dimmbar)
- Lichtsensor (über die LEDs der LED Matrix
- Temperatursensor
- Bluetooth BLE 4.0
- USB Controller (seriell, Massenspeicher) ARM Cortex M0+ CPU, 128kB Flash, NXP MKL26Z128VFM4 (M26H7V)
- SPI über den Erweiterungs Port
- I2C über den Erweiterungs Port
- 6..17 IO Pins (je nach Anwendung) über den Erweiterungs-Port, 6x Analog, 17x Digital, 3x Touch Inputs(ähnlich dem Makey Makey)
Der Erweiterungs Stecker ist leider nicht sehr bastelfreundlich ausgelegt. Über 4mm Bananenstecker bzw. Krokoklemmen sind nur 3 IO Pins erreichbar dazu 3V und GND. Das reicht für einfache Experimente. Wer mehr möchte sollte bei der Bestellung gleich das Edge Connector Breakout Board mit bestellen oder eines der vielen Experimentiert Kits . Ich habe mich für das Prototyping Kit entschieden. Pin Belegung
Die Pin Belegung des Erweiterungs-Port:
Quelle: microbit.co.uk
Wie man sieht, sind nicht alle 17 IO Pins verfügbar. Einige sind schon durch die LED Matrix und Taster belegt. So bleiben letztendlich je nach Anwendung nur 6 bis 17 Ports zur freien Verwendung. Dazu kommen noch die beiden Pins des I2C Bus dazu. Das sollte für viele Anwendungen ausreichend sein. Ansonsten gibt es diverse Port Expander ICs für I2C und SPI.
Pin Funktion Sonderfunktion Besonderheiten P0 analog, digital, touch für Krokoklemmen, 4mm Bananenstecker P1 analog, digital, touch für Krokoklemmen, 4mm Bananenstecker P2 analog, digital, touch für Krokoklemmen, 4mm Bananenstecker P3 analog in LED Col. 1 P4 analog in LED Col. 2 P5 digital Button A P6 digital LED Col. 9 P7 digital LED Col. 8 P8 digital P9 digital LED Col. 7 P10 analog in LED Col. 3 P11 digital Button B P12 digital P13 digital, SCK SPI Takt P14 digital, MISO SPI Data In P15 digital, MOSI SPI Data Out P16 digital P19 SCL I2C Takt P20 SDA I2C Daten
Weitere Informationen zur micro:bit Hardware findet man:
[Lancaster University Github]
Software
Programmiert werden kann der micro:bit mit einer Reihe von Online IDEs, die einfach im Browser gestartet werden. Dazu muss nichts installiert werden. Einfach im Browser den gewünschten Editor auswählen und loslegen. Das Programm wird online übersetzt und das compilierte Binary kann dann heruntergeladen werden. Per Drag & Drop werden die Binarys dann mittels File Manager auf den micro:bit Laufwerk geladen, dass beim Anstecken des micro:bit über ein Micro USB Kabel sichtbar wird. Der micro:bit kann auch über Bluetooth vom Smartphone/Tablet aus progammiert werden. Dazu wird die micro:bit App für Android bzw. Apple iOS benötigt. Nach kurzer Zeit startet der Prozessor dann mit dem neuen Programm.
Alle Editoren basieren auf der Laufzeitumgebung micro:bit DAL (Device Abstraction Layer) der Universität Lancaster. Die Laufzeitumgebung wiederum basiert auf der ARM mbed IoT Device Plattform und der Nordic nRF51 Plattform. Online Editoren
Es gibt eine ganze Reihe von Online Editoren, die Browser basiert arbeiten. Vorteil: man benötigt keine Cross Compiler Umgebung, muss nicht installieren. Zu den derzeit verfügbaren Online Editoren gehören:
- Code Kingdoms JavaScript, ein weiterer JavaScript Interpreter
- Microsoft PXT, ein JavaScript Editor
- Microsoft Block Editor, eine rein grafische Drag&Drop Programmierumgebung
- Microsoft Touch Develop
- MicroPython, ein Python Interpreter
- mbed C++