#05 Senden/ Empfangen

Aktivität: Senden/ Empfangen – Bluetooth Datenübertragung
Schwierigkeitsgrad: Mittel

Man braucht dafür 2 Microbits, die sich in derselben Gruppe befinden.

Öffne https://makecode.microbit.org um den Editor zu starten. Du kannst entweder blockbasierend (Abbildungen links) oder in JavaScript (Abbildungen rechts) arbeiten.

Schritt 1 (Microbit A):
Wähle unter dem hellrosa gefärbten Begriff Funk den Block setze Gruppe 1 (radio.setGroup(1)) und ziehe ihn auf die leere Fläche rechts. Dort sind schon die blauen Klammern beim Start und dauerhaft vorbereitet. Anschließend lösche die Klammer dauerhaft, sie wird hier nicht benötigt. Ziehe dazu den Block auf die mittlere Blockbibliothek (Papierkorbsymbol erscheint) und lösche durch loslassen. Ändere die Gruppe auf z.B. 34

Blockbasierend

JavaScript

Schritt 2 (Microbit A):
Ziehe nun unter dem rosa gefärbten Begriff Eingabe den Block wenn Knopf A gedrückt (input.onButtonPressed(…)) auf die leere Fläche rechts und gib gleich den unter dem blau gefärbten Begriff Grundlagen befindlichen Block zeige LEDs (basic.showLeds(…)) dazu. Zeichne dort einen Pfeil nach rechts zur Anzeige der Kommunikationsrichtung ein. Etwa so…

   

Schritt 3 (Microbit A):
Nun warten wir 1000 ms mit dem blauen Block pausiere (ms) 100 (basic.pause(100)), fügen diesen unterhalb des zeige LEDs Blocks ein und ändern diesen auf 1000 ms. Danach senden wir an den zweiten Microbit die Zeichnfolge „diamond“ mit dem hellrosa Befehl sende Zeichenfolge “ “ (radio.sendString(“ „)) und ändern die Zeichenfolge auf diamond. Abschließend zeigen wir noch das soeben gesendete Symbol zur Kontrolle an, nämlich „Diamond“. Das erledigst du mit dem blauen Befehl zeige Symbol ♥ (basic.showIcon(…)) das du noch auf das Symbol umstellen musst.

Schritt 4 (Microbit A):
Nun warten wir nochmals 1000 ms mit dem blauen Block pausiere (ms) 1000 (basic.pause(1000)) und fügen diesen unterhalb des zeige Symbol ♦ Blocks ein. Danach zeigen wir das Ende der Übertragung mit zeige Symbol ü (basic.showIcon(…)) an, bevor wir nach weiteren 1000 ms pausieren alle LEDs durch den Block zeige LEDs (basic.showLeds(…)) löschen.

               

Super, du hast den ersten Teil zum Senden geschafft! Nun geht es weiter zum zweiten Teil, den zum Empfangen der Nachricht.

Schritt 5 (Microbit A):
Ziehe unter dem hellrosa gefärbten Begriff Funk den Block wenn Datenpaket empfangen recievedString (radio.onDataPacketReceived(…)) auf einen leeren Bereich der Fläche rechts und ändere receivedString in diamond. Danach zeigen wir die erfolgreiche Übertragung mit zeige Symbol ü (basic.showIcon(…)) an, bevor wir nach weiteren 1000 ms pausieren das empfangene Symbol anzeigen. Das macht der Block zeige Symbol ♥ (basic.showIcon(…)) den du noch auf das Symbol umstellen musst.

Gratuliere, nun bist du mit dem ersten Microbit des Beispiels Senden/ Empfangen fertig! Nimm dir nun den zweiten Microbit vor bzw. gehe zu deinem Teammitglied.

Schritt 6 (Microbit B):
Wiederhole Schritt 1 auf Microbit B.

Schritt 7 (Microbit B):
Wiederhole die Schritte 2 bis 4. Ändere den Block wenn Knopf A gedrückt (input.onButtonPressed(…)) auf Knopf B. Zeichne im Block zeige LEDs (basic.showLeds(…)) den Pfeil nach links zur Anzeige der Kommunikationsrichtung ein. Ändere den Block sende Zeichenfolge “ “ (radio.sendString(“ „)) auf die Zeichenfolge auf heart und zeige das Symbol mit dem Block zeige Symbol ♥ (basic.showIcon(…)) an.

Schritt 8 (Microbit B):
Wiederhole den Schritt 5. Ändere im Block wenn Datenpaket empfangen recievedString (radio.onDataPacketReceived(…)) receivedString in heart und zeige das Symbol mit dem Block zeige Symbol ♥ (basic.showIcon(…)) an.

Großartig, du hast es geschafft. Gratuliere!

Auf den nächsten beiden Bildern findest du das vollständige Programm für Microbit B (blockbasierend und JavaScript).

              

Und so sieht die Übertragung von A –> B in echt aus.

#04 Audio-Alarm

Aktivität: Audio-Alarm – Kopfhörer oder. Lautsprecher spielt lauten Alarm- externe Verbindung mit Krokodilklemmen
Schwierigkeitsgrad: Mittel

Man braucht dafür Köpfhörer z.B. vom Handy od. einen Lautsprecher der mit 2 Krokodilklemmen mit PIN 0 und GND verbunden wird.
Sieh dir das Beispiel Hack Your Headphones dazu an. 
https://www.microbit.co.uk/blocks/lessons/hack-your-headphones/activity

Öffne https://makecode.microbit.org um den Editor zu starten. Du kannst entweder blockbasierend (Abbildungen links) oder in JavaScript (Abbildungen rechts) arbeiten.

Schritt 1:
Wähle unter dem rosa gefärbten Begriff Eingabe den Block wenn geschüttlet (input.onGesture(Gesture.Shake,…) und ziehe ihn auf die leere Fläche rechts. Dort sind schon die blauen Klammern beim Start und dauerhaft vorbereitet, die nicht benötigt werden und durch ein ziehen auf die mittlere Blockbibliothek (Papierkorbsymbol erscheint) gelöscht werden.

Blockbasierend

JavaScript

Schritt 2:
Ziehe nun unter dem grün gefärbten Begriff Schleifen den Block während wahr mache in die rosa Klammer. z.B. so….


 

Schritt 3:
Da der Alarm wie bei einer Sirene klingen soll, benötigen wir 2 Töne, die abwechselnd gespielt werden bis der Dieb erwischt wird. Benutze unter dem orange gefärbten Begriff Musik den Block spiele Note Mittleres C für 1 Takt (music.playTone(262…)) in die grüne Klammer.

Schritt 4:
Wiederhole den Schritt 3 für den zweiten Ton der Siren und ändere den zweiten Ton auf Hohes C (523) ab. Stelle weiters bei beiden Tönen den Takt auf ½ Takt (BeatFraction.Half), um mehr Aufmerksamkeit zur erzeugen.
z.B. so…

Großartig, du hast es geschafft. Gratuliere!

Anmerkung:
Der Alarm wird durch kurzes Schütteln aktiviert und lässt sich durch Drücken der Reset-Taste auf der Rückseite des Microbit abschalten.

#11 Schatzsuche, Wahrscheinlichkeit

Wahrscheinlichkeiten:

Die theoretische Wahrscheinlichkeit bei 100 Versuchen für Route „1“, „2“ oder „3“ liegt bei jeweils 0,33. Es gibt insgesamt 3 Möglichkeiten („Route 1“, „Route 2“ oder „Route 3“ und somit liegt die berechnete Wahrscheinlichkeit bei 100 Versuchen bei 1/3 oder eben 0,33.

Bei deinem Versuchsprotokoll (ausgefüllte Tabelle) kann das natürlich auch ein wenig anders aussehen (s. Beispiel).

Richtungswahl im Bereich B:

  • Bereich B: Wenn dein Ozobot zum Bereich B gelangt, wird er eine unabhängige und zufällige Entscheidung treffen, welche Route er wählt (1, 2 oder 3).

 

Codes:

  • „fast“: Veränderung der Geschwindigkeit von „cruise“ (gemütlich) auf „fast“ (schnell), damit die Versuchsreihe schneller abläuft.
  • „go left“ (Route 1): Wenn dein Ozobot in den Bereich A kommt, wird er links abbiegen und wieder zur Schatztruhe fahren.
  • „go straight“ (Route 2): Wenn dein Ozobot in den Bereich A kommt, wird er wieder geradeaus zur Schatztruhe fahren.
  • „go right“ (Route 3): Wenn dein Ozobot in den Bereich A kommt, wird er rechts abbiegen und wieder zur Schatztruhe fahren.