工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

無線方向探知用オートマチック・キーヤー – 精度、簡単操作、信頼性

部品と材料

部品数量備考
Arduino UNO1
コンデンサ 100nF5
リレー(汎用)1
LED(汎用)1
コンデンサ 100µF1
ジャンパーワイヤー(汎用)1
アマチュア無線機用外部ハンドセット/マイクプラグ1お使いの無線機に合わせて選択
トグルスイッチ1

必要な工具と機器

プロジェクト概要

アマチュア無線愛好家は、「フォックスハント(狐狩り)」と呼ばれる、遠方に隠された送信機(フォックス)を無線方向探知で見つけ出す練習を行って技術を磨きます。この技術は、送信機を持つ機器や人物を特定する際に役立ちます。

このプロジェクトでは、Arduinoを用いて無線機をキーイング(送信状態に)し、モールス信号で局識別信号(コールサイン)を送出した後、長いトーンを送信します。送信中の電波を方向探知機で追跡することで、送信機の位置を特定できます。

筆者は2011年のARRL教師研修で初めてフォックスハントを体験し、その面白さに魅了されました(ただし、チームが間違ったフォックスを見つけてしまいました)。中学生の理科の授業でこの活動を取り入れたいと考えましたが、自作は複雑すぎるか、コストが高すぎると感じていました。

しかし最近、安価な2m帯無線機とプログラマブル・マイクロプロセッサ(Arduinoなど)を組み合わせれば、わずかな費用で自作フォックスが作れると気づき、夏休みの学習プロジェクトとして取り組みました。

今回は安価で手に入るBaofeng UV-3R(現在は使用していないもの)とArduino Unoを使用しました。異なる無線機(異なるジャック形状)を使う場合でも、ジャックとマイクのテスト手順は同様で、回路とArduinoスケッチはオペレーターのコールサイン部分を除いて同じです。

注意: 回路図は見た目ほど複雑ではありません。0.01µFのコンデンサは、送信時に回路がRFI(高周波妨害)を拾って誤動作するのを防ぐために追加しています。これがないと、至近距離からの送信電波の影響でArduinoが再起動を繰り返すなど、不安定な挙動を示しました。もう1つのコンデンサは、Arduinoの矩形波を滑らかにして正弦波に近づけ、音質を改善するためのものです。

コード

フォックスハント無線キーヤー

無線機をキーイングしてモールス信号で自己識別を行い、トーンを送信するArduinoスケッチです。

/* By Nelson Farrier
 * 無線機をキーイングしてトーンを送信
 * Baofeng UV-3RをリレーのON/OFFでキーイングし、コールサイン送出後に5秒間のトーンを送る
 * 参考: Mike Myers (https://mikemyers.me) @netnutmike
 * Let's Make It Episode 6 (https://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* numbers[] = {
  "-----", // 0  ".----", // 1  "..---", // 2  "...--", // 3  "....-", // 4
  ".....", // 5  "-....", // 6  "--...", // 7  "---..", // 8  "----."  // 9
};

int relay = 12;        // リレー制御ピン
int TonePin = 13;      // トーン出力ピン
int frequency = 1000;  // トーン周波数 (Hz)
int dotDelay = 70;     // モールス・ドットの長さ (ms)
int charDelay = 500;   // 文字間隔 (ファーンズワース方式)
int wordDelay = 1100;  // 単語間隔 (ファーンズワース方式)
int cycleDelay = 15000; // サイクル間隔の半分(最大値16383の制限対策)

void setup() {
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  delay(2000); // 起動後の初期待機
}

void loop() {
  digitalWrite(relay, HIGH);  // リレーON(送信開始)
  delay(1000);
  SendText("NF7Z FOX");       // コールサイン送出
  delay(1000);
  tone(TonePin, frequency);   // 7秒間トーン送信
  delay(7000);
  noTone(TonePin);
  delay(10000);               // トーンなしで10秒間送信継続
  digitalWrite(relay, LOW);   // リレーOFF(送信終了)
  delay(cycleDelay);
  delay(cycleDelay);          // 合計30秒のサイクル待機
}

// モールス符号シーケンス送信関数
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. Arduino UNOとMAX7219で作るUFOアタックゲーム – レトロなドットマトリクスシューティング
  4. 3D RGB アルドゥクロック:Bluetooth対応LED時計(RTC内蔵)
  5. 川の健康を見守る:Arduinoベース水質監視システム「MyRiver」
  6. Arduinoとジョイスティックでインタラクティブゲーム – LEDフィードバック付き
  7. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  8. COVID-19緊急対応用 携帯型パルスオキシメーター(Arduino Nano+MAX30100)
  9. Arduinoで作る自律走行ミニローバー
  10. ヘルスバンド:高齢者を見守る信頼のスマートウェアラブルアシスタント
  11. 精密な力率改善:コンデンサバンク計算機(kVAR・µF)