rotator [Dev]

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

Инструменты сайта


rotator

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
rotator [2021/02/06 21:21] – создано walhirotator [2026/02/27 16:35] (текущий) walhi
Строка 1: Строка 1:
 ====== Альтернативная прошивка для контроллера поворотного устройства R851 ====== ====== Альтернативная прошивка для контроллера поворотного устройства R851 ======
  
-**Проект активно разрабатывается. На данном этапе реализовано примерно 65% запланированного.**+**Проект очень медленно разрабатывается. На данном этапе реализовано примерно 75% запланированного, но все равно публикую исходный код и собранную прошивку**
  
 Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю. Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю.
  
-Недостатки оригинальной прошивки:+Внешний вид устройства (источник фото не помню). 
 + 
 +{{::el_interface.png?400|}} 
 + 
 +===== Об оригинальной прошивке ===== 
 + 
 +В процессе эксплуатации был обнаружен ряд недостатков. Основными являются следующие:
   - Односторонняя связь с компьютером при полной аппаратной поддержке двухсторонней связи.   - Односторонняя связь с компьютером при полной аппаратной поддержке двухсторонней связи.
-  - Невозможно выбрать запрещенную зону и указать её размер+  - Невозможно выбрать запрещенную зону и указать её размер (overlap).
-  - Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону). +
-  - При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель (возможно возгорание).+
  
-Первые два пункта стали причиной для разработки альтернативной прошивки.+Менее важные
 +  - Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону). Нужно помнить где сейчас расположен кабель или никогда не ходить через север (или юг, кому как удобнее) 
 +  - При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель.
  
-Экземпляр контроллера поворотного устройства, используемого на коллективной радиостанции 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Эти микроконтроллеры полностью совместимы друг с другом, хоть и имеют отличия.+===== Особенности альтернативной прошивки ===== 
 + 
 +Основные функции: 
 +  - Встроенный конфигуратор. 
 +  - Прошивка поддерживает элевацию. Может быть включена в конфигураторе (ещё не реализовано полностью). 
 +  - Классический пользовательский интерфейс сохранен. Может быть включен в конфигураторе. 
 +  - Альтернативный пользовательский интерфейс. Доступен только при выключенной элевациитак как используется большой шрифт для отображения текущего положения антенны, который занимает половину экрана. 
 +  - Равномерное расходование ресурса EEPROM.  
 + 
 +===== Настройка устройства ===== 
 +В контроллер добавлен ряд пользовательских настроек. Для входа в режим настройки нужно отключить устройство, зажать кнопки экнкодеров азимута и элевации (или кнопку 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, изначально был собран на микроконтроллере AT89C51. К сожалению, в данный момент прошивка перестала вмещаться в данный чип (плюс он не особо удобен для разработки, так как поддерживает запись только в параллельном режиме отдельно от схемы), так что пришлось заменить его на аналог AT89S52.
  
   * AT89C51 является классическим вариантом. 128 Байт ОЗУ, 4 КБ FLASH.   * AT89C51 является классическим вариантом. 128 Байт ОЗУ, 4 КБ FLASH.
Строка 19: Строка 125:
   * AT89S52 в отличии от предыдущих может прошиваться через последовательный режим. Они в большом количестве продаются на AliExpress по цене в 1 доллар.   * AT89S52 в отличии от предыдущих может прошиваться через последовательный режим. Они в большом количестве продаются на AliExpress по цене в 1 доллар.
  
-В данный момент прошивка не помещается в AT89C51, однако это планируется исправить.+Способа ужать прошивку я, к сожалению, не знаю.  
 + 
 + 
 +===== Схема устройства ===== 
 +Схема остается оригинальной, только замена микроконтроллера, который расположен в панельке.  
 + 
 +{{ ::схема_пульта_r851.pdf |}} 
 + 
 + 
 +===== Оригинальная прошивка ===== 
 +Считана программатором СТЕРХ. Программатор TL866 II Plus отказался считывать контроллер
  
-====== Бонус ====== +В архиве лежит прошивка оригинального AT89C51 и дамп EEPROM.
-Так как во время разработки требуется часто прошивать микроконтроллер и при этом частично блокировать работу коллективной радиостанции, разработка начиналась на совершенно другом аппаратном обеспечении. Использовалась отладочная плата Pinboard II с микроконтроллером ATMega16. Несмотря на то, что у чипов AT89S52 и ATMega16 один производитель, архитектура у них разная и используются разные компиляторы. Но это не проблема и код написан так, чтобы собирался под оба этих чипа одновременно. Все части кода, взаимодействующие с железом, вынесены в отдельные файлы. Теоретически можно портировать прошивку и под что-нибудь другое, вроде PIC или же MSP430.+
  
 +{{ ::rotator_orig.zip |}}
  
  
rotator.1612646467.txt.gz · Последнее изменение: walhi