Mini quadkopter építési, repülési, versenyzési tapasztalataim, tippek, tanácsok

Zsolesz FPV

Zsolesz FPV

Naze32 - CleanFlight haladó beállítások

Re-build log 2.

2015. október 03. - ZsoleszFPV

Az előző posztban átvettük, hogy mi kell ahhoz, hogy a Naze32 vezérlőn életre leheljük a CleanFlightot. Ez elég lehet ahhoz, hogy az első próbarepüléseket meg tudjuk tenni, de a tökéleset működshez koránt sem elég. Itt már meg kell barátkozni a parancsoros interfésszel és a jó kis "kézi" parancsokkal, paraméterekkel. Lássuk, tehát, hogy én miket állítottam be.

screen_shot_2015-10-03_at_11_57_04.png

A részletes parancsok előtt egy fontos dolog. Ha a CLI fülre lépünk, majd onnan vissza bármelyik másik fülre, a vezérlő rebootol és a nem mentett változtatások elvesznek. Tehát, ha változtatunk bármilyen konfigurációt, ne felejtsükt el utána beütni a Save parancsot, hogy a változtatások meg is maradjanak.

Általánosságban fontos parancsok még:

help: az elérhető parancsok, illetve paraméterek listája kérhető le vele

get: ezzel le lehet kérdezni bármilyen paraméter aktuális értékét

set: ezzel lehet megadni a paraméterek értékét

dump: ezzel lehet kiiratni teljes konfigurációkat, aminek a biztonsái másolat készítésénél van szerepe

save: ahogy fent írtam, csak mégegyszer, hogy el ne felejtsétek! :)

Orientáció

A gép átépítése során úgy döntöttem, hogy a vezérlőt nem a fehér nyillal előrefelé, hanem 90 fokkal jobbra elfordítva szerelem be. Így egyrészt könnyen hozzáférek az USB porthoz, másrészt a másik oldalon hozzáférek a 90 fokos tüskékre dugott szervo csatlakozókhoz, így az ESC-ket anélkül tudom frissíteni, konfigurálni, hogy a gépen bármit is szét kelljen szednem. Ehhez azonban meg kell mondani a CleanFlightnak, hogy nem arra van az előre, amerre alapaból gondolja, hanem 90 fokkkal odébb. Ehhez a Yaw tengeleyen 90 fokkal el kell fordítani az orientációt. (Ezt kivételesen még a grafikus interfészen is meg lehet tenni a "Configuration" fülön, de nézzük most a parancsort). A szükséges parancs:

set align_board_yaw = 90

Fontos, hogy sima (plusz) 90 fok, ha jobbra forgatjuk (óramutatóval megegyezően), ha balra, akkor -90. Ja? és persze: Save.

Ha most visszamegyünk az első fülre, akkor látnunk kell, hogy a gépet (illetve akár csak a vezérlőt) mozgatva, a képernyőn lévő quadkopter forma úgy mozdul el, ahogy a vezérlőt mozgatjuk a különböző irányokba. Ha nem így van, akkor vagy a szög értékét adtuk meg rosszul, vagy nem mentettük el a változtatást.

A vezérlő orientációját egyébként hasonló parancsokkal (align_board_roll, align_board_pitch) tetszőlegesen el lehet forgatni, így elméleteileg akár fejjel lefelé és arccal hátra is beépíthető a gépbe.

Holtjáték

MiniQuad egy gyors üzem, pontos irányítást igényel. Minek akarnánk bármiféle holtjátékot? Megmondom. A távvezérlő az adott csatornákon kb. 1000 és 2000 usec közötti jelet ad, legalább is ezt várja a CleanFlight. Azt is várja, hogy a joystickok középső állásában az érték pont 1500 legyen. Namost, ezt nem mindig könnyű beállítani. Nekem például fixen 1503-nak veszi a CleanFlight, amit a Taranis 1500-nak lát. Pedig a Taranis egy elég komoly táv. Más távoknál vibrál az érték 1-2 usec-nyit.

A kis eltérés is elég arra, hogy repülés közben a gép szépen, lassan elinduljon egy (vagy egyszerre több) tengely mentén. Ezt persze többféle trimmeléssel is lehet kezelgetni a távon, de talán egyszerűbb megadni a CleanFlightnak egy holtsávot, hogy az 1500 körüli milyen tartományt ne vegyen figyelembe. Azt mondják, hogy a Configuratorban tapasztalt eltérés dupláját érdemes megadni, tehát az én esetemben 6-ot, illetve, tuti, ami tuti alapon 7-et állítottam be. Ez az irányításban nem igazán észrevehető, viszont a gép stabilitását kiválóan helyrerakta. Rögtön két helyen kell ezt megadni, hogy a Roll-Pitch, illetve a Yaw tengelyeken is érvényes legyen (ha van a Yaw-n is elétés). Szóval.

set deadband = 7

set yaw_deadband = 7

A "7" itt értelem szerűen kicserélendő a saját értékre. Ellenőrzini a

get deadband

paranccsal lehet, amely az összes deadband értéket kilistázza.

Hatékonyság

A vezérlő egy meghatározott vezérlési-hurok idővel dolgozik. Ennek a paraméternek az alapértéke 3500. A gyorsabb ESC-k, különösen a Oneshot125 képességűek ennél sokkal gyorsabb jelek fogadására is képesek, ami azt eredményezi, hogy a gépünk gyorsabban tud reagálni az irányításra, illetve a külső behatásokra is. Lehetőség van tehát a looptime érték csökkentésére. Elvileg ez ma általában egy Naze32 boardon 1200-ig csökkenthető, de bizonyos esetekben ez alá is lehet menni. Ha viszont az ESC nem bírja, és a motorok bedadognak, kiesnek a szinkronból, akkor ki kell kísérletezni, hogy mi az a legalacsonyabb érték, amivel még szépen dolgoznak a motork a teljes gáz-tartományban. Minden esetre a looptime beállításának parancsa:

set looptime = 1200

A CleanFlight a BaseFlighton alapul, ami pedig a Multiwiin alapul. Az alapok tehát nem maiak. Ennek megfelelően van pár olyan funkció bennük, amely nem feltétlenül szükséges a mai vezérlők esetén, mégis teljesítményt fogyaszt. Ezeket kikapcsolva a vezérlőnk az STM32F1 csip processzorkapacitását teljes mértékben a leghatékonyabban tudja felhasználni.

Az első ilyen a elektromágneses csillapítás (EMF avoidance). Kapcsoljuk tehát ki:

set emf_avoidance = 1

Arra figyeljünk, hogy CC3D vezérlő esetén ez egyúttal letiltja az USB portot is, ezért utána már csak main porton kereszül lehet programozni. Naze32 esetén viszont semmit nem fogunk hiányolni, csak a gép repül jobban.

A második ilyen dolog az accelerometer kikapcsolása. Talán most többen felkiáltanak, hogy ho-ho-ho, de akkor hogy fog a Attitude és a Horizon mód működni. A kérdés jogos, a válasz: sehogy!!! Igen, ez a funkció csak haladóknak ajánlaott, de hát aki 250 FPV racert épít, úgy is elkötelezte magát az Acro mód megtanulása mellett. :) A parancs:

set acc_hardware = 1

Még én sem vagyok olyan szinten, hogy ezeknek a parancsoknak a hatását megérezném a repülési teljesíményre, de ha a nagyok ezt mondják....

Egyedi Motor Mix

A CleanFlightban az alapbeállítás a Quad X motor mixer, amit a főlapon látunk is a motorok sorszámozásával és forgási irányával egyetemben. A legtöbb mai váz azonban - beleértve az én Nighthawk 250 Pro-mat is, nem tökéletes X alakú, hanem H. Így, mivel a motork nem egyenlő távolságra vannak a forgási tengelyektől, az eltérő rádiusz és kerületi sebesség miatt azonos erőnél nem azonos szögsebességet (fordulási sebességet) nyújtanak. Ez kibillentené az egyensúlyából a gépet, ha a vezérlő nem érzékelné és nem korrigálná a hibát. De megteszi. Viszont ez megint extra erőforrásba kerül. A CleanFlight lehetőséget nyújt rá, hogy a saját vázunk arányainak megfelelően egyedileg állítsuk be a motor mixeket, így minidig optimális erőt fejtenek ki a motorok és a vezérlő pedig simábban tud dolgozni.

Először meg kell határoznunk az erőkarok arányszámát, amihet meg kell mérni az adott motor Roll, illetve Pitch tengelyektől mért távolságát. A Yaw-val nem kell foglalkozni, mer ta yaw tengelytől minden motor azonos távolságra van. A váz szimetrikus, tehát elég, ha ezt egy motorra lemérjük a távolságokat. Talán egyszerűbb a motork közötti távolságokat lemérni, majd elfelezni, mint keresgélni a váz pontos középpontját. Az így kapott két értékekből képzünk egy hányadost, úgy, hogy a kisebb számot elosztjuk a nagyobb-bal (a lényeg, hogy az eredmény 1-nél kisebb legyen, pontosabban -1 és 1 közé eső értékekre lesz szükségünk). Ebből az arányszámból pedig már le is tudjuk képezni a szükséges parancsokat.

Az én vázam (akárcsak a sokak által haszhált ZMR250) szélesebb, mint amilyen hosszú, azaz a motor-roll tengely távolság (109 mm) nagyobb, mint a motor-pitch tengely távolság (87,5 mm). Az arány ebből

87,7/109 = 0,803

Először a custom mixer módot kell engedélyezni (a Quad X) helyett. Majd érdemes egy reset-et csinálni és utána jöhet a 4 motorra vonatkozó parancs, amelynek szintaktikája a következő:

cmix "motorszám" "gáz arány", "roll arány", "pitch arány", "yaw arány"

Ez egy alap Quad X beállításnál az 1-es motorra így néz ki:

cmix 1 1.0, -1.0,  1.0, -1.0

A motor szorszámát remélem már mindenki tudja, ha nem, itt van róla szó. A gáz arány maradjon az alapértelmezett 1-es és a yaw arány is az alapértelmeztt 1 (CCW motorok 2-3 estén), illetve -1 (CW motorok, 4-1 estén). Egyébként ez az érték határozza meg a motorok forgási sebességét, tehát ezzel elméletileg meg is lehet fordítani, ha esetleg a bekötés nem megfelelő és nem akarjuk bontani a hardvert. (Nem próbáltam, de elvileg működhet).

Na most jön a java. A Pitch vagy a Roll arányszámoknál az előjelet meghagyva a fent kiszámolt egyedi arányszámot kell behelyettesíteni a következők szerint. Azt a tengelyt kell változtatni, amelyikhez közelebb vannak a motorok. Itt  az  egyedi arányszámot használjuk, míg a másik tengelynél maradnak az alapértékek, az 1, illetve -1.

Az én esetemben a nagyobb távolság a Roll tengelyre vonatkozik, így a Pitch értékeknél kell csak változtatni.

Ebből tehát a teljes setup paranacsor így néz ki:

mixer custom
cmix reset
cmix 1 1.0, -1.0,  0.803, -1.0
cmix 2 1.0, -1.0, -0.803,  1.0
cmix 3 1.0,  1.0,  0.803,  1.0
cmix 4 1.0,  1.0, -0.803, -1.0
save

Ami egy kicsit zavar, hogy ilyenkor a Configurator főképernyőjén a jó kis quadkopter helyett egy ormótlan nagy téglatest jelenik meg, mondván, hogy egyedi mix, nem tudhatjuk, hogy milyen gép is ez. Mondjuk, mióta kiakpcsoltam az accelerometert, amúgy sem mozgott ez a makett, szóval tökmindegy...

UPDATE: A CleanFlight v1.10-ben a "cmix" parancsot átnevezték "mmix"-re, és behovták az smix-et is, így egy rugalmas servo konfigurációt tettek lehetővé.

Konfigurációk mentése

A CleanFlight nem bánik valami barátian a már beállított konfigurációkkal. A grafikus felületen ugyan van egy backup/restore gomb, de már ott is írják, hogy az a parancsorban megadott paramétereket nem menti.

Erre jön rá, hogy lényegében minden nagyobb upgrade esetén külön felhívják rá a figylmet, hogy a konfiguráció elvész és lehet szépen újra beállítani a rendszert.

A nagy nehezen beállított konfiguráción elmentésére az egyetlen teljesértékű módszer a parancssorba begépelt

dump

parancs, amely a teljes konfigurációt kilistázza. Ezt egy elég kőkorszaki Ctrl+A Ctrl+C parancskombinációval kimásoljuk és egy teszőleges word, vagy akármilyen doksiba bemásolva elmentjük.

A visszaállítás ennek megfelelően az új telepítés után az adott parancsok begépelgetése és mentése. Nem egy profi, kényelmes megoldás, de ha valaki egy ilyen iszonyatos ütemben (egyébként tök jó irányba) fejlődő platformot akar használni, akkor az ezzel jár.

A cikkhez a következő forrásokat használtam:

http://blog.oscarliang.net/cleanflight-setting-improve-naze32-looptime/

http://blog.oscarliang.net/custom-motor-output-mix-quadcopter/

https://github.com/cleanflight/cleanflight/blob/master/docs/Mixer.md

 

A bejegyzés trackback címe:

https://zsoleszfpv.blog.hu/api/trackback/id/tr447877816

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

CsGyuri 2016.09.05. 10:45:37

Szia Zsolesz!
Tudnál segíteni egy NAZE32 10dof (Eachine racer250) felprogramozásában, hogy repülésre lehessen bírni a gépet? A cleanflight-on keresztül tesztelhetőek a motorok, veszi a távi jelét, de a neten talált útmutatók alapján nem tudom programozni, beállítani. Vannak beállítások, amiket nem hajlandó menteni.
Előre is köszi!
süti beállítások módosítása