Подписываемся на VK

Ежедневные новости, видео и приколы...

YouTube канал

Подбор моторов

TOP статьи

Вход




RC Магазины





Home Технологии Авиамодельные Программирование и настройка контроллера аэродинамической скорости на основе Arduino
Программирование и настройка контроллера аэродинамической скорости на основе 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 сек., последующие включения и программирования контроллера не должны производить такого эффекта.

Все - прошивка залита в контроллер, можно отсоединить плату от компьютера.

Как работает программа контроллера?

Для работы с контроллером совсем не надо разбираться в программировании и понимать математические алгоритмы стабилизации, использованные в программе. Но лучше иметь хотя бы общее представление:
- На плату Arduino приходит 3 импульсных ШИМ сигнала с приемника (THR_IN, GAIN_IN, MOD_IN) и один импульсный сигнал c фотодиода оптопары - PROP_IN.
- Плата Arduino запрограммированна таким образом, что эти сигналы вызывают прерывания процессора. Это значит, что фронт или спад каждого сигнал независимо запускает специальную короткую подпрограмму - обработчик прерывания или вектор. Эти подпрограммы и занимаются измерением длительности сигналов управления и считают импульсы с пропеллерного датчика. Эти же эти подпрограммы, используя встроенный в Ардуино 32-битный таймер, формируют выходные импульсы THR_OUT, GAIN_OUT, а так же управляют включением-выключением зуммера и светодиода.

- Для вычисления выходных значений тяги и коэффициента усиления Guardian используются простейшие формулы из теории управления систем с обратной связью. Самые важные параметры этих формул записаны в энергонезависимую память контроллера Ардуино - EEPRPOM. Они могут быть изменены без перезаливки прошивки, непосредственно с пульта управления моделью с помощью "режима программирования параметров".

Настройка контроллера:

Контроллер управляется следующими каналами передатчика.
- Сигнал Thr - тяга двигателя.
- Сигнал Gain формируется одним из потенциометров, расположенных на панели передатчика.
- Сигнал Mod  - поступает с 3-х-позицинного переключателя, формирующего три длительности импульса управления 1.1 мс, 1.5 мс, 1.9 мс которые соответствуют трем режимам стабилизации Guardian: 2D - 3D - X. Верхнее положение переключателя X - "стабилизация выключена" должно соответствовать максимальной длительности импульса.

Режимы работы контроллера

У контроллера есть 4 основных режима работы:
- Режим пилотажа.
- Сквозной режим.
- Режим калибровки.
- Режим программирования параметров.

Для управления моделью используется режим пилотажа. Для настройки контроллера и других электронных элементов используются сквозной режим, режим калибровки и режим программирования. Выбрать режим можно только в момент включения контроллера.

Вход режим пилотажа происходит, когда при включении питания контроллера, тяга модели выключена (рычажок тяги находится в нижнем положении).

Вход в любой режим настройки осуществляется включением питания контроллера в момент, когда тяга не выключенна (рычажок тяги находится в центральном положении). Выбор режима настройки определяется положением 3-х позиционного переключателя:
- Верхнее положение (X) - сквозной режим, подтверждение - один бип.
- Среднее положение (3D) - режим калибровки, подтверждение - два бипа.
- Нижнее положение (2D) - режим программирования параметров, подтверждение - три бипа.

После включения передатчика, нельзя перейти из одного режима настройки в другой, но можно завершить настройку и перейти в режим пилотажа. Выход из любого режима настройки и вход в пилотажный режим произойдет после установления рычажка тяги в минимальное положения и ожидания в течении 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.
2 - Максимальный коэффициент стабилизации гироскопа (GAIN_MAX_PARAM). Влияет на полет на низких скоростях. Предустановленное значение - 1.0.
3 - Напряжение включения звуковой сигнализации низкого напряжения аккумулятора (LOW_BATT_PARAM). Диапазон значений 0.0 - 1.0 соответствует напряжениям 5.0V - 7.5V. предустановленное значение - 0.85 (6.8 V).
4 - Коэффициент чувствительности датчика аэродинамической скорости, определяет, как частота вращения пропеллерного датчика преобразуется в коэффициент управления стабилизацией (PROP_PARAM). Этот коэффициент подбирается для каждого датчика индивидуально. Для быстро вращающихся пропеллеров нужно устанавливать низкий коэффициент, для медленно вращающихся - высокий. Предустановленное значение 0.73 соответствует стандартной геометрии датчика, описанного в статье Изготовление пропеллерного датчика аэродинамической скорости.
5 - Коэффициент подавления тяги двигателя модели аэродинамической скоростью (THR_SUP_PARAM), параметр активен только в 2D режиме . Тяга двигателя модели будет автоматически будет уменьшена, если аэродинамическая скорость очень высокая или увеличена, если скорость слишком низкая и величина этих "корректирующих" изменений тяги будет пропорционально этому коэффициенту. Предустановленное значение - 0.39.
6 - Величина минимальной стабилизированной тяги, активен только в 2D режиме (THR_MIN_PARAM). Это вспомогательный параметр. Данный параметр предотвращает остановку бесколлекторного двигателя модели, не давая контроллеру уменьшить число оборотов двигателя до нуля и тем самым дав ему возможность перестать вращаться. Диапазон значений 0.0 - 1.0 соответствует диапазону тяги двигателя 0 - 20%. Предустановленное значение - 0.34 (6.4% тяги).

Выбор и программирование параметра

- Как выбрать параметр для установки значения? - Номер параметра соответствует некоторому положению рычажка тяти - минимальное значение тяги это 0 (выход) максимальное - 6. Чтобы установить значение параметра нужно перемещать рукоятку тяги по всему диапазону и найти необходимое положение - контроллер сообщит о номере параметра короткими бипами.
- Как установить и сохранить значение параметра? - Установка значения производится потенциометром канала Gain. Все параметры могут быть установлены в диапазоне 0.0 - 1.0. Если вращать потенциометр - светодиод на контроллере загорается, когда значение, установленное потенциометром параметра, становится выше "старого" значения, записанного в EEPROM. Так же, в момент совпадения нового и старого значения, зуммер производит короткий щелчок. Таким образом можно понять, какое значение параметра уже установлено и уменьшить или увеличить его. Запись нового значения в EEPROM производится кратковременным переключением 3-позицинного переключателя вверх-вниз-вверх (X)-(2D)-(X) . В подтверждение записи зуммер произведет короткий вибрирующий звуковой сигнал.

"Экспертный" пилотажный режим.

Для более точного подбора значения любого параметра у контроллера есть возможность "присвоить" ему потенциометр сигнала Gain и управлять им непосредственно в полете и после серии экспериментов записать EEPROM наиболее подходящее значение.
- Как включить экспертный режим и "присвоить" потенциометр параметру? Присвоение можно сделать непосредственно в режиме программирования параметров, непосредственно после записи этого параметра в EEPROM - если сразу после записи параметра в EEPROM переключить 3-х позиционный переключатель вверх-вниз-вниз еще раз (это необходимо сделать в течении 1 сек. после первого переключения), то параметр дополнительно будет ассоциирован с потенциометром. Для подтверждения, контроллер издаст длинный звуковой бип, подтверждающий это присвоение.

- Как записать значение "присвоенного" параметра в 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 и приемник крепятся к корпусу модели толстой двусторонней клейкой лентой.

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

Заключение

Зачем я написал эти несколько статей?
- Я хотел поделиться опытом - нет большого смысла делать такую сложную работу только для себя. Теперь после публикации всех пяти статей, я смогу не объяснять сто раз знакомым авиамоделистам, как это устройство работает :).
- Я давно задался идеей как-то использовать платы Arduino в авиа-моделировании. Теперь, начинание может быть продолжено - прошивка контроллера выложена в общественное пользование, она более-менее универсальна и понятна - знакомые с программированием моделисты могут придумывать ее дальнейшие модификации.
- И наконец - пропеллерный датчик скорости испытан, его характеристики, способы изготовления и подключения понятны - у него так же появились шансы быть востребованным.


 

 





Последние сообщения форумаПоследние созданные темы
1) Полетник Matek MATEKSYS F405-SE не выдает сигнал на Vbat
2) Чертежи плосколетов
3) Акб для Pilotage Junior Fighter
4) DroneDrive - ModelDrive
5) Гироскопический момент
6) Стабильность полета крыла без вертикальных стабилизаторов
7) Подскажите, подойдет ли пульт от коптера для самолета?
8) Чертежи скоростных авиамоделей
9) Крыло без элеронов, но с 2Д поворотом мотора
10) Чертежи планеров и мотопланеров
1) Полетник Matek MATEKSYS F405-SE не выдает сигнал на Vbat
2) Акб для Pilotage Junior Fighter
3) Подскажите, подойдет ли пульт от коптера для самолета?
4) Чертежи скоростных авиамоделей - радиоуправляемые самолеты для скоростных полетов
5) Гироскопический момент
6) Стабильность полета крыла без вертикальных стабилизаторов - а так можно?
7) Здравствуйте, вопрос про настройку пульта.
8) DroneDrive - ModelDrive - Техническая секция для детей (авто/авиа/дроны)
9) Крыло без элеронов, но с 2Д поворотом мотора - Хочу сделать такое, и хотел бы почитать кто уже такое делал
10) Требуются программисты и мастера. - Поиск умельцев.

Похожие статьи