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

ラジオフォックスハンティング用の自動キーヤー

コンポーネントと消耗品

>
Arduino UNO
× 1
コンデンサ100nF
× 5
リレー(汎用)
× 1
LED(汎用)
× 1
コンデンサ100µF
× 1
ジャンパー線(汎用)
× 1
アマチュア無線用の外部受話器/マイクプラグ
× 1
トグルスイッチ、トグル
× 1

必要なツールとマシン

>
はんだごて(汎用)
はんだワイヤー、鉛フリー
アマチュア無線

このプロジェクトについて

アマチュア無線愛好家は、遠くに隠されたラジオ(「キツネ」と呼ばれる)を見つける練習をすることで、ラジオの方向探知スキルを鋭く保とうとすることがよくあります。これらのスキルは、無線送信機を持っている機器や人を見つけるのに役立ち、見つける必要があります。

このプロジェクトでは、Arduinoを使用して無線をキーアップして送信し、モールス信号を使用してステーションID(アマチュア無線家のコールサイン)を送信します。その後、長いトーンが送信されます。送信中に、無線信号の位置を正確に特定できます。

私は2011年のARRLTeacher's Instituteで無線方向探知を使用した最初の「キツネ狩り」を行い、それが大好きでした(私たちのチームが誤って間違った「キツネ」を見つけたとしても)。理科の授業で教えている中学生にとっては、とてもいい活動になると思いました。残念ながら、1つを構築することは、私が費やしても構わないと思っていたよりも複雑すぎるか、コストがかかるように思われました。

しかし最近、安価な2メートルのラジオとプログラム可能なマイクロプロセッサ(Arduinoのような)を使えば、非常に低コストで自分の「キツネ」を作ることができ、楽しい夏の学習プロジェクトを行うことができることに気付きました。

このプロジェクトでは、Baofeng UV-3Rラジオを使用しました。これは、安価であるため(そして、もう使用していません)、ArduinoUnoを使用しました。別のジャックで別のラジオを使用すると、ジャックとマイクをテストするために同様の手順が必要になると思いますが、回路とArduinoのスケッチは、オペレーターのラジオコールサインを除いて同じです。

注: 回路図は見た目ほど複雑ではありません。 .01マイクロファラッドコンデンサは、送信時に回路がRFI(無線周波数干渉)を拾うのを防ぐために追加されました。それらがないと、無線が回路の非常に近くで送信されたときに、Arduinoは異常で一貫性のないことをしました(しばしば再起動しました)。もう1つのコンデンサは、Arduinoの方形波を滑らかにし、正弦波にして音を良くするためのものです。

コード

  • キツネ狩りラジオキーヤー
Fox Hunting Radio Keyer Arduino
送信するためにラジオをキーアップし、モールス信号を送信して自分自身を識別するArduino。
 / * Nelson Farrierによってラジオをキーアップし、トーンを送信します。そして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 * numbers [] ={"-----"、// 0 ".----"、// 1 "..--- "、// 2" ...-- "、// 3" ....- "、// 4" ..... "、// 5" -.... "、// 6" --... "、// 7" --- .. "、// 8" ----。 " // 9 --- MikeMyersから借用したコードの最初のセグメントの終わり}; intrelay =12; int TonePin =13; int周波数=1000; // toneintの頻度dotDelay =70; //モールス信号のドットの長さ。これはドットとダッシュの間の時間でもあります。charDelay=500; // Farsnworthメソッドの文字間の待機時間intwordDelay =1100; // Farsnworthメソッドの単語間の待機時間intcycleDelay =15000; //最大値が16383であるため、期間の半分// reset:void setup(){//デジタルピンを出力として初期化すると、セットアップルーチンが1回実行されます。 pinMode(12、OUTPUT); pinMode(13、OUTPUT); delay(2000); //電源を入れた後の初期遅延} //ループルーチンは永久に何度も実行されます:void loop(){digitalWrite(relay、HIGH); //リレーをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のSendText( "NF7Z FOX");を待ちますdelay(1000); // 2番目のトーンを待ちます(TonePin、周波数); // 7秒のトーン遅延を送信します(7000); noTone(TonePin); delay(10000); //トーンなしで10秒送信digitalWrite(relay、LOW); //電圧をLOWにしてリレーをオフにしますdelay(cycleDelay); //サイクルタイムを待ちます(最大値は16383であるため)delay(cycleDelay); //サイクルタイムを待つ} // =================================================================////変更元:Mike Myers(http://mikemyers.me)@ netnutmike //関数:morseCodeSequence / ///入力:送信されるドットとダッシュの文字配列////説明://この関数は、入力として配列または「。」を取ります。および「-」および//配列内の各項目に対してdotOrDashを呼び出します。////シーケンスの最後に、ドット期間の3倍の//遅延があります。//=================================================================void morseCodeSequence(char * sequence){int i =0; //配列内の各要素をループしますwhile(sequence [i]!=NULL){dotOrDash(sequence [i]); //ドットまたはダッシュを送信しますi ++; //配列内の次の要素にインクリメントします} delay(charDelay); //文字間のギャップ} // =================================================================////機能:SendText ////入力:英語のテキストの文字配列////説明://この関数は入力としてテキストを受け取り、各文字のモールス信号を送信します。//各文字の後に一時停止があります。////=================================================================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 =='')//スペース(4回待機dotDelay {delay(wordDelay); //単語間のギャップ} else {} i ++; //配列内の次の要素にインクリメント} delay(charDelay ); //文字間のギャップ} // =================================================================////関数:dorOrDash ////変更元:Mike Myers(http://mikemyers.me) @ netnutmike //入力:ドットまたはダッシュのいずれかである必要がある文字////説明://この関数は、最初に出力をオンにしてから、//文字が「。」であるかどうかを確認します。 dotDelay .// //文字が「。」でない場合、ルーチンはそれを「-」と見なし、出力を// dotDelayの3倍の長さでハイに保ちます。これは次のことを確認することで改善できます。 //文字は「-」ですが、ほとんどの場合、それは問題ではありません。////遅延時間の後、ピンはローになり、//トーンがオフになります。 1つのdotDelay時間の間、ドットとダッシュが一緒に実行されないようにします。//=================================================================void dotOrDash(char dotOrDash){tone(TonePin、frequency); if(dotOrDash =='。'){delay(dotDelay); } else //は-{delay(dotDelay * 3);である必要があります} noTone(TonePin); delay(dotDelay); //フラッシュ間のギャップ} 

回路図


製造プロセス

  1. 無線
  2. ハンティングナイフ
  3. UFO攻撃!
  4. 3D RGB Arduclock
  5. MyRiver
  6. ジョイスティックゲーム
  7. Find Me
  8. コロナウイルス病の際の緊急使用のためのパルスオキシメータ
  9. リトルローバー
  10. ヘルスバンド-高齢者向けのスマートアシスタント
  11. 力率補正用のkVARおよびµF計算機のコンデンサバンク