Разработка поворотного устройства для антенны: от механики до сетевого управления

Антенные поворотные устройства (АПУ) с электроприводом широко распространены в радиолюбительской практике. Они необходимы для точного позиционирования направленных антенн, обладающих узкой диаграммой излучения и, как следствие, высоким коэффициентом усиления. Чем острее эта диаграмма, тем жёстче требования к точности наведения. Именно поэтому схемотехника и конструкция устройств сильно разнятся по степени сложности. В высокоточных системах применяются сервоприводы и датчики угла поворота с высокой разрешающей способностью. В простейших же случаях, когда строгих требований к углам нет, достаточно обычного электродвигателя с редуктором. Именно такие базовые устройства многие радиолюбители и предпочитают изготавливать своими руками.
Основные идеи
В моём арсенале имеется трёхэлементный «Волновой канал» (Yagi) на диапазон 20 метров. Конструкция у неё стандартная, к тому же на этом КВ-диапазоне высокая точность наведения не требуется. Поворотное устройство для неё я решил изготовить самостоятельно. Сразу оговорюсь: антенна вращается исключительно по азимуту в горизонтальной плоскости. В радиолюбительской практике иногда требуется вращение в двух плоскостях, но в данном проекте решалась задача исключительно горизонтального позиционирования. Как мне давно советовали другие радиолюбители, в качестве датчика и индикации угла поворота будет достаточно 8 герконов и 8 светодиодов, подключенные к ним. Однако я рассматривал вариант с применением потенциометра. В роли электропривода я собирался использовать двигатель с редуктором от задвижки (рис. 1). На таких редукторах изготавливают поворотные устройства многие радиолюбители. Он реверсивный, напряжение питания 220В. В простейшем случае двигатель подключается к кнопкам «Вперёд» и «Назад», которыми он будет управляться. Я всегда видел недостатки при использовании данного привода. Во-первых – отсутствие плавного запуска. При вращении габаритной антенны в момент запуска редуктор подвергается нагрузке. Во-вторых – невозможность регулировать скорость вращения. Поэтому мне хотелось применить частотный преобразователь, чтобы избежать этих двух недостатков. Кроме этого, как мне было известно, порывы ветра раскачивают антенну, когда она находится в неподвижном состоянии, и могут выводить из строя механизм редуктора. Вне зависимости от того, какой привод у меня будет применён, я задумал сделать каким-то образом удерживающий механизм, который бы держал антенну в зажатом состоянии, пока она не используется.
От вышесказанного привода я отказался, когда мне попался в руки довольно неплохой моторчик с редуктором от конвейера (рис. 2). Он трёхфазный, его мощность около 200 Вт. К нему я нашёл частотный преобразователь на 0.75 кВт (рис. 3). В продаже имеется много похожих китайских частотных преобразователей небольшой мощности с питанием от однофазной сети 220В, что очень удобно для применения в быту. Но лично у меня был частотный преобразователь на те же 0.75 кВт, но с трёхфазным питанием 380В. Я решил оставить именно его, при наличии трёхфазного ввода это более логичное и надёжное решение.


Больше всего я потратил время на продумывание механизма зажима. У меня было множество вариантов, которые, наверно, нет смысла здесь перечислять. В итоге я остановился на оригинальном решении: использовать заднюю автомобильную полуось в связке со штатным стояночным тормозом. Для управления ручником можно было сделать самодельный привод или купить дорогой готовый актуатор электроручника от иномарки. Я пошёл по первому пути. Из Китая я заказал специальный актуатор (рис. 4) на червячном механизме, иначе говоря, «линейный» электродвигатель. Привод работает он от постоянного напряжения 12В, имеет внушительное усилие до 70 кг и обычно применяется для автоматического открывания ворот или теплиц. Я же задумал его соединить с тросом стояночного тормоза. Саму полуось в сборе с тормозным барабаном и колодками от ВАЗ-2107 я за копейки приобрёл на местной авторазборке.

С усложнением механики самодельного поворотного устройства напрашивалось и усложнение электронной схемы управления. Мне пришла идея использовать в качестве датчика и указателя угла поворота более сложную систему, и в целом выполнить всю электронную конструкцию на микроконтроллере. Передаточное соотношение моего редуктора оказалось 720:1, что очень удобно: 2 оборота двигателя на 1 градус поворота антенны – целые числа! Я решил использовать датчик оборотов двигателя, прицепив его сзади на ось вместо крыльчатки, которая изначально отсутствовала. Точнее, прицепил металлический флажок, а датчик, в роли которого выступает БВК, закрепил неподвижно рядом. В итоге он выдаёт 1 импульс на 1 оборот двигателя. Получается, что точность моего поворотного устройства составляет полградуса. Но на практике будет далеко не так, учитывая небольшой люфт моего б/у редуктора из-за износа и отсутствие внешнего энкодера, который бы выдавал конкретный угол поворота антенны.
Поворотное устройство не будет предусматривать бесконечное вращение антенны по кругу. Для этого бы потребовалось подключать кабель к антенне через специальные токосъёмники, чего я изначально делать не собирался. Вращение должно осуществляться только на один полный оборот в обе стороны. Для предотвращения лишнего поворота я задумал поставить концевые выключатели, которые по достижении конца или начала рабочей области вращения будут отключать электропривод. В принципе, это стандартная практика. Если осуществлять управление устройством через электронную плату на микроконтроллере, учитывая наличие счётчика оборотов двигателя, можно (точнее, нужно) предусмотреть ограничение вращения на программном уровне. При этом упомянутые концевые выключатели будут использоваться как аварийные.
При снятии напряжения с электродвигателя, как известно, он останавливается не сразу. Существует некое время инерции, в течение которого он плавно уменьшает обороты. В случае с частотным преобразователем можно осуществлять останов двигателя путём плавного уменьшения частоты. При снятии команды вращения частотный преобразователь сам производит процесс плавной остановки двигателя в течение заданного в настройках интервала времени. Если требуется поворот на нужный угол, это время следует учитывать и подавать команду на останов двигателя заранее.
К этому моменту времени в целом стало понятно, какими основными функциями должен обладать контроллер управления поворотным устройством. Для индикации азимута можно поставить цифровой дисплей, где будет высвечиваться азимут в градусах. Кроме ручного управления (кнопки «Вперёд» и «Назад») можно предусмотреть функционал автоматического управления с предварительным заданием требуемого азимута.
Управлять частотным преобразователем с помощью внешнего микроконтроллера можно двумя способами. Первый, самый простой способ – через дискретные порты ввода/вывода частотного преобразователя, подключившись к клеммам и назначив им соответствующие функции. Второй способ, более сложный – через цифровой интерфейс RS-485 по протоколу MODBUS, подключившись через UART интерфейс микроконтроллера. В моём дешёвом частотном преобразователе, на моё удивление, был такой интерфейс. Более того, даже в руководстве пользователя на русском языке был описан протокол управления с примерами для программиста (рис. 5). Чтобы протестировать управление частотным преобразователем через данный протокол, я одолжил у знакомых промышленный переходник «RS-232–RS-485» (рис. 6), подключил через него частотный преобразователь к COM-порту компьютера и написал простейшую программу управления. Всё заработало успешно и с первого раза. Однако, забегая вперёд, я отказался от MODBUS в пользу обычного дискретного управления (первого способа), чтобы повысить надёжность и упростить диагностику. Тем более, как я понял, RS-485 используется в первую очередь для управления несколькими частотными преобразователями, которые соединены параллельно в единую сеть и распределены по адресам.


Интеграция с UR5EQF_Log
Хочу подробно написать про ещё одну интересную идею, которую я задумал воплотить в функционал своей будущей конструкции. Начну с небольшого предисловия. Многие радиолюбители, в том числе и я, пользуются программой UR5EQF_Log. Это аппаратный журнал для записи проведённых радиосвязей с кучей дополнительных модулей и возможностей. При вводе позывного радиолюбителя в соответствующее поле программа умеет автоматически определять его примерное местоположение исходя из внутренних баз данных. Это место показывается точкой на карте мира, встроенной в программу. Кроме этого, программа также показывает её азимут в градусах относительно текущего домашнего местоположения, которое вводится заранее в настройках. То есть, программа умеет автоматически определять азимут направления антенны на корреспондента, позывной которого вводится в поле. Я раньше интересовался, можно ли каким-то образом «вытащить» из программы этот азимут, чтобы в дальнейшем его передать на программу управления поворотным устройством с целью автоматизации поворота антенны. При этом было замечено, что ряд других вспомогательных программ как-то взаимодействуют с UR5EQF_Log. Возможно, есть какой-то API, но никакого описания я нигде не нашёл. А когда пришло время установить последнюю версию UR5EQF_Log, мне представилось множество новых функций, одна из которых – управление ротатором. В главном окне программы появились кнопки со стрелочками, судя по всему, для вращения антенны вручную. В меню «Установки – Настройка программы» есть пункт «Программа управления ротатором» (рис. 7). При нажатии открывается маленькое окошко, где можно ввести IP адрес и UDP порт.
Значения по умолчанию соответственно 127.0.0.1 и 1234. Справа от полей ввода написана подсказка: «Remote program: PstRotatorAr by YO3DMU». И я сразу понял, в чём дело. На компьютер ставится эта программа, которая управляет фирменным одноимённым поворотным устройством. И эта программа взаимодействует с UR5EQF_Log по сети через петлевой IP адрес. Очевидно, что можно поставить PstRotatorAr на другой компьютер в локальной сети, прописав в настройках другой адрес. Да и вообще – где угодно в Интернете с белым IP адресом, лишь бы было всё правильно настроено. Поскольку у меня уже был опыт «сетевого» программирования, я сразу загорелся идеей внедрить в свою конструкцию этот функционал, чтобы обеспечить взаимодействие с UR5EQF_Log точно так же, как это делает PstRotator (рис. 8). Если говорить точнее, именно эта находка послужила мощным триггером для всего проекта, а все остальные детали я додумывал уже позже.

В магазине приложений на смартфоне Android я нашёл полезное серверное приложение «UDP Receiver», через которое можно просматривать входящие UDP пакеты. В настройках задаётся порт входящих соединений. Туда я прописал тот же порт 1234, что и в программе UR5EQF_Log. А в поле IP адреса окна «Программа управления ротатором» я прописал адрес моего смартфона из локальной сети. Запустив UDP Receiver на «прослушивание», я начал манипулировать интерфейсом UR5EQF_Log и сразу увидел на экране смартфона содержимое пакетов. Передаваемая информация оказалась человекочитаемой и была оформлена в стиле XML. Совсем несложно догадаться, что означает каждое поле (рис. 9.). При нажатии кнопок в UR5EQF_Log ручного управления поворотом антенны отправляются пакеты со словами LEFT или RIGHT, и STOPR. А при вводе позывного в соответствующее поле UR5EQF_Log с каждым вводом нового символа приходит пакет, содержащий различную информацию, среди которой есть значение азимута для вводимого позывного. Тем самым я могу в своей конструкции предусмотреть сетевой интерфейс, подключиться к домашней локальной сети и реализовать функцию автоматического поворота антенны на нужный азимут при вводе позывного. Другой вопрос – насколько это удобно на практике, и нужно ли это вообще? Мне пока тяжело дать ответ, главное – воплотить задуманное.

Электронную плату я решил изготавливать на базе уже знакомого микроконтроллера Atmega128. Я не стал внедрять какой-либо STM32, посчитав, что мой проект не такой уж и сложный. Но с другой стороны я решил поставить именно Atmega128, понимая, что это чересчур. Однако он у меня был в запасе, да и, как позже выяснилось, большое количество портов ввода-вывода на борту МК пошло только на пользу.
Модуль Ethernet, отвечающий за работу с обменом данными UDP, – уже мне знакомый W5500, который я хорошо освоил. Моя самая первая статья на Хабре была посвящена разработке и конструированию Telnet-сервера как раз на основе этого модуля. В той конструкции программа МК Atmega8 отвечала за обработку сокетов модуля W5500 (их там 8), которые были сконфигурированы в режиме TCP-сервера, а пользовательские данные перенаправлялись на UART интерфейс МК. В случае с контроллером поворотного устройства один из сокетов будет работать в режиме UDP, условно говоря, сервера для взаимодействия с программой UR5EQF_Log. Второй сокет W5500 напрашивается отдать под TCP-сервер для Telnet-терминала, как в вышеупомянутой статье, чтобы производить управление или отладку устройства по аналогии с обычным UART. Там же я писал, что вариант с сетевым терминалом намного практичнее.
Интеграция с самодельными часами
В этот момент мне пришла идея реализовать ещё одну сетевую функцию, задействовав под неё третий сокет W5500 в режиме TCP-клиента. Одна из моих прошлых статей была посвящена большим самодельным часам на светодиодной ленте. К их плате подключен переходник TCP-UART для управления через Telnet-терминал, а среди команд есть вывод на индикаторы произвольной комбинации сегментов. Я подумал: почему бы не заставить контроллер поворотного устройства по нажатию кнопки подключаться к этим часам по сети и транслировать на них, к примеру, текущий азимут антенны? Тем более что они висят на той же мачте, где планируется установить поворотное устройство. Тремя вышеперечисленными сокетами можно не ограничиваться. При необходимости в будущем на четвёртом сокете можно реализовать популярный современный сетевой протокол TCI, служащий для управления множеством радиолюбительских устройств.
Механика
Все вышеперечисленные рассуждения и идеи были придуманы мной ещё за несколько лет до начала реализации конструкции. Сперва я начал изготавливать механику, уделив этому немало времени. Я уже упомянул про основные механические узлы. Основная площадка для поворотного устройства – прямоугольная металлическая платформа, толщиной 6 мм. В ней просверлено 5 отверстий: 4 крепёжных и 1 по центру для оси вращения. Над платформой прикрепляется автомобильная полуось наподобие башмака с тормозным барабаном и диском (рис. 10). Дополнительно она распёрта четырьмя уголками. Под платформой по центру приварен металлический цилиндр, к которому прикрепляется двигатель с редуктором. Внутри цилиндра расположена переходная муфта для соединения редуктора с осью вращения. На все механические части я зарисовал эскизы для общего представления конструкции в целом (рис. 11). Рядом с цилиндром расположен аварийный концевой выключатель, физически разрывающий цепь питания пускателя частотного привода. Я долго думал над реализацией этого узла и в итоге остановился на тросовом выключателе (рис. 12), срабатывающем не на нажатие, а на вытягивание. Сам датчик смонтирован на оси с возможностью небольшого поворота. Его я изготовил самостоятельно, так как промышленные аналоги неоправданно дороги. Конструкция предельно проста: подпружиненный металлический штырь, к которому крепится тросик, давит на рычаг обычного концевика. Сам тросик толщиной 2 мм (взят от переключателя скоростей велосипеда) привязан к переходной муфте внутри цилиндра и выведен наружу. Его длина подобрана так, что при вращении антенны в штатном секторе он свободно провисает. Но стоит конструкции выйти за критическую отметку, как трос натягивается, огибает муфту и выдергивает штырь, обесточивая систему. Допустимый сектор, образно говоря, составляет от -5 до 365 градусов – то есть с небольшим перекрытием полного оборота в обе стороны.


Актуатор зажима/разжима расположен под платформой горизонтально с другой стороны от аварийного выключателя (рис. 13). К нему прикреплён трос стояночного тормоза от автомобильного башмака. Для заворота троса применяется блок (колёсико) с краю платформы.

Электроника и интерфейс
Переходим постепенно от механики к электронике и интерфейсу. Электроника поделена на две части: одна часть расположена внизу в помещении, а вторая – непосредственно возле поворотного устройства. В первом случае это плата с МК, частотный преобразователь, пульт с кнопками и прочие мелочи, о которых я напишу позднее. Во втором случае – плата управления зажимом/разжимом совместно с блоком питания актуатора. В его основе – небольшой силовой трансформатор от старого магнитофона, диодный мост и конденсатор. Стабилизация в данном случае особо не требуется. Там же установлены два реле: одно реле подключает БП к сети 220В, а второе – меняет полярность на выходе. Они вместе с диодным мостом и конденсатором расположены на плате, прикреплённой к штатному каркасу (рис. 14). Располагается этот БП в промежуточном шкафу с клеммниками рядом с поворотным устройством. Оба реле на плате БП управляются от основной платы с МК. Благодаря этому обеспечивается управление зажимом и разжимом антенны.

Гораздо позже сверху платы с реле я добавил плату с двумя симисторными ключами, подключенными по силовому входу к 220В (рис. 15). Плата питает два дюралайта красного и зелёного цветов. Они прикреплены к траверсе антенны и являются своего рода подсветкой (для красоты). Включаются и отключаются дюралайлы по сигналам зажима и разжима антенны от отдельных портов МК.
Плата управления зажимом/разжимом расположена в коробке под платформой поворотного устройства и работает на аппаратном уровне (рис. 16). Принцип работы основан на контроле силы тока в цепи актуатора. При достижении определённого усилия в процессе зажима, которому пропорционален ток, актуатор отключается. Усилие зажима задаётся подстроечным резистором на плате. Для остановки актуатора при разжиме служит БВК, который можно регулировать механически, изменяя расстояние срабатывания. Также на плате я предусмотрел возможность подключения тензодатчика. Он должен устанавливается между актуатором и тросом в разрыв, чтобы при зажиме отключать актуатор не по превышению тока, а непосредственно по достижению усилия. Вообще, история с разработкой и модернизацией платы и принципа управления зажимом/разжимом очень долгая. Эта часть устройства оказалась самой капризной. Тестирование и работа над ошибками продолжаются до сих пор.
Процесс зажима и разжима занимает 2-3 секунды, что не есть быстро, из-за чего я учёл два варианта его применения на практике: разжимать и зажимать каждый раз при повороте антенны или только один раз при включении и отключении устройства. При этом заранее я не знал, какой из вариантов окажется удобнее. На кнопочном пульте управления (пока что временный) (рис. 17) имеется переключатель для принудительного зажима или разжима. Само собой при команде вращения антенны в автоматическом режиме разжим происходит автоматически, если антенна находилась в зажатом состоянии. Также на пульте имеется переключатель спящего режима, переключатель подключения к часам для вывода азимута (о чём я писал выше), переключатель скорости вращения при ручном управлении. Из кнопок без фиксации – «вперёд», «назад» и кнопка подтверждения поворота на азимут, принятый из программы UR5EQF_Log по сети.

Для задания скорости при ручном управлении вращением антенны я изначально хотел поставить потенциометр, но позже посчитал это лишней затеей. Вместо него я поставил переключатель, задающий две скорости: «быстро» и «медленно». Вообще, я предусмотрел в дискретном управлении частотным преобразователем 4 скорости, задающиеся двумя двоичными разрядами. Это наряду с плавным запуском и плавным торможением, что задано в параметрах самого частотного преобразователя. Для ручного управления задействована самая низкая и самая высокая скорости. Остальные используются в автоматическом режиме и выбираются автоматически в зависимости от угла поворота антенны: чем больше угол поворота, тем больше выбирается скорость. Эти зависимости заданы в программе микроконтроллера. Также, о чём я писал выше, при автоматическом повороте на заданный угол предусмотрен алгоритм предварительной подачи команды останова для учёта «тормозного пути». Угловая величина этого пути на практике может зависеть не только от набранной скорости вращения, но и от прочих условий, поэтому в программе микроконтроллера я реализовал адаптивный алгоритм.
Основная плата с МК размещена на дверце электрошкафа (рис. 18). Микроконтроллер распаян на отдельной переходной плате SMD-DIP в целях удобства разводки дорожек платы. Внутри этого шкафа расположен частотный преобразователь, блок питания 24В, выходной фильтр для двигателя (чересчур большой, но такой был у меня в наличии) и прочие вспомогательные элементы (рис. 19). На дверце имеется прорезь для частотного преобразователя (он не поместился вовнутрь по глубине), а также – прорези под дисплей, два светодиода и три кнопки (рис. 20). Дисплей состоит из трёх семисегментных индикаторов и отображает текущий либо задаваемый азимут в градусах, а два светодиода (красный и зелёный) показывают, какой именно режим активен в данный момент. Расположенные рядом три кнопки изначально планировались для настройки расширенных параметров. Однако пока что за ними закреплена более простая функция: с их помощью можно выбрать любой угол от 0 до 360 градусов и отправить туда антенну. В будущем я собираюсь реализовать на дисплее вывод кодов ошибок (например, E01, E02) при аварийных ситуациях – скажем, если в течение заданного времени не сработал нужный датчик. Такой функционал был бы очень полезен при повторении конструкции другими радиолюбителями, хотя мне, как разработчику, в повседневной эксплуатации он пока не особо нужен.

Ручное управление поворотом антенны предусматривает предварительный ручной разжим кнопкой на том же пульте, в то время как автоматические операции поворота антенны могут сами управлять зажимом/разжимом. Под автоматическими операциями подразумевается поворот антенны на заданный азимут с кнопок на плате (на шкафу) или с UR5EQF_Log. А ручное управление – с кнопок на выносном пульте, из программы UR5EQF_Log с экранных кнопок или с помощью PTZ (об этом речь пойдёт ниже).
Интеграция с видеонаблюдением
Управление поворотом антенны по интерфейсу PTZ – функция не самая обязательная, и реализовал я её скорее ради эксперимента. На плате управления предусмотрен порт RS-485, через который устройство подключается к шине аналогового видеонаблюдения. Регистратор управляет периферией по протоколу PELCO-D. К слову, в этой сети у меня работают не только камеры, но и две платы реле для коммутации нагрузок, о которых я рассказывал в одной из прошлых статей. Теперь к ним добавилась и «поворотка». Для видеорегистратора она маскируется под обычную PTZ-камеру, что позволяет вращать антенну кнопками «Влево/Вправо» прямо из интерфейса – с пульта, через браузер или мобильное приложение (рис. 21). Для визуального контроля камеру можно закрепить либо на самой стреле (вид от первого лица), либо в стороне, направив её на мачту (вид от третьего лица, как на рис. 21). На программные команды вертикального наклона (Up/Down) я повесил функции зажима и разжима. Они активны, если управление не заблокировано с локального пульта. Все приоритеты команд я заранее продумал и оптимизировал. Кроме того, повторное нажатие кнопок зажима или разжима с регистратора дублирует ту самую команду подключения к часам для вывода азимута. Здесь хочу вставить небольшое отступление. Размышляя над этой интеграцией, ловишь себя на грустной мысли: современные и более качественные системы видеонаблюдения практически лишили DIY-энтузиастов возможности делать подобные нестандартные вещи «на коленке». Постепенный уход от простых децентрализованных протоколов в сторону закрытых интернет-облаков и вендорских сервисов планомерно закрывает двери для независимого управления собственной инфраструктурой. Старый добрый PELCO-D на шине RS-485 тем и прекрасен, что он полностью подконтролен автору: здесь нет подписок, закрытых API и привязки к серверам производителя – только чистая логика, железо и ваша прошивка.

Стрелочный индикатор азимута
Цифровой индикатор азимута на борту платы управления поворотным устройством не всегда удобен на практике. Гораздо удобнее отображать азимут антенны стрелкой на азимутальной карте. По ней сразу видно, на какие страны и города направлена антенна. И мне захотелось реализовать такой стрелочный индикатор. Сначала я думал применить в его основе шаговый двигатель. Но затем узнал о существовании так называемых «сервоприводов». Для меня, как электронщика, привыкшего по долгу службы на производстве иметь дело с тяжелыми приводами Siemens и Fanuc, это словосочетание звучит монументально и гордо. Тем смешнее было увидеть, что скрывается под этим термином в мире хобби и DIY за 250 рублей. В данном контексте «сервопривод» – это миниатюрный пластиковый исполнительный механизм, невероятно популярный у ардуинщиков и робототехников (рис. 22). Из него выходит три провода: Земля (GND), Питание (Vcc) и сигнал управления. Управляется он абсолютной шириной (длительностью) импульса, а не его скважностью, как я ошибочно предполагал изначально. Здесь небольшое техническое пояснение. В классическом понимании ШИМ-управления (PWM) мы привыкли менять скважность – процентное отношение времени импульса к периоду, причём саму частоту несущей можно выбирать практически любой в разумных пределах. Но хоббийные сервоприводы устроены иначе: их внутренняя схема слежения измеряет строго время высокого уровня в миллисекундах. Если оставить ту же скважность, но изменить частоту таймера МК, длительность импульса в микросекундах уплывёт и сервопривод встанет в некорректный угол. Управление здесь абсолютно временнóе, а не относительное. Купил я такой указатель за 250 руб. ещё пару лет назад. Он обладает одной особенностью не в мою пользу – его рабочий угол составляет 180 градусов. Необходимого мне 360-градусного варианта я не нашёл (или плохо искал). Поэтому мне пришлось долго придумывать и пробовать реализовывать из роликов и шестерней передаточную систему 2:1. Насчёт корпуса я также долго думал и остановился на стрелочных часах. Пришлось ради этого купить стрелочные часы большого размера диаметром 30 см (рис. 23). Часовой механизм со стрелками мне было жалко выбрасывать, и я нашёл для него применение, но это за рамками данной статьи. Также я приобрёл набор различных пластиковых шестерней с различным числом зубьев и конфигурацией (цилиндрические, конические, червячные и т.д.) (рис. 24). Среди них мне удалось подобрать пару шестерней, которая не только повышала обороты в 2 раза, но и разворачивала ось на 90 градусов. Благодаря этому мой сервопривод лёг набок и идеально вписался в корпус часов. Стрелочный указатель получился довольно неплохой с виду (рис. 23). Теперь нужно на него распечатать красивую азимутальную карту на большом формате по размеру корпуса, но я пока не определился с её параметрами. Поэтому пока что распечатал временную «заглушку» на обычном формате A4. На практике получилось так, что данный стрелочный индикатор работает кривовато, с запозданиями, рывками и люфтами. На уровне вычислений и таймеров МК дискретная шкала управления этим указателем не ложится нацело на дискретную шкалу азимута (с шагом в полградуса). Не идеально с точки зрения математического перфекционизма, но это не главное – законы механики в данном случае сильнее. Впрочем, причины «кривизны» вполне осязаемы, и у меня уже есть идеи по оптимизации механизма. Во-первых, нужно заменить врéменную стрелку из тяжёлой медной проволоки на что-то более лёгкое. Во-вторых, в процессе тестов я понял, что для оси остро не хватает промежуточного миниатюрного подшипника. Эти два решения должны заметно минимизировать люфты. А пока что конструкция работает скорее как игрушка, ведь она и собрана из дешёвого сервопривода и пластиковых шестерёнок, которые, как было указано в описании товара, предназначены для ремонта детских игрушек. Но для текущих задач этого хватает: итоговая погрешность отображения вполне укладывается в ширину диаграммы направленности самой антенны. Также в программе МК предусмотрено несколько режимов отображения на стрелочном индикаторе: текущий азимут, заданный азимут, дублирование цифрового дисплея и произвольный отладочный режим.


Завершение
Пожалуй, на этом можно закончить. Статья получилась, на мой взгляд, больше обзорной, чем строго технической. Возможно, в будущем я напишу продолжение, где подробно расскажу про схемотехнику электроники и программную реализацию. А пока – законы механики и горсть игрушечных шестеренок взяли своё. Наверное, даже символично, что эта статья выходит именно в это воскресенье. Пожалуй, создание таких механизмов – это лучший способ встретить сегодняшний день. Всех причастных инженеров – с праздником!
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.