Morse2: Unterschied zwischen den Versionen
Zeile 93: | Zeile 93: | ||
* Man kann sich vorstellen, dass hier sehr exakte Abmachungen getroffen werden müssen, wann sendet wer, wie ist die Antwort, … | * Man kann sich vorstellen, dass hier sehr exakte Abmachungen getroffen werden müssen, wann sendet wer, wie ist die Antwort, … | ||
* Auch alle Fotos vom Mars werden mit genauen Regel Zeichen-für-Zeichen zur Erde geschickt | * Auch alle Fotos vom Mars werden mit genauen Regel Zeichen-für-Zeichen zur Erde geschickt | ||
[[Datei: | [[Datei:Mars_rover.png]] | ||
== [[Datei:Icon_hilfe.png|20px|Icon]] Programm 3: "Kommunikation mit Antwortbestätigung" == | == [[Datei:Icon_hilfe.png|20px|Icon]] Programm 3: "Kommunikation mit Antwortbestätigung" == |
Version vom 18. September 2021, 23:29 Uhr
Übertragen von Geheimcode II
Hallo, wir sind Robi-x01 und Robi-x02 - wir werden uns in diesem Abschnitt einige erweiterte Programmabschnitte ansehen, wie wir beide noch besser und bequemer kommunizieren können.
- Du solltest auf jeden auch im Team mit deinem Partner/deiner Partnerin arbeiten.
- Für die Programme, die wir gemeinsam bearbeiten und verändern unterhalb
Aufgabenstellung
Versucht an "fremden" Programmen neue Funktionen selber zu entdecken. Am allermeisten lernt man dadurch, dass man Systeme, die etwas/stärker über dem eigenen Level liegen, analysiert, sie verändert und/oder sogar ausbaut. In diesem Beispiel werden Einzelfunktionen jetzt nicht mehr detailliert angesprochen, sondern nur mehr Ergebnisse dargestellt.
- Zerlegt die folgenden Programme in Einzelbereiche und versucht durch kleine Änderung die Wirkung oder den Aufgabenbereich des Programms zu erkunden.
- Diskutiert den Sinn der einzelnen Programme und schlagt Änderungen vor.
- Ein Programm ist dann gelungen,
- wenn es möglichst mit wenig Programmcode aus kommt
- wenn es keine Wiederholungen im Programmcode enthält
- wenn es gut lesbar ist
- wenn es ohne große Erklärungen seine Aufgaben erledigt
Materialien
- Zwei BBC Micro:bit (Version V2 oder V1 mit Lautsprecher oder Kopfhörer)
- Papier und Stift
- Das sgedruckte Morsealphabet (ausdruckbar mit rechter Maustaste und Grafik kopieren und drucken)
Zeitaufwand
- 2 - 4 Unterrichtseinheit pro Programm - je nach Funktionsumfang
Schwierigkeitsgrad
und
Kompetenzen
Du solltest bereits
- wie man Daten mit dem Micro:bit anzeigen kann
- den Tastenfunktionen (A und B, A+B) verwenden können
- wissen, wie man Micro:bits verbindet
- wissen, wie man bei verbundenen Micro:bits Daten sendet und empfängt
- wissen, wie man Sound ausgibt
Beim Programmieren lernst bzw. übst du
- Arrays zu verwenden
- Operatoren zu verwenden
- Bedingungen zu verwenden
Unterrichtsfächer
- Werken
- Informatik
- Deutsch
- Physik
Programm 1: "Der Morsecode-Beamer"
Erforderliche Programmierblöcke
- Ein Spiel zu zweit
- Spielt dieses Programm auf 2 Micro:bits und teste die Verbindung beider zueinander!
- Einer ist der Sender, der andere der Empfänger
- Sender: Drücke |Taste A| für die Aufgabe
- Empfänger: Suche den angezeigten Buchstaben in der Morsetabelle
- Führt 10 Versuche durch und tauscht die Rollen
- Wie gut bist du im Erkennen des Morsecodes
Programm 2: "Kommunikation mit Antwortbestätigung"
Versucht nun folgende Abmachung:
- Nur ein Micro:bit ist Sender - der andere ist Empfänger
- Gesendet wird mit der |Taste A| - geantwortet (bestätigt) wird mit |Taste B| (man sendet ein “ok”)
- Möchte man als Empfänger die Nachricht noch einmal - dann drückt man die |Tastenkombination A+B| (man sendet ein “no”)
- Dies versuchen wir nun in ein Programm zu fassen:
- Ganz besonders schwierig und realitätsnahe wird es, wenn ihr in verschiedene Räume geht
- Man sieht an diesem einfachen Beispiel, dass es extrem schwierig ist, eine Kommunikation aufzubauen, wenn Sender und Empfänger nicht in Sprech- und Sichtweite sind
- Sehr oft entstehen Probleme bei der Datenübertragung, wenn die Regeln nicht genau vereinbart wurden.
- Der Fachbegriff für das Erstellen dieser Regeln heißt Handshake
Eine aktuelle Anwendung in der Wissenschaft
- Amerikanische Weltraummission:
- Derzeit befindet sich ein Roboter auf dem Mars, dieser wird mit Befehlen von der Erde gesteuert
- Ein Befehl dauert vom Absenden von der Erde bis zum Empfänger auf dem Mars acht Minuten.
- Man kann sich vorstellen, dass hier sehr exakte Abmachungen getroffen werden müssen, wann sendet wer, wie ist die Antwort, …
- Auch alle Fotos vom Mars werden mit genauen Regel Zeichen-für-Zeichen zur Erde geschickt
Programm 3: "Kommunikation mit Antwortbestätigung"
Blöcke
- Nach Programmstart sollte ein Symbol zeigen, dass der Micro:bit bereit ist
- Ein Morsezeichen (. oder -) sollte per Tastendruck angezeigt werden <spoiler text="Block">
input.onButtonPressed(Button.A, function () { basic.showLeds(` . . . . . . . . . . . . # . . . . . . . . . . . . `) }) input.onButtonPressed(Button.B, function () { basic.showLeds(` . . . . . . . . . . . # # # . . . . . . . . . . . `) })
</spoiler>
- Zwei Micro:bit sollen mit Funk verbunden werden
- Der Funkkanal muss für beide gleich lauten
- Kein anderes Kommunikations-Paar in der Klasse darf diesen Kanal benutzen (Kanal 1 bis 255 ist möglich) <spoiler text="Block">
basic.showLeds(` . . # . . # # # # # . . # . . . # . # . # . . . # `) radio.setGroup(25)
</spoiler>
- Daten müssen an den zweiten Micro.bit gesendet werden
- Gesendet können nur Buchstaben, Texte oder Ziffern sein - aber keine Bilder
- Blöcke zum Senden von Daten <spoiler text="Block">
input.onButtonPressed(Button.A, function () { radio.sendString(".") }) input.onButtonPressed(Button.B, function () { radio.sendString("---") })
</spoiler>
- Empfangen und Anzeigen von Daten <spoiler text="Block">
radio.onReceivedString(function(receivedString: string) { basic.showString(receivedString) })
</spoiler>
- Ausgeben von kurzem Sound <spoiler text="Block">
radio.onReceivedString(function(receivedString: string) { music.ringTone(Note.C) basic.pause(200) })
</spoiler>
- Ausgeben von langem Sound <spoiler text="Block">
radio.onReceivedString(function(receivedString: string) { music.ringTone(Note.C) basic.pause(600) })
</spoiler>
Eckpfeiler zur Umsetzung
- Versuche diese drei Zeichen (Strich, Punkt, Punkt) mit dem Micro:bit-Programm darzustellen <spoiler text="Block">
input.onButtonPressed(Button.A, function () { basic.showLeds(` . . . . . . . . . . . . # . . . . . . . . . . . . `) }) input.onButtonPressed(Button.B, function () { basic.showLeds(` . . . . . . . . . . . # # # . . . . . . . . . . . `) })
</spoiler>
- Wenn gleiche Zeichen mehrmals hintereinander gesendet werden, kann man nicht erkennen, dass es mehrfach angezeigt wurde (es wurde nur länger dargestellt): Es bestehen manche Buchstaben beispielsweise aus 4 Strichen hintereinander, ----.
input.onButtonPressed(Button.A, function () { basic.showLeds(` . . . . . . . . . . . . . . . . . . . . . . . . . `) })
</spoiler>
Schritt für Schritt zur Lösung
- Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der Lösungsseite zu diesem Beispiel
Präsentation und Reflexion
Allgemein
- Was könnte/sollte man bei jedem gezeigten Programm verändern/verbessern?
- Was war zu schwierig zu verstehen, ersucht die Lehrerin/den Lehrer um Unterstützung.
Weiterentwicklung
- Überlegt wie man eine Bestätigung vom Empfänger programmieren könnte, damit der Sender immer weiß, dass das Zeichen richtig vom Empfänger gelesen werden konnte oder ob es wiederholt werden sollte und auch, ob das nächste gesendet werden kann.
- Wie könnte man gleich einen ganzen Buchstaben durch einen Tastendruck senden? Dh: Man sendet gleich ein A oder B mit allen beteiligt Morsezeichen aus.
- Wie könnte man auf dem Sender-Micro:bit einen Buchstaben auswählen und er wird dann als Morsecode versendet, anstatt als Programmiererin das Programm jedesmal zu ändern
- Überlege andere Symbole für eine Geheimsprache zu Übertragung
- Probiert diese auch auf dem Micro:bit aus.
Erweiterungsaufgabe
- Schreibt zu zweit ein Programm mit einer eigenen Aufgabenstellung, wo die Kommunikation zwischen Micro:bits ein Rolle spielt.