Radioproject BRAVO – Morsedecoder
Stel je voor dat je een geheim bericht wilt versturen zonder woorden te gebruiken. Lang geleden bedacht Samuel Morse een systeem hiervoor, genaamd Morsecode.
In 1844 werd morsecode voor het eerst gebruikt. Samuel Morse stuurde het allereerste bericht via een telegraaflijn van Washington D.C. naar Baltimore.
Morsecode bestaat uit punten en strepen en werd vroeger veel gebruikt door schepen en militairen.
tegenwoordig zijn radiozendamateurs eigenlijk nog de enigen die morsecode gebruiken. In dit project zet de micro:bit morsetekens om naar letters.
Morsecode
Bij morsecode duurt een streep drie keer zo lang als een punt. Het lijstje hierboven laat de meest gebruikte morsetekens zien. Meer morsetekens staan op Wikipedia.
Seinsleutel
Voor het zenden van morse gebruiken radiozendamateurs een seinsleutel.
Een seinsleutel is een schakelaar waar mee je een radiosignaal in- en uitschakelt. In dit micro:bit radioproject gebruiken we schakelaar A op de micro:bit.
Dit is dezelfde frequentieband die ook wordt gebruikt door veel andere draadloze apparaten, zoals Wi-Fi en Bluetooth.
Micro:bit morsedecoder
Klik hier om het programma in MakeCode te bekijken.
Punt of streep?
Het programma controleert de hele tijd of de knop wel of niet is ingedrukt. Zodra de knop wordt losgelaten bepaalt het programma he lang deze ingedrukt is geweest. Als dit minder dan 500 milliseconde is, dan wordt dit geregistreerd als een punt, anders is was het een streep.
Als de knop langer dan 1.500 milliseconde (= 3 x 500 milliseconde) wordt losgelaten dan wordt het ontvangen morsesignaal gedecodeerd.
Display
Led (4,0) gaat aan als knop A is losgelaten en led (4,4) gaat aan als knop A is ingedrukt.
Aan de linkerkant zie je hoe het morseteken is opgebouwd.
Als een teken niet kan worden gedecodeerd zie je een grote + op het display.
Geluid
Als je een micro:bit V2 hebt dan hoef je geen luidspreker aan te sluiten. Bij een oudere micro:bit moet je een oortelefoon aansluiten tussen de pinnen GND en P0.
Decoderen
Er zitten twee lijsten in het programma.
- lijstMorsetekens staan de morsetekens
- lijstLettersCijfers staan de letters en cijfers
Met de functie decodeer wordt het morseteken omgezet naar een letter of een cijfer.
Als er een morseteken moet worden gedecodeerd kijkt het programma eerst op welke plaats dit teken staat in lijstMorsetekens. Bijvoorbeeld het morseteken -.- (streep-punt-streep) staat op de 11e plaats in lijstMorsetekens.
In de variabele nummerTekenInLijst zetten we de waarde 11.
Met de opdracht … haal waarde op … kunnen we nu kijken welke letter of cijfer staat op de 11 plaatst in lijstLettersCijfers.
Als het morseteken niet bekend is in de lijst dan krijgt de variabele nummerTekenInLijst de waarde -1 en verschijnt er een grote plus op het display.
Seriële monitor
In het programma zie je ook een paar keer de opdracht serieel schrijf regel. Als de micro:bit met een USB-kabel met een computer is verbonden dan kan je in de seriële monitor van MakeCode zien welk morseteken is ontvangen. Dit is vooral handig als je het programma gaat aanpassen.
Zonder micro:bit
Je kan dit programma ook testen en gebruiken in MakeCode zonder dat een micro:bit is aangesloten.
Code
Het programma voor de morsedecoder staat hier. |
Ideeën en aanpassingen
- Als je erg snel seint dat kan je de variabele duurPunt veranderen naar bijvoorbeeld 250 (milliseconde).
- In plaats van de schakelaar op de micro:bit te gebruiken kan je ook een eigen seinsleutel gebruiken. Sluit deze dan aan op de pinnen 3V en P1 en gebruik dit blokje:
Morse en radiozendamateurs
Radiozendamateurs vinden het leuk om met zenders en ontvangers te experimenteren. Ze hebben een officieel radiozendexamen bij het CBR moeten doen om zelf radiozenders te mogen bouwen.
Radiozendamateurs gebruiken morse omdat morsesignalen ook bij veel radiostoring (slechte condities) goed te ontvangen zijn. Morsezenders zijn ook eenvoudig te bouwen.
CW
Radiozendamateurs hebben het meestal niet over morse, maar over CW (Continuous Wave). Een ervaren radiozendamateur kan wel tot 200 tekens per minuut seinen en ontvangen (nemen).
Voorbeeld CW-zender
Met deze zender (€ 10,00) kon een morsebericht worden verstuurd op een frequentie van 7 MHz. Deze frequentie valt in de 40 meter radioamateurband.