Sadržaj:

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

Video: Arduino Drone s GPS -om: 16 koraka

Video: Arduino Drone s GPS -om: 16 koraka
Video: ПРАВИЛЬНЫЙ ВЫБОР (АНИМАЦИЯ) 2024, Srpanj
Anonim
Arduino Drone s GPS -om
Arduino Drone s GPS -om

Krenuli smo u izradu bespilotne letjelice četverokoptera s pogledom na lice (FPV), kontrolirane s Arduinom, s povratkom kući, prijelazom na koordinate i GPS zadržavanjem. 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 quadcopter s GPS-om, bez ikakve dodatne funkcije.

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

Uključili smo i sve korake koje smo poduzeli na putu prema autonomnijem četverokopteru. Ako se osjećate ugodno kopati duboko u Arduinu ili već imate puno iskustva s Arduinom i želite uzeti našu točku zaustavljanja kao polaznu toč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 iskustvo. Također, nadamo se da ćete otići s dronom.

Postavljanje je sljedeće:

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

Dijelovi s jednom zvjezdicom potrebni su samo za nedovršeni projekt autonomnijeg četvorougla.

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

Koraci zajednički za oba projekta nemaju oznaku nakon naslova

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

Koraci potrebni samo za autonomni četverokopter u tijeku imaju "(Mega)" iza naslova.

Da biste izgradili četverokut temeljen na Uno-u, slijedite korake, preskačući sve korake s "(Mega)" iza naslova.

Za rad na quadu zasnovanom na Megi slijedite korake redom preskačući sve korake s "(Uno)" iza naslova.

Korak 1: Prikupite materijale

Komponente:

1) Jedan okvir za kvadkopter (točan okvir vjerojatno 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 razdjelna ploča (s vezom XT-60) (20 USD)

5) Jedna LiPo baterija od 3 s, 3000-5000 mAh s vezom XT-60 (3000 mAh 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 će za korištenje drugog GPS -a biti potrebno drugačije ožičenje) (45 USD)

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

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

13) Jedan Turnigy 9x 2,4 GHz, 9 -kanalni par odašiljača/prijamnika (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) Ljepljiva traka

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 prve osobe):

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 odašiljača/prijamnika na 5,6 GHz (upotrijebljeno 832 modela) (30 USD)

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

4) 2 1000mAh 2s (7.4V) LiPo baterija ili slična (5 USD). Broj mAh nije kritičan sve dok je veći od 1000 mAh. Ista se izjava kao gore odnosi na tip utikača za jednu od dvije baterije. Drugi će se koristiti za napajanje monitora, pa ćete morati lemiti bez obzira na sve. Vjerojatno je za to najbolje nabaviti jedan s 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čunalu. 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 utikačima 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. Ovdje možete nabaviti adaptere XT-60

* = samo za naprednije projekte

** = samo za temeljnije projekte

Troškovi:

Ako počinjete ispočetka (ali lemilicom itd.), Nema FPV sustava: ~ 370 USD

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

Cijena FPV sustava: 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. Pazite da ruke iste boje budu susjedne jedna drugoj (kao na ovoj slici), tako da bespilotna letjelica ima jasnu prednju i stražnju stranu. Nadalje, pobrinite se da dugi 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 spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite escs
Montirajte motore i spojite 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 četverokopterca. 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 pričvršćeni vijkom, epoksidnu ploču za distribuciju energije (PDB) postavite na vrh gornje ploče okvira četverokopter. 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.

Također biste trebali imati četiri stožca propelera s ženskim navojem. Odložite ih za sada.

Sada izvadite svoje ESC -ove. S jedne strane iz njega ć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 odlučiti izravno lemiti sve žice zajedno. Međutim, otkrili smo da je neprocjenjivo koristiti pin zaglavlja jer pružaju veliku fleksibilnost za rješavanje problema i prilagodbu projekta. Slijedi opis onoga što smo učinili (i preporučamo drugima da učine).

Pripremite Arduino i oklopite

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 mjestu na GPS štitu, u redove pinova paralelno s prethodno lemljenim iglama, kao što je prikazano na gornjoj slici. Također lemite u naslagane naslove na redu s oznakama 3V, CD,… RX. Rezačem žice odrežite višak duljine na iglama koje strše na dnu. U sve ove naslove koji se mogu slagati postaviti muške zaglavlje sa savijenim vrhovima. 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 jer 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 gotovo je identična onoj koju je napravio Joop Brooking jer smo svoj dizajn uvelike temeljili na njegovu.

*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 jako 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 spojite 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. Uočite da podatkovne žice idu u gornji red, dok su Vin i Gnd u drugom i trećem redu (odnosno u drugom do krajnjem stupcu pinova).

-Za ožičenje HC-12 primopredajnika, RC prijamnika i 5Vout 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 lem. Možete odabrati bilo koju od komponenti, no preporučuje se lemljenje izravno na žiroskop jer štedi prostor što olakšava postavljanje malog dijela. Korištenje zaglavlja malo je više posla unaprijed, ali pruža veću fleksibilnost. Lemljenje žica izravno 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 podatkovne žice 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 su se rješenja općenito vrtila oko dvostrane pjenaste trake, ljepljive trake, električne trake i 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š postupak. Ipak, provjerite je li žiroskop dobro postavljen. Ovo je jedini način na koji Arduino zna što quadcopter radi, pa ako se kreće u letu imat ćete problema.

Kad je sve ožičeno i na mjestu, 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 priključak PDB -a te da se oni zapravo mogu spojiti. Za držanje baterije koristili smo ljepljivu traku (čičak traka također radi, ali je dosadnija od ljepljive trake). Ljepljiva traka dobro radi 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 tijekom leta, to bi moglo ozbiljno poremetiti ravnotežu drona. 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 općenito 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.

-Prebacite prekidač na svom 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.

-Spojni 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 nam trebaju hardverske serijske pinove, o čemu će biti riječi kasnije.

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

-Za ožičenje HC-12 primopredajnika, RC prijamnika i 5Vout od PDB-a do Vin-a Arduina koristili smo naslage koje se mogu slagati, dok smo za žiroskop lemili žice izravno i pomoću termoskupljajuće cijevi oko lemljenja. Možete odabrati bilo koju od komponenti. Korištenje zaglavlja malo je više posla unaprijed, ali pruža veću fleksibilnost. Lemljenje žica izravno 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 su se rješenja općenito vrtila oko dvostrane pjenaste 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 što quadcopter radi, pa ako se kreće u letu imat ćete problema.

Kad je sve ožičeno i na mjestu, 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 priključak PDB -a te da se oni zapravo mogu spojiti. Za držanje baterije koristili smo ljepljivu traku (čičak traka također radi, ali je dosadnija od ljepljive trake). Ljepljiva traka dobro radi 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 tijekom leta, to bi moglo ozbiljno poremetiti ravnotežu drona. NEMOJTE još spajati bateriju na PDB.

Korak 7: Povežite prijemnik

Vezati prijemnik
Vezati prijemnik
Vezati prijemnik
Vezati prijemnik

Uzmite RC prijemnik i privremeno ga spojite na napajanje od 5 V (bilo napajanjem Arduina USB -om ili 9 V 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, kratite gornju i donju iglu u stupcu BIND kao što je prikazano na gornjoj fotografiji. Na prijemniku bi trebalo brzo treptati crveno svjetlo. Sada uzmite kontroler i pritisnite gumb na stražnjoj strani dok je isključen, kao što je prikazano gore. Dok je gumb pritisnut, uključite regulator. Sada bi trepćuće svjetlo na prijemniku trebalo 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 sustav kamere FPV

(Opcionalno) Ožičite zajedno i montirajte sustav kamere FPV
(Opcionalno) Ožičite zajedno i montirajte sustav kamere FPV
(Opcionalno) Ožičite zajedno i montirajte sustav kamere FPV
(Opcionalno) Ožičite zajedno i montirajte sustav 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 svoj LiPo 1000 mAh s utikačem XT-60. Monitor bi se trebao uključiti s (obično) plavom pozadinom. To je najteži korak!

Sada pričvrstite antene na prijemnik i odašiljač.

Spojite svoj mali Lipo od 500 mAh na odašiljač. Krajnji desni pin (desno ispod antene) je uzemljen (V_) baterije, sljedeći lijevi pin je V+. Dolaze tri žice koje idu do kamere. Vaša bi kamera trebala imati utikač tri u jednom koji se uklapa u odašiljač. Provjerite imate li žutu podatkovnu žicu u sredini. Ako ste za to koristili baterije s kojima smo povezani pomoću utikača, 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 prijamnikom, 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 prijamnikom na AVin priključak na vašem prijemniku, a drugi (žuti, ženski) kraj na žuti muški kraj 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 GPS prijem podataka

Postavljanje GPS prijema podataka
Postavljanje GPS prijema podataka
Postavljanje GPS prijema podataka
Postavljanje GPS prijema 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 temeljnije 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 identičan je onome koji je koristio Joop Brokking 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 bauda i slijedite upute.

Uobičajene greške:

Ako se kôd ne uspije učitati, provjerite jesu li iglice 0 i 1 isključene na UNO/GPS štitu. Ovo je isti hardverski port koji uređaj koristi za komunikaciju s računalom pa mora biti slobodan.

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

Ako prijemnik nije otkriven, provjerite postoji li stalno (ali prigušeno) crveno svjetlo na vašem prijemniku dok je odašiljač 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 identičan je onome koji je koristio Joop Brokking u svom vodiču za četverokopter Arduino i zaslužan je za njegovo pisanje. Jednostavno smo prilagodili ožičenje za Mega 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 bauda 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.

Prenesite priloženi ESC kalibracijski kôd. Na serijskom monitoru napišite slovo 'r' i pritisnite return. Trebali biste početi vidjeti navedene vrijednosti RC kontrolera u stvarnom vremenu. Provjerite razlikuju li se 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čunala, pritisnite gas do kraja na kontroleru i spojite bateriju. ESC -ovi bi trebali ciklirati različite tonove zvučnih signala (ali to može biti različito ovisno o ESC -u i njegovom firmveru). Pritisnite gas do kraja. ESC -i bi trebali emitirati niže zvučne signale, a zatim utihnuti. Isključite bateriju.

Izborno, 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 najnižoj snazi. Program će registrirati količinu tresenja zbog neravnoteže rekvizita. To možete pokušati popraviti 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 učinkovito i glasnije nego što smo uravnotežili rekvizite.

Korak 13: Kalibrirajte ESC -ove (mega)

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

Prenesite priloženi ESC kalibracijski kôd. Na serijskom monitoru napišite slovo 'r' i pritisnite return. Trebali biste početi vidjeti navedene vrijednosti RC kontrolera u stvarnom vremenu. Provjerite razlikuju li se 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čunala, pritisnite regulator 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 napravili u ovom kodu bile su prebacivanje s korištenja PORTD -a za ESC pinove na korištenje PORTA -e, a zatim promjena bajtova zapisanih na ove portove tako da aktiviramo odgovarajuće pinove kako je prikazano na shemi ožičenja. Ova je promjena posljedica toga što PORTD registrski pinovi nisu na istom mjestu na Mega -i kao u Uno -u. Nismo uspjeli 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 -ove. Također smo imali problema s upotrebom operatora or equals (| =) u nekom od naših testnih kodova. Nismo sigurni zašto je to uzrokovalo probleme pri upisivanju bajtova za postavljanje ESC pin napona, pa smo što je moguće manje modificirali Brookingov kod. Mislimo da je ovaj kôd vrlo funkcionalan, ali vaša kilometraža može varirati.

Korak 14: Letite zrakoplovom !! (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.

S vašim propelerima čvrsto postavljenim na okvir, a sve komponente pričvršćene, zalijepljene ili na neki drugi način pričvršćene, učitajte kôd kontrolora leta na svoj Arduino, a zatim isključite Arduino iz računala.

Iznesite kvadrokopter van, priključite bateriju i uključite odašiljač. Po želji ponesite prijenosno računalo povezano s vašim postavkama primanja GPS -a, kao i postavke i monitor za primanje videa. Učitajte kod primopredajnika na vaš zemaljski Arduino, otvorite serijski monitor na 9600 bauda i gledajte kako se unose GPS podaci.

Sada ste spremni za let. Pritisnite ručicu gasa prema dolje i zakrenite ulijevo da aktivirate četvorokotač, a zatim lagano podignite leptir za gas. 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 letjeli bespilotnom letjelicom kad smo prvi put uspjeli pokrenuti dron i GPS.

Korak 15: Letite zrakoplovom !! (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 petljali s kalibracijskim kodom ESC kako bi radio za Mega. Stoga ćete vjerojatno morati unijeti slične izmjene u kod kontrolera leta kao što ste unijeli u posljednjem koraku. Ako naš ESC kalibracijski kôd za Mega čarobno funkcionira bez ikakvih drugih izmjena, onda morate imati samo nekoliko stvari koje morate učiniti sa zalihama kako bi uspio u ovom koraku. Prvo ćete morati proći i zamijeniti sve instance PORTD -a s PORTA. Također, 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 visoku, a B00111100 na nisku. Sretno i javite nam ako uspješno letite koristeći Mega!

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

Ovaj je projekt za nas kao početnike u Arduinu i elektronici bio hobi. 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 kod 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 poslati te podatke preko 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 bio je integriranje koda koji smo upravo izmijenili i testirali s Brokkingovim kontrolerom leta. Ovo nije bilo teško, ali brzo smo naišli na pogrešku. Brokkingov kontrolor leta oslanja se na Arduino Wire i EEPROM knjižnice, dok je naš GPS kod koristio i biblioteku Software Serial i Arduino GPS. Budući da se knjižnica Wire poziva na biblioteku serijske programske opreme, naišli smo na pogreš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 knjižnicama, na kraju smo shvatili da je zbog sukoba u knjižnici nemoguće koristiti ove dijelove koda zajedno. Pa smo krenuli u potragu za alternativama.

Ono što smo shvatili je da je jedina kombinacija knjižnica koja nam nije donijela pogrešku bila prebacivanje standardne GPS knjižnice na neoGPS, a zatim korištenje AltSoftSerial umjesto softverskog serijskog. Ova je kombinacija uspjela, međutim, AltSoftSerial može raditi samo s određenim pinovima, koji nisu bili dostupni u našem dizajnu. To nas je dovelo do korištenja Mege. Arduino Megas ima više hardverskih serijskih portova, što je značilo da bismo mogli zaobići ovaj sukob knjižnice tako da 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 mjestima. 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. To otežava čitanje koda nego korištenje standardne funkcije pinMode (); međutim, ubrzava rad koda i istovremeno aktivira pinove. To je važno jer kôd leta radi u pomno određenoj vremenskoj petlji. Zbog razlika u pin -ovima između Arduinosa, odlučili smo upotrijebiti portni registar 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 kad 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 tome nalazi se u odjeljku kalibracije ESC -a.

To je otprilike onoliko koliko smo stigli u ovom dijelu projekta. Kad smo otišli testirati ovaj modificirani ESC kalibracijski kôd, nešto se kratko spojilo 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 nekoliko tjedana pokušaja da spojimo naše nespojive dijelove. Zato 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 značajke autonomne kontrole temeljene na GPS -u. Ovo je nešto što ćete morati shvatiti nakon stvaranja radnog drona s Megom. Međutim, prema nekim preliminarnim Googleovim istraživanjima, čini se da bi implementacija Kalmanovog filtera mogla biti najstabilniji i najtoč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čeni: