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.
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:
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:
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
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.