Cuprins:

Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino: 9 pași
Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino: 9 pași

Video: Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino: 9 pași

Video: Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino: 9 pași
Video: Lucrez la Muzeul Privat pentru Bogați și Faimoși. Povesti de groaza. Groază. 2024, Iulie
Anonim
Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino
Ghidul pe care mi-am dorit să îl construiesc pe o dronă Arduino

Acest document este un fel de documentație de tip „Cum să ghidez” care trece prin procesul pe care mi-a luat-o să înțeleg conceptele pentru a-mi atinge scopul de a construi un quadcopter simplu pe care să îl pot controla de pe telefonul meu mobil.

Pentru a face acest proiect, am vrut să-mi fac o idee despre ce este de fapt o dronă, în cazul meu un quadcopter, așa că am început să fac cercetări. Am urmărit o mulțime de videoclipuri de pe YouTube, am citit o grămadă de articole și pagini Insructibile și asta am primit.

În esență, puteți împărți o dronă în două părți. Am numit-o „Fizică” și „Controler”. Fizicul este în esență tot ceea ce are legătură cu mecanica care face ca drona să zboare. Acestea sunt lucruri precum motorul, cadrul, bateria, elicele și orice alt lucru care oferă fizic dronei capacitatea de a zbura.

Controlorul este în esență controlorul de zbor. Ce controlează fizicul, astfel încât drona să poată zbura ca o unitate întreagă fără să cadă. În esență, microcontrolerul, software-ul de pe acesta și senzorii care îl ajută să trianguleze rulmenții. Deci, pentru a avea o dronă, aveam nevoie de un controler și de o grămadă de piese fizice pentru ca controlerul să „controleze”.

Provizii

Buget pentru proiect: 250 USD

Perioada de timp: 2 săptămâni

Lucruri de cumpărat:

  • Cadru fizic 20 USD
  • Lamele 0 $ (Vine cu cadru)
  • Baterie de 25 USD
  • ESC (regulatoare electronice de viteză) 0 USD (vine cu motoare)
  • Motoare 70 dolari

Controler de zbor

  • Arduino nano 20 $
  • Cablu USB Arduino 2 USD
  • Modul Bluetooth (HC-05) 8 USD
  • LED-uri de 3 mm și rezistențe și fire de 330 Ohm 13 USD
  • GY-87 (accelerometru, giroscop) 5 USD
  • Placă prototip 10 dolari
  • Anteturi masculine și feminine 5 USD

Alte

  • Set de lipit 10 USD
  • Multimetru 20 USD

Am vrut să mă bucur să construiesc acest proiect ca inginer, așa că am cumpărat alte lucruri pe care nu trebuia.

Total: 208 USD

Pasul 1: Experiența mea inițială

După ce mi-am cumpărat toate componentele, le-am pus laolaltă și apoi am încercat să lansez drona, folosind Multiwii (acces la software pe care o folosesc o mulțime de comunități de drone DIY), totuși mi-am dat seama rapid că nu înțelegeam pe deplin ce am făcea pentru că erau multe erori și habar nu aveam cum să le remediez.

După aceea, am decis să scot drona și să înțeleg fiecare componentă bucată cu bucată și să o reconstruiesc într-un mod în care să înțeleg complet tot ce se întâmplă.

În secțiunile următoare voi parcurge procesul de împărțire a puzzle-ului împreună. Înainte de asta, să avem o prezentare rapidă.

Fizic

Pentru fizic, ar trebui să avem: cadrul, elicele, bateria și escs. Acestea ar fi destul de ușor de asamblat. Pentru a înțelege aceste părți și care ar trebui să le obțineți, puteți vizita acest link. El explică ce trebuie să știți despre cumpărarea fiecărei piese pe care le-am enumerat. Urmăriți și acest videoclip Youtube. Vă va ajuta dacă sunteți blocat strângând piesele împreună.

Pasul 2: sfaturi privind asamblarea și depanarea părților fizice

Sfaturi privind asamblarea și depanarea părților fizice
Sfaturi privind asamblarea și depanarea părților fizice

Elice și motoare

  • Pentru a verifica dacă elicele dvs. sunt în orientarea corectă (Flipped sau nu), când le rotiți în direcția indicată de motoare (majoritatea motoarelor au săgeți care arată cum ar trebui să se rotească), ar trebui să simțiți o briză sub elice și nu deasupra.
  • Șuruburile de pe elicele opuse ar trebui să aibă aceeași culoare.
  • Culoarea elicelor adiacente ar trebui să fie aceeași.
  • De asemenea, asigurați-vă că ați aranjat motoarele într-un mod în care acestea se rotesc la fel ca în imaginea de mai sus.
  • Dacă încercați să răsturnați direcția unui motor, schimbați firele la capetele opuse. Aceasta va inversa direcția motorului.

Baterie și alimentare

  • Dacă din orice motiv lucrurile scânteie și nu vă dați seama de ce, cel mai probabil este că ați schimbat pozitive și negative.
  • Dacă nu sunteți sigur când să vă încărcați bateriile, puteți utiliza un voltmetru pentru a verifica tensiunea. Dacă este mai mic decât spun specificațiile bateriei, atunci trebuie încărcat. Consultați acest link pentru încărcarea bateriilor.
  • Majoritatea bateriilor LIPO nu vin cu încărcătoare de baterii. Le cumpărați separat.

Pasul 3: Controlerul Arduino

Controlerul Arduino
Controlerul Arduino

Aceasta este, fără îndoială, cea mai dificilă parte a întregului proiect. Este foarte ușor să arunci în aer componentele și depanarea ar putea fi extrem de frustrantă dacă nu știi ce faci. Tot în acest proiect mi-am controlat drona folosind bluetooth și o aplicație pe care vă voi arăta cum să o construiți. Acest lucru a făcut proiectul mai dificil, deoarece 99% dintre tutoriale folosesc controlere radio (nu este un fapt lol), dar nu vă faceți griji că am trecut prin frustrare pentru dvs.

Sfaturi înainte de a începe această călătorie

  • Utilizați un panou înainte de a finaliza dispozitivul pe un PCB. Acest lucru vă permite să faceți modificări cu ușurință.
  • Dacă ați testat extensiv o componentă și nu funcționează, probabil că nu funcționează!
  • Uitați-vă la tensiunile pe care le poate suporta un dispozitiv înainte de al conecta!

    • Arduino poate suporta 6 până la 20V, dar încercați să-l plasați la 12V, astfel încât să nu îl aruncați în aer. Puteți citi mai multe despre specificațiile sale aici.
    • HC-05 poate suporta până la 5V, dar unii pini funcționează la 3,3V, așa că ai grijă la asta. Vom vorbi despre asta mai târziu.
    • IMU (GY-521, MPU-6050) funcționează și la 5V.
  • Vom folosi RemoteXY pentru a ne construi aplicația. Dacă doriți să îl construiți pe un dispozitiv iOS, trebuie să utilizați un alt modul Bluetooth (HM-10). Puteți afla mai multe despre acest lucru pe site-ul Web RemoteXY.

Sperăm că ați citit sfaturile. Acum, să testăm fiecare componentă care va face parte din controler separat.

Pasul 4: MPU-6050

MPU-6050
MPU-6050

Acest dispozitiv are un giroscop și un accelerometru, deci în esență vă spune accelerația într-o direcție (X, Y, Z) și accelerația unghiulară de-a lungul acelor direcții.

Pentru a testa acest lucru, putem folosi tutorialul pe acest lucru putem folosi acest tutorial pe site-ul web Arduino. Dacă funcționează, ar trebui să obțineți un flux de accelerometru și valori giroscopice care se schimbă pe măsură ce înclinați, rotiți și accelerați setarea. De asemenea, încercați să modificați și să manipulați codul, astfel încât să știți ce se întâmplă.

Pasul 5: Modulul HC-05 Bluetooth

Modulul HC-05 Bluetooth
Modulul HC-05 Bluetooth
Modulul HC-05 Bluetooth
Modulul HC-05 Bluetooth
Modulul HC-05 Bluetooth
Modulul HC-05 Bluetooth

Nu trebuie să faceți această parte, dar este important să puteți merge în modul AT (modul setări), deoarece cel mai probabil va trebui să schimbați una dintre setările modulului. Aceasta a fost una dintre cele mai frustrante părți ale acestui proiect. Am făcut atât de multe cercetări pentru a afla cum să introduc modulul în modul AT, deoarece dispozitivul meu nu răspundea la comenzile mele. Mi-au trebuit 2 zile să ajung la concluzia că modulul meu a fost întrerupt. Am comandat altul și a funcționat. Consultați acest tutorial pentru a intra în modul AT.

HC-05 vine în diferite tipuri, există unele cu butoane și altele fără și tot felul de variabile de proiectare. Unul, care este constant, este că toți au un „Pin 34”. Consultați acest tutorial.

Lucruri pe care ar trebui să le știi

  • Pentru a intra în modul AT, țineți doar 5V la pinul 34 al modulului bluetooth înainte de a conecta alimentarea la acesta.
  • Conectați un divizor de potențial la pinul RX al modulului, deoarece funcționează pe 3.3V. Puteți să-l utilizați încă la 5V, dar s-ar putea să prăjiți acul dacă ceva nu merge bine.
  • Dacă utilizați Pinul 34 (în loc de buton sau alt mod pe care l-ați găsit online), modulul va seta rata de transmisie a bluetooth-ului la 38400. De aceea, în linkul pentru tutorialul de mai sus există o linie în cod care spune:

BTSerial.begin (38400); // Viteza implicită HC-05 în comanda AT mai mult

Dacă modulul încă nu răspunde cu „OK”, încercați să comutați pinii tx și rx. Ar trebui să fie:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Dacă tot nu funcționează, alegeți să schimbați pinii din cod cu alți pins Arduino. Testați, dacă nu funcționează, schimbați pinii tx și rx, apoi testați din nou

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

Schimbați linia de mai sus. Puteți încerca RX = 2, TX = 3 sau orice alte combinații valide. Puteți privi numerele pinului Arduino din imaginea de mai sus.

Pasul 6: Conectarea pieselor

Conectarea pieselor
Conectarea pieselor

Acum, că suntem siguri că totul funcționează, este timpul să începem să le punem împreună. Puteți conecta piesele așa cum se arată în circuit. Am primit asta de la Electronoobs. Chiar m-a ajutat cu acest proiect. Consultați versiunea sa a proiectului aici. Dacă urmați acest tutorial, nu trebuie să vă faceți griji cu privire la conexiunile receptorului: input_Yaw, input_Pitch etc. Toate acestea vor fi gestionate cu bluetooth. De asemenea, conectați bluetooth-ul așa cum am făcut-o în secțiunea anterioară. Pinii mei tx și rx îmi dădeau probleme, așa că am folosit Arduino's:

RX ca 2 și TX ca 3, în locul pinilor normali. Apoi, vom scrie o aplicație simplă pe care o vom îmbunătăți în continuare până când vom avea produsul final.

Pasul 7: Frumusețea RemoteXY

Frumusețea RemoteXY
Frumusețea RemoteXY

Pentru cel mai mult timp m-am gândit la o modalitate ușoară de a construi o aplicație la distanță utilizabilă, care să mă permită să controlez drona. Majoritatea oamenilor folosesc MIT App Inventor, dar interfața de utilizare nu este la fel de frumoasă pe cât aș vrea și nici nu sunt un fan al programării picturale. Aș fi putut să-l proiectez folosind Android Studio, dar ar fi doar o muncă prea mare. Am fost extrem de încântat când am găsit un tutorial folosind RemoteXY. Iată linkul către site. Este extrem de ușor de utilizat și documentația este foarte bună. Vom crea o interfață simplă pentru drona noastră. Puteți să vă personalizați așa cum doriți. Asigurați-vă că știți ce faceți. Urmați instrucțiunile de aici.

După ce ați făcut acest lucru, vom edita codul, astfel încât să putem schimba accelerația de pe elicopter. Adăugați liniile care au / **** Lucrurile pe care ar trebui să le faceți și de ce *** / la codul dvs.

Dacă nu se compilează, asigurați-vă că ați descărcat biblioteca. Deschideți, de asemenea, un exemplu de schiță și comparați ceea ce are pe al tău.

//////////////////////////////////////////////////// RemoteXY include bibliotecă // /////////////////////////////////////////////////

// RemoteXY selectează modul de conectare și include biblioteca

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Setări conexiune RemoteXY

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

// Elice

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// Configurare 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}; // această structură definește toate variabilele structurii interfeței de control {

// variabilă de intrare

int8_t Joystick_x; // -100..100 poziția joystick-ului coordonate x int8_t Joystick_y; // -100..100 Poziția joystick-ului în coordonate y int8_t ThrottleSlider; // 0..100 poziție glisor

// altă variabilă

uint8_t connect_flag; // = 1 dacă este conectat prin cablu, altfel = 0

} RemoteXY;

#pragma pack (pop)

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

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

/ ********** Adăugați această linie pentru a menține valoarea clapetei ************** /

int input_THROTTLE;

configurare nulă () {

RemoteXY_Init ();

/ ********** Atașați motoarele la pini Modificați valorile pentru a se potrivi cu dvs. ************** /

L_F_prop.attach (4); // motorul din față stânga

L_B_prop.attach (5); // motor stânga spate R_F_prop.attach (7); // motor fata dreapta R_B_prop.attach (6); // motor spate dreapta

/ ************* Împiedicați esc să intre în modul de programare ******************** /

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); întârziere (1000);

}

bucla nulă () {

RemoteXY_Handler ();

/ ****** Hartați valoarea clapetei pe care o obțineți din aplicație la 1000 și 2000, care sunt valorile la care operează majoritatea ESC-urilor la ********* /

input_THROTTLE = hartă (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); }

Pasul 8: Testare

Dacă ați făcut totul bine, ar trebui să puteți testa copterul glisând accelerația în sus și în jos. Asigurați-vă că faceți acest lucru afară. De asemenea, nu țineți elicele pornite, deoarece acest lucru va face ca elicopterul să sară. Nu am scris încă codul pentru a-l echilibra, așa că ar fi o idee proastă să testăm asta cu elicele aprinse! Am făcut asta doar pentru că lmao.

Demonstrația este doar pentru a arăta că ar trebui să putem controla accelerația din aplicație. Veți observa că motoarele se bâlbâie. Acest lucru se datorează faptului că ESC-urile nu au fost calibrate. Pentru a face acest lucru, aruncați o privire la instrucțiunile de pe această pagină Github. Citiți instrucțiunile, deschideți fișierul ESC-Calibration.ino și urmați aceste instrucțiuni. Dacă doriți să înțelegeți ce se întâmplă, consultați acest tutorial de la Electronoobs.

În timp ce rulați programul, asigurați-vă că legați drona cu corzi, deoarece va merge la maxim. De asemenea, asigurați-vă că elicele nu sunt pornite. Am lăsat-o pe a mea doar pentru că sunt pe jumătate nebună. NU LASAȚI ELICELE PE !!! Această demonstrație este prezentată în al doilea videoclip.

Pasul 9: Lucrez la cod. Va termina instructabilul în câteva zile

Am vrut doar să adaug că, dacă folosiți acest tutorial și mă așteptați, încă lucrez la el. Doar alte lucruri din viața mea au apărut la care lucrez și eu, dar nu vă faceți griji că o voi posta curând. Să spunem cel mai târziu până pe 10 august 2019.

Actualizare 10 august: Nu am vrut să te las spânzurată. Din păcate, nu am avut timp să lucrez la proiect în ultima săptămână. Am fost foarte ocupat cu alte lucruri. Nu vreau să te conduc. Sperăm că voi completa instructabilul în viitorul apropiat. Dacă aveți întrebări sau aveți nevoie de ajutor, puteți adăuga un comentariu mai jos și vă voi răspunde.

Recomandat: