29 марта 2026

Управление антенной из SDR приложения

 Продолжение проекта магнитной рамочной антенны. В прошлый раз был добавлен актуатор для КПЕ в виде шагового мотора и сделана прошивка для микроконтроллера. В этот раз я полностью собрал антенну и сделал автоматическое управление из SDR приложения.


Для автоматического управления антенной взял Raspberry PI 3 Model B у которого на борту есть WiFi и Ethernet. Поскольку антенна будет стоять на балконе (на котором не предусмотрена розетка Ethernet), то пока единственным вариантом соединения с raspberry будет WiFi.

Записал на SD карту образ Debian 13 и подключил raspberry к монитору, клавиатуре и проводной сети для настройки. Настройка была минимальной:

  • установить несколько пакетов вроде network-manager, openssh, locales, tzdata и rtl-sdr. 
  • настроить подключение к домашней WiFi сети.

После настройки запустил команду "rtl_tcp -a 0.0.0.0" и подключился из SDR++ к raspberry.

Всё прошло успешно и можно переходить к завершающей части - автоматической настройке антенны на частоту, которую задаёт SDR приложение.

Рассматривал несколько вариантов:

  1. Добавить в rtl_tcp функциональность для управления антенной.
  2. Сделать прокси для rtl_tcp который будет реагировать на команду изменения частоты.
  3. Искать строки вида "set freq FREQUENCY" в STDOUT от rtl_tcp и перестраивать антенну.

Последний вариант наиболее простой и не требует каких либо изменений в rtl_tcp. Написал python скрипт который следит за сообщениями о смене частоты в rtl_tcp, пересчитывает частоту в положение актуатора и выполняет перестройку антенны.

Пересчёт частоты в положение актуатора сделал через таблицу калибровки - подключил к антенне NanoVNA и прошёлся по диапазону актуатора с шагом 100 (0, 100, 200, ..., 1400) записывая частоту на котором КСВ минимальный. Полученную таблицу использовал для линейной аппроксимации промежуточных значений.

Добавил сервис systemd для автоматического запуска и MVP антенны готов. Выложил на GitHub последние изменения в моделях и прошивке.

В процессе наладки расширился функционал управления через браузер


Теперь из него можно запустить калибровку положения актуатора и установить абсолютное значение положения.

Ещё нужно добавить считывание напряжения батареи, т.к. за несколько дней работы антенны она разрядилась до срабатывания защиты. Потребление esp8266 с включённым WiFi около 100 мА и полностью заряженной батареи будет хватать только на 40 часов или около того. Есть мысль сделать питание контроллера через bias tee, что позволит отказаться от аккумулятора на антенне, но пока решил сосредоточиться на доработке апконвертера, который всё ещё в виде нескольких плат на столе.

Другие посты по теме:


Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Комментариев нет:

Отправить комментарий