Funk

Der Micro:bit verfügt über eine Bluetooth Lowe Energy (BLE) Antenne, die zum Senden und Empfangen von Nachrichten genutzt werden kann.

../_images/radio.png

Link zur englischsprachigen MicroPython-Dokumentation

Grundfunktionen

Vorbereitung

Bevor du den Funk benutzen kannst, darfst du nicht vergessen, das Modul radio zu importieren und den Funk mit radio.on() einzuschalten. Sobald der Funk eingeschaltet ist, kannst du damit Nachrichten von jedem anderen micro:bit in Reichweite empfangen:

from microbit import *
import radio

radio.on()

Da dieses Modul Strom verbraucht, sollte es, wenn es nicht mehr benötigt wird mittels radio.off() wieder ausschalten.

Einstellen des Kanals (Funkgruppe)

Wenn du nur Nachrichten innerhalb einer Gruppe von Geräten teilen willst, dann muss jeder micro:bit in der Gruppe so konfiguriert werden, dass er die gleiche Kanalnummer besitzt. Die Kanalnummer muss eine Zahl zwischen 0 und 100 sein:

# Wähle die Kanalnummer 19
radio.config(channel=19)

Es ist wichtig, dies zu tun, besonders wenn du dich in einem Raum mit anderen Leuten, die auch ihre micro:bits benutzen, befindest, weil dein micro:bit sonst alle Nachrichten in der Nähe mitbekommt und das ist nicht das, was du normalerweise willst.

Einstellen der Sendeleistung

Zum Schluss solltest du die Sendeleistung für den Funk einstellen. Standardmäßig sendet dein micro:bit auf der Leistungsstufe 0, was bedeutet, dass deine Nachrichten nicht sehr weit übertragen werden. Die Sendeleistung kann ein Wert zwischen 0 und 7 sein.:

# Sendeleistung auf 7 stellen
radio.config(power=7)

Eine Nachricht senden und empfangen

Jetzt bist du bereit, eine Nachricht zu senden oder zu empfangen. Du kannst eine Zeichenkette mit einer Länge von bis zu 250 Zeichen senden:

message_to_master = "Zwischen uns funkt es!"

radio.send(message_to_master)

Empfange eine Nachricht:

message_received = radio.receive()

Alle Teile zusammengefügt

from microbit import *
import radio

radio.on()
radio.config(channel=19)        # Wähle deine eigene Kanalnummer
radio.config(power=7)           # Setze das Signal auf die volle Stärke

message_to_master = "Zwischen uns funkt es!"

# Event loop.
while True:
        radio.send(message_to_master)
        incoming = radio.receive()
        if incoming is not None:
            display.show(incoming)
            print(incoming)
        sleep(500)

Wenn du die eingehende Nachricht ausgibst, wirst du sehen, dass sie manchmal den Wert None enthält. Das liegt daran, dass der micro:bit manchmal nach einer Nachricht sucht, aber noch nichts angekommen ist. Wir können diese None-Ereignisse ignorieren, indem wir prüfen, ob incoming gleich None ist und dann ganz einfach nichts ausgeben.

Verbindung zum Smartphone

Mit Hilfe der microbit Bluetooth Antenne ist es möglich, deinen micro:bit mit deinem Telefon zu verbinden und drahtlos mit dem micro:bit zu kommunizieren. Allerdings unterstützt MicroPython diese Fähigkeit aufgrund mangelnder RAM-Kapazität nicht.

Übungsaufgaben

  • Sende jedes Mal eine Nachricht, wenn die Taste A gedrückt wird.

  • Du benötigst für diese Aufgabe 2 micro:bits. Programmiere einen micro:bit, um Nachrichten zu empfangen und gib die empfangene Nachricht mit der Methode print() aus. Lass diesen micro:bit mit einem USB-Kabel an deinem Computer angeschlossen. Programmiere den andere micro:bit so, dass er die Beschleunigungsmesserwerte oder die Temperaturmesswerte jede Sekunde als Nachricht sendet. Trenne diesen micro:bit vom Computer und benutze eine Batterie, um ihn zu betreiben. Glückwunsch! Du hast einen Datenlogger erstellt!