| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| rotator [2021/02/07 00:38] – [Особенности альтернативной прошивки] walhi | rotator [2026/02/27 16:35] (текущий) – walhi |
|---|
| ====== Альтернативная прошивка для контроллера поворотного устройства R851 ====== | ====== Альтернативная прошивка для контроллера поворотного устройства R851 ====== |
| |
| **Проект активно разрабатывается. На данном этапе реализовано примерно 65% запланированного. Как только прошивка будет готова - все исходные коды будут опубликованы.** | **Проект очень медленно разрабатывается. На данном этапе реализовано примерно 75% запланированного, но все равно публикую исходный код и собранную прошивку** |
| |
| Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю. | Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю. |
| | |
| | Внешний вид устройства (источник фото не помню). |
| | |
| | {{::el_interface.png?400|}} |
| |
| ===== Об оригинальной прошивке ===== | ===== Об оригинальной прошивке ===== |
| |
| Менее важные: | Менее важные: |
| - Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону). | - Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону). Нужно помнить где сейчас расположен кабель или никогда не ходить через север (или юг, кому как удобнее) |
| - При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель (возможно возгорание). | - При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель. |
| |
| ===== Особенности альтернативной прошивки ===== | ===== Особенности альтернативной прошивки ===== |
| |
| Кроме исправления недочетов оригинальной прошивки были реализованы дополнительные возможности. | Основные функции: |
| - Добавлен конфигуратор. | - Встроенный конфигуратор. |
| - Прошивка поддерживает элевацию. Может быть включена в конфигураторе. | - Прошивка поддерживает элевацию. Может быть включена в конфигураторе (ещё не реализовано полностью). |
| - Классический пользовательский интерфейс сохранен. Может быть включен в конфигураторе. | - Классический пользовательский интерфейс сохранен. Может быть включен в конфигураторе. |
| - Альтернативные пользовательские интерфейсы. Для включенной элевации компактный, при управлении только азимутом используется большой шрифт для отображения текущего положения антенны. | - Альтернативный пользовательский интерфейс. Доступен только при выключенной элевации, так как используется большой шрифт для отображения текущего положения антенны, который занимает половину экрана. |
| - Обработка дополнительных команд протокола Yeasu GS-232 (за исключением калибровки и команд автоматического движения по заданным точкам). | |
| - Интеллектуальный энкодер (увеличивает шаг при быстром вращении). | |
| - Парковка. Положение по обеим осям можно указать в конфигураторе. | |
| - Равномерное расходование ресурса EEPROM. | - Равномерное расходование ресурса EEPROM. |
| |
| Данный список может быть расширен. Пишите Ваши предложения на почту [[walhi@walhi.ru]]. | ===== Настройка устройства ===== |
| | В контроллер добавлен ряд пользовательских настроек. Для входа в режим настройки нужно отключить устройство, зажать кнопки экнкодеров азимута и элевации (или кнопку mode для варианта без энкодера элевации). Далее на экране будут последовательно отображаться параметры, значение которых можно изменять энкодером азимута. Для подтверждения используется кнопка энкодера элевации (или кнопка mode для варианта без энкодера элевации). |
| | |
| | Вход в меню настроек обозначен сообщением ''Conf. edit''. |
| | |
| | {{::rorator_conf.png?400|}} |
| | |
| | При редактировании в первой строке экрана отображается имя параметра, во второй значение и символ звездочки, если текущее значение отличается от того, что сейчас установлено. |
| | |
| | Список настроек: |
| | * ''AZ 360 imp count'' - количество импульсов на оборот антенны. Допустимые значения: 0 - 1000. |
| | |
| | {{::rorator_conf_az_imp_cnt.png?400|}} |
| | |
| | * ''AZ overlap pos'' - начало зоны перехлеста провода. Заход в эту зону учитывает положение провода. |
| | |
| | {{::rorator_conf_az_overlap_pos.png?400|}} |
| | |
| | * ''AZ overlap size'' - размер overlap зоны. Ограничивает движение для сохранности провода. |
| | |
| | {{::rorator_conf_az_overlap_size.png?400|}} |
| | |
| | * ''Old interface'' - использование старого интерфейса пользователя. |
| | |
| | {{::rorator_conf_old_interface.png?400|}} |
| | |
| | * ''Elevation'' - поддержка элевации. **При выключенном значении следующие настройки не будут отображаться.** |
| | |
| | {{::rorator_conf_el_en.png?400|}} |
| | |
| | * ''EL 180 imp count'' - количество импульсов при повороте на 180 градусов. |
| | |
| | {{::rorator_conf_el_imp_count.png?400|}} |
| | |
| | * ''EL start'' - минимальное значение элевации. |
| | |
| | {{::rorator_conf_el_start.png?400|}} |
| | |
| | * ''EL end'' - максимальное значение элевации. |
| | |
| | {{::rorator_conf_el_end.png?400|}} |
| | |
| | По завершении меню настройки все данные сохранятся в EEPROM и загрузится прошивка. |
| | |
| | ===== Интерфейс пользователя ===== |
| | ==== Классический интерфейс ==== |
| | Классический интерфейс с оригинальной прошивки сохранен. Так как у меня есть только фотографии контроллера поворотного устройства с поддержкой управления элевацией, то возможны некоторые отклонения от оригинала. |
| | |
| | При нажатии на энкодер элевации (или кнопка mode для варианта без энкодера элевации) происходит переключение режимов ''MAN'' (ручное управление) и ''PORT'' (управление с ПК). Уставка изменяется поворотом ручек энкодеров. |
| | |
| | Скриншоты интерфейса с выключенной элевацией: |
| | |
| | {{::rorator_old_port.png?400|}}{{::rorator_old_manual.png?400|}} |
| | |
| | Скриншоты интерфейса с включенной элевацией: |
| | |
| | {{::rorator_old_port_with_el.png?400|}}{{::rorator_old_manual_with_el.png?400|}} |
| | |
| | |
| | ==== Калибровка положения ==== |
| | К сожалению, во время эксплуатации может накапливаться ошибка из-за передаточного числа редуктора или инерции мачты. Для калибровки положения требуется выставить визуально антенну на заранее известный азимут (или при помощи компаса узнать её текущее положение) и включить устройство с зажатым энкодером азимута. При этом Вы попадете в режим калибровки, где требуется указать текущее положение антенны. Для подтверждения нажать на энкодер азимута. |
| | |
| | Скриншот экрана калибровки |
| | |
| | {{::rorator_az_calibration.png?400|}} |
| | |
| | ==== Обновленный интерфейс ==== |
| | Обновленный интерфейс отображает информацию в более удобном виде. В правой половине экрана отображается текущее положение большим шрифтом, который занимает сразу две строки. В левой стороне в первой строке указывается режим работы. Во второй строке отображается уставка с указателями доступности направления движения. |
| | |
| | Символы ''<'' и ''>'' указывают, что оба направления доступны для движения без ограничений. В это время вращение энкодера в зажатом состоянии будет изменять значение не на 1 градус на импульс, а на 10 для более быстрого ввода уставки. |
| | |
| | Символы ''('' и '')'' указывают, что Вы зашли в зону перехлеста провода. Ускоренное изменение уставки в данном режиме недоступно. При достижении границы зоны значение уставки перестает изменяться. Нахождение в зоне сопровождается восклицательным знаком, так как символы ''<''/''('' и ''>''/'')'' похожи на расстоянии. |
| | |
| | Символы ''['' и '']'' указывают, что движение в данном направлении заблокировано защитой от наматывания провода на мачту. При нажатии энкодера во время вращения ограничение будет игнорироваться, но при этом контроллер начнет движение до уставки по большому кругу. При этом указатели зоны перехлеста и блокировки продолжают отображаться до тех пор, пока не будет пройдена половина оборота и провод не перейдет на сторону уставки. |
| | |
| | Скриншоты интерфейса без ограничений движения |
| | |
| | {{::new_port_normal.png?400|}}{{::new_manual_normal.png?400|}} |
| | |
| | Скришнот интерфейса во время нахождения в зоне перехлеста, движение против часовой стрелки ограничено, провод находится с правой стороны. |
| | |
| | {{::new_manual_overlap.png?400|}} |
| | |
| | |
| | Скришнот интерфейса при достижении крайней точки зоны перехлеста, движение против часовой стрелки запрещено, провод находится с правой стороны. |
| | |
| | {{::new_manual_overlap_finish.png?400|}} |
| |
| |
| ===== Замена родной прошивки ===== | ===== Замена родной прошивки ===== |
| |
| Экземпляр контроллера поворотного устройства, используемого на коллективной радиостанции RK3MXT, реализован на микроконтроллере AT89S52. Однако, судя по размеру считанной прошивки и схеме устройства, взятой с сайта [[https://rt3f.jimdofree.com/%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0/%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D1%85-%D0%BC%D0%B5%D1%81%D1%82%D0%B0%D1%85/%D0%BF%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%BD%D0%BE%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE-r85-1/|RT3F]], встречаются варианты, построенные на AT89C51. Эти микроконтроллеры полностью совместимы друг с другом, хоть и имеют отличия. | Экземпляр контроллера поворотного устройства, используемого на коллективной радиостанции RK3MXT, изначально был собран на микроконтроллере AT89C51. К сожалению, в данный момент прошивка перестала вмещаться в данный чип (плюс он не особо удобен для разработки, так как поддерживает запись только в параллельном режиме отдельно от схемы), так что пришлось заменить его на аналог AT89S52. |
| |
| * AT89C51 является классическим вариантом. 128 Байт ОЗУ, 4 КБ FLASH. | * AT89C51 является классическим вариантом. 128 Байт ОЗУ, 4 КБ FLASH. |
| * AT89S52 в отличии от предыдущих может прошиваться через последовательный режим. Они в большом количестве продаются на AliExpress по цене в 1 доллар. | * AT89S52 в отличии от предыдущих может прошиваться через последовательный режим. Они в большом количестве продаются на AliExpress по цене в 1 доллар. |
| |
| В данный момент прошивка не помещается в AT89C51, однако это планируется исправить. | Способа ужать прошивку я, к сожалению, не знаю. |
| | |
| | |
| | ===== Схема устройства ===== |
| | Схема остается оригинальной, только замена микроконтроллера, который расположен в панельке. |
| | |
| | {{ ::схема_пульта_r851.pdf |}} |
| | |
| | |
| | ===== Оригинальная прошивка ===== |
| | Считана программатором СТЕРХ. Программатор TL866 II Plus отказался считывать контроллер. |
| |
| ===== Бонус ===== | В архиве лежит прошивка оригинального AT89C51 и дамп EEPROM. |
| Так как во время разработки требуется часто прошивать микроконтроллер и при этом частично блокировать работу коллективной радиостанции, разработка начиналась на совершенно другом аппаратном обеспечении. Использовалась отладочная плата Pinboard II с микроконтроллером ATMega16. Несмотря на то, что у чипов AT89S52 и ATMega16 один производитель, архитектура у них разная и используются разные компиляторы. Но это не проблема и код написан так, чтобы собирался под оба этих чипа одновременно. Все части кода, взаимодействующие с железом, вынесены в отдельные файлы. Теоретически можно портировать прошивку и под что-нибудь другое, вроде PIC или же MSP430. | |
| |
| | {{ ::rotator_orig.zip |}} |
| |
| |