산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

라디오 여우 사냥을 위한 자동 키어

구성품 및 소모품

Arduino UNO
× 1
커패시터 100nF
× 5
릴레이(일반)
× 1
LED(일반)
× 1
커패시터 100μF
× 1
점퍼 와이어(일반)
× 1
아마추어 라디오용 외부 핸드셋/마이크 플러그
× 1
전환, 전환
× 1

필요한 도구 및 기계

납땜 인두(일반)
납땜 와이어, 무연
아마추어 라디오

이 프로젝트 정보

햄 라디오 애호가들은 종종 멀리 떨어진 어딘가에 숨겨진 라디오("여우"라고 함)를 찾는 연습을 통해 라디오 방향 찾기 기술을 날카롭게 유지하려고 노력합니다. 이러한 기술은 무선 송신기가 있는 장비와 사람을 찾는 데 유용하며 찾아야 합니다.

이 프로젝트는 Arduino를 사용하여 송신할 라디오 키를 누른 다음 모스 부호를 사용하여 스테이션 ID(햄 라디오 교환원의 호출 부호)를 보냅니다. 그런 다음 긴 톤이 전송됩니다. 전송하는 동안 무선 신호의 위치를 ​​정확히 파악할 수 있습니다.

나는 2011년 ARRL Teacher's Institute에서 라디오 방향 찾기를 사용하여 처음으로 "여우 사냥"을 했고 그것을 좋아했습니다(우리 팀이 실수로 잘못된 "여우"를 찾았지만). 과학시간에 내가 가르치는 중학생들에게 좋은 활동이 될 것 같았다. 불행히도, 건물 하나를 짓는 것은 내가 기꺼이 지출하고자 하는 것보다 너무 복잡하거나 비용이 많이 드는 것처럼 보였습니다.

그러나 최근에 나는 저렴한 2미터 라디오와 프로그래밍 가능한 마이크로프로세서(Arduino와 같은)로 아주 적은 비용으로 나만의 "여우"를 만들고 재미있는 여름 학습 프로젝트를 할 수 있다는 것을 깨달았습니다.

이 프로젝트에서는 저렴하기 때문에 Baofeng UV-3R 라디오와 Arduino Uno를 사용했습니다. 잭이 다른 다른 라디오를 사용하는 경우 잭과 마이크를 테스트하는 데 비슷한 단계가 필요하지만 회로와 Arduino 스케치는 교환원의 라디오 호출 부호를 제외하고는 동일할 것이라고 가정합니다.

참고: 회로도는 보이는 것보다 덜 복잡합니다. .01 마이크로패럿 커패시터가 추가되어 회로가 전송할 때 RFI(무선 주파수 간섭)를 포착하지 못합니다. 그것들이 없으면 Arduino는 라디오가 회로에 너무 가깝게 전송될 때 비정상적이고 일관되지 않은 일(종종 다시 시작)을 수행했습니다. 또 다른 콘덴서는 아두이노의 구형파를 매끄럽게 만들어 사인파로 만들어 더 좋은 소리를 내는 것입니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 여우 사냥 라디오 키어
  • 여우 사냥 라디오 키어Arduino
    무선 키를 켜서 전송하고 자신을 식별하기 위해 모스 부호를 보내는 Arduino.<사전>/*Nelson Farrier 키 업 라디오 및 전송 톤 릴레이를 켜고 끄면 Baofeng UV-3R 라디오 키를 누른 다음 ID 및 5초 신호음을 보냅니다. */ // 핀 12는 릴레이에 연결됩니다.// 핀 13은 톤 회로에 연결됩니다.// 수정:Mike Myers (http://mikemyers.me) @netnutmike// Let's Make It Episode 6 (http //tech-zen.tv/index.php/shows/let-s-make-it/episodes/59-sensor-fun-with-arduino-1-massive-failure-but-4-successes-let-s -make-it-episode-6)// 알파벳과 숫자에 대한 모스 부호 정의char* letters[] ={ ".-", // A "-...", // B "-.-." , // C "-..", // D ".", // E "..-.", // F "--.", // G "....", // H " ..", // I ".---", // J "-.-", // K ".-..", // L "--", // M "-.", / / N "---", // O ".--.", // P "--.-", // Q ".-.", // R "...", // S " -", // T "..-", // U "...-", // V ".--", // W "-..-", // X "-.--" , // Y "--.." // Z};char* 숫자[] ={ "-----", // 0 ".----", // 1 "..--- ", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 " --...", // 7 "---..", // 8 "----." // 9 --- Mike Myers에서 빌린 코드의 첫 번째 세그먼트 끝};int relay =12;int TonePin =13; 정수 빈도 =1000; // 톤의 빈도 dotDelay =70; // 모스 부호에서 점의 지속 시간, 이것은 점과 대시 사이의 시간이기도 합니다. charDelay =500; // Farsnworth method에 대한 문자 사이의 대기 시간 int wordDelay =1100; // Farsnworth method에 대한 단어 사이의 대기 시간 int cycleDelay =15000; // 가장 큰 값이 16383이기 때문에 기간의 절반입니다. // reset:void setup()을 누를 때 설정 루틴이 한 번 실행됩니다. { // 디지털 핀을 출력으로 초기화합니다. 핀모드(12, 출력); 핀모드(13, 출력); 지연(2000); // 전원을 켠 후 초기 지연}// 루프 루틴은 계속해서 계속 실행됩니다. 영원히:void loop() { digitalWrite(relay, HIGH); // 릴레이 켜기 (HIGH는 전압 레벨) delay(1000); // 두 번째 SendText("NF7Z FOX")를 기다립니다. 지연(1000); // 두 번째 톤을 기다립니다(TonePin, frequency); // 7초 톤 딜레이 전송(7000); 노톤(톤핀); 지연(10000); // 톤 없이 10초 전송 digitalWrite(relay, LOW); // 전압을 LOW로 만들어 릴레이를 끕니다. delay(cycleDelay); // 사이클 타임을 기다림(가장 큰 값이 16383이기 때문에) delay(cycleDelay); // 사이클 타임 대기}//==================================================================//// 수정:Mike Myers(http://mikemyers.me) @netnutmike// 기능:morseCodeSequence/ /// 입력:보낼 점과 대시의 문자 배열//// Description:// 이 함수는 배열 또는 "."를 입력으로 받습니다. 및 "-" 및//는 배열의 각 항목에 대해 dotOrDash를 호출합니다.//// 시퀀스의 끝에 // 도트 지속 시간의 3배 지연이 있습니다.//===================================================================무효 morseCodeSequence(char* sequence){ int i =0; // 배열의 각 요소에 대한 루프 while (sequence[i] !=NULL) { dotOrDash(sequence[i]); // 점 또는 대시를 보냅니다. i++; // 배열의 다음 요소로 증가 } delay(charDelay); // 글자 사이의 간격}//=====================================================================/// 기능:SendText//// 입력:영문 텍스트의 문자 배열//// 설명:// 이 함수는 텍스트를 입력으로 받아 각 문자에 대해 모스 부호를 보냅니다.// 그런 다음 각 문자 뒤에 일시 중지가 있습니다.////===================================================================SendText(char* MorseCodeLetters) 무효 ){ 정수 i =0; 문자 채널; // 배열의 각 요소에 대한 루프 while (MorseCodeLetters[i] !=NULL) { ch =MorseCodeLetters[i]; // 소문자인가요? if (ch>='a' &&ch <='z') { morseCodeSequence(문자[ch - 'a']); } else if (ch>='A' &&ch <='Z') // 대문자 { morseCodeSequence(letters[ch - 'A']); } else if (ch>='0' &&ch <='9') // Number { morseCodeSequence(numbers[ch - '0']); } else if (ch ==' ') // 공백(4번 기다림 dotDelay { delay(wordDelay); // 단어 사이의 간격 } else { } i++; // 배열의 다음 요소로 증분 } delay(charDelay ); // 글자 사이의 간격}//===================================================================//// 기능:dorOrDash//// 수정:Mike Myers(http://mikemyers.me) @netnutmike// 입력:점이나 대시 중 하나여야 하는 문자//// Description:// 이 함수는 먼저 출력을 켠 다음 // 문자가 "."인지 확인하고 // 그렇다면 지연됩니다. dotDelay.// // 문자가 "."가 아닌 경우 루틴은 문자를 "-"로 가정하고 dotDelay 길이의 3배 동안 출력을 높게 유지합니다. 이는 다음을 확인하여 개선할 수 있습니다. // 문자는 "-"이지만 대부분의 경우 중요하지 않습니다.//// 지연 시간 후 핀이 낮아져 // 톤이 꺼집니다.//// 그런 다음 한 dotDelay 시간 동안 지연되므로 점과 대시 // 함께 실행되지 않습니다.//=================================================================무효 dotOrDash(char dotOrDash){ tone(TonePin, 주파수); if (dotOrDash =='.') { 지연(dotDelay); } else // 반드시 a - { delay(dotDelay * 3); } 노톤(톤핀); 지연(점 지연); // 플래시 사이의 간격}

    회로도


    제조공정

    1. 라디오
    2. 사냥용 칼
    3. UFO 공격!
    4. 3D RGB Arduclock
    5. 마이리버
    6. 조이스틱 게임
    7. 나를 찾기
    8. CORONAVIRUS DISEASE 동안 비상용 펄스 산소 농도계 사용
    9. Health Band - 노인을 위한 스마트 도우미
    10. 역률 보정을 위한 kVAR 및 µF 계산기의 커패시터 뱅크