Lernpfad:Das micro:glow/6: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{NNavigation}}
{{NNameAnzeigen}}{{NNavigation}}
== Funksignale versenden und darauf reagieren ==
== Funksignale versenden und darauf reagieren ==
Übernimm das folgende Programm in die Datei des Nebenprojekts und spiele sie auf den {{micro:bit}}.
Übernimm das folgende Programm in die Datei des Nebenprojekts und spiele sie auf den {{micro:bit}}:
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
from microbit import *
from microbit import *
Zeile 10: Zeile 10:


while True:
while True:
if button_a.is_pressed():
    if button_a.is_pressed():
radio.send(str(randint(0,9)))
        radio.send(str(randint(0,9)))


incoming = radio.receive()
    incoming = radio.receive()
if incoming:
    if incoming:
display.show(incoming)
        display.show(incoming)
</syntaxhighlight>
</syntaxhighlight>
{{Aufgabe:Start|Icon=MuEditor.png}}
{{Aufgabe:Start|Icon=Thonny.png}}
Analysiere das Programm und schreibe eine Erklärung für jeden Befehl als Kommentar in das Programm. (Kommentare beginnen immer mit <code>#</code> und werden beim Starten des Programms nicht mit ausgeführt.)
Analysiere das Programm und schreibe eine Erklärung für jeden Befehl als Kommentar in das Programm. (Kommentare beginnen immer mit <code>#</code> und werden beim Starten des Programms nicht mit ausgeführt.)


Zeile 26: Zeile 26:
# Was passiert, wenn kein Signal gesendet wurde?
# Was passiert, wenn kein Signal gesendet wurde?
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Hinweis|Wenn andere Gruppen auch an diesem Nebenprojekt arbeiten, dann wird dein {{micro:bit}} auch auf die Signale der anderen Geräte reagieren.}}
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
Zeile 38: Zeile 39:


while True:
while True:
if button_a.is_pressed():
    if button_a.is_pressed():
         # Der Befehl "send" sendet einen Text per Funk.
         # Der Befehl "send" sendet einen Text per Funk.
         # Die Zufallszahl muss daher erst mit dem "str" Befehl
         # Die Zufallszahl muss daher erst mit dem "str" Befehl
         # in einen Text umgewandelt werden.
         # in einen Text umgewandelt werden.
radio.send(str(randint(0,9)))
        radio.send(str(randint(0,9)))


# Das Radiomodul wartet auf eine Nachricht.
    # Das Radiomodul wartet auf eine Nachricht.
     # Kommt keine, dann wird "None", also "Nichts"
     # Kommt keine, dann wird "None", also "Nichts"
     # zurück gegeben.
     # zurück gegeben.
incoming = radio.receive()
    incoming = radio.receive()
     # Prüfen ob "Nichts" oder "Etwas" empfangen wurde.
     # Prüfen ob "Nichts" oder "Etwas" empfangen wurde.
if incoming:
    if incoming:
    # Die empfangene Nachricht anzeigen
        # Die empfangene Nachricht anzeigen
display.show(incoming)
        display.show(incoming)
</syntaxhighlight>
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}

Aktuelle Version vom 23. Januar 2024, 12:17 Uhr

Funksignale versenden und darauf reagieren

Übernimm das folgende Programm in die Datei des Nebenprojekts und spiele sie auf den micro:bit:

from microbit import *
from random import randint
import radio

radio.on()

while True:
    if button_a.is_pressed():
        radio.send(str(randint(0,9)))

    incoming = radio.receive()
    if incoming:
        display.show(incoming)
Arbeitsauftrag

Analysiere das Programm und schreibe eine Erklärung für jeden Befehl als Kommentar in das Programm. (Kommentare beginnen immer mit # und werden beim Starten des Programms nicht mit ausgeführt.)

Beantworte vor allem folgende Fragen:

  1. Wie wird das Funkmodul aktiviert?
  2. Wie werden Informationen per Funk gesendet?
  3. Wie können Funksignale empfangen werden?
  4. Was passiert, wenn kein Signal gesendet wurde?
 
Wenn andere Gruppen auch an diesem Nebenprojekt arbeiten, dann wird dein micro:bit auch auf die Signale der anderen Geräte reagieren.
Lösung
from microbit import *
from random import randint
# Das Modul "radio" importieren
import radio

# Der Befehel "on" im "radio" Modul
# aktiviert das Funkmodul
radio.on()

while True:
    if button_a.is_pressed():
        # Der Befehl "send" sendet einen Text per Funk.
        # Die Zufallszahl muss daher erst mit dem "str" Befehl
        # in einen Text umgewandelt werden.
        radio.send(str(randint(0,9)))

    # Das Radiomodul wartet auf eine Nachricht.
    # Kommt keine, dann wird "None", also "Nichts"
    # zurück gegeben.
    incoming = radio.receive()
    # Prüfen ob "Nichts" oder "Etwas" empfangen wurde.
    if incoming:
        # Die empfangene Nachricht anzeigen
        display.show(incoming)