Пульт управления азимутальным поворотным устройством

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

Пульт управления разработан на базе микроконтроллера STM32L010F4. Подходит для поворотных устройств с импульсным выходным сигналом (количество импульсов на полный оборот) Например RY85-1, AZ2000 и подобные.
Реализован стандартный интерфейс GS-232 для управления поворотным устройством с ПК с помощью USB. Рекомендую использовать программу RotorCraft (by KK5JY).


Для калибровки пульта управления необходимо выставить антенну на север (0 гр.) и включить питание пульта с зажатой красной кнопкой (START). Будет выставлено значение 0 гр.
Запись текущего положения антенны происходит в энергонезависимую память каждый раз при отключении питания пульта.

Обозначения на дисплее устройства
CUR AZIMUTH — Текущий азимут антенны
ANT AZIMUTH — Предустановленный пользователем азимут. После нажатия кнопки START произойдет вращение антенны на предустановленный азимут.

Размер платы 100*60 мм.

Немного о том, как реализован счетчик импульсов. Выход импульсов от редуктора поступает через развязывающую оптопару 4N35 на счетный вход таймера микроконтроллера. На этом же таймере настроены прерывания по переполнению, то есть как только поступит необходимое количество импульсов, произойдет прерывание, которое сообщит основной программе, что антенна повернулась на необходимое количество градусов.
В прошивке реализован алгоритм защиты от обрыва в кабеле. Если после подачи напряжения на редуктор счетчик импульсов в течение 10 секунд не получает ни одного сигнала, питание с редуктора снимается автоматически.
АЦП микроконтроллера служит для определения момента выключения питания. После того как АЦП обнаружит снижение напряжения питания на плате ниже определенного уровня, микроконтроллер записывает данные, которые необходимо сохранить, в энергонезависимую память (конденсатор большой емкости по питанию позволяет успеть это сделать).

Прошивка, исходный код, схема и печатная плата доступны на GitHub.
По умолчанию прошивка рассчитана на редуктор поворотного механизма с 960 импульсами/360 гр. Для изменения этого параметра, необходимо пересчитать коэффициенты и внести изменения в прошивку. В файле main.h необходимо внести ваши данные в define:

#define PULSE_PER_360 960  // количесвто имульсов на полный оборот
#define step 3             // шаг установки угла поворота
#define timer_preload 7    // количество импульсов на один шаг 
                           // установки поворота минус 1

Также нужно раскомментировать нужный I2C адрес для используемого дисплея в файле lcd_conf.h:

#define LCD_I2C_ADDRESS 0x3F	// контроллер i2c PCF8574AT
#define LCD_I2C_ADDRESS 0x27	// контроллер i2c PCF8574T

Несколько слов по поводу внешних подключений. Я использовал кнопки без фиксации со встроенной светодиодной подсветкой.

CW — подключение кнопки для вращения антенны по часовой стрелке
CCW — подключение кнопки для вращения антенны против часовой стрелки
START — подключение кнопки запуска вращения антенны

LEDS 1 — плюс к светодиоду на кнопке CW
LEDS 2 — плюс к светодиоду на кнопке CCW
LEDS 3 — плюс к светодиоду на кнопке START

Используется LCD дисплей на базе WH1602 с установленным I2C адаптером (PCF8574). Подключается к разъему to_LCD.

Питание платы — 12В. Оно же поступает на реле и управляет редуктором. Если вы хотите использовать источник питания 24В, необходимо удалить диод 1N4007, установленный рядом с клеммами питания. И подать 24В на место, где был припаян анод диода, а 12В подать на место, где стоял катод диода. Таким образом 24В будут поступать только на двигатель поворотного устройства, схема же будет запитана от 12В.

На клеммах CCW и CW будет появляться напряжение для вращения редуктора против и по часовой стрелке соответственно.

На разъем PULSE и GND подается сигнал с датчика импульсов двигателя.

При подключении устройства к ПК с помощью USB разъема должен появиться новый COM порт, который будет использоваться для программы управления (протокол GS232). Микросхема преобразователя интерфейсов USB-UART — CH340C.

Обновление или первоначальная загрузка прошивки в устройство возможна через USB соединение. Необходимо установить перемычку на разъеме BOOT в положение ON и подключить USB кабель к компьютеру.

Далее запустите программу STM32 Flash Loader, выберите файл с прошивкой (*.bin). Выберите нужный COM порт, скорость 115200, Page size 128 и нажмите кнопку «Write Firmware and Start». После успешной загрузки прошивки, отключите USB кабель и поставьте перемычку BOOT в положение OFF. Устройство готов к работе.

Обратите внимание, что для штатного запуска устройства необходимо, чтобы LCD дисплей был подключен к плате.

Запись опубликована в рубрике STM32, Радио с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *