Главная » 2012 » Июль » 17 » Квадрокоптер своими руками: Часть II
22:58
Квадрокоптер своими руками: Часть II

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

На самом деле подойдут любые доступные гироскоп с акселерометром с шиной 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
Модуль GPSRX2, TX2
Модуль XbeeRX3, 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 секунды и убедитесь что светодиод статуса больше не мигает.

 оригинальная статья: здесь!!!

Просмотров: 6110 | Добавил: Maxymilian | Рейтинг: 4.2/4
Всего комментариев: 1
1  
Напиши откуда материал!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]