Здравствуйте, наши уважаемые читатели. В этой статье мы поговорим про то, как собрать квадрокоптер на Ардуино. Это не самая простая, хотя и очень увлекательная задача, результатом решения которой станет появление небольшого беспилотника, спроектированного, собранного, и настроенного собственными руками. Сразу оговоримся, что речь идет о максимально дешевом дроне из наиболее доступных по цене комплектующих.
Прежде чем приступить к сборке квадрокоптера своими руками, необходимо обзавестись всеми необходимыми деталями. Мозгом нашей самоделки станет полетный контроллер Arduino Uno. Его возможностей более чем достаточно для того, чтобы управлять беспилотником.
Помимо микроконтроллера, нам понадобятся:
- Аккумулятор (лучше несколько) на 3.7В
- Плата MPU-6050 (на ней установлены гироскоп и акселерометр)
- Транзистор ULN2003A
- Коллекторные двигатели с полым ротором 0820
- Провода
Необходимо сделать несколько замечаний. Так как мы собираем , то наш выбор пал на коллекторные движки с полым ротором (так называемые coreless motors). Они далеко не так надежны, как бесколлекторные двигатели, но зато гораздо дешевле стоят. Кроме того, можно обойтись без дополнительных контроллеров скорости.
Зато невозможно обойтись без гироскопа и акселерометра. Гироскоп необходим для того, чтобы квадрокоптер мог удерживать заданное направление движения, тогда как акселерометр используется для измерения ускорения. Без этих устройств управлять коптером было бы гораздо сложнее (если вообще возможно), так как именно они предоставляют данные для сигнала, регулирующего скорость вращения винтов.
Мы не указали в списке необходимых деталей раму. Ее можно приобрести, а можно распечатать на 3D принтере каркас, лучи и крепления для двигателей. Второй вариант нам кажется более предпочтительным, тем более, что в интернете можно без труда найти проекты квадрокоптера.
Распечатанная на принтере рама окажется не только легкой, но и прочной. Но если доступа к 3D принтеру нет, раму можно заказать.
Пошаговая инструкция по сборке
Как напечатать раму и крепеж
3D принтеры можно найти во многих университетах, лабораториях, коворкингах. Зачастую доступ к ним бесплатный. Модели для печати можно создать самостоятельно, используя для этого, например, Solidworks. А можно воспользоваться уже готовыми решениями, при необходимости изменив параметры.
Как настроить акселерометр гироскопа
Для настройки акселерометра-гироскопа (I2C)мы рекомендуем использовать следующую библиотеку . Ни в коем случае не подключайте плату к напряжению 5В, иначе вы моментально ее испортите.
Вкратце расскажем, чем интересна плата I2C с датчиками. Она заметно отличается от обычной платы акселерометра с тремя аналоговыми выходами для осей X, Y, Z. I2C представляет собой интерфейсную шину, обеспечивающую передачу значительных объемов данных через логические цифровые импульсы.
Аналоговых выходов на плате не много, и в этом большой плюс I2C, ведь в противном случае нам бы пришлось использовать все порты на Arduino, чтобы получить данные от гироскопа и акселерометра.
Схема подключения к Arduino
Прежде чем плата I2C сможет обмениваться данными с Arduino, ее необходимо подключить к контроллеру.
Нас интересует скетч I2C scanner code, вернее, его код.
Скопируйте программный код, вставьте в пустой скетч, после чего запустите его. Убедитесь, что подключение установлено к 9600 (для этого запустите Arduino IDE через Tools-Serial Monitor). Должно появиться устройство I2C с адресом 0×68 либо 0×69. Запишите или запомните адрес. Если же адрес не присвоился, скорее всего проблема в подключении к электронике Arduino.
Затем нам понадобится скетч, умеющий обрабатывать данные гироскопа и акселерометра. В интернете есть множество вариантов, и найти подходящий не проблема. Скорее всего, он будет в заархивированном виде. Разархивируйте скачанный архив, отройте Arduino IDE и добавьте библиотеку (sketch-import library-add library). Нам понадобятся папки MPU6050 и I2Cdev.
Открываем MPU6050_DMP6 и внимательно просматриваем код. Никаких сложных действий производить не придется, но если был присвоен адрес 0×60, то необходимо расскоментировать строку в верхней части (ее можно найти за #includes) и написать верный адрес. Изначально таv указан 0×68.
Загружаем программу, открываем окно монитора через 115200 и просто следуем инструкции. Через несколько мгновений вы получите данные с гироскопа/акселерометра. Затем следует провести калибровку датчиков.
Установите плату на ровную поверхность и запустите скетч MPU6050_calibration.ino (легко ищется в интернете). Просмотрите код, по умолчанию в нем указан адрес 0×68. После запуска программы у вас появится информация по отклонениям (offset). Запишите ее, она нам понадобится в скетче MPU6050_DMP6.
Все, вы получили функционирующие гироскоп и акселерометр.
Программа для Arduino
Программа поможет вам управлять дроном. Алгоритм, используемый для стабилизации, основан на двух PID-контроллерах. Один предназначен для крена, другой – для тангажа.
Разница в скоростях вращения пары винтов 1 и 2 равна разнице в скоростях пары винтов 3 и 4. Тоже самое справедливо и для пар 1, 3 и 2, 4. PID-регулятор производит изменение разницы в скорости, после чего крен и тангаж становятся равными нулю.
Обратите внимание на цифровые пины Arduino для моторов и не забудьте изменить скетч.
Подключение к контроллеру
Для того, чтобы управлять коптером, нам необходимо получить контроль над моторами, подключив их к Arduino. Контроллер дает на выходе лишь небольшое напряжение и силу тока, поэтому подключение двигателей напрямую лишено смысла. Вместо этого можно поставить несколько транзисторов, позволяющих увеличить напряжение.
Для составления схемы нам необходимы:
- Arduino
- Двигатели
- Транзисторы
Все это собирается на монтажной плате и соединяется коннекторами.
На первом этапе следует подсоединить 4 ШИМ выхода (обозначены ~) к транзистору. Затем подсоедините коннекторы к движкам, подключенным к питанию. В нашем случае мы используем аккумулятор на 5В, но подойдет и аккумулятор на 3-5В.
Транзисторы должны быть заземлены, а земля на плате Arduino должна быть подключена к земле аккумулятора. Двигатели должны вращаться в правильном направлении, то есть работать на подъем коптера, а не на его крен.
Переключив контакт двигателя с напряжения 5В на транзистор, вы увидите, что ротор изменит направление вращения. Единожды совершив настройку, больше возвращаться к изменению направления вращения ротора не придется. Теперь нас интересует скорость.
Запустив и проверив акселерометр, мы устанавливаем нашу схему на ProtoBoard. За ее неимением, можно использовать и обычную монтажную плату, предварительно напаяв на ней рельсы для контроллера.
Перед тем, как припаивать акселерометр к плате, необходимо выполнить его калибровку на горизонтальной поверхности. Это поможет добиться более точной работы сенсора в будущем.
Несколько советов новичкам
Решая заняться созданием квадрокоптера на Arduino, обратите внимание на следующие советы:
- Не усложняйте первую конструкцию, устанавливая экшен-камеру. Вашей задачей остается создание дрона, который сможет взлететь и уверенно держаться в воздухе, а не упасть на землю, сломавшись при первом полете. Если же последнее произойдет, то легко можно разбить экшен-камеру, а это большие расходы.
- Не гонитесь за большими масштабами, так как на первый раз достаточно создать небольшой рабочий Arduino дрон, над конструкцией которого можно будет дальше работать, совершенствуя и усложняя.
- Сократите до минимума количество дополнительных элементов и соединений, так как большое число датчиков и всевозможных контролеров не всегда повышает надежность дрона в полете. Значительно лучше создать базовую конструкцию и постепенно ее усложнять, добавляя новые функции и возможности. Это будет значительно разумней и позволит в будущем проектировать «специализированные» дроны.
- Если вы хотите изготовить квадрокоптер Arduino с камерой, то вам потребуется основание достаточно больших размеров, что снижает устойчивость всей конструкции.
В завершение обратим внимание, что программирование и создание квадрокоптера на базе Arduino – увлекательное, но достаточно сложное дело для новичков, поэтому не опускайте руки, если у вас не получается. Сделать на Arduino дрон вполне реально каждому и поможет в этом масса дополнительной информации и видео, которое вы легко найдете в интернете.
3.6 / 5 ( 7 голосов )
Как еще можно модернизировать квадрик
Узким местом коптера являются его коллекторные движки. Если поискать, можно найти чуть более крупные и более мощные моторы, чем предложены в нашей статье, но значительного выигрыша в характеристиках не произойдет.
Впрочем, у нас была цель собрать недорогой квадрокоптер своими руками, и именно поэтому использовались дешевые моторы. Бесколлекторные двигатели заметно дороже, но зато они дадут вам заметно большую мощность и надежность. К ним придется докупить еще и контроллеры скорости, но это действительно эффективная модернизация.
Выбор платы Arduino Uno обусловлен тем, что с нее можно довольно легко снять чип и поставить его на ProtoBoard. Это позволяет уменьшить вес дрона на 30 грамм, но придется включить в схему дополнительные конденсаторы. Подойдет и плата Arduino Pro Mini.
Что касается программы Arduino, то ее можно сравнительно легко изменить и дополнить новыми функциями. Главное, что с ее помощью дрон способен в автоматическом режиме стабилизовать свое положение.
Несмотря на то что квадрокоптеры крайне модная тема, выбирать компоненты для сборки своего аппарата по-прежнему не так просто. Выбор деталей для конкретного проекта — это мучительный поиск оптимального сочетания веса, мощности и функ-циональности. Поэтому прежде, чем окунуться в мир бесчисленных интернет-магазинов и безымянных китайских производителей, давай проделаем подготовительную работу.
Сокет для микроконтроллера
Для того, чтобы передавать данные по GPS или использовать ультразвуковой датчик расстояния с Arduino Nano, UNO или Pro Mini, нам понадобится дополнительный микроконтроллер. Он будет обрабатывать данные с GPS или сонар модулей и передавать их на плату контроллера полета через I2C.
Очень удобная фича — встроенный сокет для легкого подключения по I2C для периферийных устройств.
2 дополнительных контакта для моторов (для гексакоптера) показаны на риунке ниже.
Что такое квадрокоптер и для чего это надо
Мультироторы, они же мультикоптеры или просто коптеры, — это беспилотные летательные аппараты, предназначенные для развлечения, съемки фото и видео с воздуха или отработки автоматизированных систем.
Коптеры обычно различают по числу используемых моторов — начиная от бикоптера с двумя моторами (как GunShip из фильма «Аватар») и заканчивая октакоптером с восемью. На самом деле число моторов ограничено только твоей фантазией, бюджетом и возможностями полетного контроллера. Классическим вариантом является квадрокоптер с четырьмя моторами, расположенными на перекрещивающихся лучах. Такую конфигурацию еще в 1920 году попытался соорудить француз Этьен Омишен (Étienne Oehmichen), и в 1922 году у него это даже получилось. По сути, это самый простой и дешевый вариант сделать летательный аппарат, способный без особых проблем поднимать в воздух небольшие камеры вроде GoPro. Но если ты собираешься взлетать с серьезной фото- и видеотехникой, то стоит выбирать коптер с большим числом моторов — это не только увеличит грузоподъемность, но и добавит надежности, если в полете выйдет из строя один или несколько моторов.
Ryze technology: новый игрок на рынке
Tello – это совместное произведение DJI и Intel с молодым стартапом Ryze Technology из того же Китая. Основана компания была в 2022 году. Пока что предприятие нацелено на изготовление дронов, оснащённых камерой, а также с арсеналом всевозможных «умных» функций и возможности обучения. Компания ставит целью повысить интерес молодёжи к современной технике.
В разработке дрона Tello молодому стартапу помогли именитые «гиганты»: от DJI был взят контроллер полёта, а от Intel – установлен мощный процессор. Вся эта мощь умещается в небольшом корпусе, который можно брать с собой куда угодно. Tello умеет «учиться»: владелец получит возможность программировать дрон, причём по заверениям разработчиков это будет настолько легко, что с программированием справятся не только подростки, но даже дети!
Нельзя сказать, что Tello – это продукт от DJI, хотя дрон и похож визуально на Spark. Всё-таки DJI и Intel – скорее партнёры, участвовавшие в разработке квадрокоптера. Кроме того, DJI будут предлагать Tello для покупки в своём онлайн-магазине.
Теория полета
В теории полета (аэродинамике) принято выделять три угла (или три оси вращения), которые задают ориентацию и направление вектора движения летательного аппарата. Проще говоря, летательный аппарат куда-то «смотрит» и куда-то двигается. Причем двигаться он может не туда, куда «смотрит». Даже самолеты в полете имеют какую-то составляющую «сноса», которая уводит их от курсового направления. А вертолеты вообще могут летать боком.
Три эти угла принято называть крен, тангаж и рыскание. Крен — это поворот аппарата вокруг его продольной оси (оси, которая проходит от носа до хвоста). Тангаж — это поворот вокруг его поперечной оси (клюет носом, задирает хвост). Рыскание — поворот вокруг вертикальной оси, больше всего похожий на поворот в «наземном» понимании.
Основные маневры (слева направо): движение по прямой, крен/тангаж и рыскание
В классической схеме вертолета основной винт при помощи автомата перекоса лопастей управляет креном и тангажем. Так как основной винт обладает ненулевым сопротивлением воздуха, у вертолета возникает вращающий момент, направленный в сторону, противоположную вращению винта, и, чтобы его скомпенсировать, у вертолета есть хвостовой винт. Изменяя производительность хвостового винта (оборотами или шагом), классический вертолет управляет своим рысканием. В нашем же случае все сложнее. У нас есть четыре винта, два из них вращаются по часовой стрелке, два — против часовой. В большинстве конфигураций используются винты с неизменяемым шагом и управлять можно только их оборотами. Если они все будут вращаться с одинаковой скоростью, то они скомпенсируют друг друга: рыскание, крен и тангаж будут нулевыми.
Если мы увеличим обороты одного винта, вращающегося по часовой стрелке, и уменьшим обороты другого винта, вращающегося по часовой стрелке, то мы сохраним общий момент вращения и рыскание по-прежнему будет нулевым, но крен или тангаж (в зависимости от того, где мы сделаем ему «нос») изменятся. А если мы увеличим обороты на обоих винтах, вращающихся по часовой стрелке, а на винтах, вращающихся против часовой стрелки, уменьшим (чтобы сохранить общую подъемную силу), то возникнет вращающий момент, который изменит угол рыскания. Понятное дело, что все это будем делать не мы сами, а бортовой компьютер, который будет принимать сигнал с ручек управления, добавлять поправки с акселерометра и гироскопа и крутить винтами, как ему надо. Для того чтобы спроектировать коптер, необходимо найти баланс между весом, временем полета, мощностью двигателей и другими характеристиками. Все это зависит от конкретных задач. Все хотят, чтобы коптер летал выше, быстрее и дольше, но в среднем время полета составляет от 10 до 20 минут в зависимости от емкости аккумулятора и общего полетного веса. Стоит запомнить, что все характеристики связаны между собой и, к примеру, увеличение емкости аккумулятора приведет к увеличению веса и, как следствие, к уменьшению времени полета. Чтобы узнать, сколько примерно твоя конструкция будет висеть в воздухе и сможет ли вообще оторваться от земли, существует хороший онлайн-калькулятор ecalc.ch . Но прежде чем вбивать в него данные, нужно сформулировать требования к будущему аппарату. Будешь ли ты устанавливать на аппарат камеру или другую технику? Насколько быстрым должен быть аппарат? Как далеко тебе нужно летать? Давай посмотрим на характеристики различных компонентов.
PX4 — бортовой компьютер с полноценной UNIX-системой
Программное обеспечение
ПИД-регулятор (назначение и настройка)
Proportional Integral Derivate (PID) или Пропорционально-интегрально-дифференцирующий регулятор (ПИД) — часть программного обеспечения полётного контроллера, которое считывает данные с сенсоров и вычисляет, как быстро должны вращаться моторы, чтобы сохранить желаемую скорость перемещения БЛА.
Разработчики готовых к полёту БЛА как правило оптимально настраивают параметры ПИД-регулятора, поэтому большинство RTF беспилотников отлично пилотируются прямо из коробки. Чего не скажешь про кастомные сборки БЛА, где актуально использование универсального полётного контроллера подходящего для любой мультироторной сборки, с возможностью регулировки значений PID до тех пор, пока они не будут соответствовать требуемым характеристикам полёта конечного пользователя.
GUI
Graphical User Interface (GUI) или Графический интерфейс пользователя — это то, что используется для визуального редактирования кода (при помощи компьютера), который будет загружен в полётный контроллер. Программное обеспечение, поставляемое с контроллерами полёта, продолжает становиться все лучше и лучше; первые контроллеры полёта использовали в основном текстовые интерфейсы, которые требовали, чтобы пользователи понимали почти весь код и меняли определенные разделы в соответствии с проектом. В последнее время в GUI применяются интерактивные графические интерфейсы, с целью облегчить пользователю настройку необходимых параметров.
Дополнительные возможности
Программное обеспечение, используемое на некоторых контроллерах полёта, может иметь дополнительные функции, которые недоступны для других. Выбор конкретного контроллера полёта может в конечном итоге зависеть от того, какие дополнительные функции/функциональные возможности предлагаются разработчиком. В список таких функций могут входить:
- Автономная навигация по путевым точкам — позволяет пользователю устанавливать путевые GPS точки, по которым беспилотник будет следовать автономно.
- Oribiting — перемещение беспилотника вокруг заданной GPS-координаты, где передняя часть дрона всегда направлена в сторону заданной координаты (актуально для съёмки).
- Follow me — многие БЛА имеют функцию «Follow Me/Следуй за мной», которая может быть основана на спутниковом позиционировании (например, отслеживание GPS-координат смартфона, либо встроенного в аппаратуру управления модуля GPS).
- 3D-изображение — большая часть 3D-изображений выполняется после полёта при помощи изображений и GPS данных полученных во время полёта.
- Открытый код — программное обеспечение некоторых полётных контроллеров, не может быть изменено/настроено. Продукты с открытым исходным кодом, как правило, позволяют опытным пользователям изменять код в соответствии с их конкретными потребностями.
Рама
Основной момент, который нужно решить при выборе рамы, — будешь ли ты использовать готовую раму или же делать ее сам. С готовой рамой все проще, да и заказывать в любом случае придется множество деталей. При этом, учитывая цены в китайских магазинах, самодельный вариант может оказаться дороже. С другой стороны, собственную раму в случае аварии будет проще починить. Ну и, естественно, своими руками можно сделать любую, даже самую сумасшедшую конструкцию. Рассмотрим поподробнее самосборный вариант.
Сделать раму можно из любых подручных материалов (дерево, алюминий, пластик и так далее). Можно подойти чуть серьезнее и выпилить ее на ЧПУ-станке из плетеного карбона, причем можно усложнить задачу и сделать складную конструкцию.
Самый простой вариант для любителей DIY — пойти в OBI, «Леруа Мерлен» или на строительный рынок и купить квадратную алюминиевую трубу 12 × 12, а также алюминиевый лист толщиной в 1,5 мм. Для того чтобы сделать раму из таких материалов типа «четыре палки и крепеж», достаточно дрели или ножовки по металлу. Но нужно быть готовым к тому, что такая конструкция прослужит недолго. Все-таки все эти профили делают из очень мягкого материала (АД31/АД33), при полетах он будет легко гнуться.
Oehmichen № 2, пилотируемый квадрокоптер французского инженере Этьена Омишена, запущенный в 1922 году
В качестве образца для твоей рамы можно взять упрощенную заводскую раму или же найти в интернете готовый чертеж. Более сложные материалы (например, углепластик) можно заменить на алюминий — если и получится тяжелее, то ненамного. В любом случае стоит обращать внимание на длину и симметричность лучей. Длина лучей выбирается исходя из диаметра используемых пропеллеров, так, чтобы после их установки расстояние между окружностями вращающихся винтов было не менее 1–2 см, и уж тем более эти окружности не должны пересекаться. Моторы, устанавливаемые на лучах, должны быть равноудалены от центра рамы, где будет располагаться «мозг», и (в большинстве случаев) находиться на одном расстоянии друг от друга, образуя равносторонний многоугольник.
При проектировании стоит учесть, что центр рамы должен совпадать с центром тяжести, поэтому установить аккумулятор сзади между лучами — плохая идея, если он не будет скомпенсирован грузом спереди, например камерой. Продумай, на что будет приземляться твой аппарат, для новичков можно посоветовать приспособить что-то мягкое на «пузе» или концах лучей, например плотный поролон или теннисные мячики. А также защити аккумулятор на случай неудачного приземления, например установи его между пластинами рамы или расположи под высокими посадочными лыжами.
Моторы и пропеллеры
Из-за вращения моторов в разные стороны приходится использовать разнонаправленные пропеллеры: прямого вращения (против часовой) и обратного вращения (по часовой). Обычно используются двухлопастные пропеллеры, их легче балансировать и найти магазинах, в то время как трехлопастные дадут больше тяги при меньшем диаметре винта, но доставят много головной боли при балансировке. Плохой (дешевый и неотбалансированный) пропеллер может развалиться в полете или вызвать сильные вибрации, которые передадутся на датчики полетного контроллера. Это приведет к серьезным проблемам со стабилизацией и вызовет сильное смазывание и «желе» на видео, если ты снимаешь что-то с коптера или летаешь с видом от первого лица.
Регулятор скорости, он же ESC
У любого пропеллера есть два основных параметра: диаметр и шаг. Их обозначают по-разному: 10 × 4.5, 10 × 45 или просто 1045. Это означает, что диаметр пропеллера 10 дюймов, а его шаг 4,5 дюйма. Чем длиннее пропеллер и больше шаг, тем большую тягу он сможет создавать, но при этом повысится нагрузка на мотор и увеличится потребление тока, в результате он может сильно перегреться и электроника выйдет из строя. Поэтому винты подбираются под мотор. Ну или мотор под винты, тут как посмотреть. Обычно на сайтах продавцов моторов можно встретить информацию о рекомендуемых пропеллерах и аккумуляторах для выбранного мотора, а также тесты создаваемой тяги и эффективности. Существуют и пропеллеры с изменяемым шагом, что в теории повысит маневренность, но в реальности добавит сложную механику, имеющую свойство изнашиваться и ломаться с последующим дорогостоящим ремонтом.
Также чем больше винт, тем больше его инерция. Если нужна маневренность, лучше выбрать винты с большим шагом или трехлопастные. Они при том же размере создают тягу в 1,2–1,5 раза больше. Понятно, что винты и скорость их вращения нужно подбирать так, чтобы они смогли создать тягу большую, чем вес аппарата.
И наконец, бесколлекторные моторы. У моторов есть ключевой параметр — kV. Это количество оборотов в минуту, которые сделает мотор, на поданный вольт напряжения. Это не мощность мотора, это его, скажем так, «передаточное число». Чем меньше kV, тем меньше оборотов, но выше крутящий момент. Чем больше kV при той же мощности, тем больше оборотов и ниже момент. При выборе мотора ориентируются на то, что в штатном режиме он будет работать при мощности 50% от максимальной. Не стоит думать, что чем kV больше — тем лучше, для коптеров с типичной 3S-батареей рекомендуемое число находится в диапазоне от 700 до 1000 kV.
Digitrode
Управлять квадрокоптером – это веселое и интересное занятие. Интереснее может быть только создание своей системы управления такой игрушкой на базе какой-нибудь популярной платформы, например, Arduino. Чем и занялся энтузиаст под ником Dzl. Первым делом он разобрал пульт дистанционного управления для того, чтобы посмотреть, какая радиосистема в нем используется.
Внутри, как и ожидалось, была пара дешевых печатных плат с небольшим количеством компонентов на них.
Радиосвязь обеспечивалась небольшим дискретным радиомодулем. После дополнительного анализа и поиска в интерненте выяснилось, что модуль основан на микросхеме передатчика BK2421, работающего в диапазоне 2.4 ГГц. Сегодня, в принципе, большинство дешевых игрушек с радиоуправлением основаны на этом модуле.
Благодаря осциллографу и документации на микросхему было довольно просто найти выводы, по которым осуществлялась связь по интерфейсу SPI между модулем и остальной частью пульта.
Благодаря «прослушке» с помощью Arduino UNO стал понятен порядок инициализации и режим связи. имеется порядок инициализации.
Не вдаваясь в подробности низкоуровневой коммуникации, при включении пульта и квадрокоптера происходит следующее:
1. Пульт передает свой уникальный сетевой адрес или ID
2. Квадрокоптер принимает эту передачу, подтверждает ее и начинает прослушивать канал с данными от этого ID
3. После подтверждения пульт начинает передавать пакеты данных каждые 20 мс
Можно управлять одновременно несколькими квадрокоптерами, назначив им разные адреса. Передача ID проходит по одному фиксированному каналу, и данные передаются по одному из 12 случайных каналов. Квадрокоптеры автоматически сканируют радиоканалы, пока не найдут данные.
Данные передаются в пакете, состоящем из 8 байт, в следующем формате:
Байт 0 = throttle (газ) 0-255 Байт 1 =Yaw (рыскание) 0-255 Байт 2 =Yaw_trim (подстройка Yaw) 0-128 Байт 3 = Pitch (тангаж) 0-255 Байт 4 = Roll (крен) 0-255 Байт 5 = Pitch_trim (подстройка Pitch) 0-128 Байт 6 = Roll_trim (подстройка Roll) 0-128 Байт 7 = Fly/run 0=fly, 16=run
Затем была создана базовая станция, которая должна связываться квадрокоптерами. В качестве модулей использовались RFM-70, содержащие ту же микросхему BK2421. Следует отметить, что выводы BK2421 толерантны к 5 В, поэтому дополнительные резисторы для 3.3 В можно не ставить.
Для подключения одного и более квадрокоптеров к Arduino была написана специальная библиотека. Эта библиотека должна работать с любыми платами Arduino на базе чипов ATMEGA88 — ATMEGA328P. И в конце видео работы:
Питание и контроллеры питания
Капитан подсказывает: чем больше мощность мотора, тем больше батарейка ему нужна. Большая батарейка — это не только емкость (читай, время полета), но и максимальный ток, которая она отдает. Но чем больше батарейка, тем больше и ее вес, что вынуждает скорректировать наши прикидки относительно винтов и моторов. На сегодняшний день все используют литий-полимерные батарейки (LiPo). Они легкие, емкие, с высоким током разрядки. Единственный минус — при отрицательных температурах работают плохо, но если их держать в кармане и подключать непосредственно перед полетом, то во время разряда они сами слегка разогреваются и не успевают замерзнуть. LiPo-элементы вырабатывают напряжение 3,7 В.
При выборе батареи стоит обращать внимание на три ее параметра: емкость, измеряемую в миллиампер-часах, максимальный ток разряда в емкостях аккумулятора (С) и число ячеек (S). Первые два параметра связаны между собой, и при их перемножении ты узнаешь, сколько тока сможет отдавать этот аккумулятор продолжительное время. Например, твои моторы потребляют 10 А каждый и их четыре штуки, а батарея имеет параметры 2200 мА · ч 30/40C, таким образом, коптеру требуется 4 10 A = 40 A, а батарея может выдавать 2,2 A 30 = 66 A или 2,2 А 40 = 88 А в течение 5–10 секунд, что явно будет достаточно для питания аппарата. Также эти коэффициенты напрямую влияют на вес аккумулятора. Внимание! Если тока будет не хватать, то в лучшем случае батарея надуется и выйдет из строя, а в худшем загорится или взорвется; это же может произойти при коротком замыкании, повреждении или неправильных условиях хранения и зарядки, поэтому используй специализированные зарядные устройства, аккумуляторы храни в специальных негорючих пакетах и летай с «пищалкой», которая предупредит о разрядке. Число ячеек (S) указывает на количество LiPo-элементов в батарее, каждый элемент выдает 3,7 В, и, например, 3S-аккумулятор будет отдавать примерно 11,1 В. Стоит обращать внимание на этот параметр, так как от него зависят скорость оборотов моторов и тип используемых регуляторов.
Элементы батареи объединяют последовательно или параллельно. При последовательном включении увеличивается напряжение, при параллельном — емкость. Схему подключения элементов в батарее можно понять по ее маркировке. Например, 3S1P (или просто 3S) — это три последовательно подключенных элемента. Напряжение такой батареи будет 11,1 В. 4S2P — это восемь элементов, две группы, подключенных параллельно по четыре последовательных элемента.
Однако моторы подключаются к батарее не напрямую, а через так называемые регуляторы скорости. Регуляторы скорости (они же «регули» или ESC) управляют скоростью вращения моторов, заставляя твой коптер балансировать на месте или лететь в нужном направлении. Большинство регуляторов имеют встроенный стабилизатор тока на 5 В, от которого можно питать электронику (в частности, «мозг»), можно использовать отдельный стабилизатор тока (UBEC). Выбираются контроллеры скорости исходя из потребления мотором тока, а также возможности перепрошивки. Обычные регули довольно медлительны в плане отклика на поступающий сигнал и имеют множество лишних настроек для коптеростроительства, поэтому их перепрошивают кастомными прошивками SimonK или BLHeli. Китайцы и тут подсуетились, и часто можно встретить регуляторы скорости с уже обновленной прошивкой. Не забывай, что такие регули не следят за состоянием аккумулятора и могут разрядить его ниже 3,0 В на банку, что приведет к его порче. Но в то же время на обычных ESC стоит переключить тип используемого аккумулятора с LiPo на NiMH или отключить уменьшение оборотов при разрядке источника питания (согласно инструкции), чтобы под конец полета внезапно не отключился мотор и твой беспилотник не упал.
Моторы подключаются к регулятору скорости тремя проводами, последовательность не имеет значения, но если поменять любые два из трех проводов местами, то мотор будет вращаться в обратном направлении, что очень важно для коптеров.
Два силовых провода, идущих от регулятора, надо подключить к батарейке. НЕ ПЕРЕПУТАЙ ПОЛЯРНОСТЬ! Вообще, для удобства регуляторы подключают не к самой батарейке, а к так называемому Power Distribution Module — модулю распределения энергии. Это, в общем-то, просто плата, на которой припаяны силовые провода регуляторов, распаяны разветвления для них и припаян силовой кабель, идущий к батарее. Конечно, батарею не надо припаивать, а надо соединить через разъем. Ты же не хочешь перепаивать батарею каждый раз, как она сядет.
Бортовой компьютер и сенсоры
Выбор полетных контроллеров для коптеров очень велик — начиная от простого и дешевого KapteinKUK и нескольких open source проектов под Arduino-совместимые контроллеры до дорогого коммерческого DJI Wookong. Если ты настоящий хакер, то закрытые контроллеры тебя не должны сильно интересовать, в то время как открытые проекты, да еще и основанные на популярной ардуинке, привлекут многих программистов. О возможностях любого полетного контроллера можно судить по используемым в нем датчикам:
Гироскоп позволяет удерживать коптер под определенным углом и стоит во всех контроллерах; акселерометр помогает определить положение коптера относительно земли и выравнивает его параллельно горизонту (комфортный полет); барометр дает возможность удерживать аппарат на определенной высоте. На показания этого датчика очень сильно влияют потоки воздуха от пропеллеров, поэтому стоит прятать его под кусок поролона или губки; компас и GPS вместе добавляют такие функции, как удержание курса, удержание позиции, возврат на точку старта и выполнение маршрутных заданий (автономный полет). К установке компаса стоит подойти внимательно, так как на его показания сильно влияют расположенные рядом металлические объекты или силовые провода, из-за чего «мозги» не смогут определить верное направление движения; сонар или УЗ-дальномер используется для более точного удержания высоты и автономной посадки; оптический сенсор от мышки используется для удержания позиции на малых высотах; датчики тока определяют оставшийся заряд аккумулятора и могут активировать функции возврата на точку старта или приземление.
Сейчас существует три основных открытых проекта: MultiWii, ArduCopter и его портированная версия MegaPirateNG. MultiWii самый простой из них, для запуска требует Arduino с процессором 328p, 32u4 или 1280/2560 и хотя бы одним датчиком-гироскопом. ArduCopter — проект, напичканный всевозможным функционалом от простого висения до выполнения сложных маршрутных заданий, но требует особого железа, основанного на двух чипах ATmega. MegaPirateNG — это клон ArduCopter, который способен запускаться на обычной ардуине с чипом 2560 и минимальным набором датчиков из гироскопа, акселерометра, барометра и компаса. Поддерживает все те же возможности, что и оригинал, но всегда догоняет в развитии.
Продвинутый девяти- канальный пульт
С железом для открытых проектов аналогичная ситуация, как и с рамами для коптера, то есть ты можешь купить готовый контроллер или собрать его самостоятельно с нуля или на основе Arduino. Перед покупкой стоит всегда обращать внимание на используемые в плате датчики, так как развитие технологий не стоит на месте, а старье китайцам как-то надо распродать, к тому же не все сенсоры могут поддерживаться открытыми прошивками.
Наконец, стоит упомянуть еще один компьютер — PX4, отличающийся от клонов Arduino тем, что у него есть UNIX-подобная операционная система реального времени, с шеллом, процессами и всеми делами. Но надо предупредить, что PX4 — платформа новая и довольно сырая. Сразу после сборки не полетит.
Настройка полетных параметров, как и программы настройки, очень индивидуальна для каждого проекта, а теория по ней могла бы занять еще одну статью, поэтому вкратце: почти все прошивки для мультикоптеров основаны на PID-регуляторе, и основной параметр, требующий вмешательства, — пропорциональная составляющая, обозначаемая как P или rateP. Если при взлете твой коптер дергается из стороны в сторону, то это значение надо уменьшать, если же вяло реагирует на внешние воздействия, то наоборот — повышать, остальные нюансы ты сможешь найти в инструкциях и на сайтах разработчиков.
Самодельный летающий дрон с камерой, который следует за вами на автопилоте (на основе Arduino)
Шаг 1: Основные свойства
Дрон работает почти полностью автоматически, вам не нужно управлять им, потому что он следует за вашим телефоном, который обычно находится всегда с вами, ультразвуковой датчик помогает обходить деревья, здания и другие препятствия, а GPS выдает очень точные данные о местоположении, но давайте посмотрим, что мы имеем в итоге:
— Аккумулятор 1000 мАч, хватает на 16-18 минут непрерывного полета; — ультразвуковой датчик, чтобы избежать препятствий в воздухе; — Модуль Bluetooth для получения данных с телефона; — Микроконтроллер на основе Arduino; — встроенный гироскоп; — регулируемая максимальная высота (5 м); — при низком заряде батареи, дрон автоматически падает на телефон; (желательно держать телефон в руках) — затраты на постройку дрона около 100 долларов; — можно запрограммировать на что угодно; — с помощью GPS можно отправить беспилотник по любым координатам; — дизайн в стиле квадрокоптера; — оборудован 2-мегапиксельной видеокамерой 720p HQ; — весит 109 г;
— Паяльник; — Клей-пистолет; — резец; — Кусачки; — Супер клей; — Двухсторонняя клейкая лента; — Резинки;
— MultiWii 32kB Flight Conroller; — Модуль последовательного GPS; — Серийный I2C конвертер; — Модуль Bluetooth; — Ультразвуковой датчик; — Кусок жесткой пластмассы; — Соломинки из кафе; — зубчатая передача; — Двигатели; — Пропеллеры; — Винты; — L293D Motor Driver (это был неудачный выбор драйвера, будет исправлено во второй версии); — 1000 мАч литий-ионный аккумулятор;
Шаг 3: Сборка пропеллеров
Мастер купил эти пропеллеры с моторами на Алиэкспресс, они являются запасными частями для дрона Syma S5X, но они оказались полезными и для данной самоделки.
Шаг 4: Принципиальная схема
Всегда смотрите на схему во время работы и будьте осторожны со связями. Шаг 5: Пайка двигателей к драйверу управления
Теперь вам нужно спаять все кабели от двигателей до ИС драйвера двигателя L293D. Посмотрите на картинки, они говорят гораздо больше. Вы должны подключить черный и синий провода к заземлению и положительные провода к выходам 1-4. L293D может управлять этими двигателями, но мастер рекомендует использовать силовые транзисторы, потому что этот чип не может работать со всеми четырьмя двигателями при высокой мощности (более 2 А).
Безопасность
Все новички, думая о безопасности, вспоминают AR.Drone и его защиту винтов. Это хороший вариант, и он работает, но только на мелких и легких аппаратах, а когда вес твоего коптера начинает приближаться к двум килограммам или давно перевалил за эту цифру, то спасти может только прочная железная конструкция, которая будет весить очень много и, как ты понимаешь, сильно уменьшит грузоподъемность и автономность полета. Поэтому лучше сперва тренироваться подальше от людей и имущества, которое можно повредить, а уже по мере улучшения навыков защита станет и не нужна. Но даже если ты пилот со стажем, то не забывай о технике безопасности и продумывай возможные негативные последствия твоего полета при нештатных ситуациях, особенно при полетах в людных местах. Не стоит забывать, что сбой контроллера или канала связи может привести к тому, что аппарат улетит от тебя далеко, и тогда для поиска может пригодиться GPS-трекер, установленный заранее на коптер, или же простая, но очень громкая пищалка, по звуку которой ты сможешь определить его местоположение. Настрой и заранее проверь функцию fail safe твоего полетного контроллера, которая поможет приземлиться или вернуть коптер на точку старта при потере сигнала с пульта.
Фишки новой модели
Квадрокоптер Tello относится скорее к дронам для развлечения (фандронам), чем к категории дронов с камерой. Этот малыш умеет совершать забавные трюки и сальто в воздухе, что доставит массу удовольствия пилотам младшего возраста. Tello можно без опаски запускать с ладони и сажать на неё в автоматическом режиме. Причём запуск можно произвести лёгким подбросом квадрокоптера в воздух.
Tello имеет целый ряд предустановленных функций для фото- и видеосъёмки (например, Circle Mode, 360 Grad, Up-and-Away). Стабилизация изображения производится цифровым образом, не механически. За это отвечает встроенный 14-ядерный процессор от Intel. Квадрокоптер снимает 5 Мп фото. Кроме того, Tello совместим с VR-очками. И при этом его вес – всего 80 гр.!
Кроме всего прочего у новинки есть ряд полезных функций для безопасности полёта. Одним движением пальца в приложении дрон может автоматически взлететь или совершить посадку. С помощью визуальных и звуковых сигналов Tello предупреждает о близком разряде аккумулятора.