Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Auto-Keyer voor Radio Fox Hunting

Componenten en benodigdheden

Arduino UNO
× 1
Condensator 100 nF
× 5
Relais (algemeen)
× 1
LED (generiek)
× 1
Condensator 100 µF
× 1
Jumperdraden (algemeen)
× 1
Externe handset/microfoonplug voor uw amateurradio
× 1
Toggle Switch, Toggle
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Soldeerdraad, loodvrij
Amateurradio

Over dit project

Ham-radio-enthousiastelingen proberen vaak hun vaardigheden voor het vinden van radiorichtingen scherp te houden door te oefenen met het vinden van een radio die ergens ver weg verborgen is (een "vos" genoemd). Deze vaardigheden zijn handig voor het vinden van apparatuur en mensen met een radiozender die gevonden moeten worden.

Dit project neemt een Arduino en gebruikt deze om de radio in te schakelen om te verzenden en verzendt vervolgens de stations-ID (de roepnaam van de ham-radio-operator) met behulp van morsecode. Er wordt dan een lange toon verzonden. Tijdens het zenden kan de locatie van het radiosignaal worden bepaald.

Ik had mijn allereerste "vossenjacht" met behulp van radio-richtingbepaling bij het ARRL Teacher's Institute 2011 en vond het geweldig (ook al vond ons team per ongeluk de verkeerde "vos"). Het leek een geweldige activiteit te zijn voor de middelbare scholieren die ik lesgeef in mijn natuurkundelessen. Helaas leek het bouwen ervan te ingewikkeld of kostte het meer dan ik bereid was te besteden.

Onlangs realiseerde ik me echter dat ik met een goedkope radio van 2 meter en een programmeerbare microprocessor (zoals de Arduino), mijn eigen "vos" kon maken voor heel weinig kosten, en een leuk zomerleerproject kon hebben.

Voor dit project heb ik een Baofeng UV-3R-radio gebruikt omdat deze niet duur is (en ik gebruik hem niet meer) en een Arduino Uno. Ik neem aan dat het gebruik van een andere radio met een andere aansluiting vergelijkbare stappen vereist om de aansluiting en microfoon te testen, maar het circuit en de Arduino-schets zouden hetzelfde zijn, behalve de radioroepnaam van de operator.

Opmerking: Het schema is minder ingewikkeld dan het lijkt. De.01 microfarad-condensatoren zijn toegevoegd om te voorkomen dat het circuit RFI (radiofrequentie-interferentie) oppikt tijdens het zenden. Zonder hen deed de Arduino ongebruikelijke en inconsistente dingen (vaak herstarten) toen de radio zo dicht bij het circuit zond. De andere condensator is om de blokgolf van de Arduino glad te strijken en er een sinusgolf van te maken, zodat hij beter klinkt.

Code

  • Fox Hunting Radio Keyer
Fox Hunting Radio KeyerArduino
De Arduino die de radio activeert om te verzenden en de morsecode verzendt om zichzelf te identificeren.
/*Door Nelson Farrier Sleutel omhoog voor radio en toon Toetsen voor Baofeng UV-3R-radio door het relais in en uit te schakelen, vervolgens ID's en en zendt een toon van 5 seconden. */ // Pin 12 is verbonden met een relais.// Pin 13 is verbonden met een tooncircuit.// gewijzigd van: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)// definieer de morsecode voor het alfabet en de cijferschar* 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* getallen[] ={ "-----", // 0 ".----", // 1 "..--- ", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 " --...", // 7 "---..", // 8 "----." // 9 --- einde van 1e segment van geleende code van Mike Myers};int relay =12;int TonePin =13; int-frequentie =1000; // frequentie van toneint dotDelay =70; // duur van de punt in morsecode, dit is ook de tijd tussen de punten en streepjes charDelay =500; // duur van de wachttijd tussen letters voor Farsnworth methodint wordDelay =1100; // duur van het wachten tussen woorden voor Farsnworth methodint cycleDelay =15000; // HALF de duur omdat de grootste waarde 16383// is, wordt de setup-routine één keer uitgevoerd wanneer u op reset:void setup() drukt { // initialiseer de digitale pin als uitvoer. pinMode (12, UITGANG); pinMode(13, UITGANG); vertraging (2000); // aanvankelijke vertraging na inschakelen}// de lusroutine wordt voor altijd herhaald:void loop() {digitalWrite(relay, HIGH); // zet het relais aan (HOOG is het spanningsniveau) vertraging (1000); // wacht op een tweede SendText ("NF7Z FOX"); vertraging (1000); // wacht op een tweede toon (TonePin, frequentie); // stuur 7 sec toonvertraging (7000); noTone (TonePin); vertraging (10000); // 10 seconden zenden zonder toon digitalWrite (relais, LAAG); // schakel het relais uit door de spanning LAGE vertraging (cycleDelay) te maken; // wacht op cyclustijd (omdat de grootste waarde 16383 is) vertraging (cycleDelay); // wacht op cyclustijd}//=================================================================//// gewijzigd van:Mike Myers (http://mikemyers.me) @netnutmike// Functie:morseCodeSequence/ /// Invoer:tekenreeks van te verzenden punten en streepjes//// Beschrijving:// Deze functie heeft als invoer een array of "." en "-" en// roept dotOrDash aan voor elk item in de array.//// Aan het einde van de reeks is er een vertraging van 3 keer // de puntduur.//=================================================================void morseCodeSequence (char * reeks) {int i =0; // Loop voor elk element in de array while (reeks [i]! =NULL) { dotOrDash (reeks [i]); // Stuur de punt of het streepje i++; // Verhogen naar het volgende element in de array} delay (charDelay); // kloof tussen letters}//=================================================================//// Functie:SendText//// Invoer:Karakter Array van tekst in het Engels//// Beschrijving:// Deze functie neemt tekst als invoer en verzendt morsecode voor elke letter.// Er is dan een pauze na elke letter.////=================================================================nietig SendText(char* MorseCodeLetters ){ int i =0; char ch; // Loop voor elk element in de array while (MorseCodeLetters[i] !=NULL) { ch =MorseCodeLetters[i]; // Is het een kleine letter? if (ch>='a' &&ch <='z') { morseCodeSequence (letters [ch - 'a']); } else if (ch>='A' &&ch <='Z') // Hoofdletter { morseCodeSequence (letters [ch - 'A']); } else if (ch>='0' &&ch <='9') // Number { morseCodeSequence(numbers[ch - '0']); } else if (ch ==' ') // Spatie (wacht 4 keer dotDelay {delay(wordDelay); // gap tussen woorden } else {} i++; // Verhogen naar het volgende element in de array} delay(charDelay ); // kloof tussen letters}//=================================================================//// Functie:dorOrDash//// gewijzigd van:Mike Myers (http://mikemyers.me) @netnutmike// Invoer:teken dat een punt of een streepje moet zijn//// Beschrijving:// Deze functie zet eerst de uitvoer aan en kijkt vervolgens of het teken een "." is en als dat zo is, wordt de dotDelay.// // Als het teken geen "." is, gaat de routine ervan uit dat// een "-" is en houdt de uitvoer hoog voor 3 keer de lengte van // dotDelay. Dit kan worden verbeterd door ervoor te zorgen dat de // het teken is een "-", maar in de meeste gevallen maakt het niet uit.//// Na de vertragingstijd wordt de pin laag gezet en wordt de // toon uitgeschakeld.//// Daarna wordt de vertraging met één punt vertraagd, zodat de punten en streepjes// lopen niet samen.//=================================================================nietig dotOrDash (char dotOrDash) { tone (TonePin, frequentie); if (dotOrDash =='.') {vertraging (dotDelay); } else // moet een zijn - { delay(dotDelay * 3); } noTone(TonePin); vertraging (dotDelay); // kloof tussen flitsen}

Schema's


Productieproces

  1. Radio
  2. Jachtmes
  3. UFO-aanval!
  4. 3D RGB Arduclock
  5. MyRiver
  6. Joystick-spel
  7. Vind mij
  8. PULSE OXIMETER voor gebruik in noodgevallen tijdens CORONAVIRUS-ZIEKTE
  9. Little Rover
  10. Health Band - Een slimme assistent voor ouderen
  11. Condensatorbank in kVAR &µF Calculator voor Power Factor Correction