Morzes kods ir sakaru sistēma, kas kodē jebkuru rakstzīmi divos dažādos signālu ilgumos, kurus sauc par punktiem un domuzīmēm . Morzes kodu ir izstrādājis Semjuels FB un tālāk izmanto telegrāfā slepenas informācijas pārsūtīšanai. Visvairāk to izmantoja Otrā pasaules kara laikā. Morzes kodu var veikt, pieskaroties, mirgojot gaismā vai rakstot. Morzes kods ir pieejams divās versijās - oriģinālā un starptautiskajā morzes kodā. Starptautiskajā morzes kodā sākotnējā versija tiek modificēta, noņemot atstarpes un noformējot domuzīmes noteiktā garumā. Morzes kods ir pieejams alfabētu un ciparu kodēšanai. To galvenokārt izmanto radio un okeāna sakaros, kā arī daļu no karavīru apmācības.
Valoda vienmēr ir bijusi barjera Morzes kodam, jo ir grūti izpildīt kodu diakritiskajām rakstzīmēm citā valodā. Ir daži slaveni vārdi, kas tiek uzskatīti par svarīgu morzes kodeksa iezīmi, piemēram, “SOS”. SOS pilnā forma ir Saglabāt mūsu dvēseles, kas izveidota kā universāls briesmu signāls, kas apzīmē briesmas.
Zemāk redzamajā attēlā parādīts alfabētu morzes kods no A līdz Z.
Šodien šajā apmācībā mēs izveidosim Morzes koda tulkotāju, izmantojot Arduino, kurš jebkuru rakstzīmi izmantos kā seriāla monitora ievadi un pārveidos to morzes koda ekvivalentos skaņas signālos.
Nepieciešamās sastāvdaļas
- Arduino Uno
- Buzzer
- Maizes dēlis
- Džemperu vadi
Ķēdes shēma
Pievienojiet Atskan pozitīvo pin uz 8 th no Arudino ANO pin un negatīvā pin uz zemes un Arduino. Augšupielādējiet kodu, izmantojot Arduino IDE, un, lai izveidotu skaņu, sērijas monitorā ierakstiet rakstzīmes. LCD ekrānu var pievienot arī ar Arduino, lai parādītu domuzīmi un punktus.
Programmēšanas skaidrojums
Arduino Morse Code Generator pilnais kods ir norādīts beigās, šeit mēs izskaidrojam programmu, lai izprastu projekta darbību.
Tālāk redzamais kods tiek izmantots, lai saņemtu rakstzīmju virkni un pēc tam pārveidotu to par morzes kodu.
char stringToMorseCode = "";
Pēc tam definējiet arduino pieslēgtā skaņas signāla tapu un šī skaļruņa radītās skaņas piķi. Tad mēs definējam punkta un domuzīmes garumu.
int audio8 = 8; // izvadiet audio uz 8. kontakta int piezīmi = 1200; // mūzikas notis / piķis int dotLen = 100; // morzes koda garums 'dot' int dashLen = dotLen * 3; // morzes koda 'domuzīme' garums
Jo spēkā cilpas () funkciju, ja sērijas dati ir pieejami, tas ietaupīs vērā mainīgo indata . Tad tas nolasa rakstzīmi pa vienam, izmantojot komandu inData . Komandu variable.toUppercase () izmanto, lai mazos burtus mainītu uz lielajiem burtiem. Tad tas rada skaņu atbilstoši katram varonim.
void loop () { char inChar = 0; char inData = ""; // datu garums 6 rakstzīmes String mainīgais = ""; Virknes mainīgais1 = ""; int indekss1 = 0; ja (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { aizkave (100); inChar = Serial.read (); inData = inChar; indekss1 ++; inData = '\ 0'; } mainīgais.toUpperCase (); for (baits i = 0; i <100; i ++) { mainīgais.concat (virkne (inData)); } kavēšanās (20);
Zemāk esošās funkcijas MorseDot un MorseDash tiek izmantotas, lai izveidotu skaņu attiecīgi punktam un domuzīmei.
void MorseDot () { tone (audio8, piezīme, dotLen); // sākt atskaņot toņa aizkavi (dotLen); // turiet šajā pozīcijā } void MorseDash () { tone (audio8, note, dashLen); // sākt atskaņot toņa aizkavi (dashLen); // turēt šajā pozīcijā }
Funkcijai GetChar ir kods visiem alfabētiem. Tātad, ikreiz, kad mēs ierakstām jebkuru alfabētu, no šīs funkcijas tiek ņemts attiecīgais morzes kods, lai izveidotu konkrēto skaņu.
void GetChar (char tmpChar) { switch (tmpChar) { gadījums 'a': MorseDot (); kavēšanās (100); MorseDash (); kavēšanās (100); pārtraukums; … ... … noklusējums: pārtraukums; } }
Tagad augšupielādējiet kodu Arduino, izmantojot Arduino IDE, un sērijas monitorā ierakstiet jebkuru rakstzīmi un nospiediet taustiņu Enter, lai nosūtītu rakstzīmes uz Arduino.
Šeit mēs esam ierakstījuši "SOS", kas ir universāls briesmu signāls, lai radītu skaņu tam pašam.
Demonstrācija par to pašu ir sniegta zemāk esošajā video.