Übernimm die Funktion aus der oberen Aufgabe und programmiere den micro:bit so, dass er ein Wort, das du noch im Programm vorgibst, als Morse-Code über die LEDs ausgibt.
# Imports go at the topfrommicrobitimport*importtimemorseCode={"A":"10111","B":"111010101","C":"11101011101","D":"1110101","E":"1","F":"101011101","G":"111011101","H":"1010101","I":"101","J":"1011101110111","K":"111010111","L":"101110101","M":"1110111","N":"11101","O":"11101110111","P":"10111011101","Q":"1110111010111","R":"1011101","S":"10101","T":"111","U":"1010111","V":"101010111","W":"101110111","X":"11101010111","Y":"1110101110111","Z":"11101110101","1":"10111011101110111","2":"101011101110111","3":"1010101110111","4":"10101010111","5":"101010101","6":"11101010101","7":"1110111010101","8":"111011101110101","9":"11101110111011101","0":"1110111011101110111"}# Wort zum Testenwort="SOS"# Intervallint=0.2# Images für LED ein und ausledEin=Image('99999:99999:99999:99999:99999')ledAus=Image('00000:00000:00000:00000:00000')forzeicheninwort.upper():forcodeinmorseCode[zeichen]:ifcode=="1":display.show(ledEin)else:display.show(ledAus)time.sleep(int)display.show(ledAus)time.sleep(3*int)
Ein Satz in Morsealphabet ausgeben
Übernimm die Funktion aus der oberen Aufgabe und programmiere den micro:bit so, dass er ein Satz, den du noch im Programm vorgibst, als Morse-Code über die LEDs ausgibt.
# Imports go at the topfrommicrobitimport*importtimemorseCode={"A":"10111","B":"111010101","C":"11101011101","D":"1110101","E":"1","F":"101011101","G":"111011101","H":"1010101","I":"101","J":"1011101110111","K":"111010111","L":"101110101","M":"1110111","N":"11101","O":"11101110111","P":"10111011101","Q":"1110111010111","R":"1011101","S":"10101","T":"111","U":"1010111","V":"101010111","W":"101110111","X":"11101010111","Y":"1110101110111","Z":"11101110101","1":"10111011101110111","2":"101011101110111","3":"1010101110111","4":"10101010111","5":"101010101","6":"11101010101","7":"1110111010101","8":"111011101110101","9":"11101110111011101","0":"1110111011101110111"}# Satz zum Testenwort="Hello World"# Intervallint=0.2# Images für LED ein und ausledEin=Image('99999:99999:99999:99999:99999')ledAus=Image('00000:00000:00000:00000:00000')forzeicheninwort.upper():# Falls Leerzeichenifzeichen==" ":time.sleep(4*int)# Am Ende hedes Buchstabens gibts bereits 3 * int# deshalb nur 4else:forcodeinmorseCode[zeichen]:ifcode=="1":display.show(ledEin)else:display.show(ledAus)time.sleep(int)display.show(ledAus)time.sleep(3*int)
Akkustische Ausgabe
Versuch doch mal den Morse-Code akkustisch auszugeben?
# Imports go at the topfrommicrobitimport*importtimeimportmusicmorseCode={"A":"10111","B":"111010101","C":"11101011101","D":"1110101","E":"1","F":"101011101","G":"111011101","H":"1010101","I":"101","J":"1011101110111","K":"111010111","L":"101110101","M":"1110111","N":"11101","O":"11101110111","P":"10111011101","Q":"1110111010111","R":"1011101","S":"10101","T":"111","U":"1010111","V":"101010111","W":"101110111","X":"11101010111","Y":"1110101110111","Z":"11101110101","1":"10111011101110111","2":"101011101110111","3":"1010101110111","4":"10101010111","5":"101010101","6":"11101010101","7":"1110111010101","8":"111011101110101","9":"11101110111011101","0":"1110111011101110111"}# Satz zum Testenwort="Hello World"# Intervallint=0.2# Images für LED ein und ausledEin=Image('99999:99999:99999:99999:99999')ledAus=Image('00000:00000:00000:00000:00000')# Musik-Ton einstellen und stummschaltenmusic.pitch(440)set_volume(0)forzeicheninwort.upper():# Falls Leerzeichenifzeichen==" ":time.sleep(4*int)# Am Ende hedes Buchstabens gibts bereits 3 * int# deshalb nur 4else:forcodeinmorseCode[zeichen]:ifcode=="1":set_volume(128)display.show(ledEin)else:set_volume(0)display.show(ledAus)time.sleep(int)display.show(ledAus)set_volume(0)time.sleep(3*int)
Morsecode übermitteln
Versuch doch mal den Morse-Code mittels «Radio» zu übermitteln. Anleitungen, wie man «Radio» mit den Microbits nutzt, findest du im Online-Editor.
Leider können nur strings übermittelt werden. Du musst also den Morse-Code von Boolean noch in ein String übersetzen, dann kannst du alles übermitteln.
Morsecode decodieren
Kannst du den erhaltenen Morsecode auch decodieren?