모스 부호는 Dots 와 Dashes 라고하는 두 가지 다른 신호 기간으로 모든 문자를 인코딩하는 통신 시스템입니다. 모스 부호는 Samuel FB가 개발했으며 비밀 정보를 전송하기 위해 전신에서 더 많이 사용됩니다. 제 2 차 세계 대전 당시 가장 많이 사용되었습니다. 모스 부호는 두드 리거나, 번쩍이거나, 글씨를 써서 수행 할 수 있습니다. 모스 부호는 원본과 국제 모스 부호의 두 가지 버전으로 제공됩니다. 국제 모스 부호에서 원래 버전은 공백을 제거하고 대시를 특정 길이로 디자인하여 수정합니다. 모스 부호는 알파벳과 숫자를 인코딩하는 데 사용할 수 있습니다. 주로 무선 및 해상 통신에 사용되며 병사 훈련의 일부이기도합니다.
언어는 다른 언어로 분음 부호를 수행하는 것이 어렵 기 때문에 항상 모스 부호의 장벽이었습니다. 'SOS' 와 같이 모스 부호의 중요한 특징으로 간주되는 유명한 단어가 있습니다. SOS 전체 형태는 보편적 조난 신호로 생성 된 Save Our Souls가 위험을 나타냅니다.
아래 이미지는 A에서 Z까지의 알파벳에 대한 모스 부호를 보여줍니다.
오늘이 튜토리얼에서는 Arduino 를 사용하여 모든 문자를 직렬 모니터의 입력으로 가져와 부저로 모스 부호에 해당하는 신호음으로 변환 하는 모스 부호 번역기를 빌드합니다.
필요한 구성 요소
- Arduino Uno
- 부저
- 브레드 보드
- 점퍼 와이어
회로도
부저의 양극 핀을 Arudino UNO 의 8 번째 핀에 연결하고 음극 핀을 Arduino의 접지에 연결합니다. Arduino IDE를 사용하여 코드를 업로드하고 직렬 모니터에 문자를 입력하여 사운드를 만듭니다. Arduino와 함께 LCD를 추가하여 대시와 점을 표시 할 수도 있습니다.
프로그래밍 설명
Arduino Morse Code Generator 의 전체 코드 는 마지막에 제공되며 여기에서는 프로젝트 작업을 이해하기위한 프로그램을 설명합니다.
아래 코드는 문자열을 받아 모스 부호로 변환하는 데 사용됩니다.
char stringToMorseCode = "";
그런 다음 Arduino에 연결된 부저의 핀과 해당 부저에서 생성되는 사운드의 피치를 정의합니다. 그런 다음 점과 대시의 길이를 정의합니다.
int audio8 = 8; // 8 번 핀에서 오디오 출력 int note = 1200; // 음악 노트 / 피치 int dotLen = 100; // 모스 부호의 길이 ' dot'int dashLen = dotLen * 3; // 모스 부호 '대시'의 길이
에서 보이드 루프 (12) 의 직렬 데이터를 사용할 경우, 함수, 그것을 변수에 저장한다 inData 크기 . 그런 다음 inData 명령을 사용하여 문자를 하나씩 읽습니다. variable.toUppercase () 명령 은 소문자를 대문자로 변경하는 데 사용됩니다. 그런 다음 모든 캐릭터에 따라 사운드를 생성합니다.
void loop () { char inChar = 0; char inData = ""; // 6 자 데이터 길이 String variable = ""; 문자열 variable1 = ""; 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 ++) { variable.concat (String (inData)); } 지연 (20);
아래 함수 MorseDot 및 MorseDash 는 각각 점과 대시의 사운드를 만드는 데 사용됩니다.
void MorseDot () { tone (audio8, note, dotLen); // 톤 재생 시작 delay (dotLen); //이 위치를 유지 } void MorseDash () { tone (audio8, note, dashLen); // 톤 재생을 시작합니다. delay (dashLen); //이 위치 유지 }
에서는 GetChar의 기능은 모든 알파벳의 코드가 있습니다. 따라서 알파벳을 입력 할 때마다이 함수에서 각 모스 부호를 가져와 특정 소리를 만듭니다.
void GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot (); 지연 (100); MorseDash (); 지연 (100); 단절; ... ... ... 기본: 휴식; } }
이제 Arduino IDE를 사용하여 코드를 Arduino에 업로드하고 직렬 모니터에 문자를 입력하고 Enter 버튼을 눌러 문자를 Arduino로 보냅니다.
여기에서는 동일한 소리를 만들기 위해 보편적 인 조난 신호 인 'SOS'를 입력했습니다.
동일한 데모는 아래 비디오에 나와 있습니다.