Твой первый квадрокоптер: теория и практика - Яценко В. С. 17 стр.


Сборка квадрокоптера

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

Обычно в первую очередь монтируются моторы и регуляторы. Мотор соединяется с регулятором тремя проводами и достоверно угадать правильную полярность невозможно. Даже если провода на выходе регулятора разноцветные, цвет ничего не означает. Поэтому сначала выполняется пробное подключение и проверяется направление вращения моторов. Разумеется, нужно делать это без пропеллеров! Вращение должно соответствовать указанному на схеме рис. 2.1. Если мотор вращается в противоположную сторону, достаточно поменять местами подключение любых двух выводов. После этого соединения нужно тщательно пропаять, изолировать термоусадочной трубкой и аккуратно уложить провода вдоль луча. Настоятельно рекомендуем именно пропаивать все силовые соединения и не использовать разъемы.

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

Далее на раму монтируется распределитель питания, к нему подключаются провода питания регуляторов и разъем для подключения силовой батареи. Не забудьте сразу подключить к распределителю питания гибкий двужильный провод - отвод питающего напряжения, которое будете использовать для питания бортового оборудования через преобразователь 12V - > 5V. Напомним, что использовать для питания контроллера источники +5V, встроенные в регуляторы, нежелательно, т. к. контроллер следует питать слегка завышенным напряжением 5,2–5,6 В. Кроме того, с регуляторов, работающих в квадрокоптере на больших токах, поступает напряжение, загрязненное помехами и пригодное разве что для питания сервомашинок. Заранее продумайте, в каком месте будет смонтирована плата источника +5V, и выведите провод от распределителя в это место.

Когда рама собрана, регуляторы и моторы установлены и подключены, установите на свое место контроллер и приемник. Воздержитесь от соблазна сразу смонтировать приемник GPS, модуль Bluetooth и прочее дополнительное оборудование. Сначала убедитесь в правильном соединении приемника и контроллера, откалибруйте регуляторы, проверьте направление вращения моторов и настройте параметры радиоканала.

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

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

Настройка опций и параметров прошивки

Если вы изготавливаете квадрокоптер самостоятельно, а не запускаете покупной "из коробки", то вам придется настроить прошивку полетного контроллера под свои потребности. Настройка состоит из двух этапов: конфигурирование опций программного кода и настройка параметров прошитого контроллера.

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

Примечание

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

Исторически так сложилось, что в популярных прошивках используется Arduino-совместимый программный код. Напомним, что мы будем использовать полетный контроллер Crius All-In-One (AIO) и прошивку MultiWii v.2.30, которая достаточно стабильна и проверена на момент написания книги. Архив с прошивкой и утилитой конфигурирования доступен для скачивания по адресу https://code.google.com/p/multiwii/. В качестве настольного компьютера использовался компьютер с операционной системой Windows 7.

Подключение платы контроллера к компьютеру

Плата полетного контроллера подключается к порту USB компьютера через разъем mini-USB. Обратите внимание, что в этом случае плата питается от порта USB компьютера. Это налагает ряд ограничений.

• Используйте только качественный кабель, в противном случае плата будет работать со сбоями, либо соединение вообще не установится.

• Проверьте напряжение питания, поступающее с компьютера. Зачастую оно бывает занижено до 4,5–4,6 В. Контроллер не будет стабильно работать при таком напряжении питания. При необходимости приобретите либо дополнительный разветвитель USB с внешним источником питания, либо картридер формата 5,25" с разъемами USB и питанием напрямую от блока питания компьютера.

• Настоятельно не рекомендуется подключать иные источники питания к плате при подключении ее к разъему USB.

Соединение с компьютером происходит через встроенный на плату конвертер USB-СОМ на популярной микросхеме FTDI FT232. Если вы впервые подключаете устройство на основе этой микросхемы, то потребуется установка драйвера. Вы можете либо положиться на автоматическую установку драйвера средствами Windows, либо скачать установочный файл драйвера на сайте производителя http://www.ftdichip.com/Drivers/VCP.htm.

Когда драйвер установлен, при подключении контроллера в системе появляется виртуальный СОМ-порт. Откройте диспетчер устройств компьютера (рис. 5.6): Панель управления | Диспетчер устройств | Порты (СОМ и LPT).

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

В. Яценко - Твой первый квадрокоптер: теория и практика

Рис. 5.6.Виртуальный СОМ-порт полетного контроллера

Среда разработки Arduino IDE

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

Прежде всего, скачайте с сайта vnvw.arduino.сс самую свежую версию среды разработки Arduino IDE. На момент написания книги это была версия 1.6.1. Если вы захотите использовать старую версию прошивки MultiWii v2.20, то для компиляции придется использовать архивную версию Arduino ГОЕ 1.0.5, иначе при компиляции будут возникать ошибки. Для установки достаточно запустить инсталлятор и подтвердить запросы на установку по умолчанию. Обе версии Arduino ГОЕ могут быть установлены на компьютер одновременно, но в разные папки.

После окончания установки подключите контроллер к компьютеру и запустите Arduino IDE. Откроется стартовое окно с пустым проектом. В терминах Arduino программа для микроконтроллера называется скетч. Теперь нужно настроить компилятор под нужный микроконтроллер и указать номер порта для связи. Выберите меню Инструменты | Плата | Arduino Mega 2560.

Затем выберите порт: Инструменты | Порт и задайте номер порта СОМ, который соответствует вашей плате. Если плата не подключена, то нужный порт в списке не появится.

Примечание

Микроконтроллер АТМеда2560 оснащен энергонезависимой памятью (EEPROM) емкостью 4096 байт. В этой памяти хранятся настроечные константы прошивки MultiWii. Перед загрузкой новой прошивки EEPROM необходимо очистить. В противном случае прошивка может работать неправильно, либо не заработает вообще.

Для очистки EEPROM загрузите специальный короткий скетч из папки готовых примеров Arduino: Файл | Образцы | EEPROM | eeprom_dear. Скетч откроется в новом окне, но настройки платы и порта останутся прежними.

Примечание

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

В строке

for (int i = 0; i < 512; i++)

исправьте значение 512 на 4096, чтобы очистить EEPROM полностью:

for (int i = 0; i < 4096; i++)

Теперь нажмите кнопку со стрелкой для загрузки программы в микроконтроллер. В течение нескольких секунд произойдет компиляция исходного текста программы в машинные коды, затем плата весело замигает светодиодами во время загрузки прошивки. Примерно через три секунды после загрузки светодиод А на плате начнет светиться постоянно. Это означает, что процесс очистки EEPROM завершен и контроллер готов к записи и настройке новой прошивки. Файлы примеров Arduino IDE защищены от записи, поэтому сохраните исправленный скетч очистки EEPROM в другое удобное место.

Память EEPROM нужно чистить, если:

• это первая загрузка прошивки в память контроллера, или предыдущая версия неизвестна;

• меняется версия прошивки;

• меняется тип коптера;

• меняется состав датчиков платы или их тип;

• после записи новой прошивки коптер стал вести себя неадекватно.

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

Настройка базовых опций кода прошивки

Ранее вы скачали и разархивировали проект прошивки MultiWii. Проект состоит из нескольких файлов. Файлы скетчей имеют расширения ino или срр; файлы так называемых заголовков имеют расширения h. В среде Arduino имя папки проекта обязательно совпадает с именем главного файла проекта. Например, если папка носит имя MultiWiiAIOP, то главный файл в этой папке называется MultiWii_AIOP.ino.

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

Механизм конфигурирования прошивки MultiWii, как, впрочем, и многих других программ для микроконтроллеров, основан на так называемых "дефайнах" - служебных директивах компилятора #define (определить). После этой директивы через пробел следуют имя параметра и его значение. В коде программы вместо конкретного значения указывают имя параметра. Во время обработки программного кода компилятор отыскивает имя параметра и автоматически подставляет вместо него соответствующее значение.

Например, если определен некий параметр

#define MY_PARAMETER 10

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

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

#define HELICOPTER

//#define AIRPLANE

при этом второе определение закрыто символом комментария // и невидимо для компилятора. Теперь, если в программе встретятся такие два фрагмента:

#ifdef HELICOPTER

Фрагмент программы 1;

#endif

#ifdef AIRPLANE

Фрагмент программы 2;

#endif

то компилятор обработает первый фрагмент кода и проигнорирует второй, потому что определение airplane закомментировано и не существует. И наоборот, если мы закомментируем определение helicopter и раскомментируем airplane, to будет скомпилирован второй фрагмент кода.

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

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

Итак, щелчком на закладке в окне IDE откройте файл config.h. Сейчас мы сконфигурируем по порядку самые необходимые параметры. После этого нужно загрузить прошивку в контроллер и проверить, как он работает. По мере подключения внешних модулей (GPS, дисплей и т. д.) мы будем вновь обращаться к настройке прошивки.

Тип рамы

В секции 1 - basic setup найдите и раскомментируйте строку, которая обозначает Х-образную раму:

#define QUADX

Минимальный рабочий газ

Внимание!

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

Минимальный рабочий газ означает ^длительность выходных импульсов, поступающих с контроллера на регуляторы в режиме ожидания, при минимальном положении рукоятки газа на пульте. Из соображений безопасности настоятельно рекомендуется задавать это значение таким, чтобы при активированных моторах (режим armed) пропеллеры вращались с минимальной скоростью, предупреждая об опасности.

//#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A

//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A

//#define MINTHROTTLE 1064 // special ESC (simonk)

//#define MINTHROTTLE 1050 // for brushed ESCs like ladybird

#define MINTHROTTLE 1150 // (*)

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

Если же вы решили пренебречь требованиями безопасности, задайте такое значение, при котором моторы не вращаются при активации (режим armed). Обычно это значение немного больше 1000.

Максимальный рабочий газ

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

#define MAXTHROTTLE 1850

Назад Дальше