====== Альтернативная прошивка для контроллера поворотного устройства R851 ====== **Проект очень медленно разрабатывается. На данном этапе реализовано примерно 75% запланированного, но все равно публикую исходный код и собранную прошивку** Контроллер этого поворотного устройства встречается и под другими именами, но, к сожалению, всех их я не знаю. Внешний вид устройства (источник фото не помню). {{::el_interface.png?400|}} ===== Об оригинальной прошивке ===== В процессе эксплуатации был обнаружен ряд недостатков. Основными являются следующие: - Односторонняя связь с компьютером при полной аппаратной поддержке двухсторонней связи. - Невозможно выбрать запрещенную зону и указать её размер (overlap). Менее важные: - Нет индикации, в какую сторону можно вращать антенну (с какой стороны вошли в overlap зону). Нужно помнить где сейчас расположен кабель или никогда не ходить через север (или юг, кому как удобнее) - При отсутствии импульсов с датчика обратной связи продолжает подавать питание на двигатель. ===== Особенности альтернативной прошивки ===== Основные функции: - Встроенный конфигуратор. - Прошивка поддерживает элевацию. Может быть включена в конфигураторе (ещё не реализовано полностью). - Классический пользовательский интерфейс сохранен. Может быть включен в конфигураторе. - Альтернативный пользовательский интерфейс. Доступен только при выключенной элевации, так как используется большой шрифт для отображения текущего положения антенны, который занимает половину экрана. - Равномерное расходование ресурса 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. * AT89C52 имеет увеличенный в два раза объем FLASH и RAM. * AT89S52 в отличии от предыдущих может прошиваться через последовательный режим. Они в большом количестве продаются на AliExpress по цене в 1 доллар. Способа ужать прошивку я, к сожалению, не знаю. ===== Схема устройства ===== Схема остается оригинальной, только замена микроконтроллера, который расположен в панельке. {{ ::схема_пульта_r851.pdf |}} ===== Оригинальная прошивка ===== Считана программатором СТЕРХ. Программатор TL866 II Plus отказался считывать контроллер. В архиве лежит прошивка оригинального AT89C51 и дамп EEPROM. {{ ::rotator_orig.zip |}}