Arduino letový ovládač. Ako navrhnúť vlastnú kvadrokoptéru

Hlavnou myšlienkou projektu je vytvoriť lacnú kvadrokoptéru, ktorá má autonómne napájanie a algoritmus stabilizácie letu pomocou Arduina.

Okrem Arduina budeme potrebovať gyroskop/akcelerometer a kefové motory. Vyššie uvedený projekt neuvažuje o metódach riadenia letu kvadrokoptéry, ale určite sa dajú pridať. Cena tejto kvadrokoptéry je približne 60 dolárov.

Čo je to kvadrokoptéra?

Som si istý, že väčšina z tých, ktorí čítajú tento článok, už vie, čo je kvadrokoptéra. Ak nie, tu je stručný popis týchto úžasných zariadení.

Kvadrokoptéra je lietajúce zariadenie so štyrmi „nohami“, z ktorých každá má motor s vrtuľou. Kvadrokoptéry sú v podstate podobné vrtuľníkom, no ich pohyb, otáčanie a nakláňanie zabezpečuje synchrónny chod štyroch vrtúľ. Okrem toho majú kvadrokoptéry taký koncept ako „pitch“ - rotácia okolo pozdĺžnej osi. Aby sa stabilizoval let kvadrokoptéry, dve vrtule sa otáčajú jedným smerom (v smere hodinových ručičiek) a dve vrtule sa otáčajú opačným smerom (proti smeru hodinových ručičiek). Vďaka tejto schopnosti vznášať sa v jednej polohe vo vzduchu sa kvadrokoptéry využívajú predovšetkým na letecké fotografovanie a natáčanie videa. Samozrejme, kvadrokoptéry a iné podobné zariadenia s viacerými motormi sa používajú pri záchranných akciách, polícii, armáde atď. V poslednom čase sa náklady na komponenty na výrobu kvadrokoptér výrazne znížili a mnohé spoločnosti ich začali vyrábať. Kúpiť hotový výrobok dnes nebude problém.

Takže ste už trochu prišli na to, čo je kvadrokoptéra, poďme teraz k tomu stručný popis proces jeho výroby.

Prvá vec, ktorú sme urobili, bolo nakupovanie cez Google pri hľadaní komponentov, ktoré by sme potrebovali na jeho výrobu.

Vo väčšine prípadov sa používajú mikrokontroléry a bezkefkové (ventilové) motory. Bolo rozhodnuté použiť Arduino ako ovládač, pretože je to ideálna platforma z hľadiska ceny. Prvý problém, ktorý sa objavil, boli bezkomutátorové motory. Pamätajte, že sa zameriavame na rozpočet 60 USD. A náklady na jeden bezkomutátorový motor, ktorý možno použiť v našom dizajne kvadrokoptéry, sa pohybujú od 20 do 60 dolárov! Okrem toho použitie týchto motorov vyžaduje inštaláciu ďalších regulátorov - regulátorov otáčok. Preto bolo rozhodnuté použiť brúsené motory. Rozmery našej kvadrokoptéry sú malé, preto sme zakúpili motory s relatívne nízkym krútiacim momentom. Google navrhol, že existujú kvadrokoptéry s podobnými pohonmi. Nájdené motory dokážu zdvihnúť až 55 gramov váhy, čo nám celkom vyhovuje. Ďalším krokom je vyriešenie problémov so stabilizáciou motorov pomocou gyroskopov a akcelerometrov. Gyroskop je zariadenie, ktoré využíva zemskú gravitáciu na určenie uhla sklonu (orientácie) v priestore. Klasická konštrukcia gyroskopu pozostáva z voľne rotujúceho disku nazývaného rotor. Rotor je namontovaný na osi, ktorá je umiestnená v strede väčšieho, stabilnejšieho kolesa. Keď sa os otáča, rotor zostáva v statickom stave, ktorý zodpovedá ťažisku. Akcelerometer je kompaktné zariadenie, ktoré sa používa na meranie zrýchlenia. Keď objekt opustí stav pokoja (začne sa pohybovať), akcelerometer zaznamená vibrácie, ktoré pri tomto pohybe vznikajú. Akcelerometre používajú mikroskopické kryštály, ktoré pri náraze generujú napätie. Toto napätie sa odstráni a vytvorí sa hodnota zrýchlenia. Tieto dva senzory sú potrebné v kvadrokoptére. Na základe ich nameraných hodnôt sa generuje riadiaci signál, ktorý reguluje rýchlosť otáčania motorov, aby sa zabezpečil náklon, pohyb alebo stabilizácia našej kvadrokoptéry.

Potrebné komponenty, diely a vybavenie

Pre projekt kvadrokoptéry riadenej Arduinom budeme potrebovať:

  • - drôty;
  • - lítiové batérie pri 3,7 V;
  • - tranzistor: ULN2003A Darlington Tranzistor (môžete si vziať tranzistor, ktorý podporuje väčšie zaťaženie);
  • - motory: 0820 Coreless Motors;
  • - mikrokontrolér: Arduino Uno;
  • - akcelerometer/gyroskop: doska MPU-6050 (lacná a veselá možnosť všetko v jednom);
  • - 3D tlačiareň alebo prístup k nej na tlač častí dizajnu kvadrokoptéry;
  • - nástroje (vrátane spájkovačky a schopnosti ju používať!).
  • KÚPTE 3,7 V lítiové batérie (Pozor, medzi ponúkanými produktmi musíte nájsť presne ten, ktorý vám vyhovuje!);

3-D tlač dielov kvadrokoptér

Jedným z prvých krokov je vytvorenie rámu našej kvadrokoptéry. Bolo rozhodnuté ísť cestou najmenšieho odporu a vytlačiť rám na 3D tlačiarni. Okrem jednoduchej výroby je rám vytlačený na 3D tlačiarni pomerne ľahký vďaka voštinovej tlači. Diely boli navrhnuté v Solidworks. Nižšie sú uvedené všetky pevné modely. Môžete si ich jednoducho stiahnuť a poslať na tlač. Podrobnosti sú uložené vo formáte .stl. Ak chcete, môžete ich bezpečne upravovať a meniť pomocou rovnakého Solidworks. Modely sú parametrické, takže ak sa rozhodnete použiť iné motory, stačí v modeli zmeniť pár parametrov a získate hotový rám na rozmery vašej kvadrokoptéry.


V dôsledku toho dostanete niečo takéto:



Nastavenie akcelerometra-gyroskopu (I2C)


V tomto príklade bola použitá doska MPU6050 od SparkFun. Na Amazone to stojí asi 10 dolárov a funguje dobre. Podobná Čína na Aliexpress alebo Ebay ponúka podobné dosky do 5 dolárov. Funguje tiež skvele.

čo je I2C?

Zapnuté jednoduché dosky akcelerometer, všetko je logické a jasné: má samostatné analógové výstupy pre osi X, Y a Z. Každý výstup zodpovedá samostatnej osi akcelerometra. Ak sa teraz pozriete na dosku I2C, pochopíte, že všetko je trochu mätúce. I2C je komunikačný štandard, v ktorom sa veľké množstvo informácií prenáša pomocou digitálnych logických impulzov namiesto analógových výstupov. MPU6050 vám ponúka 6 riadených osí (3 pre gyroskop a 3 pre akcelerometer). Ak by boli všetky analógové, museli by sme použiť všetky analógové porty na Arduino Uno. S protokolom I2C používame na pripojenie oveľa menej pinov.

Schéma zapojenia Arduina

Schéma zapojenia dosky MPU6050 je uvedená nižšie. Upozorňujeme, že knižnica Arduino predpokladá použitie týchto pinov. Spravidla, aj keď máte dosku od iného výrobcu, piny sú označené rovnako, preto schéma zapojenia zostáva rovnaká.

Ak ho napájate na 5 V, môže sa poškodiť doska, takže buďte opatrní a použite 3,3 V. Niektoré dosky MPU6050 majú regulátor napätia, ktorý funguje ako poistka, ale stále sa to neoplatí riskovať. Ak má vaša doska pin AD0, musí byť pripojený k zemi (GND). V našom prípade je pin VIO pripojený k AD0 na samotnej doske, takže nie je potrebné pripájať pin AD0.

Skica pre Arduino

V tomto bode budete potrebovať nejaké znalosti o programovaní Arduina. Ak niečomu nerozumiete, zastavte sa a skúste to zistiť. Nižšie uvedené vysvetlenia vám pomôžu s mnohými otázkami, ale nie je možné opísať všetky možné nuansy.

Po pripojení MPU-6050 k vášmu Arduinu ho zapnite a stiahnite si náčrt kódu skenera I2C.

Skopírujte kód programu, vložte ho do prázdneho náčrtu a spustite ho. Otvorte sériový monitor Arduino IDE (Nástroje->Sériový monitor) a uistite sa, že ste pripojení k 9600 (vľavo dole).

Ak ste urobili všetko správne, I2C zariadenie by malo byť detekované a pridelené mu adresu 0x68 alebo 0x69. Napíš to. Ak sa objavia chyby, skontrolujte pripojenie.

Teraz musíte nahrať náčrt, ktorý spracováva informácie z akcelerometra/gyroskopu. Po internete pláva viac ako jedna verzia podobných náčrtov, odporúčame použiť túto. Po kliknutí na odkaz kliknite na „Stiahnuť zip“. Po stiahnutí rozbaľte archív. Potom otvorte Arduino IDE. Prejdite na skicu->importovať knižnicu -> pridať knižnicu. Budete musieť pridať oba priečinky: I2Cdev a MPU6050.

Po nainštalovaní knižníc otvorte súbor MPU6050_DMP6 (MPU6050 -> Príklady). Odporúčam, aby ste si to pozreli, aj keď sa v kóde príliš nevyznáte. Ak ste priradili adresu 0x69, musíte odkomentovať jeden riadok v hornej časti kódu (po #includes), pretože predvolená hodnota je 0x68. Program by sa mal teraz skompilovať.

Stiahnite si program, otvorte okno sériového monitora (tentokrát s 115200) a postupujte podľa pokynov. Gratulujeme, pretože teraz by ste mali byť schopní získať hodnoty z akcelerometra/gyroskopu cez Arduino!

Teraz spustite kalibračnú skicu, ktorú si môžete stiahnuť tu: MPU6050_calibration.ino (opäť predvolený port je 0x68, ale môžete ho zmeniť). Zaznamenajte si údaje o kompenzácii, ktoré dostanete. Tieto údaje použijete v náčrte MPU6050_DMP6 (a v nasledujúcom programe pre kvadrokoptéru).

Teraz máte funkčný, určite užitočný, akcelerometer/gyroskop.

Pripojenie k Arduinu

Pozreli sme sa na pripojenie akcelerometra. Ďalším krokom je dostať Arduino na ovládanie motorov. Doska Arduino neposkytuje žiadny výstup veľký význam prúd a napätie, takže namiesto priameho pripojenia motorov na digitálne výstupy dosky používame na „zosilnenie“ napätia tranzistory.

Začnime s montážou elektrického obvodu. V tejto fáze budeme potrebovať Arduino, motory, tranzistory (doska plošných spojov a konektory). Schéma zapojenia je uvedená nižšie pod potrebnými textovými vysvetlivkami. Pripojte štyri PWM výstupy (označené ~ na Arduine) k tranzistoru, ako je znázornené na obrázkoch. Potom pripojte konektory k motorom, ktoré sú pripojené k zdroju energie. Vyššie uvedený projekt kvadrokoptéry používal 5V napájanie, ale mala by fungovať aj 3-5V batéria.

Uistite sa, že tranzistory sú uzemnené a že zem na Arduine je prepojená so zemou z napájacieho zdroja. Uistite sa, že sa rotory motora otáčajú správnym smerom (mali by byť schopné zdvihnúť kvadrokoptéru, nie rolovať). Ak prepnete kolík motora z 5V na tranzistor, rotor motora sa začne otáčať v opačnom smere. Po nakonfigurovaní už nebudete musieť meniť smer otáčania motorov. Zmeníme iba rýchlosť.

Po spustení akcelerometra a jeho otestovaní je potrebné všetko nainštalovať na ProtoBoard (na inštaláciu na Arduino môžete použiť dosku s plošnými spojmi, na ktorú napájate koľajnice. Môžete ísť elegantnejšou cestou a kúpiť si Proto Shield). Tranzistor by ste nemali pripájať na prototypovú dosku. Pre ňu je lepšie použiť zásuvku s kontaktmi, aby ste ju mohli kedykoľvek vymeniť.

V našom prípade sme akcelerometer prispájkovali na dosku a až potom prebehla kalibrácia. Ale prax ukazuje, že to nie je úplne správne. Pre zvýšenie presnosti údajov gyroskopu/akcelerometra je lepšie ho najprv kalibrovať na rovnom povrchu a až potom spájkovať.










O regulácii PID si môžete prečítať na Wiki, ak tieto regulátory nepoznáte. Trieda PID pre Arduino používa tri vstupy: nastavenú hodnotu, meranie a výstup. Výstup závisí od aktuálnej polohy a meraní. PID regulátor sa snaží zmeniť výstup tak, aby merania zodpovedali cieľovej polohe. Algoritmus využíva zaujímavú matematiku. Algoritmus riadenia PID sa snaží pracovať tak, aby hodnoty zostali čo najstabilnejšie.

Náš algoritmus používa na stabilizáciu dva PID regulátory: jeden pre sklon a jeden pre rotáciu. Rozdiel v rýchlosti otáčania vrtúľ 1 a 2 bude rovnaký ako rozdiel otáčok vrtúľ 3 a 4. Rovnako pre dvojice 1,3 a 2,4. Potom PID regulátor zmení rozdiel v rýchlosti, čím sa výška a náklon nastaví na nulu.

Nezabudnite skontrolovať, ktoré digitálne piny z Arduina idú k motorom a podľa toho zmeňte náčrt.

Ďalšia modernizácia kvadrokoptéry pomocou Arduina


Hlavným problémom malej kvadrokoptéry je jej cena a hmotnosť. Môžete sa poobzerať po väčších a výkonnejších motoroch, no jeho výkon to nijak zvlášť nezlepší. Čo vám skutočne pomôže (ak ste ochotní dať viac peňazí), sú bezkomutátorové (ventilové) motory. Charakteristicky sú na tom rádovo lepšie, no okrem nich treba použiť regulátory otáčok, ktoré kvadrokoptéru predražia.

Na zníženie hmotnosti dizajnu je najlepšie použiť Arduino Uno, pretože pre tento model radiča môžete odstrániť „zošitý“ mikroprocesorový čip a nainštalovať ho priamo na vašu dosku. Tým pádom priberiete okolo 30 gramov, čo je v takomto meradle dosť veľa. Okrem toho budete musieť použiť niekoľko ďalších kondenzátorov atď. Alebo ako alternatívu môžete použiť Arduino Pro Mini.

Program Arduino, ktorý bol napísaný a predstavený v predchádzajúcej časti, je možné jednoducho rozšíriť a obohatiť o ďalšie funkcie. Najdôležitejšie je, že v tejto fáze už kvadrokoptéra dokáže automaticky stabilizovať let. Ak chcete nastaviť diaľkové ovládanie, môžete sa pozrieť na vysielače/prijímače alebo moduly bluetooth. Vo všeobecnosti máte teraz základ a je tu ešte väčší priestor na ďalšiu modernizáciu.

Nechajte svoje komentáre, otázky a zdieľajte osobná skúsenosť nižšie. V diskusiách sa často rodia nové nápady a projekty!

Ahojte čitatelia!
V tejto sérii článkov pootvoríme veko kvadrokoptéry o niečo viac, ako si hobby vyžaduje a napíšeme, nakonfigurujeme a vypustíme do vzduchu vlastný program pre letový ovládač, ktorým bude bežná doska Arduino Mega 2560.

Máme pred sebou:

  1. Základné pojmy.
  2. PID regulátory s interaktívnou webovou ukážkou prevádzky na virtuálnej kvadrokoptére.
  3. Aktuálny program pre Arduino a konfiguračný program pre Qt.
  4. Nebezpečné skúšky kvadrokoptéry na lane. Prvé lety.
  5. Nehoda a strata v poli. Automatické vyhľadávanie zo vzduchu pomocou Qt a OpenCV.
  6. Záverečné úspešné testy. Zhrnutie. Kam ísť?

Materiál je objemný, ale pokúsim sa ho vtesnať do 2-3 článkov.
Dnes očakávame: spojler s videom, ako naša kvadrokoptéra lietala; základné pojmy; PID regulátory a prax výberu ich koeficientov.

Načo to všetko je?

Akademický záujem, ktorý, mimochodom, prenasleduje nielen mňa (,). A, samozrejme, pre dušu. Pri práci som sa výborne zabával a cítil som skutočné, neopísateľné šťastie, keď s mojím programom letelo „TO“ :-)

Pre koho?

Tento materiál môže byť zaujímavý aj pre ľudí, ktorí sú ďaleko, alebo sa len chystajú zapojiť do multirotorových systémov. Teraz si povedzme o účele hlavných komponentov kvadrokoptéry, o tom, ako sa navzájom ovplyvňujú, o základných konceptoch a princípoch letu. Samozrejme, všetky potrebné znalosti nájdeme na internete, no nemožno nás nútiť hľadať ich na rozsiahlom internete.

Bez toho, aby ste ohrozili svoje chápanie základných pojmov, pokojne preskočte všetko, čo viete, až do ďalšieho neznámeho termínu, zvýraznené tučným písmom, alebo k nezrozumiteľnej ilustrácii.

NIE #1!

Nezačnite písať svoj vlastný program pre letový ovládač, kým nevyskúšate hotové riešenia, ktorých je teraz pomerne veľa (Ardupilot, MegapirateNG, MiltiWii, AeroQuad atď.). V prvom rade je to nebezpečné! Ovládanie kvadrokoptéry bez GPS a barometra si vyžaduje prax a ešte viac, keď sa pokazí, prevráti sa alebo neletí presne tam, kam by mala – a tomu sa pri prvých testoch takmer nedá vyhnúť. Po druhé, bude sa vám programovať mnohonásobne ľahšie, keď pochopíte, čo treba naprogramovať a ako by to malo nakoniec fungovať. Uver mi: letová matematika je len malá časť programového kódu.

NIE #2!

Nesnažte sa napísať vlastný program pre letového riadiaceho, ak nesledujete akademický záujem a potrebujete len to, čo už dávno dokážu hotové riešenia (lietať, fotiť, natáčať videá, lietať ďalej zadanie a pod.) Kým si všetko píšeš sám, Zaberie to veľa času, aj keď nie si sám.

Základné pojmy

Kvadrokoptéry sa dodávajú v rôznych variantoch, ale všetky sú spojené štyrmi hlavnými rotormi:

Napriek zdanlivej symetrii je pre pilota veľmi dôležité rozlíšiť, kde je predná časť kvadrokoptéry (znázornená šípkou). Tu, ako v rádiom riadených modeloch áut: keď je zadaný povel „vpred“, kvadrokoptéra neletí tam, kam sa pozerá pilot, ale tam, kam smeruje pomyselný nos kvadrokoptéry. To je plné nebezpečenstva: pre začiatočníkov môže byť ťažké vrátiť k sebe zariadenie, ktoré zachytil vietor, nejako sa otočil nabok (samozrejme, nehovoríme o lietaní vo fotoaparáte prvej osoby a o „inteligentnom ” letové režimy pomocou kompasu a GPS.) Riešenie Tomuto problému môžu čiastočne pomôcť predné skrutky alebo trámy inej farby, nejaká guľa vpredu alebo rôzne farebné LED diódy. To všetko sa však ukáže ako zbytočné, keď sa pepeláty rýchlo zmenia na bodku nad horizontom.

Budeme lietať na ráme kvadrokoptéry v tvare „X“, pretože sa mi páči viac. Každý dizajn má svoje výhody a účel. Okrem kvadrokoptér existujú aj ďalšie multikoptéry. Aj keď nepočítate exotické možnosti, stále je ich veľa!

Poďme zistiť, ako je naša kvadrokoptéra štruktúrovaná vo vnútri a čo by mal robiť letový ovládač, ktorý plánujeme naprogramovať.


Uhly nakloniť sa, nakloniť sa a vybočiť- uhly, ktorými je zvykom určovať a nastavovať orientáciu kvadrokoptéry v priestore.

Niekedy sa vynecháva slovo „uhol“ a hovorí sa jednoducho: stúpanie, kolísanie, vybočenie. Ale podľa Wikipédie to nie je úplne presné. Let kvadrokoptéry v požadovanom smere sa dosiahne zmenou týchto troch uhlov. Napríklad, aby kvadrokoptéra mohla letieť dopredu, musí sa nakloniť, pretože zadné motory sa točia o niečo silnejšie ako predné:

Plynová kvadrokoptéra- aritmetický priemer medzi rýchlosťami otáčania všetkých motorov. Čím viac plynu, tým väčší je celkový ťah motorov, tým viac ťahajú kvadrokoptéru hore(NEDOPREDUJTE!!! „Papuče na podlahu“ tu znamená najrýchlejší výstup). Zvyčajne sa meria v percentách: 0% - motory sú zastavené, 100% - otáčanie pri maximálnej rýchlosti. Vznášanie plynu- minimálna hladina plynu, ktorá je potrebná na to, aby kvadrokoptéra nestrácala nadmorskú výšku.

Plyn, náklon, náklon, vybočenie – ak dokážete ovládať tieto štyri parametre, potom môžete ovládať kvadrokoptéru. Niekedy sa nazývajú aj riadiace kanály. Ak ste si zakúpili dvojkanálový diaľkový ovládač, nebudete môcť kvadrokoptéru ovládať. Trojkanálový je vhodnejší pre malé helikoptéry: môžete lietať bez kontroly rolovania, ale na kvadrokoptére to nie je vhodné. Ak chcete zmeniť letové režimy, budete musieť siahnuť po päťkanálovom diaľkovom ovládači. Ak chcete ovládať naklápanie a posúvanie kamery na palube, existujú ďalšie dva kanály, aj keď profesionáli na to používajú samostatné diaľkové ovládanie.

Existuje veľa režimov letu. Používa sa GPS, barometer a diaľkomer. Chceme však implementovať ten základný - stabilizačný režim ( bodnúť, stabilizovať, lietať v „pahýľ“), v ktorom kvadrokoptéra udržiava uhly, ktoré sú jej dané z diaľkového ovládača, bez ohľadu na vonkajšie faktory. V tomto režime môže kvadrokoptéra visieť takmer na mieste bez vetra. Pilot bude musieť kompenzovať vietor.

Smer otáčania skrutiek nie je zvolený náhodne. Ak by sa všetky motory otáčali jedným smerom, kvadrokoptéra by sa v dôsledku vytvorených krútiacich momentov otáčala opačným smerom. Preto sa vždy jeden pár protiľahlých motorov otáča jedným smerom a druhý pár druhým. Efekt výskytu rotačných momentov sa používa na zmenu uhla natočenia: jeden pár motorov sa začne otáčať o niečo rýchlejšie ako druhý a teraz sa kvadrokoptéra pomaly otáča smerom k nám (aká hrôza):

  • LFW - ľavá predná rotácia v smere hodinových ručičiek (ľavá predná, rotácia v smere hodinových ručičiek)
  • RFC - pravá predná rotácia proti smeru hodinových ručičiek (pravá predná, rotácia proti smeru hodinových ručičiek)
  • LBC - ľavá zadná rotácia proti smeru hodinových ručičiek (ľavá zadná, rotácia proti smeru hodinových ručičiek)
  • RBW - pravá spätná rotácia v smere hodinových ručičiek (pravá zadná, rotácia v smere hodinových ručičiek)

Ovláda rýchlosť otáčania motorov letový ovládač (ovládač, mozog). Zvyčajne ide o malú dosku alebo krabicu s mnohými vstupmi a výstupmi. Existuje obrovské množstvo rôznych ovládačov s rôznymi sadami schopností, rôznym firmvérom a rôznymi úlohami. Tu je len niekoľko:


Všeobecnou úlohou letového riadiaceho zariadenia je vykonávať riadiaci cyklus niekoľko desiatok krát za sekundu, ktorý zahŕňa: čítanie hodnôt snímačov, čítanie riadiacich kanálov, spracovanie informácií a vydávanie riadiacich signálov do motorov, aby bolo možné vykonávať príkazy pilota. Toto ideme naprogramovať.

Existuje mnoho rôznych typov senzorov, ktoré možno použiť. Tie, ktoré sa už stali takmer povinnými, použijeme vo všetkých kvadrokoptérach trojosový gyroskop a trojosový akcelerometer. Akcelerometer meria zrýchlenie, gyroskop meria uhlovú rýchlosť. Vďaka nim letový ovládač pozná aktuálne uhly sklonu, náklonu a vybočenia. Tieto senzory môžu byť zabudované do letového ovládača alebo externé. Proces výpočtu troch uhlov na základe hodnôt snímača je témou na samostatný článok. Ale to tu nepotrebujeme vedieť: MPU-6050 urobí všetko za nás. Ide o malú dosku, ktorá interne vykonáva potrebné výpočty a filtrovanie a vytvára takmer hotové uhly pomocou protokolu i2c. Všetko, čo musíme urobiť, je spočítať ich, spracovať ich so zvyškom údajov a vydať riadiace signály motorom.

Motory na multikoptérach spotrebúvajú veľké prúdy, takže letový ovládač ich riadi nie priamo, ale prostredníctvom špeciálnych hardvérových ovládačov tzv regulátory otáčok (ESC, regulátor, eska). Tieto regulátory sú napájané z hlavnej palubnej batérie, riadiaci signál je prijímaný z regulátora a na výstupe majú tri vodiče (A, B, C), ktoré vedú priamo k motorom (každý motor má vlastný regulátor !)


„Protokol“ komunikácie medzi regulátorom a motorom nie je pre nás taký dôležitý ako „protokol“ komunikácie medzi letovým ovládačom a regulátorom, pretože regulátor musíme programovo ovládať z ovládača. Existujú regulátory ovládané cez i2c, ale tie najbežnejšie sú riadené štvorcovým signálom s minimom 0 voltov a maximálne 3-5 voltov (tzv. PWM alebo PWM a niektorí tvrdia, že je to správnejšie - PPM. Viac podrobností, napríklad).

„Protokol“ je silné slovo: na prikázanie motora otáčať sa maximálnou rýchlosťou musí ovládač vysielať impulzy v trvaní 2 milisekúnd, prerušované logickou nulou v trvaní 10 - 20 milisekúnd. Trvanie impulzu 1 milisekunda zodpovedá zastaveniu motora, 1,1 ms - 10 % maximálna rýchlosť, 1,2 ms – 20 % atď. Trvanie nuly v praxi nehrá žiadnu rolu, dôležitá je len dĺžka trvania samotného impulzu.

Napriek všetkej zdanlivej jednoduchosti tu existuje prepad: letové ovládače sú rôzne s rôznymi nastaveniami, regulátory sú odlišné a minimum (1 ms) a maximum (2 ms) nie sú univerzálne. V závislosti od mnohých faktorov môže byť rozsah 1 – 2 ms v skutočnosti 1,1 – 1,9 ms. Aby regulátor a kontrolór hovorili absolútne rovnakým jazykom, existuje postup kalibrácia regulátora. Počas tohto postupu sa rozsahy ovládacích prvkov menia a stávajú sa rovnakými ako dosah regulátora. Postup je pevne zavedený do programu každého ovládača a obsahuje niekoľko jednoduché kroky(kroky sa môžu líšiť v závislosti od výrobcu - prečítajte si pokyny!):

  • Vypnite napájanie regulátora.
  • Odstráňte vrtuľu z motora.
  • Priveďte signál zodpovedajúci maximálnej rýchlosti otáčania na vstup regulátora.
  • Zapnite napájanie regulátora. Motor musí zostať nehybný bez vonkajšej pomoci.
  • Priveďte signál zodpovedajúci minimálnej rýchlosti otáčania na vstup regulátora.
  • Pauza na 1-2 sekundy, počkajte na charakteristické škrípanie.
  • Vypnite napájanie regulátora.

Potom sa do ovládača vložia príslušné hranice intervalov. Pri pokuse o vzlietnutie s nekalibrovanými regulátormi môžu byť následky neočakávané: od náhleho trhnutia kvadrokoptéry do najbližšieho stromu až po úplnú nehybnosť motorov pri akejkoľvek hodnote plynu.

PWM využíva presne rovnaký princíp palubný prijímač. Toto malé zariadenie, prijímanie rádiových riadiacich signálov zo zeme a ich prenos do letového riadiaceho. Najčastejšie má letový ovládač pre každý riadiaci kanál (plyn, sklon, náklon atď.) svoj vlastný vstup, do ktorého sa dodáva PWM. Logika interakcie je jednoduchá: príkaz, napríklad „70% plyn“, nepretržite prechádza zo zeme do prijímača, kde sa premení na PWM a odošle sa do letového ovládača cez samostatný kábel. To isté s stúpaním, otáčaním, vybočením.

Keďže prijímač a ovládač majú svoj vlastný priateľský vzťah PWM, budú musieť byť tiež kalibrované: diaľkové ovládače s prijímačmi sa líšia svojimi vlastnými prevádzkovými rozsahmi. Ovládač sa musí vedieť prispôsobiť. Postup rádiová kalibrácia, na rozdiel od kalibrácie regulátorov si ho budeme musieť vytvoriť sami v rámci letového programu. Všeobecný plán kalibrácie je nasledujúci:

  • Pre každý prípad odstráňte vrtule z motorov.
  • Nejako prepnite ovládač do režimu kalibrácie rádia.
  • Regulátor spustí rádiovú kalibráciu na niekoľko desiatok sekúnd.
  • Vo vyhradenom čase pohybujte všetkými páčkami diaľkového ovládania vo všetkých smeroch, kým sa nezastavia.
  • Regulátor si pamätá maximá a minimá pre všetky riadiace kanály počas vnútorná pamäť po stáročia.

Takže: počas rádiovej kalibrácie si letový ovládač zapamätá dosahy prijímača pre všetky riadiace kanály; Počas kalibrácie ESC sa rozsah letového ovládača zadá do všetkých ESC.

Okrem programu pre letový ovládač je potrebný ešte jeden program: rozhranie nastavenia letového ovládača. Najčastejšie ide o PC program, ktorý sa pripája k letovému ovládaču cez USB a umožňuje užívateľovi konfigurovať a kontrolovať letový program, napr.: spustiť kalibráciu rádia, nakonfigurovať stabilizačné parametre, skontrolovať činnosť senzorov, nastaviť trasu letu na mapu, určiť správanie multikoptéry pri strate signálu a oveľa viac. Naše konfiguračné rozhranie napíšeme v C++ a Qt vo forme konzolovej utility. Tu je, ak sa pozriete do budúcnosti:


Nikto nie je imúnny voči nehodám. Aj desaťpalcové plastové vrtule na malých motorčekoch môžu zanechať na koži krvavé modriny, ktoré budú bolieť ešte týždeň (osobne testované). Je ľahké dať si nový make-up a účes, ak počas nosenia kvadrokoptéry zapnete plynový ovládač na diaľkovom ovládači. Preto musí letový ovládač poskytnúť aspoň určitú bezpečnosť: mechanizmus ozbrojený/odzbrojený. Stav „odzbrojenia“ kvadrokoptéry znamená, že motory sú vypnuté a dokonca ani povel na plný plyn z diaľkového ovládača nemá žiadny účinok, hoci je napájanie dodávané. Stav „armed“ kvadrokoptéry znamená, že príkazy z diaľkového ovládania vykonáva letový ovládač. V tomto stave kvadrokoptéry štartujú, lietajú a pristávajú. Kvadrokoptéra sa zapne a mala by okamžite prejsť do deaktivovaného stavu v prípade, že ju nepozorný pilot zapne, keď páka plynu na diaľkovom ovládači nie je na nule. Na uvedenie helikoptéry do „ozbrojeného“ stavu musí pilot urobiť nejaké vopred dohodnuté gesto pomocou páčok diaľkového ovládania. Často je týmto gestom podržanie ľavej páčky v pravom dolnom rohu (plyn = 0 %, vybočenie = 100 %) na niekoľko sekúnd. Potom letový ovládač vykoná aspoň minimálny autotest a ak úspešne prejde,“ ozbrojovať sa„(pripravená na let!) Ďalším gestom (plyn = 0 %, vybočenie = 0 %) kvadrokoptéra“ sa odzbrojí„Ďalším dobrým bezpečnostným opatrením je autodisarm, ak bol plyn na nule 2-3 sekundy.

O motoroch, batériách, regulátoroch, vrtuliach

Výber komponentov pre multikoptéru je témou na celú sériu článkov. Ak sa chystáte vyrobiť svoju prvú kvadrokoptéru, naformulujte si na čo ju potrebujete a využite rady skúsených alebo si zoberte zoznam komponentov, ktoré zostavil niekto iný a úspešne na nej lieta.

Napriek tomu je pre všeobecné pochopenie užitočné poznať hlavné body.

Batérie

Medzi amatérmi a profesionálmi v oblasti viacrotorových systémov sú lítium-polymérové ​​batérie najbežnejšie ako hlavné zdroje energie pre palubnú elektroniku a motory. Rozlišujú sa kapacitou, napätím a maximálnym prúdovým výstupom. Kapacita sa ako obvykle meria v ampérhodinách alebo miliampérhodinách. Napätie sa meria v počte „článkov“ batérie. Jedna „plechovka“ je v priemere 3,7 voltu. Plne nabitá „plechovka“ je 4,2 V. Najbežnejšie sú batérie s tromi až šiestimi článkami. Maximálny prúdový výstup sa meria v ampéroch a je označený napríklad takto: 25C. C je kapacita batérie, 25 je multiplikátor. Ak je kapacita 5 ampérov, potom môže takáto batéria dodať 25 * 5 = 125 ampérov. Samozrejme, je lepšie brať aktuálny výstupný parameter s rezervou, ale v zásade platí, že čím je väčší, tým je batéria drahšia. Príklad označenia: 25C 3S 4500 mAh.

Každá banka je samostatná batéria. Všetky sú spájkované v sérii. Aby boli všetky banky nabité rovnomerne, je k dispozícii vyvažovací konektor s prístupom do každej banky samostatne a špeciálne nabíjacie zariadenie.

Motory, vrtule, regulátory

Hlavným parametrom bezkomutátorového motora je jeho kv. Toto je počet otáčok za minútu pre každý volt použitého napätia. Najbežnejšie motory sú s kv od 300 do 1100. Kv bližšie k 1000 sa zvyčajne volí pre malé kvadrokoptéry (1-2 kilogramy plus 500 gramov užitočného zaťaženia) a sú vybavené plastovými vrtuľami do priemeru 12 palcov. Veľké multikoptéry (na zdvíhanie dobrých a ťažkých foto-video zariadení) alebo lietadlá s dlhým letom (na rekordy letového času) majú zvyčajne motory s nízkym kv (300-500) a obrovské uhlíkové vrtule (priemer 15 - 20 palcov). Kv nie je jediným dôležitým parametrom motora: často nájdete celé tabuľky závislosti výkonu a ťahu motora od dodávaného napätia a typu inštalovanej vrtule. Okrem toho je každý motor navrhnutý pre svoj vlastný rozsah napätia (počet článkov batérie) a svoj vlastný maximálny prúd. Ak výrobca píše 3-4S, nemali by ste ho používať s 5S batériami. To isté platí pre regulátory.

Ak je motor navrhnutý na prúd do 30A, potom by mal byť regulátor navrhnutý na prúd do 30 + 10A, aby sa zabránilo prehriatiu. Nekvalitné alebo nevhodné regulátory môžu spôsobiť takzvané „synchronizačné sklzy“ a zastaviť motor za letu a poznáte aj ďalší viacrotorový výraz: „ chytil planétu." Ďalší dôležitý bod- hrúbka a kvalita drôtov. Nesprávne dimenzovaný vodič alebo zlý konektor môžu viesť k požiaru vo vzduchu.

Ako vidíte, existuje veľa nuancií. Polovicu z nich som ani neuviedol, takže je dosť ťažké si sami vybrať komponenty pre svoju prvú multikoptéru.

Stabilizačná matematika, PID regulátory (PID)

Ak sa rozhodnete pre multikoptéry, skôr či neskôr sa budete musieť vysporiadať s nastavením PID regulátora, keďže tento matematický aparát sa používa takmer pri všetkých stabilizačných úlohách: stabilizácia uhlov kvadrokoptéry vo vzduchu, lietanie a držanie pozície. pomocou GPS, udržiavanie výšky pomocou barometra, bezkefkové mechanizmy stabilizácia videokamery za letu (kamerový kardan).

Kúpite dvojosový gimbal kamery, dáte tam napríklad GoPro, zapnete a namiesto stabilizácie dostanete kŕče, vibrácie a zášklby, hoci všetky senzory sú kalibrované a mechanické problémy sú odstránené. Dôvodom sú nesprávne parametre PID regulátorov.

Zložíte multikoptéru, nakalibrujete senzory, regulátory, rádio, všetko skontrolujete, pokúsite sa vzlietnuť a vo vzduchu je to také nudné, že ju prevráti aj slabý vánok. Alebo naopak: je taký ostrý, že zrazu vzlietne a bez povolenia urobí trojité salto. Dôvod je stále rovnaký: parametre PID regulátorov.

Pre mnohé zariadenia využívajúce PID regulátory sú k dispozícii návody na nastavenie a dokonca viaceré okrem početných video návodov od samotných používateľov. Na uľahčenie orientácie v tejto rozmanitosti je však užitočné pochopiť, ako tieto regulátory fungujú vo vnútri. Okrem toho sa chystáme napísať vlastný stabilizačný systém kvadrokoptéry! Navrhujem „znovu vynájsť“ a "na prstoch" pochopiť Vzorec regulátora PID. Pre tých, ktorí uprednostňujú suchý matematický jazyk, odporúčam Wikipédiu, pretože... v ruštine materiál ešte nie je tak podrobne prezentovaný.

Budeme uvažovať o kvadrokoptére v dvojrozmernom priestore, kde má iba jeden uhol - uhol natočenia a dva motory: ľavý a pravý.


Letový riadiaci nepretržite prijíma príkazy zo zeme: „otočte sa o 30 stupňov“, „otočte sa o 10 stupňov“, „otočte sa o 0 stupňov (držte horizont)“; jeho úlohou je vykonať ich čo najrýchlejšie a najpresnejšie pomocou motorov s prihliadnutím na: vietor, nerovnomerné rozloženie hmotnosti kvadrokoptéry, nerovnomerné opotrebovanie motorov, zotrvačnosť kvadrokoptéry a pod. Riadiaca jednotka letu tak musí priebežne riešiť problém, akú rýchlosť otáčania použiť na každý motor, berúc do úvahy aktuálnu hodnotu uhla náklonu a požadovanú. Priebežne je, samozrejme, silné slovo. Všetko závisí od výpočtových možností konkrétneho hardvéru. Na Adruine je celkom možné vtesnať jednu iteráciu cyklu spracovania a kontroly do 10 milisekúnd. To znamená, že raz za 10 milisekúnd sa načítajú uhly kvadrokoptéry a na základe nich sa budú posielať riadiace signály do motorov. Týchto 10 milisekúnd sa nazýva regulačné obdobie. Je jasné, že čím je menší, tým častejšie a presnejšie dochádza k regulácii.

Hladina plynu prúdi z prijímača do regulátora. Označme to. Dovoľte mi pripomenúť, že toto je aritmetický priemer medzi rýchlosťami otáčania všetkých motorov, vyjadrený ako percento maximálnej rýchlosti otáčania. Ak a sú rýchlosti otáčania ľavého a pravého motora, potom:

kde je odozva kvadrokoptéry (sila), ktorá vytvára krútiaci moment vďaka tomu, že ľavý motor sa otáča rýchlejšie ako plyn a pravý motor sa točí rovnako pomalšie. môže nadobudnúť aj záporné hodnoty, potom sa pravý motor bude točiť rýchlejšie. Ak sa naučíme vypočítať túto hodnotu pri každej iterácii cyklu spracovania, potom budeme môcť kvadrokoptéru ovládať. Je jasné, že minimálne by to malo závisieť od aktuálneho uhla natočenia () a požadovaného uhla natočenia (), ktorý pochádza z ovládacieho panela.

Predstavme si situáciu: prijme sa príkaz „udržať horizont“ ( = 0) a kvadrokoptéra má rolu doľava:


Rozdiel (chyba) medzi a , ktorý sa regulátor snaží minimalizovať.

Čím väčší je rozdiel medzi požadovaným uhlom natočenia a aktuálnym, tým silnejšia by mala byť reakcia, tým rýchlejšie by sa mal ľavý motor otáčať oproti pravému. Ak to napíšeme pomocou nášho zápisu:

Tu P je koeficient proporcionality. Čím je väčšia, tým silnejšia bude reakcia, tým ostrejšie bude kvadrokoptéra reagovať na odchýlky od požadovaného uhla natočenia. Tento intuitívny a jednoduchý vzorec popisuje prácu proporcionálny regulátor. Pointa je jednoduchá: čím viac sa kvadrokoptéra odchyľuje od požadovanej polohy, tým viac sa ju musíte snažiť vrátiť. Bohužiaľ, tento vzorec bude musieť byť komplikovaný. hlavný dôvod- prestreliť.

V priebehu niekoľkých desiatok milisekúnd (niekoľko opakovaní cyklu spracovania) sa kvadrokoptéra pod vplyvom proporcionálneho regulátora vráti na požadovanú úroveň (v r. v tomto prípade horizontálna poloha. Po celý ten čas budú mať chyby a úsilie rovnaké znamenie, hoci budú čoraz menšie. Po dosiahnutí určitej rýchlosti otáčania (uhlovej rýchlosti) sa kvadrokoptéra jednoducho prevráti na druhú stranu, pretože ju nikto nezastaví v požadovanej polohe. Je ako prameň, ku ktorému sa chce vždy vrátiť východisková pozícia, ale ak ho potiahnete späť a uvoľníte, bude kolísať, až kým nezačne trenie. Kvadrokoptéru samozrejme zasiahne aj trenie, ale prax ukazuje, že to nestačí.

Z tohto dôvodu je potrebné k proporcionálnemu regulátoru pridať ešte jeden člen, ktorý spomalí rotáciu kvadrokoptéry a zabráni pretáčaniu (pretáčaniu v opačnom smere) – akási imitácia trenia vo viskóznom médiu: čím rýchlejšie je kvadrokoptéra sa otáča, tým viac sa musíte snažiť zastaviť, samozrejme, v rozumných medziach. Rýchlosť otáčania (miera zmeny chyby) označujeme ako , potom:

kde D je nastaviteľný koeficient: čím je väčší, tým silnejšia je brzdná sila. Zo školského kurzu fyziky sa vynárajú nejasné spomienky, že rýchlosť zmeny akejkoľvek veličiny je deriváciou tejto veličiny vzhľadom na čas:

.

A teraz sa proporcionálny regulátor zmení na proporcionálno-diferenciálny (proporcionálny člen a diferenciál):

Chybu je ľahké vypočítať, pretože pri každej iterácii vieme a ; P a D sú parametre, ktoré je možné nakonfigurovať pred spustením. Na výpočet derivácie (rýchlosti zmeny) je potrebné uložiť predchádzajúcu hodnotu, poznať aktuálnu hodnotu a poznať čas, ktorý uplynul medzi meraniami (kontrolná perióda). A je to tu - fyzika v šiestej triede (rýchlosť = vzdialenosť / čas):

Regulačné obdobie; - hodnota chyby z predchádzajúcej iterácie regulačného cyklu. Mimochodom, tento vzorec je najjednoduchším spôsobomčíselná diferenciácia, a to sa nám tu celkom hodí.

Teraz máme proporcionálny diferenciálny regulátor v plochej bikoptére, ale je tu ešte jeden problém. Ľavý okraj nech váži o niečo viac ako pravý, alebo, čo je to isté, ľavý motor funguje o niečo horšie ako pravý. Kvadrokoptéra je mierne naklonená doľava a neotáča sa späť: diferenciálny člen je nulový a proporčný člen, hoci nadobúda kladnú hodnotu, nestačí na vrátenie kvadrokoptéry do vodorovnej polohy, pretože ľavý okraj mierne váži viac ako pravica. V dôsledku toho bude kvadrokoptéra ťahať vždy doľava.

Na sledovanie takýchto odchýlok a ich nápravu je potrebný mechanizmus. Charakteristickým znakom takýchto chýb je, že sa časom samy opravia. Integrálny termín prichádza na záchranu. Ukladá súčet všetkých chýb vo všetkých iteráciách cyklu spracovania. Ako to pomôže? Ak proporcionálny člen nestačí na opravu malej chyby, ale stále existuje, postupne, v priebehu času, integrálny člen naberá na sile, zvyšuje odozvu a kvadrokoptéra zaujme požadovaný uhol natočenia.

Je tu nuansa. Predpokladajme, že je to 1 stupeň, riadiaci cyklus je 0,1 s. Potom za jednu sekundu nadobudne súčet chýb hodnotu 10 stupňov. A ak je cyklus spracovania 0,01 s, potom množstvo získa až 100 stupňov. Aby za rovnaký čas integrálny člen nadobudol rovnakú hodnotu pre rôzne obdobia regulácie, vynásobíme výslednú sumu samotným obdobím regulácie. Je ľahké vypočítať, že v oboch prípadoch sa z príkladu získa súčet 1 stupňa. Tu je - integrálny člen (zatiaľ bez nastaviteľného koeficientu):

kde je jeden z konfigurovateľných parametrov, z ktorých sú teraz tri: . Tento vzorec sa ľahko používa programový kód a tu je vzorec, ktorý je uvedený v učebniciach:

Existuje niekoľko jeho variácií, napríklad môžete obmedziť modul integrálneho člena tak, aby neprekročil určitú prípustnú hranicu (urobíme to).

Prax

Teraz je čas precvičiť si výber koeficientov. Čitateľom je ponúknutá JavaScriptová stránka s virtuálnou kvadrokoptérou, ktorú už videli na obrázkoch: výber parametrov PID regulátora pre kvadrokoptéru(JSFiddle). Pri prvom spustení je okamžite viditeľný prekmit - oscilácie okolo požadovanej polohy. Keď sa oscilácie zastavia, môžete pozorovať efekt, že proporcionálny koeficient sa nedokáže vyrovnať s chybou v dôsledku „asymetrickej“ kvadrokoptéry (nastavené začiarknutím políčka „Asymetria“). Parametre dostupné na konfiguráciu sú P, I, D. Teraz už viete, čo s nimi robiť. „Posúvanie“ pod kvadrokoptérou je možné ovládať podľa požadovanej hodnoty rolovania. „Interval (ms):“ - interval regulácie. Jeho zníženie je podvádzanie, ale vidieť, ako to ovplyvňuje kvalitu stabilizácie, je veľmi užitočné.

Pre milovníkov „čistej“ matematiky môžeme ponúknuť konfigurovať abstraktný regulátor PID

Zadané parametre sa nepoužijú automaticky: musíte kliknúť na „Použiť“. Pár malých tipov: ak sa vám zdá, že kvadrokoptéra je príliš pomalá na to, aby reagovala na ovládanie, môžete zvýšiť P, ale príliš veľká hodnota P môže viesť k prestreleniu. Parameter D pomôže vyrovnať sa s prekmitom, ale príliš veľké hodnoty povedú k častým osciláciám alebo opäť k prekmitaniu. Parameter I je zvyčajne 10 - 100 krát menší ako parameter P, pretože jeho sila spočíva v akumulácii v čase, nie v rýchlej reakcii.

Manuálne ladenie parametrov PID vyžaduje prax. Na ich výpočet existujú analytické metódy, ktoré si však vyžadujú dobrú prípravu a presnú znalosť mnohých parametrov konkrétneho prispôsobovaného systému. Ako stredná cesta medzi manuálnym výberom a analytickým výpočtom existuje široká škála empirických metód navrhnutých rôznymi výskumníkmi.

V našej 2D kvadrokoptére sa mení iba jeden uhol – uhol natočenia. Pri ladení 3D kvadrokoptéry budú potrebné tri nezávislé PID regulátory pre každý z uhlov a ovládanie konkrétneho motora bude súčtom úsilia naprieč všetkými regulátormi.

Záver prvej časti

V tomto článku sme sa zoznámili so základnými pojmami: kvadrokoptéra a princíp letu, sklon, nakláňanie, vybočenie, plyn, plynový pedál, stabilizácia letového režimu, letový ovládač, gyroskop, akcelerometer, regulátor rýchlosti, PWM, kalibrácia ovládača, kalibrácia rádia, palubný prijímač, rozhranie pre nastavenie letového ovládača, stavy zapnuté/vypnuté, autodisarm.

Potom sme znovu vynašli vzorec PID regulátor trochu dotýkať numerická diferenciácia a integrácia a vyskúšali si ťažký spôsob konfigurácie parametrov P, ja, D na virtuálna kvadrokoptéra .

Teraz, ak ste zbehlí v programovaní svetelných mečov, môžete začať s programom stabilizácie kvadrokoptéry, alebo ešte lepšie, pridať nové nápady k už existujúcim. open source projektov. No o týždeň-dva budem pokračovať v príbehu, ako sa to celé naprogramovalo, otestovalo, zrútilo, porezalo mi prsty a úplne odletelo neznámym smerom.

Na záver tejto časti jednoducho musím spomenúť človeka, ktorý mi pomohol pri výbere komponentov a nastavení najkomplexnejšej (prvej!) kvadrokoptéry na firmvéri MegapirateNG a trpezlivo odpovedal na stovky otázok o týchto úplne základných pojmoch: SovGVD, ďakujem ! :-)

Ako odmenu pre tých, ktorí dokázali premárniť celý tento hárok, zverejňujem, čo som sľúbil malé video, rovnako ako naša kvadrokoptéra s našimi „vynájdenými“ regulátormi PID, letí na našom programe pre Arduino Mega 2560:

Samozrejme, že mu chýba GPS, ako v komerčných a sériovo vyrábaných produktoch, trochu mu chýba stabilita, ale je NAŠA a poznáme ho zvnútra aj zvonku do posledného faktora integrálneho koeficientu! A je naozaj skvelé, že takéto technológie máme dnes k dispozícii.

Napriek tomu, že kvadrokoptéry sú mimoriadne módnou témou, výber komponentov na zostavenie vášho zariadenia stále nie je taký jednoduchý. Výber dielov pre konkrétny projekt je bolestivým hľadaním optimálnej kombinácie hmotnosti, výkonu a funkčnosti. Preto predtým, ako sa vrhneme do sveta nespočetných internetových obchodov a bezmenných čínskych výrobcov, urobme prípravné práce.

Čo je to kvadrokoptéra a prečo je potrebná?

Multirotory, známe aj ako multikoptéry alebo jednoducho koptéry, sú bezpilotné lietadlá určené na zábavu, snímanie fotografií a videí zo vzduchu alebo testovanie automatizovaných systémov.

Koptéry sa zvyčajne líšia počtom použitých motorov – od dvojmotorovej dvojmotorovej (ako GunShip z filmu Avatar) až po oktakoptéru s ôsmimi. V skutočnosti je počet motorov obmedzený iba vašou predstavivosťou, rozpočtom a možnosťami letového ovládača. Klasická verzia je kvadrokoptéra so štyrmi motormi umiestnenými na pretínajúcich sa nosníkoch. Takúto konfiguráciu sa pokúsil postaviť Francúz Étienne Oehmichen už v roku 1920 a v roku 1922 sa mu to dokonca podarilo. V skutočnosti je to najjednoduchšie a lacná možnosť vyrobiť lietadlo schopné bez problémov zdvihnúť do vzduchu malé kamery ako GoPro. Ale ak sa chystáte vzlietnuť so serióznym fotografickým a video zariadením, mali by ste si vybrať helikoptéru s veľkým počtom motorov - to nielen zvýši nosnosť, ale tiež zvýši spoľahlivosť, ak jeden alebo viac motorov počas letu zlyhá. .

Teória letu

V teórii letu (aerodynamika) je zvykom rozlišovať tri uhly (alebo tri osi rotácie), ktoré určujú orientáciu a smer vektora pohybu lietadla. Jednoducho povedané, lietadlo niekam „vyzerá“ a niekam sa pohybuje. Navyše sa nemusí pohybovať smerom, ktorým sa „díva“. Dokonca aj lietadlá počas letu majú nejaký druh „driftového“ komponentu, ktorý ich odvádza zo smeru ich kurzu. A helikoptéry môžu vo všeobecnosti lietať bokom.

Tieto tri uhly sa bežne nazývajú roll, pitch a yaw. Roll je rotácia vozidla okolo jeho pozdĺžnej osi (osi, ktorá prebieha od nosa po chvost). Pitch je rotácia okolo svojej priečnej osi (klovanie nosom, dvíhanie chvosta). Vybočenie je rotácia okolo zvislej osi, ktorá sa najviac podobá rotácii v „pozemnom“ zmysle.

Základné manévre (zľava doprava): rovno, nakláňanie/nakláňanie a vybočenie

V klasickej konštrukcii helikoptéry hlavný rotor ovláda nakláňanie a sklon pomocou otočnej dosky. Keďže hlavný rotor má nenulový odpor vzduchu, vrtuľník zažíva krútiaci moment smerovaný v smere opačnom k ​​rotácii rotora a na jeho kompenzáciu má vrtuľník chvostový rotor. Zmenou výkonu chvostového rotora (otáčok alebo sklonu) ovláda klasický vrtuľník jeho vybočenie. V našom prípade je všetko komplikovanejšie. Máme štyri skrutky, dve z nich sa otáčajú v smere hodinových ručičiek, dve proti smeru hodinových ručičiek. Väčšina konfigurácií používa vrtule s pevným stúpaním a dá sa ovládať iba ich rýchlosťou. Ak sa všetky otáčajú rovnakou rýchlosťou, navzájom sa vyrušia: vybočenie, naklonenie a sklon budú nulové.

Ak zvýšime otáčky jednej vrtule otáčajúcej sa v smere hodinových ručičiek a znížime otáčky druhej vrtule otáčajúcej sa v smere hodinových ručičiek, udržíme celkový krútiaci moment a vybočenie bude stále nulové, ale náklon alebo sklon (v závislosti od toho, kde urobíme jeho „nos“), bude zmeniť. A ak zvýšime otáčky oboch vrtúľ otáčajúcich sa v smere hodinových ručičiek a znížime otáčky vrtúľ otáčajúcich sa proti smeru hodinových ručičiek (aby sme zachovali celkový zdvih), potom vznikne krútiaci moment, ktorý zmení uhol natočenia. Je jasné, že to všetko nebudeme robiť my sami, ale palubný počítač, ktorý bude prijímať signál z ovládacích páčok, pridávať korekcie z akcelerometra a gyroskopu a otáčať skrutky podľa potreby. Aby bolo možné navrhnúť helikoptéru, je potrebné nájsť rovnováhu medzi hmotnosťou, dobou letu, výkonom motora a ďalšími charakteristikami. To všetko závisí od konkrétnych úloh. Každý chce, aby štvorkolka lietala vyššie, rýchlejšie a dlhšie, ale priemerná doba letu sa pohybuje medzi 10 a 20 minútami v závislosti od kapacity batérie a celkovej hmotnosti letu. Je potrebné pripomenúť, že všetky charakteristiky sú vzájomne prepojené a napríklad zvýšenie kapacity batérie povedie k zvýšeniu hmotnosti a v dôsledku toho k zníženiu doby letu. Ak chcete približne zistiť, ako dlho bude vaša konštrukcia visieť vo vzduchu a či sa vôbec dokáže odlepiť od zeme, existuje dobrá online kalkulačka ecalc.ch. Predtým, ako do neho zadáte údaje, je však potrebné sformulovať požiadavky na budúce zariadenie. Budete do zariadenia inštalovať kameru alebo iné vybavenie? Aké rýchle by malo byť zariadenie? Ako ďaleko potrebujete letieť? Pozrime sa na vlastnosti rôznych komponentov.


PX4 - palubný počítač s plnohodnotným systémom UNIX

Rám

Hlavným bodom pri výbere rámu je, či použijete hotový rám alebo si ho vyrobíte sami. S hotovým rámom je všetko jednoduchšie a v každom prípade budete musieť objednať veľa dielov. Zároveň s prihliadnutím na ceny v Čínske obchody, domáca možnosť môže byť drahšia. Na druhej strane bude jednoduchšie opraviť si vlastný rám v prípade nehody. No, samozrejme, môžete si vyrobiť akýkoľvek dizajn, dokonca aj ten najbláznivejší, vlastnými rukami. Pozrime sa bližšie na možnosť vlastnej montáže.

Rám môžete vyrobiť z akýchkoľvek dostupných materiálov (drevo, hliník, plast atď.). Môžete to urobiť trochu vážnejšie a vyrezať to na CNC stroji z tkaných uhlíkových vlákien a môžete skomplikovať úlohu a vytvoriť skladaciu konštrukciu.

Najjednoduchšou možnosťou pre domácich majstrov je zájsť do OBI, Leroy Merlin alebo na stavebný trh a kúpiť si štvorcovú hliníkovú rúrku 12 × 12, ako aj hliníkový plech s hrúbkou 1,5 mm. Na výrobu rámu z takýchto materiálov typu „štyri palice a upevňovacie prvky“ stačí vŕtačka alebo pílka na kov. Musíte sa však pripraviť na to, že takýto dizajn nebude trvať dlho. Napriek tomu sú všetky tieto profily vyrobené z veľmi mäkkého materiálu (AD31/AD33), ktorý sa pri lete ľahko ohne.


Oehmichen č. 2, pilotovaná kvadrokoptéra francúzskeho inžiniera Etienna Oehmichena, vypustená v roku 1922

Ako vzorku pre váš rám si môžete vziať zjednodušený továrenský rám alebo nájsť hotový výkres na internete. Zložitejšie materiály (napríklad uhlíkové vlákna) je možné nahradiť hliníkom - ak sa ukáže, že je ťažší, nebude to o veľa. V každom prípade by ste mali venovať pozornosť dĺžke a symetrii lúčov. Dĺžka nosníkov sa volí na základe priemeru použitých vrtúľ tak, aby po ich inštalácii bola vzdialenosť medzi kruhmi rotujúcich vrtúľ aspoň 1–2 cm a ešte viac by sa tieto kruhy nemali pretínať. Motory namontované na ramenách by mali byť v rovnakej vzdialenosti od stredu rámu, kde sa bude nachádzať „mozog“, a (vo väčšine prípadov) v rovnakej vzdialenosti od seba, čím tvoria rovnostranný mnohouholník.

Pri navrhovaní stojí za zváženie, že stred rámu sa musí zhodovať s ťažiskom, takže inštalácia batérie vzadu medzi nosníky je zlý nápad, pokiaľ to nie je kompenzované záťažou vpredu, ako je napríklad kamera. . Zamyslite sa nad tým, na čo vaše zariadenie dopadne; pre začiatočníkov môžete odporučiť použiť niečo mäkké na „brucho“ alebo konce paží, napríklad hustú penovú gumu alebo tenisové loptičky. A tiež chrániť batériu v prípade neúspešného pristátia, napríklad jej inštaláciou medzi dosky rámu alebo umiestnením pod lyže s vysokým pristátím.

Info

Let v pohľade z prvej osoby (FPV) je veľmi vzrušujúci, najmä ak používate video okuliare a HeadTracker, ktorý bude sledovať pohyby vašej hlavy na kardanovom závese kamery FPV, čím vytvoríte pocit, že ste v kokpite.

Motory a vrtule

Kvôli otáčaniu motorov v rôznych smeroch je potrebné použiť viacsmerné vrtule: rotácia dopredu (proti smeru hodinových ručičiek) a spätná rotácia (v smere hodinových ručičiek). Typicky sa používajú dvojlisté vrtule, ľahšie sa vyvažujú a dajú sa nájsť v obchodoch, zatiaľ čo trojlisté dávajú väčší ťah s menším priemerom vrtule, ale spôsobia veľa bolesti hlavy pri vyvažovaní. Zlá (lacná a nevyvážená) vrtuľa sa môže počas letu rozpadnúť alebo spôsobiť silné vibrácie, ktoré sa prenášajú na snímače letového ovládača. To povedie k vážnym problémom so stabilizáciou a spôsobí veľa rozmazania a „rôsolovitosti“ vo videu, ak niečo natáčate z kvadrokoptéry alebo lietate z pohľadu prvej osoby.


Regulátor rýchlosti,
aka ESC

Každá vrtuľa má dva hlavné parametre: priemer a stúpanie. Označujú sa rôzne ako 10×4,5, 10×45 alebo jednoducho 1045. To znamená, že vrtuľa má priemer 10 palcov a stúpanie 4,5 palca. Čím dlhšia vrtuľa a väčšie stúpanie, tým väčší ťah dokáže vytvoriť, no zároveň sa zvýši zaťaženie motora a zvýši sa odber prúdu, následkom čoho sa môže prehriať a zlyhať elektronika. Preto sú skrutky prispôsobené motoru. No alebo motor na vrtule, podľa toho ako sa na to pozeráš. Zvyčajne na stránkach predajcov motorov nájdete informácie o odporúčaných vrtuľách a batériách pre vybraný motor, ako aj testy generovaného ťahu a účinnosti. Existujú aj vrtule s premenlivým stúpaním, ktoré teoreticky zvýšia manévrovateľnosť, no v skutočnosti pridajú zložitú mechaniku, ktorá má tendenciu sa opotrebovať a zlomiť, po ktorej nasledujú drahé opravy.

Taktiež čím väčšia je vrtuľa, tým väčšia je jej zotrvačnosť. Ak potrebujete manévrovateľnosť, je lepšie zvoliť vrtule s veľkým stúpaním alebo tromi listami. Pri rovnakej veľkosti vytvoria 1,2–1,5 krát väčší ťah. Je jasné, že vrtule a rýchlosť ich otáčania musia byť zvolené tak, aby mohli vytvárať ťah väčší ako je hmotnosť zariadenia.

A nakoniec bezkomutátorové motory. Motory majú kľúčový parameter - kV. Toto je počet otáčok za minútu, ktoré motor vykoná na volt použitého napätia. Toto nie je sila motora, je to jeho, takpovediac, „prevodový pomer“. Čím je kV nižšie, tým sú otáčky nižšie, ale krútiaci moment vyšší. Čím viac kV pri rovnakom výkone, tým vyššie otáčky a nižší krútiaci moment. Pri výbere motora sa riadia skutočnosťou, že v normálnom režime bude pracovať na 50% maximálneho výkonu. Nemyslite si, že čím vyššie kV, tým lepšie, pre koptéry s typickou 3S batériou je odporúčané číslo v rozmedzí od 700 do 1000 kV.

Info

Odolnejším materiálom je dural (D16T). Prakticky sa neohýba, je dosť pružný a používa sa v letectve. Profily z neho sa v OBI nepredávajú, ale zoženiete ich na Mitinskom markete na treťom poschodí, boli aj na trhovisku Stroy TVC.

Výkon a regulátory výkonu

Kapitán navrhuje: čím väčší výkon motora, tým viac batérie potrebuje. Veľká batéria nie je len o jej kapacite (čítaj: doba letu), ale aj o maximálnom prúde, ktorý dodáva. Ale čím väčšia je batéria, tým väčšia je jej hmotnosť, čo nás núti upraviť naše odhady týkajúce sa vrtúľ a motorov. V súčasnosti každý používa lítium-polymérové ​​(LiPo) batérie. Sú ľahké, priestranné, s vysokým vybíjacím prúdom. Jediným negatívom je, že nefungujú dobre pri mínusových teplotách, ale ak ich necháte vo vrecku a pripojíte ich bezprostredne pred letom, tak sa počas vybíjania samy mierne zahrejú a nestihnú zamrznúť. LiPo články produkujú napätie 3,7 V.

Pri výbere batérie by ste mali venovať pozornosť trom jej parametrom: kapacita, meraná v miliampérhodinách, maximálny vybíjací prúd v kapacite batérie (C) a počet článkov (S). Prvé dva parametre sú vzájomne prepojené a keď ich vynásobíte, zistíte, aký prúd dokáže táto batéria dlhodobo dodávať. Napríklad vaše motory spotrebúvajú každý 10 A a sú štyri a batéria má parametre 2200 mAh 30/40C, takže helikoptéra vyžaduje 4 10 A = 40 A a batéria dokáže vyprodukovať 2,2 A 30 = 66 A alebo 2,2 A 40 = 88 A po dobu 5–10 sekúnd, čo bude jednoznačne stačiť na napájanie zariadenia. Tieto koeficienty tiež priamo ovplyvňujú hmotnosť batérie. Pozor! Ak nie je dostatok prúdu, batéria sa v najlepšom prípade nafúkne a zlyhá av najhoršom prípade sa vznieti alebo exploduje; aj to sa môže stať, keď skrat, poškodenie alebo nevhodné podmienky skladovania a nabíjania, preto používajte špecializované nabíjačky, batérie skladujte v špeciálnych nehorľavých vreciach a lietajte s „pípačom“, ktorý upozorní na vybitie. Počet článkov (S) udáva počet LiPo článkov v batérii, každý článok produkuje 3,7 V a napríklad 3S batéria dodá približne 11,1 V. Tento parameter stojí za pozornosť, keďže rýchlosť závisí na ňom otáčky motora a typ použitých regulátorov.

Prvky batérie sú kombinované v sérii alebo paralelne. Pri sériovom zapojení sa zvyšuje napätie, pri paralelnom zapojení sa zvyšuje kapacita. Schéma zapojenia prvkov v batérii sa dá pochopiť podľa jej značiek. Napríklad 3S1P (alebo jednoducho 3S) sú tri prvky zapojené do série. Napätie takejto batérie bude 11,1 V. 4S2P je osem prvkov, dve skupiny, zapojené paralelne so štyrmi sériovými prvkami.

Motory však nie sú pripojené k batérii priamo, ale prostredníctvom takzvaných regulátorov otáčok. Regulátory rýchlosti (tiež známe ako ESC) riadia rýchlosť otáčania motorov, vďaka čomu bude vaša helikoptéra balansovať na mieste alebo letieť v požadovanom smere. Väčšina regulátorov má zabudovaný 5V regulátor prúdu, z ktorého môžete napájať elektroniku (najmä „mozog“), alebo môžete použiť samostatný regulátor prúdu (UBEC). Regulátory otáčok sa vyberajú na základe aktuálnej spotreby motora, ako aj možnosti blikania. Bežné ovládače sú dosť pomalé z hľadiska odozvy na prichádzajúci signál a majú veľa zbytočných nastavení pre stavbu koptéry, takže sú flashované vlastným firmvérom SimonK alebo BLHeli. Aj tu prišli na pomoc Číňania a často nájdete regulátory otáčok s už aktualizovaným firmvérom. Nezabudnite, že takéto regulátory nesledujú stav batérie a môžu ju vybiť pod 3,0 V na článok, čo povedie k jej poškodeniu. Zároveň sa ale na konvenčných ESC oplatí prepnúť typ použitej batérie z LiPo na NiMH alebo vypnúť zníženie rýchlosti pri vybitom zdroji (podľa návodu), aby sa na konci letu motor sa náhle nevypne a váš dron nespadne.

Motory sú pripojené k regulátoru otáčok tromi vodičmi, na poradí nezáleží, ale ak prehodíte akékoľvek dva z troch vodičov, motor sa bude otáčať opačným smerom, čo je pre koptéry veľmi dôležité.

Dva napájacie vodiče prichádzajúce z regulátora musia byť pripojené k batérii. NEZAMIEŇTE SI POLARITA! Vo všeobecnosti sú regulátory pre pohodlie pripojené nie k samotnej batérii, ale k takzvanému Power Distribution Module - modulu distribúcie energie. Vo všeobecnosti je to len doska, na ktorej sú spájkované napájacie vodiče regulátorov, spájkované vetvy pre ne a napájací kábel vedúci k batérii. Batériu samozrejme nie je potrebné spájkovať, ale pripojiť cez konektor. Nechcete znovu spájkovať batériu zakaždým, keď sa vybije.

Palubný počítač a senzory

Výber letových ovládačov pre helikoptéry je veľmi veľký – od jednoduchého a lacného KapteinKUK a niekoľkých open source projektov pre Arduino kompatibilné ovládače až po drahé komerčné DJI Wookong. Ak ste skutočným hackerom, uzavreté ovládače by vás nemali veľmi zaujímať, zatiaľ čo otvorené projekty a dokonca aj tie založené na populárnom Arduine zaujmú mnohých programátorov. Schopnosti akéhokoľvek letového ovládača možno posúdiť podľa senzorov, ktoré sa v ňom používajú:

Gyroskop vám umožňuje držať vrtuľník v určitom uhle a je súčasťou všetkých ovládačov; akcelerometer pomáha určiť polohu helikoptéry vzhľadom na zem a vyrovnáva ju rovnobežne s horizontom (pohodlný let); Barometer umožňuje udržiavať zariadenie v určitej nadmorskej výške. Hodnoty tohto snímača sú výrazne ovplyvnené prúdením vzduchu z vrtúľ, takže by ste ho mali skryť pod kusom penovej gumy alebo špongie; Kompas a GPS spolu pridávajú funkcie, ako je držanie kurzu, držanie polohy, návrat do východiskového bodu a priradenie trasy (autonómny let). K inštalácii kompasu by ste mali pristupovať opatrne, pretože jeho hodnoty sú výrazne ovplyvnené blízkymi kovovými predmetmi alebo elektrickými vodičmi, a preto „mozgy“ nebudú schopné určiť správny smer pohybu; sonar alebo ultrazvukový diaľkomer sa používa na presnejšie udržanie nadmorskej výšky a autonómne pristátie; optický snímač z myši sa používa na udržanie polohy v nízkych nadmorských výškach; Prúdové senzory určujú zostávajúce nabitie batérie a môžu aktivovať funkcie návratu k štartu alebo pristátiu.

V súčasnosti existujú tri hlavné open source projekty: MultiWii, ArduCopter a jeho portovaná verzia MegaPirateNG. MultiWii je najjednoduchší z nich, na spustenie vyžaduje Arduino s procesorom 328p, 32u4 alebo 1280/2560 a aspoň jedným gyroskopickým senzorom. ArduCopter je projekt nabitý všetkými druhmi funkcií, od jednoduchého vznášania sa až po vykonávanie zložitých úloh trasy, ale vyžaduje si špeciálny hardvér založený na dvoch čipoch ATmega. MegaPirateNG je klon ArduCopter, ktorý môže bežať na bežnom Arduine s čipom 2560 a minimálnou sadou senzorov: gyroskop, akcelerometer, barometer a kompas. Podporuje všetky rovnaké funkcie ako originál, ale vždy to dotiahne vo vývoji.


pokročilých deväť-
diaľkové ovládanie kanála

Situácia s hardvérom pre otvorené projekty je podobná, ako s rámami pre koptéry, to znamená, že si môžete kúpiť hotový ovládač alebo si ho zostaviť sami od začiatku alebo na základe Arduina. Pred nákupom by ste mali vždy venovať pozornosť senzorom použitým v doske, pretože technologický vývoj sa nezastaví a tie staré je potrebné predať Číňanom a okrem toho nie všetky senzory môžu byť podporované otvoreným firmvérom.

Nakoniec ďalší počítač, ktorý stojí za zmienku, je PX4, ktorý sa líši od klonov Arduina tým, že má podobný UNIX operačný systém v reálnom čase, s shellom, procesmi a všetkými záležitosťami. Musíme vás však varovať, že PX4 je nová a dosť hrubá platforma. Po zložení nebude okamžite lietať.

Nastavenie letových parametrov, ako je nastavovací program, je pre každý projekt veľmi individuálne a teória o ňom by mohla zabrať na ďalší článok, takže v skratke: takmer všetok firmvér pre multikoptéry je založený na PID regulátore a hlavnom parametri, ktorý si vyžaduje zásah je proporcionálna zložka označovaná ako P alebo sadzbaP. Ak sa vaša helikoptéra počas vzletu škubne zo strany na stranu, potom by sa táto hodnota mala znížiť, ale ak pomaly reaguje na vonkajšie vplyvy, potom ju naopak zvýšte; ďalšie nuansy nájdete v pokynoch a na webových stránkach vývojárov.

Bezpečnosť

Všetci začiatočníci, keď myslia na bezpečnosť, pamätajte na AR.Drone a jeho ochranu vrtule. Toto dobrá možnosť, a funguje to, ale len na malých a ľahkých zariadeniach a keď sa hmotnosť vašej helikoptéry začne blížiť k dvom kilogramom alebo už dávno presiahne túto hodnotu, potom vás môže zachrániť len pevná železná konštrukcia, ktorá bude vážiť veľa a napr. rozumiete, veľmi zníži užitočné zaťaženie a letovú autonómiu. Preto je lepšie najprv trénovať ďaleko od ľudí a majetku, ktoré môžu byť poškodené, a keď sa budú vaše schopnosti zlepšovať, ochrana už nebude potrebná. Ale aj keď ste skúsený pilot, nezabúdajte na bezpečnostné opatrenia a myslite na možné negatívne dôsledky vášho letu v núdzových situáciách, najmä pri lietaní na preplnených miestach. Nezabudnite, že porucha ovládača alebo komunikačného kanála môže viesť k tomu, že zariadenie odletí ďaleko od vás a následne na helikoptére vopred nainštalovaný sledovač GPS alebo jednoduché, ale veľmi hlasné pípanie, pomocou ktorého vás dokáže určiť jeho polohu. Vopred si nastavte a skontrolujte bezpečnostnú funkciu vášho letového ovládača, ktorá vám pomôže pristáť alebo vrátiť helikoptéru do východiskového bodu, ak sa stratí signál z diaľkového ovládača.

Kontrola

Trochu o rádiovom zariadení. V súčasnosti takmer všetky vysielače pre lietajúce modely pracujú na frekvencii 2,4 GHz. Sú dosť dlhé, a tento frekvenčný rozsah nie je taký hlučný ako napríklad 900 MHz. Na let vo všeobecnosti postačujú štyri kanály: plyn, vybočenie, sklon a rolovanie. Osem kanálov určite stačí na niečo iné.

Info

Ak chcete lietať s kamerou, zaobstarajte si gimbal, ktorý udrží kameru pri manévroch rovnobežne s horizontom a tiež pomôže ovládať náklon kamery. Väčšina ovládačov má výstupy na stabilizáciu gimbalov poháňaných servomotorom, ako aj výstup pre spínač tlačidla spúšte fotoaparátu.

Súprava sa zvyčajne skladá zo samotného diaľkového ovládača a prijímača. Prijímač obsahuje ovládacie gombíky a prídavné tlačidlá. Typicky sa zvolí zariadenie Mode2, keď ľavá páka ovláda plyn a rotáciu a pravá páka ovláda sklon helikoptéry. Všetky rukoväte, okrem plynu, sú odpružené a po uvoľnení sa vrátia do pôvodnej polohy. Je tiež potrebné venovať pozornosť počtu kanálov. Dron bude vyžadovať štyri riadiace kanály a jeden kanál na prepínanie letových režimov a ďalšie kanály môžu byť potrebné aj na ovládanie kamery, konfiguráciu alebo špeciálne režimy letového ovládača. Pri výbere diaľkového ovládača treba zvážiť aj možnosť výmeny rádiového modulu, aby sa dal v budúcnosti jednoducho aktualizovať.

Ahojte obyvatelia Habra!
V tejto sérii článkov pootvoríme veko kvadrokoptéry trochu viac, ako si hobby vyžaduje, a napíšeme, nakonfigurujeme a spustíme aj vlastný program pre letový ovládač, ktorým bude bežná doska Arduino Mega 2560.



Máme pred sebou:

  1. Základné pojmy (pre začínajúcich pilotov helikoptér).
  2. PID regulátory s interaktívnou webovou ukážkou prevádzky na virtuálnej kvadrokoptére.
  3. Aktuálny program pre Arduino a konfiguračný program pre Qt.
  4. Nebezpečné skúšky kvadrokoptéry na lane. Prvé lety.
  5. Nehoda a strata v poli. Automatické vyhľadávanie zo vzduchu pomocou Qt a OpenCV.
  6. Záverečné úspešné testy. Zhrnutie. Kam ísť?


Materiál je objemný, ale pokúsim sa ho vtesnať do 2-3 článkov.
Dnes očakávame: spojler s videom, ako naša kvadrokoptéra lietala; základné pojmy; PID regulátory a prax výberu ich koeficientov.

Načo to všetko je?

Akademický záujem, ktorý, mimochodom, prenasleduje nielen mňa (,). A, samozrejme, pre dušu. Pri práci som sa výborne bavil a cítil som skutočné, neopísateľné šťastie, keď s mojím programom letelo „IT“ :)

Pre koho?

Tento materiál môže byť zaujímavý aj pre ľudí, ktorí sú ďaleko, alebo sa len chystajú zapojiť do multirotorových systémov. Teraz si povedzme o účele hlavných komponentov kvadrokoptéry, o tom, ako sa navzájom ovplyvňujú, o základných konceptoch a princípoch letu. Samozrejme, všetky potrebné znalosti nájdeme na internete, no nemožno nás nútiť hľadať ich na rozsiahlom internete.

Bez toho, aby ste ohrozili svoje chápanie základných pojmov, pokojne preskočte všetko, čo viete, až do ďalšieho neznámeho termínu, zvýraznené tučným písmom, alebo k nezrozumiteľnej ilustrácii.

NIE #1!

Nezačnite písať svoj vlastný program pre letový ovládač, kým nevyskúšate hotové riešenia, ktorých je teraz pomerne veľa (Ardupilot, MegapirateNG, MiltiWii, AeroQuad atď.). V prvom rade je to nebezpečné! Ovládanie kvadrokoptéry bez GPS a barometra si vyžaduje prax a ešte viac, keď sa pokazí, prevráti sa alebo neletí presne tam, kam by mala – a tomu sa pri prvých testoch takmer nedá vyhnúť. Po druhé, bude sa vám programovať mnohonásobne ľahšie, keď pochopíte, čo treba naprogramovať a ako by to malo nakoniec fungovať. Uver mi: letová matematika je len malá časť programového kódu.

NIE #2!

Nesnažte sa napísať vlastný program pre letového riadiaceho, ak nesledujete akademický záujem a potrebujete len to, čo už dávno dokážu hotové riešenia (lietať, fotiť, natáčať videá, lietať ďalej zadanie a pod.) Kým si všetko píšeš sám, Zaberie to veľa času, aj keď nie si sám.

Základné pojmy


Kvadrokoptéry sa dodávajú v rôznych variantoch, ale všetky sú spojené štyrmi hlavnými rotormi:

Napriek zdanlivej symetrii je pre pilota veľmi dôležité rozlíšiť, kde je predná časť kvadrokoptéry (znázornená šípkou). Tu, ako v rádiom riadených modeloch áut: keď je zadaný povel „vpred“, kvadrokoptéra neletí tam, kam sa pozerá pilot, ale tam, kam smeruje pomyselný nos kvadrokoptéry. To je plné nebezpečenstva: pre začiatočníkov môže byť ťažké vrátiť k sebe zariadenie, ktoré zachytil vietor, nejako sa otočil nabok (samozrejme, nehovoríme o lietaní vo fotoaparáte prvej osoby a o „inteligentnom ” letové režimy pomocou kompasu a GPS.) Riešenie Tomuto problému môžu čiastočne pomôcť predné skrutky alebo trámy inej farby, nejaká guľa vpredu alebo rôzne farebné LED diódy. To všetko sa však ukáže ako zbytočné, keď sa pepeláty rýchlo zmenia na bodku nad horizontom.

Budeme lietať na ráme kvadrokoptéry v tvare „X“, pretože sa mi páči viac. Každý dizajn má svoje výhody a účel. Okrem kvadrokoptér existujú aj ďalšie multikoptéry. Aj keď nepočítate exotické možnosti, stále je ich veľa!



Poďme zistiť, ako je naša kvadrokoptéra štruktúrovaná vo vnútri a čo by mal robiť letový ovládač, ktorý plánujeme naprogramovať.




Uhly nakloniť sa, nakloniť sa a vybočiť- uhly, ktorými je zvykom určovať a nastavovať orientáciu kvadrokoptéry v priestore.


Niekedy sa vynecháva slovo „uhol“ a hovorí sa jednoducho: stúpanie, kolísanie, vybočenie. Ale podľa Wikipédie to nie je úplne presné. Let kvadrokoptéry v požadovanom smere sa dosiahne zmenou týchto troch uhlov. Napríklad, aby kvadrokoptéra mohla letieť dopredu, musí sa nakloniť, pretože zadné motory sa točia o niečo silnejšie ako predné:

Plynová kvadrokoptéra- aritmetický priemer medzi rýchlosťami otáčania všetkých motorov. Čím viac plynu, tým väčší je celkový ťah motorov, tým viac ťahajú kvadrokoptéru hore(NEDOPREDUJTE!!! „Papuče na podlahu“ tu znamená najrýchlejší výstup). Zvyčajne sa meria v percentách: 0% - motory sú zastavené, 100% - otáčanie pri maximálnej rýchlosti. Vznášanie plynu- minimálna hladina plynu, ktorá je potrebná na to, aby kvadrokoptéra nestrácala nadmorskú výšku.

Plyn, náklon, náklon, vybočenie – ak dokážete ovládať tieto štyri parametre, potom môžete ovládať kvadrokoptéru. Niekedy sa nazývajú aj riadiace kanály. Ak ste si zakúpili dvojkanálový diaľkový ovládač, nebudete môcť kvadrokoptéru ovládať. Trojkanálový je vhodnejší pre malé helikoptéry: môžete lietať bez kontroly rolovania, ale na kvadrokoptére to nie je vhodné. Ak chcete zmeniť letové režimy, budete musieť siahnuť po päťkanálovom diaľkovom ovládači. Ak chcete ovládať naklápanie a posúvanie kamery na palube, existujú ďalšie dva kanály, aj keď profesionáli na to používajú samostatné diaľkové ovládanie.

Existuje veľa režimov letu. Používa sa GPS, barometer a diaľkomer. Chceme však implementovať ten základný - stabilizačný režim ( bodnúť, stabilizovať, lietať v „pahýľ“), v ktorom kvadrokoptéra udržiava uhly, ktoré sú jej dané z diaľkového ovládača, bez ohľadu na vonkajšie faktory. V tomto režime môže kvadrokoptéra visieť takmer na mieste bez vetra. Pilot bude musieť kompenzovať vietor.

Smer otáčania skrutiek nie je zvolený náhodne. Ak by sa všetky motory otáčali jedným smerom, kvadrokoptéra by sa v dôsledku vytvorených krútiacich momentov otáčala opačným smerom. Preto sa vždy jeden pár protiľahlých motorov otáča jedným smerom a druhý pár druhým. Efekt výskytu rotačných momentov sa používa na zmenu uhla natočenia: jeden pár motorov sa začne otáčať o niečo rýchlejšie ako druhý a teraz sa kvadrokoptéra pomaly otáča smerom k nám (aká hrôza):



  • LFW - ľavá predná rotácia v smere hodinových ručičiek (ľavá predná, rotácia v smere hodinových ručičiek)
  • RFC - pravá predná rotácia proti smeru hodinových ručičiek (pravá predná, rotácia proti smeru hodinových ručičiek)
  • LBC - ľavá zadná rotácia proti smeru hodinových ručičiek (ľavá zadná, rotácia proti smeru hodinových ručičiek)
  • RBW - pravá spätná rotácia v smere hodinových ručičiek (pravá zadná, rotácia v smere hodinových ručičiek)


Ovláda rýchlosť otáčania motorov letový ovládač (ovládač, mozog). Zvyčajne ide o malú dosku alebo krabicu s mnohými vstupmi a výstupmi. Existuje obrovské množstvo rôznych ovládačov s rôznymi sadami schopností, rôznym firmvérom a rôznymi úlohami. Tu je len niekoľko:




Všeobecnou úlohou letového riadiaceho zariadenia je vykonávať riadiaci cyklus niekoľko desiatok krát za sekundu, ktorý zahŕňa: čítanie hodnôt snímačov, čítanie riadiacich kanálov, spracovanie informácií a vydávanie riadiacich signálov do motorov, aby bolo možné vykonávať príkazy pilota. Toto ideme naprogramovať.

Existuje mnoho rôznych typov senzorov, ktoré možno použiť. Tie, ktoré sa už stali takmer povinnými, použijeme vo všetkých kvadrokoptérach trojosový gyroskop a trojosový akcelerometer. Akcelerometer meria zrýchlenie, gyroskop meria uhlovú rýchlosť. Vďaka nim letový ovládač pozná aktuálne uhly sklonu, náklonu a vybočenia. Tieto senzory môžu byť zabudované do letového ovládača alebo externé. Proces výpočtu troch uhlov na základe hodnôt snímača je témou na samostatný článok. Ale to tu nepotrebujeme vedieť: MPU-6050 urobí všetko za nás. Ide o malú dosku, ktorá interne vykonáva potrebné výpočty a filtrovanie a vytvára takmer hotové uhly pomocou protokolu i2c. Všetko, čo musíme urobiť, je spočítať ich, spracovať ich so zvyškom údajov a vydať riadiace signály motorom.

Motory na multikoptérach spotrebúvajú veľké prúdy, takže letový ovládač ich riadi nie priamo, ale prostredníctvom špeciálnych hardvérových ovládačov tzv regulátory otáčok (ESC, regulátor, eska). Tieto regulátory sú napájané z hlavnej palubnej batérie, riadiaci signál je prijímaný z regulátora a na výstupe majú tri vodiče (A, B, C), ktoré vedú priamo k motorom (každý motor má vlastný regulátor !)




„Protokol“ komunikácie medzi regulátorom a motorom nie je pre nás taký dôležitý ako „protokol“ komunikácie medzi letovým ovládačom a regulátorom, pretože regulátor musíme programovo ovládať z ovládača. Existujú regulátory ovládané cez i2c, ale tie najbežnejšie sú riadené štvorcovým signálom s minimom 0 voltov a maximálne 3-5 voltov (tzv. PWM alebo PWM a niektorí tvrdia, že je to správnejšie - PPM. Viac podrobností, napríklad).

„Protokol“ je silné slovo: na prikázanie motora otáčať sa maximálnou rýchlosťou musí ovládač vysielať impulzy v trvaní 2 milisekúnd, prerušované logickou nulou v trvaní 10 - 20 milisekúnd. Trvanie impulzu 1 milisekunda zodpovedá zastaveniu motora, 1,1 ms – 10 % maximálnej rýchlosti, 1,2 ms – 20 % atď. Trvanie nuly v praxi nehrá žiadnu rolu, dôležitá je len dĺžka trvania samotného impulzu.

Napriek všetkej zdanlivej jednoduchosti tu existuje prepad: letové ovládače sú rôzne s rôznymi nastaveniami, regulátory sú odlišné a minimum (1 ms) a maximum (2 ms) nie sú univerzálne. V závislosti od mnohých faktorov môže byť rozsah 1 – 2 ms v skutočnosti 1,1 – 1,9 ms. Aby regulátor a kontrolór hovorili absolútne rovnakým jazykom, existuje postup kalibrácia regulátora. Počas tohto postupu sa rozsahy ovládacích prvkov menia a stávajú sa rovnakými ako dosah regulátora. Postup je zabudovaný do programu každého regulátora a zahŕňa niekoľko jednoduchých krokov (kroky sa môžu líšiť v závislosti od výrobcu - prečítajte si pokyny!):

  • Vypnite napájanie regulátora.
  • Odstráňte vrtuľu z motora.
  • Priveďte signál zodpovedajúci maximálnej rýchlosti otáčania na vstup regulátora.
  • Zapnite napájanie regulátora. Motor musí zostať nehybný bez vonkajšej pomoci.
  • Priveďte signál zodpovedajúci minimálnej rýchlosti otáčania na vstup regulátora.
  • Pauza na 1-2 sekundy, počkajte na charakteristické škrípanie.
  • Vypnite napájanie regulátora.


Potom sa do ovládača vložia príslušné hranice intervalov. Pri pokuse o vzlietnutie s nekalibrovanými regulátormi môžu byť následky neočakávané: od náhleho trhnutia kvadrokoptéry do najbližšieho stromu až po úplnú nehybnosť motorov pri akejkoľvek hodnote plynu.

PWM využíva presne rovnaký princíp palubný prijímač. Ide o malé zariadenie, ktoré prijíma rádiové riadiace signály zo zeme a prenáša ich do letového ovládača. Najčastejšie má letový ovládač pre každý riadiaci kanál (plyn, sklon, náklon atď.) svoj vlastný vstup, do ktorého sa dodáva PWM. Logika interakcie je jednoduchá: príkaz, napríklad „70% plyn“, nepretržite prechádza zo zeme do prijímača, kde sa premení na PWM a odošle sa do letového ovládača cez samostatný kábel. To isté s stúpaním, otáčaním, vybočením.

Keďže prijímač a ovládač majú svoj vlastný priateľský vzťah PWM, budú musieť byť tiež kalibrované: diaľkové ovládače s prijímačmi sa líšia svojimi vlastnými prevádzkovými rozsahmi. Ovládač sa musí vedieť prispôsobiť. Postup rádiová kalibrácia, na rozdiel od kalibrácie regulátorov si ho budeme musieť vytvoriť sami v rámci letového programu. Všeobecný plán kalibrácie je nasledujúci:

  • Pre každý prípad odstráňte vrtule z motorov.
  • Nejako prepnite ovládač do režimu kalibrácie rádia.
  • Regulátor spustí rádiovú kalibráciu na niekoľko desiatok sekúnd.
  • Vo vyhradenom čase pohybujte všetkými páčkami diaľkového ovládania vo všetkých smeroch, kým sa nezastavia.
  • Regulátor ukladá maximá a minimá pre všetky riadiace kanály vo vnútornej pamäti po stáročia.

Takže: počas rádiovej kalibrácie si letový ovládač zapamätá dosahy prijímača pre všetky riadiace kanály; Počas kalibrácie ESC sa rozsah letového ovládača zadá do všetkých ESC.

Okrem programu pre letový ovládač je potrebný ešte jeden program: rozhranie nastavenia letového ovládača. Najčastejšie ide o PC program, ktorý sa pripája k letovému ovládaču cez USB a umožňuje užívateľovi konfigurovať a kontrolovať letový program, napr.: spustiť kalibráciu rádia, nakonfigurovať stabilizačné parametre, skontrolovať činnosť senzorov, nastaviť trasu letu na mapu, určiť správanie multikoptéry pri strate signálu a oveľa viac. Naše konfiguračné rozhranie napíšeme v C++ a Qt vo forme konzolovej utility. Tu je, ak sa pozriete do budúcnosti:




Nikto nie je imúnny voči nehodám. Aj desaťpalcové plastové vrtule na malých motorčekoch môžu zanechať na koži krvavé modriny, ktoré budú bolieť ešte týždeň (osobne testované). Je ľahké dať si nový make-up a účes, ak počas nosenia kvadrokoptéry zapnete plynový ovládač na diaľkovom ovládači. Preto musí letový ovládač poskytnúť aspoň určitú bezpečnosť: mechanizmus ozbrojený/odzbrojený. Stav „odzbrojenia“ kvadrokoptéry znamená, že motory sú vypnuté a dokonca ani povel na plný plyn z diaľkového ovládača nemá žiadny účinok, hoci je napájanie dodávané. Stav „armed“ kvadrokoptéry znamená, že príkazy z diaľkového ovládania vykonáva letový ovládač. V tomto stave kvadrokoptéry štartujú, lietajú a pristávajú. Kvadrokoptéra sa zapne a mala by okamžite prejsť do deaktivovaného stavu v prípade, že ju nepozorný pilot zapne, keď páka plynu na diaľkovom ovládači nie je na nule. Na uvedenie helikoptéry do „ozbrojeného“ stavu musí pilot urobiť nejaké vopred dohodnuté gesto pomocou páčok diaľkového ovládania. Často je týmto gestom podržanie ľavej páčky v pravom dolnom rohu (plyn = 0 %, vybočenie = 100 %) na niekoľko sekúnd. Potom letový ovládač vykoná aspoň minimálny autotest a ak úspešne prejde, “ ozbrojovať sa"(pripravená na let!) Ďalším gestom (plyn = 0 %, vybočenie = 0 %) kvadrokoptéra“ sa odzbrojí". Ďalším dobrým bezpečnostným opatrením je autodisarm, ak bol plyn na nule 2-3 sekundy.

O motoroch, batériách, regulátoroch, vrtuliach



Stabilizačná matematika, PID regulátory (PID)


Ak sa rozhodnete pre multikoptéry, skôr či neskôr sa budete musieť vysporiadať s nastavením PID regulátora, keďže tento matematický aparát sa používa takmer pri všetkých stabilizačných úlohách: stabilizácia uhlov kvadrokoptéry vo vzduchu, lietanie a držanie pozície. pomocou GPS, udržiavanie výšky pomocou barometra, bezkefkové mechanizmy stabilizácia videokamery za letu (kamerový kardan).

Kúpite dvojosový gimbal kamery, dáte tam napríklad GoPro, zapnete a namiesto stabilizácie dostanete kŕče, vibrácie a zášklby, hoci všetky senzory sú kalibrované a mechanické problémy sú odstránené. Dôvodom sú nesprávne parametre PID regulátorov.

Zložíte multikoptéru, nakalibrujete senzory, regulátory, rádio, všetko skontrolujete, pokúsite sa vzlietnuť a vo vzduchu je to také nudné, že ju prevráti aj slabý vánok. Alebo naopak: je taký ostrý, že zrazu vzlietne a bez povolenia urobí trojité salto. Dôvod je stále rovnaký: parametre PID regulátorov.

Pre mnohé zariadenia využívajúce PID regulátory sú k dispozícii návody na nastavenie a dokonca viaceré okrem početných video návodov od samotných používateľov. Na uľahčenie orientácie v tejto rozmanitosti je však užitočné pochopiť, ako tieto regulátory fungujú vo vnútri. Okrem toho sa chystáme napísať vlastný stabilizačný systém kvadrokoptéry! Navrhujem „znovu vynájsť“ a "na prstoch" pochopiť Vzorec regulátora PID. Pre tých, ktorí uprednostňujú suchý matematický jazyk, odporúčam Wikipédiu, pretože... v ruštine materiál ešte nie je tak podrobne prezentovaný.

Budeme uvažovať o kvadrokoptére v dvojrozmernom priestore, kde má iba jeden uhol - uhol natočenia a dva motory: ľavý a pravý.




Letový riadiaci nepretržite prijíma príkazy zo zeme: „otočte sa o 30 stupňov“, „otočte sa o 10 stupňov“, „otočte sa o 0 stupňov (držte horizont)“; jeho úlohou je vykonať ich čo najrýchlejšie a najpresnejšie pomocou motorov s prihliadnutím na: vietor, nerovnomerné rozloženie hmotnosti kvadrokoptéry, nerovnomerné opotrebovanie motorov, zotrvačnosť kvadrokoptéry a pod. Riadiaca jednotka letu tak musí priebežne riešiť problém, akú rýchlosť otáčania použiť na každý motor, berúc do úvahy aktuálnu hodnotu uhla náklonu a požadovanú. Priebežne je, samozrejme, silné slovo. Všetko závisí od výpočtových možností konkrétneho hardvéru. Na Adruine je celkom možné vtesnať jednu iteráciu cyklu spracovania a kontroly do 10 milisekúnd. To znamená, že raz za 10 milisekúnd sa načítajú uhly kvadrokoptéry a na základe nich sa budú posielať riadiace signály do motorov. Týchto 10 milisekúnd sa nazýva regulačné obdobie. Je jasné, že čím je menší, tým častejšie a presnejšie dochádza k regulácii.

Hladina plynu prúdi z prijímača do regulátora. Označme to. Dovoľte mi pripomenúť, že toto je aritmetický priemer medzi rýchlosťami otáčania všetkých motorov, vyjadrený ako percento maximálnej rýchlosti otáčania. Ak a sú rýchlosti otáčania ľavého a pravého motora, potom:




kde je odozva kvadrokoptéry (sila), ktorá vytvára krútiaci moment vďaka tomu, že ľavý motor sa otáča rýchlejšie ako plyn a pravý motor sa točí rovnako pomalšie. môže nadobudnúť aj záporné hodnoty, potom sa pravý motor bude točiť rýchlejšie. Ak sa naučíme vypočítať túto hodnotu pri každej iterácii cyklu spracovania, potom budeme môcť kvadrokoptéru ovládať. Je jasné, že minimálne by to malo závisieť od aktuálneho uhla natočenia () a požadovaného uhla natočenia (), ktorý pochádza z ovládacieho panela.

Predstavme si situáciu: prijme sa príkaz „udržať horizont“ ( = 0) a kvadrokoptéra má rolu doľava:




- rozdiel (chyba) medzi a , ktorú sa regulátor snaží minimalizovať.

Čím väčší je rozdiel medzi požadovaným uhlom natočenia a aktuálnym, tým silnejšia by mala byť reakcia, tým rýchlejšie by sa mal ľavý motor otáčať oproti pravému. Ak to napíšeme pomocou nášho zápisu:



Tu P je koeficient proporcionality. Čím je väčšia, tým silnejšia bude reakcia, tým ostrejšie bude kvadrokoptéra reagovať na odchýlky od požadovaného uhla natočenia. Tento intuitívny a jednoduchý vzorec popisuje prácu proporcionálny regulátor. Pointa je jednoduchá: čím viac sa kvadrokoptéra odchyľuje od požadovanej polohy, tým viac sa ju musíte snažiť vrátiť. Bohužiaľ, tento vzorec bude musieť byť komplikovaný. Hlavným dôvodom je prestrelenie.

V priebehu niekoľkých desiatok milisekúnd (niekoľko iterácií cyklu spracovania) sa vplyvom proporcionálneho regulátora kvadrokoptéra vráti do požadovanej (v tomto prípade horizontálnej) polohy. Po celý ten čas budú mať chyby a úsilie rovnaké znamenie, hoci budú čoraz menšie. Po dosiahnutí určitej rýchlosti otáčania (uhlovej rýchlosti) sa kvadrokoptéra jednoducho prevráti na druhú stranu, pretože ju nikto nezastaví v požadovanej polohe. Je to ako pružina, ktorá sa chce vždy vrátiť do svojej pôvodnej polohy, ale ak ju potiahnete späť a uvoľníte, bude oscilovať, až kým neprevezme trenie. Kvadrokoptéru samozrejme zasiahne aj trenie, ale prax ukazuje, že to nestačí.

Z tohto dôvodu je potrebné k proporcionálnemu regulátoru pridať ešte jeden člen, ktorý spomalí rotáciu kvadrokoptéry a zabráni pretáčaniu (pretáčaniu v opačnom smere) – akási imitácia trenia vo viskóznom médiu: čím rýchlejšie je kvadrokoptéra sa otáča, tým viac sa musíte snažiť zastaviť, samozrejme, v rozumných medziach. Rýchlosť otáčania (miera zmeny chyby) označujeme ako , potom:



kde D je nastaviteľný koeficient: čím je väčší, tým silnejšia je brzdná sila. Zo školského kurzu fyziky sa vynárajú nejasné spomienky, že rýchlosť zmeny akejkoľvek veličiny je deriváciou tejto veličiny vzhľadom na čas:

.

A teraz sa proporcionálny regulátor zmení na proporcionálno-diferenciálny (proporcionálny člen a diferenciál):

.

Chybu je ľahké vypočítať, pretože pri každej iterácii vieme a ; P a D sú parametre, ktoré je možné nakonfigurovať pred spustením. Na výpočet derivácie (rýchlosti zmeny) je potrebné uložiť predchádzajúcu hodnotu, poznať aktuálnu hodnotu a poznať čas, ktorý uplynul medzi meraniami (kontrolná perióda). A je to tu - fyzika v šiestej triede (rýchlosť = vzdialenosť / čas):

.

- regulačné obdobie; - hodnota chyby z predchádzajúcej iterácie regulačného cyklu. Mimochodom, tento vzorec je najjednoduchší spôsob numerickej diferenciácie a tu sa nám celkom hodí.

Teraz máme proporcionálny diferenciálny regulátor v plochej bikoptére, ale je tu ešte jeden problém. Ľavý okraj nech váži o niečo viac ako pravý, alebo, čo je to isté, ľavý motor funguje o niečo horšie ako pravý. Kvadrokoptéra je mierne naklonená doľava a neotáča sa späť: diferenciálny člen je nulový a proporčný člen, hoci nadobúda kladnú hodnotu, nestačí na vrátenie kvadrokoptéry do vodorovnej polohy, pretože ľavý okraj mierne váži viac ako pravica. V dôsledku toho bude kvadrokoptéra ťahať vždy doľava.

Na sledovanie takýchto odchýlok a ich nápravu je potrebný mechanizmus. Charakteristickým znakom takýchto chýb je, že sa časom samy opravia. Integrálny termín prichádza na záchranu. Ukladá súčet všetkých chýb vo všetkých iteráciách cyklu spracovania. Ako to pomôže? Ak proporcionálny člen nestačí na opravu malej chyby, ale stále existuje, postupne, v priebehu času, integrálny člen naberá na sile, zvyšuje odozvu a kvadrokoptéra zaujme požadovaný uhol natočenia.

Je tu nuansa. Predpokladajme, že je to 1 stupeň, riadiaci cyklus je 0,1 s. Potom za jednu sekundu nadobudne súčet chýb hodnotu 10 stupňov. A ak je cyklus spracovania 0,01 s, potom množstvo získa až 100 stupňov. Aby za rovnaký čas integrálny člen nadobudol rovnakú hodnotu pre rôzne obdobia regulácie, vynásobíme výslednú sumu samotným obdobím regulácie. Je ľahké vypočítať, že v oboch prípadoch sa z príkladu získa súčet 1 stupňa. Tu je - integrálny člen (zatiaľ bez nastaviteľného koeficientu):

.

Tento vzorec nie je nič iné ako číselný integrál funkcie v čase v intervale od nuly po aktuálny moment. Preto sa tento pojem nazýva integrál:

,

kde T je aktuálny časový okamih.
Je čas zapísať si konečný vzorec pre proporcionálne integrálno-derivačný regulátor:

,

kde je jeden z konfigurovateľných parametrov, z ktorých sú teraz tri: . Tento vzorec je vhodné použiť z programového kódu, ale tu je vzorec, ktorý je uvedený v učebniciach:

.

Existuje niekoľko jeho variácií, napríklad môžete obmedziť modul integrálneho člena tak, aby neprekročil určitú prípustnú hranicu (urobíme to).

Prax

Teraz je čas precvičiť si výber koeficientov. Čitateľom je ponúknutá JavaScriptová stránka s virtuálnou kvadrokoptérou, ktorú už videli na obrázkoch: výber parametrov PID regulátora pre kvadrokoptéru(JSFiddle). Pri prvom spustení je okamžite viditeľný prekmit - oscilácie okolo požadovanej polohy. Keď sa oscilácie zastavia, môžete pozorovať efekt, že proporcionálny koeficient sa nedokáže vyrovnať s chybou v dôsledku „asymetrickej“ kvadrokoptéry (nastavené začiarknutím políčka „Asymetria“). Parametre dostupné na konfiguráciu sú P, I, D. Teraz už viete, čo s nimi robiť. „Posúvanie“ pod kvadrokoptérou je možné ovládať podľa požadovanej hodnoty rolovania. „Interval (ms):“ - interval regulácie. Jeho zníženie je podvádzanie, ale vidieť, ako to ovplyvňuje kvalitu stabilizácie, je veľmi užitočné.

Pre milovníkov „čistej“ matematiky môžeme ponúknuť konfigurovať abstraktný regulátor PID

Zadané parametre sa nepoužijú automaticky: musíte kliknúť na „Použiť“. Pár malých tipov: ak sa vám zdá, že kvadrokoptéra je príliš pomalá na to, aby reagovala na ovládanie, môžete zvýšiť P, ale príliš veľká hodnota P môže viesť k prestreleniu. Parameter D pomôže vyrovnať sa s prekmitom, ale príliš veľké hodnoty povedú k častým osciláciám alebo opäť k prekmitaniu. Parameter I je zvyčajne 10 - 100 krát menší ako parameter P, pretože jeho sila spočíva v akumulácii v čase, nie v rýchlej reakcii.

Manuálne ladenie parametrov PID vyžaduje prax. Na ich výpočet existujú analytické metódy, ktoré si však vyžadujú dobrú prípravu a presnú znalosť mnohých parametrov konkrétneho prispôsobovaného systému. Ako stredná cesta medzi manuálnym výberom a analytickým výpočtom existuje široká škála empirických metód navrhnutých rôznymi výskumníkmi.

V našej 2D kvadrokoptére sa mení iba jeden uhol – uhol natočenia. Pri ladení 3D kvadrokoptéry budú potrebné tri nezávislé PID regulátory pre každý z uhlov a ovládanie konkrétneho motora bude súčtom úsilia naprieč všetkými regulátormi.

Záver prvej časti

V tomto článku sme sa zoznámili so základnými pojmami: kvadrokoptéra a princíp letu, sklon, nakláňanie, vybočenie, plyn, plynový pedál, stabilizácia letového režimu, letový ovládač, gyroskop, akcelerometer, regulátor rýchlosti, PWM, kalibrácia ovládača, kalibrácia rádia, palubný prijímač, rozhranie pre nastavenie letového ovládača, stavy zapnuté/vypnuté, autodisarm.

Potom sme znovu vynašli vzorec PID regulátor trochu dotýkať numerická diferenciácia a integrácia a vyskúšali si ťažký spôsob konfigurácie parametrov P, ja, D na virtuálna kvadrokoptéra .

Teraz, ak ste zbehlí v programovaní svetelných mečov, môžete začať svoj vlastný stabilizačný program kvadrokoptéry, alebo ešte lepšie, pripojiť sa k existujúcim open source projektom s novými nápadmi. No o týždeň-dva budem pokračovať v príbehu, ako sa to celé naprogramovalo, otestovalo, zrútilo, porezalo mi prsty a úplne odletelo neznámym smerom.

Na záver tejto časti jednoducho musím spomenúť človeka, ktorý mi pomohol pri výbere komponentov a nastavení najkomplexnejšej (prvej!) kvadrokoptéry na firmvéri MegapirateNG a trpezlivo odpovedal na stovky otázok o týchto úplne základných pojmoch: SovGVD, ďakujem ! 🙂

Ako odmenu pre tých, ktorí dokázali premárniť celý tento hárok, zverejňujem sľúbené malé video o tom, ako naša kvadrokoptéra s našimi „vynájdenými“ PID ovládačmi lieta na našom programe pre Arduino Mega 2560:



Samozrejme, že mu chýba GPS, ako v komerčných a sériovo vyrábaných produktoch, trochu mu chýba stabilita, ale je NAŠA a poznáme ho zvnútra aj zvonku do posledného faktora integrálneho koeficientu! A je naozaj skvelé, že takéto technológie máme dnes k dispozícii.

Lietanie na kvadrokoptére je zábavná a zaujímavá činnosť. Jediná vec, ktorá by mohla byť zaujímavejšia, je vytvorenie vlastného riadiaceho systému pre takúto hračku na základe nejakej populárnej platformy, napríklad Arduino. To urobil nadšenec pod prezývkou Dzl. Prvá vec, ktorú urobil, bola demontáž diaľkového ovládača. diaľkové ovládanie aby ste videli, aký rádiový systém používa.



Vo vnútri sa podľa očakávania nachádzalo pár lacných dosky plošných spojov s niekoľkými komponentmi.



Rádiovú komunikáciu zabezpečoval malý diskrétny rádiový modul. Po dodatočnom rozbore a hľadaní na internete sa ukázalo, že modul je založený na čipe vysielača BK2421 pracujúcom v pásme 2,4 GHz. Dnes je na tomto module v princípe založená väčšina lacných rádiom riadených hračiek.



Vďaka osciloskopu a dokumentácii k čipu bolo celkom jednoduché nájsť piny, cez ktoré prebiehala SPI komunikácia medzi modulom a zvyškom diaľkového ovládača.



Vďaka „odpočúvaniu“ pomocou Arduino UNO bolo jasné poradie inicializácie a komunikačný režim. existuje inicializačný príkaz.


Bez toho, aby sme zachádzali do podrobností o nízkoúrovňovej komunikácii, keď zapnete diaľkové ovládanie a kvadrokoptéru, stane sa toto:


1. Diaľkové ovládanie odošle svoju jedinečnú sieťovú adresu alebo ID


2. Kvadrokoptéra prijme tento prenos, potvrdí ho a začne počúvať kanál s údajmi z tohto ID


3. Po potvrdení začne diaľkové ovládanie vysielať dátové pakety každých 20 ms


Môžete ovládať niekoľko kvadrokoptér súčasne tak, že im pridelíte rôzne adresy. Prenos ID prebieha na jednom pevnom kanáli a údaje sa prenášajú na jednom z 12 kanálov. Kvadrokoptéry automaticky prehľadávajú rádiové kanály, kým nenájdu údaje.


Dáta sa prenášajú v 8-bajtovom pakete v nasledujúcom formáte:


Bajt 0 = škrtiaca klapka (plyn) 0-255
Bajt 1 = Yaw (vybočenie) 0-255
Bajt 2 =Yaw_trim (Yaw trim) 0-128
Bajt 3 = výška tónu 0-255
Bajt 4 = Hod 0-255
Bajt 5 = Pitch_trim 0-128
Bajt 6 = Roll_trim (Roll trim) 0-128
Bajt 7 = let/beh 0=let, 16=beh


Potom to vzniklo Základná stanica, ktoré by mali komunikovať kvadrokoptéry. Použité moduly boli RFM-70 obsahujúce rovnaký čip BK2421. Treba poznamenať, že kolíky BK2421 sú tolerantné voči 5 V, takže nie je potrebné inštalovať ďalšie odpory pre 3,3 V.



Na pripojenie jednej alebo viacerých kvadrokoptér k Arduinu bola napísaná špeciálna knižnica. Táto knižnica by mala fungovať s akýmikoľvek doskami Arduino založenými na čipoch ATMEGA88 - ATMEGA328P. A na konci videa: