Квадрокоптер на Ардуино своими руками

Содержание

Квадрокоптер – отличный вариант проведения свободного времени. Можно купить Arduino дрон в ближайшем магазине или заказать в Китае, но есть альтернатива в виде сборки его своими руками. Да, это вполне реально сделать даже при отсутствии особых навыков и большой денежной суммы, ведь простейшие модели обойдутся вам в сумму 70-80 долларов США. Подобная сумма вполне подъемна даже для бедного студента, который сможет собрать отличный дрон своими руками.

Немного теории

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

Перемещение дрона на Arduino и любом другом контролере осуществляется за счет изменения трех параметров:

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

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

ARDUINO

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

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

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

Что нам понадобится?

Перед началом работы нужно подготовить следующие комплектующие:

  • комплект проводов (лучше разноцветных для упрощения монтажа);
  • литиевые аккумуляторы (напряжение 3.7В);
  • транзистор ULN2003A Darlington Transistor (подойдут более мощные аналоги);
  • контролер Arduino Uno;
  • плата MPU-6050 (совмещает в себе функции акселерометра и гироскопа).

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

Как собрать программируемый квадрокоптер на Ардуино Уно своими руками?

Шаг №1. Делаем корпус

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

Обратим внимание, что желательно передние лучи или пропеллеры выполнить другим цветом.

Это позволит проще ориентироваться в пространстве и всегда понимать, где передняя часть дрона, чтобы быстрее им управлять в полете.

Квадрокоптер на Ардуино своими руками 3D

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

Шаг №2. Подключение Arduino

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

  • VDD-3.3V;
  • GND-GND;
  • INT-digital2;
  • SCL-A5;
  • SDA-A4;
  • VIO-GND.

Подключение Arduino схема

Для питания платы MPU6050 Arduino допускается использование напряжения 3,3В, а если оно составит 5В, то произойдет выход из строя. На многих платах есть встроенный предохранитель, защищающий систему от повышенного напряжения, но рисковать мы не советуем. Также на плате может быть контакт AD0, который требуется подключать к земле. Для управления двигателями Arduino может понадобиться подача большего напряжения, которое можно повысить транзисторами.

Шаг №3. Скетч для Arduino

После подключения к Arduino платы MPU-6050 необходимо загрузить скетч I2C scanner code, куда вставляется код программы. Обратим внимание, что на этом этапе пригодятся хоть минимальные познания в программировании на Arduino, поэтому при отсутствии даже них стоит сделать небольшую паузу и разобраться с особенностями.

I2C scanner code для Arduino

Теперь откройте серийный монитор Arduino IDE (он находится в разделе Tools на вкладке Serial Monitors) и убедиться в наличии подключенного 9600. Если все предыдущие этапы были выполнены верно, то будет обнаружено устройство I2C с присвоенным адресом 0х69 или 0х68, который нужно записать. Теперь можно загрузить один из скетчей, который будет постоянно обрабатывать информацию с акселерометра и гироскопа. В интернете подобных скетчей для Arduino достаточно много, поэтому выбирайте любой, но ориентируйтесь на отзывы пользователей. После скачивания подобного скетча проведите его разархивирование. Затем опять перейдите в Arduino IDE и зайдите по адресу sketch-import libraty-add library, куда нужно будет добавить папки с вашими скетчами.

Теперь обязательно откройте файл MPU6050_DMP6. Если у вас был присвоен адрес 0х69, то обязательно нужно расскоментировать строку после #includes, так как по умолчанию присваивается 0х68. На этом этапе уже можно получить первые значения с гироскопа и акселерометра. Для этого загрузите программу и откройте с 115200 окно серийного монитора, следуя дальнейшим инструкциям.

Arduino гироскоп

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

Шаг №4. Установка программы для Arduino и подключение

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

подключение платы

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

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

программы для квадрокоптера на arduino

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

Шаг №5. Модификация дрона

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

дрон на Arduino

Для снижения веса всего дрона лучше применять Arduino Uno из-за возможности снять чип процессора и установить на ProtoBoard. Это будет достаточно для выигрыша порядка 30 граммов веса, что при подобных масштабах весьма неплохо. Дополнительно правда понадобится несколько конденсаторов, а если нет желания возиться с дополнительной электроникой, то можете выбрать сразу Arduino Pro Mini.

На что обратить внимание?

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

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

Arduino дрон

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

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

Несколько советов новичкам

Решая заняться созданием квадрокоптера на Arduino, обратите внимание на следующие советы:

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

В завершение обратим внимание, что программирование и создание квадрокоптера на базе Arduino – увлекательное, но достаточно сложное дело для новичков, поэтому не опускайте руки, если у вас не получается. Сделать на Arduino дрон вполне реально каждому и поможет в этом масса дополнительной информации и видео, которое вы легко найдете в интернете.


Источник: my-quadrocopter.ru