Квадрокоптер своими руками



Предыдущая | Следующая

ВНИМАНИЕ, статья устарела, но её всё еще можно использовать в ознакомительных целях
Как и обещал, как только полечу — напишу полноценный пост по поводу сборки своего летающего агрегата. Наверняка многие давно посмотрели как «обычный» офисный сотрудник собирает это за 2 часа, сразу отмечу что я не «обычный» офисный работник, поэтому летчик из меня пока не очень, но важно что квадрокоптер летает и адекватно реагирует на управление. Первое и самое главное — если решили собирать, не экономьте и не думайте что вы умнее тех кто уже летает, так же учтите, что теория несколько расходится с практикой.
Есть большое число прошивок, готовых контроллеров, вариантов датчиков, моторов и т.д. и т.п. — выбрать есть из чего, но в статье остановлюсь только на одном варианте, основанном на Arduino Mega, прошивке MegaPirate и относительно дешевых датчиках.

 

Результат


Чтобы не мучить тебя, %username%, вот так оно летает без особых настроек, калибровок и балансировок в неумелых руках:

А теперь что же нам потребуется для этого…
 

Детали и цены


Самое важное и минимальное что потребуется для сборки с нуля (первым в списке идет то, что использовал я, затем то что используют многие другие):

Сам квадрокоптер
Моторы: 4 штуки
лучше брать на 1 больше, пригодится
hacker Style Brushless Outrunner 20-22L 924kv $12.88
hexTronik DT700 Brushless Outrunner 700kv $10.95
2213N 800Kv Brushless Motor $7.36
Пропеллеры: минимум 2 стандартных и 2 обратного вращения
в начале попыток и испытаний это будет главных расходный материал, поэтому берите сразу много, заодно часть из них будет бракованное и не пригодное для использования
10X6 Propellers (5шт)
10X6R Propellers (5шт)
$2.40
$3.04
APC 10x4.7 counter rotating propellers set $8.50
Регуляторы скорости: 4 штуки
покупать надо как и моторы с запасом, может быть брак или случайно сгорит и потом месяц ждать новый
HobbyKing 30A BlueSeries Brushless Speed Controller
они же Mystery 30A BlueSeries
$10.47
$13.96
TURNIGY Plush 25amp Speed Controller $11.81
Источник питания
с увеличением емкости растет и вес, а значит моторы будет больше потреблять, поэтому нет особого смысла брать супер емкий аккумулятор, лучше взять 2-3 мелких и менять их
Turnigy 2200mAh 3S 30C Lipo $13.79
ZIPPY Flightmax 2800mAh 3S1P 30C $17.76
Рама
стараемся делать максимально легкой и прочной
4 алюминиевые трубки или профиль 10х10 и кусок фанерки разобрать алюминиевый штатив
HobbyKing Quadcopter Frame V1 $14.99
Мозги и датчики
Программируемый микроконтроллер Seeeduino Mega $43.00
Arduino Mega $64.90
Датчики
рекомендую сразу брать AllInOne или FFIMU платку, так как остальные датчики очень сильно пригодятся потом
гироскоп ITG3205
акселерометр BMA020
WMP $7.98
BMA020 230руб
All In One (гироскоп ITG3200, акселерометр BMA180, барометр BMP085, магнитометр HMC5883L) $99.80
FreeFlight IMU 1.22L €84.00
Аппаратура управления и зарядное устройство
Аппаратура управления
минимум 4 канала
Hobby King 2.4Ghz 4Ch Tx & Rx V2 (Mode 2) $22.99
Turnigy 9X 9Ch (Mode 2) $53.79
Аккумулятор к аппаратуре Mystery 11.1V 2200mAh $12.72
AA 600mAH Ni-MH Battery Set (8pc) $1.99
Зарядное устройство iMAX B6 2.5" LCD RC Lipo Battery Balance Charger $36.50
Turnigy Accucel-6 50W 6A Balancer/Charger $22.99
Другое
так же потребуются проводочки, болтики, винтики, стяжки, дрель, паяльник с паяльными принадлежностями и более-менее прямые руки
ИТОГО примерно от 220$

 

Сборка и настройка железа


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

не очень красиво, но летает
А теперь внимание косяки, о которые можно споткнутся по незнанию и нужная информация:

  • Приемник надо спарить с передатчиком — написано в инструкции
  • Регуляторы скорости (ESC) нужно калибровать! Для этого соединяем вместе все 4 ESC: землю (черный) и сигнальный провод(белый или желтый) и оставляем ОДИН провод питания (красный), после чего вставляем это в третий канал приемника, а так же соединяем провода питания и подсоединяем к регуляторам моторы. После этого на включенном передатчике ставим ручку газа (третий канал) в максимальное положение (вверх) и подключаем к регуляторам скорости источник питания, моторы весело пропищат, после чего опускаем ручку газа вниз и моторы снова пищат — ура, мы откалибровали регули
  • Часто регуляторы скорости нужно еще и запрограммировать, об этом читайте инструкцию к своим регуляторам, основной момент — увеличить скорость реакции, повысив частоту и выставив режим моментальной реакции, а не постепенного набора оборотов. Это можно сделать как слушая бесконечные пищания, так и с помощью специальных карточек для программирования.
  • Чтобы моторы вращались в другую сторону нужно поменять любые два провода местами
  • Ставьте пропеллеры в последнюю очередь — они очень хорошо режут руки
  • Моторы, как и пропеллеры часто требуют балансировки, для уменьшения вибрации, для этого возьмите обычные стяжки для кабелей и нацепив 1-2 на мотор вращайте и включайте, пока не почувствуете минимальную вибрацию. Более подробно, а так же с видео лучше почитать на специализированном форуме

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

Датчики и способы их добывания


Самый простой вариант — это купить готовую платку с 4мя основными датчиками (9DOF):

  • гироскоп — для измерения углового ускорения
  • акселерометр — для измерения ускорения и гравитации (по сути можно узнать угол наклона)
  • барометр — для измерения высоты и удержания коптера на этой самой высоте
  • магнитометр (компас) — для удержания направления движения


Так же сейчас появилась еще одна платка, на которой помимо четырех датчиков располагается GPS приемник, который пригодится для автономного полета.
Если вы решили покупать именно такую плату с датчиками (то вы сделали правильный выбор!), дальше про датчики можно не читать, но если вдруг у вас уже есть в наличии хотя бы гироскоп с акселерометром или хотите поиграть с удачей при заказе Wii Motion Plus из китайских магазинов, тогда дочитывайте эту часть статьи до конца.
 

Добываем гироскоп ITG3200


Возможно вы недавно купили себе Wii Motion Plus для своей игровой консоли с сайтов вроде dealextreme или buyincoins, тогда откройте его и посмотрите какой чип гироскопа там используется, скорее всего это будет ITG3205, он же ITG3200:

ITG3205 wii motion plus


воспользуюсь изображением с форума http://forum.xufo.net/bb/viewtopic.php?p=171796
Если ваша плата выглядит именно так, то вам очень повезло и следующим шагом будет допиливание этого WMP до хорошего гироскопа:

WMP to ITG3200


красным отмечено место перерезания дорожки, так же на обратной стороне есть дорожка ведущая к чипу, её тоже перепиливаем и на обратной стороне есть удобное место для припаивания проводка GND (земля, общий)
 

Добываем акселерометр BMA020 или BMA180


А вот тут уже и сложнее и проще одновременно, мне повезло и добрый пользователь с форума rcdesign.ru напаял мне BMA020 на платку с минимальной обвязкой, которую я посадил на тонкий 2х сторонний скотч:

BMA020


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

Другие варианты датчиков


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

Сборка мозгов


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

Распиновка подключения может немного отличаться, так как прошивка периодически меняется, но на момент написания статьи моторы, датчики, приемник и т.д. следует подключать так (из release note):

Моторы
(вид сверху, перед коптера вверху,
направление вращения и соотвествующие пропеллеры можно посмотреть на этой картинке или этой)
Передний левый 2
Передний правый 5
Задний левый 6
Задний правый 3
Приемник
(хотя бы первые 4, можно взять разъем от IDE шлейфа и отрезав лишнее вставить в приемник)
Throttle A8
Roll A9
Pitch A10
Yaw A11
Mode (Aux1) A12
Aux2 A13
Cam1 A14
Cam2 A15
Питание мозгов и приемника
Arduino можно питать от контроллера скорости (если имеет преобразователь питания), подпаяв выход питания к USB и Vin, другой вариант — питать напрямую от аккуулятора через специальный разъем питания на плате
Приемник запитываем от Arduino через соответствующие выходы +5v и GND
Другое
Переход в режим командной строки (ага, будет консолька) и настройки
для удобства можно поставить перемычку или выключатель
A5 замыкать с GND
Модуль GPS RX2, TX2
Модуль Xbee RX3, TX3
Сонар/дальномер 9 — tx, 10 — echo
Светодиоды (не забываем про резисторы последовательно) 13,30,31


 

Настройка прошивки и загрузка


Эта часть статьи может стать не актуальна, поэтому следите за веткой форума ArduCopter Mega: порт на обычную Arduino (тестим)

  1. Скачиваем архив с прошивкой и распаковываем
  2. Папку libraries следует скопировать поверх (с заменой) такой же папке в Arduino IDE (arduino-0022)
  3. В папке libraries/AP_ADC в файле AP_ADC_ADS7844.cpp выбрать тип датчика: раскомментировать один из вариантов #define FFIMU, #define ALLINONE или одновременно #define ALLINONE и #define BMA_020 для варианта с датчиками ITG3200 и BMA020
  4. Если у вас нет барометра (как у меня), то придется закоментировать код работы с шиной I2C с этим датчиком в файле libraries/APM_BMP085/APM_BMP085.cpp
  5. Открыть через Arduino IDE любой из файлов в папке MegaPirate
  6. Во вкладке APM_Config.h выбрать тип своего коптера, для этого после #define FRAME_CONFIG вставьте один из вариантов: QUAD_FRAME TRI_FRAME HEXA_FRAME Y6_FRAME OCTA_FRAME, а так же тип ориентации рамы #define FRAME_ORIENTATION, выставив PLUS_FRAME или X_FRAME
  7. Если у вас нет GPS, лучше в начале изменить значение #define GPS_PROTOCOL на GPS_PROTOCOL_NONE, чтобы не ждать 10-15 секунд инициализации GPS (когда его нет!)
  8. Теперь можно подключить Arduino Mega и загрузить этот скетч в контроллер


 

Настройка коптера


После успешной загрузки скетча-прошивки в Arduino можно скачивать программу настройки (внимание, работает только в Windows и сильно кривовато в Linux с Wine) и замыкать контакт A5 с GND.
После запуска программы в меню Options выбираем COM-порт Arduino:

В меню Action выбираем AC2 Setup

И видим огромную кнопку, на которую нужно нажать и следовать инструкциям, особенно важно не пропустить первое окошко с кучей текста, в котором вас попросят двигать ручки пульта до их минимальных и максимальных значений, а так же другое окошко, в котором вас попросят убедится, что коптер стоит ровно для калибровки датчиков.
После завершения настройки можно размыкать A5 с GND и в меню выбрать пункт AC2 Sensor, чтобы проверить адекватность работы датчиков во вкладке Raw Sensor: повороты платки с датчиками должны четко отрабатываться — как повернули, так стрелка и встала, если она доплывает или перелетает значение, то есть проблемы с датчиками или коэффициентами в вашем коде.


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

 

Результат


Ну вот вроде бы и всё =) Теперь можно нацеплять пропеллеры (не перепутайте куда какие, какого вращения и проверьте чтобы моторы крутились в нужную сторону) и попробовать взлететь, для этого поставьте коптер подальше от себя (или держите его в руке над головой), наклоните левую ручку вниз-вправо на 2 секунды и медленно прибавляйте газу. Если коптер взлетает — это уже хорошо, если его начинает трясти, то требуется регулировать PIDы, для этого в меню Action выберите пункт PID Config — AC2, ужаснитесь количеству циферок и начинайте настраивать значения под себя. О том как это делать я не могу рассказать, так как делалось практически методом тыка, но стоит начать с параметра P. У меня хорошо летает вот с такими настройками:

После посадки не забудьте выключит моторы, отклонив ручку левого джойстика вниз-влево на те же 2 секунды и убедитесь что светодиод статуса больше не мигает.
Удачи в сборке и настройке своего коптера и не забывайте читать о новых фишках на форуме.
 

Небольшое видео падения коптера в кусты


А так же адекватный полет с GoPro на борту




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