Stellvertretung sca 1Mab FS22 micro:bits Radio

  • Radio (BLE)-Modul: Funk-Kommunikation zwischen mehreren micro:bits
  • BLE (Bluetooth Low Energy) vs. Standard Bluetooth:
    • Weniger Daten
    • Weniger Energie
  • Zwei Optionen für ‘private’ Kommunikation:
    • Kanal: Kommunikation über nur 1 Kanal/Frequenz
    • Gruppe: Kommunikation über alle Kanäle/Frequenzen, aber mit Zusatzinfo

Für mehr Info siehe hier:

from microbit import *
import radio
 
radio.on()
 
while True:
    messageIn = radio.receive()
    if messageIn:
        display.scroll(messageIn)
 
    if button_a.is_pressed():
        radio.send("Ciao!")

Arbeitet in 2er Gruppen. Einigt euch darauf, auf welchem Kanal oder in welcher Gruppe ihr (hoffentlich) ungestört kommunizieren wollt.

Aufgabe 1: Geheime Nachricht

Schicke deiner Partnerin eine geheime Nachricht.

Aufgabe 2: Symbol verschicken

Schicke deiner Partnerin ein Symbol:

Achtung, dies ist nicht so einfach, da man nur Strings, nicht aber ein Symbol versenden kann. Möglichkeit: Einigt euch z.B. darauf, dass wenn man eine «1» versendet, ein HAPPY-Smiley und bei einer «2» ein SAD-Smiley anzeigen soll

Zusatzaufgabe: Finde eine Möglichkeit, wie man wirklich ein beliebiges Bild per BLE übertragen kann. Achtung, es ist ein bisschen tricky. Frage die Lehrperson nach Tipps.

Aufgabe 3A: Gemütszustand

Mit linker Taste: zwischen 3 Smiley (HAPPY,MEH,SAD) toggeln können

Achtung: hat noch nichts mit Radio zu tun.

Aufgabe 3B: Gemütszustand

  • Code von 3A erweitern
  • Mit rechter Taste ausgewählten Smiley an Partner schicken

Aufgabe 4: Morsen

Bisher haben wir mit message_in = radio.receive() Nachrichten empfangen. Es gibt aber noch eine zweite Möglichkeit: Mit radio.receive_full() empfängt man nicht nur die eigentliche Textnachricht, sondern auch die Signalstärke. Diese ist auch ein Indiz für die Distanz zwischen zwei micro:bits.

Das folgende Code-Beispiel zeigt, wie man die Textnachricht und die Signalstärke aus der erhaltenen Nachricht herauslesen kann:

message_full = radio.receive_full()
if message_full:
    text = message_full[0]
    signal_strength = message_full[1]

Die Signalstärke (hier signal_strength) ist einfach eine Zahl, die grösser wird, je stärker das Signal ist. Tipp: Printe die Signalstärke in die Konsole (print(signal_strength) und Show serial klicken, um Konsole anzuzeigen) und verfolge, wie sich der Wert verändert, wenn die Distanz verändert wird.

Arbeite wieder in 2er Gruppen. Die Aufgaben können in beliebiger Reihenfolge gelöst werden.

Aufgabe 5: micro:bits in love

Die beiden micro:bits sollen beide ein HAPPY, MEH oder SAD-Smiley anzeigen - je nachdem wie weit sie auseinander sind. Da sie verliebt ineinander sind, sollen sie HAPPY sein, wenn sie möglichst nahe beieinander sind.

Aufgabe 6: Maximale Distanz?

Was ist etwa die maximale Distanz in Sichtweite, über die zwei micro:bits miteinander kommunizieren können? Mache ein Experiment.

  • gf_informatik/sv_sca_mbits_2mab_fs22.1644820857.txt.gz
  • Zuletzt geändert: 2022-02-14 06:40
  • von sca