Съдържание:

Ръководството, което исках да имам при изграждането на Arduino Drone: 9 стъпки
Ръководството, което исках да имам при изграждането на Arduino Drone: 9 стъпки

Видео: Ръководството, което исках да имам при изграждането на Arduino Drone: 9 стъпки

Видео: Ръководството, което исках да имам при изграждането на Arduino Drone: 9 стъпки
Видео: SKR Pro v1.2 - TMC2226 UART with Sensorless Homing 2024, Декември
Anonim
Ръководството, което исках да имам при изграждането на дрон Arduino
Ръководството, което исках да имам при изграждането на дрон Arduino

Този документ е нещо като „Как да ръководя“наклонена документация, която преминава през процес, който ми отне да разбера концепциите, за да постигна целта си за изграждане на прост квадрокоптер, който мога да контролирам от мобилния си телефон.

За да направя този проект, исках да добия представа какво всъщност представлява дронът, в моя случай квадрокоптер, затова започнах да правя някои изследвания. Гледах много видеоклипове в YouTube, прочетох куп статии и неизвестни страници и това получих.

По същество можете да разделите дрон на две части. Нарекох го „Физически“и „Контролер“. Физическото е по същество всичко, което има отношение към механиката, която кара дрона да лети. Това са неща като мотора, рамката, батерията, витлата и всяко друго нещо, което физически дава възможност на дрона да лети.

Контролерът по същество е полетният контролер. Това, което контролира физическото, така че дронът може да лети като цяло, без да пада. По същество микроконтролерът, софтуерът върху него и сензорите, които му помагат да триангулира лагерите си. Така че, за да имам дрон, имах нужда от контролер и куп физически части, които контролерът да „контролира“.

Консумативи

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

Срок: 2 седмици

Неща за купуване:

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

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

  • Arduino nano $ 20
  • USB кабел Arduino $ 2
  • Bluetooth модул (HC-05) $ 8
  • 3mm LED и 330 Ohm резистори и проводници $ 13
  • GY-87 (акселерометър, жироскоп) $ 5
  • Прототипна дъска $ 10
  • Заглавки за мъже и жени $ 5

Други

  • Комплект за запояване $ 10
  • Мултицет $ 20

Исках да се насладя на изграждането на този проект като инженер, затова купих някои други неща, които не ми се налагаха.

Общо: $ 208

Стъпка 1: Моят първоначален опит

След като закупих всичките си компоненти, аз събрах всичко и след това се опитах да стартирам дрона, използвайки Multiwii (отидете на софтуер, който много от общността на безпилотни самолети използва сам), но бързо разбрах, че не разбирам напълно какво правех, защото имаше много грешки и нямах представа как да ги поправя.

След това реших да разглобя дрона и да разбирам всеки компонент по парче и да го възстановя по начин, по който ще разбера напълно всичко, което се случва.

В следващите раздели ще премина през процеса на сглобяване на пъзела. Преди това нека да направим кратък преглед.

Физически

За физическото трябва да имаме: рамката, витлата, батерията и escs. Те биха били сравнително лесни за събиране. За да разберете тези части и кои трябва да получите, можете да посетите тази връзка. Той обяснява какво трябва да знаете за закупуването на всяка от изброените от мен части. Гледайте и този видеоклип в Youtube. Това ще ви помогне, ако сте останали да сглобите частите заедно.

Стъпка 2: Съвети за събиране и отстраняване на грешки на физическите части

Съвети за събиране и отстраняване на грешки на физическите части
Съвети за събиране и отстраняване на грешки на физическите части

Витла и двигатели

  • За да проверите дали вашите витла са в правилна ориентация (обърнати или не), когато ги въртите в посоката, посочена от двигателите (повечето двигатели имат стрелки, показващи как трябва да се въртят), трябва да почувствате бриз под витлата, а не отгоре.
  • Винтовете на противоположните витла трябва да са със същия цвят.
  • Цветът на съседните витла трябва да бъде същият.
  • Уверете се също, че сте подредили двигателите по такъв начин, че да се въртят точно както на изображението по -горе.
  • Ако се опитвате да обърнете посоката на двигателя, просто сменете проводниците в противоположните краища. Това ще обърне посоката на двигателя.

Батерия и захранване

  • Ако по някаква причина нещата искрят и не можете да разберете защо, това е най -вероятно, защото имате разменени положителни и отрицателни.
  • Ако не сте сигурни кога да заредите батериите си, можете да използвате волтметър за проверка на напрежението. Ако е по -ниско от спецификациите на батерията, трябва да се зареди. Вижте тази връзка за зареждане на батериите.
  • Повечето батерии LIPO не се доставят със зарядни устройства. Купувате ги отделно.

Стъпка 3: Контролерът Arduino

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

Това без съмнение е най -трудната част от целия този проект. Много е лесно да взривите компоненти и отстраняването на грешки може да бъде изключително разочароващо, ако не знаете какво правите. Също така в този проект контролирах дрона си с помощта на bluetooth и приложение, което ще ви покажа как да го изградите. Това направи проекта особено труден, защото 99% от уроците използват радио контролери (това не е факт хаха), но не се притеснявайте, че съм преминал през разочарованието за вас.

Съвети, преди да се впуснете в това пътуване

  • Използвайте макет, преди да финализирате устройството си на печатна платка. Това ви позволява лесно да правите промени.
  • Ако сте тествали подробно компонент и той не работи, вероятно не работи!
  • Вижте напреженията, които едно устройство може да издържи, преди да го включите!

    • Arduino може да се справи с 6 до 20V, но се опитайте да го ограничите до 12V, за да не го взривите. Можете да прочетете повече за неговите характеристики тук.
    • HC-05 може да издържи до 5V, но някои щифтове работят при 3.3V, така че внимавайте за това. Ще поговорим за това по -късно.
    • IMU (GY-521, MPU-6050) също работи при 5V.
  • Ще използваме RemoteXY за изграждане на нашето приложение. Ако искате да го изградите на iOS устройство, трябва да използвате различен Bluetooth модул (HM-10). Можете да научите повече за това на уебсайта на RemoteXY.

Дано сте прочели съветите. Сега нека тестваме всеки компонент, който ще бъде част от контролера поотделно.

Стъпка 4: MPU-6050

MPU-6050
MPU-6050

Това устройство има жироскоп и акселерометър, така че по същество ви казва ускорението в посока (X, Y, Z) и ъгловото ускорение по тези посоки.

За да тестваме това, можем да използваме урока по този, можем да използваме този урок на уебсайта на Arduino. Ако работи, трябва да получите поток от стойности на акселерометъра и жироскопа, които се променят, докато накланяте, завъртате и ускорявате настройката. Също така се опитайте да ощипвате и манипулирате кода, за да знаете какво се случва.

Стъпка 5: HC-05 Bluetooth модул

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, просто задръжте 5V към щифт 34 на Bluetooth модула, преди да свържете захранването към него.
  • Свържете потенциален делител към RX щифта на модула, тъй като той работи на 3.3V. Все още бихте могли да го използвате при 5V, но може да изпържи този щифт, ако нещо се обърка.
  • Ако използвате Pin 34 (вместо бутона или друг начин, който сте намерили онлайн), модулът ще настрои скоростта на предаване на Bluetooth на 38400. Ето защо в линка за урока по -горе има ред в кода, който казва:

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

Ако модулът все още не отговаря с "OK", опитайте да превключите пиновете tx и rx. Трябва да бъде:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Ако това все още не работи, изберете да промените пиновете в кода на други пинове на Arduino. Тествайте, ако не работи, разменете пиновете tx и rx, след това тествайте отново

SoftwareSerial BTSerial (10, 11); // RX | TX

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

#дефинирайте REMOTEXY_MODE_HC05_SOFTSERIAL

#включи #включи #включи

// Настройки за връзка към 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 Джойстик_x; // -100..100 x -координирана позиция на джойстика int8_t Джойстик_y; // -100..100 y -координирана позиция на джойстика int8_t ThrottleSlider; // 0..100 позиция на плъзгача

// друга променлива

uint8_t connect_flag; // = 1, ако проводникът е свързан, иначе = 0

} RemoteXY;

#pragma pack (поп)

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

// END RemoteXY включват // ///////////////////////////////////////////// /

/********** Добавете този ред, за да задържите стойността на дросела **************/

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, които са стойностите, които повечето ESCs работят на *********/

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.

Демонстрацията е само за да покаже, че трябва да можем да контролираме газта от приложението. Ще забележите, че двигателите заекват. Това е така, защото ESC не са калибрирани. За да направите това, разгледайте инструкциите на тази страница на Github. Прочетете инструкциите, отворете файла ESC-Calibration.ino и следвайте тези инструкции. Ако искате да разберете какво се случва, вижте този урок от Electronoobs.

Докато изпълнявате програмата, уверете се, че сте свързали дрона със струни, тъй като той ще работи с пълна газ. Също така се уверете, че витлата не са включени. Оставих моето включено само защото съм полулуд. НЕ ОСТАВЯЙТЕ ВАШИТЕ ПРОПЕРЛЕРИ ВКЛЮЧЕНИ !!! Тази демонстрация е показана във втория видеоклип.

Стъпка 9: Работя по кода. Ще завърши инструктажа след няколко дни

Просто исках да добавя, че ако използвате този урок и ме чакате, все още работя по него. Просто се появиха други неща в живота ми, върху които също работя, но не се притеснявайте, скоро ще го публикувам. Да речем най -късно до 10 август 2019 г.

Актуализация от 10 август: Не исках да ви оставя да виси. За съжаление нямах време да работя по проекта през последната седмица. Бях много зает с други неща. Не искам да те навеждам. Надявам се да завърша инструкциите в близко бъдеще. Ако имате въпроси или имате нужда от помощ, можете да добавите коментар по -долу и аз ще се свържа с вас.

Препоръчано: