Autopilot rendszer rádiós vezérlésű helikopter számára
Autopilot rendszer rádiós vezérlésű helikopter számára. 2. rész: Az ellenőrzés lehallgatása -3
- 11.06.15 03:50 •
- altanium •
- # 259683 •
- Habrahabr •
- 25 •
- 6678
- ugyanaz, mint Forbes, csak jobb.
Ez egy folytatás a rádiót vezérlő helikopter autopilot rendszerének fejlesztéséről.
Mivel nem tervezem teljes körű UAV-ot építeni, a legtöbb esetben manuálisan működtetett helikopter, és nem fogom teljesen eltávolítani a vevőt. Ezért valahogy fel kell ismerni az Arduino, a rádióvevő és a motorvezérlő közötti kommunikációt.
Először is úgy döntöttem, hogy megértem, hogyan kommunikál a vevő a vezérlővel. Amint a szervók csatlakoztatva vannak a vevõhöz és a vezérlõhöz, akkor a motorvezérlés elve megegyezik a PWM alapú szervo hajtásokkal.
Aztán úgy döntöttem, hogy megpróbálom elolvasni az értékeket a vevő kimeneteiről.
A vevőegység és a motorvezérlő érintkezőinek elrendezése: 1-GND, 2-VCC, 3-jel.
Erre a célra, csatlakoztassa a vevőt jel kimenet (csak 4, a felső 2 - szervót, a következő 2 - vezérlésére motorok) Arduino pin 5,6,7,8, az egyik bemenet a VCC 5v Arduino, és az egyik bemenet a GND GND Arduino . Az impulzusIn () függvény segítségével, amely a jel hossza egy adott bemeneten olvasható, megkapjuk a vevő által megadott értékeket. A kezelőpanel karainak maximalizálása érdekében rögzítettem a szükséges értékeket. Ez az érték az 1080-1800, ahol a kibocsátott értéket, ha a fogantyúk a normális állapot, a tekercs, szurok és címsor - 1450, és a gáz - 1080.
A vázlat nagyon egyszerű:
Nos, valóban mindenre úgy tűnik, át tudná irányítani az irányítást Arduino-ra? Elhelyezés most motorvezérlő (Arduino pin 5 és 6) és a beavatkozószervek (Arduino 7 csap és a 8) és a levelet Arduino egy másik vázlat:
Töltsd fel, várjunk, és itt kezdődnek a problémák. Először is hosszú idő telt el, hogy felidézze miért kapcsolódik be a vezérlő, de nem kalibrálható és nem fog működni. Fél óra múlva már találtak megoldást: a probléma az volt, hogy bekapcsol és villog, ha minden feszültség, de a munka csak akkor kezdődik el, ha az akkumulátor feszültsége minimum 7.4 voltot. Igazából még részesült, az Arduino nagyon jól táplált és hajtja az akkumulátor a vezérlőn keresztül, és nem lesz, hogy egy akkumulátor-kezelés, a másik pedig a motor vezérlő (általában vezérlő egy nagy teljesítményű akkumulátor, nagy kapacitású és feszültség 11.1V, és kis kapacitású akkumulátor (850 mAh) és 7.4V feszültség vezérlése.
Csatlakoztatjuk az akkumulátort, próbálkozzunk újra. Ismét csak villog. A probléma megoldására egy óráig tartott 3. Kiderült, hogy az adatkezelő dolgozni, szüksége van valamilyen módon, amikor a povzaimodeystvovat a vevővel. Pontosan, még nem sikerült kideríteni, talán a vevő néhány különleges értéket küld neki. Ennek megoldására, csatlakoztassa az Arduino is egy vevőt (Arduino pin 9,10,11,12), olvas ez az értékeket érkező távirányítóval, és továbbítja azokat a vezérlő:
Töltse ki, csatlakoztassa, dolgozzon!
Most a rádióerősítő az Arduino-on keresztül van a vezérlőhöz csatlakoztatva, amely elfogja a jelet és elküldi a kívánt vezérlőcsatornára. Annak ellenére, hogy a jel megváltozik (általában az érték 15-20 egységgel csökken), a helikopter felemelhető a levegőben is.
Add hozzá az Arduino gombot, amikor be van kapcsolva az automatikus vezérlés bekapcsolásához.
A vezérlés az Arduino-ra történő átviteléhez meg kell csatlakoztatni az akkumulátort, várni kell addig, amíg a vezérlőn lévő jelző folyamatosan égni kezd, és elvileg elválaszthatja a vevőt. Az inicializálás után a vezérlő már vevő nélkül is működhet.
Ebben a példában egy ciklus (a szervo sima működtetése érdekében) megváltozik a kések dőlésszöge. A jövőben ugyanazt a módszert fogják használni a helikopter repülés közbeni ellenőrzésére.
Segíthet és pénzt küldhet a fejlesztéshez
Mind a cikkeket olvastam az alapokról (sajnálom, de eddig ez) az autopilotról. Figyelmeztetni akarlak, mert egy autopilóta nem fog menedzselni egy giroszkópot, megmagyarázom, miért. A gyro tulajdonában fekszik, ha beolvassa az olvasásait. A kormánylapú helikopterek egy egytengelyű fejjel gyroscopert helyeznek el (például igazítsanak a gp780-hoz). Csak y és y stabilizálásra van szükség. Sajnos a TAU és az autopilot modellek ismerete különösen azt mondja, hogy az autopilotnak ismernie kell a hajótest sarkait, ami nem ad gyroscopot.
Talán a multiwii stabilizációs kód segít Önnek, van egy helikopter üzemmód, de nem tervezték koaxiális 2x helikopter rotor rendszert, és egy kicsit el kell gondolkodnod.
Van némi valószínűség is, hogy a stílusban írt kód (arduino könyvtárak használatával) valószínűleg nem lesz elég sebesség egy komoly autopilot számára. Ugyanez a multiwii nem használja például a pulseIn funkcióit.
Ui Nem akarom pontyat, de tudni akarom, miért hívják a motort jobbra és alulról?
Servo rightmot;
Servo nizmot;
P.P.S. Szeretném, ha megteheted a kód formázását, a behúzások be vannak állítva.
P.P.P.S. Finom fickó vagy, és érdekes témát választottál, de érdemes több lépést megtenni a Khabbrnál, mint a servletekkel. Az ilyen dolgok az arduino.cc-en vannak
Ez nem csak egy gyroscope. Egy másik GPS 1 Hz-es frissítési frekvenciával (most már tényleg leeresztettem az antennát, de várjam, míg egy másik 5 Hz-re érkezik) és egy barométer (amely nem magasságmérő). Kezdetben a motorok leginkább azért voltak, mert a vezérlőn a kimenetek egymás fölött helyezkednek el :). Aztán az egyiket jobbra nevezték át. Ez a csatorna felelős a balra és a jobbra forgatásért, a második viszont alacsonyabb, mert ez a csatorna - felelős a fel-le-lefelé. Köszönöm, de ez több, mint egy vázlat a sebességvezérlőn áthaladó motorokon. Ami engem illet, ez volt a legnehezebb és fontosabb.
Ui Azt javaslom, hogy a jövőben nevezzem meg a szervo / motor, például a rollServo, pitchServo, yawMotor, throttleMotor. Talán kényelmesebb lesz.
Mindent, most már értem.
Igen, arról beszélek, és azt mondom, hogy az 1 Hz kicsi, ezért 5 Hz-re rendeltem egy vevőt.
Nos, valóban, ez az ötlet, hogy elérje kézzel bármely pontjára rekord GPS mért, és ezt követően összehasonlítja a jelenlegi helyzet a korábban felvett, és már ez vezetett hogyan kell eljárni. Ha maradt, repül jobbra (ha a repülést, repül maradt, és így tovább a végtelenségig). A helyiségben ez nem illik, de például egy nagy helyet valahol a helyszínen, csak helyes. Még akkor is, ha a hiba hangja akár egy méter is lehet, tökéletesen megfelel nekem.
Ezzel már kitaláltam, mielőtt még nem értettem volna, hogy a motorok és a szervo r modellek vezéreltek, most megértem a hagyományos PWM-et.
Köszönöm, jó ötlet a csatornáknak a céljuknak megfelelően hívni, ezért megcsinálom.
Természetesen elnézést kérek, de a mobileszközök vezérlése nagyon sokoldalú, és még nincs egyetemes megoldás. Vannak PID-k, de problémákkal is jár. Az a tény, hogy ezt a feladatot tudományos munkámban végzem. Ha megoldotta ezt a problémát, akkor ossza meg a tudományos közösséggel.
Ezenkívül szembe kell néznünk az érzékelői olvasásának szűrésével. Ne felejtsük el azt is, hogy anélkül, hogy tudnád, hogyan fordulsz a horizont felé, nem tudsz repülni pontokkal, és nem fogod megérteni a horizontot a gyorsulásmérő nélkül.
Ismét, ha balra közlekedsz (vegye be a példát), akkor mi az érték a szervó elutasításához? Maximális balra - forduljon át.
Shim a legegyszerűbb az összes projektedben.
Ne fordítsa át, ellenőrizze. Minél távolabb van attól a ponttól, annál inkább a bal, ahogy megközelítjük, csökkentve a szervo dőlésszögét. Mindezt kísérletileg kell levonni. Nem értem teljesen a "Megfordult a horizonton" kifejezést. Ez egy iránytű olvasása? Ha igen, akkor ezeket a leolvasásokat a GPS-vevő is kiadja (egy kurzust és sebességet ad ki). A végén egy gyorsulásmérő üzembe helyezése nem jelent problémát.
A tekercs és a szög szögekről van szó, amelyek nagyon fontosak. Az iránytű csak egy segédeszköz az ívek észleléséhez, mint egy gyorsulásmérő a tekercs és a szurok meghatározásához.
Minél távolabb van attól a ponttól, annál inkább a bal, ahogy megközelítjük, csökkentve a szervo dőlésszögét.
És mennyivel kevesebbet? Szabályozó? A P szabályozók nem mindig könnyűek felállítani, különösen olyan mozgó tárgyaknál, mint a helikopterek. Tudom, hogy még a vonalon közlekedő robotokon is gyakran a PI szabályozót szeretik.
Általában felkérhetek arra, hogy várja meg a folytatást, ahol elmondom róla. De legyen az. Ha nem vagyunk azon a ponton, ahol a hajlásszög 0 szervo feltételesen (szög 0 az a szög, amely a teljes hiánya szél helikopter lebeg a helyén. Fel van szerelve egy vágót a távoli). Servo szög a helikopter valahol 90 fok, az érték által kiadott vevő közelítőleg egyenlő 1450. Ha eltérni ezen a ponton, a szög növeljük vagy csökkentjük attól függően, hogy milyen módon már eltért. Ha pontosságra van szükség a mérőben, akkor a szervo maximális elhajlási szöge akkor érhető el, ha egy pont méterről van szó. Természetesen tévedhetek, de ha a modell a szél által fúj, akkor nem kell megváltoztatnia a horizonthoz viszonyított hajlamait. És akkor mi az ideális modell pontosan helyzetbe sodródik az egyik oldalon, és a rendszer úgy ítéli meg, hogy a helikopter még mindig ugyanazon a ponton? A GPS-vevő azonban tökéletesen jelzi ezeket a változtatásokat, és segítségével könnyedén beállíthatja a pozíciót. Ismét hadd mondjak el mindent, mikor kell hozzáadni egy cikket, mindegy, nem tudom, hogy ez a rendszer most úgy néz ki, és működik, és javítson ki, mielőtt megjelenik az eredmény használhatatlan. Akkor esküszöm, amennyit csak akar, én tényleg nem bánom.