Nachrichten Senden/ Empfangen Loesung: Unterschied zwischen den Versionen
Zeile 90: | Zeile 90: | ||
===micro:bit B=== | ===micro:bit B=== | ||
− | <li>Wiederhole Schritt 1 auf micro:bit B. <spoiler text="Blöcke">[[Datei:05_block_01.PNG|border|Empfangen und Bestätigen der Übertragung - micro:bit B]]</spoiler></li> | + | <li>Wiederhole Schritt 1 auf micro:bit B. <spoiler text="Blöcke">[[Datei:05_block_01.PNG|border|Empfangen und Bestätigen der Übertragung - micro:bit B]]<pre id="pre4">radio.setGroup(34); |
+ | </pre></spoiler></li> | ||
− | <li>Wiederhole die Schritte 2 bis 4. Ändere den Block "wenn Knopf A gedrückt" auf Knopf B. Zeichne im Block "zeige LEDs" Pfeil nach links zur Anzeige der Kommunikationsrichtung ein. Ändere den Block "sende Zeichenfolge ..." auf die Zeichenfolge "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. <spoiler text="Blöcke">[[Datei:05_block_b_04.PNG|border|Empfangen und Bestätigen der Übertragung - micro:bit B]]</spoiler></li> | + | <li>Wiederhole die Schritte 2 bis 4. Ändere den Block "wenn Knopf A gedrückt" auf Knopf B. Zeichne im Block "zeige LEDs" Pfeil nach links zur Anzeige der Kommunikationsrichtung ein. Ändere den Block "sende Zeichenfolge ..." auf die Zeichenfolge "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. <spoiler text="Blöcke">[[Datei:05_block_b_04.PNG|border|Empfangen und Bestätigen der Übertragung - micro:bit B]]<pre id="pre4"> |
+ | input.onButtonPressed(Button.B, function () { | ||
+ | basic.showLeds(` | ||
+ | . . # . . | ||
+ | . # . . . | ||
+ | # # # # # | ||
+ | . # . . . | ||
+ | . . # . . | ||
+ | `) | ||
+ | basic.pause(1000) | ||
+ | radio.sendString("diamond") | ||
+ | basic.showIcon(IconNames.Heart) | ||
+ | basic.pause(1000) | ||
+ | basic.showIcon(IconNames.Yes) | ||
+ | basic.showLeds(` | ||
+ | . . . . . | ||
+ | . . . . . | ||
+ | . . . . . | ||
+ | . . . . . | ||
+ | . . . . . | ||
+ | `) | ||
+ | }) | ||
+ | </pre></spoiler></li> | ||
− | <li>Wiederhole den Schritt 5. Ändere im Block "wenn Datenpaket empfangen ..." die Zeichenfolge "recievedString" in "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. <spoiler text="Blöcke">[[Datei:05_block_b_06.PNG|383px|border|Empfangen und Bestätigen der Übertragung - micro:bit B]]</spoiler></li> | + | <li>Wiederhole den Schritt 5. Ändere im Block "wenn Datenpaket empfangen ..." die Zeichenfolge "recievedString" in "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. <spoiler text="Blöcke">[[Datei:05_block_b_06.PNG|383px|border|Empfangen und Bestätigen der Übertragung - micro:bit B]] |
+ | <pre id="pre4"> | ||
+ | radio.onReceivedString(function (receivedString) { | ||
+ | if (receivedString == "heart") { | ||
+ | basic.showIcon(IconNames.Yes) | ||
+ | basic.pause(1000) | ||
+ | basic.showIcon(IconNames.Heart) | ||
+ | } | ||
+ | }) | ||
+ | </pre></spoiler></li> | ||
</ol> | </ol> |
Version vom 31. März 2020, 11:38 Uhr
Inhaltsverzeichnis
Schritt für Schritt
Öffne den micro:bit Block-Editor, um ein Programm für den BBC micro:bit zu schreiben: https://makecode.microbit.org/
Man benötigt hier 2 micro:bits (A und B), die sich in derselben Gruppe befinden. Am besten, du arbeitest zu zweit im Team an diesem Beispiel.
MakeCode embedded rendering
radio.setGroup(34);
- Wähle unter dem hellrosa gefärbten Begriff Funk den Block "setze Gruppe 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 Blöcke
- Ziehe nun unter dem rosa gefärbten Begriff Eingabe den Block "wenn Knopf A gedrückt" auf die leere Fläche rechts und gib gleich den unter dem blau gefärbten Begriff Grundlagen befindlichen Block "zeige LEDs" dazu. Zeichne dort einen Pfeil nach rechts zur Anzeige der Kommunikationsrichtung ein. Etwa so… Blöcke
- Nun warten wir 1000 ms mit dem blauen Block "pausiere (ms) 100", fügen diesen unterhalb des "zeige LEDs" Blocks ein und ändern diesen auf 1000 ms. Danach senden wir an den zweiten micro:bit die Zeichenfolge "diamond" mit dem hellrosa Befehl "sende Zeichenfolge ..." 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 ♥" das du noch auf das Symbol ♦ umstellen musst. Blöcke
- Nun warten wir nochmals 1000 ms mit dem blauen Block "pausiere (ms) 1000" und fügen diesen unterhalb des "zeige Symbol ♦" Blocks ein. Danach zeigen wir das Ende der Übertragung mit "zeige Symbol
" an, bevor wir nach weiteren 1000 ms pausieren alle LEDs durch den Block "zeige LEDs" löschen. Blöcke
- Ziehe unter dem hellrosa gefärbten Begriff Funk den Block "wenn Datenpaket empfangen ..." auf einen leeren Bereich der Fläche rechts und ändere "receivedString" in "diamond". Danach zeigen wir die erfolgreiche Übertragung mit "zeige Symbol
" an, bevor wir nach weiteren 1000 ms pausieren das empfangene Symbol anzeigen. Das macht der Block "zeige Symbol ♥" den du noch auf das Symbol ♦ umstellen musst.Blöcke
- Wiederhole Schritt 1 auf micro:bit B. Blöcke
- Wiederhole die Schritte 2 bis 4. Ändere den Block "wenn Knopf A gedrückt" auf Knopf B. Zeichne im Block "zeige LEDs" Pfeil nach links zur Anzeige der Kommunikationsrichtung ein. Ändere den Block "sende Zeichenfolge ..." auf die Zeichenfolge "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. Blöcke
- Wiederhole den Schritt 5. Ändere im Block "wenn Datenpaket empfangen ..." die Zeichenfolge "recievedString" in "heart" und zeige das Symbol mit dem Block "zeige Symbol ♥" an. Blöcke
micro:bit A
Super, du hast den ersten Teil zum Senden geschafft! Nun geht es weiter zum zweiten Teil, den zum Empfangen der Nachricht.
Gratuliere, nun bist du mit dem ersten micro:bit des Beispiels Senden/ Empfangen fertig! Nimm dir nun den zweiten Microbit vor bzw. gehe zu deinem Teammitglied.
micro:bit B
Flussdiagramm (micro:bit A)
Lösung
Eine vollständige Lösung für micro:bit A kannst du hier vergleichen. Block - micro:bit A
Eine vollständige Lösung für micro:bit B kannst du hier vergleichen. Block - micro:bit B