Sadržaj:

Arduino Drone sa GPS -om: 16 koraka
Arduino Drone sa GPS -om: 16 koraka

Video: Arduino Drone sa GPS -om: 16 koraka

Video: Arduino Drone sa GPS -om: 16 koraka
Video: 🎮DIY Joystick Control Servo Motor Arm😃 Full Tutorial with Code or diagram📍4 Axis Arm , Dhaddammm 2024, Novembar
Anonim
Arduino Drone sa GPS -om
Arduino Drone sa GPS -om

Krenuli smo u izgradnju bespilotne letjelice četverokoptera s pregledom u prvom licu (FPV), kontroliranoj Arduinom, s povratkom kući, prelaskom na koordinate i funkcijama zadržavanja GPS-a. Naivno smo pretpostavili da bi kombiniranje postojećih Arduino programa i ožičenja za četverokopter bez GPS -a s onima GPS sustava prijenosa bilo relativno jednostavno i da bismo mogli brzo prijeći na složenije programske zadatke. Međutim, iznenađujuća količina morala se promijeniti kako bi se spojila ova dva projekta, pa smo na kraju napravili FPV četverokopter sa GPS-om, bez ikakve dodatne funkcije.

Uključili smo upute o tome kako replicirati naš proizvod ako ste zadovoljni sa ograničenijim quadcopterom.

Uključili smo i sve korake koje smo poduzeli na putu do autonomnijeg četvorougla. Ako se osjećate ugodno kopati duboko u Arduino ili već imate puno iskustva s Arduinom i želite uzeti našu tačku zaustavljanja kao polaznu tačku za vlastito istraživanje, onda je ovaj Instructable također za vas.

Ovo je sjajan projekt za naučiti nešto o izgradnji i kodiranju za Arduino bez obzira na to koliko iskustva imate. Također, nadamo se da ćete otići s dronom.

Podešavanje je sljedeće:

Na popisu materijala, dijelovi bez zvjezdice potrebni su za oba cilja.

Dijelovi sa jednom zvjezdicom potrebni su samo za nedovršeni projekt autonomnijeg četvorokopterja.

Dijelovi s dvije zvjezdice potrebni su samo za ograničeniji četvorougao.

Zajednički koraci za oba projekta nemaju oznaku iza naslova

Koraci potrebni samo za ograničeniji, autonomni kvadkopter imaju "(Uno)" iza naslova.

Koraci potrebni samo za autonomni četvorougaonik u toku imaju "(Mega)" iza naslova.

Da biste izgradili četverostruko bazirano na Uno-u, slijedite korake, preskačući sve korake sa "(Mega)" iza naslova.

Da biste radili na quadu zasnovanom na Megi, slijedite korake, preskačući sve korake sa "(Uno)" iza naslova.

Korak 1: Prikupite materijale

Komponente:

1) Jedan okvir za četvorokopter (tačan okvir vjerovatno nije bitan) (15 USD)

2) Četiri motora bez četkica 2830, 900kV (ili slični) i četiri dodatna pribora za montažu (4x 6 USD + 4x 4 USD = ukupno 40 USD)

3) Četiri 20A UBEC ESC -a (4x 10 USD = ukupno 40 USD)

4) Jedna razvodna ploča (sa vezom XT-60) (20 USD)

5) Jedna LiPo baterija od 3s, 3000-5000mAh sa XT-60 vezom (3000mAh odgovara približno 20 minuta leta) (25 USD)

6) Mnogo pogonskih agregata (oni se puno lome) (10 USD)

7) Jedan Arduino Mega 2560* (40 USD)

8) Jedan Arduino Uno R3 (20 USD)

9) Drugi Arduino Uno R3 ** (20 USD)

10) Jedan Arduino Ultimate GPS štit (ne treba vam štit, ali za korištenje drugog GPS -a bit će potrebno drugačije ožičenje) (45 USD)

11) Dva bežična primopredajnika HC-12 (2x $ 5 = $ 10)

12) Jedan MPU-6050, 6DOF (stepen slobode) žiroskop/akcelerometar (5 USD)

13) Jedan Turnigy 9x 2.4GHz, 9 -kanalni par odašiljača/prijemnika (70 USD)

14) Arduino ženska (naslagana) zaglavlja (20 USD)

15) LiPo punjač za balans baterije (i 12V DC adapter, nije uključen) (20 USD)

17) Priključni kabel USB A do B muški na muški (5 USD)

17) Selotejp

18) Skupljajuće cijevi

Oprema:

1) Lemilica

2) Lemljenje

3) Plastični epoksid

4) Upaljač

5) Skidač žice

6) Komplet imbus ključeva

Opcijske komponente za prijenos videa u stvarnom vremenu (prikaz prvog lica):

1) Mala FPV kamera (ova veza do prilično jeftine i loše kvalitete koju smo koristili, možete zamijeniti bolju) (20 USD)

2) Par video predajnika/prijemnika na 5,6 GHz (korišteno je 832 modela) (30 USD)

3) LiPo baterija od 500 mAh, 3s (11.1V) (7 USD) (koristili smo je sa utikačem od banane, ali preporučujemo unatrag da koristite povezanu bateriju jer ima priključak kompatibilan sa odašiljačem TS832, pa stoga nema t zahtijevaju lemljenje).

4) 2 1000mAh 2s (7.4V) LiPo baterija ili slično (5 USD). Broj mAh nije kritičan sve dok je veći od 1000 mAh. Ista izjava kao gore vrijedi za tip utikača za jednu od dvije baterije. Drugi će se koristiti za napajanje monitora, pa ćete morati lemiti bez obzira na sve. Vjerovatno je za to najbolje nabaviti jedan sa utikačem XT-60 (to smo i učinili). Link za tu vrstu je ovdje: 1000mAh 2s (7.4V) LiPo sa utikačem XT-60

5) LCD monitor (opcionalno) (15 USD). Također možete koristiti AV-USB adapter i softver za kopiranje DVD-a za gledanje izravno na prijenosnom računaru. Ovo također daje mogućnost snimanja videa i fotografija, a ne samo njihovo gledanje u stvarnom vremenu.

6) Ako ste kupili baterije s različitim utičnicama od onih povezanih, možda će vam trebati odgovarajući adapteri. Bez obzira na to, nabavite adapter koji odgovara utikaču za bateriju koja napaja monitor. Evo gdje nabaviti adaptere XT-60

* = samo za naprednije projekte

** = samo za osnovne projekte

Troškovi:

Ako počnete od nule (ali sa lemilicom, itd …), nema FPV sistema: ~ 370 USD

Ako već imate RC odašiljač/prijemnik, LiPo punjač i LiPo bateriju: ~ 260 USD

Cijena FPV sistema: 80 USD

Korak 2: Sastavite okvir

Sastavite okvir
Sastavite okvir
Sastavite okvir
Sastavite okvir
Sastavite okvir
Sastavite okvir

Ovaj korak je prilično jednostavan, pogotovo ako koristite isti već izrađeni okvir koji smo koristili. Jednostavno upotrijebite priložene vijke i spojite okvir kao što je prikazano, koristeći odgovarajući imbus ključ ili odvijač za vaš okvir. Uvjerite se da su ruke iste boje susjedne jedna drugoj (kao na ovoj slici), tako da bespilotna letjelica ima jasne prednje i stražnje strane. Nadalje, pazite da dugački dio donje ploče strši između krakova suprotne boje. To kasnije postaje važno.

Korak 3: Montirajte motore i povežite Escs

Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs
Montirajte motore i povežite escs

Sada kada je okvir sastavljen, izvadite četiri motora i četiri pribora za montažu. Za pričvršćivanje motora i držača možete upotrijebiti ili vijke uključene u montažne setove, ili vijke koji su ostali od okvira četvorougla. Ako kupite nosače s kojima smo povezani, dobit ćete dvije dodatne komponente, na gornjoj slici. Imali smo dobre motorne performanse bez ovih dijelova, pa smo ih ostavili radi smanjenja težine.

Nakon što su motori zavrnuti, epoksidnu ploču za distribuciju energije (PDB) postavite na vrh gornje ploče okvira četvorokopter. Orijentirajte ga tako da konektor baterije pokazuje između krakova različite boje (paralelno s jednim od dugih dijelova donje ploče), kao na gornjoj slici.

Trebali biste imati i četiri konusna vijka sa ženskim navojem. Odložite ovo za sada.

Sada izvadite svoje ESC -ove. Na jednoj strani će izlaziti dvije žice, jedna crvena i jedna crna. Za svaki od četiri ESC -a umetnite crvenu žicu u pozitivni konektor na PDB -u, a crnu u negativ. Imajte na umu da ako koristite drugi PDB, ovaj korak može zahtijevati lemljenje. Sada spojite svaku od tri žice koje izlaze iz svakog motora. U ovom trenutku nije važno koju ESC žicu spojite s kojom žicom motora (sve dok sve žice jednog ESC -a povezujete istim motorom!) Kasnije ćete ispraviti bilo koji polaritet unatrag. Nije opasno ako su žice obrnute; rezultira samo okretanjem motora unatrag.

Korak 4: Pripremite Arduino i Shield

Pripremite Arduino i Shield
Pripremite Arduino i Shield
Pripremite Arduino i Shield
Pripremite Arduino i Shield

Napomena prije nego počnete

Prvo, možete izabrati lemljenje svih žica zajedno. Međutim, otkrili smo da je neprocjenjivo koristiti pin zaglavlja jer pružaju veliku fleksibilnost za rješavanje problema i prilagođavanje projekta. Slijedi opis onoga što smo učinili (i preporučujemo drugima da urade).

Pripremite Arduino i zaštitite

Izvadite svoj Arduino Mega (ili Uno ako radite autonomni quad), GPS štit i zaglavlja koja se mogu slagati. Lemite muški kraj naslaganih zaglavlja na mestu na GPS štitu, u redovima pinova paralelnih sa prethodno lemljenim pinovima, kao što je prikazano na gornjoj slici. Takođe lemite u naslagane naslove na nizu pin označenih 3V, CD,… RX. Rezačem žice odrežite višak duljine na iglama koje strše na dnu. Postavite muške zaglavlje sa savijenim vrhovima u sve ove naslove koji se mogu slagati. To je ono na što ćete lemiti žice za ostale komponente.

Pričvrstite GPS štit na vrh pazeći da se pinovi podudaraju s onima na Arduinu (Mega ili Uno). Imajte na umu da će, ako koristite Mega, mnogo Arduina i dalje biti izloženo nakon što postavite štit na mjesto.

Postavite električnu traku na dno Arduina, pokrivajući sve izložene lemljenje pinova, kako biste spriječili kratak spoj dok Arduino leži na PDB -u.

Korak 5: Povežite komponente i postavite bateriju (Uno)

Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)
Spojite komponente i postavite bateriju (Uno)

Gore navedena shema je gotovo identična onoj koju je napravio Joop Brooking jer smo u velikoj mjeri zasnovali naš dizajn na njegovom.

*Imajte na umu da ova shema pretpostavlja pravilno postavljen GPS štit, pa se stoga GPS ne pojavljuje na ovoj shemi.

Gore navedena shema pripremljena je pomoću softvera Fritzing, koji se posebno preporučuje posebno za sheme koje uključuju Arduino. Uglavnom smo koristili generičke dijelove koji se mogu fleksibilno uređivati, jer naši dijelovi općenito nisu bili u Fritzingovoj biblioteci dijelova.

-Provjerite je li prekidač na GPS štitu postavljen na "Direct Write".

-Sada povežite sve komponente prema gornjoj shemi (osim baterije!) (Važna napomena o donjim žicama za GPS podatke).

-Imajte na umu da ste već spojili ESC -ove na motore i PDB, tako da je ovaj dio sheme gotov.

-Nadalje, imajte na umu da GPS podaci (žute žice) izlaze iz pinova 0 i 1 na Arduinu (ne zasebni Tx i Rx pinovi na GPS -u). To je zato što je konfiguriran na "Direct Write" (vidi dolje), GPS izlazi izravno na hardverske serijske portove na uno (pinovi 0 i 1). To je najjasnije prikazano na drugoj slici iznad kompletnog ožičenja.

-Pri povezivanju RC prijemnika pogledajte gornju sliku. Imajte na umu da podatkovne žice idu u gornji red, dok su Vin i Gnd na drugom i trećem redu (odnosno na drugom do krajnjem stupcu pinova).

-Za ožičenje HC-12 primopredajnika, RC prijemnika i 5Vout-a od PDB-a do Vin-a Arduina koristili smo naslage koji se mogu slagati, dok smo za žiroskop lemili žice izravno na ploču i koristili termoskupljajuće cijevi oko lemljenje. Možete izabrati bilo koju od komponenti, međutim preporučuje se lemljenje direktno na žiroskop jer štedi prostor što olakšava postavljanje malog dijela. Korištenje zaglavlja je malo više posla unaprijed, ali pruža veću fleksibilnost. Izravno lemljenje žica dugoročno je sigurnija veza, ali znači da je korištenje te komponente na drugom projektu teže. Imajte na umu da ako ste koristili zaglavlja na GPS štitu, i dalje imate pristojnu fleksibilnost bez obzira na to što radite. Ono što je najvažnije, pobrinite se da se žice za prijenos podataka GPS -a u pinovima 0 i 1 na GPS -u lako uklone i zamijene.

Na kraju našeg projekta nismo uspjeli osmisliti dobru metodu za pričvršćivanje svih naših komponenti na okvir. Zbog vremenskog pritiska naše klase, naša rješenja su se općenito vrtila oko dvostrane pjene trake, ljepljive trake, električne trake i patentnih zatvarača. Toplo vam preporučujemo da potrošite više vremena na projektiranje stabilnih montažnih konstrukcija ako planirate da ovo bude dugoročniji projekt. Uz sve navedeno, ako samo želite napraviti brzi prototip, slobodno slijedite naš proces. Ipak, provjerite je li žiroskop dobro postavljen. Ovo je jedini način na koji Arduino zna šta quadcopter radi, pa ako se kreće u letu imat ćete problema.

Kad je sve ožičeno i postavljeno, uzmite LiPo bateriju i umetnite je između gornje i donje ploče okvira. Uvjerite se da je njegov konektor usmjeren u istom smjeru kao i konektor PDB -a i da se mogu spojiti. Koristili smo ljepljivu traku za držanje baterije na mjestu (čičak traka također radi, ali je dosadnija od ljepljive trake). Ljepljiva traka dobro funkcionira jer se lako može zamijeniti baterija ili izvaditi radi punjenja. Međutim, morate biti sigurni da ste čvrsto zalijepili bateriju, jer ako se baterija pomiče tokom leta, to bi moglo ozbiljno poremetiti ravnotežu bespilotne letjelice. NEMOJTE još spajati bateriju na PDB.

Korak 6: Povežite komponente i postavite bateriju (Mega)

Spojite komponente i postavite bateriju (Mega)
Spojite komponente i postavite bateriju (Mega)
Spojite komponente i postavite bateriju (Mega)
Spojite komponente i postavite bateriju (Mega)
Spojite komponente i postavite bateriju (Mega)
Spojite komponente i postavite bateriju (Mega)

Gore navedena shema pripremljena je pomoću softvera Fritzing, koji se jako preporučuje, posebno za sheme koje uključuju arduino. Uglavnom smo koristili generičke dijelove, jer naši dijelovi uglavnom nisu bili u Fritzingovoj biblioteci dijelova.

-Imajte na umu da ova shema pretpostavlja pravilno postavljen GPS štit, pa se stoga GPS ne pojavljuje na ovoj shemi.

-Postavite prekidač na vašem Mega 2560 na "Soft Serial".

-Sada spojite sve komponente prema gornjoj shemi (osim baterije!)

-Imajte na umu da ste već spojili ESC -ove na motore i PDB, tako da je ovaj dio sheme gotov.

-Džamperski kabeli od Pin 8 do Rx i Pin 7 do Tx postoje jer (za razliku od Unoa, za koji je ovaj štit napravljen), mega nema univerzalni asinhroni prijemnik-odašiljač (UART) na pinovima 7 i 8, pa moramo koristiti hardverske serijske pinove. Postoji više razloga zašto su nam potrebni hardverski serijski pinovi, o čemu ćemo kasnije govoriti.

-Pri povezivanju RC prijemnika pogledajte gornju sliku. Imajte na umu da podatkovne žice idu u gornji red, dok su Vin i Gnd na drugom i trećem redu (odnosno na drugom do krajnjem stupcu pinova).

-Za ožičenje HC-12 primopredajnika, RC prijemnika i 5Vout-a od PDB-a do Vin-a Arduina koristili smo naslage koji se mogu slagati, dok smo za žiroskop lemili žice izravno i pomoću termoskupljajuće cijevi oko lemljenja. Možete izabrati da učinite bilo koju od komponenti. Korištenje zaglavlja je malo više posla unaprijed, ali pruža veću fleksibilnost. Izravno lemljenje žica dugoročno je sigurnija veza, ali znači da je korištenje te komponente na drugom projektu teže. Imajte na umu da ako ste koristili zaglavlja na GPS štitu, i dalje imate pristojnu fleksibilnost bez obzira na to što radite.

Na kraju našeg projekta nismo uspjeli osmisliti dobru metodu za pričvršćivanje svih naših komponenti na okvir. Zbog vremenskog pritiska naše klase, naša rješenja su se općenito vrtila oko dvostrane pjene trake, ljepljive trake, električne trake i patentnih zatvarača. Toplo vam preporučujemo da potrošite više vremena na projektiranje stabilnih montažnih konstrukcija ako planirate da ovo bude dugoročniji projekt. Uz sve navedeno, ako samo želite napraviti brzi prototip, slobodno nas slijedite u našem procesu. Ipak, provjerite je li žiroskop dobro postavljen. Ovo je jedini način na koji Arduino zna šta quadcopter radi, pa ćete imati problema ako se kreće u letu.

Kad je sve ožičeno i postavljeno, uzmite LiPo bateriju i umetnite je između gornje i donje ploče okvira. Uvjerite se da je njegov konektor usmjeren u istom smjeru kao i konektor PDB -a i da se mogu spojiti. Koristili smo ljepljivu traku za držanje baterije na mjestu (čičak traka također radi, ali je dosadnija od ljepljive trake). Ljepljiva traka dobro funkcionira jer se lako može zamijeniti baterija ili izvaditi radi punjenja. Međutim, morate biti sigurni da ste čvrsto zalijepili bateriju, jer ako se baterija pomiče tokom leta, to bi moglo ozbiljno poremetiti ravnotežu bespilotne letjelice. NEMOJTE još spajati bateriju na PDB.

Korak 7: Povežite prijemnik

Bind Receiver
Bind Receiver
Bind Receiver
Bind Receiver

Uzmite RC prijemnik i privremeno ga spojite na napajanje od 5 V (bilo napajanjem Arduina USB -om ili 9V napajanjem, bilo zasebnim napajanjem. Nemojte još spajati LiPo na Arduino). Uzmite pin za vezivanje koji ste dobili s RC prijemnikom i postavite ga na BIND pinove na prijemniku. Alternativno, kratki gornji i donji zatik u stupcu BIND kako je prikazano na gornjoj fotografiji. Na prijemniku bi trebalo brzo da treperi crveno svetlo. Sada uzmite kontroler i pritisnite dugme na poleđini dok je isključeno, kao što je prikazano gore. Uključite kontroler pritiskom na dugme. Sada bi trepćuće svjetlo na prijemniku trebalo stalno svijetliti. Prijemnik je povezan. Uklonite vezni kabel. Ako ste koristili drugo napajanje, ponovno spojite prijemnik na 5 V iz Arduina.

Korak 8: (Opcionalno) Ožičite zajedno i montirajte sistem kamere FPV

(Opcionalno) Povežite zajedno i montirajte sistem kamere FPV
(Opcionalno) Povežite zajedno i montirajte sistem kamere FPV
(Opcionalno) Povežite zajedno i montirajte sistem kamere FPV
(Opcionalno) Povežite zajedno i montirajte sistem kamere FPV

Prvo zalemite adapter XT-60 sa žicama za napajanje i uzemljenjem na monitoru. Oni se mogu razlikovati od monitora do monitora, ali napajanje će uvijek biti crveno, a tlo gotovo uvijek crno. Sada umetnite adapter s lemljenim žicama u vaš LiPo 1000 mAh s utikačem XT-60. Monitor bi se trebao uključiti sa (obično) plavom pozadinom. To je najteži korak!

Sada pričvrstite antene na prijemnik i predajnik.

Priključite svoj mali 500mAh Lipo na odašiljač. Krajnji desni pin (desno ispod antene) je uzemljen (V_) baterije, sljedeći pin lijevo je V+. Dolaze tri žice koje idu do kamere. Vaša kamera bi trebala imati tri-u-jedan utikač koji se uklapa u odašiljač. Provjerite imate li žutu podatkovnu žicu u sredini. Ako ste za to koristili baterije koje smo povezali sa utikačima, ovaj korak ne bi trebao zahtijevati nikakvo lemljenje.

Konačno, povežite svoju drugu bateriju od 1000 mAh s DC izlaznom žicom koja je isporučena s prijemnikom, a zatim je uključite u priključak za istosmjernu struju na vašem prijemniku. Na kraju, spojite crni kraj AVin kabela koji ste dobili s prijemnikom na AVin priključak na vašem prijemniku, a drugi (žuti, ženski) kraj sa žutim muškim krajem AVin kabela vašeg monitora.

U ovom trenutku trebali biste moći vidjeti prikaz kamere na monitoru. Ako ne možete, provjerite jesu li prijemnik i odašiljač uključeni (trebali biste vidjeti brojeve na njihovim malim ekranima) i jesu li na istom kanalu (koristili smo kanal 11 za oba i imali smo dobar uspjeh). Nadalje, možda ćete morati promijeniti kanal na monitoru.

Montirajte komponente na okvir.

Nakon što je podešavanje uspjelo, isključite baterije dok ne budete spremni za let.

Korak 9: Postavite prijem GPS podataka

Postavite prijem GPS podataka
Postavite prijem GPS podataka
Postavite prijem GPS podataka
Postavite prijem GPS podataka

Povežite svoj drugi Arduino s drugim primopredajnikom HC-12 kao što je prikazano na gornjoj shemi, imajući na umu da će se postavljanje napajati samo kako je prikazano ako je priključeno na računalo. Preuzmite isporučeni kod primopredajnika, otvorite serijski monitor na 9600 bauda.

Ako koristite osnovnije postavke, trebali biste početi primati GPS rečenice ako je vaš GPS štit napajan i pravilno povezan s drugim primopredajnikom HC-12 (i ako je prekidač na štitu na "Direct Write").

Kod Mega -e provjerite je li prekidač na "Soft Serial".

Korak 10: Izvedite kôd za postavljanje (Uno)

Ovaj kôd je identičan onome koji je Joop Brokking koristio u svom vodiču za četverokopter Arduino i zaslužan je za njegovo pisanje.

Kad je baterija isključena, upotrijebite USB kabel za povezivanje računala s Arduinom i prenesite priloženi kôd za postavljanje. Uključite vaš daljinski upravljač. Otvorite serijski monitor na 57600 bodova i slijedite upute.

Uobičajene greške:

Ako se kôd ne uspije učitati, provjerite jesu li pinovi 0 i 1 isključeni iz utičnice UNO/GPS. Ovo je isti hardverski port koji uređaj koristi za komunikaciju s računarom, pa mora biti slobodan.

Ako kôd preskoči hrpu koraka odjednom, provjerite je li vaš GPS prekidač na "Direct Write".

Ako prijemnik nije detektovan, proverite da li na prijemniku postoji stalno (ali prigušeno) crveno svetlo kada je predajnik uključen. Ako je tako, provjerite ožičenje.

Ako žiroskop nije otkriven, to može biti zato što je žiroskop oštećen ili ako imate drugačiju vrstu žiroskopa od one za koju je kod dizajniran za pisanje.

Korak 11: Izvedite kôd za postavljanje (Mega)

Ovaj kôd je identičan onome koji je Joop Brokking koristio u svom vodiču za četverokopter Arduino i zaslužan je za njegovo pisanje. Jednostavno smo prilagodili ožičenje za Megu tako da su ulazi prijemnika odgovarali ispravnim pinovima prekida izmjene pinova.

Kad je baterija isključena, upotrijebite USB kabel za povezivanje računala s Arduinom i prenesite priloženi kôd za postavljanje. Otvorite serijski monitor na 57600 bodova i slijedite upute.

Korak 12: Kalibrirajte ESC (Uno)

Još jednom, ovaj kôd je identičan kodu Joop Brokkinga. Sve su izmjene napravljene u nastojanju da se integriraju GPS i Arduino, a kasnije se mogu pronaći u opisu konstrukcije naprednijeg četverokopterca.

Otpremite priloženi ESC kod za kalibraciju. Na serijskom monitoru napišite slovo 'r' i pritisnite return. Trebali biste početi vidjeti navedene vrijednosti RC kontrolera u stvarnom vremenu. Provjerite da li variraju od 1000 do 2000 na ekstremima gasa, kotrljanja, koraka i zakretanja. Zatim napišite 'a' i pritisnite return. Pustite kalibraciju žiroskopa, a zatim provjerite da li žiroskop registrira kretanje četvorke. Sada isključite arduino iz računara, pritisnite gas do kraja na kontroleru i spojite bateriju. ESC -ovi bi trebali ciklirati različite zvučne signale (ali to može biti različito ovisno o ESC -u i njegovom firmveru). Pritisnite gas do kraja. ESC -ovi bi trebali emitirati niže zvučne signale, a zatim utihnuti. Isključite bateriju.

Opcionalno, u ovom trenutku možete koristiti konuse koje ste dobili s paketima dodatne opreme za montažu motora da biste čvrsto pričvrstili pogonske jedinice. Zatim unesite brojeve 1 - 4 na serijskom monitoru za uključivanje motora 1 - 4, pri najmanjoj snazi. Program će registrirati količinu tresenja zbog neravnoteže rekvizita. To možete pokušati riješiti dodavanjem male količine ljepljive trake na jednu ili drugu stranu rekvizita. Utvrdili smo da bismo mogli uspjeti bez ovog koraka, ali možda nešto manje efikasno i glasnije nego što smo uravnotežili rekvizite.

Korak 13: Kalibrirajte ESC -ove (mega)

Ovaj kod je vrlo sličan Brokkingovom kodu, međutim prilagodili smo ga (i odgovarajuće ožičenje) za rad s Megom.

Otpremite priloženi ESC kod za kalibraciju. Na serijskom monitoru napišite slovo 'r' i pritisnite return. Trebali biste početi vidjeti navedene vrijednosti RC kontrolera u stvarnom vremenu. Provjerite da li variraju od 1000 do 2000 na ekstremima gasa, kotrljanja, koraka i zakretanja.

Zatim napišite 'a' i pritisnite return. Pustite kalibraciju žiroskopa, a zatim provjerite da li žiroskop registrira kretanje četvorke.

Sada isključite arduino iz računara, pritisnite gas do kraja na kontroleru i spojite bateriju. ESC -ovi bi trebali emitirati tri niska zvučna signala nakon kojih slijedi visoki zvučni signal (ali to može biti različito ovisno o ESC -u i njegovom firmveru). Pritisnite gas do kraja. Isključite bateriju.

Promjene koje smo unijeli u ovaj kôd bile su prebacivanje s korištenja PORTD za ESC pinove na korištenje PORTA, a zatim promjena bajtova upisanih na ove portove tako da aktiviramo odgovarajuće pinove kako je prikazano na shemi ožičenja. Do ove promjene dolazi zato što PORTD registrski pinovi nisu na istoj lokaciji na Mega -i kao u Uno -u. Nismo mogli u potpunosti testirati ovaj kôd jer smo radili sa starom off-brand Megom koju je imala trgovina naše škole. To je značilo da iz nekog razloga nisu svi pinovi registra PORTA mogli ispravno aktivirati ESC. Takođe smo imali problema sa upotrebom operatora or equals (| =) u nekom od naših testnih kodova. Nismo sigurni zašto je to uzrokovalo probleme pri pisanju bajtova za postavljanje ESC pin napona, pa smo što je moguće manje modificirali Brookingov kod. Mislimo da je ovaj kod vrlo funkcionalan, ali vaša kilometraža može varirati.

Korak 14: Uđite u vazduh !! (Uno)

I opet, ovaj treći dio genijalnog koda djelo je Joop Brokkinga. Promjene u sva ova tri dijela koda prisutne su samo u pokušaju integracije GPS podataka u Arduino.

Sa čvrsto postavljenim pogonskim pogonima na okvir i sa svim komponentama pričvršćenim, zalijepljenim ili na neki drugi način pričvršćenim, učitajte kôd kontrolera leta na svoj Arduino, a zatim isključite Arduino iz računara.

Iznesite kvadrokopter van, priključite bateriju i uključite predajnik. Po želji ponesite prijenosno računalo povezano sa vašim prijemnikom GPS -a, kao i postavku i monitor za prijem video zapisa. Učitajte kod primopredajnika na vaš zemaljski Arduino, otvorite serijski monitor na 9600 bita i gledajte kako se GPS podaci ubacuju.

Sada ste spremni za let. Gurnite ručicu gasa prema dolje i zavijte lijevo da aktivirate četvorokopter, a zatim lagano podignite leptir za gas prema gore. Počnite tako što ćete letjeti nisko na tlo i preko mekih površina poput trave dok vam ne bude udobno.

Pogledajte ugrađeni video zapis na kojem smo uzbuđeno upravljali dronom prvi put kada smo uspjeli pokrenuti dron i GPS istovremeno.

Korak 15: Uđite u vazduh !! (Mega)

Zbog prekida s ESC kalibracijskim kodom za Mega, nikada nismo uspjeli stvoriti kôd kontrolera leta za ovu ploču. Ako ste došli do ove točke, onda pretpostavljam da ste se barem poigrali s ESC kalibracijskim kodom kako bi radio za Mega. Stoga ćete vjerojatno morati napraviti slične izmjene u kodu kontrolora leta kao što ste unijeli u posljednjem koraku. Ako naš ESC kalibracijski kôd za Mega čarobno funkcionira bez ikakvih drugih izmjena, tada morate napraviti samo nekoliko stvari sa zalihama kako bi funkcionirao u ovom koraku. Prvo ćete morati proći i zamijeniti sve instance PORTD -a sa PORTA. Takođe, ne zaboravite promijeniti DDRD u DDRA. Zatim ćete morati promijeniti sve bajtove upisane u PORTA registar tako da aktiviraju odgovarajuće pinove. Da biste to učinili, pomoću bajta B11000011 postavite pinove na visoko, a B00111100 na pinove na nisko. Sretno i obavijestite nas ako uspješno letite koristeći Mega!

Korak 16: Kako smo došli do mjesta na kojem se trenutno nalazimo s mega dizajnom

Ovaj projekt za nas kao početnike u hobiju u elektronici bio je ogromno iskustvo učenja. Stoga smo mislili da bismo uključili sagu o svemu na što smo naišli pokušavajući GPS omogućiti Joop Brokkingov kod. Budući da je Brokkingov kôd toliko temeljit i mnogo složeniji od svega što smo pisali, odlučili smo ga promijeniti što je manje moguće. Pokušali smo dobiti GPS štit za slanje podataka na Arduino, a zatim Arduino da nam pošalje te podatke putem primopredajnika HC12 bez mijenjanja koda leta ili ožičenja na bilo koji način. Nakon što smo pogledali sheme i ožičenje našeg Arduino Uno kako bismo utvrdili koji su pinovi dostupni, promijenili smo kod primopredajnika GPS koji smo koristili za zaobilaženje postojećeg dizajna. Zatim smo ga testirali kako bismo bili sigurni da sve radi. U ovom trenutku stvari su izgledale obećavajuće.

Sljedeći korak je bio integriranje koda koji smo upravo izmijenili i testirali s Brokkingovim kontrolerom leta. Ovo nije bilo teško, ali brzo smo naišli na grešku. Brokkingov kontroler leta oslanja se na Arduino Wire i EEPROM biblioteke, dok je naš GPS kod koristio i biblioteku Software Serial i Arduino GPS. Budući da Wire Library upućuje na Software Serial Library, naišli smo na grešku u kojoj se kôd nije mogao kompajlirati jer postoji "više definicija za _vector 3_", što god to značilo. Nakon što smo pogledali Google i kopali po bibliotekama, na kraju smo shvatili da je ovaj bibliotečki sukob onemogućio korištenje ovih dijelova koda zajedno. Pa smo krenuli u potragu za alternativama.

Ono što smo shvatili je da je jedina kombinacija biblioteka koja nam nije donijela grešku bila prebacivanje standardne GPS biblioteke na neoGPS, a zatim upotreba AltSoftSerial umjesto Software Serial. Ova kombinacija je uspjela, međutim, AltSoftSerial može raditi samo sa određenim pinovima, koji nisu bili dostupni u našem dizajnu. Ovo nas je dovelo do upotrebe Mege. Arduino Megas ima više hardverskih serijskih portova, što je značilo da bismo mogli zaobići ovaj sukob biblioteke tako što uopće ne moramo otvarati serijske portove softvera.

Međutim, kada smo počeli koristiti Mega, brzo smo shvatili da je konfiguracija pinova drugačija. Igle na Uno -u koje imaju prekide različite su na Megi. Slično, igle SDA i SCL bile su na različitim lokacijama. Nakon proučavanja pin dijagrama za svaku vrstu Arduina i osvježavanja registara koji se pozivaju u kodu, uspjeli smo pokrenuti kôd za postavljanje leta sa samo minimalnim ponovnim ožičenjem i bez izmjena softvera.

Kod kalibracije ESC -a počeli smo nailaziti na probleme. Ovo smo već kratko spomenuli, ali u osnovi kod koristi pin registre za regulaciju pinova koji se koriste za upravljanje ESC -ovima. Ovo otežava čitanje koda nego upotreba standardne funkcije pinMode (); međutim, ubrzava rad koda i istovremeno aktivira pinove. Ovo je važno jer kôd leta radi u pomno određenoj petlji. Zbog razlika u pin -ovima između Arduinosa, odlučili smo se za registraciju porta A na Megi. Međutim, u našem testiranju nisu nam svi pinovi dali isti izlazni napon kada im je rečeno da rade visoko. Neki pinovi su imali izlaz od oko 4,90 V, a drugi su nam dali bliže 4,95 V. Očigledno su ESC -ovi koje imamo pomalo izbirljivi, pa bi ispravno radili samo kada bismo koristili pinove s većim naponom. To nas je tada prisililo da promijenimo bajtove koje smo napisali za registraciju A tako da razgovaramo s ispravnim pinovima. Više informacija o ovome nalazi se u odjeljku ESC kalibracija.

To je otprilike onoliko koliko smo stigli u ovom dijelu projekta. Kad smo išli testirati ovaj modificirani ESC kalibracijski kôd, došlo je do kratkog spoja i izgubili smo komunikaciju s našim Arduinom. To nas je jako zbunilo jer nismo promijenili ništa od ožičenja. To nas je prisililo da se povučemo i shvatimo da imamo samo nekoliko dana da nabavimo leteću bespilotnu letjelicu nakon sedmica pokušaja da spojimo naše nespojive dijelove. Zbog toga smo se povukli i stvorili jednostavniji projekt s Uno -om. Međutim, i dalje mislimo da je naš pristup blizu rada s Megom s malo više vremena.

Naš cilj je da vam ovo objašnjenje prepreka na koje smo naišli bude od pomoći ako radite na izmjeni Brokkingovog koda. Također nikada nismo imali priliku isprobati kodiranje bilo koje funkcije autonomne kontrole zasnovane na GPS -u. Ovo je nešto što ćete morati shvatiti nakon stvaranja radnog drona s Megom. Međutim, iz nekih preliminarnih Googleovih istraživanja izgleda da bi implementacija Kalmanovog filtera mogla biti najstabilniji i najtačniji način za određivanje položaja u letu. Predlažemo da malo istražite kako ovaj algoritam optimizira procjene stanja. Osim toga, sretno i javite nam ako stignete dalje nego što smo uspjeli!

Preporučuje se: