BBC Microbit Grundlagen

Aus eLAB Wiki
Wechseln zu: Navigation, Suche

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)

TopView

BackView

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:

Pinbelegung

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++