Глава 5. Сборка и настройка квадрокоптера

Изготовление рамы

Прежде всего, вы должны определиться, имеет ли для вас смысл изготовление самодельной рамы. Готовый набор, состоящий из центральной текстолитовой части, четырех моторам, металлических лучей и необходимого крепежа, можно заказать в Китае по цене 18–20 долларов с бесплатной доставкой. Покупка материалов для самодельной рамы вряд ли обойдется дешевле. Плюс потраченное на работу время, пыль, шум и прочие бытовые неудобства. Но если вам работа с конструкторскими программами, станком ЧПУ и слесарными инструментами доставляет удовольствие — тогда запасайтесь материалами и приступайте к изготовлению. Пока по почте доставляют ранее выбранные вами моторы, регуляторы, полетный контроллер и прочие компоненты, работа над рамой будет завершена.

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

Пример популярной конструкции стандартной рамы схематически показан на рис. 5.1.

Рис. 5.1. Пример конструкции стандартной рамы

Векторные чертежи, пригодные для масштабирования и резки на станке с ЧПУ, можно скачать на сайте издательства. По этим чертежам можно заказать резку на станке, например в рекламной фирме, или изготовить детали вручную. Центральная часть и моторамы изготавливаются из радиотехнического стеклотекстолита толщиной 2–2,5 мм. Фольга стравливается с текстолита в растворе хлорного железа. Рекомендуется стравливать фольгу после изготовления деталей. Это поможет сэкономить хлорное железо. Кроме того, по фольге легче кернить или расчерчивать стальной иглой разметку под вырезку и сверление.

Центральная часть рамы состоит из двух пластин, верхней и нижней, между которыми зажаты лучи из квадратного алюминиевого профиля с шириной стенки около 10–12 мм. Предусмотрены дуговые пазы под крепежные винты, благодаря чему раму можно складывать для транспортировки. Если складывание не планируется, дуговые пазы следует заменить обычными отверстиями. В исходном состоянии чертежи деталей рассчитаны на диагональ 550–600 мм и соответствующие двигатели, но могут быть легко смасштабированы в любой программе, работающей с векторными рисунками.

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

Примечание

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

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

Рекомендуется использовать струйный принтер, потому что тонер лазерного принтера осыпается с бумаги при работе. Приклейте бумагу к заготовке при помощи канцелярского клея-карандаша. После окончания работы достаточно слегка смочить бумагу для удаления. Можно также распечатать чертеж на листе специальной самоклеящейся бумаги. Такая бумага очень прочно прилипает к заготовке, но для удаления придется отмачивать ее спиртом, растворителем 646 или специальным аэрозолем Label-Off для удаления этикеток.

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

Внимание!

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

Лучи изготавливаются из квадратного тонкостенного алюминиевого профиля 10x10 мм, который продается в магазинах строительных и хозяйственных товаров.

Если не удалось найти такой профиль, то в магазине мебельной фурнитуры можно приобрести четыре мебельные ручки из аналогичного профиля. Для коптеров размера 460 мм можно использовать профили 12x12 мм. Для облегчения лучей в них можно рассверлить или выфрезеровать отверстия. Отверстия на прилегающих сторонах должны быть взаимно смещены, как показано на рис. 5.2.

Рис. 5.2. Расположение облегчающих отверстий луча

Когда детали рамы готовы, покрасьте их нитрокраской в контрастные цвета, чтобы облегчить распознавание положения рамы в пространстве. Традиционно принято два передних луча красить в красный или оранжевый цвет, два задних в черный, а центр рамы делать черным или флуоресцентно-желтым. Впрочем, это вопрос личного комфорта и вкуса. Цвет пропеллеров обычно выбирают соответствующим цвету лучей. Для окраски рамы можно приобрести в автомагазине так называемую эмаль для колесных дисков или, что еще лучше, эмаль для тормозных суппортов. Такие эмали имеют едко-яркие красный и желто-оранжевый цвета, хорошо ложатся на металл с первого слоя, быстро сохнут и дают прочное глянцевое покрытие. Цена автомобильной тюнинговой эмали на 40–50 % больше, чем у обычного баллончика из магазина хозтоваров, но результат того стоит.

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

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

Балансировка воздушных винтов

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

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

Самое простое устройство для балансировки можно изготовить самостоятельно. Оно представляет собой гладкую стальную ось, например, направляющую от привода CD-ROM, которая помещается на самодельную подставку в виде перевернутой буквы П и свободно катается по рельсам, сделанным из половинок лезвия от канцелярского ножа или бритвенных лезвий (рис. 5.3).

Рис. 5.3. Балансир на самодельной опоре из лезвий

Более точным и надежным является магнитный балансир. В нем ось удерживается в воздухе за счет мощных магнитов и практически не испытывает трение о магниты (рис. 5.4).

Рис. 5.4. Балансир с магнитным подвесом

Прежде чем приступать к балансировке, следует проверить геометрию винта. Положите винт плашмя на плоскую ровную поверхность, плотно прижмите бобышку винта и тщательно измерьте расстояния от кончиков лопастей до поверхности. Эти расстояния должны совпадать как можно точнее. У некачественных или деформированных винтов расхождение расстояний может достигать 2–3 мм. Такие винты лучше сразу отбраковать или использовать только в крайнем аварийном случае. Незначительно деформированный винт можно попробовать выпрямить, осторожно прогревая основание лопасти возле бобышки при помощи фена паяльной станции при температуре 120–140 °C или струей кипящей воды и отклоняя лопасть в нужную сторону.

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

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

После высыхания антистатика подвесьте винт на балансире и засеките, какая лопасть тяжелее. Обратите внимание, с какой скоростью она опускается — при достижении некоторого опыта это подскажет вам, сколько пластика нужно будет удалить с тяжелой лопасти. Затем лезвием скальпеля или остро заточенного ножа начинайте осторожно соскабливать очень тонкий слой пластмассы со внутренней поверхности лопасти. Снимайте слой равномерно со всей поверхности, начиная от бобышки и далее примерно на 2/3 длины лопасти, или немного дальше. Ближе к законцовке лопасть и без того тонкая. Если дисбаланс небольшой, то, возможно, придется снять слой только с части лопасти. В процессе обработки периодически помещайте винт на балансир для проверки. Помните, что можно очень легко перестараться и тогда придется облегчать другую лопасть.

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

Описание процесса балансировки кажется долгим, но на самом деле опыт приходит уже после второго винта, и дальше процесс балансировки занимает не более 5–6 минут даже в сложных случаях. Важно не спешить и делать все аккуратно.

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

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

Балансировка моторов

Балансировка моторов обычно выполняется на заводе. Моторы от именитых производителей редко нуждаются в дополнительной балансировке. Что касается недорогих китайских моторов, то их балансировку необходимо обязательно проверять. Иногда попадаются совершенно неотбалансированные моторы, а также экземпляры с люфтом подшипников и даже с кривой посадкой ротора на вал. Такие моторы лучше сразу отбраковать или отремонтировать, иначе они станут постоянным источником проблем, связанных с неравномерной тягой и вибрацией.

В заводских условиях моторы балансируют, нанося на внутреннюю сторону ротора капельки быстросохнущего эпоксидного компаунда и подтачивая их бормашиной, либо аккуратно засверливая металл у основания ротора. Аналогичные способы иногда применяют и в домашних условиях, особенно для точной доводки качественных моторов. Для балансировки двигатель необходимо разобрать, оставив вал в роторе. Затем положить вал с ротором на рельсы из лезвий и определить сторону перевеса. На противоположную сторону осторожно наносят густой эпоксидный компаунд (смесь эпоксидной смолы с инертным порошковым наполнителем) и постепенно добиваются равновесия, затем дожидаются отвердевания компаунда. При большом дисбалансе имеет смысл удалять металл ротора дрелью или бормашиной с более тяжелой стороны. Разумеется, ни в коем случае нельзя пытаться подтачивать магниты. Но разборка двигателя — это трудоемкий процесс, сопряженный с возможностью повредить двигатель или потерять мелкие стопорные и упорные шайбы. Поэтому двигатель лучше разбирать только для ремонта.

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

Для балансировки моторов можно сделать простейшее приспособление из кусочка зеркала и лазерной указки (рис. 5.5). Указка закрепляется на штативе, а зеркальце жестко крепится на луче коптера рядом с мотором. Нельзя приклеивать зеркальце на двусторонний пенистый скотч, он будет гасить вибрацию. Луч указки отражается от зеркальца и падает на белый экран, расположенный на расстоянии около 3 м. Малейшая вибрация зеркальца будет приводить к размыванию световой точки отраженного лазерного луча.

Рис. 5.5. Схема балансировки мотора при помощи лазерной указки

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

Внимание!

Все работы по начальной балансировке моторов выполняются без пропеллеров.

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

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

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

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

Обычно в первую очередь монтируются моторы и регуляторы. Мотор соединяется с регулятором тремя проводами и достоверно угадать правильную полярность невозможно. Даже если провода на выходе регулятора разноцветные, цвет ничего не означает. Поэтому сначала выполняется пробное подключение и проверяется направление вращения моторов. Разумеется, нужно делать это без пропеллеров! Вращение должно соответствовать указанному на схеме рис. 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

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

Минимальный газ при включении

#define MINCOMMAND 1000

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

Скорость шины I2С

#define I2C_SPEED 100000L

//#define I2CJ3PEED 400000L

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

Тип стандартной платы

Разработчики прошивки подготовили набор готовых конфигураций для множества популярных полетных контроллеров. В конфигурации описываются применяемые датчики и подпрограммы для работы с ними. Найдите и раскомментируйте нашу плату:

#define CRIUS_AIO_PRO_V1

Не обращайте внимание на версию платы. Прошивка подойдет и для второй версии.

Независимые сенсоры

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

Активация моторов (арминг)

В секции 2, озаглавленной COPTER TYPE SPECIFIC OPTIONSs, сейчас нам может понадобиться только параметр

#define ALLOW_ARM_DISARM_VIA_TX_YAW

//#define ALLOW_ARM_DISARM_VIA_TX_ROLL

Первая строка обозначает активацию моторов перемещением рукоятки газа вниз вправо до упора (ARM) и деактивацию в позиции вниз влево (DISARM). Это стандартный способ активации. Если закрыть первую строку и раскрыть вторую, то будет работать активация двумя рукоятками. Позже в этой же секции мы будем настраивать управление стабилизированным подвесом камеры.

Модификации радиоприемника

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

Если используется приемник, оснащенный только выходом PPM-SUM, раскомментируйте под него одну из строк

//#define SERIAL_SUM_PPM

соответствующую информации в тексте комментария, и подайте сигнал на вход РРМ платы контроллера. Если раскомментировать строку

//#define PPM_ON_THROTTLE

то сигнал PPM-SUM подается на вход канала газа контроллера Crius AIOP.

При подключении приемника-сателлита Spektrum раскомментируйте строку

//#define SPEKTRUM 1024

если используется приемник DSM2, и строку

//#define SPEKTRUM 2048

если используется приемник DSMX. Физически приемник подключается ко входу Rx одного из последовательных портов. По умолчанию это SERIAL1, но вы можете раскомментировать расположенную ниже строку

//#define SPEK_SERIAL_PORT 1

и указать нужный порт 0, 1 или 2. Убедитесь, что этот порт не будет занят другим устройством.

Для подключения Futaba S-BUS сигнал необходимо инвертировать при помощи простейшего самодельного инвертора. Мы рассмотрим этот вопрос в разд. "Подключение приемника по шине S-BUS" главы 6.

Есть ряд проблем с подключением приемников по шине S-BUS. Недорогие и популярные приемники Orange RX9 имеют выход S-BUS, якобы совместимый с оригинальным протоколом Futaba, но поддержка этой опции реализована в приемнике некорректно. Насколько известно автору, пока никому не удалось использовать этот выход приемников Orange для подключения к полетному контроллеру одним сигнальным проводом. В коде прошивки MultiWii v2.20 также некорректно работала часть кода, отвечающего за прием и декодирование сигнала S-BUS, но впоследствии в код были внесены поправки.

Скорость портов

Для связи с большинством внешних модулей, а также для подключения к компьютеру используются встроенные последовательные порты SERIAL0-SERIAL3. Максимальная допустимая скорость любого из портов 115 200 бит/с.

#define SERIAL0_COM_SPEED 115200

#define SERIAL1_COM_SPEED 115200

#define SERIAL2_COM_SPEED 115200

#define SERIAL3_COM_SPEED 115200

Порт SERIAL0 используется для подключения к компьютеру. Через этот порт происходит обмен информацией с программами настройки и управления. Также к этому порту подключается адаптер Bluetooth или радиомодем для беспроводного соединения с компьютером или смартфоном. К порту SERIAL1 подключают выход приемника S-BUS. Порт SERIAL2 используется для подключения приемника GPS. К порту SERIAL3 подключается модуль OSD и/или телеметрии.

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

Фильтр гироскопа

Как мы уже говорили ранее, гироскопы и акселерометры очень болезненно реагируют на вибрацию, поэтому приходится применять программную фильтрацию потока данных с датчиков. По умолчанию программный фильтр для гироскопов имеет максимальную полосу пропускания. Предполагается, что вы достаточно хорошо отбалансировали винтомоторные пары. Если же балансировка не позволяет устранить негативное влияние вибрации на гироскопы, которое проявляется в хаотичном и внезапном подергивании коптера по крену и курсу, придется опытным путем подобрать нужный фильтр. Сначала определите, какой интегральный гироскоп используется, ITG3200/ITG3205 или MPU6050. На платах Crius AIOP используется микросхема MPU6050. Далее выберите один из вариантов частоты среза фильтра:

//#define MPU6050_LPF_256HZ

//#define MPU6050_LPF_188HZ

//#define MPU6050_LPF_98HZ

//#define MPU6050_LPF_42HZ

//#define MPU6050_LPF_20HZ

//#define MPU6050_LPF_10HZ

//#define MPU6050_LPF_5HZ

Числовой параметр означает, что все колебания с частотой выше указанной будут подавлены цифровым фильтром прошивки. Первая строка используется по умолчанию и подходит только для микрокоптеров. Для коптера с диагональю около 450 мм и пропеллерами 10–11 дюймов следует начинать настройку с частоты 98 Гц. Большинство средних коптеров хорошо летают с фильтром на частоту среза 42 Гц.

К сожалению, не существует алгоритма быстрой настройки гироскопа. Это долгая и достаточно хлопотная процедура. Раскомментиррвав одну из строк, нужно попробовать полетать минут 10, внимательно следя за поведением коптера в разных режимах. Затем раскомментировать другую строку, закрыв предыдущую, и сравнить поведение коптера в воздухе. Для этого придется брать с собой в поле ноутбук и USB-провод, чтобы не возвращаться домой для перепрошивки. После того как вы окончательно остановились на одном из фильтров, понадобится заново настроить параметры РID через конфигуратор.

Функция Failsafe

Эта функция по умолчанию отключена в стандартной прошивке строкой

//#define FAILSAFE

но ее лучше включить, даже если ваш приемник оснащен неотключаемой функцией Failsafe. Абсолютная надежность работы приемника, особенно в непроверенной конструкции, не гарантирована. Например, питание приемника может внезапно пропасть из-за плохого контакта. Функция Failsafe контроллера активируется, если импульсы на одном из выходов приемника СН1-СН4 пропадают или делаются короче 985 мкс. Параметр в строке

#define FAILSAFE_DELAY 10

задает интервал времени с шагом 0,1 с, по истечении которого включается Failsafe после пропадания сигнала. При этом включается режим стабилизации горизонта, сигналы YAW, PITCH, ROLL выставляются в среднее положение и коптер начинает снижаться. Скорость снижения задается в строке

#define FAILSAFE_THROTTLE (MINTHROTTLE + 200)

Числовой параметр этой строки надо выбрать такой, чтобы скорость снижения составляла около 1 м/с. После настройки потребуется экспериментальная проверка. Если коптер снижается слишком быстро, увеличиваем значение.

По истечении интервала с шагом 0,1 с, указанного в строке

#define FAILSAFE_OFF_DELAY 200

моторы коптера отключатся.

Минимальная длительность импульсов для срабатывания Failsafe определяется в строке

#define FAILSAFE_DETECT_TRESHOLD 985

Мертвая зона и нейтральная зона

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

#define DEADBAND б

Если у вас качественная аппаратура со стабильными отцентрованными значениями сигнала, можно уменьшить значение этого параметра или закомментировать его.

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

#define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 50

Магнитное склонение

Магнитное склонение определяется в секции настроек GPS, но вписать его нужно сразу для правильной последующей калибровки компаса и работы функции Head Free. Определите магнитное склонение для своей местности на сайте www.magnetic-declination.com (рис. 5.7).

Рис. 5.7. Определение магнитного склонения

В примере на рисунке магнитное склонение положительное и составляет 3°59′. Но в прошивке используется значение с десятичными долями градуса. Для конвертации надо к целому значению градусов прибавить значение минут, деленное на 60:

3°59′ —> 3° + 59'/60 = 3,98°.

Впишите это значение в строку

#define MAG_DECLINATION 3.98f

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

* * *

На этом базовая настройка прошивки завершена. Сохраните файлы, скомпилируйте прошивку и загрузите ее в контроллер. Перед этим память EEPROM контроллера должна быть очищена, как сказано в начале раздела. После завершения загрузки прошивки на плате контроллера должны быстро мигать светодиоды А и С. Это означает, что контроллер ожидает от вас команду калибровки акселерометров. В этом состоянии контроллер еще не готов к полетам. Для дальнейшей настройки нам понадобится утилита конфигурации с визуальным интерфейсом, установленная на компьютер. Таких утилит две: упрощенная MultiWiiConf и более сложная MultiWii WinGU.

Альтернативная прошивка MahoWii

Проекту MultiWii, как и многим другим открытым проектам, присуще наличие ответвлений — альтернативных вариантов, настроенных под специфические цели или имеющих дополнительные опции. Начинающим владельцам мультикоптеров в качестве альтернативы настоятельно рекомендуем прошивку MahoWii. Детальное описание опций прошивки можно прочесть в дневнике разработчика по адресу http://forum.rcdesign.ru/blogs/83206/blogl7033.html и в комментариях к дневнику.

Прошивка MahoWii особенно хороша для начинающих. Существует упрощенная и заранее настроенная версия RC2.1_base, которая "из коробки" обеспечивает стабильный полет практически любого коптера с минимальными коррективами настройки либо вообще без изменений. Но в базовой версии отсутствует режим удержания высоты и поддержка GPS. Для более опытных пилотов предназначена полная версия MahoWii RC3.

Основными достоинствами этой прошивки для начинающего пилота являются следующие опции:

• эффективный режим удержания высоты;

• возможность задать минимальную "защитную" высоту полета, ниже которой коптер не опустится в случае ошибки пилотирования;

• эффективный фильтр вибропомех;

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

• поддержка ультразвукового сонара.

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

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

Важно!

Для компилирования прошивки MahoWii следует использовать старую версию Arduino IDE 1.0.5, т. к. при использовании версии 1.6.x будут появляться ошибки компиляции из-за смены версии компилятора GCC.

Функциональные режимы контроллера

Прежде чем приступить к использованию программ-конфигураторов, нужно разобраться с функциональными режимами контроллера, которые переключаются при помощи органов управления пульта. Некоторые из этих режимов для платы Crius АIOР доступны всегда и в списке помечены звездочкой (*), остальные становятся доступными после настройки опций прошивки MultiWii. В других разновидностях прошивок многие опции имеют похожее или идентичное название и значение. Правила включения режимов настраиваются в конфигураторе, поэтому надо хорошо понимать, что мы будем настраивать.

ARM*: режим активации моторов. Управляется либо комбинацией положения рукояток пульта (см. приложение 3), либо тумблером одного из каналов AUX. Если моторы не активированы (disarmed), то регуляторы оборотов находятся в режиме ожидания, питание на моторы не подается. Коптер никак не реагирует на движение рукояток управления. Но в режиме ожидания контроллер ведет полноценный обмен информацией с периферийными модулями, ждет захват спутников GPS, передает телеметрию и т. д. После активации моторов (armed) моторы работают в минимальном режиме. Коптер реагирует на рукоятки управления и полностью готов к взлету. Это опасный режим, коптер следует активировать только непосредственно перед взлетом.

LEVEL (ANGLE)*: режим автоматической стабилизации положения коптера за счет гироскопов и акселерометров. Когда режим активен, при отклонении рукоятки крена Pitch-Roll контроллер "запоминает" углы текущего положения коптера в пространстве (level) и автоматически поддерживает это положение даже при возврате рукояток в нейтраль. Для выравнивания коптера в горизонталь нужно сместить рукоятку в противоположном направлении за нейтраль.

HORIZON*: режим автоматического выравнивания коптера в горизонтальное положение при возврате рукоятки Pitch-Roll в нейтраль. В остальном схож с режимом LEVEL и, по сути, представляет собой его модификацию. Чем сильнее рукоятка крена отклоняется от нейтрали, тем меньше удельный вес показаний акселерометра и тем больше вес показаний гироскопа в алгоритме стабилизации. Это помогает динамично управлять коптером. Но при возврате в нейтраль коптер автоматически возвращается в горизонтальное положение, соответствующее откалиброванному нулевому положению акселерометра. Режим особо рекомендуется начинающим пилотам, и при полетах по FPV достаточно просто отпустить рукоятку и правильно настроенный коптер сам выровняется и зависнет на месте (для стабилизации по высоте нужен еще и барометр).

Режимы LEVEL и HORIZON взаимоисключающие и не должны включаться одновременно. Рекомендуется присоединить их к одному каналу AUX, чтобы при одном положении тумблера включался режим LEVEL, а при другом HORIZON. Если оба режима отключены, работает стабилизация только за счет датчиков угловых ускорений — настоятельно НЕ рекомендуется так делать начинающим пилотам. Опытным вертолетчикам полет "на гироскопах" не составит особого труда.

BARO*: режим удержания высоты по барометру в положении газа, близком к точке висения. Доступен при наличии микросхемы интегрального барометра на плате. Работает независимо от других режимов. Режим начинает работать более-менее точно на высоте более 2–3 м. На меньшей высоте воздушная подушка и завихрения у земной поверхности, создаваемые винтами, вносят слишком большую погрешность в показания барометра. В некоторых версиях прошивки режим BARO может препятствовать полной посадке коптера и отключению моторов, поэтому его следует включать после взлета, на рабочей высоте, и отключать перед посадкой. В современных алгоритмах показания барометра учитываются совместно с показаниями акселерометра по вертикальной оси z, что позволяет гасить быстрые вертикальные флуктуации. Причем показаниям акселерометра при краткосрочных девиациях отдается предпочтение.

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

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

HEADFREE*: режим удержания условного направления "вперед" независимо от физического положения рамы. Требует наличия качественного магнетометра, защищенного от помех. В момент активации моторов (включение ARM) контроллер запоминает курс, на который указывает физическое направление "вперед" рамы. Обычно это направление вперед от оператора. При вращении рамы вокруг своей оси во время полета контроллер пересчитывает направление по показаниям магнетометра. Поэтому с точки зрения оператора направления полета "вправо-влево" и "вперед-назад" остаются постоянными, независимо от разворота рамы в воздухе. Считается, что этот режим удобен и безопасен для начинающих операторов, часто теряющих контроль над направлением полета при удалении коптера на достаточное расстояние. Также этот режим предпочитают некоторые операторы при полетах по FPV.

HEADADJ*: режим корректировки направления "вперед" во время работы режима HEADFREE. Если в результате девиаций магнетометра утрачено правильное условное направление "вперед" или его нужно сменить по желанию оператора, или нужно просто полетать в обычном режиме, то можно временно включить HEADADJ. После отключения HEADADJ контроллер запоминает текущее положение "вперед" рамы коптера и дальнейший курс вычисляет уже от него.

CAMSTAB: режим стабилизации двухосевого подвеса камеры. При наклонах рамы контроллер старается стабилизировать положение подвеса. Активируется по каналу AUX, но обычно, при наличии подвеса, этот режим делают включенным постоянно.

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

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

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

Примечание

Режимы GPS HOME и GPS HOLD взаимоисключающие и не должны включаться одновременно.

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

BEEPER: включение звукового излучателя (beeper, buzzer), подключенного к специальному выходу контроллера. Если в прошивке включено обслуживание звуковых сигналов и активирован режим BEEPER, то контроллер будет реагировать звуком на переключение режимов, а также издавать сигнал "найди меня" при срабатывании функции Failsafe.

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

LEDLOW: принудительное отключение подсветки, когда используется функция прошивки LED_FLASHER. При активации режима LEDLOW в нее передается минимальное значение 0x00, при котором подсветка не горит.

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

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

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

Конфигуратор MultiWiiConf

Эту программу вы скачали в архиве вместе с прошивкой. Для работы приложения потребуется движок Java от Sun Microsystems. Если Java отсутствует на вашем компьютере, при первом запуске вам будет автоматически предложено скачать и установить оболочку Java. Впоследствии Java понадобится и для программы настройки модуля OSD.

Утилита настройки не требует инсталляции. В разархивированной ранее папке выберите нужную версию программы в соответствии с вашей операционной системой. Перед запуском программы контроллер должен быть подключен к компьютеру, иначе нужный СОМ-порт не появится в списке. После запуска выберите нужный порт в списке и нажмите кнопку START. На плате контроллера должны замерцать светодиоды Rx-Tx, а в окне приложения появиться графики потока данных от сенсоров (рис. 5.8).

Рис. 5.8. Главное окно интерфейса MultiWiiConf

Калибровка акселерометра

Расположите плату строго горизонтально и нажмите кнопку САLIВ_АСС. Приблизительно в течение 10 с произойдет калибровка акселерометров. В это время плата должна быть неподвижной и не испытывать вибрации. По завершении калибровки светодиоды А и С перестанут мигать непрерывно и будут мигать только при наклоне платы больше 18° от горизонтали, что означает критический нескомпенсированный угол, при котором коптер может начать "соскальзывать", если нет достаточной вертикальной тяги.

Теперь попробуйте наклонять и поворачивать плату. Авиагоризонт и компас в правой части окна должны отображать текущее положение контроллера в пространстве. Расположите плату контроллера стрелкой вперед. При наклоне вправо авиагоризонт должен наклоняться влево, и наоборот. Соответственно, при наклоне вперед уровень горизонта должен подниматься.

Примечание

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

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

Значения по умолчанию, доступные для настройки через интерфейс, экспериментально подобраны разработчиками прошивки так, чтобы сделать максимально безопасным и комфортным первый полет усредненного коптера размером 450–500 мм весом до 1 кг, собранного из распространенных комплектующих. Вы можете быть уверены, что правильно и аккуратно собранный коптер достаточно хорошо полетит на параметрах по умолчанию. Но впоследствии некоторые параметры потребуют подстройки для более качественного управления именно вашим коптером.

Секция параметров RATE и EXPO характеризует отклик коптера на сигнал, поступающий с пульта. RATE — это коэффициент пропорциональности реакции коптера на изменение управляющего сигнала по кренам Pitch-Roll. Уменьшение коэффициента делает отклик более вялым и ограниченным по размаху. Параметр EXPO характеризует линейность отклика контроллера на угол отклонения рукояток. При наличии экспоненты, при небольшом отклонении рукояток реакция невелика, при дальнейшем отклонении степень отклика нарастает нелинейно. Наличие экспоненты полезно для начинающих пилотов, которым присуще нервное дерганье рукояток пульта относительно нейтрали без необходимости. С другой стороны, резкий отклик при большом отклонении рукояток позволяет быстро парировать положение коптера в аварийной ситуации.

Примечание

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

Секция параметров МID и EXPO относится к управлению газом. Параметр МID — это значение газа в процентах отклонения рукоятки, при котором коптер зависает в воздухе, не двигаясь по вертикали. Этот параметр используется, как опорный, в режиме удержания высоты по барометру и при расчете газа снижения после срабатывания Failsafe. Значение газа висения впоследствии обязательно надо уточнить экспериментально, засекая положение рукоятки газа для висения полностью снаряженного коптера при наполовину разряженной силовой батарее. Кривая экспоненты газа выглядит иначе, чем экспонента кренов. Она плоская в середине и дает более резкий отклик по обе стороны от средней точки. Для начинающего пилота лучше оставить линейную кривую газа с нулевой экспонентой. Обязательно убедитесь, что в пульте также установлена нулевая экспонента газа.

Секцию настройки параметров обратной связи PID пока не будем трогать и вернемся к ней после нескольких первых успешных полетов.

Секция параметров AUX1, AUX2, AUX3, AUX4 должна быть настроена перед полетом. В ней определяется, каким образом полетные режимы контроллера переключаются при помощи дополнительных тумблеров или регуляторов пульта. В списке режимов появляются обязательные опции плюс дополнительные, которые на данный момент определены в прошивке и физически доступны. Например, на рис. 5.8 не видны режимы GPS HOME и GPS HOLD, потому что приемник GPS не подключен и в прошивку не поступает поток данных. Если в коде прошивки при помощи описаний #define активировать стабилизацию камеры или поисковый бипер, соответствующие строки также появятся в списке.

Параметр ТРА (Throttle PID Attenuation) определяет степень ослабления влияния стабилизации при отклонении рукоятки газа от среднего положения. По умолчанию коэффициент равен нулю. Это означает, что система стабилизации коптера реагирует на внешние воздействия коптера одинаково при любом положении рукоятки газа.

Два поля значений RATE справа от секции РID также содержат коэффициенты уменьшения стабилизации, но при отклонении от нейтрали по осям Pitch-Roll и Yaw. Для спокойного стабильного пилотирования, полетов по FPV и висения нужно оставить нулевое значение. Чем ближе значения в этих полях к единице, тем меньше стабилизация коптера и тем быстрее и острее он реагирует на резкие отклонения рукояток. Для динамичного пилотирования нужно задать значения порядка 0,30; для агрессивной акробатики 0,65-0,70. При отпускании рукояток в нейтральное положение автоматическая стабилизация восстанавливается.

Для привязки режима к положению одного из переключателей AUX в нужной строке, напротив названия режима, включите белый квадратик щелчком мыши. Например, на иллюстрации показано, что режим удержания высоты BARO включится при максимальном значении канала AUX1. При минимальном значении канала AUX3 будет включен режим стабилизации ANGLE, а при максимальном значении этого канала — режим HORIZON. Установленные значения нужно обязательно записать в память, нажав кнопку WRITE. Если к контроллеру подключен приемник, можно сразу проверить правильность настройки, меняя положение тумблеров пульта.

Каналы AUX могут быть привязаны не только к тумблерам, но и к потенциометрам или трехпозиционным переключателям, чтобы задействовать среднее значение канала. Если нужно, чтобы какой-то режим (например, стабилизация камеры CAM_STAB) был включен всегда, поставьте галочки во все три значения любого канала AUX напротив нужного режима.

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

В версии приложения 2.30 появилась вкладка окна SETTINGS (рис. 5.9).

Рис. 5.9. Окно настроек MultiWiiConf

В этом окне можно изменить скорость порта для соединения с платой контроллера, а также некоторые параметры прошивки без ее перезагрузки. Нажмите кнопку READ, чтобы прочитать все доступные для редактирования параметры. В данном случае без редактирования прошивки мы можем поменять параметры MINTHROTTLE (описание см. выше) и MAG_DECL.

Конфигуратор MultiWii WinGUI

Как следует из названия, это графический интерфейс (GUI) для настройки MultiWii в среде Windows. Конфигуратор оперирует тем же набором параметров, что и MultiWiiConf, но имеет более широкую функциональность. На момент написания книги был доступен для скачивания пререлиз бета #5 приложения WinGUI 2.30 — иными словами, приложение в состоянии разработки. Эта версия предназначается для работы с прошивкой MultiWii v2.30, имеет существенно переработанный дизайн интерфейса и, что самое главное, планировщик миссий для автоматических полетов по GPS.

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

К счастью, с прошивкой MultiWii 2.30 нормально работает WinGUI предыдущей версии 2.20 (рис. 5.10). Это стабильная, многократно проверенная и отлаженная версия, с которой легко и удобно работать. Скачайте архив и разверните его. Установка не требуется, достаточно запустить файл MultiWiiWinGUI.exe.

Рис. 5.10. Стартовый экран конфигуратора MultiWii WinGUI

К моменту запуска программы плата контроллера должна быть подключена к USB, иначе нужный порт не появится в списке. При работе с WinGUI никакое устройство не должно быть подключено к порту SERIAL0, иначе возникнет конфликт уст-ройств. По умолчанию скорость обмена равна 115 200 бод. Если вы задали в настройках прошивки другую скорость порта SERIAL0, то не забудьте перед подключением выбрать эту скорость в меню. К некоторым экземплярам платы Crius АIOР подключение происходит не с первого раза. В этом случае нужно повторить попытку подключения или закрыть и снова запустить конфигуратор.

Прочие опции меню:

• Read Settings — прочитать настройки из памяти контроллера;

• Write Settings — записать настройки в память контроллера;

• Load Defaults — восстановить в интерфейсе настройки по умолчанию. Затем нужно нажать кнопку Write Settings, чтобы перенести настройки в память контроллера;

• Load from File — прочитать настройки из файла;

• Save to File — сохранить настройки в файл;

• Start Log — запись полетного лога (журнала) в файл;

• Start GPS Log — запись лога данных GPS;

• Log Browser — утилита просмотра записанных ранее логов с возможностью построения графиков.

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

Вкладка Parameters содержит секцию настроек PID, экспонент и коэффициентов. Назначение этих настроек рассмотрено выше, в описании конфигуратора MultiWiiConf. Разница лишь в более удобном способе ввода числовых значений.

Вкладка RC Control Settings содержит настройки зависимости режимов контроллера от состояния каналов AUX, которые также рассмотрены ранее. Не забывайте после изменения настроек записывать их в память контроллера, чтобы увидеть результат.

Вкладка Realtime Data отображает поток данных с сенсоров, радиоприемника и приемника GPS в режиме реального времени. Частоту обновления данных можно менять в диапазоне от 1 до 20 раз в секунду. Поскольку контроллер выдает эти данные по запросу конфигуратора, слишком частые запросы могут мешать контроллеру во время реального полета, когда скорость обмена данными невелика. На этой же укладке можно запустить процедуры калибровки акселерометра и магнитометра.

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

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

Вкладка GUI Settings содержит настройки путей для сохранения файлов логов и настроек. Также на этой вкладке можно задать набор данных, которые будут записаны в лог.

Вкладка CLI — это окно терминала (Command Line Interface). Обмен данными между контроллером и внешними программами происходит при помощи специального протокола MSP (MultiWii Serial Protocol). Внешняя программа посылает в контроллер команду запроса на чтение или запись данных, а контроллер отрабатывает эту команду, выгружая блок данных или записывая полученные данные в свою память. Когда открыта вкладка CLI, автоматический обмен данными с конфигуратором прекращается и система находится в ожидании ручного ввода команды. Ответ контроллера выводится в окне вкладки. Такой режим нужен только продвинутым пользователям, занимающимся модификацией и отладкой прошивки.

Терминал для работы с СОМ-портами

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

Архив с программой можно скачать на сайте разработчика: http://www.compuphase.eom/software/termite-3.1.zip. Она не требует инсталляции, достаточно развернуть архив в удобное место. Вместе с программой рекомендуем скачать специальный шрифт GNU Unifont http://www.compuphase.com/software/unifont-5.1.zip и поместить его в одну папку с программой терминала. Шрифт отображает небуквенные служебные символы, если они встречаются в потоке данных. Эта опция может пригодиться в будущем. При работе с дополнительными модулями потребуется проверить и изменить следующие настройки терминала.

• Номер последовательного порта. Это порт, который появляется в системе при подключении адаптера USB-COM. При подключении одного и того же устройства к разным разъемам USB номер порта может меняться.

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

• Присоединение символов конца строки и перевода каретки, <LF> и <CR>. Некоторые модули требуют наличия этих символов в конце команды, некоторые — нет.

Остальные настройки, как правило, менять не надо. Также не следует менять настройки соответствующего порта в системе Windows, т. к. при открытии программы терминала соответствующие параметры порта в системе будут установлены автоматически, на то время, пока открыт порт.

Программы для мобильных устройств

Программы для мобильных устройств позволяют настраивать коптер в полевых условиях, принимать и отображать телеметрийную информацию, а также иногда управлять коптером вместо пульта радиоуправления. Для их взаимодействия с контроллером потребуется наличие беспроводного соединения по Bluetooth, а при больших дистанциях — радиомодема. Подключение модуля Bluetooth и радиомодема рассмотрено в главе 6. На момент написания книги для операционной системы Android были доступны три популярные утилиты конфигурации и телеметрии: NAZE32 Comfigurator, MultiWii Configuration Tool и EZ-GUI Ground Station. Их можно легко найти поиском в Google Play.

EZ-GUI Ground Station

Старое название этой программы — MultiWii EZ-GUI. Программа постоянно дорабатывается и модифицируется; разработчик активно участвует в общении на тематических форумах и аккуратно отвечает на вопросы и замечания пользователей. Программа не полностью бесплатная, доступ к полному пакету функций GPS и ведению логов полета необходимо купить. Но стоимость опции невысока, а функции очень полезные, поэтому рекомендуем приобрести их сразу после скачивания программы. Ключ активации для платных опций хранится на карте памяти SD мобильного устройства, поэтому при активации и использовании программы карта памяти должна быть доступна.

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

Войдите в меню Конфигурации | Настройки. Должен быть выбран тип связи Bluetooth. Далее нажмите кнопку выбор Bluetooth, чтобы выбрать модуль Bluetooth вашего коптера. Если модуля нет в списке спаренных устройств смартфона или планшета, нажмите кнопку Поиск устройств и проведите связывание Bluetooth с вашим мобильным устройством как обычно. Далее, нажимая стрелку — > в правом верхнем углу, последовательно пройдите остальные этапы настройки. Выберите версию прошивки, в нашем случае это MultiWii 2.3. Настройку голосовых уведомлений можно не менять. Уведомления голосом бывают полезны во время полета, но довольно навязчивы. Остальные два экрана настроек пропустите. По завершении настройки программа перезапустится, и вы вновь окажетесь на главном экране. Щелкните по ссылке Соединиться в правом верхнем углу. Соединение устанавливается примерно 3–5 с. Иногда, в зависимости от модели смартфона и модуля Bluetooth, соединение устанавливается со второй-третьей попытки. Особенно это характерно для смартфонов Samsung. В отдельных случаях помогает перезагрузка смартфона.

Опции стартового экрана отображают основную полетную информацию. Для корректного отображения карты и координат в мобильном устройстве должен быть доступен мобильный Интернет и включен приемник GPS. Пока не поступают данные GPS с коптера, на карте отображается местоположение пилота (стартовая точка). Во время полета карта в режиме реального времени "следует" за положением коптера. Разумеется, для этого данные должны передаваться на достаточное расстояние при помощи удлинителя радиомодема.

На экране Настройки нам понадобятся вначале только кнопки PID, AUX, КАЛИБРОВКА и ЛОГ. По умолчанию включено автоматическое ведение логов (журналов) полета. На SD-карту телефона в режиме реального времени записываются координаты коптера, напряжение батареи, обороты моторов и т. д. После полета данные можно посмотреть на мобильном устройстве в виде графиков, а также конвертировать в формат KML для загрузки в сервис Google Earth, чтобы посмотреть 3D-траекторию полета на фоне спутниковой карты местности. Иногда это хорошо помогает при поиске потерянного коптера.

В расширенных настройках можно выбрать текущий профиль: 0, 1 или 2. MultiWii позволяет сохранять три разных профиля настроек и переключаться между ними. В свою очередь конфигуратор позволяет не только выбрать текущий профиль, но и записать в него временные настройки, а если не понравилось — вернуть исходные.

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

NAZE32 Configurator

Как следует из названия, программа разрабатывалась для конфигурирования полетного контроллера NAZE32, но совместима и с другими контроллерами, работающими на прошивке MultiWii. Для подключения требуется, чтобы Bluetooth квадрокоптера уже был связан с телефоном и присутствовал в списке доступных устройств. Связывание осуществляется стандартными средствами вашего мобильного устройства. В различных устройствах на базе Android эта процедура может незначительно различаться.

Применительно к плате CRIUS АЮР с прошивкой MultiWii v.2.3 эта программа имеет ограниченную функциональность, но позволяет оперативно настраивать параметры PID, AUX (Switches) и RATE с одного экрана.

Внимание!

Функция триммирования акселерометра AccTrim работает только для платы NAZE32 на Baseflight.

Для плат с прошивкой MultiWii подстройка горизонта акселерометра производится при помощи стиков пульта, как описано в главе 6.

MultiWii Configuration Tool

Простая и удобная утилита, которая поддерживает все стандартные настройки и отображает поток данных MultiWii версии 2.3 несмотря на то, что формально заявлена версия 2.1, поскольку базовый протокол обмена данными не изменился. В настройках программы есть удобная опция Keep Screen On, не позволяющая экрану смартфона отключаться в состоянии покоя.

Калибровка регуляторов оборотов

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

Примечание

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

Последовательность процедуры калибровки:

1. В тексте прошивки контроллера (см. файл config.h) найдите и раскомментируйте строку #define ESC_CALIB_CANNOT_FLY, расположенную в конце файла.

2. Запишите прошивку в контроллер.

3. Подключите моторы без пропеллеров к регуляторам. Направление вращения не имеет значения.

4. Спаяйте цепь питания регуляторов и контроллера, если монтаж временный.

5. Подключите входы регуляторов к соответствующим выходам контроллера и промаркируйте регуляторы.

6. Подайте питание на контроллер и регуляторы.

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

Отключите питание. Обязательно сразу же закомментируйте строку

//#define ESC_CALIB_CANNOT_FLY

и заново загрузите прошивку. Теперь ваши регуляторы откалиброваны и готовы к полетам.

Настройка канала радиоуправления

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

Примечание

Прежде всего, запомните правило настройки пульта для квадрокоптера: никаких триммеров, смещающих среднюю точку сигнала, потому что для квадрокоптера рабочий диапазон канала должен быть строго симметричным! В нейтральном (среднем) положении длительность импульсов каждого канала должна как можно точнее соответствовать 1500. Минимальное значение сигнала— около 1000, максимальное — около 2000. Крайние значения менее критичны, главное, чтобы рабочий ход вниз и вверх от центра был одинаковым.

Среднее значение 1500 выставляется на пульте при помощи субтриммеров. Разница между триммером и субтриммером описана в главе 2. Нижнее и верхнее значения задаются регулятором расходов пульта. Обычно в меню настроек пульта этот пункт называется Rates или Travel Adjust. Например, можно выставить минимальные значения 1065 и максимальные 1935. В этом случае будет, симметричное отклонение от центра ±435.

Для настройки подключите выходы приемника к контроллеру, а сам контроллер к USB-порту компьютера и запустите любой конфигуратор. Проверьте правильность подключения выходов приемника и настройки каналов AUX передатчика, двигая рукоятки и переключая тумблеры пульта. При необходимости переставьте местами разъемы каналов приемника или измените порядок каналов в настройках пульта.

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

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

1. Отклоните рукоятку в крайнее положение и плавно верните в центр. Засеките величину отклонения от 1500. Например, 1500–1493 = 7.

2. Проделайте эту процедуру для каналов ROLL, PITCH и YAW, отклоняя рукоятки в обе стороны. Запомните максимальное значение из всех получившихся отклонений от центра.

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

4. К максимальному значению отклонения, найденному в результате всех манипуляций, прибавьте 3–4 единицы.

5. Откройте в Arduino DDE исходный код прошивки и в строке #def ine deadband xx укажите вычисленное вами значение мертвой зоны.

6. Запишите исправленную прошивку в память контроллера.

Теперь дрожание средней точки сигнала не будет влиять на поведение коптера.

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

Активируйте моторы, переместив рукоятку газа в положение "ARM", т. е. вправо вниз, примерно на одну секунду. Если параметры сигналов управления настроены правильно, на плате контроллера должны загореться светодиоды А и С, в окне конфигуратора изменит цвет индикатор "ARM", а показания оборотов моторов возрастут и будут равны величине, указанной при настройке прошивки в строке

#define MINTHROTTLE хххх

Примечание

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

Поставьте рукоятку газа в среднее положение. Индикаторы оборотов моторов примут положение, близкое к среднему. Переместите правую рукоятку пульта вперед. Должны увеличиться обороты задних моторов (6)-(3) и уменьшиться передних (2)-(5). При движении рукоятки назад должна наблюдаться обратная картина. При отклонении рукоятки вправо увеличатся обороты левой пары (2)-(6) и уменьшатся правой (5)-(3). Отклонение влево должно дать обратную картину. Переместите левую рукоятку (YAW) вправо. Должны возрасти обороты диагональной пары (6)-(5) и уменьшится пары (2}-(3). Отклонение влево должно дать обратный эффект. Если реакция отличается, проверьте, не инвертированы ли сигналы в каналах радиоуправления. При необходимости включите инверсию нужных каналов в настройках пульта.

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

Первое включение и первый взлет

Первое включение коптера в рабочем режиме должно происходить без пропеллеров!

Строго запрещается подавать питание от силовой батареи при подключенном к компьютеру USB-кабеле. Если нужно работать с интерфейсом конфигуратора, используйте соединение по Bluetooth, о котором будет сказано далее (см. главу 6).

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

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

Плавно увеличьте газ примерно на 1/3 рабочего хода. Поднимите коптер в воздух и наклоните его. При наклоне рамы вперед на 15–20° должны заметно увеличиться обороты передней пары моторов и уменьшиться задней — контроллер пытается компенсировать крен. Аналогично должны меняться обороты соответствующих пар моторов при кренах в другие стороны. При повороте рамы вокруг своей оси в горизонтальной плоскости должны меняться обороты диагональных пар моторов.

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

Отключите силовую батарею и установите пропеллеры, тщательно соблюдая направленность вращения.

Дальнейшие испытания желательно проводить на открытом воздухе или хотя бы на балконе, в отсутствие детей и домашних животных. Воздержитесь от искушения совершить первый взлет в центре жилой комнаты. Квадрокоптеры могут быть нестабильны на высоте менее 1 м из-за эффекта воздушной подушки и круговых завихрений в комнате, а при неправильно откалиброванном гироскопе склонны к внезапному "соскальзыванию" вбок в момент взлета. Обычно у начинающих пилотов испытания заканчиваются разбитым телевизором или посеченной лопастями мебелью. Просматривая в Интернете видеоролики с полетами в комнате, имейте ввиду:

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

• обычно это не первый взлет проверенных и настроенных коптеров.

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

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

Внимание!

Дальнейшие испытания потребуют от вас особой аккуратности и осторожности.

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

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

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

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

Когда предполетная проверка проведена и явных неполадок не просматривается, можно приступать к пробным полетам на открытом воздухе. Установите коптер на горизонтальной поверхности, подключите силовую батарею и после этого не двигайте коптер. После подачи питания и запуска контроллера начнется процедура калибровки гироскопов, сопровождаемая быстрым миганием светодиодов А и С.

Двигать коптер в этот момент не следует, иначе калибровка сорвется.

В прошивках MultiWii версий от 2.2 и далее предусмотрено обнаружение перемещения и повторная калибровка. Эта функция включается раскомментированием строки

//#define GYROCALIBRATIONFAILSAFE

Примечание

Если коптер двигали в процессе калибровки гироскопов, то при взлете он начнет сильно и непредсказуемо крениться, смещаясь в сторону, и может даже перевернуться. В этом случае гироскоп нужно перекалибровать при помощи команды рукоятками управления (см. приложение 3).

Также в прошивке есть строка

#define ONLYARMWHENFLAT

которая не даст активировать моторы, если наклон поверхности, с которой стартует коптер, слишком велик.

Активировав моторы, плавно увеличьте газ до момента, когда коптер начнет слегка отрываться от земли. При этом он не должен крениться, дергаться или интенсивно сползать в сторону. Уверенно увеличьте чуть больше точки висения и дайте коптеру подняться на высоту около 2–3 м. Сразу верните газ к точке висения и корректируйте положение коптера правой рукояткой пульта. Обратите внимание, в какую сторону самопроизвольно смещается коптер при отсутствии ветра. Плавно убавьте газ и посадите коптер. Повторите взлет и посадку несколько раз. Теперь вы готовы приступить к триммированию акселерометров.

Триммирование акселерометров

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

Установив, в какую сторону смещается коптер, посадите его и деактивируйте моторы. Рукоятку газа переместите вверх до упора. Правую рукоятку переместите до упора в сторону, противоположную крену. Если присутствуют крены по двум направлениям, их следует триммировать по очереди. Например, если коптер кренится вправо и вперед, переместите рукоятку влево. Контроллер ответит на команду серией вспышек светодиодов А и С, после чего верните рукоятку в нейтраль. Аналогично скорректируйте продольный крен смещением рукоятки назад. Одно перемещение рукоятки соответствует крену в 0,1°. Обычно предварительное триммирование выполняют сериями по 3–4 отклонения рукоятки. Затем поднимите коптер в воздух и проверьте результат. При необходимости повторите процедуру. Правильно триммированный коптер при отсутствии ветра висит спокойно и почти не дрейфует.

Теперь обратим внимание на курсовую устойчивость. Коптер не должен стремиться повернуться вправо или влево. Легкий дрейф курса до 10° в течение нескольких минут считается нормальным. Стремление к повороту может быть вызвано неточной геометрией рамы или установкой моторов не строго горизонтально, особенно на круглых трубчатых лучах, а также неравномерным износом подшипников моторов или затрудненным вращением после аварии. Магнетометр на время проверки следует выключить, чтобы исключить влияние магнитных наводок.

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

Настройка PID

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

Реакция системы на внешнее воздействие определяется тремя компонентами отклика: пропорциональным (Proportional), интегральным (Integral) и дифференциальным (Differential). Отсюда и пошло сокращение РID. Для более ясного понимания компоненты можно свести в условную зависимость:

FSTAB = Р∙Sens +1SensDSens,

где FSTAB — усилие, направленное на возврат коптера в положение стабилизации; Sens — данные об угловых ускорениях и кренах, поступающие с сенсоров. Обратите внимание, что D стоит в формуле с отрицательным знаком, это понадобится далее.

Компонент Proportional определяет степень пропорциональности отклика системы на воздействие. Функция отклика линейная. Чем больше значение Р, тем сильнее система противодействует внешнему влиянию, возвращая коптер в исходное положение. Чрезмерная реакция может привести к тому, что коптер проскочит положение равновесия (перерегулирование). Потребуется возвращать коптер в обратном направлении. Таким образом, могут возникнуть затухающие колебания (осцилляции), а в крайних случаях и незатухающая неуправляемая раскачка. Поэтому параметр Р должен быть подобран так, чтобы не возникали осцилляции.

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

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

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

Внимание!

Параметр D в конфигураторе задан положительным числом, но в формуле используется со знаком "минус". Это часто порождает путаницу и вынуэдает делать оговорки. Оперируя понятиями "меньше" и "больше", мы будем иметь в виду значения, задаваемые в конфигураторе.

Увеличение D приводит к увеличению скорости возврата, усиливает влияние Р и может привести к появлению осцилляции. Уменьшение D снижает склонность к осцилляции и влияние Р и уменьшает скорость возврата.

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

Базовая настройка параметра Р

Для настройки рекомендуется использовать подключение к коптеру по Bluetooth, т. к. придется неоднократно обращаться к настройкам через программу конфигуратора. Иначе придется каждый раз отключать/подключать силовую батарею и провод USB.

Установите в конфигураторе значения РID по умолчанию. Соблюдая осторожность, крепко возьмите коптер в руку, поднимите над головой и увеличьте газ до состояния свободного висения. Попробуйте наклонить коптер в любую сторону. Он будет сопротивляться и стремиться вернуться обратно. Быстро отклоните коптер и позвольте ему вернуться в горизонталь. Постепенно увеличивайте значение Р для осей Pitch и Roll до тех пор, пока не почувствуете, что появились затухающие осцилляции (коптер слегка проскакивает равновесие, совершая колебание). Прибавку значения с каждым шагом уменьшайте. После достижения осцилляции уменьшите значение Р на 15–20 %. Повторите эту же процедуру для оси Yaw. На этом базовую настройку Р можно считать законченной. Дальнейшую настройку вы будете выполнять в поле, меняя параметры I и D и проверяя результат в полете.

Настройка I и D для плавного стабильного полета

Исходим из того, что базовая настройка Р уже проведена. Постепенно уменьшайте параметр I до момента, когда почувствуете, что появился неприемлемо сильный дрейф при висении. После этого увеличьте значение примерно на 20 %. Увеличивайте значение D до тех пор, пока не заметите, что стабилизация после резких отклонений стиков не стала неприемлемо слабой. Затем уменьшите D и попробуйте немного уменьшить Р.

Настройка I и D для активного пилотирования и акро

Постепенно уменьшайте параметр до момента, когда почувствуете, что появился неприемлемо сильный дрейф при висении. После этого увеличьте значение примерно на 5-10 %. Остаточный дрейф не успеет себя проявить при активном пилотировании. Уменьшайте значение D до тех пор, пока стабилизация после резких манипуляций стиками не начнет приводить к опасной раскачке. Затем увеличьте D до исчезновения чрезмерной раскачки. Теперь можно попробовать немного уменьшить Р.

В целом, настройка РID — это субъективный процесс. Его задача — найти ваш личный компромисс между стабильностью коптера и комфортом управления.

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК