Morsejeva koda je komunikacijski sistem za kodiranje katerega koli znaka v dveh različnih trajanjih signalov, imenovanih Pike in Črtke . Morsejevo azbuko je razvil Samuel FB in se nadalje uporablja v telegrafiji za prenos tajnih informacij. Najbolj se je uporabljal v času druge svetovne vojne. Morsejevo abecedo lahko izvedemo s tapkanjem, utripanjem luči ali pisanjem. Morsejeva koda je na voljo v dveh različicah, izvirni in mednarodni morzejevi kodi. V mednarodni morzejevi kodi je izvirna različica spremenjena z odstranjevanjem presledkov in oblikovanjem pomišljajev v točno določeni dolžini. Morsejeva koda je na voljo za kodiranje abeced in številk. Uporablja se predvsem v radijski in oceanski komunikaciji ter del usposabljanja vojakov.
Jezik je bil vedno ovira za Morsejevo abecedo, saj je težko izvesti kodo za diakritične znake v drugem jeziku. Obstaja nekaj znanih besed, ki se štejejo za pomembno značilnost Morsejeve kode, kot je "SOS". Polna oblika SOS je Reši naše duše, ustvarjena kot univerzalni signal v stiski, ki predstavlja nevarnost.
Spodnja slika prikazuje Morsejevo abecedo za abecede od A do Ž.
Danes bomo v tej vadnici z uporabo Arduina izdelali prevajalnik Morsejeve kode, ki bo poljuben znak vzel kot vhodni signal serijskega monitorja in ga prek zvočnega signala pretvoril v Morsejevo ekvivalentno piskanje.
Potrebne komponente
- Arduino Uno
- Zvočni signal
- Breadboard
- Jumper žice
Shema vezja
Povežite pozitivno pin Zumer k 8 th pin Arudino ZN in negativni pin na podlagi Arduino. Naložite kodo z uporabo Arduino IDE in vnesite znake na serijski monitor, da ustvarite zvok. Za prikaz pomišljajev in pik lahko skupaj z Arduinom dodate tudi LCD.
Pojasnilo programiranja
Popolna koda za Arduino Morse Code Generator je podana na koncu, tukaj razlagamo program za razumevanje delovanja projekta.
Spodnja koda se uporablja za sprejem znakovnega niza in nato pretvorbo v morsejevo kodo.
char stringToMorseCode = "";
Nato določite pin za brenčalo, priključeno na Arduino, in višino tona za zvok, ki ga ustvari ta brenčalec. Nato določimo dolžino pike in pomišljaja.
int audio8 = 8; // izhod zvoka na pin 8 int note = 1200; // notna nota / smola int dotLen = 100; // dolžina morsejeve kode 'pika' int dashLen = dotLen * 3; // dolžina morsejeve kode 'pomišljaj'
Če so zaporedni podatki na voljo v funkciji void loop () , se shranijo v spremenljivko indatada . Nato z ukazom inData prebere znak enega za drugim . Ukazna spremenljivka.toUppercase () se uporablja za spreminjanje malih črk v velike črke. Nato ustvari zvok glede na vsak lik.
void loop () { char inChar = 0; char inData = ""; // dolžina podatkov 6 znakov Niz spremenljivke = ""; Niz spremenljivke1 = ""; int indeks1 = 0; if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100); inChar = Serial.read (); inData = inChar; indeks1 ++; inData = '\ 0'; } variable.toUpperCase (); for (byte i = 0; i <100; i ++) { variable.concat (String (inData)); } zamuda (20);
Spodnji funkciji MorseDot in MorseDash se uporabljata za ustvarjanje zvoka za piko oziroma pomišljaj.
void MorseDot () { ton (zvok8, opomba, dotLen); // začnemo predvajati zakasnitev tona (dotLen); // zadržimo v tem položaju } void MorseDash () { tone (audio8, note, dashLen); // začnemo predvajati zakasnitev tona (dashLen); // zadrži v tem položaju }
Funkcija GetChar ima kodo za vse abecede. Torej, kadarkoli vtipkamo katero koli abecedo, se tej funkciji vzame ustrezna morsejeva koda, da se ustvari določen zvok.
void GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot (); zamuda (100); MorseDash (); zamuda (100); odmor; ... ... ... privzeto: break; } }
Zdaj naložite kodo v Arduino s pomočjo Arduino IDE in v serijski monitor vnesite kateri koli znak in pritisnite gumb za vnos, da jih pošljete v Arduino.
Tu smo vtipkali 'SOS', ki je univerzalni signal v sili, da bi ustvarili zvok za istega.
Predstavitev istega je podana v spodnjem videu.