Morse1: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Alois.bachinger (Diskussion | Beiträge)
Martin.teufel (Diskussion | Beiträge)
 
(102 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== [[Datei:Icon_story.png|20px|Icon]] Übertragen von Geheimcode I ==
== [[Datei:Icon_story.png|20px|Icon]] Übertragen von Geheimcode I ==


[[Datei:Robo_mbit_morse.gif|right|300px]]  
[[Datei:Robo_mbit_morse.gif|300px|right]]  
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 eine Geheimsprache namens Morsecode. Diese Sprache hat genauso 2 Zeichen, einen Punkt und einen Strich.  
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 eine Geheimsprache namens Morsecode. Diese Sprache hat genau zwei Zeichen, einen Punkt und einen Strich.  
* Wie soll das klappen?  
* Wie soll das klappen?  


* Wir werden den Micro:bit hier verwenden, um Informationen zu übertragen.
* Wir werden den BBC micro:bit hier 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 [https://de.wikipedia.org/wiki/Morsecode **Morsecode**] nach.
* Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Informiere dich darüber in Wikipedia [https://de.wikipedia.org/wiki/Morsecode **Morsecode**].


* Eine erste Begrüßung an dich, verstehst du das? [[Datei:Gruss.png|50%]]  
* Eine erste Begrüßung an dich, verstehst du das? [[Datei:Gruss.png|50%]]  


Wenn man Geheimsprache vereinbart, dann muss der Sender und der Empfänger genau dieselbe Verschlüsselung und Entschlüsselung verwenden. Dazu gibt es Tabellen, die diese Schlüssel verraten. Unterhalb siehst eine solche Tabelle, die Morse-Tabelle. Diese Schlüsseltabelle dürfen bei Geheimprojekten natürlich nur der Sender und der Empfänger haben.
Wenn man eine Geheimsprache vereinbart, müssen Sender und Empfänger genau dieselbe Verschlüsselung und Entschlüsselung verwenden. Dazu gibt es Tabellen, die diese Schlüssel verraten. Unterhalb siehst du eine solche Tabelle, die Morse-Tabelle. Diese Schlüsseltabelle dürfen bei Geheimprojekten natürlich nur Sender und Empfänger besitzen.


== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung  ==
== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung  ==
 
[[Datei:Morsetaster.jpg|thumb|500px|Morsegerät historisch (Wikipedia, CC BY-SA 3.0; Autor: https://commons.wikimedia.org/wiki/User:Hp.Baumeler)]]
Mit dem BBC micro:bit wirst du Morsezeichen anzeigen und auch übertragen. Entwickle ein Programm mit dem man eine Morsekombination für einen Buchstaben oder ein Wort anzeigen und versenden kann.
Mit dem BBC micro:bit wirst du Morsezeichen anzeigen und auch übertragen. Entwickle ein Programm, mit dem man eine Morsekombination für einen Buchstaben oder ein Wort anzeigen und versenden kann.


Folgende Aufgaben sollte dieses Programm ausführen können:
Folgende Aufgaben sollte dieses Programm ausführen können:


* Das Drücken der Taste A sollte einen Morsepunkt aussenden (.)
* Das Drücken der Taste A sollte einen Morsepunkt aussenden (.).
* Die Taste B sollte einen Morsestrich aussenden (-)
* Die Taste B sollte einen Morsestrich aussenden (-).
* Beim Empfänger sollten diese Symbole angezeigt werden
* Beim Empfänger sollten diese Symbole angezeigt werden.
* Mehrere Morsesymbole (Punkte und Striche) ergeben einen Buchstaben - nun muss man noch mitteilen, wann ein Buchstabe abgeschlossen ist und der nächste beginnt, - das passiert über eine Pause von etwa 1 Sekunde
* Mehrere Morsesymbole (Punkte und Striche) ergeben einen Buchstaben. Außerdem muss man mitteilen, wann ein Buchstabe zu Ende ist und der nächste Buchstabe beginnt, dazu macht man eine Pause von etwa einer Sekunde. Damit haben wir einen einfachen Morseapparat entwickelt.
* Damit haben wir einen einfachen Morseapparat
* Betrachte die Abbildung eines Morsegerätes, wie es jahrelang verwendet wurde. Durch schnelles Öffnen und Schließen des Stromkreises wurden elektrische Signale übersendet: Ein kurzes Signal entspricht dem Punkt, ein langes entspricht dem Strich. Die Regelmäßigkeit des Drückens der Tasten hat hier große Bedeutung für das Erkennen von Morsezeichen. Man muss extrem konzentriert arbeiten, damit man dem Gegenüber keine unlesbare Fehlernachricht übermittelt.
* Hier abgebildet ein echtes Morsegerät, wie es Jahre verwendet wurde:
* Die Morsezeichen sollen auch als Tonsignal ausgegeben werden (lang, kurz).
[[Datei:Morsetaster.jpg|500px]]
* Durch schnelles Öffnen und Schließen des Stromkreises wurden elektrische Signale übersendet: Ein kurzes Signal entspricht dem Punkt, langes entspricht dem Strich.
 
* Die Regelmäßigkeit des Drückens der Tasten hat hier große Bedeutung für das Erkennen von Morsezeichen.
* Man muss extrem konzentriert arbeiten, damit man dem Gegenüber keine unlesbare Fehlernachricht übermittelt.


== [[Datei:icon_material.png|20px|Icon]] Materialien ==
== [[Datei:icon_material.png|20px|Icon]] Materialien ==
 
[[Datei:morse-tab.png|thumb|500px|Morsetabelle]]
* Zwei BBC Micro:bit (Version V2 oder V1 mit Lautsprecher oder Kopfhörer)
* 2 BBC micro:bit (Version V2 oder V1 mit Lautsprecher oder Kopfhörer)
* Papier und Stift
* Papier und Stift
* Das gedruckte Morsealphabet (ausdruckbar mit der rechten Maustaste und "Grafik kopieren" und drucken)  
* das Morsealphabet in ausgedruckter Form (mit einem Klick der rechten Maustaste auf die Morsetabelle, "Grafik kopieren" wählen, in eine Textverarbeitung einfügen und drucken)
[[Datei:morse-tab.png|30%]]


== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand ==
== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand ==


* 2 Unterrichtseinheit
* ca. 2 Unterrichtseinheiten


== [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad ==
== [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad ==
Zeile 48: Zeile 42:
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==


[[Datei:SOS_svg_gruen.png|right|400px]]
[[Datei:SOS_svg_gruen.png|thumb|400px|Das wichtigste Morsewort]]
Du solltest bereits  
Du solltest bereits  
* Daten mit dem Micro:bit anzeigen können
* Daten mit dem BBC micro:bit anzeigen können.
* Tastenfunktionen (A und B) verwenden können
* die Tastenfunktionen (A und B) verwenden können.




Zeile 57: Zeile 51:


* [[Variable]] zu verwenden
* [[Variable]] zu verwenden
* [[Operatoren]] zu verwenden
* [[Operatoren]] einzusetzen
* [[Bedingungen]] zu verwenden
* [[Bedingungen]] aufzustellen
* [[Funkverbindungen]] aufzunehmen
* [[Funkverbindungen]] aufzunehmen
* [[Funksignale]] zu empfangen
* [[Funksignale]] zu empfangen


Bei dieser Aufgabe lernst du auch
Bei dieser Aufgabe lernst du zusätzlich
* ein System für eine exakte Kommunikation zu entwerfen
* ein System für eine exakte Kommunikation zu entwerfen
* ein neues Programm zu erstellen
* ein neues Programm zu erstellen
Zeile 79: Zeile 73:
==== Ziel ====  
==== Ziel ====  


* Nach Programmstart sollte ein Symbol zeigen, dass der Micro:bit bereit ist
* Nach dem Programmstart sollte ein Symbol zeigen, dass der BBC micro:bit bereit ist.
* '''Taste A''' soll einen Punkt, '''Taste B''' einen Strich auf das Display schicken
* '''Taste A''' soll einen Punkt, '''Taste B''' einen Strich auf das Display schicken.
* Per Funk sollte das Zeichen versendet werden
* Per Funk sollte das Zeichen versendet werden.
* Beim Empfänger soll das Zeichen angezeigt werden
* Beim Empfänger soll das Zeichen angezeigt werden.
* Erweiterung: Es sollte ein ganzes Wort versendet werden
* Erweiterung: Es sollte ein ganzes Wort versendet werden.




==== Blöcke ====
==== Blöcke ====


* Ein Morsezeichen (. oder -) sollte per Tastendruck angezeigt werden <spoiler text="Block">
* Ein Morsezeichen (. oder -) sollte per Tastendruck angezeigt werden. <spoiler text="Block">
<pre id="pre01">
<pre id="pre01">
input.onButtonPressed(Button.A, function () {
input.onButtonPressed(Button.A, function () {
Zeile 110: Zeile 104:
</pre>
</pre>
</spoiler>
</spoiler>
* Zwei Micro:bit sollen mit Funk verbunden werden <spoiler text="Block">
* Zwei BBC micro:bit sollen mit Funk verbunden werden. <spoiler text="Block">
<pre id="pre01">
<pre id="pre01">
basic.showLeds(`
basic.showLeds(`
Zeile 122: Zeile 116:
</pre>
</pre>
</spoiler>
</spoiler>
** Der Funkkanal muss für beide gleich lauten
* 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).
** Kein anderes Kommunikations-Paar in der Klasse darf diesen Kanal benutzen (Kanal 1 bis 255 ist möglich)  
* Daten müssen an den zweiten BBC micro:bit gesendet werden.
* Daten müssen an den zweiten Micro.bit gesendet werden
* Gesendet werden können nur Buchstaben, Texte oder Ziffern - aber keine Bilder.
* Gesendet können nur Buchstaben, Texte oder Ziffern sein - aber keine Bilder
* Blöcke zum Senden von Daten: <spoiler text="Block">
* Blöcke zum Senden von Daten <spoiler text="Block">
<pre id="pre02">
<pre id="pre02">
input.onButtonPressed(Button.A, function () {
input.onButtonPressed(Button.A, function () {
Zeile 136: Zeile 129:
</pre>
</pre>
</spoiler>
</spoiler>
* Empfangen und Anzeigen von Daten <spoiler text="Block">
* Empfangen und Anzeigen von Daten: <spoiler text="Block">
<pre id="pre02">
<pre id="pre02">
radio.onReceivedString(function(receivedString: string) {
radio.onReceivedString(function(receivedString: string) {
Zeile 143: Zeile 136:
</pre>
</pre>
</spoiler>
</spoiler>
* Ausgeben von kurzem Sound <spoiler text="Block">
* Ausgeben von kurzem Sound: <spoiler text="Block">
<pre id="pre02">
<pre id="pre02">
radio.onReceivedString(function(receivedString: string) {
radio.onReceivedString(function(receivedString: string) {
Zeile 151: Zeile 144:
</pre>
</pre>
</spoiler>
</spoiler>
* Ausgeben von langem Sound <spoiler text="Block">
* Ausgeben von langem Sound: <spoiler text="Block">
<pre id="pre02">
<pre id="pre02">
radio.onReceivedString(function(receivedString: string) {
radio.onReceivedString(function(receivedString: string) {
Zeile 162: Zeile 155:
=== Eckpfeiler zur Umsetzung ===
=== Eckpfeiler zur Umsetzung ===


* Versuche diese drei Zeichen (Strich, Punkt, Punkt) mit dem Micro:bit-Programm darzustellen auf dem Display darzustellen <spoiler text="Block">
* Versuche diese drei Zeichen (Strich, Punkt, Punkt) mit dem BBC micro:bit-Programm auf dem Display darzustellen. <spoiler text="Block">
<pre id="pre01">
<pre id="pre01">
input.onButtonPressed(Button.A, function () {
input.onButtonPressed(Button.A, function () {
Zeile 184: Zeile 177:
</pre>
</pre>
</spoiler>
</spoiler>
* Wenn gleiche Zeichen mehrmals hintereinander gesendet werden, kann man nicht erkennen, dass es mehrfach gesendet wurde (es wurde nur länger dargestellt): Sieh dir das Morsealphabet an, es bestehen manche Buchstaben beispielsweise aus 3 Punkten hintereinander, "...."
* Wenn gleiche Zeichen mehrmals hintereinander gesendet werden, kann man nicht erkennen, dass mehrfach gesendet wurde (es wurde nur länger dargestellt): Sieh dir das Morsealphabet an, es bestehen manche Buchstaben beispielsweise aus 3 Punkten hintereinander, "...."
** Überlegt eine Lösung zur besseren Lesbarkeit
* Überlege eine Lösung zur besseren Lesbarkeit.
** Das Problem ist beim Anzeigen von "-.." bereits erkennbar.
** Das Problem ist beim Anzeigen von "-.." bereits erkennbar.
** Untersuche dieses <spoiler text="Bild 1"> [[Datei:Morse_d2.gif|400px]]</spoiler>  
** Untersuche die beiden Bilder
und dieses Bild 2 (ohne Zwischenphasen) <spoiler text="Bild2"> [[Datei:Morse_d2_ohne_zwischenbild.gif|400px]]</spoiler>
* Gut lesbar: <spoiler text="Bild 1">[[Datei:Morse_d2.gif|400px]]</spoiler>
* Du brauchst ein Lösung zur besseren Lesbarkeit <spoiler text="Tipp">
* Schlecht lesbar: <spoiler text="Bild 2">[[Datei:Morse_d2_ohne_zwischenbild.gif|400px]]</spoiler>
* Du brauchst also zur besseren Lesbarkeit ein kurzes Löschen des Displays mit dem "Leerdisplay" <spoiler text="Block">
<pre id="pre01">
<pre id="pre01">
input.onButtonPressed(Button.A, function () {
input.onButtonPressed(Button.A, function () {
Zeile 204: Zeile 198:


===[[Lösung_morse1|Schritt für Schritt zur Lösung]]===
===[[Lösung_morse1|Schritt für Schritt zur Lösung]]===
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Lösung_morse1|Lösungsseite zu diesem Beispiel]]
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Morse1_Lösung|Lösungsseite zu diesem Beispiel]].


==[[Datei:presentation.png|20px|Icon]] Präsentation und Reflexion ==
==[[Datei:presentation.png|20px|Icon]] Präsentation und Reflexion ==
[[Datei:Morse-Tafel.png|thumb|500px|Optimierte Morsetafel zum schnellen Lesen (Praxelius, CC BY-SA 3.0; https://commons.wikimedia.org/wiki/File:Morse-Tafel.png)]]


===Allgemein===
===Allgemein===
* Stelle dein Ergebnis vor! Was kann dein Produkt?  
* Stelle dein Ergebnis vor! Was kann dein Produkt?  
* Was hat dir bei der Entwicklung deines Produkts gefallen?  
* Was hat dir bei der Entwicklung deines Produkts gefallen?  
* Welche Schwierigkeiten hattest? Wie konntest du diese lösen?
* Welche Schwierigkeiten hattest du? Wie konntest du diese lösen?
* Erläutere, wie du dein Produkt programmiert hast!
* Erläutere, wie du dein Produkt programmiert hast!
* Was war bei dieser Aufgabe interessant für dich?
* Was war bei dieser Aufgabe interessant für dich?


===Projektspezifisch===
===Projektspezifisch===
[[Datei:Morse-Tafel.png|right|400px]]
 
* Welche Darstellungssymbole (-.) wurde für die beiden Morsezeichen auf dem Micro:bit gewählt, welche Darstellung könnte man noch verwenden?
* Welche Darstellungssymbole (-.) wurden für die beiden Morsezeichen auf dem BBC 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 habt ihr während der Übungen festgelegt, wer senden und wer empfangen darf?
* Wie funktionierte das Senden eines ganzen Wortes - habt ihr das versucht?
* Wie funktionierte das Senden eines ganzen Wortes? Habt ihr das versucht?
* Habt ihr das Senden und Empfangen auch in verschiedenen Räumen mit der Trennung von Sender und Empfänger probiert. Wenn ja, wie weit reicht das Signal des Micro:bit?
* Habt ihr das Senden und Empfangen auch in verschiedenen Räumen mit einer Trennung von Sender und Empfänger probiert? Wenn ja, wie weit reicht das Signal des BBC micro:bit?
* Überlege, warum die Morsespezialistinnen diese rechts dargestellte Tabelle zum Nachschlagen der Morsezeichen lieber verwenden als die obere Liste? Suche beispielsweise das Zeichen .--- : es ist ein J.
* Überlege, warum die Morsefachleute die auf der rechten Seite dargestellte optimierte Tabelle zum Nachschlagen der Morsezeichen lieber verwenden? Suche beispielsweise das Zeichen .--- : es ist ein J.
* Welches wichtige Morsewort wird heute noch immer verwendet? Ein wichtiges Notsignal: ...  ---  ...   
* Welches wichtige Morsewort wird heute noch immer verwendet? Ein wichtiges Notsignal: ...  ---  ...   
* Wie könnte man Morsesignale ganz ohne Computer, mit sehr einfachen Mitteln produzieren?
* Wie könnte man Morsesignale ganz ohne Computer, mit sehr einfachen Mitteln produzieren?
* Wie könnte man ein Morsegerät mit dem Micro:bit programmieren, das nur Lichtsignal aussendet?
* Wie könnte man ein Morsegerät mit dem BBC micro:bit programmieren, das nur Lichtsignale aussendet?
* Wie könnte ein von euch entworfenes Gehäuse für den Micro:bit aussehen, damit dieser "besser in der Hand liegt"?
* Wie könnte ein von euch entworfenes Gehäuse für den BBC micro:bit aussehen, damit dieser "besser in der Hand liegt"?


==[[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung ==
==[[Datei:icon_plus.png|20px|Icon]] 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.
* Ü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 in Morsekodierung aus.
* Wie könnte man gleich einen ganzen Buchstaben durch einen Tastendruck senden? Das bedeutet, man sendet gleich ein A oder B in Morsekodierung aus.
* Wie könnte man auf dem Sender-Micro:bit einen Buchstaben auswählen und dann wird er als Morsecode versendet (anstatt als Programmiererin jedes Mal den Buchstaben umzuprogrammieren)?
* Wie könnte man auf dem Sender-BBC micro:bit einen Buchstaben auswählen, der dann sofort als Morsecode versendet wird?  
* Überlege andere Symbole für eine Geheimsprache - probiert diese auch auf dem Micro:bit aus.
* Überlege andere Symbole für eine Geheimsprache und experimentiert mit dem BBC micro:bit.


== Erweiterungsaufgabe ==  
== Erweiterungsaufgabe ==  
'''Analyse eines fremden Programmcodes:'''<br>  
'''Analyse eines fremden Programmcodes:'''<br>  
* Ein Ausblick: Was stellt dieser komplizierte Programmcode dar? [https://dlpl-mb.github.io/morse_01_bst_senden/  Arrays, die Supervariablen]
* Ein Ausblick: Was stellt dieser komplizierte Programmcode dar? [https://dlpl-mb.github.io/morse_01_bst_senden/  Arrays, die Supervariablen]
* Es gibt Erweiterungsbeispiele mit dem Namen '''Morse 2''', dort werden Anwendungen der hier gezeigten Beispiele dargestellt sein
* Es gibt Erweiterungsbeispiele mit dem Namen '''Morse 2''', dort werden zusätzliche Anwendungen der hier gezeigten Beispiele dargestellt.
* Es werden auch viele weitere neue Schritte des Programmierens gezeigt.
* Es werden auch viele weitere neue Schritte des Programmierens gezeigt.
* Erweiterungsbeispiele: [[Morse2]]
* Erweiterungsbeispiele: [[Morse2]]

Aktuelle Version vom 17. Mai 2022, 07:41 Uhr

Icon Übertragen von Geheimcode I

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 eine Geheimsprache namens Morsecode. Diese Sprache hat genau zwei Zeichen, einen Punkt und einen Strich.

  • Wie soll das klappen?
  • Wir werden den BBC micro:bit hier verwenden, um Informationen zu übertragen.
  • Der Morsecode hatte früher eine große Bedeutung in der Nachrichtenübertragung. Informiere dich darüber in Wikipedia **Morsecode**.
  • Eine erste Begrüßung an dich, verstehst du das? 50%

Wenn man eine Geheimsprache vereinbart, müssen Sender und Empfänger genau dieselbe Verschlüsselung und Entschlüsselung verwenden. Dazu gibt es Tabellen, die diese Schlüssel verraten. Unterhalb siehst du eine solche Tabelle, die Morse-Tabelle. Diese Schlüsseltabelle dürfen bei Geheimprojekten natürlich nur Sender und Empfänger besitzen.

Icon Aufgabenstellung

Morsegerät historisch (Wikipedia, CC BY-SA 3.0; Autor: https://commons.wikimedia.org/wiki/User:Hp.Baumeler)

Mit dem BBC micro:bit wirst du Morsezeichen anzeigen und auch übertragen. Entwickle ein Programm, mit dem man eine Morsekombination für einen Buchstaben oder ein Wort anzeigen und versenden kann.

Folgende Aufgaben sollte dieses Programm ausführen können:

  • 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. Außerdem muss man mitteilen, wann ein Buchstabe zu Ende ist und der nächste Buchstabe beginnt, dazu macht man eine Pause von etwa einer Sekunde. Damit haben wir einen einfachen Morseapparat entwickelt.
  • Betrachte die Abbildung eines Morsegerätes, wie es jahrelang verwendet wurde. Durch schnelles Öffnen und Schließen des Stromkreises wurden elektrische Signale übersendet: Ein kurzes Signal entspricht dem Punkt, ein langes entspricht dem Strich. Die Regelmäßigkeit des Drückens der Tasten hat hier große Bedeutung für das Erkennen von Morsezeichen. Man muss extrem konzentriert arbeiten, damit man dem Gegenüber keine unlesbare Fehlernachricht übermittelt.
  • Die Morsezeichen sollen auch als Tonsignal ausgegeben werden (lang, kurz).

Icon Materialien

Morsetabelle
  • 2 BBC micro:bit (Version V2 oder V1 mit Lautsprecher oder Kopfhörer)
  • Papier und Stift
  • das Morsealphabet in ausgedruckter Form (mit einem Klick der rechten Maustaste auf die Morsetabelle, "Grafik kopieren" wählen, in eine Textverarbeitung einfügen und drucken)

Icon Zeitaufwand

  • ca. 2 Unterrichtseinheiten

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Das wichtigste Morsewort

Du solltest bereits

  • Daten mit dem BBC micro:bit anzeigen können.
  • die Tastenfunktionen (A und B) verwenden können.


Beim Programmieren lernst bzw. übst du

Bei dieser Aufgabe lernst du zusätzlich

  • ein System für eine exakte Kommunikation zu entwerfen
  • ein neues Programm zu erstellen
  • ein fremdes Programm zu lesen und zu ändern

Icon Unterrichtsfächer

  • Werken
  • Informatik
  • Deutsch
  • Physik

Icon Tipps und Hilfestellungen

Welcher Buchstabe wird hier im Bild angezeigt?

Erforderliche Programmierblöcke

Ziel

  • Nach dem Programmstart sollte ein Symbol zeigen, dass der BBC micro:bit bereit ist.
  • 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.
  • Erweiterung: Es sollte ein ganzes Wort versendet werden.


Blöcke

  • 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 BBC micro:bit sollen mit Funk verbunden werden. <spoiler text="Block">
basic.showLeds(`
    . . # . .
    # # # # #
    . . # . .
    . # . # .
    # . . . #
    `)
radio.setGroup(25)

</spoiler>

  • 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).
  • Daten müssen an den zweiten BBC micro:bit gesendet werden.
  • Gesendet werden können nur Buchstaben, Texte oder Ziffern - 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 BBC micro:bit-Programm auf dem Display 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 mehrfach gesendet wurde (es wurde nur länger dargestellt): Sieh dir das Morsealphabet an, es bestehen manche Buchstaben beispielsweise aus 3 Punkten hintereinander, "...."
  • Überlege eine Lösung zur besseren Lesbarkeit.
    • Das Problem ist beim Anzeigen von "-.." bereits erkennbar.
    • Untersuche die beiden Bilder
  • Gut lesbar: <spoiler text="Bild 1"></spoiler>
  • Schlecht lesbar: <spoiler text="Bild 2"></spoiler>
  • Du brauchst also zur besseren Lesbarkeit ein kurzes Löschen des Displays mit dem "Leerdisplay" <spoiler text="Block">
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.

Icon Präsentation und Reflexion

Optimierte Morsetafel zum schnellen Lesen (Praxelius, CC BY-SA 3.0; https://commons.wikimedia.org/wiki/File:Morse-Tafel.png)

Allgemein

  • Stelle dein Ergebnis vor! Was kann dein Produkt?
  • Was hat dir bei der Entwicklung deines Produkts gefallen?
  • Welche Schwierigkeiten hattest du? 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 Darstellungssymbole (-.) wurden für die beiden Morsezeichen auf dem BBC 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 das Senden eines ganzen Wortes? Habt ihr das versucht?
  • Habt ihr das Senden und Empfangen auch in verschiedenen Räumen mit einer Trennung von Sender und Empfänger probiert? Wenn ja, wie weit reicht das Signal des BBC micro:bit?
  • Überlege, warum die Morsefachleute die auf der rechten Seite dargestellte optimierte Tabelle zum Nachschlagen der Morsezeichen lieber verwenden? Suche beispielsweise das Zeichen .--- : es ist ein J.
  • Welches wichtige Morsewort wird heute noch immer verwendet? Ein wichtiges Notsignal: ... --- ...
  • Wie könnte man Morsesignale ganz ohne Computer, mit sehr einfachen Mitteln produzieren?
  • Wie könnte man ein Morsegerät mit dem BBC micro:bit programmieren, das nur Lichtsignale aussendet?
  • Wie könnte ein von euch entworfenes Gehäuse für den BBC micro:bit aussehen, damit dieser "besser in der Hand liegt"?

Icon 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? Das bedeutet, man sendet gleich ein A oder B in Morsekodierung aus.
  • Wie könnte man auf dem Sender-BBC micro:bit einen Buchstaben auswählen, der dann sofort als Morsecode versendet wird?
  • Überlege andere Symbole für eine Geheimsprache und experimentiert mit dem BBC micro:bit.

Erweiterungsaufgabe

Analyse eines fremden Programmcodes:

  • Ein Ausblick: Was stellt dieser komplizierte Programmcode dar? Arrays, die Supervariablen
  • Es gibt Erweiterungsbeispiele mit dem Namen Morse 2, dort werden zusätzliche Anwendungen der hier gezeigten Beispiele dargestellt.
  • Es werden auch viele weitere neue Schritte des Programmierens gezeigt.
  • Erweiterungsbeispiele: Morse2