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

Советы и вопросы
Квадрокоптер на ардуино своими руками - Рама Шаг №4. Установка программы для Arduino и подключение Шаг 1: Материалы Info Питание и контроллеры питания

Рама может быть изготовлена из любого доступного материала (дерево, алюминий, пластик и т.д.). Можно подойти к делу более серьезно и выпилить его из углепластиковой сетки на станке с ЧПУ, а можно усложнить и сделать его складным.

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

Мультикоптеры, также называемые мультикоптерами или просто коптерами, — это беспилотные летательные аппараты, предназначенные для развлечений, аэрофото- и видеосъемки или для обучения работе с автоматизированными системами.

Вертолеты обычно классифицируются по количеству используемых двигателей: от двухдвигательного вертолета с двумя двигателями (как GunShip из фильма «Аватар») до восьмидвигательного вертолета с восемью двигателями. В действительности количество двигателей ограничено только вашей фантазией, бюджетом и возможностями управления полетом. Классический вариант представляет собой квадрокоптер с четырьмя двигателями, установленными на поперечных балках.

Такую конфигурацию пытался создать француз Этьен Оэмихен (Étienne Oehmichen) еще в 1920 году, и ему даже удалось построить ее в 1922 году. По сути, это самый простой и дешевый способ создания летающего аппарата, который может без особых проблем поднимать в воздух небольшие камеры типа GoPro. Однако если вы хотите взлететь с обширным фото- и видеооборудованием, стоит выбрать вертолет с большим количеством двигателей — это не только увеличит полезную нагрузку, но и надежность на случай отказа одного или нескольких двигателей во время полета.

Теория полета

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

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

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

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

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

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

Эти три угла принято называть углами крена, тангажа и рысканья. Крен — это вращение самолета вокруг его продольной оси (оси, проходящей от носа к хвосту). Танг — это вращение вокруг поперечной оси (щипок носа, подергивание хвоста). Танга — это вращение вокруг своей вертикальной оси, которая больше похожа на ось вращения в «земном» смысле.

schema

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

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

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

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

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

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

  • комплект проводов (лучше разноцветных для упрощения монтажа);
  • литиевые аккумуляторы (напряжение 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 схема

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

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

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

I2C scanner code для Arduino

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

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

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

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

Arduino дрон

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

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

Пошаговая инструкция по сборке

Как напечатать раму и крепеж

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, а точнее код сканера I2C.

Скопируйте и вставьте программный код в пустой эскиз, а затем запустите его. Убедитесь, что соединение установлено на 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) и написать правильный адрес. Первоначально он имеет размер 0×68.

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

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

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

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

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

Квадрокоптер может быть оснащен дополнительными модулями, такими как плата приемника, для обеспечения дистанционного управления дроном.

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

Шаг 3: Делаем раму

Для изготовления рамы я использую старую алюминиевую антенну, древесину хвойных пород и алюминиевую пластину (лопасти вентилятора). Отрежьте от алюминиевых прутьев 4 куска длиной 20 см каждый. Размер средней пластины около 11*18см…. Деревянный рычаг мотора имеет длину около 10 см и диаметр 4,5 см (в месте крепления мотора).

Прикрепите алюминиевые стержни к центральной пластине с помощью винтов и поместите крепление двигателя под алюминиевые стержни. Ваша рама готова (см. видео).

Шаг 4: Устанавливаем все компоненты (ESC и моторы на раму)

Теперь прикрепите двигатели к деревянному кронштейну с помощью винтов и гаек (любых) и подключите к нему кабель ESC (произвольно), зафиксируйте ESC лентой или стяжками, в моем случае это лента (дешевле, чем стяжки). Когда все двигатели и ESC подключены, перережьте +ve и-ve провода ESC и соедините все провода ESC кабелями или PDB. Я использую кабели, потому что в моем шасси нет места для регулятора. Все готово.

Шаг 5: Контроллер полёта

Создайте полетный контроллер на основе Arduino Uno и MPU6050.

Мой контроллер основан на YMFC-AL от Joop Brokking и его квадрокоптере с автоматическим уровнем. Подключите все в соответствии с электрической схемой.

Подключение к Arduino

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

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

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

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

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

Подключение к Arduino 1Подключение к Arduino 2Подключение к Arduino 3Подключение к Arduino 4Подключение к Arduino 5Подключение к Arduino 6Подключение к Arduino 7Подключение к Arduino 8

Программа для Arduino

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

Программа для Arduino

Вы можете прочитать о ПИД-регулировании в вики, если вы не знакомы с этими контроллерами. Класс PID для Arduino использует три входа: фиксированное положение, измерение и выход. Выход зависит от текущего положения и измерения. ПИД-регулятор пытается изменить выход так, чтобы измеренное значение соответствовало заданному положению. Алгоритм использует интересные математические процедуры. Алгоритм PID пытается работать таким образом, чтобы значения оставались как можно более постоянными.

Наш алгоритм использует два ПИД-регулятора для стабилизации, один для тангажа и один для крена. Разность скоростей между пропеллерами 1 и 2 равна разности скоростей между пропеллерами 3 и 4. То же самое относится к парам 1,3 и 2,4. Затем ПИД-регулятор изменяет разность скоростей и сбрасывает тангаж и крен на ноль.

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

Дальнейшая модернизация квадрокоптера на Arduino

Квадрокоптер на Arduino 2

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

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

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

Не стесняйтесь оставлять свои комментарии и вопросы ниже и делиться личным опытом. Обсуждения часто приводят к новым идеям и проектам!

Оцените статью