Morse1: Unterschied zwischen den Versionen
Zeile 7: | Zeile 7: | ||
* Eine erste Begrüßung an dich: [[Datei:Gruss.png|50%]] | * Eine erste Begrüßung an dich: [[Datei:Gruss.png|50%]] | ||
* Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Lies dazu und zur Entstehung | * Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Lies dazu und zur Entstehung in Wikipedia [https://de.wikipedia.org/wiki/Morsecode **Morsecode**] nach | ||
* Wir werden den Micro:bit hier auch verwenden, um Informationen zu übertragen. | * Wir werden den Micro:bit hier auch verwenden, um Informationen zu übertragen. |
Version vom 18. September 2021, 10:53 Uhr
Ü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?
- Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Lies dazu und zur Entstehung in Wikipedia **Morsecode** nach
- Wir werden den Micro:bit hier auch verwenden, um Informationen zu übertragen.
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. Hier diese Tabelle, diese Schlüsseltabelle dürfen nur Sender und Empfänger haben, wenn geheim kommuniziert wird.
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?