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

무선 방향 탐지용 자동 키어 – 정밀함, 편의성, 신뢰성

부품 및 소모품

부품수량비고
Arduino UNO1
커패시터 100 nF5
릴레이 (범용)1
LED (범용)1
커패시터 100 µF1
점퍼 와이어 (범용)1
외장 핸드셋/마이크 플러그 (아마추어 무전기용)1
토글 스위치1

필요한 도구 및 장비

프로젝트 개요

아마추어 무선 애호가들은 숨겨진 무선 송신기(일명 '여우')를 찾는 연습을 통해 무선 방향 탐지 기술을 연마합니다. 이 기술은 송신기가 있는 장비나 사람을 찾는 데 유용합니다.

이 프로젝트는 아두이노를 사용하여 무전기를 키업(송신 모드 진입)시키고, 모스 부호로 호출부호(아마추어 무선 운용자의 콜사인)를 송신한 뒤 긴 톤을 보내는 장치를 만듭니다. 송신 중인 무선 신호의 위치를 방향 탐지로 정확히 파악할 수 있습니다.

저는 2011년 ARRL 교사 연수에서 첫 '여우 사냥'을 경험하고 매력을 느꼈습니다(우리 팀이 엉뚱한 '여우'를 찾긴 했지만). 중학교 과학 수업 학생들에게 좋은 활동이 되겠다 싶었지만, 직접 만들려면 너무 복잡하거나 비용이 많이 들었습니다.

최근 저렴한 2미터 밴드 무전기와 프로그래머블 마이크로프로세서(아두이노)를 조합하면 매우 저렴하게 나만의 '여우'를 만들 수 있음을 깨달았습니다. 재미있는 여름 학습 프로젝트로도 제격입니다.

이 프로젝트에서는 저렴한 Baofeng UV-3R 무전기(더 이상 사용하지 않는 것)와 Arduino Uno를 사용했습니다. 다른 무전기와 다른 잭을 사용하더라도 잭과 마이크 테스트 과정이 비슷하며, 회로와 아두이노 스케치는 운용자의 콜사인만 변경하면 동일하게 적용할 수 있습니다.

참고: 회로도는 보기보다 단순합니다. 0.01µF 커패시터들은 송신 시 회로가 RFI(무선 주파수 간섭)를 받는 것을 방지하기 위해 추가되었습니다. 이 커패시터가 없으면 무전기가 회로 바로 근처에서 송신할 때 아두이노가 이상 동작(주로 재시작)합니다. 다른 커패시터는 아두이노의 구형파를 정현파에 가깝게 다듬어 음질을 개선합니다.

코드

여우 사냥 무전기 키어 (Arduino)

무전기를 키업하여 송신하고 모스 부호로 식별 신호를 보내는 아두이노 코드입니다.

/* By Nelson Farrier
   무전기 키업 및 톤 송신
   릴레이 온/오프로 Baofeng UV-3R 키업, 콜사인 송신 후 5초 톤 전송
*/
// 핀 12: 릴레이 연결
// 핀 13: 톤 회로 연결
// 참고: Mike Myers (https://mikemyers.me) @netnutmike
// Let's Make It Episode 6 참고

// 모스 부호 정의 (알파벳, 숫자)
char* letters[] = {
  ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..",
  ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.",
  "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."
};
char* numbers[] = {
  "-----", ".----", "..---", "...--", "....-",
  ".....", "-....", "--...", "---..", "----."
};

int relay = 12;
int TonePin = 13;
int frequency = 1000;      // 톤 주파수 (Hz)
int dotDelay = 70;         // 모스 부호 '점' 길이 (ms)
int charDelay = 500;       // 문자 간 간격 (파스워스 방식)
int wordDelay = 1100;      // 단어 간 간격
int cycleDelay = 15000;    // 사이클 대기 (최대값 16383 제한으로 2회 분할)

void setup() {
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  delay(2000); // 전원 투자 후 초기 대기
}

void loop() {
  digitalWrite(relay, HIGH);  // 릴레이 온 (키업)
  delay(1000);
  SendText("NF7Z FOX");       // 콜사인 + FOX 송신
  delay(1000);
  tone(TonePin, frequency);   // 7초간 톤 송신
  delay(7000);
  noTone(TonePin);
  delay(10000);               // 톤 없이 10초 송신
  digitalWrite(relay, LOW);   // 릴레이 오프 (키다운)
  delay(cycleDelay);
  delay(cycleDelay);
}

// 모스 부호 시퀀스 전송 함수
void morseCodeSequence(char* sequence) {
  int i = 0;
  while (sequence[i] != NULL) {
    dotOrDash(sequence[i]);
    i++;
  }
  delay(charDelay); // 문자 간 간격
}

// 텍스트를 모스 부호로 변환 전송
void SendText(char* MorseCodeLetters) {
  int i = 0;
  char ch;
  while (MorseCodeLetters[i] != NULL) {
    ch = MorseCodeLetters[i];
    if (ch >= 'a' && ch <= 'z') {
      morseCodeSequence(letters[ch - 'a']);
    } else if (ch >= 'A' && ch <= 'Z') {
      morseCodeSequence(letters[ch - 'A']);
    } else if (ch >= '0' && ch <= '9') {
      morseCodeSequence(numbers[ch - '0']);
    } else if (ch == ' ') {
      delay(wordDelay); // 단어 간 간격
    }
    i++;
  }
  delay(charDelay);
}

// 점(.) 또는 대시(-) 전송
void dotOrDash(char dotOrDash) {
  tone(TonePin, frequency);
  if (dotOrDash == '.') {
    delay(dotDelay);
  } else { // 대시('-')로 간주
    delay(dotDelay * 3);
  }
  noTone(TonePin);
  delay(dotDelay); // 점/대시 간 간격
}

회로도

무선 방향 탐지용 자동 키어 – 정밀함, 편의성, 신뢰성

제조공정

  1. 라디오 기술의 진화와 공학
  2. 사냥칼: 청동기 기원에서 현대 필드 기어까지
  3. 아두이노 우노 & MAX7219로 만드는 UFO 어택 게임 – 직접 만드는 레트로 아케이드
  4. 3D RGB 아두클락(Arduclock) - 블루투스 제어 LED 타임피스 with RTC
  5. 강 건강 모니터: 아두이노 기반 수질 측정 시스템
  6. 아두이노 조이스틱 인터랙티브 게임 - LED 피드백으로 방향 감지
  7. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  8. 코로나19 긴급용 휴대용 펄스 옥시미터 제작
  9. 헬스 밴드: 노인을 위한 신뢰할 수 있는 스마트 웨어러블 어시스턴트
  10. 정확한 역률 보정: 커패시터 뱅크 계산기 (kVAR & µF)