Оглавление:

Руководство по созданию беспилотного летательного аппарата Arduino: 9 шагов
Руководство по созданию беспилотного летательного аппарата Arduino: 9 шагов

Видео: Руководство по созданию беспилотного летательного аппарата Arduino: 9 шагов

Видео: Руководство по созданию беспилотного летательного аппарата Arduino: 9 шагов
Видео: Управляем самолётом на основе платы ESP 32!😍 #enjoyrobotics #ардуино #3dprinting #3дмоделирование 2024, Июль
Anonim
Руководство по созданию беспилотного летательного аппарата Arduino, которое я хотел бы иметь
Руководство по созданию беспилотного летательного аппарата Arduino, которое я хотел бы иметь

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

Для этого проекта я хотел получить представление о том, что на самом деле представляет собой дрон, в моем случае - квадрокоптер, поэтому я начал проводить некоторые исследования. Я просмотрел много видео на YouTube, прочитал кучу статей и страниц Insructible, и это то, что я получил.

По сути, вы можете разделить дрон на две части. Я назвал его «Физический» и «Контроллер». Физическое - это, по сути, все, что связано с механикой, которая заставляет дрон летать. Это такие вещи, как двигатель, рама, аккумулятор, пропеллеры и все остальное, что физически дает дрону возможность летать.

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

Запасы

Бюджет проекта: 250 $

Срок: 2 недели

Что купить:

  • Физическая рама $ 20
  • Лезвия 0 $ (в комплекте)
  • Аккумулятор $ 25
  • ESC (Электронные регуляторы скорости) $ 0 (Поставляется с двигателями)
  • Моторы $ 70

Контроллер полета

  • Arduino nano $ 20.
  • USB-кабель Arduino $ 2
  • Модуль Bluetooth (HC-05) $ 8
  • Светодиод 3мм и резисторы 330 Ом и провода 13 $
  • GY-87 (акселерометр, гироскоп) $ 5
  • Доска прототипов $ 10
  • Мужские и женские заголовки $ 5

Другой

  • Комплект для пайки $ 10
  • Мультиметр $ 20

Я хотел получить удовольствие от создания этого проекта в качестве инженера, поэтому я купил кое-что, что мне не нужно.

Итого: 208 долларов

Шаг 1: Мой начальный опыт

После покупки всех своих компонентов я собрал все это вместе, а затем попытался запустить дрон, используя Multiwii (программное обеспечение, которое используют многие сообщества дронов DIY), однако я быстро понял, что не совсем понимаю, что я делал, потому что было много ошибок, и я понятия не имел, как их исправить.

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

В следующих разделах я рассмотрю процесс сборки головоломки. Перед этим давайте сделаем краткий обзор.

Физический

Что касается физического, у нас должны быть: рама, пропеллеры, аккумулятор и эск. Их было бы довольно легко собрать вместе. Чтобы понять эти части и какие из них вы должны получить, вы можете перейти по этой ссылке. Он объясняет, что вам нужно знать о покупке каждой из перечисленных мною частей. Также посмотрите это видео на Youtube. Это поможет вам, если вы застряли, собирая детали вместе.

Шаг 2: Советы по сборке и отладке физических частей

Советы по сборке и отладке физических частей
Советы по сборке и отладке физических частей

Пропеллеры и двигатели

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

Аккумулятор и мощность

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

Шаг 3: Контроллер Arduino

Контроллер Arduino
Контроллер Arduino

Без сомнения, это самая сложная часть всего этого проекта. Компоненты очень легко взорвать, и отладка может быть очень неприятной, если вы не знаете, что делаете. Также в этом проекте я управлял своим дроном с помощью Bluetooth и приложения, которое я покажу вам, как собрать. Это сделало проект особенно сложным, потому что 99% руководств используют радиоконтроллеры (это не факт, смеется), но не волнуйтесь, я пережил за вас разочарование.

Советы перед тем, как отправиться в это путешествие

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

    • Arduino может выдерживать напряжение от 6 до 20 В, но попробуйте ограничить его до 12 В, чтобы не взорвать его. Вы можете узнать больше о его характеристиках здесь.
    • HC-05 может работать с напряжением до 5 В, но некоторые контакты работают от 3,3 В, так что будьте осторожны. Об этом поговорим позже.
    • IMU (GY-521, MPU-6050) также работает от 5В.
  • Мы будем использовать RemoteXY для создания нашего приложения. Если вы хотите создать его на устройстве iOS, вам необходимо использовать другой модуль Bluetooth (HM-10). Вы можете узнать больше об этом на сайте RemoteXY.

Надеюсь, вы прочитали советы. Теперь давайте протестируем каждый компонент, который будет частью контроллера, отдельно.

Шаг 4: MPU-6050

MPU-6050
MPU-6050

Это устройство имеет гироскоп и акселерометр, поэтому по сути оно сообщает вам ускорение в направлении (X, Y, Z) и угловое ускорение в этих направлениях.

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

Шаг 5: модуль Bluetooth HC-05

Модуль Bluetooth HC-05
Модуль Bluetooth HC-05
Модуль Bluetooth HC-05
Модуль Bluetooth HC-05
Модуль Bluetooth HC-05
Модуль Bluetooth HC-05

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

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

Что вам следует знать

  • Чтобы перейти в режим AT, просто удерживайте 5 В на контакте 34 модуля Bluetooth, прежде чем подключать к нему питание.
  • Подключите делитель потенциала к контакту RX модуля, так как он работает от 3,3 В. Вы все еще можете использовать его при 5 В, но он может поджарить этот штырь, если что-то пойдет не так.
  • Если вы используете контакт 34 (вместо кнопки или каким-либо другим способом, который вы нашли в Интернете), модуль установит скорость передачи Bluetooth на 38400. Вот почему в ссылке на учебник выше есть строка в коде, которая говорит:

BTSerial.begin (38400); // Скорость по умолчанию HC-05 в AT-команде подробнее

Если модуль по-прежнему не отвечает «ОК», попробуйте переключить контакты tx и rx. Должен быть:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

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

SoftwareSerial BTSerial (10, 11); // RX | Техас

Измените строку выше. Вы можете попробовать RX = 2, TX = 3 или любые другие допустимые комбинации. Вы можете посмотреть номера контактов Arduino на изображении выше.

Шаг 6: Соединение частей

Соединение частей
Соединение частей

Теперь, когда мы уверены, что все работает, пора приступить к их объединению. Соединять детали можно так, как показано на схеме. Я получил это от Electronoobs. Он действительно помог мне с этим проектом. Ознакомьтесь с его версией проекта здесь. Если вы следуете этому руководству, вам не нужно беспокоиться о подключениях приемника: input_Yaw, input_Pitch и т. Д. Все это будет обрабатываться с помощью bluetooth. Также подключите bluetooth, как мы делали в предыдущем разделе. Мои контакты tx и rx доставляли мне некоторые проблемы, поэтому я использовал Arduino:

RX как 2, а TX как 3, вместо обычных контактов. Затем мы напишем простое приложение, которое мы продолжим улучшать, пока не получим конечный продукт.

Шаг 7: красота RemoteXY

Красота RemoteXY
Красота RemoteXY

Долгое время я думал о простом способе создания удобного удаленного приложения, которое позволило бы мне управлять дроном. Большинство людей используют MIT App Inventor, но пользовательский интерфейс не такой красивый, как хотелось бы, и я также не поклонник графического программирования. Я мог бы разработать его с помощью Android Studio, но это было бы слишком много работы. Я был очень взволнован, когда нашел руководство по RemoteXY. Вот ссылка на сайт. Он чрезвычайно прост в использовании, а документация очень хороша. Мы создадим простой пользовательский интерфейс для нашего дрона. Вы можете настроить свой так, как вам нравится. Просто убедитесь, что вы знаете, что делаете. Следуйте инструкциям здесь.

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

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

//////////////////////////////////////////////// RemoteXY включить библиотека // /////////////////////////////////////////////

// RemoteXY выбираем режим подключения и подключаем библиотеку

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Настройки подключения RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Пропеллеры

Серво L_F_prop; Серво L_B_prop; Серво R_F_prop; Серво R_B_prop;

// Настройка RemoteXY

#pragma pack (push, 1) uint8_t RemoteXY_CONF = {255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0}; // эта структура определяет все переменные структуры вашего интерфейса управления {

// входная переменная

int8_t Joystick_x; // -100..100 координата x положение джойстика int8_t Joystick_y; // -100..100 положение джойстика по оси Y int8_t ThrottleSlider; // 0..100 положение ползунка

// другая переменная

uint8_t connect_flag; // = 1 если провод подключен, else = 0

} RemoteXY;

#pragma pack (поп)

/////////////////////////////////////////////

// END RemoteXY include // /////////////////////////////////////////// /

/ ********** Добавьте эту строку для хранения значения газа ************** /

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/ ********** Присоедините двигатели к контактам. Измените значения, чтобы они соответствовали вашим ************** /

L_F_prop.attach (4); // левый передний мотор

L_B_prop.attach (5); // левый задний мотор R_F_prop.attach (7); // правый передний мотор R_B_prop.attach (6); // правый задний мотор

/ ************* Запретить esc входить в режим программирования ******************** /

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); задержка (1000);

}

void loop () {

RemoteXY_Handler ();

/ ****** Сопоставьте значение газа, которое вы получаете от приложения, до 1000 и 2000, которые являются значениями, с которыми работает большинство регуляторов скорости ********* /

input_THROTTLE = карта (RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds (input_THROTTLE);

L_B_prop.writeMicroseconds (input_THROTTLE); R_F_prop.writeMicroseconds (input_THROTTLE); R_B_prop.writeMicroseconds (input_THROTTLE); }

Шаг 8: тестирование

Если вы все сделали правильно, вы сможете проверить свой коптер, сдвинув ручку газа вверх и вниз. Убедитесь, что вы делаете это снаружи. Также не оставляйте пропеллеры включенными, потому что это приведет к подпрыгиванию коптера. Мы еще не написали код, чтобы сбалансировать его, так что было бы ПЛОХОЙ ИДЕЕЙ ТЕСТИРОВАТЬ ЭТО С ВКЛЮЧЕННЫМИ ПРОПЕЛЛАМИ! Я сделал это только потому, что lmao.

Демонстрация предназначена только для того, чтобы показать, что мы можем управлять дроссельной заслонкой из приложения. Вы заметите, что моторы заикаются. Это потому, что регуляторы скорости не были откалиброваны. Для этого ознакомьтесь с инструкциями на этой странице Github. Прочтите инструкции, откройте файл ESC-Calibration.ino и следуйте этим инструкциям. Если вы хотите понять, что происходит, ознакомьтесь с этим руководством от Electronoobs.

Пока вы запускаете программу, обязательно закрепите дрон веревками, так как он будет работать на полной скорости. Также убедитесь, что пропеллеры выключены. Я оставил свой только потому, что я наполовину сумасшедший. НЕ ОСТАВЛЯЙТЕ ПРОПЕЛЛЕРЫ !!! Эта демонстрация показана на втором видео.

Шаг 9: Я работаю над Кодексом. Закончу инструкции через несколько дней

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

Обновление от 10 августа: не хотел оставлять тебя в подвешенном состоянии. К сожалению, на прошлой неделе у меня не было времени поработать над проектом. Были очень заняты другими делами. Я не хочу тебя вести. Надеюсь, я завершу обучение в ближайшем будущем. Если у вас есть какие-либо вопросы или вам нужна помощь, вы можете оставить комментарий ниже, и я свяжусь с вами.

Рекомендуемые: