In diesem Beitrag möchte ich an meinen letzten Beitrag Der Einstieg in die Python-Programmierung mit dem BBC micro:bit anknüpfen und dir zeigen, wie du die Sensoren & Aktoren deines BBC micro:bit in Python programmieren kannst.
Das Tool zur Python-Programmierung für den BBC micro:bit ist sehr gut auf Englisch dokumentiert und theoretisch könnte der Beitrag jetzt hier mit einem Verweis auf diese enden. Jedoch möchte ich dir hier Schritt-für-Schritt zeigen, wie du die Sensoren & Aktoren des BBC micro:bit programmierst.
Inhaltsverzeichnis
- Features des BBC micro:bit
- Verwenden der Dokumentation / Reference zum Programmieren des BBC micro:bit
- Sensoren auslesen
- Aktoren ansteuern
Features des BBC micro:bit
Zunächst möchte ich dir die Features des BBC micro:bit auflisten:
- einen Temperatursensor,
- einen Lagesensor,
- einen Kompass (Magnetometer),
- einen „Lichtsensor“,
- ein Mikrofon,
- ein Piezo Buzzer,
- ein Touch Sensor,
- eine drahtlose Schnittstelle
Verwenden der Dokumentation / Reference zum Programmieren des BBC micro:bit
Wie erwähnt findest du unter dem Punkt „Reference“ eine Dokumentation zu den Features vom BBC micro:bit und der Python-Programmierung.


Hier kannst du die Codeschnipsel per Drag’n Drop in den Editor ziehen und so ähnlich wie mit den Blöcken in MakeCode den Quellcode erstellen.
Sensoren auslesen
Lesen wir zunächst die Werte vom Temperatursensor sowie vom Lichtsensor aus und zeigen diese auf der 5×5 LED Matrix an. Das gute ist, wir brauchen für langen Text keinen extra Code schreiben, denn hier brauchen wir lediglich die Funktion „scroll“ aufrufen.
Temperatursensors auslesen und Anzeigen der Werte auf der 5×5 LED Matrix
Der Prozessor nRF52 verfügt über einen Temperatursensor, welcher nachfolgende technische Daten hat:
Eigenschaft | Wert |
---|---|
Messbereich | -40 °C bis 105 °C |
Auflösung | Schritte von 0,25 °C |
Genauigkeit | +/- 5 °C (nicht kalibriert) |
In der Referenz kannst du hier recht einfach den passenden Codeschnipsel in deinen Code einfügen und mit dem Taster „A“ verknüpfen.
from microbit import * # starten der Endlosschleife while True: # Wenn der Taster A gedrückt wurde, dann... if button_a.was_pressed(): # ausgeben der Temperatur auf der LED Matrix display.scroll(temperature())
Lichtintensität auslesen
Der Mikrocontroller hat jetzt keinen extra Lichtsensor, sondern man kann die LEDs der 5×5 Matrix als Lichtsensor verwenden. Wie du das am Arduino machst, habe ich dir bereits im Beitrag Arduino Lektion #101: LED als Lichtsensor erläutert.
Du brauchst hier zusätzlich eine kleine Taschenlampe, um die LEDs der Matrix anzustrahlen!
from microbit import * # starten der Endlosschleife while True: # Wenn der Taster A gedrückt wurde, dann... if button_a.was_pressed(): # Wenn die Matrix mit einer Taschenlampe bestrahlt wird, # dann ist der Wert > 0 ansonsten ist dieser gleich 0 display.scroll(display.read_light_level())
Aktoren ansteuern
Der BBC micro:bit hat als Aktor eine 5×5 LED Matrix sowie einen Piezo Buzzer verbaut. Die LED Matrix habe ich dir ja bereits gezeigt, nun soll es um den Piezo Buzzer gehen. Über diesen kleinen Buzzer kannst du Töne und sogar kleine Lieder abspielen.
Piezo Buzzer & Lichtsensor
Nachfolgend möchte ich dir jetzt zeigen, wie du die Lichtintensität nutzen kannst, um die Frequenz des Piezo Buzzers zu manipulieren.
from microbit import * import music # starten der Endlosschleife while True: # auf dem Piezo Buzzer einen Ton wiedergeben, # der Wert des Lichtsensors wird mit 3 multipliziert damit der Ton höher wird music.pitch(display.read_light_level()*3)
Hallo Stefan,
immer eine Freude deinem Blog zu folgen.
Ich bin ja immer noch auf der Suche nach einer Lösung, wie man über makecode Blöcke so einen „scroll“ von Sensor-Daten für meine Wetterstation umsetzen kann. Ich bin leider kein Pythonierer und will auch nicht noch damit anfangen.
VG ULLI
Hallo Stefan,
gleiches wäre natürlich auch toll für den neuen Arduino UNO R4 Wifi, der ja auch mit einer LED-Matrix neu auf dem Markt ist.
Wie kann ich bei dem Arduino denn Messwerte einer Wetterstation auf die Matrix bringen und ggf. die Messwerte dort scrollen?
Freue mich schon auf dein Ideen dank deiner großen Erfahrung mit diesen Boards.
Viele Grüße ULLI