Morse1
Übertragen von Geheimcode
Hallo, ich bin Robi-x01 und ich möchte mich mit meiner Freundin unterhalten können, ohne dass dies jemand anderer versteht. Dazu verwenden wir ein Geheimsprache namens Morsecode. Diese Sprache hat genauso 2 Zeichen, einen Punkt und einen Strich.
- Wie soll das klappen?
- Wir werden den Micro:bit hier auch verwenden, um Informationen zu übertragen.
- Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Lies dazu und zur Entstehung in Wikipedia **Morsecode** nach.
Wenn man Geheimsprache vereinbart, dann muss der Sender und der Empfänger genau diesselbe Verschlüsselung und Entschlüsselung verwenden. Dazu gibt es Tabellen, die diese Schlüssel verraten. Unterhalb siehst du die Morse-Tabelle. Diese Schlüsseltabelle dürfen bei Geheimprojekten natürlich nur der Sender und der Empfänger haben.
Aufgabenstellung
Mit dem BBC micro:bit kannst du Morsezeichen anzeigen und auch übertragen. Entwickle ein Programm mit dem man ein Morsekombination für einen Buchstaben oder ein Wort anzeigen und versenden kann.
- Das Drücken der Taste A sollte einen Morsepunkt aussenden
- Die Taste B sollte einen Morsestrich aussenden
- Beim Empfänger sollten diese Symbole angezeigt werden
- Mehrere Morsesymbole (Punkte und Striche) ergeben einen Buchstaben - nun muss man noch mitteilen, wann ein Buchstabe fertiggestellt ist - das macht man mit einer Pause von etwa 1 Sekunde
- Damit haben wir einen Morseapparat
- Die Regelmäßigkeit des Drückens der Tasten hat hier eine große Bedeutung für das Erkennen von Morsezeichen
Materialien
- Zwei BBC Micro:bit (Version V2 oder V1 mit Lautsprecher oder Kopfhörer)
- Papier und Stift
- Das ausgedrucke Morsealphabet (ausdruckbar mit rechter Maustaste und Grafik kopieren und drucken)
- Ein Morsegerät, wie es verwendet wurde:
Zeitaufwand
- 2 Unterrichtseinheit
Schwierigkeitsgrad
Kompetenzen
Du solltest bereits
- Daten mit dem Micro:bit anzeigen können
- Den Tastenfunktionen (A und B) verwenden können
Beim Programmieren lernst bzw. übst du
- Variablen zu verwenden
- Operatoren zu verwenden
- Bedingungen zu verwenden
- Funkverbindungen aufzunehmen
- Funksignale zu empfangen
Bei dieser Aufgabe lernst du auch
- ein neues Programm zu erstellen
- ein fremdes Programm zu ändern
Unterrichtsfächer
- Werken
- Informatik
- Deutsch
- Physik
Tipps und Hilfestellungen
Erforderliche Programmierblöcke
Ziel
- Taste A soll einen Punkt, Taste B einen Strich auf das Display schicken
- Per Funk sollte das Zeichen versendet werden
- Beim Empfänger soll das Zeichen angezeigt werden
- Welcher Buchstabe wird hier im bild angezeigt?
- Erweiterung: Es sollte ein ganzes Wort versendet werden
Blöcke
- Nach Programmstart sollte ein Symbol zeigen, dass er 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
- Sendungen 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
- Wenn zwei gleiche Symbole unmittelbar hintereinander angezeigt werden, dann erkennt man schwer, dass es zweimal dargestellt wurde
- Untersuche diese beiden Darstellung, in beiden Fällen wird derselbe Buchstabe gesendet: -..
- 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 bestehen manche Zeichen aus 4 Strichen hintereinander, ----.
- Überlegt ein Lösung zur besseren Lesbarkeit
- Das Problem ist bei folgenden beiden Sendungen sichtbar<spoiler text="Bild 1"> </spoiler>
- Ohne Zwischenphasen <spoiler text="Bild2"> </spoiler>
- Du brauchst ein Lösung zur besseren Lesbarkeit <spoiler text="Tipp">
input.onButtonPressed(Button.A, function () { basic.showLeds(` . . . . . . . . . . . . . . . . . . . . . . . . . `) })
</spoiler>
- Programmiere den micro:bit-Zufallsgenerator so, dass durch Schütteln ein Wert "wahr" oder "falsch" ermittelt wird (= Kopf oder Zahl)
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
- Stelle dein Ergebnis vor! Was kann dein Produkt?
- Was hat dir bei der Entwicklung deines Produkts gefallen?
- Welche Schwierigkeiten hattest? Wie konntest du diese lösen?
- Erläutere, wie du dein Produkt programmiert hast!
- Was war bei dieser Aufgabe interessant für dich?
Projektspezifisch
- Welche Darstellung wurde für die beiden Morsesymbole auf dem Micro:bit gewählt, welche Darstellung könnte man noch verwenden?
- Wie habt ihr während der Übungen festgelegt, wer senden und wer empfangen darf?
- Wie funktionierte ds Senden eines ganzen Wortes - habt ihr das überhaupt versucht?
- Habt ihr das Senden und Empfangen auch in verschiedneen räumen für Sender und Empfänger probiert.
- Überlege, warum die Morsespezialistinnen diese Tabelle zum Nachschlagen verwendet haben und nicht die obere?
- Welches wichtige Morsewort wird heute noch immer verwendet? Ein wichtiges Notsignal: ... --- ...
- Wie könnte man die Morsesignal ohne Computer, mit sehr einfachen Mitteln produzieren?
- Wie könnte man ein Morsegerät mit dem Micro:bit programmieren, das nur Lichtsignal aussendet?
Weiterentwicklung
- Überlege wie man eine Bestätigung vom Empfänger programmieren könnte, damit der Sender weiß, dass das Zeichen richtig gelesen werden konnte oder ob es wiederholt werden sollte
- Wie könnte man gleich einen Buchstaben wählen und der Micro:bit wählt den entsprechenden Morsecode und sendet diesen dann 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 Sysmbole füpr eine Geheimsprache zu Übertragung
Noch eine Erweiterungsaufgabe
Analyse eines fremden Programmcodes:
- Was stellt dieser komplizerte Programmcode dar?