Kazalo:

Vodnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letalnika: 9 korakov
Vodnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letalnika: 9 korakov

Video: Vodnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letalnika: 9 korakov

Video: Vodnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letalnika: 9 korakov
Video: Высокая плотность 2022 2024, November
Anonim
Priročnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letala
Priročnik, ki sem ga želel imeti pri izdelavi Arduino brezpilotnega letala

Ta dokument je nekakšna poševna dokumentacija »Kako voditi«, ki poteka skozi proces, ki me je potreboval, da sem razumel koncepte, da bi dosegel svoj cilj izdelave preprostega štirikopterja, ki bi ga lahko upravljal iz svojega mobilnega telefona.

Za izvedbo tega projekta sem želel dobiti predstavo o tem, kaj v resnici je dron, v mojem primeru štirikopter, zato sem začel raziskovati. Ogledal sem si veliko videoposnetkov v YouTubu, prebral kup člankov in nepremagljivih strani in to sem dobil.

V bistvu lahko drone razdelite na dva dela. Poimenoval sem ga "Fizični" in "Krmilnik". Fizikal je v bistvu vse, kar je povezano z mehaniko, zaradi katere dron leti. To so stvari, kot so motor, okvir, baterija, propelerji in vse drugo, kar brezpilotnemu letalu fizično daje možnost letenja.

Krmilnik je v bistvu kontrolor leta. Kaj nadzoruje fizično, tako da lahko dron leti kot celota brez padca. V bistvu mikrokrmilnik, programska oprema na njem in senzorji, ki mu pomagajo triangulirati ležaje. Torej, da bi imel brezpilotni letnik, sem potreboval krmilnik in kup fizičnih delov, ki jih je krmilnik lahko "nadzoroval".

Zaloge

Proračun projekta: 250 USD

Časovni okvir: 2 tedna

Stvari za nakup:

  • Fizični okvir 20 dolarjev
  • Rezila 0 USD (prihaja z okvirjem)
  • Baterija 25 dolarjev
  • ESC (elektronski krmilniki hitrosti) 0 USD (prihaja z motorji)
  • Motorji 70 dolarjev

Krmilnik letenja

  • Arduino nano 20 dolarjev
  • Arduino USB kabel 2 USD
  • Modul Bluetooth (HC-05) 8 USD
  • 3 mm LED in 330 ohmski upori in žice 13 USD
  • GY-87 (merilnik pospeška, žiroskop) 5 USD
  • Prototipna plošča 10 USD
  • Moški in ženski naslovi 5 USD

Drugo

  • Komplet za spajkanje 10 USD
  • Multimeter 20 dolarjev

Želel sem uživati v gradnji tega projekta kot inženir, zato sem kupil nekaj drugih stvari, ki mi jih ni bilo treba.

Skupaj: 208 USD

1. korak: Moje začetne izkušnje

Ko sem kupil vse svoje komponente, sem vse skupaj sestavil in nato poskusil zagnati dron z uporabo Multiwii (pojdi na programsko opremo, ki jo uporablja večina skupnosti brezpilotnih letalnikov »naredi sam«), vendar sem hitro ugotovil, da nisem popolnoma razumel, kaj delal, ker je bilo veliko napak in nisem vedel, kako jih odpraviti.

Potem sem se odločil, da bom drone razstavil in razumel vsak del po kos ter ga obnovil tako, da bom popolnoma razumel vse, kar se dogaja.

V naslednjih razdelkih bom šel skozi postopek sestavljanja sestavljanke. Pred tem pa kratek pregled.

Fizično

Za fizično bi morali imeti: okvir, propelerje, baterijo in escs. Te bi bilo precej enostavno sestaviti skupaj. Če želite razumeti te dele in katere bi morali dobiti, obiščite to povezavo. Pojasnjuje, kaj morate vedeti o nakupu vsakega dela, ki sem ga navedel. Oglejte si tudi ta videoposnetek na Youtube. Pomagalo vam bo, če boste sestavili dele skupaj.

2. korak: Nasveti za sestavljanje in odpravljanje napak fizičnih delov

Nasveti za zbiranje in odpravljanje napak fizičnih delov
Nasveti za zbiranje in odpravljanje napak fizičnih delov

Propelerji in motorji

  • Če želite preveriti, ali so vaši propelerji v pravi usmeritvi (obrnjeni ali ne), ko jih zavrtite v smeri, ki jo označujejo motorji (večina motorjev ima puščice, ki kažejo, kako se morajo vrteti), morate pod propelerji in ne zgoraj začutiti vetrič.
  • Vijaki na nasprotnih propelerjih morajo biti iste barve.
  • Barva sosednjih propelerjev mora biti enaka.
  • Poskrbite tudi, da ste motorje razporedili tako, da se vrtijo tako kot na zgornji sliki.
  • Če poskušate obrniti smer motorja, samo zamenjajte žice na nasprotnih koncih. To bo obrnilo smer motorja.

Baterija in moč

  • Če iz kakršnega koli razloga stvari iskrejo in ne morete ugotoviti, zakaj, je to najverjetneje zato, ker ste zamenjali pozitivno in negativno.
  • Če niste prepričani, kdaj napolniti baterije, lahko za preverjanje napetosti uporabite voltmeter. Če je nižja, kot pravijo specifikacije na bateriji, jo je treba napolniti. Oglejte si to povezavo o polnjenju baterij.
  • Večina baterij LIPO ni priloženih polnilnikom baterij. Kupujete jih ločeno.

3. korak: Krmilnik Arduino

Krmilnik Arduino
Krmilnik Arduino

To je nedvomno najtežji del celotnega projekta. Komponente je zelo enostavno razstreliti in odpravljanje napak bi lahko bilo zelo frustrirajuće, če ne veste, kaj počnete. Tudi v tem projektu sem upravljal svoj dron z bluetoothom in aplikacijo, ki vam bom pokazala, kako jo zgraditi. To je projekt še dodatno otežilo, ker 99% vadnic uporablja radijske krmilnike (to ni dejstvo, lol), vendar ne skrbite, da sem zaradi vas doživel frustracije.

Nasveti, preden se odpravite na to pot

  • Pred dokončanjem naprave na tiskanem vezju uporabite ploščico. To vam omogoča enostavno spreminjanje.
  • Če ste komponento obsežno preizkusili in ne deluje, verjetno ne deluje!
  • Preden ga priključite, poglejte napetosti, ki jih naprava lahko prenese!

    • Arduino lahko prenese 6 do 20 V, vendar ga poskusite omejiti na 12 V, da ga ne raznesete. Več o njegovih specifikacijah lahko preberete tukaj.
    • HC-05 lahko prenese do 5V, vendar nekateri zatiči delujejo pri 3.3V, zato bodite pozorni na to. O tem se bomo pogovarjali kasneje.
    • IMU (GY-521, MPU-6050) deluje tudi pri 5V.
  • Za izdelavo naše aplikacije bomo uporabljali RemoteXY. Če ga želite zgraditi na napravi iOS, morate uporabiti drug modul bluetooth (HM-10). Več o tem lahko izveste na spletnem mestu RemoteXY.

Upajmo, da ste prebrali nasvete. Zdaj pa preizkusimo vsako komponento, ki bo del krmilnika posebej.

4. korak: MPU-6050

MPU-6050
MPU-6050

Ta naprava ima žiroskop in merilnik pospeška, zato vam v bistvu pove pospešek v smeri (X, Y, Z) in kotni pospešek vzdolž teh smeri.

Če želite to preizkusiti, lahko uporabite vadnico, ki jo lahko uporabite na spletnem mestu Arduino. Če deluje, bi morali dobiti tok merilnikov pospeška in žiroskopa, ki se spreminjajo, ko nagnete, zavrtite in pospešite nastavitev. Poskusite tudi prilagoditi in manipulirati s kodo, da boste vedeli, kaj se dogaja.

5. korak: Modul Bluetooth HC-05

Modul Bluetooth HC-05
Modul Bluetooth HC-05
Modul Bluetooth HC-05
Modul Bluetooth HC-05
Modul Bluetooth HC-05
Modul Bluetooth HC-05

Tega dela vam ni treba narediti, vendar je pomembno, da lahko preklopite v način AT (način nastavitev), saj boste najverjetneje morali spremeniti eno od nastavitev modula. To je bil eden najbolj frustrirajočih delov tega projekta. Naredil sem toliko raziskav, da bi ugotovil, kako preklopiti modul v način AT, ker se moja naprava ne odziva na moje ukaze. Potreboval sem 2 dni, da sem ugotovil, da je moj modul pokvarjen. Naročil sem še enega in je delovalo. Oglejte si to vadnico o vstopu v način AT.

HC-05 je na voljo v različnih vrstah, nekatere so z gumbi, nekatere pa brez in vse vrste oblikovnih spremenljivk. Eden od teh, ki je stalen, pa je, da imajo vsi "Pin 34". Oglejte si to vadnico.

Stvari, ki jih morate vedeti

  • Če želite preiti v način AT, pridržite 5V na pin 34 modula bluetooth, preden nanj priključite napajanje.
  • Priključite razdelilnik potenciala na RX pin modula, saj deluje na 3.3V. Še vedno bi ga lahko uporabili pri napetosti 5V, vendar bi lahko ta čep prepražil, če bi šlo kaj narobe.
  • Če uporabljate Pin 34 (namesto gumba ali kako drugače, ki ste ga našli na spletu), bo modul nastavil hitrost prenosa bluetooth na 38400. Zato je v zgornji povezavi za vadnico vrstica v kodi, ki pravi:

BTSerial.begin (38400); // Privzeta hitrost HC-05 v ukazu AT več

Če se modul še vedno ne odziva z "OK", poskusite zamenjati zatiča tx in rx. Mora biti:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Če to še vedno ne deluje, izberite zamenjavo nožic v kodi na druge zatiče Arduino. Preizkusite, če ne deluje, zamenjajte nožici tx in rx, nato preizkusite znova

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

Spremenite zgornjo vrstico. Poskusite lahko RX = 2, TX = 3 ali katero koli drugo veljavno kombinacijo. Številke pin Arduino si lahko ogledate na zgornji sliki.

6. korak: Povezovanje delov

Povezovanje delov
Povezovanje delov

Zdaj, ko smo prepričani, da vse deluje, je čas, da jih začnemo sestavljati. Deli lahko povežete tako, kot je prikazano v vezju. To sem dobil od Electronoobs. Pri tem projektu mi je res pomagal. Njegovo različico projekta si oglejte tukaj. Če sledite tej vadnici, vam ni treba skrbeti za povezave sprejemnika: input_Yaw, input_Pitch itd. Vse to bo obravnavano z bluetoothom. Prav tako povežite bluetooth tako, kot smo to storili v prejšnjem razdelku. Moji zatiči tx in rx so mi delali nekaj težav, zato sem uporabil Arduino:

RX kot 2 in TX kot 3, namesto običajnih zatičev. Nato bomo napisali preprosto aplikacijo, ki jo bomo še izboljšali, dokler ne dobimo končnega izdelka.

7. korak: Lepota RemoteXY

Lepota RemoteXY
Lepota RemoteXY

Najdlje sem razmišljal o enostavnem načinu izdelave uporabne aplikacije za oddaljeno uporabo, ki bi mi omogočila nadzor nad dronom. Večina ljudi uporablja MIT App Inventor, vendar uporabniški vmesnik ni tako lep, kot bi si želel, pa tudi nisem ljubitelj slikovnega programiranja. Lahko bi ga zasnoval s programom Android Studio, vendar bi bilo to preveč dela. Bil sem zelo navdušen, ko sem našel vadnico z uporabo RemoteXY. Tukaj je povezava do spletne strani. Je zelo enostaven za uporabo in dokumentacija je zelo dobra. Ustvarili bomo preprost uporabniški vmesnik za naš dron. Svojega lahko prilagodite tako, kot želite. Prepričajte se le, da veste, kaj počnete. Sledite navodilom tukaj.

Ko to storite, bomo kodo uredili, da bomo lahko spremenili dušilo na našem helikopterju. Kodi dodajte vrstice, ki vsebujejo / **** stvari, ki jih morate narediti, in zakaj *** /.

Če se ne sestavlja, prenesite knjižnico. Odprite tudi primer skice in primerjajte, kaj ima in česa nima.

////////////////////////////////////////////////////// RemoteXY vključujejo knjižnica // /////////////////////////////////////////////

// RemoteXY izberite način povezave in vključite knjižnico

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Nastavitve povezave RemoteXY

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

// Propelerji

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

// Konfiguriraj RemoteXY

#pragma paket (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}; // ta struktura definira vse spremenljivke vaše strukture nadzornega vmesnika {

// vhodna spremenljivka

int8_t Joystick_x; // -100..100 x -koordinatni položaj krmilne palice int8_t Joystick_y; // -100..100 y -koordinatni položaj krmilne palice int8_t ThrottleSlider; // 0..100 položaj drsnika

// druga spremenljivka

uint8_t connect_flag; // = 1, če je žica priključena, sicer = 0

} RemoteXY;

#pragma paket (pop)

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

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

/********** Dodajte to vrstico, da zadržite vrednost dušilke **************/

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/********** Pritrdite motorje na nožice Spremenite vrednosti tako, da ustrezajo vašim **************/

L_F_prop.attach (4); // levi sprednji motor

L_B_prop.attach (5); // levi zadnji motor R_F_prop.attach (7); // motor spredaj desno R_B_prop.attach (6); // desni zadnji motor

/************* Prepreči esc vstopu v način programiranja ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); zamuda (1000);

}

void loop () {

RemoteXY_Handler ();

/****** Preslikajte vrednost dušilke, ki jo dobite iz aplikacije, na 1000 in 2000, ki sta vrednosti, na katerih deluje večina ESC *********/

input_THROTTLE = zemljevid (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. korak: Testiranje

Če ste vse naredili prav, bi morali preskusiti helikopter tako, da plin potisnete navzgor in navzdol. Poskrbite, da to storite zunaj. Prav tako ne držite propelerjev, ker bo to povzročilo skok helikopterja. Kode še nismo napisali, da bi jo uravnotežili, zato bi bila SLABA IDEJA TO TESTIRATI Z VKLOPLJENIMI GONILCI! To sem storil samo zato, ker lmao.

Demonstracija naj bi samo pokazala, da bi morali iz aplikacije nadzorovati plin. Opazili boste, da motorji jecljajo. To je zato, ker ESC niso bili umerjeni. Če želite to narediti, si oglejte navodila na tej strani Github. Preberite navodila, odprite datoteko ESC-Calibration.ino in sledite tem navodilom. Če želite razumeti, kaj se dogaja, si oglejte to vadnico Electronoobs.

Med izvajanjem programa ne pozabite privezati drona z vrvicami, saj bo deloval na polno. Prepričajte se tudi, da propelerji niso vklopljeni. Svojega sem pustil prižganega, ker sem na pol nor. NE PUSTITE SVOJIH PROPELERJ VKLJUČENIH !!! Ta predstavitev je prikazana v drugem videu.

9. korak: Delam na kodi. V nekaj dneh bo končal poučevanje

Želel sem dodati, da če uporabljate to vadnico in čakate na mene, se še vedno trudim. Pravkar so se pojavile še druge stvari v mojem življenju, vendar ne skrbite, kmalu bom objavil. Recimo najpozneje do 10. avgusta 2019.

Posodobitev 10. avgusta: Nisem te hotel pustiti obešenega. Na žalost v zadnjem tednu nisem imel časa za projekt. Bil sem zelo zaposlen z drugimi stvarmi. Nočem te voditi naprej. Upam, da bom v bližnji prihodnosti opravil navodila. Če imate kakršna koli vprašanja ali potrebujete pomoč, lahko spodaj dodate komentar in odgovoril vam bom.

Priporočena: