Программирование и настройка контроллера аэродинамической скорости на основе Arduino |
Технологии моделизма - Авиамодельные технологии |
Автор: Андрей |
Эта статья является окончанием серией публикаций начатой со статьи Стабилизация крыла HK Mini-Sonic. Здесь объясняется, как запрограммировать и настроить контроллер аэродинамической скорости, построенный на основе стабилизатора Guardian Eagle Tree, пропеллерного датчика и платы Arduino Pro Micro. Как залить прошивку в контроллер. В прошлой статье Контроллер пропеллерного датчика аэродинамической скорости на основе Arduino я объяснял, как собрать контроллер и провести базовое тестирование. Теперь надо скомпилировать код и загрузить прошивку в контроллер: - Загрузка программы производится через MicroUSB шнур с Windows компьютера. У меня установлена операционная система Windows 7, но и более новые версии операционной системы так же подходят. - Сначала нужно установить драйвер платы Arduino для Windows. В большинстве случаев, при подсоединении платы через шнур MicroUSB к компьютеру, драйвер устанавливается автоматически. Но если этого не происходит, то необходимо установить его вручную - в интернете есть много примеров, как это делается. - Необходимо скачать и установить на Windows компьютер последнюю версию стандартной - Открыть страницу проекта в депозитарии github и скопировать - Проверить подключение платы Arduino - В среде разработки Arduino, в настройках меню "Инструменты" выбрать плату "Arduino Leonardo". Если драйвер платы установлен правильно, после этого должна появиться новая строка типа "Порт: COM4 (Arduinon Leonardo)". Если такая строка не появилась, ситуацию можно попробовать исправить отсоединением-соединением платы и рестартом программы среды разработки. - Выполнить команду "Файл->Вгрузить". Во время загрузки плате Arduino должн мигать RX светодиод, подтверждающий передатчу данных - через несколько секунд контроллер будет запрограммирован. При первом запуске программы программы, контроллер записывает предустановленные параметры стабилизации в память EEPROM - после этого он должен издать звуковой сигнал длинной в 3 сек., последующие включения и программирования контроллера не должны производить такого эффекта. Все - прошивка залита в контроллер, можно отсоединить плату от компьютера. Как работает программа контроллера? Для работы с контроллером совсем не надо разбираться в программировании и понимать математические алгоритмы стабилизации, использованные в программе. Но лучше иметь хотя бы общее представление: - Для вычисления выходных значений тяги и коэффициента усиления Guardian используются простейшие формулы из теории управления систем с обратной связью. Самые важные параметры этих формул записаны в энергонезависимую память контроллера Ардуино - EEPRPOM. Они могут быть изменены без перезаливки прошивки, непосредственно с пульта управления моделью с помощью "режима программирования параметров". Настройка контроллера: Контроллер управляется следующими каналами передатчика. Режимы работы контроллера У контроллера есть 4 основных режима работы: Для управления моделью используется режим пилотажа. Для настройки контроллера и других электронных элементов используются сквозной режим, режим калибровки и режим программирования. Выбрать режим можно только в момент включения контроллера. Вход режим пилотажа происходит, когда при включении питания контроллера, тяга модели выключена (рычажок тяги находится в нижнем положении). Вход в любой режим настройки осуществляется включением питания контроллера в момент, когда тяга не выключенна (рычажок тяги находится в центральном положении). Выбор режима настройки определяется положением 3-х позиционного переключателя: После включения передатчика, нельзя перейти из одного режима настройки в другой, но можно завершить настройку и перейти в режим пилотажа. Выход из любого режима настройки и вход в пилотажный режим произойдет после установления рычажка тяги в минимальное положения и ожидания в течении 5 сек. Режим пилотажа При входе в режим пилотажа контроллер издает длинный прерывистый сигнал и включает-выключает светодиод. В пилотажном режиме положение 3-х позиционного переключателя определяет, какая мода управления - Х, 3D, 2D будет выбрана. Переключение между модами управления можно осуществлять в любой момент времени. Потенциометр Gain отключен от управления (за исключением "Экспертного пилотажного режима", см. ниже). Из режима пилотажа нельзя перейти в любой другой режим без выключения питания контроллера. Сквозной режим В этом режиме сигналы Thr, Gain, Mod просто копируются контроллером скорости и передаются неизменными на контроллер тяги модели и стабилизатор Guardian. Во многом, это похоже на поведение контроллера в пилотажной моде "без стабилизации", но в этом режиме сигнал с 3-х позиционного переключателя передается непосредственно на стабилизатор Guardian и не вызывает переключения пилотажных мод управления. Данный режим необходим, чтобы настроить параметры контроллера тяги модели и стабилизатора Guardian с помощью пульта управления (действия при настройке описаны в документации этих устройств). Режим калибровки Для эффективной работы стабилизатора скорости ему нужно точно знать диапазон входных сигналов управления Thr и Gain (Сигнал Mod передает дискретную информацию и не нуждается в калибровке). Режим калибровки обозначается часто мигающим светодиодом контроллера. Во время калибровки нужно поднять до максимума и опустить до минимума рычажок тяги, а так же провернуть потенциометр сигнала Gain от минимального до максимального положения. После этих действий рычаг тяги надо перевести в минимальное положение и подождать 5 сек. Если калибровка произведена правильно, то данные о временных характеристиках импульсов этих сигналов будут записаны контроллером в память EEPROM. Контроллер при этом издаст длинный звуковой сигнал. Если калибровка произведена неправильно, то данные о диапазонах сигналов управления не будут обновлены и контроллер, перейдя в пилотажный режим, продолжит использовать старые значения. Режим программирования параметров Для правильного функционирования контроллера необходимо установить параметры стабилизации. В текущей версии прошивки их шесть, они хранятся в энергонезависимой памяти Ардуино EEPROM и могут быть перепрограммированы непосредственно с пульта управления моделью. Программирование параметров здесь во многом похоже на настройку параметров контроллера бесколлекторных двигателей (если не совсем понятно, как эта настройка делается - поищите соответствующее видео на youtube). Список параметров: 1 - Коэффициент подавления стабилизации гироскопа аэродинамической скоростью (GAIN_SUP_PARAM). Влияет на стабилизацию полета в зоне высокой аэродинамической скорости - чем параметр больше, тем сильнее скорость подавляет усиление в цепи обратной связи гироскопа-стабилизатора. Предустановленное значение - 0.32. Выбор и программирование параметра - Как выбрать параметр для установки значения? - Номер параметра соответствует некоторому положению рычажка тяти - минимальное значение тяги это 0 (выход) максимальное - 6. Чтобы установить значение параметра нужно перемещать рукоятку тяги по всему диапазону и найти необходимое положение - контроллер сообщит о номере параметра короткими бипами. "Экспертный" пилотажный режим. Для более точного подбора значения любого параметра у контроллера есть возможность "присвоить" ему потенциометр сигнала Gain и управлять им непосредственно в полете и после серии экспериментов записать EEPROM наиболее подходящее значение. - Как записать значение "присвоенного" параметра в EEPROM? - Это не делается автоматически - нужно перейти в режим программирования параметров, выбрать положение рычажка тяги, соответствующее номеру параметра и, не трогая потенциометра, произвести запись значения параметра 3-х позиционным переключателем. - Как завершить экспертный режим и "отключить" потенциометр от параметра? - для этого достаточно просто снова войти в меню программирования. Экспертный пилотажный режим сохраняется даже после выключении питания контроллера, - при его активации, при каждом входе в пилотажный режим, после длинного вибрирующего сигнала, контроллер короткими бипами будет сообщать номер ассоциированного с потенциометром параметра. Настройка и проверка контроллера. Итак, программа залита в контроллер. Контроллер установлен в стенд, описанный в предыдущей статье Контроллер пропеллерного датчика аэродинамической скорости на основе Arduino , передатчик включен, тяга выставлена в ноль, 3-х позиционник поднят в режим пилотирования без стабилизации (Х). Базовая проверка - Включаем питание - правильно работающий контроллер должен издать длинный вибрирующий сигнал - сигнализация о входе в пилотажный режим. При этом светодиод на контроллере должен загореться и погаснуть. Переключаем 3-х позиционник, контроллер должен издавать короткие звуковые сигналы при каждом переключении мод управления. Проверка подсоединения стабилизатора Guardian - Переводим переключатель в 2D или 3D моду, когда гироскоп включен, - при покачивании стабилизатора сервопривод на стенде должен шевелить 'рукой'. Калибровка - Выключить питание контроллера, поставить переключатель в среднюю позицию (3D) и включить питание - контроллер войдет в режим калибровки. Откалибровать тягу, потом откалибровать потенциометр. Переместить рычаг тяги в нижнее положение и подождать 5 сек - контроллер должен издать длинный сигнал и перейти в режим пилотажа - калибровка закончена. Проверка работы авто-подстройки усиления гироскопа - Перевести контроллер в режим 2D пилотажа, слегка наклонить Guardian, чтобы сервопривод изменил положение 'руки' и несильно подуть в пропеллерный датчик. При вращении пропеллера, коэффициент обратной связи, поступающия на Guardian, должен уменьшиться и сервопривод так же должен уменьшить угол отклонения 'руки' от нейтрального положения. Проверка работы стабилизатора скорости - Перевести контроллер в 2D режим. Включить тягу, примерно 20% от максимальной мощности. Подуть в пропеллерный датчик - тяга должна заметно уменьшиться. В целом, если все действия прошли успешно - контроллер уже готов к полетам и его можно устанавливать в модель. Конечно, параметры стабилизатора будут неидеальными, но более точно их значения можно подобрать только в реальных полевых испытаниях. Способы устранения проблем Правильно собранный контроллер практически не нуждается в настройке. Что же делать, если он работает не так, как написано выше? - Ниже несколько диагностических советов. Нет звуковых сигналов, или не работает светодиод - проверить подключение зуммера или светодиода - здесь возможны обрыв или ошибка полярности. Если при ри включенном передатчике, светодиод на контроллере мигает с 1 сек. периодом - значит значит сработала система детектирования потери сигналов управления - с приемника не приходит хотя бы один из сигналов THR_IN, GAIN_IN, MOD_IN. Необходимо проверить работу приемника и наличие всех управляющих сигналы на входах платы Ардуино. Если все работает, но не вращается мотор - проверить подсоединение контроллера бесколлекторного двигателя к выходному сигналу платы Ардуино GAIN_OUT. Если контроллер не реагирует на вращение пропеллера датчика аэродинамической скорости - скорее всего не работает или неправильно подключена оптопара - проверить напряжение на ножках HOA1874-012. С помощью осциллографа посмотреть, правильно ли подано питание на ножки светодиода и поступают ли импульсы с фотодиода при вращении пропеллера датчика. Установка контроллера в модель Я испробовал несколько конфигураций установки контроллера на крыло HK Mini Sonic, но наиболее удачное расположение потребовало изготовления специального компартмента для приемника, как показоно на фотографии. При установке, стабилизатор Guardian и приемник крепятся к корпусу модели толстой двусторонней клейкой лентой. После установки, отделение приемника заклеивается сверху прозрачным скотчем. Заключение Зачем я написал эти несколько статей?
|