Arduino — Необходима помошь по APM 2.6 (автопилот на Arduino)


Содержание

Автомобиль-робот с автопилотом на Arduino Mega 2560

Из таких же комплектующих многие собирают свои автономные роботы-платформы, но мое решение немного отличается от того, что можно найти в интернете. В частности упор был сделан на автономность и перехват управления по Bluetooth.

Для проекта нам понадобится плата Arduino Mega 2560. Она достаточно мощная, что бы справиться с нашими задачами. На нее отлично встает Motor Shield L293D.
Корпус автомобиля мы взяли из набора Car Chassis Kit for Arduino. В него входят рама, колеса, двигатели.
Основной датчик для ориентирования в пространстве — Ультразвуковой дальномер HC-SR04. Он закреплен на сервоприводе MG995.
Для перехвата управления я использовал Bluetooth модуль. В качестве пульта использовал телефон на Android с установленной программой Bluetooth Arduino Bluetooth RC Car (скачать можно с апстора).

Распиновка для подключения компонентов

Моторы Motor Shield L293D Фары Arduino Mega 2560
П.Л. М3 П.Л. «-» на GND, «+» на Pin 22
П.П. М4 П.П. «-» на GND, «+» на Pin 24
З.Л. М1 З.Л. «-» на GND, «+» на Pin 34
З.П. М2 З.П. «-» на GND, «+» на Pin 35

Дальномер HC-SR04 Arduino Mega 2560 Bluetooth HC-05 Arduino Mega 2560 Buzzer Arduino Mega 2560
Vcc 5V VCC 5V SIG Pin A9
Trig Pin 31 GND GND VCC Pin A8
Echo Pin 30 TXD Pin 50 GND GND
Gnd GND RXD Pin 51

Сервопривод MG995 Motor Shield L293D
тройная клема SERVO_2 (центральный провод «+» откусываем и запитываем напрямую от «+» Motor Shield; при управлении по Bluetooth — клему снимайте, чтобы серва не дёргалась)

Если следовать указаниям по подключению проводов к пинам, то напутать что-то сложно. На плате всегда есть подписи.
Особое внимание стоило бы обратить на подключение проводов к двигателям что бы не напутать полярность — направления вращения.

При подключении телефона к Bluetooth нашего робота вылезет запрос пин-кода. Обычно он «1234». В программе Bluetooth Arduino Bluetooth RC Car доступны два способа управления: клавишами влево-вправо и с помощью гироскопа наклоном телефона.

Механизм работы автопилота таков, что машина едет вперед до тех пор пока до препятствия спереди не будет 30 см, то запускаем алгоритм сканирования препятствия. Двигатели останавливаются, серво-привод начинает вращать ультразвуковой дальномер на 180 градусов с шагом 15 градусов. Если в массиве измерений находятся точки расстояние до которых больше 30 см, то мы определяем с какой стороны эти точки и разворачиваем машину в этом направлении, запускаем двигатели.

Для зашивки программы вам необходимо будет скачать библиотеку AFMotor.

Управление по Bluetuth:

Пример программы для автоматической навигации робота-автомобиля:

Arduino — Необходима помошь по APM 2.6 (автопилот на Arduino)

Первым шагом в настройке квадрокоптера это сборка рамы и её компонентов. Эти инструкции дают указания по сборке и подключения квадрокоптера с APM автопилотом, включая передовую практику. Следующие подстраницы представляют более подробные инструкции по темам:

  • Подключение радиопередатчика и моторов к вашему APM
  • Виброгасящие демпфера
  • Подключение и монтаж модуля GPS
  • Подключение и монтаж комбинированного модуля GPS + компас
  • Установка внешнего модуля компаса
  • PX4 Инструкции по электропитанию

Соберите раму

Комплекты рам доступны в магазине. Выберите модель ниже, чтобы посмотреть инструкции по сборке. Помните не устанавливайте пропеллеры сразу; мы установим их после калибровки ESC (регуляторов мотора).

Проводка

Приведенная ниже схема показывает стандартный вариант подключения для АРМ квадрокоптер.

Для полного комплекта APM-Квадрокоптер необходимы следующие электронные компоненты:

  • Автопилот с конфигурацией «квадрокоптер». В настоящее время поддерживает APM и PX4 автопилоты.
  • Блок питания с LiPo батареи или эквивалентным методом питания (см. ниже)
  • Распределитель питания (PDB) или эквивалент распределения мощности к двигателям
  • Электронный регулятор скорости (ESC) для каждого двигателя
  • Моторы
  • RC приемник и передатчик

Включение квадрокоптера

Самый простой способ включить квадрокоптер — использовать модуль питания с аккумулятором LiPo (см. Инф ). Для альтернативных методов питания вашего квадрокоптера, для плат APM 2.5 и 2.6 смотрите страницу (ссылка).

Для подключения модуля питания подключите силовые провода к распределительной плате PDB, а второй силовой провод к батарее или другому источнику питания. Подключите модуль питания к порту PM используя 6 проводной кабель.

Если Вы не используете модуль питания, то для подключения APM можно использовать внешний источник питания — UBEC. для этого подключите его к входам подключения моторов. Предупреждение: Так как регуляторы мотора в большинстве случаев уже имеют UBEC модуль, рекомендуется во избежание проблем не использовать их. Используйте внешний модуль питания в обход питания от регуляторов ESC.

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

Подключите ESCs и двигатели

Подключите кабели двигателя с электронным регулятором скорости (ESC) штепсельных соединений. Каждый двигатель должен подключиться только к одному ESC.

Подключите разъемы питания регуляторов ESC в распределительную плату (PDB). Подключите трехжильный сигнальный провод от регулятора ESC к рапределительной плате питания PDB, согласно нумерования конфигурации моторов. т.е. первый мотор в разъем 1 , второй — в разъем 2 и так далее. Если вы не используете распределительную плату, допускается подключение непосредственно прямо к разъемам APM — Output Pins Предупреждение:В зависимости от схемы питания рекомендуется питать плату внешним UBEC, вместо встроенного в регулятор ESC. Удалите джампер JP1 если он присествует для питания внешним UBEC.

Лучшие практики

При сборке квадрокоптера, мы рекомендуем использовать резьбовые винты. Так же потребуется специальное средство для лучшего закрепления болтов, которое не даст им раскрутиться. При закреплении проводов питания держите положительный и отрицательной вместе к друг другу, можно использовать стяжки. Что бы обеспечить проводку по раме можно использовать кабельную сетку, где это возможно. Используйте гашение вибрации там, где это возможно, за дополнительной информацией посетите страницу по изоляции.

Инструкция для подключения радиоприемника и двигателей к АРМ можно найти на странице .

  • Предупреждение! В любом режиме удержания высоты которые: : Alt-Hold, Loiter, AUTO, AutoLand или RTL если полет квадрокоптера становиться неустойчивой, при посадке или близком нахождением к земле — (а так же при автоматической посадки) вы вероятно не правильно установили полетный контроллер — это влияет на барометр (высотометр), который зависит от давления создаваемового самим квадрокоптером и его воздушным потоком.
    • В этом можно убедиться посмотрев на журнал показания высотомера видя, что показания колеблятся, когда он у земли.
    • Если это является проблеммой , переместите контроллер полета или оградите его от проветривания корпуса.
    • Успешность летных испытаний может быть проверена по результатам журналов.
    • Это предупреждение находится здесь, так что у вас есть возможность не допускать этого в первую очередь.
    • Как правило, лучше установить контроллер на верхней части квадрокоптера.
    • Если у вас имеется крышка которая закрывает полетный контроллер, убедитесь, что она не вентилируется от пропеллеров и в ней не создается давление.

Я получил контроллер! Что дальше?

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

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

Для начала — под минимальным комплектом Я понимаю:

  • Контроллер APM 2.5.x или 2.6.
  • Блок GPS с контактным проводом.
  • Соединительные провода между приёмником и контроллером (мама-мама).


Контроллер комплектуется разными PLS контактами: прямыми и под 90 градусов — их каждый для себя выбирает сам, смысл в удобстве монтажа платы контроллера на летательном аппарате. Бывает что китайцы умудряются подсунуть намагниченные выводы, в дальнейшем это отражается на неправильной работе компаса, что в дальнейшем влечёт за собой неадекватное поведение коптера в режиме удержания позиции «Loiter» (о режимах в другой статье). О пайке разъемов написана статья «Пайка разъемов на плате APM». Контакты PLS

Первым делом Нам надо взять контроллер в руки и внимательно осмотреть (можно с увеличительным стеклом): целостность элементов, качество пайки и наличие загрязнений(как не отмытый флюс , сопли) — устранить косяки крайне осторожно, что бы не повредить чувствительные датчики, например барометр (на период чистки лучше заклеить хорошей изолентой).

Плату осмотрели, теперь необходимо проверить ее работоспособность. Устанавливаем на компьютер ПО — Mission Planner (далее MP) для APM.

Рекомендуется выбрать самую последнюю версию ПО. Далее всем привычное «Далее» > «Готово»!

Не подключайте на данном этапе сторонних устройств, таких как GPS, регуляторы скорости, альтернативные источники питания. Пока нам надо только проверить работоспособность платы.

Берём наш контроллер и microUSB кабель. Подключение кабеля micro-USB

Подключаем контроллер к компьютеру и ждем установку драйвера, обычно проходит в штатном режиме. Но если по какой либо причине драйвер не установился , необходимо указать поиск драйвера в папке с установленным MP в ручную.

Запускаем MP, в верхнем правом углу проверяем порт, который присвоился контроллеру. У каждого порт свой и узнать его можно в диспетчере устройств (Мой компьютер — управление — диспетчер устройств) Выбор порта

Нажимаем на «CONNECT» и ждем соединения. Считывание параметров

После успешно подключения берём контроллер в руки и смотрим за цифрами и картинками, которые отображаются в окне MP «Flight Data», всё должно шевелиться и меняться, реагировать на каждое движение. Пытаемся понять какое показание за что отвечает. Смотрим на отклонения по крену, тангажу, смотрим на поворот компаса. Для начала этого хватит. Радуемся и отключаемся — там где нажимали CONNECT, теперь сияет надпись DISCONNECT. Наш контроллер рабочий — это уже хорошо. Улыбаемся.

Если подключения не произошло, то китайцы могли и не загрузить прошивку, тогда нам надо загрузить ее. Как? Описано здесь: Прошивка контроллера APM.

Теперь Нам необходимо провести более детальную проверку датчиков установленных на плате контроллера, а конкретно это гироскоп и акселерометр. Для этого подключаем контроллер к ПК. Запускаем программу МР, устанавливаем соединение, жмём CONNECT.

Следующий этап — в окне программы МР на вкладке «Flight Data» ищем слово «Действия», затем «Просмотр сенсоров». В открывшемся окне увидим графики, отображающие работу датчиков (сенсоров). График гироскопа

При повороте контроллера мы видим кратковременное отклонения значений и дальнейший возврат значений в «ноль». График акселерометра

При повороте контроллера мы видим изменение значений и дальше эти значения сохраняются, пока опять не повернем контроллер.

Вернемся на окно «Flight Data» и посмотрим на работу электронного компаса. На данном этапе показания могут быть не верны (в дальнейшем будем производить калибровку), нам пока важны примерные показания, означающие что компас работает. Показания компаса

При повороте контроллера мы видим изменение положения в градусах (0-север).

Мы проверили Наш контроллер на работоспособность.

О подключении модуля GPS и приёмника Р/У в следующих статьях…

Update 15.04.2014

Более правильно оценить работу компаса будет через терминал. Подключаемся к терминалу (после включения платы быстро нажать кнопку «Connect» в окне терминала), набираем команду «test», набираем команду «compass», дожидаемся инициализации гироскопа (в неподвижном состоянии платы!) и далее видим бегущие строчки направления, осей и офсетов. Крутим плату на 360° и приблизительно оцениваем значения. Проверка работы компаса

После того, как наигрались, нажимаем клавишу Enter на клавиатуре и терминал можно закрывать.

maksim4ek, raefa # apmcopter

Update 25.06.2014. Видеоинструкция от Юлиана. Посылка с комплектом.

В данном видео описаны комплектующие части, которые нам понадобятся для постройки коптера на нашем любимом контроллере.

Update 26.07.2014:

Еще более простую проверку работы компаса можно осуществить через вкладку «Статус» окна «Flight Data». Там нас интересуют переменные «mx», «my», «mz». Проверка работы компаса

Если вы нашли ошибку на странице, то нажмите Shift + Enter или нажмите здесь, чтобы уведомить нас.

APM 2.6 + Droidplaner 2, автопилот летает по точкам(демонстрация)

На видео показан полёт по точкам с использованием полетного контроллера APM 2.6 и программы для Android — Droidplanner 2.

Полетный контроллер APM 2.6(ArduPilot Mega) является полноценным решением БПЛА (Беспилотного Летающего аппарата UAV), который позволяет помимо радиоуправляемого дистанционного пилотирования — автоматическое управление по заранее созданому маршруту, т.е. полет по точкам, а так же обладает возможностью двухсторонней передачей телеметрических данных с борта на наземную станцию (телефон, планшет, ноутбук, DIY) и ведение журнала во встроенную память.

Программа для планшета DroidPlanner 2, она требует наличия OTG от Android устройства. При съемках был использован Chuwi Hi10 Pro.

Arduino совместимый автопилот Pro-уровня

Что нужно, что бы определить координаты и траекторию движения летательного аппарата? Трехосевой гироскоп, трехосевой акселерометр, еще несколько датчиков. Все это собрано на плате ArduPilot Mega IMU Shield от DIYDrones, специально предназначенной для летательных аппаратов. Кроме гироскопа и акселерометра на плате смонтирован датчик давления и температуры, даталоггер с 16 мБ памяти, два регулятора напряжения 3,3 В (собственно для платы и для дополнительных датчиков), реле для управления камерой или другими устройствами, I2C порт для подключения магнитометра.

Плата может устанавливаться над или под платой ArduPilot Mega. Сигналы с датчиков обрабатываются 12-битным АЦП, для обработки внешних датчиков используется 10-битный АЦП. Особенности:

— Бесплатное и открытое программное обеспечение (прошивка). Устройство поддерживают самолеты, мультироторные системы (трикоптеры, квадрокоптеры, гексокоптеры, октокоптеры и соосные системы), вертолеты, а также наземные управляющие станции.

— Простой процесс установки и загрузки прошивки через утилиту управления. Программирования не требуется.

— Сценарий миссии полета делается простыми кликами в программе управления.


— Устройство поддерживает до 100 возможных точек маршрутизации.

— Наличие двусторонней телеметрии позволяет вводить дополнительные команды управления непосредственно в полете, используя MAVLink протокол (опционально).

— Обеспечение автоматического взлета и посадки упрощают управление, и доводят это устройство до уровня настоящих БПЛА.

— Полная поддержка симуляторов Xplane и Flight Gear.

Оборудование включает в себя следующее:

3-осевой гироскоп 3-осевой акселерометр Барометрический датчик давления для определения высоты 10Hz GPS модуль Контроль вольтажа батареи На борту 16Mb памяти для хранения логов полетов. Миссии будут автоматически записываться и их можно экспортировать в KML Встроенный аппаратный failsafe, может вернуться аппарат к месту запуска при потери радио сигнала. Установлено реле для включения и выключения устройств по сценарию. Встроенный FTDI Модем / OSD порт I2C порт Две программируемые пользователем кнопки, Кнопка сброса

Arduino — Необходима помошь по APM 2.6 (автопилот на Arduino)

Некоторые аспекты использования 2.7.1
(для других версий могут быть некоторые отличия)

Где можно еще почитать и получить советы по настройке?

Прошивка и начальная настройка

1.Обновление прошивки

2. Настройка Радиоуправления — расходов и реверсов по каналам

Предварительно рекомендую убедиться что расходы не выходят из диапазона 1000-2000 ms (Если это не так, отрегулируйте приемник и перерегулируйте приводы на модели)

Подключаем 1-4 и 8 входные каналы и питание и общий к радиоприемнику, на апм 1 переводим слайдерный переключатель CLI в позицию «от штырьков подключения сервомашинок». (в современных прошивках этот переключатель всегда должен быть в этом положении, в APM2 и выше этот переключатель отсутствует)

Выбираем появившийся после подключения USB номер COM — port, скорость 115200 и подключиться.
Нажимаем настройка автопилота, настройка радио.
В некоторых прошивках по умолчанию включен элевонный режим (чекбоксы ниже индикаторов радиоканалов) — если модель классического типа — снимаем эти чекбоксы, и обязательно перезапускаем ардупилот (отключаем и подключаем провод usb если нет другого питания платы) — иначе калибровка будет неверной и только после этого настраиваем радиоканалы. Устанавливаем триммера каналов радиопередатчика в положение — соответствующее нормальному полету, жмем калибровка и перемещаем стики по всем крайним положениям, отклонения индикаторов радиоканалов должно соответствовать направлению стиков, за исключением стика тангажа (руля высоты) руль высоты от себя — индикатор вверх руль на себя индикатор вниз. в случае несоответствия установить чекбокс «REV» в нужном канале. незабываем переключить на все положения переключатель режима. перемещаем газ в нижнюю позицию, а остальные стики в среднюю и нажимаем завершить (complete)

3 Настройка логгирования — записи полетных данных в «черный ящик»

После первого полета, если вы не используете телеметрию, скорее всего вам понадобятся логи для оценки полета, необходимо их включить. Нажимаем терминал и набираем logs. если в терминале уже активен setup] то вводим exit и ввод, набираем logs
erase и ввод — чистка памяти где хранятся логи
enable all — включение полного логгирования

4 Включение и калибровка компаса

На APM1 компас- отдельно устанавливаемый модуль, на APM2 и APM2.5 он уже установлен

Заходим в настройки (Settings), оборудование (Hardware options), включаем компас (если чекбокс был отключен потребуется перезагрузка контроллера до проведения калибровки) и выполняем калибровку. Для калибровки плавно вращаем контроллер по всем осям не забывая про курс, в конце калибровки вы увидите результирующие значения offsets.
вращать надо в руке как на шарнире потихоньку поворачиваясь по направлению вращать платой приводя ее во все возможные углы наклонов по крену и тангажу вплоть до переворота.

Проверка: после того как компас откалиброван, уберите подальше от стола магнитные предметы в том числе отвертки и ножницы, положите лист бумаги на стол и положите плату на него, направьте плату передом на север — чтобы индикатор в «Flight data» показывал точно на «N» (соответствие реальной стороне света на этом этапе не важно, на вашем рабочем месте все равно могут быть магнитные аномалии, их легко выявить механическим туристическим компасом)
затем проведите черту параллельно плате — и не двигая лист бумаги разверните плату на 180 и положите вдоль черты.
сначала курс будет показывать «S» — юг в любом случае т.к. это значение определяется по гироскопу, затем со скоростью порядка градуса в секунду показания гироскопа будут подтянуты к показаниям компаса, итак если после 30 секунд если вы видите тот же юг, с небольшим допуском — значит компас откалиброван верно.

Цукерберг рекомендует:  Интернет вещей что это и куда он нас приведет

5. Включение датчика воздушной скорости

Заходим в настройки, оборудование, включите галку датчик воздушной скорости (при этом параметр ARSPD_ENABLE будет уснановлен в 1), если он у вас есть и вы планируете его использовать. (на этой стадии его показания не будут использованы автопилотом, будут лишь накапливаться данные для калибровки и отображаться измеренная воздушная скорость в программе при соединении по телеметрии или USB, после того как он откалиброван и готов к использованию его можно начать использовать задав ARSPD_USE=1 в полном перечне параметров)

6 Настройка режимов автопилота

Заходим в настройки, Flight modes — настройте режимы которые вы будете использовать — для начала рекомендую manual — ручной stabilize — автоматическое выравнивание модели с ручным газом и возможностью управлять rtl — возврат к точке запуска. Для настройки режима необходимо подключить канал приемника связанный с многопозиционным переключателем передатчика на канал контроллера № 8 (у вертолетной прошивки «arducopter» используется канал №5 ) Весьма часто случается что небрежная настройка режима приводит неполадкам при пилотировании — для обеспечения надежности фиксации нужного режима постарайтесь чтобы значение PPM канала управления попадало ровно в середину диапазона отведенного для режима, более подробно как это сделать тут.

Установка в модель:

Устанавливать контроллер следует в место отвечающее следующим условием:
— контроллер должен быть установлен горизонтально. параллельно оси движения самолета , штырями подключения сервомашинок к хвосту самолета, по возможности постарайтесь обеспечить крепление обеспечивающее гашение мелких вибраций
— обеспечение защиты от влаги в том числе конденсата росы и тумана
— отсутствие вихревых потоков приводящих к изменению давления в движении — в автопилоте используется барометр для определения высоты
— отсутствие магнитных полей (не используйте магнитные защелки кабины и устанавливайте вдали от мотора) магнитные поля могут повлиять на показание компаса

Подключение радиоприемника, регулятора, сервоприводов к APM1

В случае если расположение штырьков это позволяет — подключение приемника можно производить двумя вилками четырех контактной — соединить сигнальные пины приемника 1-4 и автопилота и трех контактной (для соединения канала 8 autopiot control, +5v и общий питания приемника)

контроллер APM2 имеет 8 входов для подключения радиоприемника расположенных на передней кромке и 8 выходов для подключения регулятора оборотов и сервоприводов на задней кромке, выходы пронумерованы, подключение осуществляется аналогично APM1, однако контроллер APM2 не имеет встроенного регулятора 5V и более требователен по электропитанию. В обеих случаях настоятельно рекомендую использовать отдельный внешний высокоточный линейный регулятор напряжения.

Контроллер АПМ 2.5 имеет гнездо PM для подключения «Power Module» этот модуль включает в себя источник питания автопилота, датчик напряжения, датчик тока

Требования к надежному источнику питания:

  • Питание от силовой батареи (7,4 — 20 вольт)
  • Дополнительный вход питания от резервной (маломощной) батареи
  • Выходное напряжение 5V +-5%
  • Выходной ток не менее 300 ма (с учетом телеметрии и minimosd)
  • Максимально допустимый импульсный выходной ток не менее 500 ма
  • соединение с контроллером «ардупилот» пайка или надежный разъем с фиксацией

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

Включение батареи

Предполетная проверка:

проверяем правильность отклонения рулей в ручном режиме
переключаем в режим стабилизация наклоняем модель и убеждаемся что плоскости элеронов и руля высоты отклоняются в положение парирующее крен и пикирование на достаточные углы необходимые модели для парирования отклонения от горизонта, величина углов определяется настройками SERVO_ROLL_P и SERVO_PITCH_P, Первичная настройка может быть сделана «на глазок»

Настройка модели в первых полетах и проверка режимов

Первые взлеты осуществляются в ручном режиме.
Для корректной работы автопилота «с настройками по умолчанию» следует проверить центровку модели в полете в ручном режиме, при этом в различных скоростных режимах и режимах работы двигателя модель должна сохранять положение горизонтального полета те. не крениться не переходить в снижение или набор высоты.
В случае отклонений исправьте центровку модели подгибая тяги управления и изменяя развесовку чтобы обеспечить горизонтальный полет при средних положениях триммеров.
Если самолет летит ровно при отпущенных стиках в ручном режиме — можно начать проверку режима стабилизации — наберите высоту достаточную для переключения в ручной режим и восстановления положения самолета. включите стабилизацию и попробуйте стиками помешать горизонтальному полету — модель должна быстро восстанавливать горизонтальное положение. для проверки режима rtl следует занять безопасную высоту отлететь на 20- 30м и переключить rtl модель должна развернуться в сторону точки запуска, достичь ее и начать кружение вокруг нее.

Демонстрация первого взлета модели в ручном режиме, пролета и фрагментов автоматической посадки
контроллер: APM1 + gps quectell mt3329 + компас + Airspeed sensor
http://www.youtube.com/watch?v=1_ChbpM5Dyg&feature=youtu.be

Видео YouTube

После того как механика и аэродинамика модели приведена в оптимально состояние — следует оптимизировать настройки ардупилота. На первом этапе следует настроить PID отвечающие за стабилизацию.
Принцип настройки следующий:

  1. Единовременно настраивается только один параметр
  2. сначала настраивается параметр P каждого из пидов (параметры I и D отложите на самый последний этап)
  3. единовременно изменяйте значение P не более чем на 10%

Проверяем в полете достаточно ли быстро самолет возвращается в состояние горизонтального полета в режиме стабилизации. Для этого набираем высоту достаточную для того чтобы в непредвиденных обстоятельствах успеть переключиться в ручной режим и восстановить горизонтальный полет вручную.В условиях средней полетной скорости для модели вводим модель в крен и включаем режим стабилизации — если самолет стабилизируется слишком вяло по крену то следует увеличить SERVO_ROLL_P, добавляете к значению 10% и повторяете испытание. Если выравнивание осуществляется со скоростью опасной для конструкции или приводит к автоколебаниям — следует уменьшать этот коэффициент.

Во вторую очередь следует настроить стабилизацию пикирования/кабрирования, которая осуществляется аналогично но с параметром SERVO_PITCH_P

Выполняя полеты по настройке стабилизации обратите внимание на положение стика газа при котором самолет поддерживает нормальную скорость в горизонтальном полете, значение по умолчанию = 45%, но в используемых мною моделях обычно требуется порядка 60-70% газа. Без регулировки этого параметра модель будет интенсивно терять высоту при попытке использования режима «авто». параметр отвечающий за среднее положение газа для автоматических режимов THROTTLE_CRUISE

Параметры I и D каждого из пидов предназначены для тонкой настройки для получения максимума эффективности.

Параметр D на единовременную, краткосрочную дозу энергии прибавляемую к P требуемую в момент возникновения ситуации — например на преодоление вращательной инерции.

Параметр I позволяет автоматически сдвигать среднее положение дозировки энергии долгосрочно адаптируясь к условиям полета. Например если невозможно механически исправить «кривизну» модели то увеличивают I составляющую. Негативным следствием большого значения I является изменение полетных обстоятельств, к примеру если накоплена ошибка по крену на левое крыло, но впоследствии груз переместился на правую сторону то силы этой составляющей еще некоторое время будут препятствовать составляющим P и I поддерживать горизонтальный полет.

До окончания настройки P составляющих всех коэффициентов настройку D и I лучше отложить

Настройка параметров навигации для автоматических режимов

На данном этапе следует внести в память автопилота 5-10 точек на параллельных курсах на расстоянии 200 — 300м друг от друга, на относительной (от уровня земли) высоте порядка 100м, с размером радиуса точки 20м желательно в соответствии с наземными ориентирами.

Перед запуском помимо процедуры установки полетного уровня модели следует дождаться захвата спутников о чем будет свидетельствовать постоянное свечение светодиода «C» красного цвета. При первом захвате после включения сохраняется «домашняя точка» которая используется в последствии при использовании режима RTL

Цель испытаний — настроить PID навигации

NAV_ROLL_P — управление креном в целях достижения курса к очередной маршрутной точке, если параметр мал то модель будет слишком вяло менять курс к нужной точке, и идти к ней по дуге. На интенсивность поворота, особенно пилотажных моделей с центром тяжести по центру подъемной силы, существенно влияет коэффициент KFF_PTCHCOMP — он определяет зависимость положения руля высоты на кабрирование в зависимости от актуального угла крена.

NAV_PITCH_ALT_P — управление пикированием — регулировка интенсивности воздействия на руль высоты для достижения высоты указанной для маршрутной точки. Если это значение слишком мало то модель летает в одной плоскости не достигая требуемой высоты проходя над очередной маршрутной точкой.

в моем случае пришлось увеличить оба эти коэффициента приблизительно на столько же как и соответствующие коэффициенты отвечающие за стабилизацию.

THROTTLE_TE_P — коэффициент задающий зависимость изменения газа от «точки нормального значения» заданного в THROTTLE_CRUISE при необходимости набора высоты в большую сторону, при необходимости снижения в меньшую.

в прошивках по 2.6 NAV_PITCH_ALT (P >

Использование телеметрии для настройки, контроля полета, записи полетных данных и последующего анализа

Для беспроводной конфигурации автопилота и записи телеметрических данных предлагаются два решения:

  1. Комплект XBEE-900Pro
  2. 3DR telemetry set

любой из комплектов состоит из адаптера подключаемого к USB компьютера и адаптера с serial uart интерфейсом,

для лучшего приема желательно разместить компьютерный модуль повыше, для чего можно использовать USB — удлинитель

для подключения к Ardupilot Mega 1 и 2 на этих платах предусмотрен порт телеметрии, на котором имеются сигнальные выводы, общий и питание. Однако следует понимать что в режиме передачи данных приемо-передатчик может потреблять значительный ток и использование питания от ардупилота может привести к перегрузке встроенного в APM1 стабилизатора или внешнего для APM2. Для обеспечения надежности системы я бы рекомендовал использовать внешний источник (см. выше)

установка связи через беспроводной комплект подключенный к порту телеметрии осуществляется на скорости 57600 (если не указано иное в соответствующем параметре), в качестве номера порта следует выбрать тот, который появился после подключения USB адаптера. Процедура подключения и отключения может быть осуществлена в любом состоянии — на земле и или в полете, процедура подключения и пропадание связи не сказывается на полете, однако поскольку скорость передачи данных зависит от качества сигнала — подключение следует осуществлять в зоне уверенного приема, в противном случае может не хватит времени отведенного на процедуру передачи начальных параметров и случится таймаут. Через порт телеметрии доступны не все данные, консоль (настройки, тестирование, работа с логами) будет недоступна

Для удобства, после захвата спутников, когда на высотомере отобразится высота над уровнем моря — установите в mission planner высоту домашней точки в «0»

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

Все полетные данные полученные в ходе сеанса связи записываются в два файла .rlog и .tlog


Впоследствии для анализа полета эти данные можно воспроизвести. Для того чтобы посмотреть полет даже не потребуется подключенный контроллер — скачайте Mission Planner, и архив с файлами телеметрии приложенный в конце страницы, разархивируйте вложенные файлы в одну папку, откройте файл .tlog из Mission Planner и нажмите кнопку «Play» В конкретной записи в начале модель неподвижна, ведется ее наземная подготовка и проверка.

Анализ полетных данных в целях выявления ошибок настройки.

На примере данных телеметрии «полеты_4_08_2012_6кругов.rar» (архив внизу страницы)

  1. из кривой движения в режиме «авто» от точки 1 к точке 2 возникает предположение что модель имеет склонность к уклонению вправо порядка 5 градусов, это может являться следствием неверной установкой руля направления или отсутствия выкоса установки двигателя.
    решение: в следующем испытании попробовать установить небольшое отклонение руля направления влево.
  2. исходя из части маршрута «6 кругов с радиусом 50 метров вокруг точки №8» в виражах наблюдается просадка на 2-3 метра. Возможно недостаточен коэффициент зависимости кабрирования от крена Решение: попробовать увеличить значение KFF_PTCHCOMP
  3. После прохождения 6 кругов на высоте 30 метров следующая точка №9 (предпосадочная) находилась на удалении 40 метров с высотой 5 метров — что оптимально для вхожения в глиссаду, радиус маршрутной точки был задан 20 метров. Логика ардупилота (версии 2.50) такова что войдя в радиус маршрутной точки — точка считается достигнутой и предпринимается очередное маршрутное действие — в результате пройдя из 40 метров только 20 — случилось вхождение в радиус маршрутной точки и как следствие прекращено снижение, в следствие чего на дистанции от точки 8 к точке 9 модель снизила высоту не до 5 метров а на отметке 15 приняла горизонтальное положение и зафиксировала курс — как и следовало в начале посадки

на иллюстрации указана высота от уровня моря т.к. не была сделана установка высоты перед полетом (следует считать за вычетом 135м) показан момент вхождения в радиус 9 маршрутной точки с ошибкой +15м. Решение: по идее это ошибка логики автопилота — моментом прохождения маршрутной точки следовало бы считать не вхождение в радиус а момент минимальной дистанции и это особенно актуально в момент посадки. поскольку переписывание кода достаточно трудоемкая операция то в следующих испытаниях следует сделать точку вхождения в глиссаду дальше от кромки, а предшествующую ей точку на той же высоте что и точка вхождения в глиссаду или уменьшить радиус маршрутной точки с типовых 20 метров до 5, т.к. GPS приемник показал достаточно высокую точность.

Дополнительные задачи для последующих полетов:

  1. Поскольку в первом полете при значении по умолчанию TRIM_TROTTLE (TROTTLE_CRUISE) 45% модель слишком интенсивно теряла скорость, а после увеличения до 70% оказалось, что это немного превышает реальные потребности в мощности — снизить уровень до 65%
  2. уменьшить WP_LOITER_RAD с 50 до 20 метров, так как не позволяет летное поле и долго ждать пока он наматывает такие круги
  3. Уменьшить число кругов, пары кругов достаточно чтобы вычислить просадку в повороте
  4. Оказалось что при резком увеличении газа регулятор не всегда успевает раскрутить мотор и может произойти срыв вращения, для предотвращения этой ситуации следует установить параметр регулятора «мягкий старт», альтернатива в коде автопилота для автоматического режима THR_SLEWRATE, попробовать установить в 50% — насколько сможет измениться значение газа за секунду.
  5. После того как автокалибрвка датчика воздушной скорости после нескольких полетов будет завершена, и его средние показания при движении по кругу будут соответствовать наземной скорости — включить ARSPD_USE — возможность использования датчика воздушной скорости для целей управления полетом.

Использование телеметрии для изменения настроек

Тестирование производилось командой из двух человек пилот + оператор-пк ходе первых полетов мы опасались изменять какие либо параметры в полете — сначала приземлялись — настраивали, затем попробовали «на лету» — перевели модель в ручной режим — получилось настраивать ПИДы, затем обнаглели и стали заливать новые настройки в том числе маршрут не переходя из авто режима (правда после заливки нового маршрута давали из телеметрии команду на сброс миссии) В результате убедились что все достаточно хорошо работает «на лету» (в прямом смысле) что позволило существенно ускорить испытания.

Особенности планирования маршрута

После того как датчик воздушной скорости был откалиброван и включен параметр ARSPD_USE = 1 практика показала основным параметром определяющим маневренность модели при неизменных NAV_ROLL ПИДах является воздушная скорость модели, причем эта зависимость нелинейная например при скорости 12 м/с наша модель делала разворот на 180 градусов с радиусом 5-7м а при воздушной скорости 15м/с радиус достиг 20м

поэтому предварительные выводы таковы:

  • сначала следует определить скорость при которой начинается «сваливание» модели, и увеличив полученное значение в 2 раза задать его в качестве «круизной скорости», затем под эту скорость настраивать параметры навигации по наклону и пикированию
  • при планировании маршрута, в случае наличия даже минимального ветра для достижения четкого прохождения маршрута точки следует располагать так чтобы «сложные» участки (близко расположенные точки) находились в положении когда модель идет против ветра (и при этом она показывает чудеса маневренности)
  • бесполезно устанавливать точки ближе одна к другой чем это позволяет маневренность модели

Планирование посадки

В случае если в маршрут включена автоматическая посадка то посадочную точку с высотой 0 следует ставить в предполагаем месте касания полосы, предшествующую посадке точку следует ставить на высоте порядка 5 метров — на удалении достаточном для снижения на эту высоту при соблюдении круизной скорости. это будет точка входа в глиссаду, в ней самолет отключит мотор и будет снижаться за счет установки пикирования в зависимости от воздушной скорости если включен параметр ARSPD_USE = 1 (или будет удерживать заданный в переменной land_pitch_cd в сотых долях градуса если ARSPD_USE = 0), помимо точки захода на посадку в прямой от посадочной точки и точки входа в посадку следует поставить еще одну точку с высотой безопасной для маневрирования (для нашей модели это высота 15 метров на удалении 40м от точки входа в посадку) то что эта точка находится на посадочной прямой и безопасной высоте позволит обеспечить отсутствие резких маневров приводящих к невосполнимой потере скорости на малых высотах.

С тем чтобы обеспечить гарантированное снижение с большой высоты без набора скорости разумно перед точками посадки установить точку кружения с 1-2 кругами (для сброса высоты 70м в нашем случае хватило одного круга на высоте 30м )

Основные типы маршрутных точек

WP — маршрутная точка с указанием широты долготы и высоты (высота отностительно точки старта или уровня моря задается отдельной опцией)

TAKEOFF — точка в которой актуальным параметром является высота. Например если установить высоту 15 метров то запуская модель в этом режиме до этой высоты газ будет максимальный (для первых прошивок: газ работал в ручном режиме), автоматически будет удерживаться взлетное кабрирование, и курс. при достижении моделью указанной высоты включится автоматический газ и навигация к первой WP

LANDING — планируемая к посадке точка, при ее наличии при прохождении предыдущей точки выключается двигатель, включается удержание текущего курса и удержание скорости если включен параметр ARSPD_USE = 1 (или будет удерживать заданный тангаж, указанный в параметре land_pitch_cd в сотых долях градуса если ARSPD_USE = 0),

в прошивке Arduplane 2.6 изменен алгоритм посадки- используется удержание угла указанного в параметре land_pitch_cd независимо от значения ARSPD_USE

для всех типов точек задается WP_radius — радиус зоны попадая в которую автопилот считает что достиг точки и берет курс к следующей. Соответственно если GPS приемник достаточно точный и модель попадет от предыдущей точки по определенной траектории то имеет смысл планировать точки таким образом что точкой прохождения будет пересечение траектории от предыдущей точки и радиуса. При уменьшении радиуса менее 10 метров возможны интенсивные «доруливания» вблизи точек даже при слабых PID навигации — специфика PID навигации — они дают коррекцию курса от угловой ошибки а вблизи маршрутных точек угловая ошибка даже при небольших разбросах показаний GPS может дать большой угол. Следственно задавать радиус точки меньше 10 метров — чревато резкими рывками при их прохождении. Задавать радиус более 20 метров чревато что точка будет достигнута на этом радиусе, и если это не предусмотрено в плане то может быть «срезан угол», кроме того если между двумя точками планируется изменение высоты то при достижении радиуса этой точки изменение высоты будет не таким как ожидалось на величину отношения удаления между точками к радиусу точки. это особенно важно учитывать при планировании захода на посадку. При достаточно больших значениях пидов навигации не следует задавать радиус точки меньше 20м

Автоматизация нанесения точек на карту

В Mission Planner есть возможности автоматического создания точек для полета по кругу и для облета заданного квадрата. Для второго случая предварительно понадобится нанести на карту периметр облета при помощи специального инструмента. Это весьма полезный инструмент для создания маршрута для целей аэрофотосъемки или опыления плантаций.

Создание точек по кругу: ставим курсор в центр предполагаемого круга на карте и вызываем контекстное меню ПРАВОЙ кнопкой мыши.

Создание «полигона» для полетов — ставим указатель мыши в нужное место и вызываем контекстное меню

Есть еще одна крайне важная функция о которой нельзя не упомянуть говоря о планировании маршрута — для того чтобы Карта нужного вам региона была доступна в отсутствии соединения с интернетом необходимо выбрать нужный квадрат и вызвать функцию Map Tools -> Prefethch после чего Mission Planner загрузит фрагмент карты на диск

Настройка Точности следования маршруту и парирования воздействия ветра

Для возврата на планируемую траекторию при сносе ветром или всилу кривизны модели используется два параметра

XTRK_ANGLE_CD — максимальный угол который может корректировать эта система коррекции, например задавать свыше 90 (90000 в сотых градуса) бессмысленно т.к. при столь сильном ветре модель будет висеть на месте чтобы удержать курс. а вот значения 30 — 45 градусов вполне оптимальны.
XTRK_GAIN_SC — коэффициент воздействия ошибки отклонения от линии маршрута на угол поворота, для модели которой требуется идти точно по линии маршрута для геодезической фотосъемки я остановился на значении 150

В моем случае увеличение XTRK_GAIN_SC с 100 до 150 потребовало также увеличения NAV_ROLL_P на 15% для компенсации потери точности навигации по курсу.

На рисунке показано что на пути от точки 0 к точке 1 Xtrack подтянул модель к линии планируемой траектрории но при выходе из точки 1 образовалась дуга, красными стрелками показано как XTRK_GAIN_SC пытается притянуть фактическое положение к требуемой трассе, а красные черточки после пересечения желтой линии трассы, воздействие по парированию бокового ветра.

Проблемы точного соблюдения высоты.

Контроль высоты в режиме соблюдения воздушной скорости

при использовании Airspeed_use = 1 самолет старается выдерживать заданную воздушную скорость в том числе удерживая необходимый для этого тангаж, в этом случае крайне сложно проогнозировать высоту фактического прохода точки. Для соблюдения безопасной воздушной скорости и точного следования заданной высоте предлагается решение — принимать меры по коррекции тангажа для удержания воздушной скорости лишь при достижении ею критических значений. Для этого следует модифицировть функцию в модуле altitude.pde

и добавить функцию определения «критической скорости» в конец altitude.pde

при этом управление высотой будет зависить от коэффициента NAV_PITCH_ALT_P
в случае если воздушная скорость находится в диапазоне минимальной и максимальной скоростей определенных для flybywire Тестирование данного решения намечено на ближайшие испытания.


Проблема снижения в повороте
В случае когда модели требуется совершить резкий поворот и одновременно снижение в оговариваемых версиях прошивок наблюдается следующее: либо модель гораздо более вяло исполняет оба маневра, либо сначала выполняется поворот, а затем снижение, либо сначала снижение а затем поворот. В случае больших пидов навигации и по курсу и по высоте может наблюдаться движение по синусоиде. Причиной подобного поведения является то, что самолету для выполнения поворота требуется совершить крен и отработать рулем высоты «на себя». Если в этот момент функция контроля высоты дает команду руль высоты «от себя» то при левом крене совершается правый поворот так как при этом крыло работает обратной строной.
Решением этой проблемы может быть использование избыточного крена вместо руля высоты для «бокового соскальзывания» в случае если высота полета безопасно велика.
Другим решением может быть использование руля напрявления вместо крена в случае необходимости одновременного снижения.
Для опробования этих алгоритмов будут подготовлены и опубликованы модификации программного кода.

Полетные Испытания 21.10.2012

  • проверка эффективности патча «точного контроля высоты»
  • проверка прошивки 2.6.5
  • проверка запуска со «Стартовой тележки»
  • Без осадков
  • Низкая облачность,
  • Порывистый ветер в приземном слое до 6 м/с на высоте 100м до 12 м/с
  • относительная влажность 83%
  • температура 9°С
  • время начала испытаний 9:20

взлет со стартовой тележки в ручном режиме управления, переход в автоматический режим, первая точка на высоте 100м, левый поворот на 90, снижение ко второй точке, 1 оборот вокруг второй точки левый поворот на 90, в 3 точке левый поворот на 90 к глиссаде, снижение к 4 точке до 4 метров, посадка.

тележка для старта модели с грубой поверхности, например с газона

Взлет с тележки происходит успешно, руление килем достаточно и эффективно , сваливания изза неровностей «газона» не происходит, в обеих попытках для разбега была израсходована вся длина полосы.
Выработано мнение: это происходит изза недостаточности угла установки модели на тележке. В качестве величины угла был выбран полетный угол модели (4градуса) при этом значении требуется скорость порядка 10м/с, достижение которой затруднительно. В качестве решения было предложено увеличить угол в полтора раза.

Прохождение маршрута в условиях очень сильного ветра

1я точка — набор высоты 100м

2я точка круг с разиусом 20м вокруг точки

3я точка опеределяет направление входа в глиссаду

4я точка отключения мотора

5я точка предполагаемое место касания полосы

автоматическая посадка точно на полосу

Прошивка Arduplane 2.6.5 показала отличный результат в условиях крайне сильного ветра, даже сильный ветер не смог отклонить модель от заданного маршрута, благодаря использованию патча «точного контроля высоты» самолет точно вышел на требуемую высоту в точке начала глиссады, совершено две автономные посадки точно на полосу.

Используемые в этом испытании настройки, маршрут, логи телеметрии приложены в конце страницы.

Изучение параметров управления газом в режиме взлета

эти опции стали доступны в прошивке arduplane 2.7.1

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

THR_SUPP_MAN по умолчанию он равен 0

но если его поставить в 1 то в режиме «предотвращения включения газа» когда аппарат в автоматическом режиме но лежит на земле газ будет зависеть от положения стика газа.

если эту опцию включить, то газ будет вручную втч на взлете но до момента наступления разблокировки газа

то есть при соблюдении любого из условий

  • толчок по оси х (вперед) определяемый TKOFF_THR_MINACC превышает установленное значение , отличное от нуля (0 — опция не действует)
  • достижение взлетной скорости определенной в TKOFF_THR_MINSPD (метры в сек)

для того чтобы взлетать с полосы в режиме ручного газа нужно поставить

  • THR_SUPP_MAN = 1 чтобы разрешить ручной газ
  • TKOFF_THR_MINACC = 0 чтобы исключить активацию полного газа от толчков
  • TKOFF_THR_MINSPD = 12 (для моей модели) чтобы исключить включение полного газа до отрыва от полосы, у меня отрыв около 10м/с

при стрельбе из катапульты

  • THR_SUPP_MAN = 1 если хотите задать небольшой начальный газ вручную до выстрела. 0 если газ вручную с пульта недопустим
  • TKOFF_THR_MINACC = 30
  • THR_SUPP_MAN = 1 если хотите задать небольшой начальный газ вручную до броска. 0 если газ вручную с пульта недопустим
  • TKOFF_THR_MINACC = 10-12

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

Arduplane 2.4 стабильная прошивка, в режиме «GPS NMEA» возможна ошибка до 2 км


Arduplane 2.5 — 2.6 не работает «HIL версия» с симуляторами, в режиме «GPS NMEA» возможна ошибка до 2 км

Arduplane 2.6.3 исправлен режим HIL, исправлена ошибка «GPS NMEA»

Arduplane 2.6.5 исправлены проблемы с управлением ЛК

Arduplane 2.6.8 снова исправлен режим HIL, исправлены неточности при использовании UBLOX gps

В тестировании использованы

    модель «трансформер» fpv-model.ru (размах крыльев 1750мм, вес

2кг, верхоплан, задний толкающий винт )

  • тяга 2 кг, винт 11*6,
  • батарея zippy 3s 5000ma
  • телеметрия 3dr radio 915mhz
  • Автопилот APM1 + компас 5883l + GPS globaltop PA6C (mediatek 3339) + датчик воздушной скорости
  • Примечания:
    Описание всех параметров на английском языке на официальном сайте

    Компиляция прошивок в среде ардуино: прошивки до 2.5 следует компилировать в ардуино 0.22 relax path,
    начиная с 2.5 в arduino 1.0 relax path или arduino 1.0.1

    русскоязычное обсуждение arduplane тут

    Самодельная система стабилизации самолета на базе Arduino

    С недавних пор я увлекся авиамодельной темой. И тут понеслась: построил самолет, купил аппаратуру. Предвидя быструю кончину первой модели не отходя от кассы начал собирать вторую, параллельно занимаясь в симуляторе. В общем оттягивал я свой первый реальный полет как мог, боясь с ходу разбить модель. И тут совершенно случайно, бороздя просторы алиэкспресса я наткнулся на интересную штуку — систему стабилизации полета. Это небольшое, размером с приемник, устройство, которое корректирует полёт самолета, делая его более плавным, сглаживая огрехи пилота. Начал искать, читать, говорят и правда хорошая вещь для новичков. Ну и тут я загорелся — хочу и хоть ты тресни. Вот только бюджет уже совсем поджимал. Казалось бы, самолет тот построить вопрос долларов на 10 потолок, а аппаратуру купи, аккумулятор купи, зарядное устройство для него купи, двигатель, регулятор, сервоприводы, пропеллеры . Короче в итоге набегает немало. Немного приуныв, но не сдавшись я начал чухать затылок: дык, я ж вроде паять умею. Начал искать и почти сразу же нашел небольшую статейку под названием «Система стабилизации самолета за 200 рублей». Совсем скромная статейка со совсем скромной реализацией. Но это уже что-то. Полез на зарубежные форумы — и о чудо, да это же огромный проект с постоянным развитием! Решено, будем делать!

    Проект называется MultiWii. Изначально это задумывалось как полетный контроллер для мультикоптеров на базе arduino, но со временем начало обрастать и совершенствоваться. Сейчас есть код, позволяющий ставить эту систему стабилизации и на самолеты, и на V крылья. Для самого простого исполнения, как в вышеупомянутой статье, потребуется всего 2 вещи: arduino и акселерометр. Все это можно спаять проводами, залить горячими соплями и работать будет. Но оно может и будет, вот только я так не работаю.

    И так, для изготовления полноценного устройства понадобятся:

    • Arduino PRO Mini, 5V, Atmega 328
    • Модуль трехосевого акселерометра с гироскопом MPU-6050
    • Гребенка PLS
    • Кусок фольгированного стеклотекстолита, если делаете плату сами.
    • SMD резистор 500-1500 Om
    • Светодиод 3 мм любой.

    Из инструментов:

    • Паяльник
    • Припой
    • Флюс (я советую F5)
    • USB — UART конвертер CP2102 или аналогичный
    • Модельный/канцелярский/монтажный нож для изготовления корпуса

    Ну и по мелочи, двусторонний скотч, ножницы, ушные палочки, пинцет, то, что должно быть на вооружении и у самого юного самоделкина.

    Как я говорил проект растет и развивается. Так что сюда можно прикрутить еще Bluetooth модуль, для настройки контроллера с телефона, барометр, для контроля высоты, GPS для возврата модели «домой» при потере сигнала. Помимо этого так же растет тема про самодельные приемники на базе той же arduino и дешевого модуля связи A7105, который без хирургических вмешательств сопрягается с моей аппаратурой FlySky i6, так что в теории можно связать два этих проекта и забабахать полноценные «мозги» для самолета, планера или крыла. А в купе с вышеупомянутой бюджетной аппаратурой, которая спокойно прошивается с 6-и каналов на 14-ть — это выходит вообще просто идеальный вариант для новичка за свои деньги.

    По этому плату для этого устройства я постарался сделать по возможности максимально простой, то есть односторонней и под утюг. Конечно знания в радиоэлектронике понадобятся, по крайней мере умение более или менее качественно паять, плату и заказать на крайний случай можно, но по сути — это конструктор: зашил ардуинку, впаял ее, модуль и гребенку на плату, готово. Минимум приложенных усилий.

    Первым делом впаиваем перемычки.

    Шильдик напечатал на самоклеящейся глянцевой бумаге. Купил недавно специально для таких целей. Раньше делал так: печатал на чем есть, ламинировал скотчем и клеил на двухсторонний скотч. Самые внимательные могли оценить мой уровень английского языка)

    Теперь устройство действительно можно назвать готовым модулем. Итоговый вес 15.5 грамм. Многовато если сравнивать с покупным, но в целом очень даже ничего. По крайней мере моя модель с размахом 950мм потянет без проблем. Но если гнаться за весом — можно распаять arduino из рассыпухи прямо на плате, сэкономит грамма 2, использовать тонкий миллиметровый текстолит (я использовал какой был, полтора или два миллиметра, не измерял), не делать корпус. Но стоит ли ради тех 5 грамм? К примеру вес родного приемника от моей аппы — 16 грамм.
    Устройство должно быть расположено в горизонтальной плоскости, стрелка указывает направление движения. Так же устройство нельзя устанавливать вверх дном. Для большей наглядности прилагаю картинку.

    Немного о других настройках. PID — это настройки самой стабилизации. В двух словах:

    • Р — это величина корректирующей силы, приложенной для того, чтобы вернуть модель в её начальное положение.
    • I – это период времени, в течение которого записываются и усредняются угловые отклонения.
    • D – это скорость, с которой модель вернется в её начальное положение.

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

    Далее. TPA отвечает за значение этих PID настроек в зависимости от положения газа. При значении 0.00 значения PID будут одинаковыми при любом положении газа, то есть как предполагается, на любой скорости. При значении 1.00 при газе 100% PID будут равны нулю, то есть стабилизация будет отключена. При значении 0.5 на 100% газа пиды будут равны 50% соответственно. Тут уже настраивается под самолет и под свой стиль пилотажа, я пока оставил 50%.

    Так же на канале AUX2 нужно настроить арминг. Арминг — термин коптерный. По человечьи это называется разблокировка двигателя. На самолетах это обычно реализуется через аппаратуру управления, но т.к. этот контроллер изначально коптерный — тут это сделали довольно жестко. В общем вешаем на AUX2 какой-то свободный тумблер, в программе ставим ARM на высокий уровень. Тут кто-то может захотеть схитрить и выставить разблокировку на всех уровнях AUX2, вот только не проканает. В таком случае мультивий откажется запускать двигатель вообще. Можно предположить что это баг, но я думаю что скоре защита. Самолет все таки только вперед летит, а куда рванет неуправляемый коптер одним Богам известно.

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

    Важный момент про отключение устройства от компьютера. Если выдернуть провода программирования из устройства или выдернуть конвертер из USB порта не закрыв COM порт или программу MultiWiiConf — примерно со 100%-й вероятностью произойдет краш системы и синий экран. По крайней мере на моем ноуте это так. Я даже специально проверял. Не знаю, проблемы ли это моего железа или так реагирует видна на виртуальный COM порт, но предупрежден — значит вооружен. Имейте в виду.

    И еще немного настроек которые могут пригодиться. Если Ваш приемник умеет выдавать PPM сигнал, возможно Вам захочется передавать на мультивий его. Для этого открываем файл прошивки, переходим во вкладку config.h и ищем раздел PPM Sum Reciver (восслався Ctrl+F). Тут нужно расскоменитровать 2 строчки. Кто не в теме, раскомментировать — это значит убрать два слэша в начале строки. Было так:

    Так же нужно расскоментировать одну из этих строчек в зависимости от аппаратуры:

    В моем случае это вторая строка, там где Futaba (при чем аппаратура у меня FlySky). Тут возможно придётся подбирать опытным путем, возможно и самому прописать нужную последовательность. Так или иначе ничего сложного в этом нет. Компилируем скетч и заливаем его по новой. Для возврата в обычный режим делаем обратное, комментируем строки, компилируем, заливаем. Хочу обратить внимание, после перезаливки скетча все настройки и калибровка будут сбиты, имейте это в виду.


    Ещё одна распространённая проблема с которой как я понял часто сталкиваются, и я не исключение. После того как все собрали и настроили, подключили все рули — уплывает руль направления. Передернули ручки на пульте — вроде стал на место, но стоит немного покачать планер — опять уплывает в сторону, при чем на довольно серьезный угол. Лечится элементарно: в программе GUI устанавливаем значение YAW — I в ноль. Проблема сразу уходит.

    Ну и видео работы:

    В общем и целом, если у Вас есть опыт изготовления печатных плат, устройство собирается за один вечер. Основные настройки для самолета я уже внес в скетч сам, остальные описал в статье. Информацию пришлось собирать по разным форумам, в основном зарубежным. Тем не менее даю ссылки на разные источники, которые помогут в случае других проблем, хотя их быть не должно.

    Форум продавца печатных плат из Вены , у которого я и позаимствовал формфактор платы. Покупать я не предлагаю, но в теме есть детальный гайд по конфигурации прошивки на английском языке. Правда для старой версии прошивки, но в новой все почти так же. Так же в ветке есть мод, позволяющий в реальном времени регулировать PID настройки через аппаратуру управления потенциометром.

    Личный блог авиамоделиста Патрика Эмерсона . У него есть своя личная переписанная прошивка, говорят что идеально оптимизированная под самолеты. Но опять таки старой версии. Можете попробовать ее, но за появление глюков не описанных в этой статье я ответственности не несу. Там же много описаний настроек.

    Русская тема на форуме . Но основную полезную информацию, которая там описана, а именно лечение руля направления я уже изложил. Тем не менее, мало ли.

    Итоговая стоимость колеблется в пределах 4-8 долларов, смотря по какой цене купили ардуино и модуль, есть ли дома текстолит, есть ли программатор. При любом раскладе это в разы меньше рыночной стоимости от 20 долларов за устройство с такими же характеристиками. Лично мне оно обошлось в 2 доллара, запас ардуинок для таких вот целей был закуплен еще год назад, не было только модуля.

    В прикрепленном ниже архиве скетч для ардуино, программа настройки MultiWiiConf для разных операционных систем, файл печатной платы (для открытия нужен SprintLayout не меньше 6-й версии) а так же печатная плата в формате PDF, для тех, у кого нет лазерного принтера дома (нужно печатать в размере 100%).

    Как сделать RC катер с опцией автопилота — часть 1

    Приветствую, мозгочины! Сегодня расскажу вам, как я своими руками создал Arduino-поделку — радиоуправляемый катер с опцией автопилота.

    По сути, это мозгоруководство о создании автопилота на микроконтроллере Arduino, который можно установить в любую модель, тем самым превратив ее в радиоуправляемую поделку, даже не просто поделку, а автономного дрона. На сборку данной мозгоподелки меня вдохновили такие робо-катера как UBC Sailbot и Scout, который кстати, совершил успешный трансатлантический рейс.

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

    Окончательная, завершенная версия катера с автопилотом основывается на решениях трех прототипов, первый из которых самый простой по схеме и коду, остальные более доработанные. Финальный катер представляет собой полнофункциональную радиоуправляемую модель, которая успешно плавает по глади пруда, что я постарался отобразить на фото. Эта версия хотя и окончательная, но может быть доработана и усовершенствована, как с точки зрения кода, лодку нужно научить следовать маршруту, а не просто от точки к точке, так и с точки зрения электроники, можно поставить акселерометр, чтобы он компенсировал наклон от компаса.

    Шаг 1: Видеопрезентация

    Небольшое видео обозначит направление этого мозгопроекта:

    Шаг 2: Прототип 1

    Первый катер, то есть прототип 1, был самый простой по исполнению и должен был уметь:

    • считывать GPS-координаты своего положения
    • считывать азимут с компаса
    • управлять сервоприводом руля
    • использовать руль для следования курсу

    А так же на нем я тестировал формулы маневрирования для создания действующего автопилота. Основой прототипа 1 был микроконтроллер Arduino Uno, в финальной версии я использовал ATmega328.

    На первом прототипе я установил самый дешевый GPS-модуль который смог достать, это UBlox PCI-5. Для его монтажа нужно было лишь припаять четыре провода к задней стороне платы, подсоединить их к Arduino и прикрепить антенну. Для обработки поступающих данных я использовал библиотеку TinyGPS ++, которая позволила мне получить координаты текущего положения, скорость, направление и много другого! Подробнее о установке этого модуля, который кстати я использовал и в прототипе 2, вот в этом моем мозгоруководстве.

    Чтобы получать данные с компаса я использовал HMC5883L, который легко подключается к микроконтроллеру через I2C. Как именно он устанавливается и как с ним работать хорошо описано здесь и здесь.

    Управление сервоприводом руля

    Контролировать сервопривод руля с помощью Arduino очень легко, но если только вы не используете библиотеку SoftwareSerial, которая нужна для TinyGPS ++, и которая конфликтует с одним таймеров Arduino! Запущенная SoftwareSerial мешает работе любого сервопривода использующего стандартную библиотеку, и решением данного мозгоконфликта является использование библиотеки PWM Servo library.

    Формулы алгоритма автопилотирования

    В прототипе 1 я применил несколько функций, которые позднее станут критичными. Эти функции используют формулу Хаверсина для расчета таких параметров как расстояние между двумя точками, направления от одной точки к следующей и реальный азимут по данным компаса. Более подробно об этих формулах в этой статье.

    Компоненты первого прототипа я разместил на деревянном каркасе (см. фото), и теперь, зная положение этого каркаса-автопилота и сравнивая с заданным, можно поворачивать руль и сохранять заданный маршрут. Это будет полезно в дальнейшем для навигации по GPS-координатам.

    Шаг 3: Прототип 2

    Довольный результатами первой поделки я решил создать прототип 2 с программными доработками автопилота. Целями для второй самоделки были:

    • плавание по заданным GPS-кооддинатам
    • работа автопилота от аккумулятора
    • тестирование и запись данных автопилота

    Конструкция автопилота также претерпела некоторые изменения — была добавлена макетная плата ProtoSheild, на которую я установил сам Arduino и компас. Все компоненты смонтировал на фанерное основание и “упаковал” в пластиковый контейнер.

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

    Плавание по заданным GPS-кооддинатам

    Код для Arduino я написал таким образом, чтобы он поворачивал руль по направлению к следующей точке заданного маршрута: используя GPS-координаты для вычисления соотношений последующих точек и сравнивая их с компасом, вычисляется поворот руля. Если вычисленное значение правее, на 90 градусов, то руль повернется на 60 градусов. Если вычисленное значение левее, на 270 градусов, то руль повернется на 120 градусов. Если же значение находится между 330 и 30 градусами, то руль будет поворачиваться экспоненциально сохраняя положение прямо.

    Все это будет происходить в цикле, примерно так (этот код обобщенный):

    Пояснение кода таково: если расстояние между катером и следующей точкой более 5 метров, то складывая азимут катера и азимут следующей точки, получается действительный азимут, оба азимута посылаются функции the RudderTurn function, которая вычисляет нужный угол поворота и соответственно поворачивает мозгоруль.

    Запитать Arduino от аккумулятора довольно просто. Для этого на микроконтроллере есть контакт Vin, и на него можно подать до 20В постоянного тока. У меня была литиевая батарея на 12.6В, к которой я припаял разъем и подключил ее к контакту Vin на Arduino.

    Шаг 4: Тестирование прототипа 2


    Для того чтобы проверить прототип в действии я установил два светодиода, первый из которых будет светиться когда зафиксируется GPS-координата, а второй, когда будет достигнута эта точка.

    Пробы своего автопилота я проводил на местном поле. К своему ноутбуку я подключил автопилот и запустил последовательный монитор (часть программного обеспечения Arduino), который записывал GPS-координаты все время следования по заданным точкам. Я пользовался рулем который направлял меня к следующей точке, и я поворачивал, словно это был мозгокатер.

    На представленных фото обозначен маршрут тестов. Если я оказывался ближе чем 5 метров к нужной точке, то автопилот переключался и начинал навигацию к следующей точке. В процессе этих тестов код поделки претерпел довольно много незначительных изменений.

    Для конвертации последовательного текста в путь Google Earth, я импортировал текст в Excel, сохранив файл и далее следуя указаниям Earthpoint, преобразовывал файл в формат KML.

    Шаг 5: Первое судно

    Судно, которое я сделал первым для этого проекта, было больше экспериментом, чем действующим прототипом. Просто я хотел посмотреть, смогу ли я создать функционирующий аэроглиссер самостоятельно или придется покупать.

    Почти все детали судна, включая палубу, вырезаны из пеноматериала. Для тяги мотор сначала я взял щеточный, но потом заменил его двигателем без щеток с пропеллером 5х3. Этот 9-ти граммовый сервомотор я смонтировал на задней панели, а для проводов идущих к нему в контейнере высверлил отверстие. Но в конце концов, эта самоделка не отправилась в плавание… Дело в том, что система ESC, которую я планировал использовать сгорела во время инцидента другого мозгопроекта, да еще GPS модуль наотрез отказался работать на поверхности пруда.

    Шаг 6: Модифицированный катер

    А теперь снова вернемся к чертежам катера! На известном онлайн-ресурсе я купил новый катер. В комплект к нему входили никель-металл-гидридный (Ni-MH) аккумулятор на 7.4В, зарядное устройство, передатчик и плата приемника. С передатчиком возникли небольшие проблемы — нужно было найти 12 батареек АА, и я остался разочарованным не работающим катером. Но, для проекта это не критично и я продолжил.

    Я выпаял два Н-канальных MOSFET-транзистора из цепи приемника, они пригодятся позднее. После этого обрезал все провода и загерметизировал горячим клеем все щели и трещинки, которые нашел в корпусе катера.

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

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

    Шаг 7: Прототип 3

    Одним из недостатков двух предыдущих прототипов была медленная скорость обновления, то есть скорости реакции. Руль недостаточно быстро реагировал на изменение маршрута и этот момент был включен в список целей и задач нового прототипа:

    • увеличение скорости реакции автопилота
    • добавление контроллеров моторов
    • программирование совместной работы двигателей
    • установка приемника

    Увеличение скорости реакции

    Единственный минус библиотеки TinyGPS ++ это медленность. Проблема в том, что Arduino Uno не может выполнять две вещи одновременно (в принципе может, на деле — нет). Простым решением может стать еще один микроконтроллер Arduino, который с помощью библиотеки TinyGPS ++ будет обрабатывать данные GPS, а затем отправлять параметры на первый микроконтроллер автопилота. Но у меня не было еще одного Arduino.

    Arduino Uno это, по существу, чип ATmega328 и еще несколько дополнительных компонентов. Зная это можно создать свой собственный Arduino на макетной плате. И для этого есть хорошее мозгоруководство.

    К собранному самостоятельно Arduino, так же как и “старый” модуль, я подключил новый GPS-модуль Ublox NEO-6M. Для программинга самодельного Arduino использовал библиотеку Bill Porter’s Easy Transfer library, а “связал” оба микроконтроллера одиночным проводом, то есть односторонним последовательным соединением. Этот самодельный Arduino повысил скорость реакции автопилота с 4 Гц до 50 Гц!

    Добавление контроллеров двигателей

    Мне очень понравилась плата ProtoSheild для Arduino Uno, которую я использовал, но оказалось, что она не имеет достаточного пространства для крепления двух контроллеров двигателей. Поэтому я убрал эту мини-плату, и поставил другую, больших размеров.

    Электроцепь контроллеров двигателей проста: МОП-транзистор (MOSFET), с помощью ШИМ, контролирует среднее напряжение, идущее к двигателю. Резистор 1кОм ограничивает силу тока чтобы не перегорел Arduino, а резистор 10кОм удерживает MOSFET закрытым, когда отсутствует входящий сигнал.

    Программирование взаимодействия моторов

    У данного катера отсутствует штурвал, то есть руль, и вместо него для управления используется два мотора. Их то я и решил задействовать, а не устанавливать сервомотор для управления. Контроллеры моторов я уже собрал, осталось только запрограммировать Arduino для управления этими контроллерами.

    Программирование я начал с написания макета программы в начал с Visual Studio. По мере написания я отладил код, и в конце концов добился взаимодействия двигателей. Оставалось только переделать код с VS на Arduino, но это не трудно, так как языки C # и C ++ очень близки.

    Установка приемника радиоуправления

    На прототип я смонтировал приемник ДУ для ручного управления самоделкой. Это тоже довольно просто сделать, нужно лишь считывать входящие значения функцией pulseIn и “научить” реагировать автопилот на эти значения.

    Прототип автопилота я установил внутри катера, подключил двигатели к контроллерам и запрограммировал маршрут плавания по местном пруду. После прохождения трех точек, поделка перестала работать и “сгасла”. Оказалось, что высокое напряжение от аккумулятора (12 В) “спалило” регуляторы напряжения 5 В.

    Arduino — Необходима помошь по APM 2.6 (автопилот на Arduino)

    Первым шагом в настройке квадрокоптера это сборка рамы и её компонентов. Эти инструкции дают указания по сборке и подключения квадрокоптера с APM автопилотом, включая передовую практику. Следующие подстраницы представляют более подробные инструкции по темам:

    • Подключение радиопередатчика и моторов к вашему APM
    • Виброгасящие демпфера
    • Подключение и монтаж модуля GPS
    • Подключение и монтаж комбинированного модуля GPS + компас
    • Установка внешнего модуля компаса
    • PX4 Инструкции по электропитанию

    Соберите раму

    Комплекты рам доступны в магазине. Выберите модель ниже, чтобы посмотреть инструкции по сборке. Помните не устанавливайте пропеллеры сразу; мы установим их после калибровки ESC (регуляторов мотора).

    Проводка

    Приведенная ниже схема показывает стандартный вариант подключения для АРМ квадрокоптер.

    Для полного комплекта APM-Квадрокоптер необходимы следующие электронные компоненты:

    • Автопилот с конфигурацией «квадрокоптер». В настоящее время поддерживает APM и PX4 автопилоты.
    • Блок питания с LiPo батареи или эквивалентным методом питания (см. ниже)
    • Распределитель питания (PDB) или эквивалент распределения мощности к двигателям
    • Электронный регулятор скорости (ESC) для каждого двигателя
    • Моторы
    • RC приемник и передатчик


    Включение квадрокоптера

    Самый простой способ включить квадрокоптер — использовать модуль питания с аккумулятором LiPo (см. Инф ). Для альтернативных методов питания вашего квадрокоптера, для плат APM 2.5 и 2.6 смотрите страницу (ссылка).

    Для подключения модуля питания подключите силовые провода к распределительной плате PDB, а второй силовой провод к батарее или другому источнику питания. Подключите модуль питания к порту PM используя 6 проводной кабель.

    Если Вы не используете модуль питания, то для подключения APM можно использовать внешний источник питания — UBEC. для этого подключите его к входам подключения моторов. Предупреждение: Так как регуляторы мотора в большинстве случаев уже имеют UBEC модуль, рекомендуется во избежание проблем не использовать их. Используйте внешний модуль питания в обход питания от регуляторов ESC.

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

    Подключите ESCs и двигатели

    Подключите кабели двигателя с электронным регулятором скорости (ESC) штепсельных соединений. Каждый двигатель должен подключиться только к одному ESC.

    Подключите разъемы питания регуляторов ESC в распределительную плату (PDB). Подключите трехжильный сигнальный провод от регулятора ESC к рапределительной плате питания PDB, согласно нумерования конфигурации моторов. т.е. первый мотор в разъем 1 , второй — в разъем 2 и так далее. Если вы не используете распределительную плату, допускается подключение непосредственно прямо к разъемам APM — Output Pins Предупреждение:В зависимости от схемы питания рекомендуется питать плату внешним UBEC, вместо встроенного в регулятор ESC. Удалите джампер JP1 если он присествует для питания внешним UBEC.

    Лучшие практики

    При сборке квадрокоптера, мы рекомендуем использовать резьбовые винты. Так же потребуется специальное средство для лучшего закрепления болтов, которое не даст им раскрутиться. При закреплении проводов питания держите положительный и отрицательной вместе к друг другу, можно использовать стяжки. Что бы обеспечить проводку по раме можно использовать кабельную сетку, где это возможно. Используйте гашение вибрации там, где это возможно, за дополнительной информацией посетите страницу по изоляции.

    Инструкция для подключения радиоприемника и двигателей к АРМ можно найти на странице .

    • Предупреждение! В любом режиме удержания высоты которые: : Alt-Hold, Loiter, AUTO, AutoLand или RTL если полет квадрокоптера становиться неустойчивой, при посадке или близком нахождением к земле — (а так же при автоматической посадки) вы вероятно не правильно установили полетный контроллер — это влияет на барометр (высотометр), который зависит от давления создаваемового самим квадрокоптером и его воздушным потоком.
      • В этом можно убедиться посмотрев на журнал показания высотомера видя, что показания колеблятся, когда он у земли.
      • Если это является проблеммой , переместите контроллер полета или оградите его от проветривания корпуса.
      • Успешность летных испытаний может быть проверена по результатам журналов.
      • Это предупреждение находится здесь, так что у вас есть возможность не допускать этого в первую очередь.
      • Как правило, лучше установить контроллер на верхней части квадрокоптера.
      • Если у вас имеется крышка которая закрывает полетный контроллер, убедитесь, что она не вентилируется от пропеллеров и в ней не создается давление.

    Я получил контроллер! Что дальше?

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

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

    Для начала — под минимальным комплектом Я понимаю:

    • Контроллер APM 2.5.x или 2.6.
    • Блок GPS с контактным проводом.
    • Соединительные провода между приёмником и контроллером (мама-мама).

    Контроллер комплектуется разными PLS контактами: прямыми и под 90 градусов — их каждый для себя выбирает сам, смысл в удобстве монтажа платы контроллера на летательном аппарате. Бывает что китайцы умудряются подсунуть намагниченные выводы, в дальнейшем это отражается на неправильной работе компаса, что в дальнейшем влечёт за собой неадекватное поведение коптера в режиме удержания позиции «Loiter» (о режимах в другой статье). О пайке разъемов написана статья «Пайка разъемов на плате APM». Контакты PLS

    Первым делом Нам надо взять контроллер в руки и внимательно осмотреть (можно с увеличительным стеклом): целостность элементов, качество пайки и наличие загрязнений(как не отмытый флюс , сопли) — устранить косяки крайне осторожно, что бы не повредить чувствительные датчики, например барометр (на период чистки лучше заклеить хорошей изолентой).

    Плату осмотрели, теперь необходимо проверить ее работоспособность. Устанавливаем на компьютер ПО — Mission Planner (далее MP) для APM.

    Рекомендуется выбрать самую последнюю версию ПО. Далее всем привычное «Далее» > «Готово»!

    Не подключайте на данном этапе сторонних устройств, таких как GPS, регуляторы скорости, альтернативные источники питания. Пока нам надо только проверить работоспособность платы.

    Берём наш контроллер и microUSB кабель. Подключение кабеля micro-USB

    Подключаем контроллер к компьютеру и ждем установку драйвера, обычно проходит в штатном режиме. Но если по какой либо причине драйвер не установился , необходимо указать поиск драйвера в папке с установленным MP в ручную.

    Запускаем MP, в верхнем правом углу проверяем порт, который присвоился контроллеру. У каждого порт свой и узнать его можно в диспетчере устройств (Мой компьютер — управление — диспетчер устройств) Выбор порта

    Нажимаем на «CONNECT» и ждем соединения. Считывание параметров

    После успешно подключения берём контроллер в руки и смотрим за цифрами и картинками, которые отображаются в окне MP «Flight Data», всё должно шевелиться и меняться, реагировать на каждое движение. Пытаемся понять какое показание за что отвечает. Смотрим на отклонения по крену, тангажу, смотрим на поворот компаса. Для начала этого хватит. Радуемся и отключаемся — там где нажимали CONNECT, теперь сияет надпись DISCONNECT. Наш контроллер рабочий — это уже хорошо. Улыбаемся.

    Если подключения не произошло, то китайцы могли и не загрузить прошивку, тогда нам надо загрузить ее. Как? Описано здесь: Прошивка контроллера APM.

    Теперь Нам необходимо провести более детальную проверку датчиков установленных на плате контроллера, а конкретно это гироскоп и акселерометр. Для этого подключаем контроллер к ПК. Запускаем программу МР, устанавливаем соединение, жмём CONNECT.

    Следующий этап — в окне программы МР на вкладке «Flight Data» ищем слово «Действия», затем «Просмотр сенсоров». В открывшемся окне увидим графики, отображающие работу датчиков (сенсоров). График гироскопа

    При повороте контроллера мы видим кратковременное отклонения значений и дальнейший возврат значений в «ноль». График акселерометра

    При повороте контроллера мы видим изменение значений и дальше эти значения сохраняются, пока опять не повернем контроллер.

    Вернемся на окно «Flight Data» и посмотрим на работу электронного компаса. На данном этапе показания могут быть не верны (в дальнейшем будем производить калибровку), нам пока важны примерные показания, означающие что компас работает. Показания компаса

    При повороте контроллера мы видим изменение положения в градусах (0-север).

    Мы проверили Наш контроллер на работоспособность.

    О подключении модуля GPS и приёмника Р/У в следующих статьях…

    Update 15.04.2014

    Более правильно оценить работу компаса будет через терминал. Подключаемся к терминалу (после включения платы быстро нажать кнопку «Connect» в окне терминала), набираем команду «test», набираем команду «compass», дожидаемся инициализации гироскопа (в неподвижном состоянии платы!) и далее видим бегущие строчки направления, осей и офсетов. Крутим плату на 360° и приблизительно оцениваем значения. Проверка работы компаса

    После того, как наигрались, нажимаем клавишу Enter на клавиатуре и терминал можно закрывать.

    maksim4ek, raefa # apmcopter

    Update 25.06.2014. Видеоинструкция от Юлиана. Посылка с комплектом.

    В данном видео описаны комплектующие части, которые нам понадобятся для постройки коптера на нашем любимом контроллере.

    Update 26.07.2014:

    Еще более простую проверку работы компаса можно осуществить через вкладку «Статус» окна «Flight Data». Там нас интересуют переменные «mx», «my», «mz». Проверка работы компаса

    Если вы нашли ошибку на странице, то нажмите Shift + Enter или нажмите здесь, чтобы уведомить нас.

    Цукерберг рекомендует:  Плагин jQuery UI Autocomplete s
    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих