INHOUDSOPGAWE:

Arduino -drone met GPS: 16 stappe
Arduino -drone met GPS: 16 stappe

Video: Arduino -drone met GPS: 16 stappe

Video: Arduino -drone met GPS: 16 stappe
Video: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Julie
Anonim
Arduino -drone met GPS
Arduino -drone met GPS

Ons het begin met die bou van 'n Arduino-beheerde en gestabiliseerde, GPS-geaktiveerde first-person-view (FPV) quadcopter drone met terugkeer huis toe, gaan koördineer en GPS hou funksies. Ons het naïef aangeneem dat die kombinasie van bestaande Arduino -programme en bedrading vir 'n quadcopter sonder GPS met die van 'n GPS -transmissiestelsel relatief eenvoudig sou wees en dat ons vinnig kon oorgaan na meer komplekse programmeertake. 'N Verrassende hoeveelheid moes egter verander om hierdie twee projekte te konnekteer, en daarom het ons uiteindelik 'n FPV-quadcopter met GPS gemaak, sonder enige ekstra funksies.

Ons het instruksies bevat oor hoe ons ons produk kan herhaal as u tevrede is met die meer beperkte quadcopter.

Ons het ook al die stappe ingesluit wat ons geneem het op die pad na 'n meer outonome quadcopter. As u gemaklik voel om diep in Arduino te delf of alreeds baie Arduino-ervaring het en ons stoppunt as 'n wegspringpunt vir u eie verkenning wil neem, dan is hierdie Instructable ook vir u.

Dit is 'n wonderlike projek om iets te leer oor die bou en kodering vir Arduino, ongeag hoeveel ervaring u het. U sal ook hopelik met 'n hommeltuig wegstap.

Die opset is soos volg:

In die materiaallys word dele sonder 'n asterisk vir beide doelwitte benodig.

Dele met een ster is slegs nodig vir die onvoltooide projek van 'n meer outonome quadcopter.

Onderdele met twee sterretjies is slegs nodig vir die meer beperkte quadcopter.

Stappe wat algemeen is vir beide projekte, het geen merker agter die titel nie

Stappe wat slegs benodig word vir die meer beperkte nie-outonome quadcopter, het "(Uno)" na die titel.

Stappe wat slegs benodig word vir die outonome quadcopter wat aan die gang is, het "(Mega)" na die titel.

Om die Uno-gebaseerde quad te bou, volg die stappe in volgorde en slaan enige stappe met "(Mega)" agter die titel oor.

Volg die stappe in volgorde om aan die Mega-gebaseerde quad te werk, en slaan enige stappe met "(Uno)" agter die titel oor.

Stap 1: Versamel materiaal

Komponente:

1) Een quadcopter -raam (die presiese raam maak waarskynlik nie saak nie) ($ 15)

2) Vier borsellose motors van 2830, 900kV (of soortgelyk) en vier monteerbykomende pakke (4x $ 6 + 4x $ 4 = $ 40 totaal)

3) Vier 20A UBEC ESC's (4x $ 10 = $ 40 totaal)

4) Een kragverspreidingsbord (met XT-60-verbinding) ($ 20)

5) Een 3s, 3000-5000mAh LiPo-battery met XT-60-aansluiting (3000mAh stem ooreen met ongeveer 20 min vlugtyd) ($ 25)

6) Baie drywers (dit breek baie) ($ 10)

7) Een Arduino Mega 2560* ($ 40)

8) Een Arduino Uno R3 ($ 20)

9) 'n Tweede Arduino Uno R3 ** ($ 20)

10) Een Arduino Ultimate GPS -skild (u het nie die skild nodig nie, maar om 'n ander GPS te gebruik, benodig verskillende bedrading) ($ 45)

11) Twee HC-12 draadlose ontvangers (2x $ 5 = $ 10)

12) Een MPU- 6050, 6DOF (vryheidsgraad) gyro/versnellingsmeter ($ 5)

13) Een Turnigy 9x 2,4 GHz, 9 -kanaals sender/ontvanger -paar ($ 70)

14) Arduino vroulike (stapelbare) opskrifte ($ 20)

15) LiPo Battery Balance charger (en 12V DC adapter, nie ingesluit nie) ($ 20)

17) USB A tot B manlike na manlike adapterkabel ($ 5)

17) kleeflint

18) Krimp buise

Toerusting:

1) 'n soldeerbout

2) Soldeer

3) Plastiek Epoxy

4) Ligter

5) Draadstropper

6) 'n Stel inbussleutels

Opsionele komponente vir FPV-video-oordrag in real-time:

1) 'n Klein FPV-kamera (dit skakel na die goedkoop kamera van slegte kwaliteit wat ons gebruik het, u kan 'n beter een vervang) ($ 20)

2) 5,6 GHz video -sender/ontvanger -paar (832 modelle gebruik) ($ 30)

3) 500mAh, 3s (11.1V) LiPo -battery ($ 7) (ons het dit met 'n piesangprop gebruik, maar ons beveel agterna aan dat u die gekoppelde battery gebruik, aangesien dit 'n aansluiting het wat verenigbaar is met die TS832 -sender, en dus nie ' t benodig soldeer).

4) 2 1000mAh 2s (7,4V) LiPo -battery, of soortgelyk ($ 5). Die aantal mAh is nie van kritieke belang nie, solank dit meer as 1000mAh is. Dieselfde stelling as hierbo geld vir die tipe plug vir een van die twee batterye. Die ander een word gebruik om die monitor aan te dryf, dus u moet in elk geval soldeer. Dit is waarskynlik die beste om een met 'n XT-60-prop hiervoor te kry (dit is wat ons gedoen het). 'N Skakel vir die tipe is hier: 1000mAh 2s (7,4V) LiPo met XT-60-prop

5) LCD -monitor (opsioneel) ($ 15). U kan ook 'n AV-USB-adapter en sagteware vir DVD-kopiëring gebruik om direk op 'n skootrekenaar te kyk. Dit bied ook die opsie om video en foto's op te neem, eerder as om dit net intyds te kyk.

6) As u batterye met verskillende proppe gekoop het as die wat gekoppel is, benodig u moontlik gepaste adapters. Kry tog 'n adapter wat ooreenstem met die prop vir die battery wat die monitor aandryf. Hier kan u XT-60-adapters kry

* = slegs vir meer gevorderde projekte

** = slegs vir meer basiese projekte

Koste:

As u van nuuts af begin (maar met 'n soldeerbout, ens.), Geen FPV -stelsel nie: $ 370

As u reeds 'n RC -sender/ontvanger, LiPo -batterylaaier en LiPo -battery het: ~ $ 260

Koste van FPV -stelsel: $ 80

Stap 2: Monteer die raam

Monteer die raam
Monteer die raam
Monteer die raam
Monteer die raam
Monteer die raam
Monteer die raam

Hierdie stap is redelik eenvoudig, veral as u dieselfde voorafgemaakte raam gebruik wat ons gebruik het. Gebruik eenvoudig die meegeleverde skroewe en sit die raam aanmekaar, soos aangedui, met die toepaslike inbussleutel of skroewedraaier vir u raam. Maak seker dat arms van dieselfde kleur langs mekaar aangrensend is (soos op hierdie foto), sodat die hommeltuig duidelik voor en agter is. Maak verder seker dat die lang deel van die onderplaat tussen die teenoorgestelde arms uitsteek. Dit word later belangrik.

Stap 3: Monteer motors en verbind Escs

Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs
Mount Motors en verbind Escs

Noudat die raam gemonteer is, haal die vier motors en vier monteringstoebehore uit. U kan die skroewe wat in die monteerstelle ingesluit is, óf die skroewe wat van die quadcopter -raam oor is, gebruik om die motors en die houers vas te skroef. As u die houers waarmee ons gekoppel het, koop, ontvang u twee ekstra komponente, hierbo op die foto. Ons het goeie motorprestasie sonder hierdie onderdele gehad, en daarom het ons dit opgehou om gewig te verminder.

Sodra die motors vasgeskroef is, epokseer die kragverspreidingsbord (PDB) bo -op die boonste plaat van die quadcopter -raam. Maak seker dat u dit so rig dat die batterykonneksie tussen die arms van verskillende kleure wys (parallel met een van die lang gedeeltes van die onderste plaat), soos op die foto hierbo.

U moet ook vier skroefkegels met binnegare hê. Sit dit vir eers opsy.

Haal nou u ESC's uit. Aan die een kant sal daar twee drade kom, een rooi en een swart. Plaas die rooi draad vir elk van die vier ESC's in die positiewe aansluiting op die PDB en die swart in die negatiewe. Let daarop dat as u 'n ander PDB gebruik, hierdie stap moontlik soldeer. Verbind nou elk van die drie drade wat uit elke motor kom. Op hierdie stadium maak dit nie saak met watter ESC -draad u die motordraad verbind nie (solank u al die drade van een ESC met dieselfde motor verbind!) U sal later die agterwaartse polariteit regstel. Dit is nie gevaarlik as drade omgekeer word nie; dit lei net daartoe dat die motor agteruit draai.

Stap 4: Berei Arduino en Shield voor

Berei Arduino en Shield voor
Berei Arduino en Shield voor
Berei Arduino en Shield voor
Berei Arduino en Shield voor

'N Nota voordat u begin

Eerstens kan u kies om al die drade direk saam te soldeer. Ons het dit egter van onskatbare waarde gevind om speldopskrifte te gebruik, want dit bied baie buigsaamheid vir die oplos van probleme en die aanpassing van die projek. Hierna volg 'n beskrywing van wat ons gedoen het (en beveel ander aan om dit te doen).

Berei Arduino en skild voor

Haal u Arduino Mega (of 'n Uno as u die nie-outonome vierwiel doen), GPS-skild en stapelkopstukke uit. Soldeer die manlike kant van die stapelkopstukke op die GPS-skild, in die rye penne parallel met die voorafgesoldeerde penne, soos in die bostaande prentjie getoon. Soldeer ook in stapelkopstukke op die penry met die etiket 3V, CD, … RX. Gebruik 'n draadknip om die oortollige lengte van die penne wat aan die onderkant uitsteek, af te sny. Plaas manlike kopstukke met geboë toppe in al hierdie stapelkopstukke. Dit is waaraan u die drade sal soldeer vir die res van die komponente.

Bevestig die GPS -skild aan die bokant en maak seker dat die penne ooreenstem met die op die Arduino (Mega of Uno). Let op dat as u die Mega gebruik, baie Arduino nog steeds blootgestel sal word nadat u die skild op sy plek gesit het.

Plaas elektriese band aan die onderkant van die Arduino, wat al die blootgestelde penverkopers bedek, om kortsluiting te voorkom, aangesien die Arduino op die PDB rus.

Stap 5: Verbind komponente en plaas battery (Uno)

Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)
Verbind komponente en plaas battery (Uno)

Die skema hierbo is byna identies aan die wat deur Joop Brooking gemaak is, aangesien ons ons ontwerp sterk van sy ontwerp gebaseer het.

*Let daarop dat hierdie skema 'n behoorlik gemonteerde GPS -skild veronderstel, en dat die GPS dus nie in hierdie skematiese voorstelling verskyn nie.

Die skema hierbo is opgestel met behulp van Fritzing -sagteware, wat veral sterk aanbeveel word vir skemas wat Arduino insluit. Ons het meestal gebruik gemaak van generiese onderdele wat buigsaam bewerk kan word, aangesien ons onderdele gewoonlik nie in die deelbiblioteek van Fritzing was nie.

-Maak seker dat die skakelaar op die GPS -skild na "Direkte skryf" oorgeskakel is.

Verbind nou al die komponente volgens die skema hierbo (behalwe die battery!) (Belangrike opmerking oor GPS -datadrade hieronder).

Let daarop dat u die ESC's al aan die motors en PDB gekoppel het, sodat hierdie deel van die skematiese weergawe voltooi is.

-Let ook daarop dat GPS -data (geel drade) uit pen 0 en 1 op die Arduino kom (nie die aparte Tx- en Rx -penne op die GPS nie). Dit is omdat die GPS ingestel is op "Direkte skryf" (sien hieronder), direk na die hardeware -seriële poorte op die uno (penne 0 en 1). Dit word die duidelikste aangetoon op die tweede prent hierbo van die volledige bedrading.

-Raadpleeg die prent hierbo as u die RC -ontvanger aansluit. Let daarop dat die datadrade in die boonste ry ingaan, terwyl die Vin en Gnd onderskeidelik op die tweede en derde rye is (en op die tweede tot verste kolom penne).

-Om die bedrading vir die HC-12-ontvanger, RC-ontvanger en 5Vout van die PDB na Vin van die Arduino te gebruik, het ons stapelkopstukke gebruik, terwyl ons vir die gyro die drade direk aan die bord gesoldeer het en met behulp van krimpbuise rondom die soldeer. U kan kies om een van die komponente te doen, maar dit word aanbeveel om direk aan die gyro te soldeer, aangesien dit ruimte bespaar, wat die klein deel makliker maak om te monteer. Die gebruik van opskrifte is 'n bietjie meer werk vooraf, maar bied meer buigsaamheid. Soldeerdrade is 'n veiliger verbinding op lang termyn, maar dit beteken dat die gebruik van die komponent vir 'n ander projek moeiliker is. Let daarop dat as u opskrifte op die GPS -skild gebruik het, u steeds 'n behoorlike mate van buigsaamheid het, ongeag wat u doen. Maak seker dat die GPS -datadrade in pen 0 en 1 op die GPS maklik verwyder en vervang kan word.

Aan die einde van ons projek kon ons nie 'n goeie metode ontwerp om al ons komponente aan die raam vas te maak nie. As gevolg van die tydsdruk van ons klas, het ons oplossings oor die algemeen gedraai rondom dubbelzijdige skuimband, kleefband, elektriese band en ritsbande. Ons beveel sterk aan dat u meer tyd spandeer aan die ontwerp van stabiele monteerstrukture as u van plan is dat dit 'n langer termyn projek is. Met dit alles gesê, as u net 'n vinnige prototipe wil maak, volg dan gerus ons proses. Maak egter seker dat die gyro stewig gemonteer is. Dit is die enigste manier waarop die Arduino weet wat die quadcopter doen, so as u vlieg, sal u probleme ondervind.

As alles op en af is, neem u LiPo -battery en skuif dit tussen die boonste en onderste plate van die raam. Maak seker dat die aansluiting in dieselfde rigting wys as die aansluiting van die PDB, en dat hulle in werklikheid kan aansluit. Ons het kleeflint gebruik om die battery vas te hou (klittenband werk ook, maar is meer irriterend as kleefband). Kleeflint werk goed omdat 'n mens die battery maklik kan vervang of kan verwyder om dit te laai. U moet egter seker wees dat u die battery styf vasmaak, asof die battery tydens die vlug beweeg, dit die balans van die hommeltuig ernstig kan versteur. Moet nog nie die battery aan die PDB koppel nie.

Stap 6: Verbind komponente en plaas battery (Mega)

Verbind komponente en plaas battery (Mega)
Verbind komponente en plaas battery (Mega)
Verbind komponente en plaas battery (Mega)
Verbind komponente en plaas battery (Mega)
Verbind komponente en plaas battery (Mega)
Verbind komponente en plaas battery (Mega)

Die skema hierbo is opgestel met behulp van Fritzing -sagteware, wat veral sterk aanbeveel word vir skemas met arduino. Ons het meestal van generiese onderdele gebruik gemaak, aangesien ons onderdele gewoonlik nie in die deelbiblioteek van Fritzing was nie.

Let op dat hierdie skema 'n behoorlik gemonteerde GPS -skild veronderstel, en dus verskyn die GPS nie in die skematiese skema nie.

-Skakel die skakelaar van u Mega 2560 in op 'Soft Serial'.

-Draai nou al die komponente volgens die skema hierbo op (behalwe die battery!)

Let daarop dat u die ESC's al aan die motors en PDB gekoppel het, sodat hierdie deel van die skematiese weergawe voltooi is.

-Die springkabels van Pin 8 tot Rx en Pin 7 tot Tx is daar, want (anders as die Uno, waarvoor hierdie skild gemaak is), ontbreek die mega 'n universele asynchrone ontvanger-sender (UART) op penne 7 en 8, en dus ons moet seriële penne vir hardeware gebruik. Daar is meer redes waarom ons hardeware -reekspenne benodig, wat later bespreek word.

-Raadpleeg die prent hierbo as u die RC -ontvanger aansluit. Let daarop dat die datadrade in die boonste ry ingaan, terwyl die Vin en Gnd onderskeidelik op die tweede en derde rye is (en op die tweede tot verste kolom penne).

-Om die bedrading vir die HC-12-ontvanger, RC-ontvanger en 5Vout van die PDB na Vin van die Arduino te gebruik, het ons stapelkopstukke gebruik, terwyl ons vir die gyro die drade direk gesoldeer het en met behulp van krimpbuise rondom die soldeersel gebruik gemaak het. U kan kies om een van die komponente te doen. Die gebruik van opskrifte is 'n bietjie meer werk vooraf, maar bied meer buigsaamheid. Soldeerdrade is 'n veiliger verbinding op lang termyn, maar dit beteken dat die gebruik van die komponent vir 'n ander projek moeiliker is. Let daarop dat as u opskrifte op die GPS -skild gebruik het, u steeds 'n behoorlike mate van buigsaamheid het, ongeag wat u doen.

Aan die einde van ons projek kon ons nie 'n goeie metode ontwerp om al ons komponente aan die raam vas te maak nie. As gevolg van die tydsdruk van ons klas, het ons oplossings oor die algemeen gedraai rondom dubbelzijdige skuimband, kleefband, elektriese band en ritsbande. Ons beveel sterk aan dat u meer tyd spandeer aan die ontwerp van stabiele monteerstrukture as u van plan is dat dit 'n langer termyn projek is. Met dit alles gesê, as u net 'n vinnige prototipe wil maak, volg dit gerus in ons proses. Maak egter seker dat die gyro veilig gemonteer is. Dit is die enigste manier waarop die Arduino weet wat die quadcopter doen, so as u vlieg, sal u probleme ondervind.

As alles op en af is, neem u LiPo -battery en skuif dit tussen die boonste en onderste plate van die raam. Maak seker dat die aansluiting in dieselfde rigting wys as die aansluiting van die PDB, en dat hulle in werklikheid kan aansluit. Ons het kleeflint gebruik om die battery vas te hou (klittenband werk ook, maar is meer irriterend as kleefband). Buisband werk goed omdat 'n mens die battery maklik kan vervang of kan verwyder om dit te laai. U moet egter seker wees dat u die battery styf vasmaak, asof die battery tydens die vlug beweeg, dit die balans van die hommeltuig ernstig kan versteur. Moet nog nie die battery aan die PDB koppel nie.

Stap 7: Bind ontvanger

Bind Ontvanger
Bind Ontvanger
Bind Ontvanger
Bind Ontvanger

Neem die RC -ontvanger en koppel dit tydelik aan 'n 5V -kragtoevoer (óf deur die Arduino aan te skakel met USB- of 9V -krag, of met 'n aparte kragtoevoer. Moet nog nie die LiPo aan die Arduino koppel nie). Neem die bindpen wat by die RC -ontvanger was en plaas dit op die BIND -penne op die ontvanger. Alternatiewelik, kort die boonste en onderste penne in die BIND -kolom soos op die foto hierbo getoon. 'N Rooi lig moet vinnig op die ontvanger flikker. Neem nou die kontroleerder en druk op die knoppie agter terwyl dit af is, soos hierbo getoon. Skakel die beheerder aan met die knoppie ingedruk. Nou moet die flikkerende lig op die ontvanger stewig draai. Die ontvanger is gebind. Verwyder die bindingskabel. Sluit die ontvanger weer aan op die 5V uit die Arduino as u 'n ander kragtoevoer gebruik.

Stap 8: (opsioneel) Draad saam en monteer die FPV -kamerastelsel

(Opsioneel) Verbind saam en monteer die FPV -kamerastelsel
(Opsioneel) Verbind saam en monteer die FPV -kamerastelsel
(Opsioneel) Verbind saam en monteer die FPV -kamerastelsel
(Opsioneel) Verbind saam en monteer die FPV -kamerastelsel

Soldeer eers die XT-60-adapter saam met die krag- en gronddrade op die monitor. Dit kan van monitor tot monitor verskil, maar die krag sal byna altyd rooi wees, die grond byna altyd swart. Steek nou die adapter met gesoldeerde drade in u 1000mAh LiPo met die XT-60-prop. Die monitor moet aangeskakel word met (gewoonlik) blou agtergrond. Dit is die moeilikste stap!

Skroef nou die antennas op u ontvanger en sender vas.

Koppel u klein 500 mAh Lipo aan die sender. Die pen regs (regs onder die antenna) is grond (V_) van die battery, die volgende pen links is V+. Hulle kom met die drie drade wat na die kamera gaan. U kamera moet 'n drie-in-een-prop kry wat in die sender pas. Maak seker dat u die geel datadraad in die middel het. As u die batterye waarmee ons gekoppel was, gebruik het vir die proppe wat hiervoor bedoel is, behoort hierdie stap geen soldeerwerk nodig te wees nie.

Koppel laastens u ander 1000mAh -battery met die DC -uitdraad wat by u ontvanger was, en steek dit weer in die DC -poort van u ontvanger. Koppel laastens die swart kant van die AVin -kabel wat by u ontvanger was, aan die AVin -poort van u ontvanger, en die ander (geel, vroulike) einde aan die geel manlike kant van die AVin -kabel van u monitor.

Op hierdie punt moet u 'n kamera -aansig op die monitor kan sien. As u dit nie kan doen nie, moet u seker maak dat die ontvanger en die sender beide aan is (u moet getalle op hul klein skerms sien) en dat hulle op dieselfde kanaal is (ons het kanaal 11 vir beide gebruik en het sukses behaal). Verder moet u moontlik die kanaal op die monitor verander.

Monteer die komponente op die raam.

Sodra die installasie werk, ontkoppel die batterye totdat u gereed is om te vlieg.

Stap 9: Stel GPS -data -ontvangs op

Stel GPS -data -ontvangs op
Stel GPS -data -ontvangs op
Stel GPS -data -ontvangs op
Stel GPS -data -ontvangs op

Koppel u tweede Arduino aan met u tweede HC-12-ontvanger soos in die skema hierbo getoon, en hou in gedagte dat die opstelling slegs aangedryf sal word soos vertoon as dit op 'n rekenaar gekoppel is. Laai die verskafde ontvangerskode af, maak u seriële monitor tot 9600 baud oop.

As u die meer basiese opstelling gebruik, moet u begin om GPS-sinne te ontvang as u GPS-skild met die ander HC-12-ontvanger aangeskakel is (en as die skakelaar op die skerm op "Direkte skryf" is).

Met die Mega, maak seker dat die skakelaar op 'Soft Serial' is.

Stap 10: voer die instelkode (uno) uit

Hierdie kode is identies aan dié wat Joop Brokking in sy Arduino quadcopter -tutoriaal gebruik het, en hy verdien alle eer vir die skryf daarvan.

As die battery ontkoppel is, gebruik die USB -koord om u rekenaar aan die Arduino te koppel en laai die aangehegte installeringskode op. Skakel u RC -sender aan. Maak u seriële monitor oop tot 57600 baud en volg die aanwysings.

Algemene foute:

As die kode nie oplaai nie, maak seker dat pen 0 en 1 op die UNO/GPS -skild losgekoppel is. Dit is dieselfde hardeware -poort wat die toestel gebruik om met die rekenaar te kommunikeer, dus dit moet gratis wees.

As die kode gelyktydig deur 'n klomp stappe blaai, moet u seker maak dat u GPS -skakelaar 'Direkte skryf' is.

As daar geen ontvanger opgespoor word nie, maak seker dat daar 'n soliede (maar dowwe) rooi lig op u ontvanger is as die sender aan is. Kontroleer in elk geval die bedrading.

As daar geen gyro bespeur word nie, kan dit wees omdat die gyro beskadig is, of as u 'n ander soort gyro het as waarvoor die kode ontwerp is.

Stap 11: voer die instelkode (Mega) uit

Hierdie kode is identies aan dié wat Joop Brokking in sy Arduino quadcopter -tutoriaal gebruik het, en hy verdien alle eer vir die skryf daarvan. Ons het eenvoudig die bedrading vir die Mega aangepas sodat die ontvanger se insette ooreenstem met die korrekte Pin Change Interrupt -penne.

As die battery ontkoppel is, gebruik die USB -koord om u rekenaar aan die Arduino te koppel en laai die aangehegte installeringskode op. Maak u seriële monitor oop tot 57600 baud en volg die aanwysings.

Stap 12: Kalibreer die ESC's (Uno)

Hierdie kode is weereens identies aan die kode van Joop Brokking. Al die wysigings is aangebring in 'n poging om die GPS en Arduino te integreer en kan later gevind word in die beskrywing van die konstruksie van die meer gevorderde quadcopter.

Laai die aangehegte ESC -kalibreringskode op. Skryf die letter 'r' op die seriële monitor en druk terug. U moet die waardes van die regte RC -beheerder in die regte tyd sien. Verifieer dat dit wissel van 1000 tot 2000 op die uiterste van gashendel, rol, toonhoogte en gaas. Skryf dan 'a' en druk terug. Laat die gyro -kalibrasie gaan, en verifieer dan dat die gyro die beweging van die vierwiel registreer. Koppel die arduino van die rekenaar af, druk die gashendel heeltemal op die kontroleerder en koppel die battery aan. Die ESC's moet verskillende pieptonne laat loop (maar dit kan anders wees, afhangende van die ESC en die firmware). Druk die gashendel heeltemal af. Die ESC's moet laer piepies gee en dan stil word. Ontkoppel die battery.

Opsioneel kan u op hierdie stadium die keëltjies wat by u motorbykomende pakkies bygevoeg is, gebruik om die drywers styf vas te skroef. Voer dan die nommers 1 - 4 op die seriële monitor in om motors 1 - 4 onderskeidelik met die laagste krag aan te skakel. Die program sal die hoeveelheid skudding registreer as gevolg van die wanbalans van die rekwisiete. U kan probeer om dit reg te stel deur klein hoeveelhede plakband aan die een of ander kant van die rekwisiete te voeg. Ons het gevind dat ons sonder hierdie stap goeie vlug kon kry, maar miskien effens minder doeltreffend en harder as wat ons die rekwisiete gebalanseer het.

Stap 13: Kalibreer ESC's (Mega)

Hierdie kode is baie soortgelyk aan die Brokking -kode, maar ons het dit (en die ooreenstemmende bedrading) aangepas om met die Mega te werk.

Laai die aangehegte ESC -kalibreringskode op. Skryf die letter 'r' op die seriële monitor en druk terug. U moet die waardes van die regte RC -beheerder in die regte tyd sien. Verifieer dat dit wissel van 1000 tot 2000 op die uiterste van gashendel, rol, toonhoogte en gaas.

Skryf dan 'a' en druk terug. Laat die gyro -kalibrasie gaan, en verifieer dan dat die gyro die beweging van die vierwiel registreer.

Koppel die arduino van die rekenaar af, druk die gashendel heeltemal op die kontroleerder en koppel die battery aan. Die ESC's moet drie lae pieptone gee, gevolg deur 'n hoë piep (maar dit kan anders wees, afhangende van die ESC en die firmware). Druk die gashendel heeltemal af. Ontkoppel die battery.

Die veranderinge wat ons aan hierdie kode aangebring het, was om oor te skakel van die gebruik van PORTD vir die ESC -penne na die gebruik van PORTA en dan die grepe wat na hierdie poorte geskryf is, sodat ons die regte penne aktiveer, soos aangedui in die bedradingskema. Hierdie verandering is omdat die PORTD -registerpenne nie op dieselfde plek op die Mega is as in die Uno nie. Ons kon hierdie kode nie volledig toets nie, aangesien ons gewerk het met 'n ou Mega wat buite ons winkel was. Dit het beteken dat nie alle PORTA -registerpenne om een of ander rede die ESC's behoorlik kon aktiveer nie. Ons het ook probleme ondervind met die gebruik van die of gelyk operator (| =) in sommige van ons toetskode. Ons is nie seker hoekom dit probleme veroorsaak tydens die skryf van die grepe om die ESC -penspannings in te stel nie, en daarom het ons die kode van Brooking so min as moontlik gewysig. Ons dink dat hierdie kode baie funksioneel is, maar u kilometers kan verskil.

Stap 14: Word in die lug !! (Uno)

En weer, hierdie derde stukkie geniale kode is die werk van Joop Brokking. Wysigings aan al hierdie drie stukke kode kom slegs voor in ons poging om die GPS -data in die Arduino te integreer.

Terwyl u drywers stewig op die raam gemonteer is en alle komponente vasgemaak, vasgemaak of op 'n ander manier gemonteer is, laai u die vlugkontroleerderkode op u Arduino, en trek dan die Arduino uit u rekenaar.

Neem u quadcopter na buite, steek die battery in en skakel u sender aan. U kan ook 'n skootrekenaar saambring wat gekoppel is aan u GPS -ontvangsopstelling, sowel as die opstelling en monitor van die video -ontvangs. Laai die transceiver -kode op u aardse Arduino, maak u seriële monitor tot 9600 baud oop en kyk hoe die GPS -data inrol.

Nou is jy gereed om te vlieg. Druk die gashendel af en gaap links om die quadcopter te bewapen, en lig dan die gashendel liggies om te beweeg. Begin deur laag na die grond en oor sagte oppervlaktes soos gras te vlieg totdat u gemaklik voel.

Sien die ingeslote video van ons wat opgewonde met die hommeltuig vlieg die eerste keer dat ons die hommeltuig en GPS gelyktydig kon laat werk.

Stap 15: Word in die lug !! (Mega)

As gevolg van ons hang -up met die ESC -kalibreringskode vir die Mega, kon ons nooit 'n vlugbeheerkode vir hierdie bord skep nie. As u op hierdie punt gekom het, stel ek my voor dat u ten minste met die ESC -kalibreringskode gesukkel het om dit vir die Mega te laat werk. Daarom sal u waarskynlik soortgelyke wysigings aan die kode van die vlugbestuurder moet aanbring soos in die laaste stap. As ons ESC -kalibreringskode vir die Mega op magiese wyse werk sonder enige ander wysigings, is daar slegs 'n paar dinge wat u aan die voorraadkode moet doen om dit vir hierdie stap te laat werk. U moet eers alle gevalle van PORTD deur PORTA vervang en vervang. Vergeet ook nie om DDRD na DDRA te verander nie. Dan moet u al die grepe wat in die PORTA -register geskryf word, verander sodat hulle die regte penne aktiveer. Om dit te doen, gebruik die byte B11000011 om die penne op hoog te stel en B00111100 om die penne op laag te stel. Sterkte, en laat weet ons as jy suksesvol met 'n Mega vlieg!

Stap 16: Hoe het ons gekom met die mega -ontwerp waar ons tans is?

Hierdie projek was 'n geweldige leerervaring vir ons as beginners vir Arduino en elektroniese stokperdjies. Daarom sou ons die verhaal van alles wat ons teëgekom het, insluitend Joop Brokking se kode insluit. Omdat die kode van Brokking so deeglik en baie ingewikkelder is as alles wat ons geskryf het, het ons besluit om dit so min as moontlik aan te pas. Ons het probeer om die GPS -skild te kry om data na die Arduino te stuur, en dan het die Arduino die inligting via die HC12 -ontvanger na ons gestuur sonder om die vlugkode of bedrading op enige manier aan te pas. Nadat ons na die skemas en bedrading van ons Arduino Uno gekyk het om uit te vind watter penne beskikbaar is, het ons die GPS -ontvangerkode verander wat ons gebruik het om die bestaande ontwerp te omseil. Daarna het ons dit getoets om seker te maak dat alles werk. Op hierdie stadium het dinge belowend gelyk.

Die volgende stap was om die kode wat ons pas gewysig en getoets het, te integreer met die vlugbeheerder van Brokking. Dit was nie te moeilik nie, maar ons het vinnig 'n fout teëgekom. Die vlugbeheerder van Brokking maak staat op die Arduino Wire- en EEPROM -biblioteke terwyl ons GPS -kode beide die Software Serial -biblioteek en die Arduino GPS -biblioteek gebruik. Omdat die Wire Library na die Software Serial -biblioteek verwys, het ons 'n fout teëgekom waar die kode nie sou saamstel nie, want daar was 'veelvuldige definisies vir _vector 3_', wat dit ook al beteken. Nadat ons op Google gekyk en in die biblioteke rondgekyk het, het ons uiteindelik besef dat hierdie biblioteekkonflik dit onmoontlik maak om hierdie stukkies kode saam te gebruik. Ons het dus na alternatiewe gaan soek.

Wat ons agtergekom het, is dat die enigste kombinasie van biblioteke wat ons nie foute gegee het nie, die standaard GPS -biblioteek na neoGPS oorgeskakel het en dan AltSoftSerial gebruik in plaas van Software Serial. Hierdie kombinasie het gewerk, maar AltSoftSerial kan slegs met spesifieke penne werk, wat nie in ons ontwerp beskikbaar was nie. Dit is wat ons daartoe gelei het om die Mega te gebruik. Arduino Megas het verskeie seriële poorte vir hardeware, wat beteken dat ons hierdie biblioteekkonflik kon omseil deur glad nie sagteware -seriële poorte oop te maak nie.

Toe ons die Mega begin gebruik, het ons egter vinnig besef dat die penkonfigurasie anders was. Spelde op die Uno met onderbrekings verskil op die Mega. Net so was die SDA- en SCL -penne op verskillende plekke. Nadat ons die speldiagramme vir elke tipe Arduino bestudeer het en die registers in die kode genoem het, kon ons die vlugopstellingskode uitvoer met slegs minimale herbedrading en geen sagtewareveranderings nie.

Die ESC -kalibreringskode is waar ons probleme ondervind het. Ons het dit kortliks aangeraak, maar basies gebruik die kode penregisters om die penne wat gebruik word om die ESC's te beheer, te reguleer. Dit maak die kode moeiliker om te lees as om die standaard pinMode () -funksie te gebruik; dit laat die kode egter vinniger loop en penne gelyktydig aktiveer. Dit is belangrik, want die vlugkode loop in 'n noukeurige tydsberekening. As gevolg van die penverskille tussen die Arduinos, het ons besluit om poortregister A op die Mega te gebruik. Maar tydens ons toetsing het nie alle penne ons dieselfde uitsetspanning gegee toe ons aangesê is om hoog te loop nie. Sommige van die penne het 'n uitset van ongeveer 4.90V en ander het ons nader aan 4.95V gegee. Blykbaar is die ESC's wat ons het, ietwat ingewikkeld, en dit sal dus net behoorlik werk as ons die penne met die hoër spanning gebruik. Dit het ons dan gedwing om die grepe wat ons geskryf het na register A te verander sodat ons met die regte penne praat. Daar is meer inligting hieroor in die ESC -kalibrasie -afdeling.

Dit is omtrent so ver as wat ons in hierdie deel van die projek gekom het. Toe ons hierdie aangepaste ESC -kalibreringskode gaan toets, het iets kortgekom en het ons kommunikasie met ons Arduino verloor. Ons was baie verbaas hieroor omdat ons nie die bedrading verander het nie. Dit het ons gedwing om terug te keer en te besef dat ons slegs 'n paar dae tyd gehad het om 'n vlieënde hommeltuig te kry nadat ons weke probeer het om ons onverenigbare stukke bymekaar te pas. Daarom het ons die eenvoudiger projek met die Uno teruggekeer en geskep. Ons dink egter steeds dat ons benadering amper nie meer tyd is om met die Mega te werk nie.

Ons doel is dat hierdie verduideliking van die struikelblokke wat ons teëgekom het, vir u nuttig is as u werk aan die wysiging van Brokking se kode. Ons het ook nooit die kans gekry om outonome beheerfunksies op grond van die GPS te probeer kodeer nie. Dit is iets wat u sal moet uitvind nadat u 'n werkende hommeltuig met 'n Mega gemaak het. Uit voorlopige navorsing van Google lyk dit egter of die implementering van 'n Kalman -filter die mees stabiele en akkurate manier is om die posisie tydens vlug te bepaal. Ons stel voor dat u 'n bietjie ondersoek instel na hoe hierdie algoritme toestandberamings optimaliseer. Anders as dit, sterkte en laat ons weet as u verder kom as wat ons kon!

Aanbeveel: