Как сделать самолет на ардуино

Обновлено: 07.07.2024

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

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

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

Если после увиденного будут возникать вопросы, то можете в группе ВК посмотреть больше информации. Там есть она. Ну, или же спросить там же, если не найдёте нужной. Вот она, группа в ВК

И для простоты покупки компонентов, если соберётесь собирать. приступите к сборке чего-то подобного, ссылки на всё необходимое. Ссылки партнёрские. Если Вас это слегка раздражает, то совсем нет необходимости переходить именно по ним: всё можно найти в поиске.

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

Авиа моделизм. Самолет. air-hobby

Авиамоделизм — не только технический вид конструирования и постройки моделей летательных аппаратов, в том числе и ракет, но и возможность продемонстрировать, навыки управления построенным аппаратом. Показать мастерство пилотирования воздушными судами на спортивных состязаниях по авиамоделизму.

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

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

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

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

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


Всем привет! Это моя первая статья. Хочу рассказать о разработке, сборке и испытании самодельной аппаратуры радиоуправления* из электрических копмонентов с Aliexpress. Давно об этом думал, т.к. её можно будет сделать (программно) намного умнее покупных заводских, да ещё и с 32 каналами!
*в этой статье я представлю авиамодельную (самолёт, планер, коптер и др.) аппаратуру

byte bt( int pin) < //тип данных возвращаемого значения byte
pinMode (pin, INPUT_PULLUP );
boolean bt_state = ! digitalRead (pin);
if (bt_state == 1) return 1;
> else return 0;
>
>

Для простого зажигания зелёного светодиода написал эту функцию:

void ledon() pinMode (3, OUTPUT ); //устанавливаем пин 3 как выход
digitalWrite (3, HIGH ); //зажигаем
delay (150); //ждём
digitalWrite (3, LOW ); //гасим
delay (200); //ждём
>

byte toservo( int potpin, int low, int high, int range) int lowr = (180 - range) / 2;
int highr = 180 - ((180 - range) / 2);
return map ( analogRead (potpin), low, high, lowr, highr);
>

Для регулировки яркости всяческой подсветки и иллюминации написана функция toaw(), которая принимает в параметрах пин потенциометра, с которого надо считывать сигнал. Возвращает значения типа byte в диапазоне 0-255. Далее на приёмнике активируется функция analogWrite(), которая создаёт ШИМ на заданном пине.

byte toaw( int potpin2) return map ( analogRead (potpin2), 0, 1023, 0, 255);
>

Настал черёд приёмника. В его коде ничего примечательного нет, кроме функции биндинга. Если тумблер 4 находится наверху (причём передатчик включен заранее) и включается приёмник, приходит сигнал состояния тумблера 4 и запускается функция биндинга:

boolean motor_flag = 0; //флаг биндинга регуля, по умолчанию опущен

void bind()<
//функция ничего не принимает и ничего не возвращает
servo_0. writeMicroseconds (2300);
delay (3000);
servo_0. writeMicroseconds (800);
delay (5000);
motor_flag = 1; //поднимаем флаг
>

Прошивки лежат в архиве на Гугл Диске.
Распиновка (чё куда подключать) для версии прошивки 1.1 в виде таблицы лежит здесь.

О дальности сигнала есть видео у AlexGyver’a (включайте видео на 13 минут 29 секунд, именно в этом месте начинается "тест"):

Выражаю благодарность в содействии созданию этого устройства:

Родным за терпение,

Александру Майорову (AlexGyver’у) за предоставленные в описаниях к видео скетчи,

Ивану Хмелевскому за то, что выслушивал, когда я ему поведывал о каждом новом этапе создания аппы.

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

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

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

Читайте также: