Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Inserteur automatique pour la chasse au renard radio

Composants et fournitures

Arduino UNO
× 1
Condensateur 100 nF
× 5
Relais (générique)
× 1
LED (générique)
× 1
Condensateur 100 µF
× 1
Câbles de raccordement (générique)
× 1
Combiné externe/prise micro pour votre radio amateur
× 1
Interrupteur à bascule, bascule
× 1

Outils et machines nécessaires

Fer à souder (générique)
Fil à souder, sans plomb
Radio amateur

À propos de ce projet

Les passionnés de radio amateur essaient souvent de garder leurs compétences en radiogoniométrie aiguisées en s'entraînant à trouver une radio cachée quelque part au loin (appelée « renard »). Ces compétences sont utiles pour trouver du matériel et des personnes avec un émetteur radio et doivent être trouvées.

Ce projet prend un Arduino et l'utilise pour activer la radio à transmettre, puis envoie l'identifiant de la station (l'indicatif d'appel de l'opérateur radio amateur) à l'aide du code Morse. Une longue tonalité est alors envoyée. Pendant la transmission, l'emplacement du signal radio peut être localisé.

J'ai eu ma toute première "chasse au renard" en utilisant la radiogoniométrie à l'Institut des enseignants de l'ARRL 2011 et j'ai adoré (même si notre équipe a accidentellement trouvé le mauvais "renard"). Il semblait que cela ferait une excellente activité pour les collégiens à qui j'enseigne dans mes cours de sciences. Malheureusement, en construire un semblait soit trop compliqué, soit coûtait plus cher que ce que j'étais prêt à dépenser.

Récemment, cependant, j'ai réalisé qu'avec une radio bon marché de 2 mètres et un microprocesseur programmable (comme l'Arduino), je pouvais créer mon propre "renard" pour très peu de frais et avoir un projet d'apprentissage d'été amusant.

Pour ce projet, j'ai utilisé une radio Baofeng UV-3R car elle est peu coûteuse (et je ne l'utilise plus), et un Arduino Uno. Je suppose que l'utilisation d'une radio différente avec une prise différente nécessiterait des étapes similaires pour tester la prise et le microphone, mais le circuit et le croquis Arduino seraient les mêmes, à l'exception de l'indicatif d'appel radio de l'opérateur.

Remarque : Le schéma est moins compliqué qu'il n'y paraît. Les condensateurs de 0,01 microfarad ont été ajoutés pour empêcher le circuit de capter les RFI (interférences radioélectriques) lors de la transmission. Sans eux, l'Arduino a fait des choses inhabituelles et incohérentes (souvent en redémarrant) lorsque la radio a transmis si près du circuit. L'autre condensateur est de lisser l'onde carrée de l'Arduino et d'en faire une onde sinusoïdale pour qu'elle sonne mieux.

Code

  • Instrumenteur radio de chasse au renard
Renard Chasse Radio KeyerArduino
L'Arduino qui active la radio pour transmettre et envoie le code Morse pour s'identifier.
/* Par Nelson Farrier Touche la radio et envoie la tonalité Touche la radio Baofeng UV-3R en allumant et en éteignant le relais, puis les identifiants et et envoie une tonalité de 5 secondes. */ // La broche 12 est connectée à un relais.// La broche 13 est connectée à un circuit de tonalité.// modifié de :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)// définit le code morse pour l'alphabet et les nombreschar* 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* nombres[] ={ "-----", // 0 ".----", // 1 "..--- ", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 " --...", // 7 "---..", // 8 "----." // 9 --- fin du 1er segment du code emprunté à Mike Myers};int relay =12;int TonePin =13; fréquence int =1000 ; // fréquence de toneint dotDelay =70; // durée du point en morse, c'est aussi le temps entre les points et tiretsint charDelay =500; // durée d'attente entre les lettres pour Farsnworth methodint wordDelay =1100; // durée d'attente entre les mots pour la méthode Farsnworthint cycleDelay =15000; // LA MOITIÉ de la durée car la valeur la plus grande est 16383// la routine de configuration s'exécute une fois lorsque vous appuyez sur reset:void setup() { // initialise la broche numérique en tant que sortie. pinMode(12, SORTIE); pinMode(13, SORTIE); retard (2000); // délai initial après la mise sous tension}// la routine de boucle s'exécute encore et encore pour toujours:void loop() { digitalWrite(relay, HIGH); // activer le relais (HIGH est le niveau de tension) delay(1000); // attend un deuxième SendText("NF7Z FOX"); retard(1000); // attend une deuxième tonalité (TonePin, fréquence); // envoie un délai de tonalité de 7 secondes (7000); noTone(TonePin); retard (10000); // 10 secondes de transmission sans tonalité digitalWrite(relay, LOW); // éteint le relais en faisant le délai LOW de tension (cycleDelay); // attend le temps de cycle (car la plus grande valeur est 16383) delay(cycleDelay); // attendre le temps de cycle}//=================================================================//// modifié de :Mike Myers (http://mikemyers.me) @netnutmike// Fonction :morseCodeSequence/ /// Entrée :Tableau de caractères de points et de tirets à envoyer //// Description:// Cette fonction prend en entrée un tableau ou "." et "-" et// appelle dotOrDash pour chaque élément du tableau.//// A la fin de la séquence, il y a un délai de 3 fois // la durée du point.//==================================================================void morseCodeSequence(char* sequence){ int i =0; // Boucle pour chaque élément du tableau while (sequence[i] !=NULL) { dotOrDash(sequence[i]); // Envoie le point ou le tiret i++; // Incrémente à l'élément suivant dans le tableau } delay(charDelay); // espace entre les lettres}//=================================================================//// Fonction :SendText//// Input :Character Array of text in English //// Description:// Cette fonction prend du texte en entrée et envoie le code Morse pour chaque lettre.// Il y a ensuite une pause après chaque lettre.////=================================================================void SendText(char* MorseCodeLetters ){ entier i =0; char ch; // Boucle pour chaque élément du tableau while (MorseCodeLetters[i] !=NULL) { ch =MorseCodeLetters[i]; // C'est une lettre minuscule ? if (ch>='a' &&ch <='z') { morseCodeSequence(lettres[ch - 'a']); } else if (ch>='A' &&ch <='Z') // Lettre majuscule { morseCodeSequence(letters[ch - 'A']); } else if (ch>='0' &&ch <='9') // Number { morseCodeSequence(numbers[ch - '0']); } else if (ch ==' ') // Espace (attendre 4 fois dotDelay { delay(wordDelay); // écart entre les mots } else { } i++; // Incrémenter à l'élément suivant dans le tableau } delay(charDelay ); // espace entre les lettres}//=================================================================/// Fonction :dorOrDash//// modifié de :Mike Myers (http://mikemyers.me) @netnutmike// Entrée :caractère qui devrait être un point ou un tiret //// Description:// Cette fonction active d'abord la sortie puis regarde // si le caractère est un "." et si c'est le cas retarde le dotDelay.// // Si le caractère n'est pas un "." alors la routine suppose qu'il// est un "-" et maintient la sortie élevée pendant 3 fois la longueur de // dotDelay. Cela pourrait être amélioré en s'assurant que le // le caractère est un "-" mais dans la plupart des cas, cela n'aurait pas d'importance.//// Après le temps de retard, la broche est abaissée en éteignant la // tonalité. //// Ensuite, elle retarde d'un temps dotDelay afin que le les points et les tirets// ne fonctionnent pas ensemble.//=================================================================void dotOrDash(char dotOrDash){ tone(TonePin, fréquence); if (dotOrDash =='.') { delay(dotDelay); } else // doit être un - { delay(dotDelay * 3); } noTone(TonePin); retard(dotDelay); // espace entre les flashs}

Schémas


Processus de fabrication

  1. Radio
  2. Couteau de chasse
  3. Attaque d'OVNI !
  4. Ardulock 3D RVB
  5. MyRiver
  6. Jeu de manette
  7. Trouvez-moi
  8. Bande de santé - Un assistant intelligent pour les personnes âgées
  9. Banque de condensateurs en kVAR &µF Calculatrice pour la correction du facteur de puissance