Kazalo:

Arduino Drone z GPS: 16 korakov
Arduino Drone z GPS: 16 korakov

Video: Arduino Drone z GPS: 16 korakov

Video: Arduino Drone z GPS: 16 korakov
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Julij
Anonim
Arduino Drone z GPS -om
Arduino Drone z GPS -om

Odločili smo se, da bomo zgradili arduino nadzorovane in stabilizirane štirikopterje brezpilotne letalnice s pogledom na prvo osebo (FPV) z vrnitvijo domov, pojdi na koordinacijo in funkcije zadrževanja GPS. Naivno smo domnevali, da bi bilo združevanje obstoječih programov Arduino in ožičenje za štirikopter brez GPS s tistimi v prenosnem sistemu GPS razmeroma preprosto in da bi lahko hitro prešli na zahtevnejše programske naloge. Vendar pa je bilo treba presenetljivo veliko spremeniti, da bi se združila ta dva projekta, zato smo na koncu izdelali štirikopter FPV s podporo za GPS, brez kakršne koli dodatne funkcije.

Vključili smo navodila, kako ponoviti naš izdelek, če ste zadovoljni z omejenim štirikopterjem.

Vključili smo tudi vse korake, ki smo jih naredili na poti do bolj avtonomnega štirikopterja. Če se počutite prijetno kopati globoko v Arduino ali že imate veliko izkušenj z Arduinom in bi radi našo postajalno točko vzeli kot izhodišče za lastno raziskovanje, potem je ta Instructable tudi za vas.

To je odličen projekt, če želite izvedeti nekaj o gradnji in kodiranju za Arduino, ne glede na to, koliko izkušenj imate. Upali boste tudi, da boste odšli z brezpilotnim letalom.

Nastavitev je naslednja:

Na seznamu materialov so za oba cilja potrebni deli brez zvezdice.

Deli z eno zvezdico so potrebni le za nedokončan projekt bolj avtonomnega štirikopterja.

Deli z dvema zvezdicama so potrebni le za omejen štirikopter.

Skupni koraki za oba projekta nimajo oznak po naslovu

Koraki, potrebni le za bolj omejen, neodvisen štirikopter, imajo za naslovom "(Uno)".

Koraki, potrebni le za avtonomni štirikopter v teku, imajo za naslovom "(Mega)".

Če želite sestaviti četverico, ki temelji na Uno, sledite zaporednim korakom in preskočite vse korake z "(Mega)" za naslovom.

Če želite delati na štirikolesniku Mega, sledite zaporednim korakom in preskočite vse korake z "(Uno)" za naslovom.

Korak: Zberite materiale

Sestavine:

1) En okvir štirikopterja (natančen okvir verjetno ni pomemben) (15 USD)

2) Štirje brezkrtačni motorji 2830, 900kV (ali podobni) in štirje kompleti dodatkov za montažo (4x 6 USD + 4x 4 USD = skupaj 40 USD)

3) Štirje ESC -ji 20A UBEC (4x 10 USD = skupaj 40 USD)

4) Ena razdelilna plošča (s povezavo XT-60) (20 USD)

5) Ena LiPo baterija 3s, 3000-5000mAh s povezavo XT-60 (3000mAh ustreza približno 20 min časa letenja) (25 USD)

6) Veliko propelerjev (ti se veliko zlomijo) (10 USD)

7) En Arduino Mega 2560* (40 USD)

8) En Arduino Uno R3 (20 USD)

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

10) En Arduino Ultimate GPS ščit (ščita ne potrebujete, vendar bo za uporabo drugega GPS -a potrebno drugačno ožičenje) (45 USD)

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

12) En žiroskop/merilnik pospeška MPU-6050, 6DOF (stopnja svobode) (5 USD)

13) En Turnigy 9x 2,4 GHz, 9 -kanalni par oddajnik/sprejemnik (70 USD)

14) Arduino ženske (zložljive) glave (20 USD)

15) Polnilnik LiPo Battery Balance (in 12V DC adapter, nista priložena) (20 USD)

17) Moški vmesniški kabel USB A do B (5 USD)

17) Lepilni trak

18) Skrčljive cevi

Oprema:

1) spajkalnik

2) Spajkanje

3) Plastični epoksid

4) Vžigalnik

5) Odstranjevalec žice

6) Komplet imbus ključev

Izbirne komponente za prenos videa FPV (pogled prve osebe) v realnem času:

1) Majhna kamera FPV (ta povezava do precej poceni in slabe kakovosti, ki smo jo uporabili, lahko zamenjate boljšo) (20 USD)

2) 5.6GHz par video oddajnik/sprejemnik (uporabljenih 832 modelov) (30 USD)

3) 500mAh, 3s (11.1V) LiPo baterija (7 USD) (uporabljali smo jo tudi z vtičem iz banane, vendar za nazaj priporočamo, da uporabite povezano baterijo, saj ima priključek, združljiv s oddajnikom TS832, in zato ne ne zahteva spajkanja).

4) 2 1000mAh 2s (7.4V) LiPo baterijo ali podobno (5 USD). Število mAh ni kritično, če je več kot 1000 mAh ali tako. Enaka trditev kot zgoraj velja za vrsto vtiča za eno od dveh baterij. Druga bo uporabljena za napajanje monitorja, zato jo boste morali spajkati ne glede na vse. Verjetno bi bilo za to najbolje kupiti vtič XT-60 (to smo tudi storili). Povezava za to vrsto je tukaj: 1000mAh 2s (7.4V) LiPo z vtičem XT-60

5) LCD monitor (neobvezno) (15 USD). Za ogled neposredno na prenosnem računalniku lahko uporabite tudi adapter AV-USB in programsko opremo za kopiranje DVD-jev. To daje tudi možnost snemanja videa in fotografij, namesto da jih gledate v realnem času.

6) Če ste kupili baterije z različnimi vtiči od povezanih, boste morda potrebovali ustrezne adapterje. Ne glede na to, vzemite adapter, ki ustreza vtiču za baterijo, ki napaja monitor. Tukaj lahko dobite adapterje XT-60

* = samo za naprednejše projekte

** = samo za bolj osnovni projekt

Stroški:

Če začnete od začetka (vendar s spajkalnikom itd.), Ni sistema FPV: ~ 370 USD

Če že imate oddajnik/sprejemnik RC, polnilec LiPo baterije in LiPo baterijo: ~ 260 USD

Stroški sistema FPV: 80 USD

2. korak: Sestavite okvir

Sestavite okvir
Sestavite okvir
Sestavite okvir
Sestavite okvir
Sestavite okvir
Sestavite okvir

Ta korak je precej preprost, še posebej, če uporabljate isti vnaprej izdelan okvir, ki smo ga uporabili. Preprosto uporabite priložene vijake in sestavite okvir, kot je prikazano, z uporabo ustreznega imbus ključa ali izvijača za vaš okvir. Prepričajte se, da so roke iste barve med seboj (kot je na tej sliki), tako da ima brezpilotnik čist sprednji in zadnji del. Poleg tega se prepričajte, da dolgi del spodnje plošče štrli med krake nasprotne barve. To postane pomembno kasneje.

Korak: Namestite motorje in povežite Escs

Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs
Montirajte motorje in povežite Escs

Zdaj, ko je okvir sestavljen, odstranite štiri motorje in štiri pritrdilne elemente. Za pritrditev motorjev in nosilcev lahko uporabite vijake, ki so vključeni v montažne komplete, ali vijake, ki so ostali od okvirja štirikopterja. Če kupite nosilce, s katerimi smo povezani, boste prejeli dve dodatni komponenti, prikazani zgoraj. Brez teh delov smo imeli dobre motorične zmogljivosti, zato smo jih pustili, da zmanjšamo težo.

Ko motorje privijete, epoksidno ploščo za distribucijo energije (PDB) namestite na vrh zgornje plošče okvirja štirikopterja. Usmerite ga tako, da bo priključek za baterijo usmerjen v krake različnih barv (vzporedno z enim od dolgih delov spodnje plošče), kot je prikazano na zgornji sliki.

Imeti morate tudi štiri stožce propelerja z ženskimi navoji. Zaenkrat jih pustite ob strani.

Zdaj vzemite svoje ESC. Na eni strani bosta izhajali dve žici, ena rdeča in ena črna. Za vsako od štirih ESC vstavite rdečo žico v pozitivni konektor na PDB in črno v negativno. Upoštevajte, da če uporabite drug PDB, lahko ta korak zahteva spajkanje. Zdaj povežite vsako od treh žic, ki prihajajo iz vsakega motorja. Na tej točki ni pomembno, katero žico ESC povežete s katero žico motorja (če vse žice enega ESC povežete z istim motorjem!) Kasneje boste popravili polariteto nazaj. Če so žice obrnjene, ni nevarno; povzroči le, da se motor vrti nazaj.

4. korak: Pripravite Arduino in Shield

Pripravite Arduino in Shield
Pripravite Arduino in Shield
Pripravite Arduino in Shield
Pripravite Arduino in Shield

Opomba, preden začnete

Najprej se lahko odločite, da vse žice spajkate neposredno. Vendar se nam je zdelo, da je uporaba glave zatiča neprecenljiva, saj zagotavlja veliko prilagodljivosti pri odpravljanju težav in prilagajanju projekta. Sledi opis tega, kar smo storili (in priporočamo drugim).

Pripravite Arduino in ščit

Vzemite svoj Arduino Mega (ali Uno, če delate z avtonomnim štirikolesnikom), ščit GPS in zložljive glave. Spojite moški konec zložljivih glav na ščitniku GPS, v vrstah zatičev, vzporednih z vnaprej spajkanimi zatiči, kot je prikazano na zgornji sliki. Prav tako spajkajte v zložljive glave na vrsti pin z oznako 3V, CD,… RX. Z rezalnikom žice odrežite odvečno dolžino na zatičih, ki štrlijo na dnu. Moške glave z upognjenimi vrhovi postavite v vse te zložljive glave. To je tisto, na kar boste spajkali žice za ostale komponente.

Na vrh pritrdite ščit GPS in se prepričajte, da se zatiči ujemajo s tistimi na Arduinu (Mega ali Uno). Upoštevajte, da bo pri uporabi Mega veliko Arduina še vedno izpostavljeno, potem ko namestite ščit.

Postavite električni trak na dno Arduina, ki pokriva vse izpostavljene spajke, da preprečite kratek stik, saj Arduino leži na PDB.

5. korak: Povežite komponente in postavite baterijo (Uno)

Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)
Sestavite komponente skupaj in postavite baterijo (Uno)

Zgornja shema je skoraj enaka tisti, ki jo je izdelal Joop Brooking, saj smo oblikovanje močno oprli na njegovo.

*Upoštevajte, da ta shema predvideva pravilno nameščen ščit GPS, zato se GPS v tej shemi ne prikaže.

Zgornja shema je bila pripravljena s programsko opremo Fritzing, ki je zelo priporočljiva, zlasti za sheme, ki vključujejo Arduino. Večinoma smo uporabljali generične dele, ki jih je mogoče prilagodljivo prilagoditi, saj naših delov na splošno ni bilo v Fritzingovi knjižnici del.

-Prepričajte se, da je stikalo na ščitu GPS preklopljeno na "Direct Write".

-Sedaj povežite vse komponente v skladu z zgornjo shemo (razen baterije!) (Pomembna opomba za podatkovne žice GPS spodaj).

-Upoštevajte, da ste ESC že povezali z motorji in PDB, zato je ta del sheme končan.

-Dalje, upoštevajte, da podatki GPS (rumene žice) prihajajo iz zatičev 0 in 1 na Arduinu (ne ločenih zatičev Tx in Rx na GPS -u). To je zato, ker je nastavljen na "Direct Write" (glej spodaj), GPS oddaja neposredno na serijska vrata strojne opreme na enoti uno (nožici 0 in 1). To je najbolj jasno prikazano na drugi zgornji sliki celotnega ožičenja.

-Ko ožičite RC sprejemnik, glejte zgornjo sliko. Upoštevajte, da gresta podatkovni žici v zgornjo vrstico, medtem ko sta Vin in Gnd v drugi oziroma tretji vrstici (in v drugem do najbolj oddaljenem stolpcu nožic).

-Za ožičenje oddajnika HC-12, RC sprejemnika in 5Vout od PDB do Vin Arduina smo uporabili zložljive glave, medtem ko smo za žiroskop spajkali žice neposredno na ploščo in s toplotno skrčljivo cevjo okoli spajkanje. Lahko se odločite za katero koli komponento, vendar je priporočljivo spajkanje neposredno na žiroskop, saj prihrani prostor, kar olajša montažo majhnega dela. Uporaba glav je za malo manj dela vnaprej, vendar zagotavlja večjo prilagodljivost. Neposredno spajkanje žic je dolgotrajnejša varna povezava, vendar pomeni, da je uporaba te komponente pri drugem projektu težja. Upoštevajte, da če imate glave na ščitu GPS, imate še vedno spodobno mero prilagodljivosti, ne glede na to, kaj počnete. Bistveno je, da podatkovne žice GPS v nožicah 0 in 1 na GPS -u enostavno odstranite in zamenjate.

Ob koncu našega projekta nismo mogli oblikovati dobre metode za pritrditev vseh naših komponent na okvir. Zaradi časovnega pritiska našega razreda so se naše rešitve na splošno vrtele okoli dvostranskega penastega traku, lepilnega traku, električnega traku in vezalk. Priporočamo, da porabite več časa za oblikovanje stabilnih nosilnih konstrukcij, če načrtujete to kot dolgoročnejši projekt. Če želite samo narediti hiter prototip, potem sledite našemu procesu. Prepričajte se, da je žiroskop varno nameščen. To je edini način, da Arduino ve, kaj počne quadcopter, zato boste imeli težave, če se bo premikal med letom.

Ko je vse povezano in nameščeno, vzemite LiPo baterijo in jo potisnite med zgornjo in spodnjo ploščo okvirja. Prepričajte se, da je njegov priključek usmerjen v isto smer kot priključek PDB in da se lahko dejansko povežejo. Za pritrditev baterije smo uporabili lepilni trak (deluje tudi velcro trak, ki pa je bolj moteč kot lepilni trak). Lepilni trak dobro deluje, saj lahko baterijo enostavno zamenjate ali odstranite za polnjenje. Bodite prepričani, da baterijo TESKO prilepite, saj bi se med letom baterija lahko resno poslabšala. Baterije še NE priključite na PDB.

Korak 6: Povežite komponente in postavite baterijo (Mega)

Povežite komponente in postavite baterijo (Mega)
Povežite komponente in postavite baterijo (Mega)
Povežite komponente in postavite baterijo (Mega)
Povežite komponente in postavite baterijo (Mega)
Sestavite komponente skupaj in postavite baterijo (Mega)
Sestavite komponente skupaj in postavite baterijo (Mega)

Zgornja shema je bila pripravljena s programsko opremo Fritzing, ki je zelo priporočljiva, zlasti za sheme, ki vključujejo arduino. Večinoma smo uporabljali generične dele, saj naših delov na splošno ni bilo v Fritzingovi knjižnici del.

-Upoštevajte, da ta shema predvideva pravilno nameščen ščit GPS, zato se GPS v tej shemi ne prikaže.

-Prestavite stikalo na napravi Mega 2560 na "Soft Serial".

-Zdaj priključite vse komponente v skladu z zgornjo shemo (razen baterije!)

-Upoštevajte, da ste ESC že povezali z motorji in PDB, zato je ta del sheme končan.

-Premostitveni kabli od Pin 8 do Rx in Pin 7 do Tx so tam, ker (za razliko od Uno, za katerega je bil izdelan ta ščit), mega nima univerzalnega asinhronega sprejemnika-oddajnika (UART) na nožicah 7 in 8 in tako uporabiti moramo serijske zatiče strojne opreme. Obstaja več razlogov, zakaj potrebujemo serijske zatiče strojne opreme, o katerih bomo razpravljali kasneje.

-Ko ožičite RC sprejemnik, glejte zgornjo sliko. Upoštevajte, da gresta podatkovni žici v zgornjo vrstico, medtem ko sta Vin in Gnd v drugi oziroma tretji vrstici (in v drugem do najbolj oddaljenem stolpcu nožic).

-Za ožičenje oddajnika HC-12, RC sprejemnika in 5Vout od PDB do Vin Arduina smo uporabili zložljive glave, medtem ko smo za žiroskop spajkali žice neposredno in s toplotno skrčljivo cevjo okoli spajka. Lahko se odločite za katero koli komponento. Uporaba glav je za malo manj dela vnaprej, vendar zagotavlja večjo prilagodljivost. Neposredno spajkanje žic je dolgotrajnejša varna povezava, vendar pomeni, da je uporaba te komponente pri drugem projektu težja. Upoštevajte, da če imate glave na ščitu GPS, imate še vedno spodobno mero prilagodljivosti, ne glede na to, kaj počnete.

Ob koncu našega projekta nismo mogli oblikovati dobre metode za pritrditev vseh naših komponent na okvir. Zaradi časovnega pritiska našega razreda so se naše rešitve na splošno vrtele okoli dvostranskega penastega traku, lepilnega traku, električnega traku in vezalk. Priporočamo, da porabite več časa za oblikovanje stabilnih nosilnih konstrukcij, če načrtujete to kot dolgoročnejši projekt. Ob vsem tem, če želite samo narediti hiter prototip, vas prosimo, da sledite našemu procesu. Prepričajte se, da je žiroskop varno nameščen. To je edini način, da Arduino ve, kaj počne quadcopter, zato boste imeli težave, če se bo premikal med letom.

Ko je vse povezano in nameščeno, vzemite LiPo baterijo in jo potisnite med zgornjo in spodnjo ploščo okvirja. Prepričajte se, da je njegov priključek usmerjen v isto smer kot priključek PDB in da se lahko dejansko povežejo. Za pritrditev baterije smo uporabili lepilni trak (tudi velcro trak deluje, vendar je bolj moteč kot lepilni trak). Lepilni trak dobro deluje, saj lahko baterijo enostavno zamenjate ali odstranite za polnjenje. Bodite prepričani, da baterijo TESKO prilepite, saj bi se med letom baterija lahko resno poslabšala. Baterije še ne priključite na PDB.

7. korak: zavežite sprejemnik

Vezani sprejemnik
Vezani sprejemnik
Vezani sprejemnik
Vezani sprejemnik

Vzemite RC sprejemnik in ga začasno priključite na 5V napajanje (bodisi z vklopom Arduina z USB ali 9V napajanjem, bodisi z ločenim napajanjem. LiPo še ne priključujte na Arduino). Vzemite vezni zatič, ki je priložen RC sprejemniku, in ga namestite na zatiče BIND na sprejemniku. Druga možnost je, da zgornji in spodnji zatič v stolpcu BIND skrajšate, kot je prikazano na zgornji fotografiji. Na sprejemniku mora hitro utripati rdeča lučka. Zdaj vzemite krmilnik in pritisnite gumb na hrbtni strani, ko je izklopljen, kot je prikazano zgoraj. Ko pritisnete gumb, vklopite krmilnik. Utripajoča lučka na sprejemniku mora utripati neprekinjeno. Sprejemnik je vezan. Odstranite vezni kabel. Če ste uporabljali drug napajalnik, sprejemnik znova priključite na 5V iz Arduina.

8. korak: (Izbirno) Povežite skupaj in namestite sistem kamere FPV

(Izbirno) Povežite skupaj in namestite sistem kamere FPV
(Izbirno) Povežite skupaj in namestite sistem kamere FPV
(Izbirno) Povežite skupaj in namestite sistem kamere FPV
(Izbirno) Povežite skupaj in namestite sistem kamere FPV

Najprej spajkajte adapter XT-60 z napajalnimi in ozemljitvenimi žicami na monitorju. Te se lahko razlikujejo od monitorja do monitorja, vendar bo napajanje skoraj vedno rdeče, tla skoraj vedno črna. Zdaj vstavite adapter z spajkanimi žicami v svoj 1000mAh LiPo z vtičem XT-60. Monitor se mora vklopiti z (običajno) modrim ozadjem. To je najtežji korak!

Zdaj privijte antene na sprejemnik in oddajnik.

Priključite svoj majhen 500 mAh Lipo na oddajnik. Skrajni desni zatič (tik pod anteno) je ozemljen (V_) baterije, naslednji levi zatič je V+. Pridejo tri žice, ki gredo do kamere. Vaša kamera mora imeti vtič tri v enem, ki se prilega oddajniku. Prepričajte se, da imate na sredini rumeno podatkovno žico. Če ste za to uporabili baterije, s katerimi smo povezani, za ta korak ne bi bilo treba spajkati.

Končno priključite drugo baterijo 1000 mAh z izhodno žico DC, ki je priložena sprejemniku, nato pa jo priključite v vrata DC na sprejemniku. Na koncu priključite črni konec kabla AVin, ki ste ga dobili s sprejemnikom, na vrata AVin na sprejemniku, drugi (rumeni, ženski) konec pa na rumeni moški konec kabla AVin na monitorju.

Na tem mestu bi morali na monitorju videti pogled kamere. Če ne morete, se prepričajte, da sta sprejemnik in oddajnik vklopljena (na njihovih majhnih zaslonih bi morali videti številke) in da sta na istem kanalu (za oba smo uporabili kanal 11 in dobro uspeli). Poleg tega boste morda morali spremeniti kanal na monitorju.

Sestavite komponente na okvir.

Ko nastavitev deluje, odklopite baterije, dokler niste pripravljeni za letenje.

9. korak: Nastavite sprejem podatkov GPS

Nastavite sprejem podatkov GPS
Nastavite sprejem podatkov GPS
Nastavite sprejem podatkov GPS
Nastavite sprejem podatkov GPS

Priključite svoj drugi Arduino z drugim oddajnikom HC-12, kot je prikazano na zgornji shemi, pri tem pa upoštevajte, da se bo nastavitev napajala samo, kot je prikazano, če je priključena na računalnik. Prenesite priloženo kodo oddajnika, odprite serijski monitor na 9600 baud.

Če uporabljate bolj osnovno nastavitev, bi morali začeti prejemati stavke GPS, če je vaš ščit GPS napajan in pravilno povezan z drugim oddajnikom HC-12 (in če je stikalo na ščitu v položaju "Direct Write").

Pri Mega se prepričajte, da je stikalo na "Soft Serial".

10. korak: Izvedite nastavitveno kodo (Uno)

Ta koda je enaka tisti, ki jo je Joop Brokking uporabil v svoji vadnici za štirikontropter Arduino, in zanj si zasluži vse zasluge.

Ko je baterija odklopljena, s kablom USB povežite računalnik z Arduinom in naložite priloženo nastavitveno kodo. Vklopite oddajnik RC. Odprite serijski monitor na 57600 baud in sledite navodilom.

Pogoste napake:

Če se koda ne prenese, se prepričajte, da sta nožici 0 in 1 izklopljeni na oknu UNO/GPS. To so ista vrata strojne opreme, ki jih naprava uporablja za komunikacijo z računalnikom, zato morajo biti prosta.

Če koda preskoči med kopico korakov hkrati, preverite, ali je stikalo GPS v položaju "Direct Write".

Če sprejemnik ni zaznan, se prepričajte, da je na vašem sprejemniku neprekinjeno (vendar zatemnjena) rdeča luč, ko je oddajnik vklopljen. Če je tako, preverite ožičenje.

Če žiroskop ni zaznan, je to lahko zato, ker je žiroskop poškodovan ali če imate drugačen tip žiroskopa od tistega, za katerega je koda namenjena za pisanje.

11. korak: Izvedite nastavitveno kodo (mega)

Ta koda je enaka tisti, ki jo je Joop Brokking uporabil v svoji vadnici za štirikontropter Arduino, in zanj si zasluži vse zasluge. Ožičenje za Mega smo preprosto prilagodili tako, da so vhodi sprejemnika ustrezali pravilnim zatičem za prekinitev pri menjavi pin.

Ko je baterija odklopljena, s kablom USB povežite računalnik z Arduinom in naložite priloženo nastavitveno kodo. Odprite serijski monitor na 57600 baud in sledite navodilom.

12. korak: Umerite ESC (Uno)

Še enkrat, ta koda je enaka kodi Joop Brokkinga. Vse spremembe so bile narejene z namenom integriranja GPS -ja in Arduina in jih je mogoče najti kasneje v opisu konstrukcije naprednejšega štirikopterja.

Naložite priloženo kodo za umerjanje ESC. Na serijski monitor vnesite črko 'r' in pritisnite tipko return. Prikazati bi se morale vrednosti RC krmilnika v realnem času. Preverite, ali se razlikujejo od 1000 do 2000 glede na skrajnosti dušenja, premikanja, nagiba in nihanja. Nato napišite 'a' in pritisnite return. Pustite kalibracijo žiroskopa in nato preverite, ali žiroskop registrira gibanje štirikolesnika. Zdaj izvlecite arduino iz računalnika, potisnite plin do konca na krmilniku in priključite baterijo. ESC -ji bi morali ciklirati različne tone piskov (vendar se to lahko razlikuje glede na ESC in njegovo vdelano programsko opremo). Potisnite plin do konca navzdol. ESC -ji morajo oddajati manjše piske, nato pa utihniti. Odklopite baterijo.

Neobvezno lahko na tej točki s pomočjo stožcev, ki ste jih dobili s kompletom dodatne opreme za pritrditev motorja, tesno privijete pogonske vijake. Nato vnesite številke 1 - 4 na serijskem monitorju, da vklopite motorje 1 - 4 pri najnižji moči. Program bo zabeležil količino tresenja zaradi neravnovesja rekvizitov. To lahko poskusite odpraviti tako, da na eno ali drugo stran rekvizitov dodate majhne količine škotskega traku. Ugotovili smo, da bi lahko leteli brez tega koraka, vendar morda nekoliko manj učinkovito in bolj glasno, kot če bi uravnotežili rekvizite.

13. korak: Umerite ESC (Mega)

Ta koda je zelo podobna Brokkingovi kodi, vendar smo jo (in ustrezno ožičenje) prilagodili za delo z Mega.

Naložite priloženo kodo za umerjanje ESC. Na serijski monitor vnesite črko 'r' in pritisnite tipko return. Prikazati bi se morale vrednosti RC krmilnika v realnem času. Preverite, ali se razlikujejo od 1000 do 2000 glede na skrajnosti dušenja, premikanja, nagiba in nihanja.

Nato napišite 'a' in pritisnite return. Pustite kalibracijo žiroskopa in nato preverite, ali žiroskop registrira gibanje štirikolesnika.

Zdaj izvlecite arduino iz računalnika, potisnite plin do konca na krmilniku in priključite baterijo. ESC -ji morajo oddajati tri nizke piske, ki jim sledi visok pisk (vendar je to lahko drugače, odvisno od ESC -ja in njegove vdelane programske opreme). Potisnite plin do konca navzdol. Odklopite baterijo.

Spremembe, ki smo jih naredili v tej kodi, so bile prehod z uporabe PORTD za nožice ESC na uporabo PORTA in nato spreminjanje bajtov, zapisanih na ta vrata, tako da aktiviramo ustrezne zatiče, kot je prikazano na shemi ožičenja. Ta sprememba je posledica tega, da registrski zatiči PORTD niso na istem mestu na Megi kot na Uno. Te kode nismo mogli v celoti preizkusiti, saj smo sodelovali s staro blagovno znamko Mega, ki jo je imela trgovina naše šole. To je pomenilo, da iz nekega razloga vsi registrski zatiči PORTA niso mogli pravilno aktivirati ESC. Težave smo imeli tudi z uporabo operatorja ali equals (| =) v nekaterih testnih kodah. Nismo prepričani, zakaj je to povzročalo težave pri zapisovanju bajtov za nastavitev napetosti pin ESC, zato smo Brookingovo kodo spremenili čim manj. Menimo, da je ta koda zelo blizu funkcionalnosti, vendar se lahko vaša kilometrina razlikuje.

14. korak: Vzemite se v zraku !! (Uno)

In spet, ta tretji del genialne kode je delo Joop Brokkinga. Spremembe vseh teh treh kosov so prisotne le pri poskusu integracije podatkov GPS v Arduino.

Ko so vaši pogonski motorji trdno pritrjeni na okvir in so vse komponente pritrjene, pritrjene ali drugače pritrjene, naložite kodo kontrolorja leta na svoj Arduino, nato pa Arduino odklopite iz računalnika.

Quadcopter vzemite ven, priključite baterijo in vklopite oddajnik. Po želji s seboj prinesite prenosni računalnik, povezan z vašo nastavitvijo sprejemanja GPS -ja, ter nastavitev in monitor za sprejem videa. Naložite kodo oddajnika na vaš zemeljski Arduino, odprite serijski monitor na 9600 baudov in opazujte, kako se pripeljejo podatki GPS.

Zdaj ste pripravljeni na let. Potisnite plin navzdol in zavijte levo, da aktivirate štirikontroler, nato pa nežno dvignite plin, da se lebdi. Začnite leteti nizko na tla in po mehkih površinah, kot je trava, dokler se ne počutite udobno.

Oglejte si priloženi videoposnetek, na katerem smo navdušeno leteli z brezpilotnim letalom, ko smo prvič uspeli omogočiti delovanje brezpilotnega letala in GPS.

Korak 15: Vzemite se v zraku !! (Mega)

Zaradi prekinitve s kalibracijsko kodo ESC za Mega nikoli nismo uspeli ustvariti kode krmilnika letenja za to ploščo. Če ste prišli do te točke, potem si mislim, da ste se vsaj poigrali s kalibracijsko kodo ESC, da bo delovala za Mega. Zato boste verjetno morali v kodo kontrolorja leta narediti podobne spremembe, kot ste jih naredili v zadnjem koraku. Če naša koda za umerjanje ESC za Mega čarobno deluje brez kakršnih koli drugih sprememb, potem morate za kodo zaloge narediti le nekaj stvari, da bo delovala za ta korak. Najprej boste morali pregledati in vse primere PORTD zamenjati s PORTA. Prav tako ne pozabite spremeniti DDRD v DDRA. Nato boste morali spremeniti vse bajte, zapisane v register PORTA, tako da aktivirajo ustrezne zatiče. Če želite to narediti, z bajtom B11000011 nastavite nožice na visoko, B00111100 pa na nizko. Vso srečo in povejte nam, če uspešno letite z Mega!

Korak 16: Kako smo z mega dizajnom prišli do trenutnega položaja

Ta projekt je bil za nas, začetnike hobija v Arduinu in elektroniki, izjemna učna izkušnja. Zato smo vseeno vključili sago o vsem, kar smo naleteli pri poskusu GPS -a, omogočili kodo Joop Brokkinga. Ker je Brokkingova koda tako temeljita in veliko bolj zapletena od vsega, kar smo pisali, smo se odločili, da jo čim manj spremenimo. Poskusili smo pridobiti ščit GPS za pošiljanje podatkov na Arduino, nato pa naj nam Arduino pošlje te podatke preko oddajnika HC12, ne da bi na kakršen koli način spremenili kodo leta ali ožičenje. Ko smo pogledali sheme in ožičenje našega Arduino Uno, da bi ugotovili, kateri zatiči so na voljo, smo spremenili kodo oddajnika GPS, ki smo jo uporabljali za obvladovanje obstoječe zasnove. Nato smo ga preizkusili in se prepričali, da vse deluje. Na tej točki so se stvari zdele obetavne.

Naslednji korak je bil integracija kode, ki smo jo pravkar spremenili in preizkusili z Brokkingovim krmilnikom letenja. To ni bilo težko, vendar smo hitro naleteli na napako. Brokkingov krmilnik letenja se opira na knjižnice Arduino Wire in EEPROM, medtem ko je naša koda GPS uporabljala tako knjižnico Software Serial kot knjižnico Arduino GPS. Ker se knjižnica Wire sklicuje na knjižnico programske opreme Serial, smo naleteli na napako, pri kateri se koda ni sestavila, ker obstaja "več definicij za _vector 3_", karkoli že to pomeni. Po ogledu Googla in iskanju po knjižnicah smo na koncu ugotovili, da ta knjižnični konflikt onemogoča skupno uporabo teh kodov. Zato smo iskali alternative.

Ugotovili smo, da je edina kombinacija knjižnic, ki nam ni povzročila napak, preklop standardne knjižnice GPS na neoGPS in nato uporaba AltSoftSerial namesto programske opreme Serial. Ta kombinacija je delovala, vendar lahko AltSoftSerial deluje samo s posebnimi zatiči, ki v naši zasnovi niso bili na voljo. To nas je pripeljalo do uporabe Mega. Arduino Megas ima več serijskih vrat strojne opreme, kar pomeni, da bi lahko obšli ta knjižnični konflikt, tako da nam sploh ni treba odpirati serijskih vrat programske opreme.

Ko pa smo začeli uporabljati Mega, smo hitro ugotovili, da je konfiguracija pin drugačna. Zatiči na Uno, ki imajo prekinitve, so na Megi različni. Podobno so bili zatiči SDA in SCL na različnih lokacijah. Po preučevanju diagramov pin za vsako vrsto Arduina in osvežitvi registrov, ki so bili v kodi, smo lahko zagnali kodo za nastavitev leta z le minimalnim ponovnim ožičenjem in brez sprememb programske opreme.

Koda za umerjanje ESC je tam, kjer smo začeli naleteti na težave. Tega smo se na kratko dotaknili že prej, vendar v bistvu koda uporablja registre pinov za uravnavanje zatičev, ki se uporabljajo za nadzor ESC. To otežuje branje kode kot uporaba standardne funkcije pinMode (); vendar pa koda deluje hitreje in hkrati aktivira zatiče. To je pomembno, ker koda leta poteka v skrbno časovno določeni zanki. Zaradi razlik v pin -jih med Arduinosom smo se odločili za uporabo registra vrat A na Megi. Vendar pa pri našem testiranju vsi zatiči niso dali enake izhodne napetosti, ko so jim rekli, naj delujejo visoko. Nekateri zatiči so imeli izhod okoli 4,90 V, drugi pa so nam približali 4,95 V. Očitno so ESC -ji, ki jih imamo, nekoliko prefinjeni, zato bi pravilno delovali le, če bi uporabili zatiče z višjo napetostjo. To nas je nato prisililo, da smo spremenili bajte, ki smo jih zapisali za registracijo A, tako da smo se pogovarjali s pravilnimi zatiči. Več informacij o tem je v razdelku za umerjanje ESC.

To je približno toliko, kolikor smo prišli v tem delu projekta. Ko smo šli testirat to spremenjeno kodo umerjanja ESC, se je nekaj skrajšalo in izgubili smo komunikacijo z našim Arduinom. To nas je zelo zmedlo, ker nismo spremenili nobenega ožičenja. To nas je prisililo, da smo se umaknili in spoznali, da imamo le nekaj dni časa, da po nekaj tednih poskušamo združiti svoje nezdružljive kose. Zato smo se z Uno vrnili nazaj in ustvarili enostavnejši projekt. Še vedno pa mislimo, da je naš pristop blizu sodelovanja z Mego z malo več časa.

Naš cilj je, da vam ta razlaga ovir, na katere smo naleteli, pomaga, če delate na spreminjanju Brokkingove kode. Prav tako nikoli nismo imeli priložnosti poskusiti kodirati avtonomnih funkcij upravljanja, ki temeljijo na GPS -u. To morate ugotoviti, ko ustvarite delujoči dron z Mego. Vendar pa je po nekaterih predhodnih Googlovih raziskavah videti, da je uvedba Kalmanovega filtra najbolj stabilen in natančen način za določitev položaja med letom. Predlagamo, da malo raziščete, kako ta algoritem optimizira ocene stanja. Razen tega, vso srečo in nam sporočite, če pridete dlje, kot smo zmogli!

Priporočena: