Der BBC micro:bit – Teil 2: Programmieren mit Code Kingdoms JavaScript

Im zweiten Teil der micro:bit Reihe geht es nun endlich los mit der Programmierung des BBC micro:bit. Der erste Online Editor mit dem ich die ersten Erfahrungen sammeln konnte war der Code Kingdoms JavaScript Editor.

Der Code Kingdoms JavaScript Editor nutzt ein JavaScript Subset, hat einen relativ kleinen Befehlsumfang, bietet aber eine einfache Möglichkeit zum Erstellen der ersten micro:bit Programme.

Einsteiger Beispiele

Zunächst einige Einsteiger Beispiele, die ich für jeden der hier vorgestellten Editoren zeigen werde.

Hallo Welt

Der Klassiker der Programmierung ist das Hallo Welt Programm. Damit wird gezeigt wie einfach es ist, einen beliebigen Text auszugeben.

code-kingdom-hello.jpg

Die Funktion microbit.say zeigt den gewünschten Text auf der 5×5 LED Matrix an. Ist der Text größer als die Anzeige, wird automatisch gescrollt. Das ist das übliche Verhalten aller Editoren für den micro:bit.

Tastenabfrage

Das nächste Beispiel nutzt die beiden Tasten A und B um ein fröhliches (Taste A) bzw. trauriges (Taste B) Gesicht anzuzeigen. Das Programm besteht aus den Event Funktionen onPressA() und onPressB(), die automatisch aufgerufen werden, wenn eine der Tasten gedrückt wurde. Die Funktion microbit.draw() gibt dann ein Bitmuster auf der LED Matrix aus.

Kleiner Tipp:
Die Bit Muster lassen sich im grafischen Editor sehr viel leichter erstellen, als im Text Editor.

code-kingdom-happy-sad.jpg

Beschleunigungssensor

Beim nächsten Beispiel handelt es sich um einen elektronischen Würfel. Fast wie bei einem echten Würfel, wird der mcro:bit geschüttelt, bevor eine neue Zufallszahl ermittelt und angezeigt wird.

code-kingdom-dice.jpg

Die Funktion random.number() generiert eine Zufallszahl zwischen 1 und 6, wenn das micro:bit Board geschüttelt wird. Hierbei wird von der Event-gesteuerten Programmierung durch JavaScript Gebrauch gemacht. Die Funktion ist ein Event onShake() wird automatisch aufgerufen, sobald der micro:bit geschüttelt wird. Die erzeugte Zahl wird dann auf der LED Matrix angezeigt. Ein elektronischer Würfel, der den Beschleunigungssensor auswertet. Genial einfach.

Fortgeschrittene Programme

Nun wird es etwas kniffliger. Hier sind ein paar fortgeschrittene Programm-Beispiele, die mit dem Code Kingdoms Editor erstellt wurden.

Wasserwaage

Eine elektronische Wasserwaage lässt sich mit Hilfe des Beschleunigungssensors des micro:bit natürlich auch recht einfach erstellen.

Auch bei diesem Programm wird der Beschleunigungssensor benutzt, diesmal für eine Wasserwaage. Dazu wird die TiltX() bzw. TiltY() Funktion verwendet. Diese Funktionen geben als Rückgabewerte die Zahlen 0..4 zurück. Ein Wert von 2 für TiltX und TiltY bedeutet dabei, das das Board flach auf dem Tisch liegt. Das entspricht zufällig auch den Koordinaten für die mittlere LED der LED Matrix. Die Rückgabewerte der Tilt Funktionen lassen sich also 1:1 als Koordinaten der einzelnen LEDs der LED Matrix abbilden.

wasserwaage

Zugegeben, die Genauigkeit lässt zu Wünschen übrig. Aber es geht auch eher darum den Beschleunigungssensor z.B. zur Spielesteuerung zu verwenden. Es gibt natürlich auch Funktionen die den genauen Wert der Beschleunigungssensor zurückgeben.

Kompass

Das letzte Programm ist eine Kompass Anzeige. Dazu wird der Kompass Sensor verwendet. Der Kompass muss vor der ersten Verwendung erst mal kalibriert werden. Das geschieht in der Funktion microbit.calibrateCompass(). Beim ersten Start des Programmes erfolgt zunächst die Aufforderung einen Kreis zu zeichnen (Draw a circle). Dazu muss das Board in alle Richtungen gekippt werden, bis alle äußeren LEDs einen Kreis bilden. Damit ist die Kalibrierung abgeschlossen. In einer Enlosschleife wird dann der Kompasswert microbit.bearing gelesen und durch 40 geteilt. Das Ergebnis der Division ist (gerundet) ein Wert zwischen 0..8 und wird mit einem Pfeil mit der Richtung zum magnetischen Nordpol angezeigt.

code-kingdom-compass.jpg

Fazit

Der Code Kingdoms JavaScript Editor biete einen guten Einstieg in die Programmierung des micro-:bit. Allerdings hat der Editor auch einige Macken, die mir so aufgefallen sind:

  • Es fehlen Befehle zur Servo Ansteuerung
  • Im Grafik Modus sind die verfügbaren Befehle umständlich über 3 Untermenüs verteilt, man muss ständig suchen
  • PWM (Analog Out) und Analog In geht nur auf den Pins 0,1,2. es gibt aber viel mehr analoge IOs
  • Es ist mir reproduzierbar gelungen, mit dem graphischen Editor Code zu erzeugen, der sich nicht übersetzen lässt

Trotz aller Mankos lassen sich damit schon recht eindrucksvolle Programme erstellen. Leider kann man mit einem bestehenden Programm nicht einfach den Editor wechseln. Obwohl man mit dem Microsoft PXT auch in JavaScript programmiert, sind die Dialekte nicht kompatibel zueinander.

Links

Die weiteren Teile der micro:bit Serie:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

eins + acht =