In diesem Beitrag möchte ich dir zeigen wie du das Infrarot Modul an dem BBC micro:bit betreiben kannst.
Ein sehr ähnliches Infrarot Modul habe ich bereits für den Arduino in dem Beitrag Arduino Lektion 20: IR Fernbedienung auslesen ausgiebig vorgestellt, jedoch unterscheidet sich die Programmierung am BBC micro:bit deutlich vom Arduino.
Bezug des Infrarot Modules
Wie bereits erwähnt ist das Infrarot Modul Bestandteil des Microbit Starter Kit welches du im Shop von digitspace.com für knapp 31$ findest.
Aufbau des Infrarot Modules
Das Infrarot Modul hat eine Abmaße (L x B x H) von 3,5cm x 2,5cm x 1,5cm. Auf der linken Seite verfügt das Modul über eine 3 polige JST Buchse und auf der rechten Seite über die Infrarot Diode.
Aufbau der Schaltung
Für die Schaltung verwende ich neben dem IR Modul noch zusätzlich einen Piezo Buzzer und natürlich die mitgelieferte Infrarot Fernbedienung.
Der Vorteil bei dem Microbit Starter Kit ist das alle benötigten Kabel beiliegen. (Jedoch ist kein BBC micro:bit und Datenkabel dabei.)
Der Microcontroller wird in das Expansionboard gesteckt so das die Schrift “micro:bit” in Richtung der Pins zeigt.
Der Piezo Buzzer wird an den Pin P0, das IR Modul an den Pin P8 angeschlossen.
Programmieren
Zum programmieren verwende ich die Entwicklungsumgebung MakeCode. Dieses Tool ist kostenfrei unter https://makecode.microbit.org erhältlich und kommt mit sehr vielen Erweiterungsmodulen daher.
einrichten der Entwicklungsumgebung MakeCode
Bevor wir das IR Modul verwenden können, müssen wir uns eine Erweiterung hinzufügen damit wir die Blöcke setzen können. Ich nutze hier die Bibliothek von OSOYOO welche unter der Adresse https://github.com/osoyoo/OSOYOO_IR die Bibliothek für das Infrarot Modul bereitstellen.
einbinden der IR Remote Bibliothek von OSOYOO
Über den Menüpunkt “Erweiterungen” gelangt man auf eine neue Seite wo man entweder nach einer Bibliothek suchen oder eine Adresse eingeben kann. In unserem Fall geben wir die Adresse zum GitHub Repository https://github.com/osoyoo/OSOYOO_IR ein. Es sollte nun eine Bibliothek angezeigt werden welche wir hinzufügen indem wir auf die Kachel klicken.
Es sollte nun der Menüeintrag “OSOYOO_IR” mit 2 neuen Blöcken existieren.
Troubleshooting – Fehlerhafte Darstellung der Blöcke
Sollten die Blöcke Fehlerhaft dargestellt werden so muss einmal der Cache im Browser (inkl. Cookies) gelöscht werden. Alternativ würde ich empfehlen den Code im “privaten Modus” zu erstellen.
ein einfaches Beispiel – steuern der LED Matrix
Zunächst möchte ich dir zeigen wie du verschiedene Zeichen auf der LED Matrix des BBC micro:bit mit der IR Fernbedienung einstellen kannst.
Zunächst müssen wir im Block “Start” definieren an welchem Pin das IR Modul gesteckt wurde. In meinem Fall habe ich das Modul an den Pin P8 gesteckt.
Danach benötigen wir nun für jeden Taster (den wir verwenden wollen) auf der Fernbedienung ein Block. Ich möchte zunächst 3 verschiedene Zeichen anzeigen und die Tasten “0”, “1” und “2” nutzen.
Du kannst auch alternativ dein Programm in JavaScript und Python schreiben, jedoch benötigst du da schon mehr Erfahrung in der Programmierung von Microcontroller.
Video
incrementieren & decrementieren einer Variable mit der IR Fernbedienung
Mit den Tasten “+” & “-” wollen wir zunächst eine Variable incrementieren (um 1 erhöhen) und decrementieren (um 1 verringern).
Aufbau des Programmes
Zunächst definieren wir wieder in dem Startblock dass, das IR Modul am Pin8 angeschlossen ist. Des Weiteren definieren wir eine Variable “counter” und setzen diese initial auf “1”. Wenn die Taste “Minus” auf der Fernbedienung betätigt wird, wird diese Variable um die Zahl 1 verringert und auf der LED Matrix ausgegeben. Wenn die Taste “Add” betätigt wird (die Taste “+”) dann soll die Variable um die Zahl 1 erhöht und auf der LED Matrix ausgegeben werden.
Video
Sollte das Video und vor allem das Bild vom Code stark verpixelt sein, so wähle im YouTube Player die Qualität 1080P.
ausgeben von Tönen in verschiedenen Frequenzen
Nachdem wir nun unsere IR Fernbedienung ansteuern bzw. mit der Fernbedienung auf dem Microcontroller Events ausführen können möchten wir einen Piezo Buzzer ansteuern. Im letzten Kapitel haben wir eine Variable incrementiert bzw. decrementiert. Dieses wollen wir nun nutzen und einen Ton / Frequenz ausgeben welcher aus der Variable resultiert. Damit eine Änderung an der Variable akustisch erkennbar ist erhöhen / verringern wir jeweils um 50 Schritte. Wenn jedoch die Frequenz kleiner als 500 ist soll der Text “min. 500” und wenn die Frequenz größer als 5000 ist soll “max. 5000” auf der LED Matrix ausgegeben werden.
Aufbau des Programmes
Zunächst definieren wir wieder dass, das IR Modul am Pin P8 gesteckt ist. Der Piezo Buzzer wird an den Pin P0 gesteckt.
Du findest dieses komplette Projekt auch unter folgendem Link https://makecode.microbit.org/_gdxYTVba1bV6.
Solltest du den Piezo Buzzer an einen anderen Pin anschließen so musst du zusätzlich im Startblock diesen Pin definieren. Hier findest du unter “… mehr” den Block “analogen Tonausgabepin setzen auf Pin <>” verwenden und dort den Pin aus der Auswahlliste wählen (siehe Grafik).