Arduino-vezérelt drón

|

Drónprogramozás Arduinoval? Tökéletesen lehetséges! Cikkünkben bemutatjuk, mi mindenre lesz ennek tényleges megvalósításához szükséged.

Rendkívül népszerű hobbivá vált hazánkban is a drónok reptetése, azonban a boltban vásárolható eszközök csak kevés esetben engedik, hogy alaposabban is belepiszkálj a vezérlőrendszerükbe, így a programozásuk is csak meglehetősen körülményesen megoldható. Természetesen egy fokkal könnyebb a helyzet, ha a különféle kínai áruházak széleskörű kínálatában vadászol kész drónok, vagy az előállításukhoz szükséges alkatrészek után, hisz itt már viszonylag könnyű olyan készüléket, illetve komponenseket találni, melyek a megfelelő ismeretek birtokában lehetővé teszik, hogy a programkódjaid segítségével a fellegek közé emeld őket.

Persze nem biztos, hogy elsőre sikerül majd minden egyes kiegészítőt megfelelően beszerezned, vagy a drónok vezérléséhez szükséges Arduino-vezérlést tökéletesen elsajátítanod, azonban cikkünkben igyekszünk részletesen végigvezetni a teljes folyamaton, hogy a lehető legkevesebb kellemetlenséggel szembesülj.

Válassz drónt

Az építés folyamatába könnyedén belebukhatnak még a komolyabb műszaki ismeretekkel rendelkező felhasználók is, éppen ezért érdemes már kész modelleket kinézned a piaci kínálatból. Ha igazán kedvező árra vágysz, nézz körül alaposan az Aliexpress (https://www.aliexpress.com/), a Banggood (https://www.banggood.com/), illetve a GearBest (https://www.gearbest.com/) áruházak kínálatában, szinte biztosan megleled a számodra ideális készüléket. Jó tanácsként azért megjegyezzük, hogy első drónnak nem érdemes egy nagyobb teljesítményűt választanod, egy aprócska repülő szerkezeten is remekül elsajátíthatod ugyanis az alapokat és az esetleges hibák esetén még a különféle alkatrészek pótlására sem kell túlzottan komoly összegeket fordítanod. A drónnal együtt egyébként érdemes már rögtön néhány ilyen plusz alkatrészt is berendelni, hogy egy rosszul sikerült manővert követően se kelljen heteket várnod arra, hogy újra a levegőbe emelkedj. A saját kezűleg, komponensenként összeállított modelleknél könnyedén megoldható az is, hogy a drón fedélzeti chipjét vezéreld, azonban a cikkünkben is taglalt, kész modelleknél egyszerűbb, ha a távirányítón keresztül hajtod végre az utasítások továbbítását. Ehhez azonban arra is szükség van, hogy egy professzionális vezérlőt támogasson a reptetni kívánt eszköz. Szerencsére ez a kompatibilitási információ a legtöbb modellnél már a leírásból kiderül, elegendő a BNF (bind-to-fly) kulcsszót keresned a specifikációk olvasgatásakor.

Egy mintaösszeállításként mi az Eachine Tiny QX90 típusú drónt szereztünk be, méghozzá a Frsky kompatibilitást kínáló vevőegységgel rendelkező modelljét, emellett néhány extra motorral, propellerrel, és kiegészítő akkumulátorokkal is kibővítettük a rendelésünket. Ehhez az egész csomaghoz aztán szereztünk egy Taranis X9D Plus vezérlőegységet, melynek a feladata, hogy a programozott jeleket továbbítsa a drónod irányába. Az összeállítás teljességéhez pedig már csupán egyetlen dologra volt szükségünk, ez pedig nem más, mint maga az Arduino mikrovezérlő. Szerencsére itt sem kell a legbrutálisabb teljesítményű készüléket beszerezni, egy minél kompaktabb modellre volt ugyanis szükségünk, mely a távirányítóban is gond nélkül elfér. A legjobb választást az Arduino Nano Mini kínálta, mely teljesítményében és méretében is tökéletesen megfelelt a célra. Ezek után már csupán pár hét izgatott várakozás következett, amíg a drón-csomag végre a szerkesztőségben landolt.

Programozási ismeretek

Ha már megvan a drón, jöhet a programozás. Internetszerte rengeteg előre elkészített programkódot találhatsz a modellek irányításához egy kis kutakodást követően, sőt akad olyan is, amelyik (https://github.com/Rudolfking/AlphaFlight) még grafikus felületet is kínál arra, hogy a távirányítóba helyezendő hardver utasításait elkészítsd. Éppen ezért, mi most a legkomolyabb részletekig nem kívánunk belemenni a programozható felület minden egyes funkciójába, inkább megmutatjuk, hogy mi is az a vezérlő szoftver, mely eszközöd lelkét adja majd a későbbiekben. A távirányítású kontrollhoz úgynevezett PPM (Pulse-position modulation) jel kiküldésére lesz szükséged, a folyamatos impulzusokat pedig a vezérlőd továbbítja a drónod irányába, melynek a felületén elhelyezett vevőegység elemzi, és végrehajtja a kapott feladatot. Rengeteg Arduino-kompatibilis PPM -programot találhatunk egy kis keresést követően, a PC World Plusz felületén az Extrák között is elhelyeztünk egy ilyen ino kiterjesztésű állományt, melynek az érintetlen verziója egy olyan jelet küld, mely nyugalmi állapotban tartja a drónt.

A küldött jel 1000 és 2000 közötti értéket vehet fel, a nyugalmi pozíciót jelentő 1500-as értékhez képest kell változtatnod a kód elején létrehozott ppm tömb megfelelő értékeit és ezzel a drónod mozgatására már képesek is leszel. A loop-ban adhatod azokat az értékeket, amiket változtatni szeretnél, azonban mindenképp ügyelj arra, hogy megfelelő módon bánj a különféle változókkal (például egy 2000-es gáz nem biztos, hogy jó ötlet). A PPM csatornák között az alapvető irányítás során elegendő az első négyet használni, ezek sorrendben a pitch (előre-hátra döntés), roll (jobbra-balra döntés), throttle (gáz), és yaw (tengely körüli forgatás) feladatokat számszerűsítik. Ahhoz tehát, hogy egy kis előrehaladást végrehajts a nyugalmi állapotban lévő drónt döntsd előre, vagyis az alapértelmezett 1500-as értéket finoman növeld, majd - némi késleltetést követően (delay(1000);) - állítsd vissza alapértelmezettre. Hasonlóan kell eljárnod, ha forgatásra, vagy egyéb mozgatásra vágysz. A kódod helyességének ellenőrzéséhez érdemes lehet még kiiratnod a soros-monitorra az aktuálisan módosított értékeket. Ehhez a kódot egészítsd ki a sorosport megnyitásával (Serial.begin(9600);), valamint a Serial.print(ppm["tömbelem"]) utasítással és máris készen állsz a tesztelésre.

A futtatás előtt ellenőrizd, hogy az Arduino mikrokontrollered megfelelő beállítások mellett csatlakozzon a szoftverhez, ha pedig minden stimmel, akár fel is töltheted a megírt programot. Ha minden rendben zajlott, és a soros-monitoron is a megfelelő időben jelennek meg a módosított információk már csupán annyi a teendőd, hogy a távirányítóhoz csatlakoztatod a mikrovezérlőt, és élesben is ellenőrzöd a programod működőképességét. Kezdetekben mindenképp csupán apró módosításokat hajts végre az alapértelmezett értékeken, ha pedig már belejöttél akár komolyabb változtatásokat is eszközölhetsz. Jó tanácsként a kísérletezés során a gázkart érdemes saját kezűleg kontrollálni, hisz így elkerülheted a drón sérülésével járó baleseteket.

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://www.helloworldonline.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.