CW маяк. пейджер
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 03 окт 2024, 06:31
Возникла потребность как-то автоматизировать передачу коротких сообщений через эфир без участия оператора.
Например, раз в день сообщить, какая температура на даче.
Начать решил с самого простого - код Морзе (да, я знаю про RTTY, PSK, FT8 и прочее)
Сформировать передачу маяка довольно просто.
Пиликаем на динамик:
https://dzen.ru/video/watch/66fe0fa8d4064b46fb17eba6
Код для ардуины: Второй пин я подключил к нулю, чтобы было удобно напаивать буззер.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 03 окт 2024, 06:39
Начнём с микрофонного усилителя. Ардуиновский микрофонный модуль я где-то потерял, поэтому делаем монтажку:
.
Тут всё по-старообрядчески электретник с питанием, два каскада с ОЭ (Ку ненормируемый максимальный), выпрямитель и RC-фильтр с частотой среза около 300 Гц.
Усиления всё же маловато, но если буззер (с наклеенной бумажкой - уже ночь, все спят) прижать к микрофону, то что-то получается:
https://dzen.ru/video/watch/66fe119fb022c206296e81c3
Видео на дзене сами не открываются. Надо скопировать и вставить ссылку...
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 03 окт 2024, 18:59
в тракте нет полосового фильтра, поэтому реагирует не только на писк, но и на шум подходящей длительности (на щелчки не реагирует)
Жду LM567 - с ним будет веселее
В конце символа добавил раскодировку букв
https://dzen.ru/video/watch/66febebcb022c206296882ef
.
- receiver_01.rar
- (1.14 КБ) 59 скачиваний
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 08:33
Как говорит один препод:
- Нуль матана, нуль!
Раз у нас есть вычислительный проц, да ещё с возможностью оцифровки - грех не воспользоваться.
К счастью, у нас не стоит задача выделить неизвестные гармоники с ресурсоёмким быстрым преобразованием Фурье.
Частота известна заранее. Нужно всего-то определить её наличие, либо отсутствие.
Поможет нам в этом всем известный простенький алгоритм Гёрцеля
Простой цифровой фильтр на Ардуине Нано (АТмега 328р 16 МГц)
Делаем смещение в полпитания на аналоговый пин и подаём на него аналоговый сигнал:
.
Этот скетч определяет уровень сигнала заданной частоты в спектре.
Результат выдаётся текстом в последовательный порт.
- decoder16.rar
- (2.41 КБ) 52 скачивания
Частота настройки - 992 Гц,
ширина полосы ~ 100 Гц,
чувствительность (при отсутствии шумов) - 5 мв.
Оптимальная амплитуда входного сигнала - 100...300 мВ.
Максимальная амплитуда входного сигнала - 2,5 В.
Время измерения ~ 16 мс.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 09:35
А если модифицировать скетч для обработки трёх тонов?
Делаем.
Для стабильности показаний выбираем частоты тонов, кратные частоте сэмплирования (8928 Гц):
- 1-ый тон 992 Гц,
- 2-ой тон 744 Гц,
- 3-ий тон 288 Гц.
- decoder17.rar
- (2.79 КБ) 51 скачивание
В схему добавляем простейший узел смешения сигналов. .
На входы ничего пока не подаём.
Смотрим, что на выходе
Первое число - время преобразования и вычисления,
второе, третье и четвёртое - амплитуды 1, 2 и 3 тонов (чёрточки - не минусы, а разделители) - значения близки к нулю.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 10:06
тоны 1 и 3 (992 и 288 Гц): получаем: .
тоны 1 и 2 (992 и 744 Гц): получаем: .
тоны 2 и 3 (744 и 288 Гц): получаем: .
Вывод:
- амплитуда частоты 288 Гц получилась на 30...50 % ниже, чем 992 и 744 Гц.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 12:11
8928/992 = 9, 108/9 = 12
8928/744 = 12, 108/12 = 9
8928/288 = 31, 108/31 = 3,48387 - нет целого числа
8928 - частота сэмплирования,
992, 744, 288 - частота тонов,
108 - число выборок. Больше 127 выборок почему-то задать не могу, МК виснет.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 12:17
- decoder18.rar
- (1.32 КБ) 54 скачивания
Без сигнала: .
один тон 992 Гц = 50 мВ: .
один тон 744 Гц = 2,5 В: .
два тона 992 Гц = 50 мВ + 744 Гц = 2,5 В: .
Вывод:
- Уровни тонов 992 и 744 почти не влияют друг на друга.
ru0aog
- ru0aog
- Сообщения: 1033
- Зарегистрирован: 30 сен 2021, 05:50
- Позывной: ru0aog
- Город: Красноярск
- Имя: Станислав
- Благодарил (а): 134 раза
- Поблагодарили: 147 раз
CW маяк. пейджер
Сообщение ru0aog » 06 окт 2024, 12:33
8928/744 = 12, 108/12 = 9
8928/330 = 27,05, 108/27,05 = 3,99 - эта частота ближе к целому числу, с ней замеры получаются много точнее, чем на 288 Гц.
ru0aog
- R9OFG
- Сообщения: 1257
- Зарегистрирован: 03 ноя 2019, 22:30
- Позывной: R9OFG, ex R0AEK
- Город: Новосибирск
- Имя: Саша
- Благодарил (а): 194 раза
- Поблагодарили: 299 раз
- Контактная информация:
CW маяк. пейджер
Сообщение R9OFG » 06 окт 2024, 13:38
Как выборки задаются?
Виснет скорее всего от переполнения чего то, попробуй тип переменной поменять
volatile uint16_t frame[samples]; на volatile uint32_t frame[samples];
R9OFG
Вернуться в «Микроконтроллеры и программирование»
- Обязательно к прочтению
- Аналоговая схемотехника
- ↳ Супергетеродинные приемники и трансиверы
- ↳ Прямое преобразование
- ↳ Прямое усиление
- ↳ Регенераторы
- ↳ Узлы, блоки, модули
- ↳ Усилители мощности
- Цифровая техника
- ↳ SDR приемники
- ↳ SDR приставки
- ↳ SDR трансиверы
- ↳ Микроконтроллеры и программирование
- Теплая лампота
- ↳ Супергетеродины
- ↳ Регенераторы
- ↳ Прямого усиления
- ↳ УНЧ
- ↳ ВЧ усилители мощности
- Источники питания
- ↳ Трансформаторные и линейные
- ↳ Импульсные и преобразователи
- ↳ Гибриды
- ↳ Аккумуляторы и батареи
- ↳ Альтернативные источники
- Антенны
- ↳ Антенны КВ
- ↳ Антенны УКВ
- ↳ Фидеры кабели
- ↳ Антенные приборы и устройства
- ↳ Тюнеры
- Фирменная аппаратура
- ↳ Yaesu
- ↳ Icom
- ↳ Kenwood
- ↳ Прочие
- Мастерская
- ↳ Измерения, приборы и софт
- ↳ Паяльное оборудование
- ↳ Слесарка
- ↳ ЧПУ и 3D принтеры
- Разное
- ↳ Другие радио темы
- ↳ Полевой день
- ↳ Помогите опознать
- ↳ Куплю Продам Магазины Продавцы
- ↳ Флудильня и оффтоп
- Работа форума