Как собрать и настроить квадрокоптер на базе Ардуино (Arduino)?

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

Необходимые детали и узлы

Прежде чем приступить к сборке квадрокоптера своими руками, необходимо обзавестись всеми необходимыми деталями. Мозгом нашей самоделки станет полетный контроллер 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, ее необходимо подключить к контроллеру.

Схема следующая:

  • VDD -3.3v
  • GND — GND
  • INT- digital 2
  • SCL — A5
  • SDA — A4
  • VIO – GND

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

Если на плате присутствует контакт AD0, он подключается к земле (GND).

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

Скетч для Arduino

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

Подсоединив плату MPU-6050 к контроллеру, включите его и перейдите по ссылке.

Нас интересует скетч 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

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

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

Разница в скоростях вращения пары винтов 1 и 2 равна разнице в скоростях пары винтов 3 и 4. Тоже самое справедливо и для пар 1, 3 и 2, 4. PID-регулятор производит изменение разницы в скорости, после чего крен и тангаж становятся равными нулю.

Обратите внимание на цифровые пины Arduino для моторов и не забудьте изменить скетч.

Подключение к контроллеру

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

Для составления схемы нам необходимы:

  • Arduino
  • Двигатели
  • Транзисторы

Все это собирается на монтажной плате и соединяется коннекторами.

На первом этапе следует подсоединить 4 ШИМ выхода (обозначены ~) к транзистору. Затем подсоедините коннекторы к движкам, подключенным к питанию. В нашем случае мы используем аккумулятор на 5В, но подойдет и аккумулятор на 3-5В.

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

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

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

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

Как еще можно модернизировать квадрик

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

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

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

Что касается программы Arduino, то ее можно сравнительно легко изменить и дополнить новыми функциями. Главное, что с ее помощью дрон способен в автоматическом режиме стабилизовать свое положение.

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

На этом мы завершаем статью о создании беспилотника на Arduino. Подписывайтесь на наши обзоры и делитесь полезными материалами в социальных сетях. До новых встреч.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (9 оценок, среднее: 3,67 из 5)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Комментарии: 4
  1. Валерия

    добрый день! подскажите, пожалуйста, более подробные характеристики аккумулятора?(на сколько ампер)
    И на сколько вольт двигатели — 5 или 10?)

  2. Аслан

    Скинте мне пожалуйста скетч для ардуино. Не работает ссылка у вас. aslantemurziev@mail.ru — почта моя

    1. Вячеслав (автор)

      Здравствуйте, возможно данная ссылка уже не активна. Сайт где она была взята — playground.arduino.cc, попробуйте на нем найти нужную вам информацию.

  3. Саша

    Что за прикол? В статье говорится про коллекторные двигатели, а на схеме бесколлекторые с регуляторами скорости, да и все картинки левые из интернета, что не соответствуют написанному. Впиханы какие-то левые видео.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

два × пять =