Seit mehr als einem Jahr ist der BBC micro:bit genannte Mikrocontroller der BBC verfügbar. In Deutschland hat sich die gemeinnützige Calliope GmbH das Ziel gesteckt, mit dem Calliope mini einen für die Anforderungen der Grundschule geeigneten Mikrocontroller bereit zu stellen.
Um das erste Jahr zu feiern, hat die BBC Zahlen veröffentlicht, die die positiven Auswirkungen des BBC micro:bit unter Schülern und Lehrer in Großbritannien zum Gegenstand hatten [1]. Von Heise wurde bereits im letzten Herbst eine Variante des Calliope mini vorgestellt [2] und von zahlreichen Kommentaren begleitet. Nun sind auch die Unterstützer der Startnext-Kampagne, der größten Crowdfunding-Plattform in Deutschland, Österreich und der Schweiz an der Reihe, mit dem finalen Calliope mini v1.0 beliefert zu werden [3].
Ob man mit dem Calliope mini die vielleicht größtmögliche Umwälzung des deutschen Schulsystems in der Hand hält, wie Patrick Beuth in der Zeit schreibt [4], kann ich nicht beurteilen. Ich möchte an dieser Stelle einen Blick auf die mit beiden Systemen zur Verfügung stehende Technik werfen sowie Gemeinsamkeiten und Unterschiede verdeutlichen.
Mikrocontroller-Boards
Beide Mikrocontroller-Boards sind technisch vergleichbar ausgestattet und weisen als Kern einen nRF51822 Mikrocontroller von Nordic Semiconductors auf. Der nRF51822 ist ein Multiprotokoll-System-on-Chip (SoC), das sich ideal für Bluetooth Low Energy (BLE) und Ultra-Low-Power-Wireless-Anwendungen bei 2,4 GHz eignet. Kern des nRF51822 SoC ist eine 32-bit-ARM-Cortex-M0-CPU mit 256 KB Flash-Speicher und 16 KB RAM. Ein eingebetteter 2,4-GHz-Transceiver unterstützt sowohl BLE als auch den Nordic Gazell 2,4-GHz-Protokoll-Stack. Zusätzlich ist noch ein NXP MKL26Z (Cortex-M0+) auf den Boards, der als Interface-Prozessor für den USB-Port dient.
Die Stromversorgung der beiden Boards erfolgt über einen Micro-USB-Anschluss, der auch zur Datenübertragung genutzt wird, oder einen JST-Anschluss für eine Batterie.
Wenn auch im Kern sehr vergleichbar, kommen die beiden Mikrocontroller-Boards doch in sehr unterschiedlicher Form daher. Bild 1 zeigt beide Boards im direkten Größenvergleich.
Beim BBC micro:bit ist an der Unterkannte eine Platinensteckerleiste mit GPIO-Anschlüssen vorhanden, von denen drei eine Verbindung mittels Krokodilklemmen oder Bananensteckern ermöglichen. Verschiedene dieser Anschlüsse sind über einen Analog-Digital-Umsetzer (ADC) als analoge Eingänge sowie für eine Kommunikation über I²C oder SPI nutzbar. Zwei weitere über Krokodilklemmen beziehungsweise Bananenstecker zugängliche Kontakte (3 V/GND) stellen eine Stromversorgung für externe Hardware bereit.
Diese Platinensteckerleiste ermöglicht eine einfache Verbindung mit Erweiterungsboards. Das BBC micro:bit Edge-Connector-Breakout-Board ist eine solche Erweiterung. Es gibt aber weitere, auf die ich noch verweisen werde.
Beim Calliope mini wurde diese Platinensteckerleiste nicht übernommen, da wegen der viel zu eng liegenden Kontakte im Schuleinsatz mit ständigen Kurzschlüssen durch die Schüler gerechnet werden müsste. Außerdem konnten bei einer notwendigen Anpassung noch Bauteile vorgesehen werden, die gerade im Schuleinsatz tolle Experimente erlauben. Hier sind insbesondere der Lautsprecher, eine RGB-LED, ein Mikrophon und ein Motortreiber (H-Brücke) zu nennen. Zusätzlich stellen die beiden Grove-Connectoren einen I2C-Bus, einen UART-Anschluss sowie einen analogen Eingang zur Kontaktierung von Sensoren oder Aktoren des umfangreichen Grove-Systems zur Verfügung. Eine gute Übersicht zum Grove-System bietet [5].
Obwohl bei den Anpassungen großer Wert auf maximale Kompatibilität zum britischen Vorbild gelegt wurde, ist diese durch eine veränderte Pinbelegung nur bedingt erreicht worden.
Eine vergleichende Übersicht zu den technischen Daten der beiden Mikrocontroller-Boards zeigt Tabelle 1.
BBC micro:bit | Calliope mini | |
---|---|---|
CPU | Nordic nRF51822 | |
Clock | 16 MHz, 32.768 kHz | |
Flash | 256 KB | |
RAM | 16 KB | |
Communication | BLE 2,4 GHz & Antenne | |
Buttons | A & B & Reset | |
LED Matrix | 5 × 5 | |
LED | Status-LED | RGB LED |
IO | P0 - P22 (I2C, SPI, UART) | P0 - P25 (I2C, SPI, UART) |
USB | Micro-USB Plug | |
Batterie | LiPo Battery Plug | |
Sensoren | Freescale MMA8652, 3-Achsen-Beschleunigungsmesser Freescale MAG3110, 3-Achsen-Magnetometer (On-Chip) Temperatursensor LED als Lichtsensor | Bosch BMX055, 9-Achsen-Beschleunigungsmesser, Gyroscope und Magnetometer |
Peripherie | - - - | Mikrofon, Lautsprecher 2 Grove-Verbinder (I2C, UART, Analog) TI Motortreiber DRV8837 zum Anschluss von zwei Motoren |
Stromversorgung | 3,3 V, GND | |
Zubehör | Edge Conn. Breakout Board Servo:Lite Board AMP:BIT class D amplifier micro:pixel Edge 1×10 WS2812B SparkFun weather:bit SparkFun moto:bit Bit:2:Pi Bit:Bot Robot | nein |
Community | vorhanden | im Aufbau |
Programmiersprachen | JavaScript Blocks Editor, MicroPython, C++, NEPO | JavaScript Blocks Editor, NEPO, (MicroPython), (C++) |
Preis (EXP-Tech) | EUR 16,85 | EUR 35,00 |
Tabelle 1: Technische Daten BBC micro:bit & Calliope mini.
Neben dem bereits beschriebenen Formfaktor liegen die Unterschiede bei den eingesetzten Sensoren. Durch den Einsatz des BMX055 von Bosch auf dem Calliope mini konnten die beiden Freescale-Sensoren (MMA8652, MAG3110) auf dem BBC micro:bit abgelöst werden. Bei der Peripherie gibt es die durch den Anpassungsprozess gewünschten Erweiterungen, die beim BBC micro:bit so nicht vorhanden sind.
Allerdings ist beim Zubehör der BBC micro:bit mit seiner klassischen Platinensteckerleiste klar im Vorteil. Hier ist durch diese Form des Interfaces und die längere Zeit am Markt eine Vielzahl an Erweiterungsmodulen für die unterschiedlichsten Anwendungen entstanden. In Tabelle 1 sind davon nur einige beispielhaft gelistet.
Tabelle 2 zeigt die unterschiedliche Pinbelegung von BBC micro:bit und Calliope mini. Diese müssen bei der Portierung von Programmen entsprechend berücksichtigt werden.
nRF51822 | micro:bit | Calliope mini |
---|---|---|
P0.00 | SCL | P0 |
P0.01 | P2 | P1 |
P0.02 | P1 | P2 |
P0.03 | P0 | P3 (MIC) |
P0.04 | COL1 | P4 (LED_C1) |
P0.05 | COL2 | P5 (LED_C2) |
P0.06 | COL3 | P6 (LED_C3) |
P0.07 | COL4 | P7 (LED_C4) |
P0.08 | COL5 | P8 (LED_C5) |
P0.09 | COL6 | P9 (LED_C6) |
P0.10 | COL7 | P10 (LED_C7) |
P0.11 | COL8 | P11 (LED_C8) |
P0.12 | COL9 | P12 (LEDC_9) |
P0.13 | ROW1 | P13 (LED_R1) |
P0.14 | ROW2 | P14 (LED_R2) |
P0.15 | ROW3 | P15 (LED_R3) |
P0.16 | P16 | P16 (TAST_B) |
P0.17 | BTN A | P17 (TAST_A) |
P0.18 | P18 | P18 (RGB LED) |
P0.19 | TGT nRST | P19 (SCL) |
P0.20 | P20 | P20 (SDA) |
P0.21 | MOSI | P21 (BMX055 INT) |
P0.22 | MISO | P22 |
P0.23 | SCK | P23 |
P0.24 | TGT TxD | P24 (TxD) |
P0.25 | TGT RxD | P25 (RxD) |
P0.26 | BTN B | P26 (Rx) |
P0.27 | ACC INT2 | P27 (Tx) |
P0.28 | ACC INT1 | P28 |
P0.29 | MAG INT1 | P29 |
P0.30 | SDA | P30 |
Tabelle 2: Pinbelegung BBC micro:bit und Calliope mini.