Подписываемся на 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) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
2) Зажигание на датчике холла
3) На что заменить полетник на Iflight Protek25
4) Юлиус Пердана и SHURIK-1960
5) Помогите пожалуйста с вертолетом (управление)
6) Сервомотор ведет себя не адекватно
7) Полётный контроллер PixRacer r15 autopilot
8) Вопрос по ПК
9) Автопилот SN Sparrow Flight Controller
10) Parrot Disco 4g mode.
1) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
2) На что заменить полетник на Iflight Protek25 - сгорел полетник. ищу замену
3) Зажигание на датчике холла
4) Сервомотор ведет себя не адекватно - элероны
5) Помогите пожалуйста с вертолетом (управление) - Помогите пожалуйста с вертолетом (управление)
6) Вопрос по ПК - ПК фоксер ф722 v4, рагуль 1202 от fpv. Из этого сделать ЛК?
7) Продажа комплекта деталей для авиамоделирования - Здрaвcтвуйтe! Пpодaю кoмплект деталей для aвиамoделиpoвания
8) Полётный контроллер PixRacer r15 autopilot
9) радиоуправление квадрокоптером - забиндить приёмник RX2646H-DX с передатчиком RADIOMASTER
10) Юлиус Пердана и SHURIK-1960 - Летать НИЗЗЯ . а делать МОЖНО!

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