MegaPirateNG
Портирование проекта ArduCopter 2 на обычную Arduino Mega 1280 и на более популярное и недорогое "железо" от Олега aka Syberian.
Место основных знаний и хранения кода: GitHub www.megapirateng.com (раньше было на code.google.com.
На начало 2012 года программное обеспечение платформы позволяло управлять трикоптером (tri,y6), квадрокоптером (+,X) или гексакоптером.
Содержание |
Полётные режимы
- ACRO - для акробатики - коптер летает на одних гироскопах, поэтому надо подруливать, чтобы удерживать в нужном положении.
- STABILIZE - тоже что ACRO, но акселерометр стабилизирует коптер по горизонту, хорош для полетов с камерой ("блинчиком").
- SIMPLE - тоже что STABILIZE, но "нос" всегда ориентирован строго от пилота (главное не залетать себе за спину и не передвигаться).
- ALT_HOLD - удержание текущей высоты, стик газа лучше не трогать.
- POSITION - тоже что ALT_HOLD, но стиком газа можно регулировать высоту
- LOITER - удержание позиции и высоты (удержание на точке).
- CIRCLE - тоже что LOITER, но коптер не зависает над точкой, а кружится вокруг неё.
- RTL - возвращение на точку взлета (возврат домой).
- AUTO - полет по заранее записанному маршруту.
- GUIDED - (только при наличии связи с наземной станции) - тыкаем на карту - коптер летит на эту точку и зависает над ней.
Компоненты
Мозгом системы является контроллер Arduino 1280/2560. В качестве датчиков ипользуются платы FFIMU или ALLINONE с полным набором сенсоров (гироскоп, акселерометр, компас, бародатчик), так же есть вариант полетов только на датчиках ITG3200 и BMA020 из проекта MultiWii, а так же полный набор на одной плате (процессор и датчики) BLACK VORTEX.
Полный набор на одной плате
BLACK VORTEX 219$ на Atmega2560 16MHz 5V c антенной GPS.
Датчики:
- HMC5883L - Трех Осевой магнитный компас
- BMA180 - Трех Осевой Датчик ускорения
- BMP085 - Датчик давления воздуха (БАРО)
- ITG3200 - Трех Осевой цифровой датчик вращения
- NEO-6Q - модуль GPS (приемник)
Совместимые контроллеры Arduino
Датчики
Изначально проект рассчитывался на 2 типа плат "все-в-одном":
- All-in-one sensor board ВНИМАНИЕ, гироскоп может менять свой порт, до тех пор пока не запаяна перемычка на плате с землей.
- All-in-one sensor board with GPS Требуйте у продавца сразу выслать даташит. Есть версии на 3.3В и 5В
Платы отличаются ориентацией датчиков и содержат:
- ITG3200 - гироскоп
- BMA180 - акселерометр
- BMP085 - бародатчик (или другой более точный, возможны проблемы с кодом)
- HMC5883L - компас
Для использования всех возможностей проекта необходимо дополнительно:
- сонар DYP-ME007 - для полетов на сверхмалых высотах
- GPS-модуль - для навигации, полетов по маршруту и возврата в точку запуска
- XBee Pro 900 MHz - для работы системы двусторонней телеметрии MAVlink
Вместо дорогостоящего XBee Pro, можно использовать более бюджетный вариант - APC220 Wireless Communication Module.
Прошивки
ВАЖНО!!! Для Arduino 2560 (mega) - нужно использовать особую версию Arduino 22 отсюда (ищите "relax" в названии).
Скачать свежую версию можно на официальном сайте проекта.
Настройка
Посмотрите дополнительные требования для платы BlackVortex в release_notes_BlackVortex.txt
- сделайте чистую установку arduino ide (без дополнительных библиотек в папке libraries), а затем скопируйте
- Выберите ваш тип рамы в apm_config.h в #define FRAME_CONFIG и уточните ориентацию в #define FRAME_ORIENTATION если это необходимо
- Выберите ваш типа сенсоров в apm_config.h в #define PIRATES_SENSOR_BOARD
- Выставите настройки каналов вашей аппаратуры управления в /libraries/APM_RC/APM_RC_PIRATES.cpp (по умолчанию порядок каналов ROLL,PITCH,THROTTLE,YAW,MODE,AUX2,CAMPITCH,CAMROLL)
- Для настройки LED мигалки, откройте LED.pde и прочитайте инструкции
Подключение периферии
Аппаратура управления
Если вы поменяли порядок каналов в /libraries/APM_RC/APM_RC_PIRATES.cpp, то таблица не актуальна
пин канал A8 Roll A9 Pitch A10 Throttle A11 Yaw A12 Mode A13 Aux2 A14 Cam1 A15 Cam2
Стабилизация камеры
- d44 - Roll servo
- d45 - Pitch servo
Подключение UART GPS
- RX2 - TX на GPS
- TX2 - RX на GPS
Телеметрия (через XBee, APC220, Bluetooth и другие)
- RX3 - TX на XBee
- TX3 - RX на XBee
Переключение входа в CLI режим
- a5 - следует замкнуть на землю
Сонар(дальномер)
- d9 - Tx
- d10 - Echo
Статусные светодиоды
- d13 - Красный (обычно уже есть на плате)
- d30 - Желтый
- d31 - Зеленый
LED мигалка
- A1,A2,A3,A4 - смотрите описание в led.pde
Моторы
Pin D2 D3 D5 D6 D7 D8 D11 D12 Arduino CH 3 4 1 2 7 8 10 11 номер канала MegaPirate -------- ------ ------ ------ ------ ------ ------ ------ ------ ----------------------- TRI S BC RC LC - - - - QuadX LFW RBW RFC LBC - - - - Quad+ FW BW RC LC - - - - Hexa+ BLW FRC FW BC FLC BRW - - HexaX FLW BRC RW LC FRC BLW - - Y6 LDW BDW RDW LUC RUC BUC - - Octo+ FRC BRC FW BW FLC BLC LW LW порядок изменен с 2.0.39 версии OctoX RRFC BBRC FFRW BBLW FFLC LLBC LLFW RRBW порядок изменен с 2.0.39 версии Quad8X BLUC BLDW BRUC BRDW FLUC FLDW FRUC FRDW добавлено в 2.0.36 Quad8+ BUC BDW RUC RDW LUC LDW FUC FDW добавлено в 2.0.36
Расшифровка:
- B - задний (back)
- R - правый (right)
- L - левый (left)
- F - передний (front)
- U - верхний (upper)
- D - нижний (lower)
- W - вращение по часовой стрелке (clockwise rotation)
- C - вращение против часовой стрелке - обычный пропеллер (counter clockwise rotation (normal propeller))
- S - серва для трикоптера (servo (for tri))
Например: FLDW - передний-левый нижний мотор с вращением по часовой стрелке