Как собрать квадрокоптер своими руками

XXV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Как собрать квадрокоптер своими руками

Волосюк Д.В. 1
1МАОУ "Гимназия 3 в Академгородке"
Ашихмина Т.Б. 1
1МАОУ "Гимнизия 3 а Академгородке"
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Актуальность работы:

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

Цель работы: Собрать квадрокоптер своими руками

Задачи:

  • Изучить основные принципы конструкции и работы квадрокоптера

  • Освоить процесс подготовки 3D моделей и их печать на 3D принтере

  • Освоить процесс самостоятельной сборки элементов беспилотного летательного аппарата

  • Разработать полетную программу для управления квадрокоптером

Теоретическая часть

Дроны и коптеры

Дроны – это беспилотные аппараты. Дроны бывают: наземные, плавающие, летающие. Нас интересуют летающие. Они разделяются на дроны самолетного и вертолётного вида.

Дроны самолетного вида требуют специального места и пространства для взлета, полета приземления - в помещении с ними не поработаешь.

Дроны вертолетного вида могут взлетать «с места» и записать в воздухе. С ними можно работать в помещении. Вертолёт по-другому называется геликоптер. Отсюда дроны вертолетного типа стали называть коптерами.

Конструкция коптера

Хотя название коптеров происходит от названия вертолёт - коптеры делают по другой схеме чем обычные вертолеты. Это связано с тем, что схема управления вертолетом очень сложна для маленьких устройств: настоящие вертолеты могут управляют своим полетом путем поворота лопастей винта. Так, при помощи таких разворотов можно сделать, чтобы «сзади» подъемная сила была больше, чем «спереди». Тогда вертолет немного «наклонится вперед» и тем самым начнет двигать вперед (куда его «потащит» винт). Сделать такой винт самостоятельно для небольшой модели – очень сложно.

Какая же конструкция у коптеров тогда? У коптеров есть несколько двигателей. На каждом из них находится винт (пропеллер), вращение которого и создает подъемную силу.

Таких двигателей/винтов должно быть четное количество – иначе вся конструкция будет вращаться в ту или иную сторону. Когда винтов четное количество, то половина винтов должна быть «правая» (т.е. которые вращаются слева на право), а вторая половина – «левая». Так они не дают раскрутиться самой модели.

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

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

Схема управления коптером

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

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

Для управления коптером необходимо в нужные моменты времени увеличивать или уменьшать обороты конкретного двигателя. Для управлений оборотами двигателя нужно специальное устройство – контроллер двигателя (для каждого двигателя потребуется свой контроллер).

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

Однако самое важное – это «мозги» коптера, то, что делает обычное электронно-механическое устройство дроном – беспилотным летательным аппаратом. В качестве таких «мозгов» используется в сложных устройствах - компьютер, а в простых - микроконтроллер. Для квадрокоптера достаточно микроконтроллера.

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

Таким образом, отдельные детали для сборки квадрокоптера:

  • 4 двигателя. Их нужно купить или на Озоне, или на Али-экспрессе. Так как в конкретных моделях двигателя еще нужно хорошо разбираться, то выберем модели «на глаз»: размер примерно с ногтя большого пальца, высокая скорость вращения, возможность управлять оборотами двигателя. Ну и подешевле.

  • 4 винта (пропеллера). Их нужно будет напечатать на 3d принтере. Для этого нужен 3d принтер (у меня есть) и схемы пропеллеров. Попытаемся найти готовые схемы винтов в интернете. Если не найдем – придется разбираться как устроены эти винты и рисовать схему самостоятельно.

  • 4 контроллера двигателей. Выбирается после того, когда будут известны модели двигателей – просто ищем какие к этим двигателям нужны контроллеры. Покупаем их также на Озоне, или на Али-экспрессе.

  • Arduino – «конструктор на базе микроконтроллера». Покупаем на Озоне, Али-экспрессе или в ближайшем магазине радиотоваров.

  • Гироскоп – ищем на Озоне или Али-экспрессе любой гироскоп, который можно подключить к Arduino и покупаем его

  • Аккумуляторы. Так как у нас нет цели получить коптер, который будет летать без приземления долгое время, то попробуем использовать обычные пальчиковые аккумулятора или аккумуляторы типа «крона»

  • Корпус дрона. Придумываем схему корпуса и подготавливаем ее 3d схему. Потом печатаем ее на 3d принтере. Корпус дрона должен состоять из простых вещей – палочки, коробочки и т.п. Скорее всего в интернете можно будет найти примерные схемы и адаптировать их под наш коптер.

Теперь осталось только написать программу управления коптером, загрузить ее в Arduino и все готово.

Практическая работа

Изготовление корпуса квадрокоптера

С самого начала я планировал изготовить корпус на 3D принтере. Нужно было найти подходящую 3D модель. При выборе модели я ориентировался на доступные в магазинах двигатели. Я остановился на двигателе 2212.

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

Схемы частей представлены в Приложении 1.

Печать корпуса

У меня дома есть принтер Anycubic Motion 2. Для него есть программа Anycubic Workshop. В эту программу загружается файл части модели, модель располагается на рабочей площадке принтера, строится поддержка модели:

Для печати я использовал смолу серого и белого цветов. Процесс печати занимает от 40 минут до полутора часов.

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

Для укрепления материала, части помещались под ультрафиолетовую лампу на 2 минуты.

Монтаж

Части модели нужно было состыковать дуг с другом и скрепить винтами. К мачтам крепились электродвигатели. Некоторые части ломались, и их пришлось печатать заново.

Сборка электрической схемы

Основным управляющим центром квадрокоптера стал микроконтроллер Arduino Nano. Этот микроконтроллер прост в использовании. К нему подкачаются датчики и двигатели. Датчики – это устройства, которые что-то измеряют, переводят в электрический сигнал и передают на Arduino. Arduino обрабатывает эти сигналы и передает на двигатели команды.

В качестве датчиков используются:

  • 3-х осевой гироскоп GY-521. Это устройство определяет углы наклона квадрокоптера (по всех трем направлениям) и передает углы наклона в виде электрических сигналов на Arduino

  • Bluetooth модуль JDY-31. Это устройство позволяет принимать команды от мобильного телефона (по каналу связи bluetooth). Это позволяет использовать обычный сотовый телефон в качестве пульта управления квадрокоптером

В качестве двигателей использовались двигатели 2212 2700KV. Число 2700 в названии двигателей показывает, что данная модель увеличивает скорость вращения на 2700 оборотов в минуту при увеличении питания двигателей на 1B.

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

Чтобы электрическая схема работала – нужен источник питания. Для двигателей 2212 в качестве источника питания можно использовать 3 аккумуляторная 18650 напряжением 3.7В каждый, что дает в сумме 11.1В. Однако мне подумалось, что трех аккумуляторов будет недостаточно для питания 4 двигателей и самого Arduino. В итоге я использовал два блока по 3 аккумулятора. Один блок подключил к передним двигателям, а второй – к задним и к Arduino. Использовать два источника питания в одной схеме оказалось не сложно – нужно просто было соединить их выводы «земля» друг с другом.

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

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

Управляющая программа

Первая версия управляющей программы могла принимать и обрабатывать команда с пульта управления, в качестве которого использовался обычный мобильный телефон с программой Arduino Bluetooth Terminal:

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

  • Start – запуск двигателей

  • Pause – остановка двигателей

  • Вверх – увеличить скорость вращение двигателей

  • Вниз – уменьшить скоровть вращения двигателей

Исходный код управляющей программы приведен в Приложении 3.

Первый запуск

После сборки рамы квадрокоптера и монтирования электрической схемы на нем – наступил волнительный этап – первых запуск квадрокоптера!

Первый запуск прошел с переменным успехом:

  • двигатели включились как и было запланировано

  • команда Вверх отрабатывала как надо и увеличивала скорость вращения двигателей

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

Однако нельзя сказать, что у меня получилась неудачная модель – нужно просто заменить аккумуляторы на более мощное. И такие аккумуляторы нашлись! Как только их доставят, я и продолжу работу над своим проектом.

 

Список литературы

  1. 3D модель копруса квадрокоптера для двигателей 2212. https://www.thingiverse.com/thing:4561858

  2. 3D модель пропеллера для квадрокоптера.
    https://grabcad.com/library/drone-propeller-9

  3. Подключения bluetooth модуля к Arduino.
    https://kit.alexgyver.ru/tutorials/bluetooth-jdy31/

  4. Подключение модуля гироскопа к Arduino.
    https://kit.alexgyver.ru/tutorials/mpu6050/

  5. Подключение двигателей к Arduino.
    https://microkontroller.ru/arduino-projects/podklyuchenie-elektrodvigatelya-bldc-k-arduino/

Приложения

Приложение 1: 3D модели корпуса квадрокоптера

Низ Верх

Нога Мачта

 

Приложение 2: 3D модель пропеллера

Приложение 3: Управляющая программа

#include <Servo.h>

#include <SoftwareSerial.h>

#define MOTOR_FL_PORT 7

#define MOTOR_FR_PORT 6

#define MOTOR_BL_PORT 5

#define MOTOR_BR_PORT 4

#define BT_RX 9

#define BT_TX 8

SoftwareSerial mySerial(BT_RX, BT_TX);

Servo motorFL;

Servo motorFR;

Servo motorBL;

Servo motorBR;

int mbr=999;

int mbl=999;

int mfr=999;

int mfl=999;

int mstep = 10;

void setup() {

  mySerial.begin(9600);

  motorFL.attach(MOTOR_FL_PORT);

  motorFR.attach(MOTOR_FR_PORT);

  motorBL.attach(MOTOR_BL_PORT);

  motorBR.attach(MOTOR_BR_PORT);  

}

void loop()

{

  if (mySerial.available()) {

      char cmd = mySerial.read();

      executeCommand(cmd);

  }

  motorFL.writeMicroseconds(mfl);

  motorFR.writeMicroseconds(mfr);

  motorBL.writeMicroseconds(mbr);

  motorBR.writeMicroseconds(mbl);

}

void executeCommand(char cmd)

{

  mySerial.write(cmd);

  if(cmd == 'A')

    cmdStart();

  else if(cmd == 'P')

    cmdStop();

  else if(cmd == 'F')

    cmdUp();

  else if(cmd == 'B')

    cmdDown();

}

void cmdUp()

{

  mbr += mstep;

  mbl += mstep;

  mfr += mstep;

  mfl += mstep;

}

void cmdDown()

{

  mbr -= mstep;

  mbl -= mstep;

  mfr -= mstep;

  mfl -= mstep;

}

void cmdStart()

  mbr=1010;

  mbl=1010;

  mfr=1010;

  mfl=1010;

}

void cmdStop()

{

  mbr=999;

  mbl=999;

  mfr=999;

  mfl=999;

}

 

Просмотров работы: 23