Drón avagy a nem-igen repülő rettenet 1. rész (Arduino programozása Bluetoothon keresztül)

Viszonylag kis méretű beltéri drónt szerettem volna készíteni szórakozás céljából. Nem akartan nagy energiát befektetni a dologba ezért kiszemeltem egy trikoptert (3 motoros drón) amit valaki már megépített. Itt megtalálható. Szembesültem azzal, hogy a 3 motoros drónok irányíthatatlanok, ha nem megfelelő szögben van megdöntve a hátsó motor pörögnek függőleges tengelyük körül. Legjobban akkor működött volna ha lett volna egy negyedik motor ami ment közben szabályozza a hátsó rotor dőlésszöget, hogy stabilizálja a repülést.

Teremtmény (tessék eltekinteni a giroszkóp+gyorsulásmérőtől a tetején az a verzió 2-ben lesz)

A fenti tervet módosítottam, több erőt pakolva az elektronikába FET-el vezérelt motorok nagyobb teljesítményű akku. A hangvezérlés eleve halálraítélt dolognak tűnt így készítettem bluetooth-os távirányítót a kopterhez. Ezúttal 4 motorral.

Tárgyalni fogom hogyan lehet összekapcsolni 2 HC-05 Bluetooth modult AT parancsokkal és hogyan lehet úgy bekötni a Bluetooth modult hogy rajta keresztül programozni lehessen az Arduino Pro Mini modult, ami nem hátrány egy drón esetében. (nem kell soros portra csatlakoztatni minden módosításnál)

Áramkör:

Klikk a képre letöltéshez.

Nyomtatott áramkör

Alkatrészek listája quadkopter:

SDWUP-33 stabilizátor áramkör tartja a 3.3V-ot ha az akku érték alá merül akkor is. Mivel mérete és súlya nagyon kicsi, valamint remekül szűri a motorok által keltett zavart (amiből van bőven) remekül alkalmas ebbe az áramkörbe. Nélküle az Arduino reset-el másodperceken belül.

Akku –3,7V 400mA/h szintén SYMA

A többi alkatrész leolvasható a fenti rajzról.

Azért választottam ennek a drónnak az alkatrészeit mert olcsók és hozzáférhetőek, nem nagy kár ha törnek.

Előkészítés:

Mielőtt HC-05 modulunkat beforrasztanánk a fenti áramkörbe, AT parancsokkal be kell állítani néhány paramétert, hogy a későbbiekben kommunikálni tudjon az Arduino Pro_mini modullal programozási üzemmódban, valamint össze kell kapcsolni a távirányító HC-05 bluetooth moduljával. A továbbiakban a szükséges ATparancsokat írom le. A modul AT-módba léptetésének leírását, csatlakoztatásának mikéntjét itt találod.

AT-parancsok (kopter modulja):

AT+UART=57600,0,0 — ez határozza meg a kommunikációs paramétereket, az Arduino PRO MINI 57600 baudon kommunikál amikor a számítógép feltölti a szkriptet ezért nekünk is erre kell állítani a bluetooth modul kommunikációs sebességét. (más típusú Arduino más sebességet használ)

AT+POLAR = 1,0 — ezzel a paranccsal beállítjuk, hogy a modul a STATE lábát pozitívra húzza ezzel egy 100nF kondenzátoron keresztül vezéreljük a PRO MINI RESET lábát

AT+NAME=KOPTER — a modul neve(opcionális)

AT+ADDR — jól lekérdezzük a modul MAC címét és felírjuk (távirányító moduljába kell bekarcolni majd)

AT+ROLE=0 — Sclave-nek állítjuk be a kopter modulját

AT+RESET — mentés és kilépés AT módból

AT parancsok (távirányító modulja):

AT+UART=57600,0,0 — tartanunk kell a sebességet mert a fenti modul erre van állítva (okokat leírtam)

AT+ROLE=1 — Master-nek állítjuk be a távirányító modulját

AT+CMODE=0 — egyetlen fix MAC-címhez kapcsolódás

AT+BIND=XXX,XX,XXXXXX —összekapcsolás a másik modul MAC-címével amit korábban felírtunk

AT+RESET — mentés és kilépés AT módból

A továbbiakban a modul bekapcsolás pillanatában keresni kezdi a kopter bluetooth-ját és kapcsolódik hozzá amennyiben az be van kapcsolva. A kapcsolat oda-vissza működik.

Sclave modulunkat beforrasztjuk az áramkörbe, bekapcsoljuk a tápellátást, párosítjuk a számítógéppel, általában com 5-ön lehet csatlakozni hozzá de, ha már foglalt akkor eszközkezelőből kikereshető. Fordító programban beállítjuk és már tölthető fel bluetooth-on a program. Figyelem: 2 motor az Arduino bootolási folyamata alatt felpörög valamint programfeltöltés alatt is. Alulról kell fogni a koptert különben fájni fog! 😀

Beültetés:

Program:

Program itt letölthető

Beszéljünk kicsit a PWM- ről :

Jelentése Pulse Width Modulation azaz Impulzus Szélesség Moduláció.

Próbálom egyszerűen magyarázni.

Szeretnénk egy egyenáramú villanymotor fordulatszámát szabályozni, ezt a legegyszerűbben úgy tehetjük meg, hogy a motor áramkörében lévő kapcsolót (esetünkben FET-et) kapcsolgatjuk, minél kevesebbet hagyjuk bekapcsolva a kapcsolót a motor annál lassabban forog, ha több ideig hagyjuk bekapcsolva gyorsabban forog.

Talán itt világosabb: https://www.arduino.cc/en/tutorial/PWM

Így néz ki ábrázolva

Az Arduino Pro Mini csak néhány kimeneten tudja elkövetni ezt a fajta vezérlést, nevezetesen: 3,5,6,9,10,11 lábakon.

Használatos parancs a programban: analogWrite( sebesség , kimenet száma);

sebesség = 0-255 közötti szám, ahol 0 kikapcsolt állapot 255 teljesen bekapcsolt

kimenet száma = 3,5,6,9,10,11 láb száma

Pl.: analogWrite( 200 , 3);

Tapasztalatom a Pro Mini PWM kimeneteivel az , hogy nem egyenlő fordulatszámon forgatja a motorokat bár ugyanarra a sebességre vannak állítva. 3 és a 9 lábon lévő motor gyorsabban forog, ha van valakinek ötlete, hogy miért, írjon nekem egy e-mailt.

Címem laszlo.koszta@hirehamva.hu

Folytatás következik!

Távirányítót és a programja jön.

Megosztás:

Ez a weboldal sütiket használ. Az Uniós törvények értelmében kérem, engedélyezze a sütik használatát, vagy zárja be az oldalt. További információ

Az Uniós törvények értelmében fel kell hívnunk a figyelmét arra, hogy ez a weboldal ún. "cookie"-kat vagy "sütiket" használ. A sütik kicsik, teljesen veszélytelen fájlok, amelyeket a weboldal azért helyez el az Ön számítógépén, hogy minél egyszerűbbé tegye Ön számára a böngészést. A sütiket letilthatja a böngészője beállításaiban. Amennyiben ezt nem teszi meg, illetve ha az "Elfogadom" feliratú gombra kattint, azzal elfogadja a sütik használatát.

Bezárás