Obsah:

Arduino Drone s GPS: 16 kroků
Arduino Drone s GPS: 16 kroků

Video: Arduino Drone s GPS: 16 kroků

Video: Arduino Drone s GPS: 16 kroků
Video: DIY пульт управления на ардуино за $9 под Qczek LRS Payne RC 2024, Červenec
Anonim
Arduino Drone s GPS
Arduino Drone s GPS

Vydali jsme se postavit kvadrokoptérový dron ovládaný Arduino a stabilizovaný GPS s podporou první osoby (FPV) s návratem domů, přejít na koordinaci a podržení GPS. Naivně jsme předpokládali, že kombinace stávajících programů Arduino a zapojení pro kvadrokoptéru bez GPS s těmi přenosového systému GPS bude relativně jednoduché a že bychom mohli rychle přejít ke složitějším programovacím úlohám. Aby se však tyto dva projekty spojily, muselo se změnit překvapivé množství, a tak jsme nakonec vyrobili kvadrokoptéru FPV s podporou GPS bez jakékoli přidané funkce.

Zahrnuli jsme pokyny, jak replikovat náš produkt, pokud jste spokojeni s omezenějším kvadrokoptérou.

Zahrnuli jsme také všechny kroky, které jsme podnikli na cestě k autonomnější kvadrokoptéře. Pokud se cítíte dobře kopat hluboko do Arduina nebo už máte mnoho zkušeností s Arduino a chtěli byste náš bod zastavení brát jako odrazový můstek pro vlastní průzkum, pak je tento Instructable také pro vás.

Je to skvělý projekt, jak se naučit něco o stavění a kódování pro Arduino bez ohledu na to, jaké máte zkušenosti. Také doufejme, že odejdete s dronem.

Nastavení je následující:

V seznamu materiálů jsou pro oba cíle vyžadovány součásti bez hvězdičky.

Díly s jednou hvězdičkou jsou vyžadovány pouze pro nedokončený projekt autonomnější kvadrokoptéry.

Díly se dvěma hvězdičkami jsou vyžadovány pouze pro omezenější kvadrokoptéru.

Společné kroky pro oba projekty nemají za názvem žádnou značku

Kroky nutné pouze pro omezenější neautonomní kvadrokoptéru mají za názvem „(Uno)“.

Kroky požadované pouze pro probíhající autonomní kvadrokoptéru mají za názvem „(Mega)“.

Chcete-li sestavit čtyřkolku založenou na Uno, postupujte podle pokynů v pořadí a přeskočte všechny kroky s „(Mega)“za názvem.

Chcete-li pracovat na Mega založené čtyřkolce, postupujte podle pokynů v pořadí, přeskočte všechny kroky s „(Uno)“za názvem.

Krok 1: Shromážděte materiály

Složky:

1) Jeden rámeček kvadrokoptéry (přesný rámec pravděpodobně nezáleží) (15 $)

2) Čtyři střídavé motory 2830, 900 kV (nebo podobné) a čtyři sady montážního příslušenství (4x $ 6 + 4x $ 4 = celkem 40 $)

3) Čtyři 20A UBEC ESC (4x $ 10 = 40 $ celkem)

4) Jedna rozvodná deska (s připojením XT-60) (20 $)

5) Jedna 3s, 3000-5000mAh LiPo baterie s připojením XT-60 (3000mAh odpovídá přibližně 20 minutám doby letu) (25 $)

6) Spousta vrtulí (ty se hodně lámou) (10 $)

7) Jeden Arduino Mega 2560* (40 $)

8) Jeden Arduino Uno R3 (20 $)

9) Druhé Arduino Uno R3 ** (20 $)

10) Jeden štít Arduino Ultimate GPS (štít nepotřebujete, ale použití jiného GPS bude vyžadovat jiné zapojení) (45 USD)

11) Dva bezdrátové transceivery HC-12 (2x 5 $ = 10 $)

12) Jeden MPU- 6050, 6DOF (stupeň volnosti) gyroskop/akcelerometr ($ 5)

13) Jeden Turnigy 9x 2,4 GHz, 9kanálový pár vysílač/přijímač (70 $)

14) Samičí (stohovatelné) záhlaví Arduino (20 $)

15) Nabíječka baterie LiPo (a adaptér 12 V DC, není součástí balení) (20 USD)

17) Kabel adaptéru USB A na B samec - samec (5 $)

17) Lepicí páska

18) Smršťovací hadice

Zařízení:

1) Páječka

2) Pájka

3) Plastový epoxid

4) Zapalovač

5) Odstraňovač drátů

6) Sada imbusových klíčů

Volitelné komponenty pro přenos videa FPV (pohled z první osoby) v reálném čase:

1) Malá kamera FPV (která odkazuje na docela levnou a špatnou kvalitu, kterou jsme použili, můžete nahradit lepší) (20 $)

2) Pár vysílače/přijímače 5,6 GHz (použité 832 modelů) (30 $)

3) 500mAh, 3s (11,1V) LiPo baterie (7 $) (používali jsme s banánkovou zástrčkou, ale zpětně doporučujeme použít propojenou baterii, protože má konektor kompatibilní s vysílačem TS832, a proto není t pájení).

4) 2 LiPo baterie 1 000 mAh 2 s (7,4 V) nebo podobná baterie (5 $). Počet mAh není kritický, pokud je větší než 1 000 mAh. Stejné prohlášení jako výše platí pro typ zástrčky pro jednu ze dvou baterií. Druhý bude použit k napájení monitoru, takže budete muset pájet bez ohledu na to. Pravděpodobně nejlepší je pořídit si k tomu zástrčku XT-60 (to jsme udělali). Odkaz pro tento typ je zde: 1000 mAh 2 s (7,4 V) LiPo s konektorem XT-60

5) LCD monitor (volitelný) (15 USD). Můžete také použít adaptér AV-USB a software pro kopírování DVD, abyste je mohli prohlížet přímo na notebooku. To také dává možnost nahrávání videa a fotografií, nikoli jen jejich prohlížení v reálném čase.

6) Pokud jste si koupili baterie s různými konektory z těch propojených, možná budete potřebovat vhodné adaptéry. Bez ohledu na to si pořiďte adaptér odpovídající zástrčce baterie, která napájí monitor. Zde získáte adaptéry XT-60

* = pouze pro pokročilejší projekt

** = pouze pro základnější projekt

Náklady:

Pokud začínáte od nuly (ale s páječkou atd.…), Žádný systém FPV: ~ 370 $

Pokud již máte RC vysílač/přijímač, nabíječku LiPo baterií a LiPo baterii: ~ 260 $

Náklady na systém FPV: 80 $

Krok 2: Sestavte rám

Sestavte rám
Sestavte rám
Sestavte rám
Sestavte rám
Sestavte rám
Sestavte rám

Tento krok je poměrně přímočarý, zvláště pokud používáte stejný předem vyrobený rámeček, jaký jsme použili. Jednoduše použijte přiložené šrouby a dejte rám dohromady, jak je znázorněno, pomocí příslušného imbusového klíče nebo šroubováku pro váš rám. Ujistěte se, že paže stejné barvy sousedí vedle sebe (jako na tomto obrázku), aby měl dron jasnou přední i zadní stranu. Dále se ujistěte, že dlouhá část spodní desky vyčnívá mezi ramena opačných barev. To bude důležité později.

Krok 3: Namontujte motory a připojte esc

Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc
Namontujte motory a připojte esc

Nyní, když je rám sestaven, vyjměte čtyři motory a čtyři montážní příslušenství. K přišroubování motorů a držáků na místo můžete použít buď šrouby zahrnuté v montážních sadách, nebo šrouby zbylé z rámu kvadrokoptéry. Pokud si koupíte držáky, se kterými jsme propojili, obdržíte dvě další součásti, které jsou na obrázku výše. Bez těchto částí jsme měli dobrý motorický výkon, takže jsme je kvůli snížení hmotnosti nechali.

Jakmile jsou motory přišroubovány na místo, epoxidujte desku pro distribuci energie (PDB) na místo v horní části horní desky rámu kvadrokoptéry. Ujistěte se, že je orientován tak, aby konektor baterie směřoval mezi různě zbarvená ramena (rovnoběžně s jednou z dlouhých částí spodní desky), jako na obrázku výše.

Měli byste mít také čtyři kuželové šrouby s vnitřními závity. Odložte je prozatím stranou.

Nyní vyjměte ESC. Na jedné straně budou vycházet dva dráty, jeden červený a jeden černý. U každého ze čtyř ESC zasuňte červený vodič do kladného konektoru na PDB a černý do záporného. Všimněte si toho, že pokud používáte jiný PDB, tento krok může vyžadovat pájení. Nyní připojte každý ze tří vodičů vycházejících z každého motoru. V tomto okamžiku nezáleží na tom, který vodič ESC připojíte s jakým vodičem motoru (pokud připojujete všechny vodiče jednoho ESC se stejným motorem!) Případnou zpětnou polaritu později opravíte. Pokud jsou dráty obráceny, není to nebezpečné; to má za následek pouze točení motoru dozadu.

Krok 4: Připravte si Arduino a Shield

Připravte si Arduino a Shield
Připravte si Arduino a Shield
Připravte si Arduino a Shield
Připravte si Arduino a Shield

Poznámka, než začnete

Nejprve se můžete rozhodnout přímo pájet všechny vodiče dohromady. Zjistili jsme však, že je neocenitelné používat záhlaví pinů, protože poskytují velkou flexibilitu při řešení potíží a přizpůsobení projektu. Následuje popis toho, co jsme udělali (a doporučujeme ostatním).

Připravte si Arduino a štít

Vezměte si Arduino Mega (nebo Uno, pokud děláte neautonomní čtyřkolku), GPS štít a stohovatelné záhlaví. Zapájejte samčí konec stohovatelných záhlaví na místo na štítu GPS v řadách kolíků rovnoběžných s předpájenými kolíky, jak je znázorněno na výše uvedeném obrázku. Také pájejte ve stohovatelných záhlavích na řadě pinů označených 3V, CD,… RX. Pomocí řezačky drátu odstřihněte přebytečnou délku na kolících trčících dole. Do všech těchto stohovatelných záhlaví umístěte hlavičky s ohnutými vrcholy. Právě k nim budete pájet dráty ke zbytku součástek.

Připojte štít GPS k horní části a ujistěte se, že kolíky odpovídají těm na Arduinu (Mega nebo Uno). Všimněte si toho, že pokud používáte Mega, spousta Arduina bude vystavena i poté, co nasadíte štít na místo.

Na spodní část Arduina umístěte elektrickou pásku, která zakryje všechny odkryté pájky, aby se zabránilo jakémukoli zkratu, protože Arduino spočívá na PDB.

Krok 5: Spojte součásti a vložte baterii (Uno)

Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)
Spojte součásti a vložte baterii (Uno)

Výše uvedené schéma je téměř totožné s tím, které vytvořil Joop Brooking, když jsme svůj návrh silně založili na jeho.

*Všimněte si, že toto schéma předpokládá správně namontovaný štít GPS, a proto se GPS v tomto schématu nezobrazuje.

Výše uvedené schéma bylo připraveno pomocí softwaru Fritzing, který je velmi doporučován zejména pro schémata zahrnující Arduino. Většinou jsme využívali obecné části, které lze flexibilně upravovat, protože naše součásti obecně nebyly v knihovně součástí Fritzing.

-Ujistěte se, že je přepínač na štítu GPS přepnut na „Přímý zápis“.

-Nyní zapojte všechny součásti podle výše uvedeného schématu (kromě baterie!) (Důležitá poznámka k datovým vodičům GPS níže).

-Všimněte si, že jste již zapojili ESC k motorům a PDB, takže tato část schématu je hotová.

-Dále si všimněte, že data GPS (žluté dráty) pocházejí z pinů 0 a 1 na Arduinu (nikoli ze samostatných pinů Tx a Rx na GPS). Důvodem je, že je nakonfigurován na „Přímý zápis“(viz níže), a výstupy GPS jsou přímo na hardwarové sériové porty na uno (piny 0 a 1). Nejjasněji je to znázorněno na druhém obrázku výše celého zapojení.

-Při zapojování RC přijímače postupujte podle obrázku výše. Všimněte si, že datové kabely jdou do horní řady, zatímco Vin a Gnd jsou na druhém a třetím řádku (a na druhém až nejvzdálenějším sloupci kolíků).

-Pro zapojení vysílače, přijímače HC-12 a přijímače 5Vout z PDB do Vin Arduina jsme použili stohovatelné záhlaví, zatímco pro gyroskop jsme pájeli vodiče přímo na desku a pomocí smršťovacích hadiček kolem pájka. Můžete se rozhodnout pro některou ze součástí, ale doporučuje se pájení přímo na gyroskop, protože šetří místo, což usnadňuje montáž malé části. Použití záhlaví je menší část práce dopředu, ale poskytuje větší flexibilitu. Přímé pájení vodičů je dlouhodobějším bezpečnějším spojením, ale znamená to, že použití této součásti na jiném projektu je těžší. Všimněte si toho, že pokud jste použili záhlaví na štítu GPS, stále máte slušnou flexibilitu bez ohledu na to, co děláte. Zásadně se ujistěte, že datové vodiče GPS v pinech 0 a 1 na GPS lze snadno vyjmout a vyměnit.

Na konci našeho projektu jsme nebyli schopni navrhnout dobrou metodu pro připojení všech našich komponent k rámu. Vzhledem k časové tísni naší třídy se naše řešení obecně točila kolem oboustranné pěnové pásky, lepicí pásky, elektrické pásky a zipů. Důrazně doporučujeme, abyste strávili více času navrhováním stabilních montážních struktur, pokud plánujete, že se jedná o dlouhodobější projekt. Se vším, co bylo řečeno, pokud chcete jen vytvořit rychlý prototyp, pak se můžete v našem procesu řídit. Ujistěte se však, že je gyroskop bezpečně upevněn. Toto je jediný způsob, jakým Arduino ví, co kvadrokoptéra dělá, takže pokud se pohybuje za letu, budete mít problémy.

Když je vše zapojené a na svém místě, vezměte baterii LiPo a zasuňte ji mezi horní a spodní desku rámu. Ujistěte se, že jeho konektor ukazuje stejným směrem jako konektor PDB a že se ve skutečnosti mohou připojit. K upevnění baterie jsme použili lepicí pásku (funguje také páska na suchý zip, ale je to otravnější než lepicí páska). Lepicí páska funguje dobře, protože baterii lze snadno vyměnit nebo vyjmout pro nabíjení. Musíte si však být jisti, že baterii TAPETNĚ sundáte, jako by se baterie během letu pohybovala, což by mohlo vážně narušit rovnováhu dronu. Ještě NEPŘIPOJUJTE baterii k PDB.

Krok 6: Spojte součásti dohromady a vložte baterii (mega)

Spojte součásti a vložte baterii (Mega)
Spojte součásti a vložte baterii (Mega)
Spojte součásti a vložte baterii (Mega)
Spojte součásti a vložte baterii (Mega)
Spojte součásti a vložte baterii (Mega)
Spojte součásti a vložte baterii (Mega)

Výše uvedené schéma bylo připraveno pomocí softwaru Fritzing, který je velmi doporučován zejména pro schémata zahrnující arduino. Většinou jsme používali obecné části, protože naše součásti obecně nebyly v knihovně součástí Fritzinga.

-Všimněte si, že toto schéma předpokládá správně namontovaný štít GPS, a proto se GPS v tomto schématu neobjevuje.

-Přepněte přepínač na Mega 2560 na „Soft Serial“.

-Nyní zapojte všechny součásti podle výše uvedeného schématu (kromě baterie!)

-Všimněte si, že jste již zapojili ESC k motorům a PDB, takže tato část schématu je hotová.

-Propojovací kabely od Pin 8 k Rx a Pin 7 k Tx jsou tam proto, že (na rozdíl od Uno, pro který byl tento štít vyroben), mega postrádá univerzální asynchronní přijímač-vysílač (UART) na pinech 7 a 8, a tedy musíme použít hardwarové sériové piny. Existuje více důvodů, proč potřebujeme hardwarové sériové piny, o nichž budeme diskutovat později.

-Při zapojování RC přijímače postupujte podle obrázku výše. Všimněte si, že datové kabely jdou do horní řady, zatímco Vin a Gnd jsou na druhém a třetím řádku (a na druhém až nejvzdálenějším sloupci kolíků).

-K provedení kabeláže transceiveru HC-12, RC přijímače a 5Vout z PDB na Vin Arduina jsme použili stohovatelné záhlaví, zatímco pro gyroskop jsme pájeli vodiče přímo a pomocí smršťovací bužírky kolem pájky. Můžete se rozhodnout provést buď pro kteroukoli ze součástí. Použití záhlaví je menší část práce dopředu, ale poskytuje větší flexibilitu. Přímé pájení vodičů je dlouhodobějším bezpečnějším spojením, ale znamená to, že použití této součásti na jiném projektu je těžší. Všimněte si toho, že pokud jste použili záhlaví na štítu GPS, stále máte slušnou flexibilitu bez ohledu na to, co děláte.

Na konci našeho projektu jsme nebyli schopni navrhnout dobrou metodu pro připojení všech našich komponent k rámu. Vzhledem k časové tísni naší třídy se naše řešení obecně točila kolem oboustranné pěnové pásky, lepicí pásky, elektrické pásky a zipů. Důrazně doporučujeme, abyste strávili více času navrhováním stabilních montážních struktur, pokud plánujete, že se jedná o dlouhodobější projekt. Se vším, co bylo řečeno, pokud chcete jen vytvořit rychlý prototyp, neváhejte nás v tomto procesu sledovat. Ujistěte se však, že je gyroskop bezpečně upevněn. Toto je jediný způsob, jakým Arduino ví, co kvadrokoptéra dělá, takže pokud se pohybuje za letu, budete mít problémy.

Když je vše zapojené a na svém místě, vezměte si LiPo baterii a zasuňte ji mezi horní a spodní desku rámu. Ujistěte se, že jeho konektor ukazuje stejným směrem jako konektor PDB a že se ve skutečnosti mohou připojit. K upevnění baterie jsme použili lepicí pásku (funguje také páska na suchý zip, ale je to otravnější než lepicí páska). Lepicí páska funguje dobře, protože baterii lze snadno vyměnit nebo vyjmout pro nabíjení. Musíte si však být jisti, že baterii TAPETNĚ sundáte, jako by se baterie během letu pohybovala, což by mohlo vážně narušit rovnováhu dronu. Ještě NEPŘIPOJUJTE baterii k PDB.

Krok 7: Vázat přijímač

Vázat přijímač
Vázat přijímač
Vázat přijímač
Vázat přijímač

Vezměte RC přijímač a dočasně jej připojte k 5V napájení (buď napájením Arduina pomocí USB nebo 9V napájení, nebo samostatným napájecím zdrojem. LiPo k Arduinu zatím nepřipojujte). Vezměte vázací kolík dodaný s RC přijímačem a umístěte jej na VÁZACÍ piny na přijímači. Střídavě zkraťte horní a dolní kolíky ve sloupci VÁZAT, jak je znázorněno na fotografii výše. Na přijímači by mělo rychle blikat červené světlo. Nyní vezměte ovladač a stiskněte tlačítko na zadní straně, když je vypnuté, jak je uvedeno výše. Po stisknutí tlačítka zapněte ovladač. Nyní by mělo blikající světlo na přijímači zhasnout. Přijímač je vázán. Odstraňte vázací kabel. Pokud jste používali jiný napájecí zdroj, znovu připojte přijímač k 5V z Arduina.

Krok 8: (Volitelné) Spojte kabely a namontujte kamerový systém FPV

(Volitelné) Spojte kabely a namontujte kamerový systém FPV
(Volitelné) Spojte kabely a namontujte kamerový systém FPV
(Volitelné) Spojte kabely a namontujte kamerový systém FPV
(Volitelné) Spojte kabely a namontujte kamerový systém FPV

Nejprve spojte adaptér XT-60 s napájecími a uzemňovacími vodiči na monitoru. Ty se mohou lišit monitor od monitoru, ale výkon bude téměř vždy červený, zem téměř vždy černá. Nyní vložte adaptér s připájenými vodiči do LiPo 1000mAh se zástrčkou XT-60. Monitor by se měl zapnout s (obvykle) modrým pozadím. To je nejtěžší krok!

Nyní našroubujte antény na přijímač a vysílač.

Připojte svůj malý 500mAh Lipo k vysílači. Nejvhodnější kolík (vpravo pod anténou) je zem (V_) baterie, další kolík vlevo je V+. Přicházejí tři dráty, které vedou k fotoaparátu. Vaše kamera by měla být dodávána se zástrčkou tři v jednom, která se vejde do vysílače. Ujistěte se, že máte uprostřed žlutý datový vodič. Pokud jste použili baterie, ke kterým jsme připojili zástrčky určené k tomuto účelu, tento krok by neměl vyžadovat žádné pájení.

Nakonec připojte další baterii 1000mAh pomocí kabelu DC out, který byl dodán s vaším přijímačem, a zapojte jej do portu DC in na vašem přijímači. Nakonec připojte černý konec kabelu AVin, který byl dodán s vaším přijímačem, k portu AVin na vašem přijímači a druhý (žlutý, ženský) konec ke žlutému samčímu konci kabelu AVin vašeho monitoru.

V tomto okamžiku byste měli na monitoru vidět pohled kamery. Pokud nemůžete, ujistěte se, že je přijímač i vysílač zapnutý (na jejich malých obrazovkách byste měli vidět čísla) a že jsou na stejném kanálu (pro oba jsme použili kanál 11 a měli dobrý úspěch). Dále budete možná muset změnit kanál na monitoru.

Namontujte součásti na rám.

Jakmile bude nastavení fungovat, odpojte baterie, dokud nebudete připraveni k letu.

Krok 9: Nastavte příjem dat GPS

Nastavte příjem GPS dat
Nastavte příjem GPS dat
Nastavte příjem GPS dat
Nastavte příjem GPS dat

Připojte druhé Arduino k druhému transceiveru HC-12, jak ukazuje výše uvedené schéma, přičemž mějte na paměti, že nastavení bude napájeno pouze tak, jak je zobrazeno, pokud je připojeno k počítači. Stáhněte si dodaný kód transceiveru, otevřete sériový monitor na 9600 baudů.

Pokud používáte základnější nastavení, měli byste začít přijímat věty GPS, pokud je váš štít GPS napájen a řádně připojen k druhému vysílači HC-12 (a pokud je přepínač na štítu v poloze „Přímý zápis“).

U Mega zkontrolujte, zda je přepínač v poloze „Soft Serial“.

Krok 10: Proveďte instalační kód (Uno)

Tento kód je totožný s kódem, který použil Joop Brokking ve svém tutoriálu o kvadrokoptéře Arduino, a za jeho psaní si zaslouží veškerou zásluhu.

Po odpojení baterie připojte počítač k Arduinu pomocí kabelu USB a nahrajte přiložený instalační kód. Zapněte RC vysílač. Otevřete sériový monitor na 57 600 baudů a postupujte podle pokynů.

Časté chyby:

Pokud se kód nepodaří nahrát, zkontrolujte, zda jsou na štítu UNO/GPS odpojeny piny 0 a 1. Jedná se o stejný hardwarový port, který zařízení používá ke komunikaci s počítačem, takže musí být volný.

Pokud kód přeskočí několik kroků najednou, zkontrolujte, zda je přepínač GPS zapnutý „Přímý zápis“.

Pokud není detekován žádný přijímač, ujistěte se, že je na přijímači, když je vysílač zapnutý, plné (ale tlumené) červené světlo. Pokud ano, zkontrolujte zapojení.

Pokud není detekován žádný gyroskop, může to být způsobeno poškozením gyroskopu nebo jiným typem gyroskopu, než pro který je kód určen k zápisu.

Krok 11: Proveďte instalační kód (Mega)

Tento kód je totožný s kódem, který použil Joop Brokking ve svém tutoriálu o kvadrokoptéře Arduino, a za jeho psaní si zaslouží veškerou zásluhu. Jednoduše jsme přizpůsobili zapojení Mega tak, aby vstupy přijímače odpovídaly správným pinům přerušení Pin Change.

Po odpojení baterie připojte počítač k Arduinu pomocí kabelu USB a nahrajte přiložený instalační kód. Otevřete sériový monitor na 57 600 baudů a postupujte podle pokynů.

Krok 12: Kalibrace ESC (Uno)

Tento kód je opět identický s kódem Joop Brokking. Všechny úpravy byly provedeny ve snaze integrovat GPS a Arduino a najdete je později, v popisu konstrukce pokročilejší kvadrokoptéry.

Nahrajte přiložený kalibrační kód ESC. Na sériový monitor napište písmeno „r“a stiskněte Return. Měli byste začít vidět hodnoty RC ovladačů v reálném čase. Ověřte, že se pohybují od 1 000 do 2 000 při extrémech plynu, náklonu, sklonu a zatáčení. Poté napište „a“a stiskněte Return. Nechte gyroskopickou kalibraci jít a poté ověřte, že gyroskop registruje pohyb čtyřkolky. Nyní odpojte arduino od počítače, zatlačte plyn na ovladači úplně nahoru a připojte baterii. ESC by měly cyklovat různé zvukové signály (ale to se může lišit v závislosti na ESC a jeho firmwaru). Zatlačte plyn až na doraz. ESC by měly vydávat nižší pípnutí a poté ztichnout. Odpojte baterii.

Volitelně můžete v tomto okamžiku použít kužely, které byly dodány s vašimi sadami příslušenství pro montáž motoru, k pevnému našroubování vrtulí. Poté zadejte na sériovém monitoru čísla 1 - 4 pro zapnutí motorů 1 - 4, respektive na nejnižší výkon. Program zaregistruje množství protřepávání v důsledku nerovnováhy rekvizit. Můžete to zkusit napravit přidáním malého množství skotské pásky na jednu nebo druhou stranu rekvizit. Zjistili jsme, že bychom bez tohoto kroku mohli dobře létat, ale možná o něco méně efektivně a hlasitěji, než kdybychom vyvažovali rekvizity.

Krok 13: Kalibrace ESC (Mega)

Tento kód je velmi podobný Brokkingovu kódu, nicméně jsme jej (a odpovídající zapojení) přizpůsobili pro práci s Mega.

Nahrajte přiložený kalibrační kód ESC. Na sériový monitor napište písmeno „r“a stiskněte Return. Měli byste začít vidět hodnoty RC ovladačů v reálném čase. Ověřte, že se pohybují od 1 000 do 2 000 při extrémech plynu, náklonu, sklonu a zatáčení.

Poté napište „a“a stiskněte Return. Nechte gyroskopickou kalibraci jít a poté ověřte, že gyroskop registruje pohyb čtyřkolky.

Nyní odpojte arduino od počítače, zatlačte plyn na ovladači úplně nahoru a připojte baterii. ESC by měly vydat tři nízké pípnutí následované silným pípnutím (ale to se může lišit v závislosti na ESC a jeho firmwaru). Zatlačte plyn až na doraz. Odpojte baterii.

Změny, které jsme v tomto kódu provedli, byly přepnutí z používání PORTD pro piny ESC na používání PORTA a poté změna bytů zapsaných na tyto porty, abychom aktivovali správné piny, jak je znázorněno na schématu zapojení. Tato změna je proto, že registrační kolíky PORTD nejsou na stejném místě na Mega jako na Uno. Tento kód jsme nemohli plně otestovat, protože jsme pracovali se starou značkou Mega, kterou měl obchod naší školy. To znamenalo, že z nějakého důvodu nebyly všechny piny registru PORTA schopné správně aktivovat ESC. Také jsme měli potíže s použitím operátoru nebo se rovná (| =) v některém z našich testovacích kódů. Nejsme si jisti, proč to způsobovalo problémy při psaní bajtů pro nastavení napětí pinů ESC, takže jsme Brookingův kód upravili co nejméně. Myslíme si, že tento kód je velmi blízký funkčnosti, ale počet najetých kilometrů se může lišit.

Krok 14: Získejte vzduch !! (Uno)

A opět, tento třetí kousek geniálního kódu je dílem Joopa Brokkinga. Změny všech těchto tří částí kódu jsou k dispozici pouze v našem pokusu o integraci dat GPS do Arduina.

Když jsou vaše vrtule pevně připevněny k rámu a všechny součásti jsou připoutány, přelepeny páskou nebo jinak připevněny, načtěte kód letového ovladače do svého Arduina a poté Arduino odpojte od počítače.

Vezměte kvadrokoptéru ven, zapojte baterii a zapněte vysílač. Volitelně si s sebou vezměte notebook připojený k nastavení příjmu GPS, nastavení příjmu videa a monitoru. Načtěte kód transceiveru do vašeho pozemního Arduina, otevřete sériový monitor na 9600 baudů a sledujte, jak se data GPS zavádějí.

Nyní jste připraveni k letu. Zatlačte plyn dolů a zatočte doleva, abyste aktivovali kvadrokoptéru, poté jemně zvedněte plyn, aby se vznášel. Začněte tím, že budete létat nízko nad zemí a přes měkké povrchy, jako je tráva, dokud se nebudete cítit pohodlně.

Podívejte se na vložené video, jak vzrušeně letíme s dronem, když jsme poprvé dokázali zajistit souběžný provoz dronu a GPS.

Krok 15: Získejte vzduch !! (Mega)

Kvůli našemu zavěšení s kalibračním kódem ESC pro Mega jsme nikdy nebyli schopni vytvořit kód letového ovladače pro tuto desku. Pokud jste se dostali do tohoto bodu, pak si představuji, že jste si alespoň pohrávali s kalibračním kódem ESC, aby to fungovalo pro Mega. Proto pravděpodobně budete muset provést podobné úpravy kódu letového ovladače, jako jste provedli v posledním kroku. Pokud náš kalibrační kód ESC pro Mega magicky funguje bez jakýchkoli dalších úprav, pak je pro skladový kód nutné udělat jen několik věcí, aby v tomto kroku fungoval. Nejprve budete muset projít a nahradit všechny instance PORTD za PORTA. Nezapomeňte také změnit DDRD na DDRA. Poté budete muset změnit všechny bajty zapsané do registru PORTA, aby aktivovaly správné piny. Chcete -li to provést, použijte bajt B11000011 k nastavení kolíků na vysoké a B00111100 k nastavení kolíků na nízké. Hodně štěstí a dejte nám prosím vědět, pokud úspěšně létáte pomocí Mega!

Krok 16: Jak jsme se s Mega Designem dostali tam, kde se aktuálně nacházíme

Tento projekt byl pro nás jako začátečníky s Arduinem a elektronikou nesmírnou studijní zkušeností. Proto bychom zahrnuli ságu všeho, s čím jsme se setkali při pokusu o povolení kódu Joop Brokking pomocí GPS. Protože je Brokkingův kód tak důkladný a mnohem komplikovanější než cokoli jiného, co jsme psali, rozhodli jsme se jej upravit co nejméně. Pokusili jsme se získat štít GPS pro odesílání dat do Arduina a poté nechat Arduino, aby nám tyto informace odeslal přes transceiver HC12 bez jakékoli úpravy letového kódu nebo kabeláže. Poté, co jsme se podívali na schémata a zapojení našeho Arduino Uno, abychom zjistili, jaké piny jsou k dispozici, změnili jsme kód transceiveru GPS, který jsme používali k obejití stávajícího designu. Poté jsme to otestovali, abychom se ujistili, že vše funguje. V tuto chvíli to vypadalo slibně.

Dalším krokem byla integrace kódu, který jsme právě upravili a otestovali pomocí letového ovladače Brokking. Nebylo to příliš obtížné, ale rychle jsme narazili na chybu. Letový ovladač Brokking se spoléhá na knihovny Arduino Wire a EEPROM, zatímco náš kód GPS používal knihovnu Software Serial a knihovnu Arduino GPS. Protože drátová knihovna odkazuje na softwarovou sériovou knihovnu, narazili jsme na chybu, kde by se kód nezkompiloval, protože existovalo „více definic pro _vector 3_“, ať už to znamená cokoli. Poté, co jsme se podívali na Google a prohrabali se v knihovnách, jsme si nakonec uvědomili, že tento konflikt knihoven znemožnil společné použití těchto částí kódu. Šli jsme tedy hledat alternativy.

Zjistili jsme, že jedinou kombinací knihoven, které na nás neházely chyby, bylo přepnutí standardní knihovny GPS na neoGPS a použití AltSoftSerial namísto Software Serial. Tato kombinace fungovala, ale AltSoftSerial může pracovat pouze se specifickými piny, které v našem designu nebyly k dispozici. Právě to nás vedlo k používání Mega. Arduino Megas má více hardwarových sériových portů, což znamenalo, že bychom mohli tento konflikt knihovny obejít tím, že nebudeme muset vůbec otevírat softwarové sériové porty.

Když jsme však začali používat Mega, rychle jsme si uvědomili, že konfigurace pinů je jiná. Piny na Uno, které mají přerušení, se na Mega liší. Podobně piny SDA a SCL byly na různých místech. Po prostudování pinových diagramů pro každý typ Arduina a refrencování registrů zavolaných v kódu jsme mohli spustit kód pro nastavení letu pouze s minimálním přepojením a bez změn softwaru.

Kalibrační kód ESC je místo, kde jsme začali narážet na problémy. Krátce jsme se toho dotkli dříve, ale v zásadě kód používá pinové registry k regulaci pinů používaných k ovládání ESC. Díky tomu je kód hůře čitelný než použití standardní funkce pinMode (); nicméně, to dělá kód běžet rychleji a aktivovat piny současně. To je důležité, protože letový kód běží v pečlivě načasované smyčce. Kvůli rozdílu pinů mezi Arduiny jsme se rozhodli na Mega použít portový registr A. Při našem testování nám však ne všechny piny poskytly stejné výstupní napětí, když nám bylo řečeno, že běží vysoko. Některé piny měly výkon kolem 4,90 V a jiné nám poskytly blíže 4,95 V. Zdá se, že ESC, které máme, jsou poněkud vybíravé, a tak by správně fungovaly pouze tehdy, kdybychom použili piny s vyšším napětím. To nás pak donutilo změnit bajty, které jsme napsali, na registr A tak, abychom mluvili se správnými piny. V sekci kalibrace ESC je o tom více informací.

To je zhruba tak daleko, jak jsme se dostali v této části projektu. Když jsme šli testovat tento upravený kalibrační kód ESC, něco se zkratovalo a ztratili jsme komunikaci s naším Arduinem. Byli jsme z toho velmi zmatení, protože jsme nezměnili žádné zapojení. To nás donutilo ustoupit a uvědomit si, že jsme měli jen pár dní na to, abychom po několika týdnech zkoušení spojili naše nekompatibilní kousky dohromady létající dron. Proto jsme ustoupili a vytvořili jednodušší projekt s Uno. Stále si však myslíme, že náš přístup je blízký práci s Mega s málo času.

Naším cílem je, aby vám toto vysvětlení překážek, se kterými jsme se setkali, pomohlo, pokud pracujete na úpravě Brokkingova kódu. Také jsme nikdy neměli možnost vyzkoušet kódování jakýchkoli funkcí autonomního řízení na základě GPS. To je něco, co budete muset zjistit po vytvoření pracovního dronu s Mega. Z některých předběžných průzkumů společnosti Google to však vypadá, že implementace Kalmanova filtru může být nejstabilnějším a nejpřesnějším způsobem, jak určit polohu za letu. Doporučujeme trochu prozkoumat, jak tento algoritmus optimalizuje odhady stavu. Kromě toho hodně štěstí a dejte nám vědět, pokud se dostanete dále, než jsme byli schopni!

Doporučuje: