Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Автоматический ключ для радиолокации — точность, простота и надежность

Компоненты и материалы

Arduino UNO×1
Конденсатор 100 нФ×5
Реле (любое)×1
Светодиод (любой)×1
Конденсатор 100 мкФ×1
Провода-перемычки×1
Внешний разъем гарнитуры/микрофона для вашей радиостанции×1
Переключатель тумблер×1

Необходимые инструменты

О проекте

Радиолюбители часто тренируют навыки радиолокации, пытаясь найти скрытую радиостанцию («лису») на некотором расстоянии. Эти навыки полезны для поиска оборудования и людей с радиопередатчиками.

В этом проекте Arduino используется для управления радиопередачей: он активирует передатчик и передает идентификатор станции (вызовной знак радиолюбителя) в азбуке Морзе, а затем излучает длинный тон. Пока идет передача, можно определить местоположение сигнала.

Мой первый «охота на лису» состоялся в 2011 году на Институте учителей ARRL — мне это очень понравилось (даже несмотря на то, что наша команда случайно нашла не ту «лису»). Казалось, это отличное занятие для моих учеников средней школы. К сожалению, самостоятельная постройка показалась либо слишком сложной, либо слишком дорогой.

Недавно я понял, что с недорогой 2-метровой радиостанцией и программируемым микроконтроллером (например, Arduino) можно сделать свою «лису» за небольшие деньги и получить увлекательное летнее обучающее проект.

Для проекта я использовал радиостанцию Baofeng UV-3R (она недорогая и мне больше не нужна) и Arduino Uno. Если использовать другую радиостанцию с другим разъемом, проверка разъема и микрофона потребует аналогичных шагов, но схема и скетч Arduino останутся теми же, за исключением вызовного знака оператора.

Примечание: Схема проще, чем кажется. Конденсаторы 0.01 мкФ добавлены для предотвращения наводок РЧ-помех (RFI) при передаче. Без них Arduino вел себя странно и нестабильно (часто перезагружался), когда радиостанция передавала в непосредственной близости от схемы. Другой конденсатор сглаживает прямоугольный сигнал Arduino, делая его более синусоидальным для лучшего звука.

Код

Ключ для радиолокации «Лиса»

Arduino включает радиостанцию на передачу и отправляет азбуку Морзе для идентификации.

/* Автор: Nelson Farrier
   Включение радио и передача тона
   Включает Baofeng UV-3R через реле, затем передает ID и 5-секундный тон.
*/
// Пин 12 подключен к реле
// Пин 13 подключен к тональному контуру
// Основано на: Mike Myers (https://mikemyers.me) @netnutmike
// 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;      // частота тона
int dotDelay = 70;         // длительность точки
int charDelay = 500;       // пауза между буквами (метод Фарнсворта)
int wordDelay = 1100;      // пауза между словами
int cycleDelay = 15000;    // половина цикла (макс. значение delay = 16383)

void setup() {
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  delay(2000); // начальная задержка после включения
}

void loop() {
  digitalWrite(relay, HIGH); // включить реле
  delay(1000);
  SendText("NF7Z 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. Игра «UFO Attack» на Arduino UNO и матрице MAX7219 — Собираем аркаду с джойстиком Atari
  4. 3D RGB Arduclock — Bluetooth-часы на адресных LED с RTC
  5. Мониторинг состояния реки: Arduino-система контроля качества воды
  6. Интерактивная игра с джойстиком и LED-обратной связью на Arduino
  7. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  8. Портативный пульсоксиметр для экстренного использования в условиях COVID-19
  9. Health Band: умный браслет для мониторинга пожилых людей на Arduino Nano и DPS310
  10. Точный расчет конденсаторной батареи: калькулятор kVAR и мкФ для коррекции коэффициента мощности