Talaan ng mga Nilalaman:

Arduino Drone With GPS: 16 Hakbang
Arduino Drone With GPS: 16 Hakbang

Video: Arduino Drone With GPS: 16 Hakbang

Video: Arduino Drone With GPS: 16 Hakbang
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Hunyo
Anonim
Arduino Drone With GPS
Arduino Drone With GPS

Nagtakda kami upang bumuo ng isang Arduino na kinokontrol at nagpapatatag, na pinagana ng GPS na first-person-view (FPV) na quadcopter drone na may pagbabalik sa bahay, pumunta upang mag-coordinate, at pag-andar ng GPS hold. Naipapalagay namin na ang pagsasama-sama ng mga mayroon nang mga programa ng Arduino at mga kable para sa isang quadcopter na walang GPS sa mga nasa isang sistema ng paghahatid ng GPS ay magiging prangka at madali kaming makakapunta sa mas kumplikadong mga gawain sa programa. Gayunpaman, isang nakakagulat na halaga ang kailangang baguhin upang ma-mesh ang dalawang proyekto na ito, at sa gayon ay nagtapos kami sa paggawa ng isang GPS na pinagana ng GPS na FPV quadcopter, nang walang alinman sa idinagdag na pagpapaandar.

Nagsama kami ng mga tagubilin sa kung paano magtiklop ang aming produkto kung masaya ka sa mas limitadong quadcopter.

Isinama din namin ang lahat ng mga hakbang na kinuha namin patungo sa isang mas autonomous na quadcopter. Kung sa tingin mo ay komportable ka sa paghuhukay ng malalim sa Arduino o mayroon nang maraming karanasan sa Arduino at nais na gawin ang aming hintuan bilang isang jumping-off point para sa iyong sariling paggalugad, kung gayon ang Instructable na ito ay para din sa iyo.

Ito ay isang mahusay na proyekto upang malaman ang isang bagay tungkol sa pagbuo at pag-coding para sa Arduino gaano man karami ang iyong karanasan. Gayundin, sana ay lumayo ka kasama ang isang drone.

Ang setup ay ang mga sumusunod:

Sa listahan ng mga materyales, kinakailangan ang mga bahagi na walang asterisk para sa parehong layunin.

Ang mga bahagi na may isang asterisk ay kinakailangan lamang para sa hindi natapos na proyekto ng isang mas autonomous quadcopter.

Ang mga bahagi na may dalawang asterisk ay kinakailangan lamang para sa mas limitadong quadcopter.

Ang mga hakbang na karaniwan sa parehong proyekto ay walang marker pagkatapos ng pamagat

Kinakailangan lamang ang mga hakbang para sa mas limitadong di-autonomous na quadcopter na magkaroon ng "(Uno)" pagkatapos ng pamagat.

Kinakailangan lamang ang mga hakbang para sa isinasagawa na autonomous quadcopter na magkaroon ng "(Mega)" pagkatapos ng pamagat.

Upang mabuo ang Uno-based quad, sundin ang mga hakbang sa pagkakasunud-sunod, laktawan ang anumang mga hakbang sa "(Mega)" pagkatapos ng pamagat.

Upang magtrabaho sa quad na batay sa Mega, sundin ang mga hakbang sa pagkakasunud-sunod, laktawan ang anumang mga hakbang sa "(Uno)" pagkatapos ng pamagat.

Hakbang 1: Ipunin ang Mga Materyales

Mga Bahagi:

1) Isang frame ng quadcopter (malamang na hindi mahalaga ang eksaktong frame) ($ 15)

2) Apat na 2830, 900kV brushless motors (o katulad), at apat na mounting accessory pack (4x $ 6 + 4x $ 4 = $ 40 kabuuan)

3) Apat na 20A UBEC ESC (4x $ 10 = $ 40 kabuuan)

4) Isang board ng pamamahagi ng kuryente (na may koneksyon sa XT-60) ($ 20)

5) Isang 3s, 3000-5000mAh LiPo na baterya na may koneksyon na XT-60 (3000mAh ay tumutugma sa tinatayang 20 minuto ng oras ng paglipad) ($ 25)

6) Maraming mga tagapagtaguyod (masira ang mga ito) ($ 10)

7) Isang Arduino Mega 2560 * ($ 40)

8) Isang Arduino Uno R3 ($ 20)

9) Isang pangalawang Arduino Uno R3 ** ($ 20)

10) Isang Arduino Ultimate GPS Shield (hindi mo kailangan ang kalasag, ngunit ang paggamit ng ibang GPS ay mangangailangan ng iba't ibang mga kable) ($ 45)

11) Dalawang HC-12 wireless transceiver (2x $ 5 = $ 10)

12) Isang MPU- 6050, 6DOF (antas ng kalayaan) gyro / accelerometer ($ 5)

13) Isang Turnigy 9x 2.4GHz, 9 channel transmitter / receiver na pares ($ 70)

14) Arduino babaeng (nakasalansan) na mga header ($ 20)

15) Charger ng Balanse ng Baterya ng LiPo (at 12V DC adapter, hindi, kasama) ($ 20)

17) USB A to B male to male adapter cord ($ 5)

17) Duct tape

18) Paliitin ang tubo

Kagamitan:

1) Isang bakal na bakal

2) Solder

3) Plastic Epoxy

4) mas magaan

5) Wire stripper

6) Isang hanay ng mga wrenches ni Allen

Opsyonal na mga bahagi para sa real-time FPV (unang pagtingin ng tao) na paghahatid ng video:

1) Isang maliit na FPV camera (ang mga link na ito sa medyo murang at hindi magandang kalidad na ginamit namin, maaari mong palitan ang isang mas mahusay) ($ 20)

2) 5.6GHz video transmitter / receiver pair (832 na mga modelo ang ginamit) ($ 30)

3) 500mAh, 3s (11.1V) LiPo na baterya ($ 7) (ginamit namin gamit ang isang plug ng saging, ngunit inirerekumenda namin sa paggunita na ginamit mo ang naka-link na baterya, dahil mayroon itong isang konektor na katugma sa transmiter ng TS832, at sa gayon ay hindi ' t nangangailangan ng paghihinang).

4) 2 1000mAh 2s (7.4V) LiPo na baterya, o katulad ($ 5). Bilang ng mah hindi kritikal hangga't ito ay higit sa 1000mAh o higit pa. Ang parehong pahayag tulad ng nasa itaas ay nalalapat sa uri ng plug para sa isa sa dalawang baterya. Ang isa ay gagamitin upang mapagana ang monitor, kaya't kailangan mong maghinang kahit ano man. Marahil pinakamahusay na kumuha ng isa sa isang XT-60 plug para dito (iyon ang ginawa namin). Ang isang link para sa uri na iyon ay narito: 1000mAh 2s (7.4V) LiPo na may XT-60 plug

5) LCD monitor (opsyonal) ($ 15). Maaari mo ring gamitin ang isang AV-USB adapter at DVD copying software upang direktang matingnan sa isang laptop. Nagbibigay din ito ng pagpipilian ng pagrekord ng video at mga larawan, sa halip na tingnan lamang sila nang realtime.

6) Kung bumili ka ng mga baterya na may iba't ibang mga plug mula sa mga naka-link, maaaring kailanganin mo ng naaangkop na mga adaptor. Anuman, kumuha ng isang adapter na naaayon sa plug para sa baterya na nagpapagana sa monitor. Narito kung saan makakakuha ng mga adaptor ng XT-60

* = para lamang sa mas advanced na proyekto

** = para lamang sa mas pangunahing proyekto

Mga Gastos:

Kung nagsisimula mula sa simula (ngunit may isang panghinang, atbp…), walang sistema ng FPV: ~ $ 370

Kung mayroon ka nang isang RC transmitter / receiver, charger ng baterya ng LiPo, at baterya ng LiPo: ~ $ 260

Gastos ng FPV system: $ 80

Hakbang 2: Magtipon ng Frame

Ipunin ang Frame
Ipunin ang Frame
Ipunin ang Frame
Ipunin ang Frame
Ipunin ang Frame
Ipunin ang Frame

Ang hakbang na ito ay medyo prangka, lalo na kung gumagamit ng parehong paunang ginawa na frame na ginamit namin. Gamitin lamang ang kasama na mga tornilyo at isama ang frame tulad ng ipinakita, gamit ang isang naaangkop na allen wrench o distornilyador para sa iyong frame. Tiyaking ang mga braso ng parehong kulay ay katabi ng bawat isa (tulad ng sa larawang ito), upang ang drone ay may isang malinaw na harap at likod. Dagdag dito, siguraduhin na ang mahabang bahagi ng ilalim ng plato ay dumidikit sa pagitan ng mga braso ng kabaligtaran. Nagiging mahalaga ito sa paglaon.

Hakbang 3: Mount Motors at Connect Escs

Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs
Mount Motors at Connect Escs

Ngayong naka-assemble na ang frame, ilabas ang apat na motor at apat na mounting accessories. Maaari mong gamitin ang alinman sa mga tornilyo na kasama sa mga mounting set, o mga tornilyo na natira mula sa frame ng quadcopter upang i-tornilyo ang mga motor at mount sa lugar. Kung bibilhin mo ang mga pag-mount na na-link namin, makakatanggap ka ng dalawang labis na mga sangkap, nakalarawan sa itaas. Mayroon kaming mahusay na pagganap ng motor nang wala ang mga bahaging ito, kaya't iniwan namin ang mga ito upang mabawasan ang timbang.

Kapag ang mga motor ay nai-screwed sa lugar, epoxy ang power pamamahagi board (PDB) sa lugar sa tuktok ng tuktok na plato ng quadcopter frame. Siguraduhin na i-orient mo ito tulad ng ang konektor ng baterya ay tumuturo sa pagitan ng magkakaibang kulay na mga bisig (kahanay sa isa sa mga mahahabang bahagi ng ilalim na plato), tulad ng larawan sa itaas.

Dapat ka ring magkaroon ng apat na mga propeller cones na may mga babaeng mga thread. Itabi ang mga ito sa ngayon.

Ngayon ilabas ang iyong mga ESC. Ang isang panig ay magkakaroon ng dalawang wires na lalabas dito, isang pula at isang itim. Para sa bawat isa sa apat na ESC, ipasok ang pulang kawad sa positibong konektor sa PDB at ang itim sa negatibo. Tandaan na kung gumagamit ka ng ibang PDB, ang hakbang na ito ay maaaring mangailangan ng paghihinang. Ikonekta ngayon ang bawat isa sa tatlong mga wire na lumalabas sa bawat motor. Sa puntong ito, hindi mahalaga kung aling ESC wire ang ikinonekta mo sa aling motor wire (basta ikinokonekta mo ang lahat ng mga wire ng isang ESC na may parehong motor!) Itatama mo ang anumang paatras na polarity sa paglaon. Ito ay hindi mapanganib kung ang mga wire ay baligtad; nagreresulta lamang ito sa pag-ikot ng motor paatras.

Hakbang 4: Ihanda ang Arduino at Shield

Ihanda ang Arduino at Shield
Ihanda ang Arduino at Shield
Ihanda ang Arduino at Shield
Ihanda ang Arduino at Shield

Isang tala bago ka magsimula

Una, maaari kang pumili upang maghinang lahat ng mga wire nang direkta. Gayunpaman, nakita naming napakahalaga na gumamit ng mga pin header dahil nagbibigay sila ng maraming kakayahang umangkop para sa pag-troubleshoot at pag-angkop sa proyekto. Ang sumusunod ay isang paglalarawan ng aming ginawa (at inirerekumenda ang iba na gawin).

Ihanda ang Arduino at kalasag

Ilabas ang iyong Arduino Mega (o isang Uno kung ginagawa ang non-autonomous quad), kalasag ng GPS, at mga stackable header. Inilagay ang dulo ng lalaki ng mga naka-stack na header sa lugar sa kalasag ng GPS, sa mga hilera ng mga pin na kahilera sa mga paunang solder na pin, tulad ng ipinakita sa imahe sa itaas. Maghinang din sa mga naka-stack na header sa hilera ng pin na may label na 3V, CD,… RX. Gumamit ng isang wire cutter upang i-clip ang labis na haba sa mga pin na dumidikit sa ibaba. Maglagay ng mga header ng lalaki na may baluktot na mga tuktok sa lahat ng mga nakalagay na header na ito. Ito ang mga hihihinang mong wire para sa natitirang bahagi.

Ikabit ang kalasag ng GPS sa tuktok, siguraduhin na ang mga pin ay tumutugma sa mga nasa Arduino (Mega o Uno). Tandaan na kung gumagamit ng Mega, maraming Arduino ay malantad pa rin pagkatapos mong mailagay ang kalasag sa lugar.

Maglagay ng electrical tape sa ilalim ng Arduino, na takip ang lahat ng mga nakalantad na pin na nagbebenta, upang maiwasan ang anumang maikling circuit habang ang Arduino ay nakasalalay sa PDB.

Hakbang 5: Wire Together Components at Place Battery (Uno)

Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)
Wire Together Components at Place Battery (Uno)

Ang eskematiko sa itaas ay halos magkapareho sa ginawa ni Joop Brooking habang pinagtutuunan namin ng disenyo ang kanyang disenyo.

* Tandaan na ang eskematiko na ito ay ipinapalagay ang isang maayos na naka-mount na kalasag ng GPS, at sa gayon ang GPS ay hindi lilitaw sa eskematiko na ito.

Ang eskematiko sa itaas ay inihanda gamit ang Fritzing software, na lubos na inirerekomenda lalo na para sa mga eskematiko na kinasasangkutan ng Arduino. Karamihan sa amin ay gumawa ng mga generic na bahagi na maaaring mai-edit nang may kakayahang umangkop, dahil ang aming mga bahagi sa pangkalahatan ay wala sa kasamang bahagi ng library ng Fritzing.

-Masiguro na ang switch sa kalasag ng GPS ay inilipat sa "Direktang Isulat."

-Ng wire up ang lahat ng mga bahagi ayon sa eskematiko sa itaas (maliban sa baterya!) (Mahalagang tala sa mga wire ng data ng GPS sa ibaba).

-Tandaan na nag-wire mo na ang mga ESC sa mga motor at PDB, kaya't ang bahaging ito ng eskematiko ay tapos na.

-Dagdag pa, tandaan na ang data ng GPS (dilaw na mga wire) ay lumabas sa mga pin 0 at 1 sa Arduino (hindi ang magkakahiwalay na Tx at Rx na mga pin sa GPS). Iyon ay dahil naka-configure sa "Direktang Isulat" (tingnan sa ibaba), direktang output ang GPS sa mga hardware serial port sa uno (pin 0 at 1). Ito ay pinaka-malinaw na ipinakita sa pangalawang larawan sa itaas ng kumpletong mga kable.

-Kapag ang mga kable ng RC receiver, sumangguni sa larawan sa itaas. Pagmasdan na ang mga wire ng data ay papunta sa tuktok na hilera, habang ang Vin at Gnd ay nasa pangalawa at pangatlong mga hilera, ayon sa pagkakabanggit (at sa pangalawang hanggang sa pinakamalayong haligi ng mga pin).

-Upang gawin ang mga kable para sa HC-12 transceiver, RC receiver, at 5Vout mula sa PDB hanggang Vin ng Arduino ginamit namin ang mga nakasalansan na header, samantalang para sa gyro ay na-solder namin ang mga wire nang direkta sa board at ginagamit ang heat-shrink tubing sa paligid ng panghinang Maaari mong piliing gawin ang alinman sa alinman sa mga bahagi, subalit ang direktang paghihinang sa gyro ay inirerekumenda dahil nakakatipid ito ng puwang na ginagawang mas madaling i-mount ang maliit na bahagi. Ang paggamit ng mga header ay isang maliit na halaga ng mas maraming trabaho sa harap, ngunit nagbibigay ng higit na kakayahang umangkop. Direkta ang mga wire na panghinang ay isang mas ligtas na pang-matagalang koneksyon, ngunit nangangahulugang ang paggamit ng sangkap na iyon sa ibang proyekto ay mas mahirap. Tandaan na kung gumamit ka ng mga header sa kalasag ng GPS, mayroon ka pa ring disenteng halaga ng kakayahang umangkop anuman ang iyong ginagawa. Pangkahalagaan, siguraduhin na ang data ng mga wire ng GPS sa mga pin 0 at 1 sa GPS ay madaling alisin at palitan.

Sa pagtatapos ng aming proyekto, hindi namin nagawang magdisenyo ng isang mahusay na pamamaraan para sa paglakip ng lahat ng aming mga bahagi sa frame. Dahil sa presyon ng oras ng aming klase, ang aming mga solusyon sa pangkalahatan ay umiikot sa dobleng panig na foam tape, duct tape, electrical tape, at mga kurbatang zip. Masidhing inirerekumenda namin na gugulin mo ang mas maraming oras sa pagdidisenyo ng matatag na mga istraktura ng pag-mount kung balak mo itong maging isang mas matagal na proyekto. Sa lahat ng sinabi, kung nais mo lamang gumawa ng isang mabilis na prototype, pagkatapos ay huwag mag-atubiling sundin ang aming proseso. Gayunpaman, tiyakin na ang gyro ay naka-mount nang ligtas. Ito ang tanging paraan na nalalaman ng Arduino kung ano ang ginagawa ng quadcopter, kaya kung gumalaw ito sa paglipad magkakaroon ka ng mga isyu.

Sa lahat ng naka-wire at nasa lugar, kunin ang iyong baterya ng LiPo at i-slide ito sa pagitan ng mga tuktok at ibabang plato ng frame. Siguraduhin na ang konektor nito ay nakaturo sa parehong direksyon tulad ng konektor ng PDB, at maaari talaga silang kumonekta. Gumamit kami ng duct tape upang i-hold ang baterya sa lugar (gumagana rin ang velcro tape, ngunit mas nakakainis kaysa sa duct tape). Gumagana nang maayos ang duct tape sapagkat madaling mapapalitan ng isang tao ang baterya o alisin ito para sa singilin. Gayunpaman, dapat mong siguraduhin na i-tape mo ang baterya nang mahigpit, na parang ang baterya ay gumagalaw sa panahon ng paglipad ito ay maaaring seryoso na mapahamak ang balanse ng drone. HUWAG pa ikonekta ang baterya sa PDB.

Hakbang 6: Wire Together Components at Place Battery (Mega)

Wire Together Components at Place Battery (Mega)
Wire Together Components at Place Battery (Mega)
Wire Together Components at Place Battery (Mega)
Wire Together Components at Place Battery (Mega)
Wire Together Components at Place Battery (Mega)
Wire Together Components at Place Battery (Mega)

Ang eskematiko sa itaas ay inihanda gamit ang Fritzing software, na lubos na inirerekomenda lalo na para sa mga eskematiko na kinasasangkutan ng arduino. Karamihan sa amin ay gumawa ng mga generic na bahagi, dahil ang aming mga bahagi sa pangkalahatan ay wala sa kasama na bahagi ng library ng Fritzing.

-Tandaan na ang eskematiko na ito ay ipinapalagay ang isang maayos na naka-mount na kalasag ng GPS, at sa gayon ang GPS ay hindi lilitaw sa eskematikong ito.

-Flip ang switch sa iyong Mega 2560 sa "Soft Serial."

-Ng wire up ang lahat ng mga bahagi ayon sa eskematiko sa itaas (maliban sa baterya!)

-Tandaan na nag-wire mo na ang mga ESC sa mga motor at PDB, kaya't ang bahaging ito ng eskematiko ay tapos na.

-Ang mga jumper cable mula Pin 8 hanggang Rx at Pin 7 hanggang Tx ay naroroon dahil (hindi tulad ng Uno, kung saan ginawa ang kalasag na ito), ang mega ay walang isang unibersal na asynchronous receiver-transmitter (UART) sa mga pin 7 at 8, at sa gayon kailangan nating gumamit ng mga serial serial pin. Mayroong higit pang mga kadahilanan na kailangan namin ng mga serial serial pin, tinalakay sa paglaon.

-Kapag ang mga kable ng RC receiver, sumangguni sa larawan sa itaas. Pagmasdan na ang mga wire ng data ay papunta sa tuktok na hilera, habang ang Vin at Gnd ay nasa pangalawa at pangatlong mga hilera, ayon sa pagkakabanggit (at sa pangalawang hanggang sa pinakamalayong haligi ng mga pin).

-Upang gawin ang mga kable para sa HC-12 transceiver, RC receiver, at 5Vout mula sa PDB hanggang Vin ng Arduino ginamit namin ang mga nakasalansan na header, samantalang para sa gyro direkta naming na-solder ang mga wire at ginagamit ang heat-shrink tubing sa paligid ng solder. Maaari kang pumili upang gawin ang alinman sa alinman sa mga bahagi. Ang paggamit ng mga header ay isang maliit na halaga ng mas maraming trabaho sa harap, ngunit nagbibigay ng higit na kakayahang umangkop. Direkta ang mga wire na panghinang ay isang mas ligtas na pang-matagalang koneksyon, ngunit nangangahulugang ang paggamit ng sangkap na iyon sa ibang proyekto ay mas mahirap. Tandaan na kung gumamit ka ng mga header sa kalasag ng GPS, mayroon ka pa ring disenteng dami ng kakayahang umangkop anuman ang iyong ginagawa.

Sa pagtatapos ng aming proyekto, hindi namin nagawang magdisenyo ng isang mahusay na pamamaraan para sa paglakip ng lahat ng aming mga bahagi sa frame. Dahil sa presyon ng oras ng aming klase, ang aming mga solusyon sa pangkalahatan ay umiikot sa dobleng panig na foam tape, duct tape, electrical tape, at mga kurbatang zip. Masidhing inirerekumenda namin na gugulin mo ang mas maraming oras sa pagdidisenyo ng matatag na mga istraktura ng pag-mount kung balak mo itong maging isang mas matagal na proyekto. Sa lahat ng nasabi na, kung nais mo lamang gumawa ng isang mabilis na prototype, huwag mag-atubiling sundin sa aming proseso. Gayunpaman, tiyakin na ang gyro ay naka-mount nang ligtas. Ito ang tanging paraan na nalalaman ng Arduino kung ano ang ginagawa ng quadcopter, kaya kung gumalaw ito sa paglipad magkakaroon ka ng mga isyu.

Sa lahat ng naka-wire at nasa lugar, kunin ang iyong baterya ng LiPo at i-slide ito sa pagitan ng mga tuktok at ibabang plato ng frame. Siguraduhin na ang konektor nito ay nakaturo sa parehong direksyon tulad ng konektor ng PDB, at maaari talaga silang kumonekta. Gumamit kami ng duct tape upang i-hold ang baterya sa lugar (gumagana rin ang velcro tape, ngunit mas nakakainis kaysa sa duct tape). Gumagana ng maayos ang duct tape sapagkat madaling mapapalitan ng isang tao ang baterya o alisin ito para sa singilin. Gayunpaman, dapat mong siguraduhin na i-tape mo ang baterya nang mahigpit, na parang ang baterya ay gumagalaw sa panahon ng paglipad ito ay maaaring seryoso na mapahamak ang balanse ng drone. HUWAG pa ikonekta ang baterya sa PDB.

Hakbang 7: Bind Receiver

Tumatanggap ng Bind
Tumatanggap ng Bind
Tumatanggap ng Bind
Tumatanggap ng Bind

Kunin ang RC receiver at pansamantalang ikonekta ito sa isang 5V power supply (alinman sa pamamagitan ng pag-power up ng Arduino gamit ang USB o 9V power, o sa isang hiwalay na supply ng kuryente. Huwag ikonekta ang LiPo sa Arduino). Kunin ang binding pin na kasama ng RC receiver at ilagay ito sa mga BIND pin sa tatanggap. Halili, maiikli ang mga tuktok at ibabang mga pin sa haligi ng BIND tulad ng ipinakita sa larawan sa itaas. Ang isang pulang ilaw ay dapat mabilis na kumurap sa tatanggap. Ngayon kunin ang controller at pindutin ang pindutan sa likod habang naka-off ito, tulad ng ipinakita sa itaas. Sa pagpindot ng pindutan, i-on ang controller. Ngayon ang kumikislap na ilaw sa receiver ay dapat na maging solid. Ang tatanggap ay nakatali. Alisin ang nagbubuklod na kable. Kung gumagamit ka ng ibang supply ng kuryente, ikonekta muli ang tatanggap sa 5V palabas ng Arduino.

Hakbang 8: (Opsyonal) Sama-sama na Wire at I-mount ang FPV Camera System

(Opsyonal) Sama-sama na Wire at I-mount ang FPV Camera System
(Opsyonal) Sama-sama na Wire at I-mount ang FPV Camera System
(Opsyonal) Sama-sama na Wire at I-mount ang FPV Camera System
(Opsyonal) Sama-sama na Wire at I-mount ang FPV Camera System

Una, magkasama ang solder ng XT-60 adapter na may kuryente at ground wires sa monitor. Maaaring mag-iba ang mga ito mula sa monitor hanggang sa subaybayan, ngunit ang lakas ay halos palaging pula, ang lupa ay halos laging itim. Ipasok ngayon ang adapter na may soldered wires sa iyong 1000mAh LiPo gamit ang XT-60 plug. Ang monitor ay dapat na buksan na may (karaniwang) asul na background. Iyon ang pinakamahirap na hakbang!

Ngayon tornilyo sa mga antena sa iyong tatanggap at transmiter.

Ikonekta ang iyong maliit na 500mAh Lipo sa transmitter. Ang pinaka-kanang pin (kanan sa ibaba ng antena) ay ground (V_) ng baterya, ang susunod na pin sa kaliwa ay V +. Dumating ang tatlong mga wire na papunta sa camera. Ang iyong camera ay dapat na may isang three-in isang plug na umaangkop sa transmiter. Tiyaking mayroon kang dilaw na data wire sa gitna. Kung ginamit mo ang mga baterya na na-link namin sa mga plug na inilaan para dito, ang hakbang na ito ay hindi dapat mangailangan ng anumang paghihinang.

Sa wakas, i-wire ang iyong iba pang baterya na 1000mAh gamit ang DC out wire na kasama ng iyong receiver, at sa kabilang banda ay i-plug iyon sa DC sa port sa iyong receiver. Sa wakas, ikonekta ang itim na dulo ng AVin cable na kasama ng iyong receiver sa AVin port sa iyong receiver, at ang isa (dilaw, babae) na nagtatapos sa dilaw na lalaki na dulo ng AVin cable ng iyong monitor.

Sa puntong ito, dapat mong makita ang isang view ng camera sa monitor. Kung hindi mo magawa, siguraduhing ang tagatanggap at transmiter ay pareho (dapat mong makita ang mga numero sa kanilang maliit na mga screen) at nasa parehong channel sila (ginamit namin ang channel 11 para sa pareho at may magandang tagumpay). Dagdag dito, maaaring kailanganin mong baguhin ang channel sa monitor.

I-mount ang mga bahagi sa frame.

Kapag natapos mo na ang pag-set up, i-unplug ang mga baterya hanggang handa ka nang lumipad.

Hakbang 9: I-set up ang Pagtanggap ng Data ng GPS

I-set up ang Pagtanggap ng Data ng GPS
I-set up ang Pagtanggap ng Data ng GPS
I-set up ang Pagtanggap ng Data ng GPS
I-set up ang Pagtanggap ng Data ng GPS

Wire up ang iyong pangalawang Arduino sa iyong pangalawang transceiver ng HC-12 bilang palabas sa iskemat sa itaas, na isinasaalang-alang na ang pag-set up ay papatakbo lamang tulad ng ipinakita kung naka-plug sa isang computer. I-download ang ibinigay na transceiver code, buksan ang iyong serial monitor sa 9600 baud.

Kung gumagamit ng mas pangunahing pag-set up, dapat mong simulan ang pagtanggap ng mga pangungusap sa GPS kung ang iyong kalasag sa GPS ay pinalakas at maayos na na-wire sa iba pang transceiver ng HC-12 (at kung ang switch sa kalasag ay nasa "Direktang Isulat").

Gamit ang Mega, tiyaking ang switch ay nasa "Soft Serial."

Hakbang 10: Magsagawa ng Setup Code (Uno)

Ang code na ito ay magkapareho sa ginamit ni Joop Brokking sa kanyang Arduino quadcopter tutorial, at nararapat sa kanya ang lahat ng kredito para sa pagsusulat nito.

Sa pagkakakonekta ng baterya, gamitin ang USB cord upang ikonekta ang iyong computer sa Arduino, at i-upload ang nakalakip na Setup Code. I-on ang iyong transmiter ng RC. Buksan ang iyong serial monitor sa 57600 baud at sundin ang mga senyas.

Mga karaniwang error:

Kung nabigo ang pag-upload ng code, tiyakin na ang mga pin 0 at 1 ay hindi naka-plug sa kalasag ng UNO / GPS. Ito ang parehong hardware port na ginagamit ng aparato upang makipag-usap sa computer, kaya't dapat ito libre.

Kung ang code ay lumaktaw sa isang pangkat ng mga hakbang nang sabay-sabay, suriin na ang iyong switch ng GPS ay nasa "Direktang Isulat."

Kung walang natukoy na tagatanggap, siguraduhing mayroong isang solid (ngunit malabo) pulang ilaw sa iyong tatanggap kapag ang transmitter ay nakabukas. Kung gayon, suriin ang mga kable.

Kung walang napansin na gyro, maaaring ito ay dahil nasira ang gyro o kung mayroon kang ibang uri ng gyro mula sa kung saan idinisenyo ang code upang sumulat.

Hakbang 11: Magsagawa ng Setup Code (Mega)

Ang code na ito ay magkapareho sa ginamit ni Joop Brokking sa kanyang Arduino quadcopter tutorial, at nararapat sa kanya ang lahat ng kredito para sa pagsusulat nito. Pasimpleng inangkop namin ang mga kable para sa Mega upang ang mga input ng tatanggap ay tumutugma sa tamang Pin Baguhin ang Mga nakakagambalang mga pin.

Sa pagkakakonekta ng baterya, gamitin ang USB cord upang ikonekta ang iyong computer sa Arduino, at i-upload ang nakalakip na Setup Code. Buksan ang iyong serial monitor sa 57600 baud at sundin ang mga senyas.

Hakbang 12: I-calibrate ang mga ESC (Uno)

Muli, ang code na ito ay magkapareho sa code ni Joop Brokking. Ang lahat ng mga pagbabago ay ginawa sa pagsisikap na isama ang GPS at Arduino at maaaring matagpuan sa paglaon, sa paglalarawan ng pagtatayo ng mas advanced na quadcopter.

I-upload ang nakalakip na code ng pagkakalibrate ng ESC. Sa serial monitor, isulat ang titik na 'r' at pindutin ang return. Dapat mong simulang makita ang nakalista na mga halaga ng RC controller. I-verify na nag-iiba ang mga ito mula 1000 hanggang 2000 sa labis na throttle, roll, pitch, at yaw. Pagkatapos ay isulat ang 'a' at pindutin ang return. Hayaan ang pag-calibrate ng gyro, at pagkatapos ay i-verify na ang gyro ay nagrerehistro ng paggalaw ng quad. I-uplug ngayon ang arduino mula sa computer, itulak ang throttle hanggang sa controller, at ikonekta ang baterya. Dapat iikot ng mga ESC ang iba't ibang mga tonelada ng beep (ngunit maaaring magkakaiba ito depende sa ESC at ng firmware nito). Itulak ang throttle hanggang sa ibaba. Ang mga ESC ay dapat maglabas ng mas mababang mga beep, pagkatapos ay manahimik. I-unplug ang baterya.

Bilang opsyonal, maaari mong gamitin sa puntong ito ang mga cone na kasama ng iyong mounting motor na mga accessory pack upang mahigpit na i-tornilyo sa mga propellor. Pagkatapos ay ipasok ang mga numero 1 - 4 sa serial monitor upang mapagana ang mga motor 1 - 4 ayon sa pagkakabanggit, sa pinakamababang lakas. Irehistro ng programa ang dami ng pag-alog dahil sa kawalan ng timbang ng mga props. Maaari mong subukang malunasan ito sa pamamagitan ng pagdaragdag ng maliit na scotch tape sa isang gilid o sa iba pang mga props. Nalaman naming makakakuha kami ng maayos na paglipad nang wala ang hakbang na ito, ngunit marahil ay bahagyang hindi gaanong mahusay at mas malakas kaysa sa balansehin namin ang mga props.

Hakbang 13: I-calibrate ang mga ESC (Mega)

Ang code na ito ay halos kapareho sa code ng Brokking, subalit iniangkop namin ito (at kaukulang mga kable) upang gumana sa Mega.

I-upload ang nakalakip na code ng pagkakalibrate ng ESC. Sa serial monitor, isulat ang titik na 'r' at pindutin ang return. Dapat mong simulang makita ang nakalista na mga halaga ng RC controller. I-verify na nag-iiba ang mga ito mula 1000 hanggang 2000 sa labis na throttle, roll, pitch, at yaw.

Pagkatapos ay isulat ang 'a' at pindutin ang return. Hayaan ang pag-calibrate ng gyro, at pagkatapos ay i-verify na ang gyro ay nagrerehistro ng paggalaw ng quad.

I-uplug ngayon ang arduino mula sa computer, itulak ang throttle hanggang sa controller, at ikonekta ang baterya. Ang mga ESC ay dapat maglabas ng tatlong mababang beep na sinusundan ng isang mataas na beep (ngunit maaaring magkakaiba ito depende sa ESC at ng firmware nito). Itulak ang throttle hanggang sa ibaba. I-unplug ang baterya.

Ang mga pagbabagong ginawa namin sa code na ito ay lumipat mula sa paggamit ng PORTD para sa mga pin ng ESC patungo sa paggamit ng PORTA at pagkatapos ay palitan ang mga byte na nakasulat sa mga port na ito upang maisaaktibo namin ang mga tamang pin tulad ng ipinakita sa schematic ng mga kable. Ang pagbabagong ito ay dahil ang mga rehistro ng PORTD ay wala sa parehong lokasyon sa Mega tulad ng nasa Uno. Hindi namin ganap na nasubukan ang code na ito habang nakikipagtulungan kami sa isang luma na tatak na Mega na mayroon ang tindahan ng aming paaralan. Nangangahulugan ito na sa ilang kadahilanan hindi lahat ng mga pin ng rehistro ng PORTA ay na-aktibo nang maayos ang mga ESC. Nagkaroon din kami ng problema sa paggamit ng o katumbas na operator (| =) sa ilan sa aming test code. Hindi namin sigurado kung bakit ito ay nagdudulot ng mga problema kapag nagsusulat ng mga byte upang maitakda ang mga voltages ng ESC pin, kaya binago namin ang code ni Brooking nang kaunti hangga't maaari. Sa palagay namin ang code na ito ay napakalapit sa pagganap, ngunit ang iyong mileage ay maaaring magkakaiba.

Hakbang 14: Kumuha ng Airborne !! (Uno)

At muli, ang pangatlong bit ng henyo code na ito ay ang gawa ni Joop Brokking. Ang mga pagbabago sa lahat ng tatlong piraso ng code na ito ay naroroon lamang sa aming tangkang pagsasama ng data ng GPS sa Arduino.

Sa iyong mga propellor na matatag na nakakabit sa frame at lahat ng mga sangkap na naka-strap, naka-tape, o kung hindi man naka-mount, i-load sa flight controller code sa iyong Arduino, pagkatapos ay i-unplug ang Arduino mula sa iyong computer.

Dalhin ang iyong quadcopter sa labas, isaksak ang baterya at i-on ang iyong transmitter. Bilang pagpipilian, magdala ng isang laptop na konektado sa iyong pagtanggap ng GPS pati na rin ang iyong video na tumatanggap ng pag-set up at monitor. I-load ang transceiver code sa iyong terrestrial Arduino, buksan ang iyong serial monitor sa 9600 baud at panoorin ang pag-roll ng data ng GPS.

Ngayon handa ka nang lumipad. Itulak ang throttle at yaw kaliwa upang braso ang quadcopter, pagkatapos ay dahan-dahang ilabas ang throttle upang mag-hover. Magsimula sa pamamagitan ng paglipad na mababa sa lupa at sa malambot na mga ibabaw tulad ng damo hanggang sa maging komportable ka.

Tingnan ang naka-embed na video sa amin na nasasabik na lumilipad sa drone sa unang pagkakataon na nakakuha kami ng drone at GPS na sabay na gumagana.

Hakbang 15: Kumuha ng Airborne !! (Mega)

Dahil sa aming pag-hang up gamit ang ESC calibration code para sa Mega, hindi namin nagawa ang paglikha ng flight controller code para sa board na ito. Kung nakarating ka sa puntong ito, sa gayon naiisip ko na hindi ka nakakalikot sa ESC calibration code upang gumana ito para sa Mega. Samakatuwid, malamang na magkakaroon ka ng mga katulad na pagbabago sa flight controller code na ginawa mo sa huling hakbang. Kung ang aming code sa pagkakalibrate ng ESC para sa Mega ay mahiwagang gumagana nang walang anumang iba pang mga pagbabago, pagkatapos ay may ilang mga bagay lamang ang kailangan mong gawin sa stock code upang ito ay gumana para sa hakbang na ito. Kakailanganin mo munang dumaan at palitan ang lahat ng mga pagkakataon ng PORTD ng PORTA. Gayundin, huwag kalimutang baguhin ang DDRD sa DDRA. Pagkatapos, kakailanganin mong baguhin ang lahat ng mga byte na nakasulat sa rehistro ng PORTA upang maisaaktibo nila ang tamang mga pin. Upang magawa ito, gamitin ang byte B11000011 upang maitakda ang mga pin sa mataas at B00111100 upang maitakda ang mga pin sa mababang. Good Luck, at mangyaring ipaalam sa amin kung matagumpay kang lumipad gamit ang isang Mega!

Hakbang 16: Paano Namin Nakakarating Sa Nasaan Kami Ngayon Sa Mega Disenyo

Ang proyektong ito ay isang napakalawak na karanasan sa pag-aaral para sa amin bilang mga nagsisimula ng libangan ng Arduino at electronics. Samakatuwid, kahit na isasama namin ang alamat ng lahat ng nakatagpo namin habang sinusubukan na paganahin ang GPS ang code ni Joop Brokking. Dahil ang code ng Brokking ay masinsinang at mas kumplikado kaysa sa anumang sinusulat namin, napagpasyahan naming baguhin ito nang maliit hangga't maaari. Sinubukan naming makuha ang kalasag ng GPS upang magpadala ng data sa Arduino at pagkatapos ay ipadala sa amin ng Arduino ang impormasyong iyon sa amin sa pamamagitan ng transceiver ng HC12 nang hindi binabago ang flight code o mga kable sa anumang paraan. Matapos tingnan ang mga eskematiko at mga kable ng aming Arduino Uno upang malaman kung anong mga pin ang magagamit, binago namin ang code ng GPS transceiver na ginagamit namin upang gumana ang paligid ng umiiral na disenyo. Pagkatapos ay sinubukan namin ito upang matiyak na ang lahat ay gumagana. Sa puntong ito, ang mga bagay ay tila nangangako.

Ang susunod na hakbang ay upang isama ang code na ngayon lang namin binago at nasubukan sa flight controller ng Brokking. Hindi ito masyadong mahirap, ngunit mabilis kaming naranasan ng isang error. Ang flight controller ng Brokking ay nakasalalay sa mga aklatan ng Arduino Wire at EEPROM habang ang aming GPS code ay gumagamit ng parehong Software Serial library at Arduino GPS library. Dahil ang sanggunian ng Wire Library ay ang library ng Serial ng software, naranasan namin ang isang error kung saan hindi makakaipon ang code dahil mayroong "maraming kahulugan para sa _vector 3_", anuman ang ibig sabihin nito. Matapos tignan ang Google at maghukay sa paligid ng mga aklatan, kalaunan ay napagtanto namin na ang salungatan sa library na ito ay naging imposible na gamitin nang magkasama ang mga piraso ng code na ito. Kaya, naghanap kami ng mga kahalili.

Ang nalaman namin ay ang nag-iisang kumbinasyon ng mga aklatan na hindi nagtapon ng error sa amin ay ang paglipat ng karaniwang GPS library sa neoGPS at pagkatapos ay gumagamit ng AltSoftSerial sa halip na Software Serial. Ang kumbinasyon na ito ay nagtrabaho, subalit, ang AltSoftSerial ay maaari lamang gumana sa mga tukoy na pin, na hindi magagamit sa aming disenyo. Ito ang humantong sa amin sa paggamit ng Mega. Ang Arduino Megas ay may maraming mga serial serial port, na nangangahulugang maaari naming lampasan ang salungatan sa library na ito sa pamamagitan ng hindi kinakailangan na buksan ang serial serial software sa lahat.

Gayunpaman, nang nagsimula kaming gumamit ng Mega, mabilis naming napagtanto na ang pagsasaayos ng pin ay iba. Ang mga pin sa Uno na may mga nakakagambala ay magkakaiba sa Mega. Katulad nito, ang mga SDA at SCL na pin ay nasa iba't ibang mga lokasyon. Matapos pag-aralan ang mga diagram ng pin para sa bawat uri ng Arduino, at pagpray sa mga rehistro na tinatawag sa code, pinatakbo namin ang code ng pag-setup ng flight na may kaunting muling mga kable lamang at walang mga pagbabago sa software.

Ang code ng pagkakalibrate ng ESC ay kung saan nagsimula kaming magkaroon ng mga problema. Sandali naming hinawakan ito bago, ngunit karaniwang gumagamit ang code ng mga rehistro ng pin upang makontrol ang mga pin na ginamit upang makontrol ang mga ESC. Ginagawa nitong mas mahirap basahin ang code kaysa gamitin ang karaniwang pag-andar ng pinMode (); gayunpaman, ginagawang mas mabilis ang pagpapatakbo ng code at sabay na paganahin ang mga pin. Ito ay mahalaga dahil ang flight code ay tumatakbo sa isang maingat na nag-time loop. Dahil sa mga pagkakaiba sa pin sa pagitan ng mga Arduino, nagpasya kaming gamitin ang port register A sa Mega. Gayunpaman, sa aming pagsubok, hindi lahat ng mga pin ay nagbigay sa amin ng parehong output boltahe kapag sinabi na tumakbo nang mataas. Ang ilan sa mga pin ay may isang output ng paligid ng 4.90V at ang iba ay nagbigay sa amin ng malapit sa 4.95V. Tila ang ESC's na mayroon tayo ay medyo makulit, at sa gayon ay gagana lamang ang mga ito nang ginamit namin ang mga pin na may mas mataas na boltahe. Pinilit kami nito na baguhin ang mga byte na isinulat namin upang magparehistro ng A upang makipag-usap kami sa mga tamang pin. Mayroong higit pang impormasyon tungkol dito sa seksyong pagkakalibrate ng ESC.

Ito ay tungkol sa nakuha namin sa bahaging ito ng proyekto. Kapag nagpunta kami upang subukan ang binago na code na pagkakalibrate ng ESC, may isang bagay na naikli at nawalan kami ng komunikasyon sa aming Arduino. Labis kaming tuliro dito dahil hindi namin binago ang anumang mga kable. Pinilit kami nitong umatras at mapagtanto na mayroon lamang kaming dalawang araw upang makakuha ng isang lumilipad na drone pagkatapos ng maraming linggo ng pagsubok na magkakasama sa aming mga hindi tugma na piraso. Ito ang dahilan kung bakit nag-backtrack kami at nilikha ang mas simpleng proyekto sa Uno. Gayunpaman, iniisip pa rin namin na ang aming diskarte ay malapit sa pagtatrabaho sa Mega na may kaunting oras.

Ang aming layunin ay ang paliwanag na ito ng mga hadlang na nakasalubong namin ay kapaki-pakinabang sa iyo kung nagtatrabaho ka sa pagbabago ng code ni Brokking. Hindi rin namin nakuha ang pagkakataon na subukan ang pag-coding ng anumang mga tampok na autonomous control batay sa GPS. Ito ay isang bagay na kakailanganin mong malaman pagkatapos lumikha ng isang gumaganang drone na may isang Mega. Gayunpaman, mula sa ilang paunang pagsasaliksik sa Google mukhang ang pagpapatupad ng isang Kalman filter ay maaaring ang pinaka matatag at tumpak na paraan upang matukoy ang posisyon sa paglipad. Iminumungkahi namin na magsaliksik ka ng kaunti tungkol sa kung paano na-optimize ng algorithm na ito ang mga pagtatantya ng estado. Maliban dito, good luck at ipaalam sa amin kung lumayo ka kaysa sa nagawa namin!

Inirerekumendang: