Найти тему
Kelvin Ph.

звуковая часть радиомаяка

Радиомая́к — передающая радиостанция, излучающая радиосигналы, используемые для определения координат различных объектов (или направления на них), в основном, самолётов и судов либо для определения местонахождения самого радиомаяка. Параметры сигнала радиомаяка зависят от направления излучения: например, его интенсивность (см. Диаграмма направленности) или момент времени пеленгации, в сигналах радиомаяка может содержаться и дополнительная информация.

Радиомаяки бывают угломерные и дальномерные (чаще комбинированные — угломерно-дальномерные). Угломерные (азимутальные) радиомаяки предназначены только для определения направления, а нахождение координат становится возможным после специальных вычислений на основе информации о направлении не менее, чем на два радиомаяка.
[взято из Википедии]

Итак, очередная моя задумка, но не исключено что кто-то где-то подобное уже делал.. Мне пришла в голову мысль сделать некое устройство, которое можно запрограммировать и использовать в качестве источника звукового сигнала, или источника звука для радиомаяка(см.выше).


Имея платформу Arduino это сделать не сложно. Для такой простой функции подойдет любой простой и не дорогой модуль.

-2

Возможно у вас будет один из тех что здесь изображены. Заметное отличие их одного от другого может быть только в выборе типа загрузчика, который нужно указать в настройках перед записью программы.

-3

Я задался тем что модуль должен передавать азбукой морзе фразу
всем привет. это маяк. 73 Но фраза может быть любая, на ваше усмотрение.
А вот собственно и сама программа:

// код для Arduino,
// который будет генерировать звук (800гц)используя команду playTone()
// кодом Морзе (русский), следующую фразу:
// всем привет. это маяк. 73!

const int buzzerPin = 9; // контакт выход звука
const int dotDuration = 30; // Длительность точки в миллисекундах
const int line = 100;
int diod = 13;

void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(diod, OUTPUT);
}

void loop() {
playDot(); playLine(); playLine(); // В
playDot(); playDot(); playDot(); // С
playDot(); // Е
playLine(); playLine(); // М

delay(line * 3); // Пробел между словами

playDot(); playLine(); playLine(); playDot(); // П
playDot(); playLine(); playDot(); // Р
playDot(); playDot(); // И
playDot(); playLine(); playLine(); // В
playDot(); // Е
playLine(); // Т
playDot(); playDot(); playDot(); playDot(); playDot(); playDot(); // . (ТЧК)

delay(line * 3); // Пробел между словами

playDot(); playDot(); playLine(); playDot(); playDot(); // Э
playLine(); // Т
playLine(); playLine(); playLine(); // О

delay(line * 3); // Пробел между словами

playDot(); // М
playDot(); playLine(); // А
playDot(); playLine(); playDot(); playLine(); // Я
playDot(); // К
playDot(); playDot(); playDot(); playDot(); playDot(); playDot(); // . (ТЧК)

delay(line * 3); // Пробел между словами

playLine(); playLine(); playDot(); playDot(); playDot(); // 7
playDot(); playDot(); playDot(); playLine(); playLine(); // 3

delay(line * 5); // Дополнительный пробел после фразы
}

void playDot() {
tone(buzzerPin, 1200, dotDuration);
digitalWrite(diod, HIGH);
delay(dotDuration * 1.2); // Пауза между точкой и следующим символом
digitalWrite(diod, LOW);
noTone(buzzerPin);
delay(dotDuration * 0.9); // Пауза между символами
}
void playLine() {
tone(buzzerPin, 1200, line);
digitalWrite(diod, HIGH);
delay(line * 1.2); // Пауза между тире и следующим символом
digitalWrite(diod, LOW);
noTone(buzzerPin);
delay(line * 0.9); // Пауза между символами
}

Для создания фразы я использовал вот эту таблицу:

-4

На её основе вы можете написать своё сообщение для своего радиомаяка.

основные настройки находятся в 1-4 строке,
buzzerPin = 9; это тот контакт с которого нужно взять звук.
Следующие две это длительность точки и тире, и [diod = 13] - светодиод установленный на плате Arduino, точнее номер его цифрового выхода, для мигания его в такт с передачей.

Частота задаётся (внизу) в двух строках вида:
tone(buzzerPin, 1200, line); где 1200 - частота в герцах.
Пауза между символами также настраивается в соседней строке(см. комментарии)

Результат, короткое видео, можно посмотреть здесь

Послесловие

Надо понимать что цифровое устройство выдаёт цифровой сигнал состоящий из всего двух уровней, именуется этот сигнал, а точнее его форма - Меандр.
Поэтому для сглаживания углов нужно использовать
LC-фильтры звукового диапазона. Могу подсказать ОНЛАЙН РАСЧЁТ LC ФИЛЬТРОВ