Главная » 2013 Октябрь 23 » Легкий FPV-трикоптер: разработка, сборка, конфигурация
12:20 Легкий FPV-трикоптер: разработка, сборка, конфигурация | ||||||||||||||||||||||||
Пару месяцев назад я здесь писал про свой тяжелый квад: раз, два.
Спасибо всем, кто читал и комментировал — я нe ожидал, что мои скромные
труды привлекут такое количество читателей. Нo раз данная тема, судя по
всему, интересует аудиторию Хабра, то поведаю вам о своем последнем
проекте: легком FPV-трикоптере, который я завершил буквально на днях.Поставленная задачаДля этого коптера я поставил себe следующие задачи:
Исходя из этих требований, я опять сел за LibreCad, и нарисовал вот что: Размеры: расстояние между передними моторами — 27см, диаметр пропеллеров — 8". Почему трикоптер?Трикоптер — достаточно редкая разновидность мультироторов. Имея всего три пропеллера, невозможно компенсировать крутящий момент с помощью пар, вращающихся в противоположном направлении, как это делается на квадро-, гекса-, окто- и других коптерах. В трикоптерах вместо этого используется механизм наклона заднего ротора, позволяющий отклонять его вектор тяги от вертикали и таким образом управлять рысканьем. Преимущества данной схемы для моего проекта:
Недостаток — повышенная механическая сложность, необходим шарнир для крепления заднего мотора, и сервопривод для управления им. ТехникаРаму я решил собирать из алюминиевого профиля и стеклопластиковых пластин, вырезанных на фрезеровочном станке. Алюминий дает абсолютно достаточную жесткость на коптере этого размера, и весит такая конструкция очень немного. Дальше я подобрал следующие электронные компоненты:
Механику наклона я подходящую в продаже нигде не нашел, и решил делать сам — благо не так давно образовался доступ к 3D-принтеру. Разобравшись за вечер с FreeCAD, нарисовал следующие детали: Получился шарнир с креплением на 10мм квадратную трубу, отверстием под 3мм ось, и креплением для мотора со стандартными отверстиями. КонтроллерМой выбор контроллера для этого коптера также пал на достаточно редкий вариант — Naze32. Naze32 — по сути порт MultiWii на современное железо. Используется 32-битный процессор STM32F103, гироскоп и акселерометр MPU6050 (также установлен дополнительный акселерометр MMA8452, некоторые версии ПО используют его вместо MPU), барометр MS5611 и магнетометр HMC5883L. Почему я выбрал именно этот вариант:
Приемник GPS я взял обычный uBlox CN-06 (~50$). Можно былo ограничиться на 10г болеe легким модулем Mediatek, но он значительно медленнее и нe настолько точен — для хорошей жe работы функций типа return-to-home точность и скорость обновления критична, поэтому везде рекомендуют использовать uBlox. Подготовка деталейВ первую очередь я изготовил пластины для рамы и механику наклона заднего мотора. РамаМеханикаРегуляторыРегуляторы Blue Series я, как сказано выше, перепрошил ПО SimonK. Для этогo пришлось снять с них заводскую термоусадку, и с помощью программатора USBAsp, адаптера для чипов Atmega и программы kkflashtool их перепрогаммировать. Так как на тот момент я еще не собрал раму и не распаял кабеля, то тест регуляторов после прошивки выглядел так: После этого регуляторы я изолировал белой термоусадкой — раз уж рама у меня вся белая. СборкаИтоговая сборка коптера в картинках: Однако сборка коптера — это еще нe все. Прошивка Naze32Начнем с самого важного — прошивки ПО контроллера. С чипами STM32 все слегка сложнее, чем с Arduino-совместимыми MultiWii-контроллерами, но ненамного. Замыкаем припоем два контакта на обратной стороне контроллера, подключаем через USB и запускаем Flash Loader Demo: Выставляем 115200 бод, нужный порт, и поехали. Выбираем «Next» несколько раз, потом выбираем «Download», отмечаем «Jump to User Program» и «Global Erase», выбираем загруженный hex-файл выбранной прошивки (BaseFlight или Harakiri), и жмем еще раз Next. После прошивки контроллер перезагружается, готово. Отключаем, убираем перемычку между контактами на обратной стороне (иначе контроллер будет каждый раз грузиться в режим прошивки). Конфигурация BaseFlight/HarakiriКонфигурация ПО делается в два шага — сначала основные параметры настраиваются через командную строку, а потом используется стандартный интерфейс от MultiWii для настройки PID-контроллеров, AUX-каналов и иже с ними. Вооружаемся Putty или любым другим терминальным клиентом, вновь подключаем контроллер к USB, открываем подключение к последовательному порту и сразу жмем "#", чтобы контроллер вошел в интерактивный режим: Выполняем основную конфигурацию — задаем тип коптера (трикоптер), включаем функции GPS и PPM (если используем — PPM это режим вывода сигнала из приемника д/у, при котором всe каналы передаются через один кабель), задаем карту каналов (порядок каналов д/у, ответственных за четыре оси управления и AUX — он разный у разных д/у систем). Сохраняем, контроллер перезагружается.
Закрываем терминал, и открываем MultiWii GUI 2.1. Там, как и с любым обыкновенным MultiWii-контроллером, задаем функции AUX-каналов, проверяем диапазоны каналов д/у и настраиваем их так, чтобы границы были как можно ближе к 1000/2000, а середина к 1500, проводим калибровку акселерометра и магнетометра. Все, можно лететь. Первый тест с коптером такого веса и размера можно легко выполнить сразу на месте, крепко удерживая его в руке (вообще эту процедуру рекомендовать я бы не стал, но при 550г веса и ~1.4кг максимальной тяги его достаточно легко удержать): запустить моторы на минимальный газ и покрутить коптер вокруг всех осей, проверив, что он правильно реагирует (противится движению). Если сервомотор наклоняет задний мотор не в ту сторону, это можно поменять в командной строке:
Еще одна деталь, из-за которой мне пришлось поковыряться в параметрах: USB-порт на контроллере Naze32 находится сзади. При установке на моем коптере, однако, там находится GPS, и порт оказывается закрыт. Поэтому я решил повернуть контроллер на 90°. Этo возможно — необходимо лишь поменять оси сенсоров в параметрах; чтобы не было слишком просто, оси у гироскопа, акселерометра и магнетометра все разные (даже несмотря на то, что гироскоп и аксемерометр объединены в одном чипе). С помощью форума FPV-Treff удалось найти правильные команды для поворота на 90° по часовой стрелке:
Выполнять их надо именно в этом порядке, иначе контроллер может зависнуть — видимо, где-то спрятан хитрый баг. После сохранения и перезагрузки обязательно проверяем правильность данных в интерфейсе MultiWii — справа показаны угол крена и тангажа, они должны теперь соответствовать положению повернутого контроллера. Конфигурация OSDРаз мы уже делаем полноценный FPV-коптер, то не обойтись без OSD, который показывает информацию из контроллера на видео. С Naze32 прекрасно работает MinimOSD, с Harakiri даже со стандартной прошивкой, так как в отличие от BaseFlight Harakiri поддерживает протокол MAVLink. Однако существует ещe такая прекрасная прошивка для MinimOSD под названием KV-Team-OSD. Она вообще предназначена для работы с MultiWii-контроллерами, но прекрасно работает с Naze32, и в отличие от стандартной и других прошивок позволяет изменять PID-параметры контроллера с помощью пульта д/у через экранное меню. Это сильно сокращает время на настройку этих самых параметров, которые обычно меняются только через GUI на компьютере. MinimOSD — это миниатюрная плата с OSD чипом MAX7456 и процессором ATmega 328p, совместимая с Arduino. Для прошивки и настройки необходим лишь FTDI-адаптер, так как на плате нет разъема USB. Сначала подключаем MinimOSD через FTDI в USB-порт и открываем Arduino. Открываем стандартный скетч EEPROM Clear, выбираем нужный COM-порт, выставляем плату Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega 328, заливаем. Ждем пару секунд пока загорится светодиод на плате — память старой прошивки стерта. Качаем сорцы KV-Team-OSD версии r345 или r370, открываем и добавляем следующие строки в config.h: Компилируем, заливаем. Закрываем Arduino, подключаем питание к OSD-стороне платы (там нужны 12В, иначе чип MAX7456 не получает питания; альтернативно на некоторых версиях можно соединить несколько контактов припоем и запитать MAX7456 от 5В, тогда ни в коем случае нельзя подключать + со стороны камеры и передатчика), и открываем GUI от KV-Team-OSD. Сделан он на том же Processing, что и MultiWii GUI, и выглядит соответственно похоже. Заливаем шрифт на чип MAX7456, нажав Upload, дожидаемся окончания процесса. Выставяем параметры: плата Minim, не показывать RSSI и прочую фигню, показывать напряжение из данных MultiWii (если у нас подлючен соответствующий кабель на контроллере), показывать данные GPS кроме координат, ну и все остальное по желанию. Если в этот момент уже подключены и запитаны камера и передатчик, то на видео сразу по нажатию Write видны изменения в настройках. Для полного удовлетворения можно включить симулятор внизу в GUI и поиграться с симуляцией, посмотрев, как будет изменяться картинка OSD в полете. По завершению всех настроек не забываем нажать Write, отключаем адаптер FTDI и подключаем MinimOSD к Naze32 — пины TX и RX находятся в середине контроллера, +5В и землю можно взять напрямую с одного из BEC-ов регуляторов, или со свободного разъема на контроллере. Полетели!За качество бортового видео прошу извинить заранее. Так как на коптере имеется только FPV-камера, то запись ведется простеньким рекордером на базовой станции — таким образом качество записи чуть хуже того, что я вижу в очках при управлении. Зато, в отличие от записи с помощью GoPrо, видны данные OSD. Первый мой полет с дешевой сервой HXT900 и неидеальными PID-ами — уже совсем неплохо, но слегка нервно. В середине видео видно, как я приземляюсь и меняю PID-параметры через экранное меню, после этого полет намного плавнее. OSD работает не полностью — я забыл один из параметров в config.h (boxnames), из-за этого не работает статус активных сенсоров, режим полета, статус Armed/Disarmed и скорость по GPS. Полет после установки сервы TGY-9025MG и перенастройки PID-ов. Плюс OSD работает полностью. Намного лучше :) ИтогиПодведу итоги. Все задачи, поставленные для коптера, выполнены:
Аппаратом я доволен чуть больше чем полностью. Летать на нем — одно удовольствие; Naze32 с софтом Harakiri летает великолепно, коптер очень стабильно лежит в воздухе и меняет направление полета как муха за счет легкого веса и достаточно мощной моторизации. Поскольку я не эгоист, и оставить такое удовольствие себе одному считаю идеологически неправильным, то вот ссылки на чертежи рамы и файлы для 3D-печати шарнира для всех желающих:
Буду рад любым комментариям, критике и замечаниям. На вопросы постараюсь ответить. Оригинал статьи на хабре http://habrahabr.ru/post/197878/ | ||||||||||||||||||||||||
|
Всего комментариев: 0 | |