Morzės kodas yra ryšio sistema, skirta bet kokiam simboliui užkoduoti dviem skirtingomis signalų, vadinamų Taškais ir Brūkšneliais, trukmėmis . Morzės kodą sukūrė Samuelis FB ir jis toliau naudojamas telegrafijoje perduodant slaptą informaciją. Labiausiai jis buvo naudojamas Antrojo pasaulinio karo metu. Morzės kodą galima atlikti bakstelėjus, mirksint ar rašant. Morzės kodas yra dviejų versijų - originalo ir tarptautinio morzės. Tarptautiniame morzės kode originali versija modifikuojama pašalinant tarpus ir suprojektuojant brūkšnelius tam tikru ilgiu. Morzės kodas galimas abėcėlių ir skaičių kodavimui. Jis daugiausia naudojamas radijo ir vandenyno ryšiams, taip pat yra dalis karių mokymo.
Kalba visada buvo Morzės kodo kliūtis, nes sunku atlikti diakritinių simbolių kodą kita kalba. Yra keletas garsių žodžių, kurie laikomi svarbiu Morzės kodo bruožu, pavyzdžiui, „SOS“. Visa SOS forma yra „Išsaugok mūsų sielas“, sukurta kaip visuotinis nelaimės signalas, reiškiantis pavojų.
Žemiau esančiame paveikslėlyje parodytas abėcėlių nuo A iki Z Morzės kodas.
Šiandien šioje pamokoje mes sukursime „ Morse Code Translator“, naudodami „Arduino“, kuris bet kurį simbolį paims kaip nuoseklaus monitoriaus įvestį ir paversdamas jį morze kodo ekvivalentu.
Būtini komponentai
- Arduino Uno
- Buzeris
- Bandomoji Lenta
- Džemperių laidai
Grandinės schema
Prijunkite garsinio signalo teigiamą kaištį prie 8 -ojo „Arudino UNO“ kaiščio, o neigiamą - prie „Arduino“ žemės. Įkelkite kodą naudodami „Arduino IDE“ ir įveskite simbolius serijiniame monitoriuje, kad sukurtumėte garsą. Taip pat galima pridėti LCD ekraną su „Arduino“, kad būtų parodytas brūkšnys ir taškai.
Programavimo paaiškinimas
Pabaigoje pateikiamas visas „ Arduino Morse Code Generator“ kodas. Čia mes paaiškiname programą, kad suprastume projekto veikimą.
Žemiau pateiktas kodas naudojamas gauti simbolių eilutę ir tada ją konvertuoti į morzės kodą.
char stringToMorseCode = "";
Tada nustatykite su „Arduino“ prijungto garsinio signalo kaištį ir to garsinio signalo sukurto garso aukštį. Tada mes nustatome taško ir brūkšnio ilgį.
int audio8 = 8; // garso išvestis 8 kaištyje int note = 1200; // muzikos natos / pikis int dotLen = 100; // morzės kodo „taškas“ ilgis int dashLen = dotLen * 3; // morzės kodo „brūkšnys“ ilgis
Į negaliojančiu kilpa () funkcija, jei serijos duomenų, ji bus jums sutaupyti į kintamojo indata . Tada jis nuskaito simbolį po vieną naudodamas komandą „ inData“ . Komanda kintamasis.toUppercase () naudojamas pakeisti mažąsias raides į didžiąsias. Tada jis sukuria garsą pagal kiekvieną veikėją.
void loop () { char inChar = 0; char inData = ""; // duomenų ilgis 6 simboliai String kintamasis = ""; Eilutės kintamasis1 = ""; int indeksas 1 = 0; if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delsa (100); inChar = Serial.read (); inData = inChar; indeksas1 ++; inData = '\ 0'; } kintamasis.toUpperCase (); for (baitas i = 0; i <100; i ++) { kintamasis. concat (String (inData)); } vėlavimas (20);
Žemiau esančios funkcijos „ MorseDot“ ir „ MorseDash“ yra naudojamos taško ir brūkšnio garsui sukurti.
anuliuoti „MorseDot“ () { tone (audio8, note, dotLen); // pradėti groti tono vėlavimą (dotLen); // laikykis šioje pozicijoje } void MorseDash () { tone (audio8, note, dashLen); // pradėti groti tono vėlavimą (dashLen); // laikykis šioje pozicijoje }
„ GetChar“ funkcija turi visų abėcėlių kodą. Taigi, kai įvedame bet kurią abėcėlę, iš šios funkcijos paimamas atitinkamas morzės kodas, kad būtų sukurtas konkretus garsas.
negaliojantis „GetChar“ (char tmpChar) { jungiklis (tmpChar) { atvejis 'a': MorseDot (); vėlavimas (100); „MorseDash“ (); vėlavimas (100); pertrauka; … ... … numatytasis: pertrauka; } }
Dabar įkelkite kodą į „Arduino“ naudodami „Arduino IDE“ ir įveskite bet kokį simbolį į nuoseklųjį monitorių ir paspauskite mygtuką „Enter“, kad nusiųstumėte simbolius į „Arduino“.
Čia mes įrašėme „SOS“, kuris yra universalus nelaimės signalas, kad sukurtų tą patį garsą.
To paties demonstracija pateikta žemiau esančiame vaizdo įraše.