Kod Morse'a to system komunikacji służący do kodowania dowolnego znaku o dwóch różnych czasach trwania sygnałów zwanych kropkami i kreskami . Kod Morse'a został opracowany przez Samuela FB i dalej używany w telegrafii do przesyłania tajnych informacji. Był najczęściej używany w czasie II wojny światowej. Kod Morse'a można wykonać, dotykając, migając światłem lub pisząc. Kod Morse'a jest dostępny w dwóch wersjach, oryginalnej i międzynarodowym alfabecie Morse'a. W międzynarodowym kodzie Morse'a oryginalna wersja jest modyfikowana poprzez usunięcie spacji i zaprojektowanie kresek o określonej długości. Kod Morse'a służy do kodowania alfabetów i cyfr. Znajduje zastosowanie głównie w łączności radiowej i oceanicznej, a także jako element szkolenia żołnierzy.
Język zawsze był barierą dla alfabetu Morse'a, ponieważ trudno jest wykonać kod dla znaków diakrytycznych w innym języku. Istnieje kilka znanych słów uważanych za ważną cechę alfabetu Morse'a, takich jak „SOS”. Pełna forma SOS to Save Our Souls stworzona jako uniwersalny sygnał niebezpieczeństwa, który reprezentuje niebezpieczeństwo.
Poniższy obrazek przedstawia kod Morse'a dla alfabetów od A do Z.
Dzisiaj w tym samouczku zbudujemy tłumacz alfabetu Morse'a za pomocą Arduino, który pobierze dowolny znak jako dane wejściowe z monitora szeregowego i przekształci go w dźwięk odpowiadający kodowi Morse'a przez brzęczyk.
Wymagane składniki
- Arduino Uno
- Brzęczyk
- Płytka prototypowa
- Przewody połączeniowe
Schemat obwodu
Podłącz dodatni styk brzęczyka do 8- tego pinu Arudino UNO, a ujemny styk do masy Arduino. Prześlij kod za pomocą Arduino IDE i wpisz znaki na monitorze szeregowym, aby utworzyć dźwięk. Do Arduino można również dodać wyświetlacz LCD, aby wyświetlić kreskę i kropki.
Objaśnienie programowania
Kompletny kod generatora kodu Arduino Morse'a znajduje się na końcu, tutaj wyjaśniamy program, aby zrozumieć działanie projektu.
Poniższy kod służy do odbierania ciągu znaków, a następnie konwertowania go na kod Morse'a.
char stringToMorseCode = "";
Następnie określ pin brzęczyka podłączonego do Arduino i wysokość dźwięku generowanego przez ten brzęczyk. Następnie określamy długość kropki i myślnika.
int audio8 = 8; // wyjście audio na pin 8 int note = 1200; // nuta muzyczna / wysokość int dotLen = 100; // długość znaku Morse'a „kropka” int dashLen = dotLen * 3; // długość 'myślnika' kodu Morse'a
W funkcji void loop () , jeśli dane szeregowe są dostępne, zapiszą do zmiennej indata . Następnie czyta znak po kolei za pomocą polecenia inData . Polecenie variable.toUppercase () służy do zamiany małych liter na wielkie. Następnie tworzy dźwięk odpowiadający każdej postaci.
void loop () { char inChar = 0; char inData = ""; // długość danych 6 znaków Zmienna String = ""; Ciąg zmienna1 = ""; int index1 = 0; if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100); inChar = Serial.read (); inData = inChar; index1 ++; inData = '\ 0'; } variable.toUpperCase (); for (byte i = 0; i <100; i ++) { zmienna.concat (String (inData)); } opóźnienie (20);
Poniższe funkcje MorseDot i MorseDash służą do tworzenia dźwięku odpowiednio dla kropki i kreski.
void MorseDot () { tone (audio8, uwaga, dotLen); // zacznij odtwarzać opóźnienie tonu (dotLen); // trzymaj w tej pozycji } void MorseDash () { tone (audio8, note, dashLen); // zacznij odtwarzać opóźnienie tonu (dashLen); // trzymaj w tej pozycji }
Funkcja GetChar zawiera kod dla wszystkich alfabetów. Tak więc za każdym razem, gdy wpisujemy dowolny alfabet, odpowiedni kod Morse'a jest pobierany z tej funkcji, aby stworzyć określony dźwięk.
void GetChar (char tmpChar) { switch (tmpChar) { przypadek „a”: MorseDot (); opóźnienie (100); MorseDash (); opóźnienie (100); przerwa; ... ... ... default: break; } }
Teraz prześlij kod do Arduino za pomocą Arduino IDE i wpisz dowolny znak do monitora szeregowego i naciśnij przycisk Enter, aby wysłać znaki do Arduino.
Tutaj wpisaliśmy „SOS”, który jest uniwersalnym sygnałem niebezpieczeństwa, aby stworzyć dźwięk dla tego samego.
Demonstrację tego samego przedstawiono na poniższym filmie.