Arduino lennonohjain. Kuinka tehdä nelikopteri arduinolla. Arduinon kytkentäkaavio

Nelikopterilla lentäminen on hauskaa ja mielenkiintoista toimintaa. Ainoa asia, joka voi olla mielenkiintoisempaa, on luoda tällaiselle lelulle oma ohjausjärjestelmä, joka perustuu johonkin suosittuun alustaan, esimerkiksi Arduinoon. Näin teki Dzl-lempinimellä ollut harrastaja. Ensimmäinen asia, jonka hän teki, oli purkaa kaukosäädin osiin nähdäkseen millaista radiojärjestelmää se käyttää.



Sisällä oli odotetusti pari halpaa piirilevyä, joissa oli vähän komponentteja.



Radioviestintä toteutettiin pienellä erillisellä radiomoduulilla. Lisäanalyysin ja Internetistä etsimisen jälkeen kävi ilmi, että moduuli perustuu BK2421-lähetinsiruun, joka toimii 2,4 GHz:n kaistalla. Nykyään periaatteessa useimmat halvat radio-ohjattavat lelut perustuvat tähän moduuliin.



Oskilloskoopin ja sirun dokumentaation ansiosta oli melko helppoa löytää nastat, joiden kautta SPI-kommunikaatio tapahtui moduulin ja muun kaukosäätimen välillä.



Arduino UNO:n "kuuntelun" ansiosta alustusjärjestys ja viestintätila tulivat selväksi. on alustusjärjestys.


Menemättä yksityiskohtiin matalan tason viestinnästä, kun käynnistät kaukosäätimen ja nelikopterin, tapahtuu seuraavaa:


1. Kaukosäädin lähettää ainutlaatuisen verkko-osoitteensa tai tunnuksensa


2. Nelikopteri vastaanottaa tämän lähetyksen, vahvistaa sen ja alkaa kuunnella kanavaa tämän tunnuksen tiedoilla


3. Vahvistuksen jälkeen kauko-ohjain alkaa lähettää datapaketteja 20 ms:n välein


Voit ohjata useita nelikoptereita samanaikaisesti määrittämällä niille eri osoitteet. ID-siirto tapahtuu yhdellä kiinteällä kanavalla ja data välitetään yhdellä 12 kanavasta. Nelikopterit etsivät automaattisesti radiokanavia, kunnes löytävät dataa.


Tiedot siirretään 8-tavuisena pakettina seuraavassa muodossa:


Tavu 0 = kaasu (kaasu) 0-255
Tavu 1 = Yaw (yaw) 0-255
Tavu 2 =Käännöstrimmi (Käännöstrimmi) 0-128
Tavu 3 = äänenkorkeus 0-255
Tavu 4 = Roll 0-255
Tavu 5 = Pitch_trim 0-128
Tavu 6 = Roll_trim (rullan trimmaus) 0-128
Tavu 7 = lennä/juoksu 0 = lennä, 16 = juokse


Sitten luotiin tukiasema, jonka pitäisi olla yhteydessä nelikopterien kanssa. Käytetyt moduulit olivat RFM-70, jotka sisälsivät saman BK2421-sirun. On huomattava, että BK2421-nastat kestävät 5 V, joten lisävastuksia 3,3 V:lle ei tarvitse asentaa.



Erityinen kirjasto kirjoitettiin yhden tai useamman nelikopterin yhdistämiseksi Arduinoon. Tämän kirjaston pitäisi toimia kaikkien Arduino-levyjen kanssa, jotka perustuvat ATMEGA88 - ATMEGA328P-siruihin. Ja videon lopussa:


Hei Habron asukkaat!
Tässä artikkelisarjassa avaamme nelikopterin kantta hieman enemmän kuin harrastus vaatii ja kirjoitamme, konfiguroimme ja lanseeraamme myös oman ohjelman lennonohjaimelle, joka tulee olemaan tavallinen Arduino Mega 2560 -kortti.



Meillä on edessä:

  1. Peruskäsitteet (aloitteleville kopterilentäjille).
  2. PID-ohjaimet interaktiivisella web-esittelyllä virtuaalisen nelikopterin toiminnasta.
  3. Varsinainen ohjelma Arduinolle ja konfigurointiohjelma Qt:lle.
  4. Nelikopterin vaaralliset testit köydellä. Ensimmäiset lennot.
  5. Kolari ja tappio kentällä. Automaattinen haku ilmasta Qt:n ja OpenCV:n avulla.
  6. Viimeiset onnistuneet testit. Yhteenveto. Minne mennä?


Materiaali on tilava, mutta yritän sovittaa sen 2-3 artikkeliin.
Tänään odotamme: spoilerin videolla siitä, kuinka nelikopterimme lensi; peruskonseptit; PID-säätimet ja niiden kertoimien valinnan käytäntö.

Mitä varten tämä kaikki on?

Akateeminen kiinnostus, joka muuten ei koske vain minua (,). Ja tietysti sielulle. Minulla oli hauskaa työskennellessään ja tunsin todellista, sanoinkuvaamatonta onnea, kun "IT" lensi ohjelmani kanssa :)

Kenelle?

Tämä materiaali saattaa kiinnostaa myös ihmisiä, jotka ovat kaukana tai jotka vain suunnittelevat osallistuvansa moniroottorijärjestelmiin. Puhutaan nyt nelikopterin pääkomponenttien tarkoituksesta, kuinka ne ovat vuorovaikutuksessa keskenään, lennon peruskäsitteistä ja periaatteista. Tietenkin kaikki tarvitsemamme tieto löytyy Internetistä, mutta meitä ei voi pakottaa etsimään sitä laajasta Internetistä.

Peruskäsitteiden ymmärrystäsi tinkimättä voit vapaasti ohittaa kaikki tietämäsi seuraavaan tuntemattomaan termiin, korostettu lihavoidulla, tai käsittämättömään kuvaan.

EI #1!

Älä aloita oman ohjelman kirjoittamista lennonohjaimelle ennen kuin kokeilet valmiita ratkaisuja, joita on nyt melko paljon (Ardupilot, MegapirateNG, MiltiWii, AeroQuad jne.). Ensinnäkin se on vaarallista! Nelikopterin ohjaaminen ilman GPS:ää ja barometria vaatii harjoittelua, ja vielä enemmän silloin, kun se häipyy, kääntyy ympäri tai ei lennä täsmälleen missä sen pitäisi - ja tämä on melkein väistämätöntä ensimmäisissä testeissä. Toiseksi, sinun on monta kertaa helpompi ohjelmoida ymmärtämällä, mitä ohjelmoida ja miten sen pitäisi lopulta toimia. Usko minua: lentomatematiikka on vain pieni osa ohjelmakoodia.

EI #2!

Älä ryhdy kirjoittamaan omaa ohjelmaa lennonjohtajalle, jos et ole akateeminen kiinnostuksen kohteena ja tarvitset vain sitä, mitä valmiilla ratkaisuilla on jo pitkään pystytty tekemään (lentää, valokuvata, kuvata videoita, lentää eteenpäin) tehtävä jne.) Kun kirjoitat kaiken itse, se kestää kauan, vaikka et olisikaan yksin.

Peruskonseptit


Nelikopterit ovat erilaisia, mutta niitä kaikkia yhdistää neljä pääroottoria:

Näennäisestä symmetriasta huolimatta ohjaajan on erittäin tärkeää erottaa, missä nelikopterin etuosa on (näkyy nuolella). Tässä, kuten radio-ohjatuissa automalleissa: "eteenpäin"-komentoa annettaessa nelikopteri ei lennä minne lentäjä katsoo, vaan minne nelikopterin kuvitteellinen nenä osoittaa. Tämä on täynnä vaaraa: aloittelijan voi olla vaikea palauttaa itselleen tuulen pyytämä, jotenkin sivuttain käännetty laite (emme tietenkään puhu ensimmäisen persoonan kamerassa lentämisestä ja "älykkäästä" ” lentotilat kompassin ja GPS:n avulla.) Ratkaisu Tähän ongelmaan voidaan osittain auttaa eriväriset eturuuvit tai palkit, jonkinlainen pallo edessä tai eriväriset LEDit. Mutta kaikki tämä osoittautuu hyödyttömäksi, kun pepelatit muuttuvat nopeasti horisontin yläpuolella olevaksi pisteeksi.

Lennämme "X":n muotoisella nelikopterin rungolla, koska pidän sen ulkonäöstä paremmin. Jokaisella mallilla on omat etunsa ja tarkoituksensa. Nelikopterien lisäksi on muitakin multikoptereita. Vaikka et laskekaan eksoottisia vaihtoehtoja, niitä on silti kokonainen joukko!



Selvitetään, kuinka nelikopterimme on rakennettu sisällä ja mitä ohjelmoitavamme lennonohjaimen pitäisi tehdä.




Kulmat pitch, roll ja yaw (pitch, roll, yaw)- kulmat, joilla on tapana määrittää ja asettaa nelikopterin suunta avaruudessa.


Joskus sana "kulma" jätetään pois ja he sanovat yksinkertaisesti: pitch, roll, yaw. Mutta Wikipedian mukaan tämä ei ole täysin tarkkaa. Nelikopterin lento haluttuun suuntaan saavutetaan näitä kolmea kulmaa muuttamalla. Esimerkiksi lentääkseen eteenpäin nelikopterin täytyy kallistua, koska takamoottorit pyörivät hieman voimakkaammin kuin etumoottorit:

Kaasu nelikopteri- kaikkien moottoreiden pyörimisnopeuksien aritmeettinen keskiarvo. Mitä enemmän kaasua, sitä suurempi moottoreiden kokonaistyöntövoima, sitä enemmän ne vetävät nelikopteria ylös(ÄLÄ KÄYTÄ ETEENPÄIN! "Tossut lattialla" tarkoittaa tässä nopeinta nousua). Yleensä mitataan prosentteina: 0% - moottorit pysähtyvät, 100% - pyörivät maksiminopeudella. Kaasu leijuu- vähimmäiskaasutaso, joka tarvitaan, jotta nelikopteri ei menetä korkeutta.

Kaasu, nousu, kallistus, kiertosuunta - jos voit hallita näitä neljää parametria, voit ohjata nelikopteria. Niitä kutsutaan joskus myös ohjauskanaviksi. Jos ostit kaksikanavaisen kaukosäätimen, et voi ohjata nelikopteria. Kolmikanavainen sopii paremmin pienille helikoptereille: voi lentää ilman kallistuksen ohjausta, mutta se ei ole kätevää nelikopterissa. Jos haluat vaihtaa lentotilaa, sinun on hankittava viisikanavainen kaukosäädin. Jos haluat ohjata kameran kallistusta ja panorointia aluksella, on kaksi kanavaa lisää, vaikka ammattilaiset käyttävät tähän erillistä kaukosäädintä.

Lentotiloja on monia. Käytössä on GPS, barometri ja etäisyysmittari. Mutta haluamme toteuttaa perustilan - stabilointitilan ( puukottaa, vakauttaa, lentää "tyngässä"), jossa nelikopteri säilyttää sille kaukosäätimestä annetut kulmat ulkoisista tekijöistä riippumatta. Tässä tilassa, tuulen puuttuessa, nelikopteri voi roikkua melkein paikallaan. Lentäjä joutuu kompensoimaan tuulen.

Ruuvien pyörimissuuntaa ei valita sattumanvaraisesti. Jos kaikki moottorit pyöriisivät yhteen suuntaan, nelikopteri pyöriisi vastakkaiseen suuntaan syntyneiden vääntömomenttien takia. Siksi yksi vastakkainen moottoripari pyörii aina yhteen suuntaan ja toinen pari aina toiseen suuntaan. Pyörimismomenttien esiintymisen vaikutusta käytetään muuttamaan kääntökulmaa: yksi moottoripari alkaa pyöriä hieman nopeammin kuin toinen, ja nyt nelikopteri kääntyy hitaasti meitä kohti (mikä kauhea):



  • LFW - vasen etu myötäpäivään (vasen etu, myötäpäivään kierto)
  • RFC - oikea etupyörä vastapäivään (oikea etu, vastapäivään kierto)
  • LBC - kierto vasemmalle taaksepäin vastapäivään (vasen taaksepäin, vastapäivään kierto)
  • RBW - oikea taaksepäin kierto myötäpäivään (oikea takana, myötäpäivään kierto)


Säätelee moottoreiden pyörimisnopeutta lennonohjain (lennonjohtaja, aivot). Yleensä tämä on pieni kortti tai laatikko, jossa on monia tuloja ja lähtöjä. On olemassa valtava määrä erilaisia ​​ohjaimia, joilla on erilaiset ominaisuudet, erilaiset laiteohjelmistot ja erilaiset tehtävät. Tässä vain muutamia:




Lennonjohtajan yleistehtävänä on suorittaa useita kymmeniä kertoja sekunnissa ohjausjakso, joka sisältää: anturin lukemien lukemisen, ohjauskanavien lukemisen, tietojen käsittelyn ja ohjaussignaalien antamisen moottoreille ohjaajan käskyjen suorittamiseksi. Tätä aiomme ohjelmoida.

On olemassa monia erilaisia ​​​​antureita, joita voidaan käyttää. Käytämme niitä, joista on jo tullut lähes pakollisia kaikissa nelikoptereissa kolmiakselinen gyroskooppi ja kolmiakselinen kiihtyvyysanturi. Kiihtyvyysanturi mittaa kiihtyvyyttä, gyroskooppi mittaa kulmanopeutta. Niiden ansiosta lennonohjain tietää nykyiset nousu-, kallistus- ja kiertokulmat. Nämä anturit voidaan integroida lennonohjaimeen tai ulkoisiin. Kolmen kulman laskeminen anturin lukemien perusteella on erillisen artikkelin aihe. Mutta meidän ei tarvitse tietää tätä täällä: MPU-6050 tekee kaiken puolestamme. Tämä on pieni levy, joka suorittaa tarvittavat laskelmat ja suodatuksen sisäisesti ja tuottaa lähes valmiita kulmia i2c-protokollalla. Meidän tarvitsee vain laskea ne, käsitellä ne muiden tietojen kanssa ja lähettää ohjaussignaaleja moottoreille.

Multikopterien moottorit kuluttavat suuria virtoja, joten lennonohjain ei ohjaa niitä suoraan, vaan erityisten laitteisto-ajureiden, ns. nopeussäätimet (ESC, säädin, eska). Nämä säätimet saavat virtaa pääakusta, ohjaussignaali vastaanotetaan ohjaimelta ja niiden lähdössä on kolme johdinta (A, B, C), jotka menevät suoraan moottoreihin (jokaisella moottorilla on oma säädin !)




Säätimen ja moottorin välisen tiedonsiirron "protokolla" ei ole meille yhtä tärkeä kuin lennonohjaimen ja säätimen välisen tiedonsiirron "protokolla", koska meidän on ohjattava säädintä ohjelmallisesti ohjaimesta. On olemassa säätimiä, joita ohjataan i2c:n kautta, mutta yleisimpiä ohjataan neliöaaltosignaalilla, jonka vähintään 0 volttia ja enintään 3-5 volttia (ns. PWM tai PWM, ja jotkut väittävät, että se on oikeampi - PPM. Tarkempia tietoja esimerkiksi).

"Protokolla" on vahva sana: komentaakseen moottorin pyörimään maksiminopeudella, ohjaimen on lähetettävä pulsseja, jotka kestävät 2 millisekuntia, ja niiden välissä on 10 - 20 millisekuntia kestävä looginen nolla. 1 millisekunnin pulssin kesto vastaa moottorin pysäyttämistä, 1,1 ms - 10 % maksiminopeudesta, 1,2 ms - 20 % jne. Käytännössä nollan kestolla ei ole merkitystä, vain itse pulssin kesto on tärkeä.

Kaikesta näennäisestä yksinkertaisuudesta huolimatta tässä on väijytys: lennonohjaimet ovat erilaisia ​​eri asetuksilla, säätimet ovat erilaisia, ja minimi (1 ms) ja maksimi (2 ms) eivät ole yleisiä. Useista tekijöistä riippuen 1-2 ms:n alue voi itse asiassa osoittautua 1,1 - 1,9 ms:ksi. Jotta sääntelijä ja valvoja puhuvat täysin samaa kieltä, on olemassa menettely säätimen kalibrointi. Tämän toimenpiteen aikana säätimien alueita muutetaan ja niistä tulee yhtä suuria kuin säätimen alue. Menettely on sisäänrakennettu kunkin säätimen ohjelmaan ja sisältää useita yksinkertaisia ​​vaiheita (vaiheet voivat vaihdella valmistajan mukaan - lue ohjeet!):

  • Katkaise säätimen virransyöttö.
  • Irrota potkuri moottorista.
  • Anna suurinta pyörimisnopeutta vastaava signaali säätimen tuloon.
  • Kytke virta säätimeen. Moottorin on pysyttävä liikkumattomana ilman ulkopuolista apua.
  • Anna ohjaimen tuloon signaali, joka vastaa minimipyörimisnopeutta.
  • Pysäytä 1-2 sekuntia, odota ominaista vinkua.
  • Katkaise säätimen virransyöttö.


Tämän jälkeen vastaavat intervallirajat syötetään säätimeen. Kun yritetään nousta kalibroimattomilla säätimillä, seuraukset voivat olla odottamattomia: nelikopterin äkillisestä nykimisestä lähimpään puuhun aina moottoreiden täydelliseen liikkumattomuuteen millä tahansa kaasuläpän arvolla.

PWM käyttää täsmälleen samaa periaatetta laivalla oleva vastaanotin. Tämä on pieni laite, joka vastaanottaa radio-ohjaussignaaleja maasta ja lähettää ne lennonjohtajalle. Useimmiten kunkin ohjauskanavan (kaasu, nousu, kallistus jne.) lennonohjaimella on oma tulonsa, johon PWM syötetään. Vuorovaikutuslogiikka on yksinkertainen: komento, esimerkiksi "70% kaasu", menee jatkuvasti maasta vastaanottimeen, jossa se muunnetaan PWM:ksi ja lähetetään lennonohjaimelle erillisen johdon kautta. Sama pitch, roll, yaw kanssa.

Koska vastaanottimella ja ohjaimella on oma ystävällinen PWM-suhde, ne on myös kalibroitava: vastaanottimilla varustetut kaukosäätimet ovat erilaisia ​​omilla toiminta-alueillaan. Ohjaimen on kyettävä mukautumaan. Menettely radiokalibrointi, toisin kuin säätimien kalibroinnissa, meidän on luotava se itse osana lento-ohjelmaa. Yleinen kalibrointisuunnitelma on seuraava:

  • Irrota potkurit moottoreista varmuuden vuoksi.
  • Laita ohjain jotenkin radiokalibrointitilaan.
  • Ohjain aloittaa radiokalibroinnin useiden kymmenien sekuntien ajan.
  • Siirrä kaikkia kaukosäätimen sauvoja säädetyn ajan kuluessa kaikkiin suuntiin, kunnes ne pysähtyvät.
  • Säädin tallentaa kaikkien ohjauskanavien maksimi- ja minimiarvot sisäiseen muistiin vuosisatojen ajan.

Joten: radiokalibroinnin aikana lennonohjain muistaa vastaanotinalueet kaikille ohjauskanaville; ESC-kalibroinnin aikana lennonohjaimen kantama syötetään kaikkiin ESC:ihin.

Lennonjohtajan ohjelman lisäksi tarvitaan vielä yksi ohjelma: lennonohjaimen asetusliittymä. Useimmiten se on PC-ohjelma, joka liitetään lennonohjaimeen USB:n kautta ja jonka avulla käyttäjä voi määrittää ja tarkistaa lento-ohjelman, esimerkiksi: suorittaa radiokalibroinnin, konfiguroida stabilointiparametreja, tarkistaa antureiden toiminnan, asettaa lentoreitin kartta, määrittää multikopterin käyttäytyminen signaalin katoamisen yhteydessä ja paljon muuta. Kirjoitamme asetusliittymämme C++- ja Qt-kielellä konsoliapuohjelman muodossa. Tässä se on, jos katsot tulevaisuuteen:




Kukaan ei ole suojassa onnettomuuksilta. Jopa pienten moottoreiden kymmenen tuuman muovipotkurit voivat jättää iholle verisiä mustelmia, jotka satuttaa vielä viikon (henkilökohtaisesti testattu). On helppo tehdä itsellesi uusi meikki ja kampaus, jos painat kaukosäätimen kaasusauvaa, kun kannat nelikopteria päällä. Siksi lennonjohtajan on tarjottava ainakin jonkin verran turvallisuutta: mekanismi aseistettu/aseista riisuttu. Nelikopterin "pois päältä" -tila tarkoittaa, että moottorit on sammutettu, eikä edes kaukosäätimen täyskaasukäskyllä ​​ole vaikutusta, vaikka virtaa syötetään. Nelikopterin "viritetty" tila tarkoittaa, että lennonjohtaja suorittaa kaukosäätimen komennot. Tässä tilassa nelikopterit nousevat, lentävät ja laskeutuvat. Nelikopteri käynnistyy ja sen pitäisi siirtyä välittömästi pois päältä, jos tarkkaavainen lentäjä käynnistää sen, kun kaukosäätimen kaasuvipu ei ole nollassa. Laittaakseen kopterin "asetettuun" tilaan, ohjaajan on tehtävä jokin ennalta sovittu ele kaukosäätimen sauvojen avulla. Usein tämä ele on pitää vasenta sauvaa oikeassa alakulmassa (kaasu = 0%, kierto = 100%) muutaman sekunnin ajan. Tämän jälkeen lennonjohtaja suorittaa ainakin minimaalisen itsetestin ja jos se läpäisee, " aseistaa itsensä"(valmis lentämään!) Toisella eleellä (kaasu = 0%, kiertosuunta = 0%) nelikopteri" tulee aseista pois". Toinen hyvä turvatoimi on automaattinen aseistariisunta, jos kaasu oli nollassa 2-3 sekuntia.

Tietoja moottoreista, akuista, säätimistä, potkureista



Stabilointimatematiikka, PID-säätimet (PID)


Jos päätät päästä monikoptereihin, joudut ennemmin tai myöhemmin käsittelemään PID-säätimen asettamisen, koska tätä matemaattista laitetta käytetään melkein kaikissa stabilointitehtävissä: nelikopterin kulmien vakauttaminen ilmassa, lentäminen ja asennon pitäminen GPS:n avulla, korkeuden pitäminen barometrin avulla, harjattomat mekanismit videokameran stabilointi lennon aikana (kameran gimbal).

Ostat kaksiakselisen kameran gimbalin, laitat sinne esimerkiksi GoPron, laitat sen päälle ja stabiloinnin sijaan saat kouristuksia, tärinää ja nykimistä, vaikka kaikki anturit on kalibroitu ja mekaaniset ongelmat poistuvat. Syynä ovat PID-säätimien väärät parametrit.

Kokoat multikopterin, kalibroit anturit, säätimet, radion, tarkistat kaiken, yrität nousta, ja se on niin tylsää ilmassa, että jopa kevyt tuuli kääntää sen ympäri. Tai päinvastoin: hän on niin terävä, että nousee yhtäkkiä lentoon ja tekee kolminkertaisen kuperkan ilman lupaa. Syy on edelleen sama: PID-säätimien parametrit.

Monille PID-säätimiä käyttäville laitteille löytyy asennusohjeet ja jopa useita käyttäjien itsensä antamien lukuisten videoohjeiden lisäksi. Mutta jotta olisi helpompi navigoida tässä monimuotoisuudessa, on hyödyllistä ymmärtää, kuinka nämä säätimet toimivat sisällä. Lisäksi aiomme kirjoittaa oman nelikopterin vakautusjärjestelmän! Ehdotan "keksimistä uudelleen" ja "sormilla" ymmärtääkseni PID-säätimen kaava. Niille, jotka pitävät kuivaa matemaattista kieltä, suosittelen Wikipediaa, koska... venäjäksi materiaalia ei vielä esitetä näin yksityiskohtaisesti.

Tarkastellaan nelikopteria kaksiulotteisessa tilassa, jossa sillä on vain yksi kulma - kallistuskulma ja kaksi moottoria: vasen ja oikea.




Lennonjohtaja vastaanottaa jatkuvasti maasta tulevia komentoja: "rulla 30 astetta", "rulla -10 astetta", "rulla 0 astetta (pidä horisonttia)"; sen tehtävänä on suorittaa ne mahdollisimman nopeasti ja tarkasti moottoreilla ottaen huomioon: tuuli, nelikopterin painon epätasainen jakautuminen, moottoreiden epätasainen kuluminen, nelikopterin hitaus jne. Siten lennonohjaimen on jatkuvasti ratkaistava ongelma, mitä pyörimisnopeutta kullekin moottorille tulee soveltaa ottaen huomioon kulman kulman nykyinen arvo ja vaadittu. Jatkuvasti on tietysti vahva sana. Kaikki riippuu tietyn laitteiston laskentaominaisuuksista. Adruinossa on täysin mahdollista sovittaa yksi käsittely- ja ohjaussyklin iteraatio 10 millisekuntiin. Tämä tarkoittaa, että 10 millisekunnin välein luetaan nelikopterin kulmat ja niiden perusteella lähetetään ohjaussignaaleja moottoreille. Näitä 10 millisekuntia kutsutaan säätelyaika. On selvää, että mitä pienempi se on, sitä useammin ja tarkemmin säätely tapahtuu.

Kaasun taso virtaa vastaanottimesta säätimeen. Merkitään se. Muistutan, että tämä on kaikkien moottoreiden pyörimisnopeuksien välinen aritmeettinen keskiarvo, joka ilmaistaan ​​prosentteina enimmäispyörimisnopeudesta. Jos ja ovat vasemman ja oikean moottorin pyörimisnopeudet, niin:




missä on nelikopterin vaste (voima), joka luo vääntömomentin johtuen siitä, että vasen moottori pyörii nopeammin kuin kaasu ja oikea moottori pyörii yhtä paljon hitaammin. voi myös ottaa negatiivisia arvoja, silloin oikea moottori pyörii nopeammin. Jos opimme laskemaan tämän arvon jokaisessa käsittelysyklin iteraatiossa, pystymme ohjaamaan nelikopteria. On selvää, että sen pitäisi riippua vähintään nykyisestä rullauskulmasta () ja halutusta rullauskulmasta (), joka tulee ohjauspaneelista.

Kuvitellaanpa tilanne: käsky "pidä horisontti" ( = 0) vastaanotetaan ja nelikopterilla on rullaus vasemmalle:




- ero (virhe) välillä ja, jonka ohjain pyrkii minimoimaan.

Mitä suurempi ero halutun pyörimiskulman ja nykyisen kulman välillä, sitä voimakkaampi reaktion tulisi olla, sitä nopeammin vasemman moottorin tulee pyöriä suhteessa oikeaan. Jos kirjoitamme tämän käyttämällä merkintäämme:



Tässä P on suhteellisuuskerroin. Mitä suurempi se on, sitä voimakkaampi reaktio on, sitä terävämmin nelikopteri reagoi poikkeamiin vaaditusta kallistuskulmasta. Tämä intuitiivinen ja yksinkertainen kaava kuvaa työtä suhteellinen säädin. Asia on yksinkertainen: mitä enemmän nelikopteri poikkeaa vaaditusta asennosta, sitä kovemmin sinun täytyy yrittää palauttaa se. Valitettavasti tämän kaavan on oltava monimutkainen. Suurin syy on ylitys.

Muutamassa kymmenessä millisekunnissa (useita iteraatioita prosessointisyklissä) nelikopteri palaa suhteellisuussäätimen vaikutuksesta vaadittuun (tässä tapauksessa vaakasuoraan) asentoon. Koko tämän ajan virheellä ja ponnistelulla on sama merkki, vaikka niiden suuruus pienenee. Saavutettuaan tietyn kääntönopeuden (kulmanopeuden), nelikopteri yksinkertaisesti kaatuu toiselle puolelle, koska kukaan ei pysäytä sitä haluttuun asentoon. Se on kuin jousi, joka haluaa aina palata alkuperäiseen asentoonsa, mutta jos vedät sen takaisin ja vapautat sen, se värähtelee, kunnes kitka ottaa vallan. Kitka vaikuttaa tietysti myös nelikopteriin, mutta käytäntö osoittaa, että se ei riitä.

Tästä syystä suhteelliseen ohjaimeen on lisättävä vielä yksi termi, joka hidastaa nelikopterin pyörimistä ja estää ylilyönnin (vierimisen vastakkaiseen suuntaan) - eräänlainen kitkan jäljitelmä viskoosissa väliaineessa: mitä nopeammin quadcopter kääntyy, sitä kovemmin sinun täytyy yrittää pysäyttää se, tietysti kohtuullisissa rajoissa. Merkitään pyörimisnopeus (virheen muutosnopeus) muodossa , sitten:



missä D on säädettävä kerroin: mitä suurempi se on, sitä suurempi pysäytysvoima. Koulun fysiikan kurssista ilmenee epämääräisiä muistoja, että minkä tahansa suuren muutosnopeus on tämän suuren johdannainen ajan suhteen:

.

Ja nyt suhteellinen säädin muuttuu suhteelliseksi differentiaaliksi (suhteellinen termi ja differentiaali):

.

Virhe on helppo laskea, koska jokaisessa iteraatiossa tiedämme ja ; P ja D ovat parametreja, jotka voidaan määrittää ennen käynnistämistä. Derivaatan (muutosnopeuden) laskemiseksi on tarpeen tallentaa edellinen arvo, tietää nykyinen arvo ja tietää mittausten välillä kulunut aika (kontrollijakso). Ja tässä se on - kuudennen luokan koulun fysiikka (nopeus = matka / aika):

.

- säätelyjakso; - virhearvo säätöjakson edellisestä iteraatiosta. Muuten, tämä kaava on yksinkertaisin tapa numeeriseen eriyttämiseen, ja se sopii meille varsin täällä.

Nyt meillä on suhteellinen differentiaalisäädin litteässä bikopterissa, mutta silti on vielä yksi ongelma. Anna vasemman reunan painaa hieman enemmän kuin oikea, tai mikä on sama, vasen moottori toimii hieman huonommin kuin oikea. Nelikopteri on hieman kallistettu vasemmalle eikä käänny takaisin: differentiaalitermi on nolla, ja suhteellinen termi, vaikka se saa positiivisen arvon, ei riitä palauttamaan nelikopteria vaaka-asentoon, koska vasen reuna painaa hieman enemmän kuin oikea. Tämän seurauksena nelikopteri vetää aina vasemmalle.

Tarvitaan mekanismi tällaisten poikkeamien seuraamiseksi ja korjaamiseksi. Tällaisille virheille on ominaista, että ne korjaantuvat ajan myötä. Integroitu termi tulee apuun. Se tallentaa kaikkien käsittelysilmukan iteraatioiden kaikkien virheiden summan. Miten tämä auttaa? Jos suhteellinen termi ei riitä pienen virheen korjaamiseen, mutta se on kuitenkin olemassa, integraalitermi vahvistuu vähitellen ajan myötä, mikä lisää vastetta ja nelikopteri ottaa vaaditun kallistuskulman.

Tässä on vivahde. Oletetaan, että se on 1 aste, ohjausjakso on 0,1 s. Sitten yhdessä sekunnissa virheiden summa on 10 astetta. Ja jos käsittelyjakso on 0,01 s, niin määrä kasvaa jopa 100 astetta. Jotta samaan aikaan integraalitermi saa saman arvon eri säätöjaksoille, kerrotaan saatu määrä itse säätöjaksolla. On helppo laskea, että molemmissa tapauksissa esimerkin määrä on 1 aste. Tässä se on - integraalitermi (ilman säädettävää kerrointa toistaiseksi):

.

Tämä kaava ei ole muuta kuin funktion numeerinen integraali ajan mittaan välillä nollasta nykyhetkeen. Siksi termiä kutsutaan integraaliksi:

,

missä T on nykyinen ajanhetki.
On aika kirjoittaa lopullinen kaava suhteellisuus-integraali-derivaatta-ohjaimelle:

,

jossa on yksi konfiguroitavista parametreista, joita on nyt kolme: . Tätä kaavaa on kätevä käyttää ohjelmakoodista, mutta tässä on kaava, joka annetaan oppikirjoissa:

.

Siitä on useita muunnelmia, esimerkiksi voit rajoittaa integraalitermin moduulia niin, että se ei ylitä tiettyä sallittua kynnystä (teemme tämän).

Harjoitella

No, nyt on aika harjoitella kertoimien valintaa. Lukijoille tarjotaan JavaScript-sivu virtuaalisella nelikopterilla, jonka he ovat jo nähneet kuvissa: PID-säätimen parametrien valinta nelikopterille(JSFiddle). Ensimmäisessä käynnistyksessä ylitys näkyy välittömästi - värähtelyjä halutun asennon ympärillä. Kun värähtelyt loppuvat, voit havaita vaikutuksen, että suhteellinen kerroin ei kestä "epäsymmetrisen" nelikopterin aiheuttamaa virhettä (asetettu "Epäsymmetria"-valintaruudulla). Konfigurointiin käytettävissä olevat parametrit ovat P, I, D. Nyt tiedät mitä niillä tehdä. Nelikopterin alla olevaa "rullaa" voidaan ohjata vaaditulla rullausarvolla. "Interval (ms):" - säätöväli. Sen vähentäminen on huijausta, mutta sen näkeminen, kuinka se vaikuttaa stabiloinnin laatuun, on erittäin hyödyllistä.

Voimme tarjota "puhtaan" matematiikan ystäville määrittää abstraktin PID-säätimen

Syötettyjä parametreja ei oteta käyttöön automaattisesti: sinun on napsautettava "Käytä". Pari pientä vinkkiä: jos sinusta tuntuu, että nelikopteri on liian hidas reagoimaan ohjaukseen, voit lisätä P:tä, mutta liian suuri P-arvo voi johtaa ylityksiin. Parametri D auttaa selviytymään ylityksestä, mutta liian suuret arvot johtavat toistuviin värähtelyihin tai taas ylityksiin. I-parametri on yleensä 10 - 100 kertaa pienempi kuin P-parametri, koska sen vahvuus on kerääntyminen ajan kuluessa, ei nopea reagointi.

PID-parametrien manuaalinen viritys vaatii harjoittelua. Niiden laskemiseen on olemassa analyyttisiä menetelmiä, mutta ne edellyttävät hyvää valmistelua ja tarkkaa tietoa räätälöitävän järjestelmän monista parametreista. Keskitienä manuaalisen valinnan ja analyyttisen laskennan välillä on lukuisia eri tutkijoiden ehdottamia empiirisiä menetelmiä.

2D-nelikopterissamme vain yksi kulma muuttuu - kallistuskulma. 3D-nelikopterin virittämisessä tarvitaan kolme erillistä PID-säädintä kutakin kulmaa kohti, ja tietyn moottorin ohjaus edustaa kaikkien säätimien ponnistelujen summaa.

Ensimmäisen osan johtopäätös

Tässä artikkelissa tutustuimme peruskäsitteisiin: nelikopteri ja lentoperiaate, pitch, roll, yaw, kaasu, leijuva kaasu, stabiloi lentotila, lennonohjain, gyroskooppi, kiihtyvyysanturi, nopeudensäädin, PWM, ohjaimen kalibrointi, radiokalibrointi, sisäinen vastaanotin, liitäntä lennonohjaimen asettamiseen, viritetyt/pois päältä -tilat, automaattinen sammutus.

Sen jälkeen keksimme kaavan uudelleen PID-säädin koskettaa vähän numeerinen eriyttäminen ja integrointi, ja kokenut kovan tavan määrittää parametrit P, minä, D päällä virtuaalinen nelikopteri .

Nyt, jos olet taitava valomiekkaohjelmoinnissa, voit aloittaa oman nelikopterin vakautusohjelman tai, mikä vielä parempaa, liittyä olemassa oleviin avoimen lähdekoodin projekteihin tuoreilla ideoilla. No, viikon tai kahden kuluttua jatkan tarinaa siitä, kuinka se kaikki ohjelmoitiin, testattiin, kaatui, leikkasi sormet ja lensi kokonaan pois tuntemattomaan suuntaan.

Tämän osan lopuksi minun on vain mainittava henkilö, joka auttoi minua komponenttien valinnassa ja monimutkaisimman (ensimmäisen!) nelikopterin asettamisessa MegapirateNG-laiteohjelmistoon ja vastasi kärsivällisesti satoihin kysymyksiin näistä peruskäsitteistä: SovGVD, kiitos ! 🙂

Palkintona niille, jotka pystyivät tuhlaamaan kaiken tämän arkin, julkaisen luvatun pienen videon siitä, kuinka "keksitetyillä" PID-säätimillämme varustettu nelikopterimme lentää Arduino Mega 2560 -ohjelmassamme:



Tietysti siitä puuttuu GPS, kuten kaupallisissa ja massatuotteissa, siitä puuttuu hieman vakautta, mutta se on MEIDÄN, ja me tunnemme sen sisältä ja ulkoa integraalikertoimen viimeistä tekijää myöten! Ja on todella hienoa, että tällaisia ​​tekniikoita on saatavillamme tänään.



Hei Habron asukkaat!
Tässä artikkelisarjassa avaamme nelikopterin kantta hieman enemmän kuin harrastus vaatii ja kirjoitamme, konfiguroimme ja lanseeraamme myös oman ohjelman lennonohjaimelle, joka tulee olemaan tavallinen Arduino Mega 2560 -kortti.

Meillä on edessä:

  1. Peruskäsitteet (aloitteleville kopterilentäjille).
  2. PID-ohjaimet interaktiivisella web-esittelyllä virtuaalisen nelikopterin toiminnasta.
  3. Varsinainen ohjelma Arduinolle ja konfigurointiohjelma Qt:lle.
  4. Nelikopterin vaaralliset testit köydellä. Ensimmäiset lennot.
  5. Kolari ja tappio kentällä. Automaattinen haku ilmasta Qt:n ja OpenCV:n avulla.
  6. Viimeiset onnistuneet testit. Yhteenveto. Minne mennä?

Materiaali on tilava, mutta yritän sovittaa sen 2-3 artikkeliin.
Tänään odotamme: spoilerin videolla siitä, kuinka nelikopterimme lensi; peruskonseptit; PID-säätimet ja niiden kertoimien valinnan käytäntö.

Mitä varten tämä kaikki on?

Akateeminen kiinnostus, joka muuten ei koske vain minua (,). Ja tietysti sielulle. Minulla oli hauskaa työskennellessäni ja tunsin todellista, sanoinkuvaamatonta onnea, kun "IT" lensi ohjelmani kanssa :-)

Kenelle?

Tämä materiaali saattaa kiinnostaa myös ihmisiä, jotka ovat kaukana tai jotka vain suunnittelevat osallistuvansa moniroottorijärjestelmiin. Puhutaan nyt nelikopterin pääkomponenttien tarkoituksesta, kuinka ne ovat vuorovaikutuksessa keskenään, lennon peruskäsitteistä ja periaatteista. Tietenkin kaikki tarvitsemamme tieto löytyy Internetistä, mutta meitä ei voi pakottaa etsimään sitä laajasta Internetistä.

Peruskäsitteiden ymmärrystäsi tinkimättä voit vapaasti ohittaa kaikki tietämäsi seuraavaan tuntemattomaan termiin, korostettu lihavoidulla, tai käsittämättömään kuvaan.

EI #1!

Älä aloita oman ohjelman kirjoittamista lennonohjaimelle ennen kuin kokeilet valmiita ratkaisuja, joita on nyt melko paljon (Ardupilot, MegapirateNG, MiltiWii, AeroQuad jne.). Ensinnäkin se on vaarallista! Nelikopterin ohjaaminen ilman GPS:ää ja barometria vaatii harjoittelua, ja vielä enemmän silloin, kun se häipyy, kääntyy ympäri tai ei lennä täsmälleen missä sen pitäisi - ja tämä on melkein väistämätöntä ensimmäisissä testeissä. Toiseksi, sinun on monta kertaa helpompi ohjelmoida ymmärtämällä, mitä ohjelmoida ja miten sen pitäisi lopulta toimia. Usko minua: lentomatematiikka on vain pieni osa ohjelmakoodia.

EI #2!

Älä ryhdy kirjoittamaan omaa ohjelmaa lennonjohtajalle, jos et ole akateeminen kiinnostuksen kohteena ja tarvitset vain sitä, mitä valmiilla ratkaisuilla on jo pitkään pystytty tekemään (lentää, valokuvata, kuvata videoita, lentää eteenpäin) tehtävä jne.) Kun kirjoitat kaiken itse, se kestää kauan, vaikka et olisikaan yksin.

Peruskonseptit


Nelikopterit ovat erilaisia, mutta niitä kaikkia yhdistää neljä pääroottoria:
Näennäisestä symmetriasta huolimatta ohjaajan on erittäin tärkeää erottaa, missä nelikopterin etuosa on (näkyy nuolella). Tässä, kuten radio-ohjatuissa automalleissa: "eteenpäin"-komentoa annettaessa nelikopteri ei lennä minne lentäjä katsoo, vaan minne nelikopterin kuvitteellinen nenä osoittaa. Tämä on täynnä vaaraa: aloittelijan voi olla vaikea palauttaa itselleen tuulen pyytämä, jotenkin sivuttain käännetty laite (emme tietenkään puhu ensimmäisen persoonan kamerassa lentämisestä ja "älykkäästä" ” lentotilat kompassin ja GPS:n avulla.) Ratkaisu Tähän ongelmaan voidaan osittain auttaa eriväriset eturuuvit tai palkit, jonkinlainen pallo edessä tai eriväriset LEDit. Mutta kaikki tämä osoittautuu hyödyttömäksi, kun pepelatit muuttuvat nopeasti horisontin yläpuolella olevaksi pisteeksi.

Lennämme "X":n muotoisella nelikopterin rungolla, koska pidän sen ulkonäöstä paremmin. Jokaisella mallilla on omat etunsa ja tarkoituksensa. Nelikopterien lisäksi on muitakin multikoptereita. Vaikka et laskekaan eksoottisia vaihtoehtoja, niitä on silti kokonainen joukko!



Selvitetään, kuinka nelikopterimme on rakennettu sisällä ja mitä ohjelmoitavamme lennonohjaimen pitäisi tehdä.




Kulmat pitch, roll ja yaw (pitch, roll, yaw)- kulmat, joilla on tapana määrittää ja asettaa nelikopterin suunta avaruudessa.


Joskus sana "kulma" jätetään pois ja he sanovat yksinkertaisesti: pitch, roll, yaw. Mutta Wikipedian mukaan tämä ei ole täysin tarkkaa. Nelikopterin lento haluttuun suuntaan saavutetaan näitä kolmea kulmaa muuttamalla. Esimerkiksi lentääkseen eteenpäin nelikopterin täytyy kallistua, koska takamoottorit pyörivät hieman voimakkaammin kuin etumoottorit:

Kaasu nelikopteri- kaikkien moottoreiden pyörimisnopeuksien aritmeettinen keskiarvo. Mitä enemmän kaasua, sitä suurempi moottoreiden kokonaistyöntövoima, sitä enemmän ne vetävät nelikopteria ylös(ÄLÄ KÄYTÄ ETEENPÄIN! "Tossut lattialla" tarkoittaa tässä nopeinta nousua). Yleensä mitataan prosentteina: 0% - moottorit pysähtyvät, 100% - pyörivät maksiminopeudella. Kaasu leijuu- vähimmäiskaasutaso, joka tarvitaan, jotta nelikopteri ei menetä korkeutta.

Kaasu, nousu, kallistus, kiertosuunta - jos voit hallita näitä neljää parametria, voit ohjata nelikopteria. Niitä kutsutaan joskus myös ohjauskanaviksi. Jos ostit kaksikanavaisen kaukosäätimen, et voi ohjata nelikopteria. Kolmikanavainen sopii paremmin pienille helikoptereille: voi lentää ilman kallistuksen ohjausta, mutta se ei ole kätevää nelikopterissa. Jos haluat vaihtaa lentotilaa, sinun on hankittava viisikanavainen kaukosäädin. Jos haluat ohjata kameran kallistusta ja panorointia aluksella, on kaksi kanavaa lisää, vaikka ammattilaiset käyttävät tähän erillistä kaukosäädintä.

Lentotiloja on monia. Käytössä on GPS, barometri ja etäisyysmittari. Mutta haluamme toteuttaa perustilan - stabilointitilan ( puukottaa, vakauttaa, lentää "tyngässä"), jossa nelikopteri säilyttää sille kaukosäätimestä annetut kulmat ulkoisista tekijöistä riippumatta. Tässä tilassa, tuulen puuttuessa, nelikopteri voi roikkua melkein paikallaan. Lentäjä joutuu kompensoimaan tuulen.

Ruuvien pyörimissuuntaa ei valita sattumanvaraisesti. Jos kaikki moottorit pyöriisivät yhteen suuntaan, nelikopteri pyöriisi vastakkaiseen suuntaan syntyneiden vääntömomenttien takia. Siksi yksi vastakkainen moottoripari pyörii aina yhteen suuntaan ja toinen pari aina toiseen suuntaan. Pyörimismomenttien esiintymisen vaikutusta käytetään muuttamaan kääntökulmaa: yksi moottoripari alkaa pyöriä hieman nopeammin kuin toinen, ja nyt nelikopteri kääntyy hitaasti meitä kohti (mikä kauhea):



  • LFW - vasen etu myötäpäivään (vasen etu, myötäpäivään kierto)
  • RFC - oikea etupyörä vastapäivään (oikea etu, vastapäivään kierto)
  • LBC - kierto vasemmalle taaksepäin vastapäivään (vasen taaksepäin, vastapäivään kierto)
  • RBW - oikea taaksepäin kierto myötäpäivään (oikea takana, myötäpäivään kierto)

Säätelee moottoreiden pyörimisnopeutta lennonohjain (lennonjohtaja, aivot). Yleensä tämä on pieni kortti tai laatikko, jossa on monia tuloja ja lähtöjä. On olemassa valtava määrä erilaisia ​​ohjaimia, joilla on erilaiset ominaisuudet, erilaiset laiteohjelmistot ja erilaiset tehtävät. Tässä vain muutamia:




Lennonjohtajan yleistehtävänä on suorittaa useita kymmeniä kertoja sekunnissa ohjausjakso, joka sisältää: anturin lukemien lukemisen, ohjauskanavien lukemisen, tietojen käsittelyn ja ohjaussignaalien antamisen moottoreille ohjaajan käskyjen suorittamiseksi. Tätä aiomme ohjelmoida.

On olemassa monia erilaisia ​​​​antureita, joita voidaan käyttää. Käytämme niitä, joista on jo tullut lähes pakollisia kaikissa nelikoptereissa kolmiakselinen gyroskooppi ja kolmiakselinen kiihtyvyysanturi. Kiihtyvyysanturi mittaa kiihtyvyyttä, gyroskooppi mittaa kulmanopeutta. Niiden ansiosta lennonohjain tietää nykyiset nousu-, kallistus- ja kiertokulmat. Nämä anturit voidaan integroida lennonohjaimeen tai ulkoisiin. Kolmen kulman laskeminen anturin lukemien perusteella on erillisen artikkelin aihe. Mutta meidän ei tarvitse tietää tätä täällä: MPU-6050 tekee kaiken puolestamme. Tämä on pieni levy, joka suorittaa tarvittavat laskelmat ja suodatuksen sisäisesti ja tuottaa lähes valmiita kulmia i2c-protokollalla. Meidän tarvitsee vain laskea ne, käsitellä ne muiden tietojen kanssa ja lähettää ohjaussignaaleja moottoreille.

Multikopterien moottorit kuluttavat suuria virtoja, joten lennonohjain ei ohjaa niitä suoraan, vaan erityisten laitteisto-ajureiden, ns. nopeussäätimet (ESC, säädin, eska). Nämä säätimet saavat virtaa pääakusta, ohjaussignaali vastaanotetaan ohjaimelta ja niiden lähdössä on kolme johdinta (A, B, C), jotka menevät suoraan moottoreihin (jokaisella moottorilla on oma säädin !)




Säätimen ja moottorin välisen tiedonsiirron "protokolla" ei ole meille yhtä tärkeä kuin lennonohjaimen ja säätimen välisen tiedonsiirron "protokolla", koska meidän on ohjattava säädintä ohjelmallisesti ohjaimesta. On olemassa säätimiä, joita ohjataan i2c:n kautta, mutta yleisimpiä ohjataan neliöaaltosignaalilla, jonka vähintään 0 volttia ja enintään 3-5 volttia (ns. PWM tai PWM, ja jotkut väittävät, että se on oikeampi - PPM. Tarkempia tietoja esimerkiksi).

"Protokolla" on vahva sana: komentaakseen moottorin pyörimään maksiminopeudella, ohjaimen on lähetettävä pulsseja, jotka kestävät 2 millisekuntia, ja niiden välissä on 10 - 20 millisekuntia kestävä looginen nolla. 1 millisekunnin pulssin kesto vastaa moottorin pysäyttämistä, 1,1 ms - 10 % maksiminopeudesta, 1,2 ms - 20 % jne. Käytännössä nollan kestolla ei ole merkitystä, vain itse pulssin kesto on tärkeä.

Kaikesta näennäisestä yksinkertaisuudesta huolimatta tässä on väijytys: lennonohjaimet ovat erilaisia ​​eri asetuksilla, säätimet ovat erilaisia, ja minimi (1 ms) ja maksimi (2 ms) eivät ole yleisiä. Useista tekijöistä riippuen 1-2 ms:n alue voi itse asiassa osoittautua 1,1 - 1,9 ms:ksi. Jotta sääntelijä ja valvoja puhuvat täysin samaa kieltä, on olemassa menettely säätimen kalibrointi. Tämän toimenpiteen aikana säätimien alueita muutetaan ja niistä tulee yhtä suuria kuin säätimen alue. Menettely on sisäänrakennettu kunkin säätimen ohjelmaan ja sisältää useita yksinkertaisia ​​vaiheita (vaiheet voivat vaihdella valmistajan mukaan - lue ohjeet!):

  • Katkaise säätimen virransyöttö.
  • Irrota potkuri moottorista.
  • Anna suurinta pyörimisnopeutta vastaava signaali säätimen tuloon.
  • Kytke virta säätimeen. Moottorin on pysyttävä liikkumattomana ilman ulkopuolista apua.
  • Anna ohjaimen tuloon signaali, joka vastaa minimipyörimisnopeutta.
  • Pysäytä 1-2 sekuntia, odota ominaista vinkua.
  • Katkaise säätimen virransyöttö.

Tämän jälkeen vastaavat intervallirajat syötetään säätimeen. Kun yritetään nousta kalibroimattomilla säätimillä, seuraukset voivat olla odottamattomia: nelikopterin äkillisestä nykimisestä lähimpään puuhun aina moottoreiden täydelliseen liikkumattomuuteen millä tahansa kaasuläpän arvolla.

PWM käyttää täsmälleen samaa periaatetta laivalla oleva vastaanotin. Tämä on pieni laite, joka vastaanottaa radio-ohjaussignaaleja maasta ja lähettää ne lennonjohtajalle. Useimmiten kunkin ohjauskanavan (kaasu, nousu, kallistus jne.) lennonohjaimella on oma tulonsa, johon PWM syötetään. Vuorovaikutuslogiikka on yksinkertainen: komento, esimerkiksi "70% kaasu", menee jatkuvasti maasta vastaanottimeen, jossa se muunnetaan PWM:ksi ja lähetetään lennonohjaimelle erillisen johdon kautta. Sama pitch, roll, yaw kanssa.

Koska vastaanottimella ja ohjaimella on oma ystävällinen PWM-suhde, ne on myös kalibroitava: vastaanottimilla varustetut kaukosäätimet ovat erilaisia ​​omilla toiminta-alueillaan. Ohjaimen on kyettävä mukautumaan. Menettely radiokalibrointi, toisin kuin säätimien kalibroinnissa, meidän on luotava se itse osana lento-ohjelmaa. Yleinen kalibrointisuunnitelma on seuraava:

  • Irrota potkurit moottoreista varmuuden vuoksi.
  • Laita ohjain jotenkin radiokalibrointitilaan.
  • Ohjain aloittaa radiokalibroinnin useiden kymmenien sekuntien ajan.
  • Siirrä kaikkia kaukosäätimen sauvoja säädetyn ajan kuluessa kaikkiin suuntiin, kunnes ne pysähtyvät.
  • Säädin tallentaa kaikkien ohjauskanavien maksimi- ja minimiarvot sisäiseen muistiin vuosisatojen ajan.
Joten: radiokalibroinnin aikana lennonohjain muistaa vastaanotinalueet kaikille ohjauskanaville; ESC-kalibroinnin aikana lennonohjaimen kantama syötetään kaikkiin ESC:ihin.

Lennonjohtajan ohjelman lisäksi tarvitaan vielä yksi ohjelma: lennonohjaimen asetusliittymä. Useimmiten se on PC-ohjelma, joka liitetään lennonohjaimeen USB:n kautta ja jonka avulla käyttäjä voi määrittää ja tarkistaa lento-ohjelman, esimerkiksi: suorittaa radiokalibroinnin, konfiguroida stabilointiparametreja, tarkistaa antureiden toiminnan, asettaa lentoreitin kartta, määrittää multikopterin käyttäytyminen signaalin katoamisen yhteydessä ja paljon muuta. Kirjoitamme asetusliittymämme C++- ja Qt-kielellä konsoliapuohjelman muodossa. Tässä se on, jos katsot tulevaisuuteen:




Kukaan ei ole suojassa onnettomuuksilta. Jopa pienten moottoreiden kymmenen tuuman muovipotkurit voivat jättää iholle verisiä mustelmia, jotka satuttaa vielä viikon (henkilökohtaisesti testattu). On helppo tehdä itsellesi uusi meikki ja kampaus, jos painat kaukosäätimen kaasusauvaa, kun kannat nelikopteria päällä. Siksi lennonjohtajan on tarjottava ainakin jonkin verran turvallisuutta: mekanismi aseistettu/aseista riisuttu. Nelikopterin "pois päältä" -tila tarkoittaa, että moottorit on sammutettu, eikä edes kaukosäätimen täyskaasukäskyllä ​​ole vaikutusta, vaikka virtaa syötetään. Nelikopterin "viritetty" tila tarkoittaa, että lennonjohtaja suorittaa kaukosäätimen komennot. Tässä tilassa nelikopterit nousevat, lentävät ja laskeutuvat. Nelikopteri käynnistyy ja sen pitäisi siirtyä välittömästi pois päältä, jos tarkkaavainen lentäjä käynnistää sen, kun kaukosäätimen kaasuvipu ei ole nollassa. Laittaakseen kopterin "asetettuun" tilaan, ohjaajan on tehtävä jokin ennalta sovittu ele kaukosäätimen sauvojen avulla. Usein tämä ele on pitää vasenta sauvaa oikeassa alakulmassa (kaasu = 0%, kierto = 100%) muutaman sekunnin ajan. Tämän jälkeen lennonjohtaja suorittaa ainakin minimaalisen itsetestin ja jos se läpäisee, " aseistaa itsensä"(valmis lentämään!) Toisella eleellä (kaasu = 0%, kiertosuunta = 0 %) nelikopteri" tulee aseista pois"Toinen hyvä turvatoimi on automaattinen aseistariisunta, jos kaasu oli nollassa 2-3 sekuntia.

Tietoja moottoreista, akuista, säätimistä, potkureista

Monikopterin komponenttien valinta on koko artikkelisarjan aihe. Jos aiot tehdä ensimmäisen nelikopterisi, muotoile, mihin tarvitset sitä ja käytä kokeneiden neuvoja tai ota lista komponenteista, jotka joku muu on koonnut ja lennättää sillä onnistuneesti.

Yleisen ymmärtämisen vuoksi on kuitenkin hyödyllistä tietää pääkohdat.

Paristot


Moniroottoristen järjestelmien amatöörien ja ammattilaisten keskuudessa litiumpolymeeriakut ovat yleisimpiä koneen elektroniikan ja moottoreiden päävirtalähteinä. Ne erottuvat kapasiteetista, jännitteestä ja suurimmasta tehosta. Kapasiteetti mitataan tavalliseen tapaan ampeeritunteina tai milliampeeritunteina. Jännite mitataan akun ”kennojen” lukumääränä. Yksi "tölkki" on keskimäärin 3,7 volttia. Täyteen ladattu "tölkki" on 4,2 volttia. Yleisimmät akut ovat kolmesta kuuteen kennolla varustetut akut. Maksimivirta mitataan ampeereina ja on merkitty esimerkiksi seuraavasti: 25C. C on akun kapasiteetti, 25 on kerroin. Jos kapasiteetti on 5 ampeeria, tällainen akku voi toimittaa 25 * 5 = 125 ampeeria. Tietenkin on parempi ottaa nykyinen lähtöparametri varauksella, mutta periaatteessa mitä suurempi se on, sitä kalliimpi akku. Merkintäesimerkki: 25C 3S 4500mah.

Jokainen pankki on erillinen akku. Ne kaikki juotetaan sarjassa. Jotta kaikki pankit latautuisivat tasaisesti, jokaiseen pankkiin on mahdollista päästä erikseen tasapainotusliittimellä ja käytetään erityisiä latureita.

Moottorit, potkurit, säätimet


Harjattoman moottorin pääparametri on sen kv. Tämä on kierrosten lukumäärä minuutissa kullekin käytetylle jännitteelle. Yleisimmät moottorit ovat kv:lla 300 - 1100. Kv lähempänä 1000 valitaan yleensä pieniin nelikoptereihin (1-2 kiloa plus 500 grammaa hyötykuormaa) ja ne on varustettu muovisilla potkurilla, joiden halkaisija on 12 tuumaa. Suurissa multikoptereissa (hyvien ja raskaiden valokuva-videolaitteiden nostamiseen) tai pitkälentävissä lentokoneissa (lentoaikaennätyksiä varten) on yleensä moottorit, joissa on alhainen kv (300-500) ja suuret hiilipotkurit (halkaisijaltaan 15 - 20 tuumaa). Kv ei ole ainoa tärkeä moottoriparametri: usein löytyy kokonaisia ​​taulukoita moottorin tehon ja työntövoiman riippuvuudesta syötettävästä jännitteestä ja asennetun potkurin tyypistä. Lisäksi jokainen moottori on suunniteltu omalle jännitealueelleen (akkukennojen lukumäärälle) ja omalle maksimivirtalleen. Jos valmistaja kirjoittaa 3-4S, älä käytä sitä 5S-akkujen kanssa. Sama koskee sääntelijöitä.

Jos moottori on suunniteltu enintään 30 A:n virralle, säätimen tulee olla suunniteltu enintään 30 + 10 A virralle ylikuumenemisen estämiseksi. Huonolaatuiset tai sopimattomat säätimet voivat aiheuttaa niin sanottuja "synkronointihäiriöitä" ja jumittaa moottorin lennon aikana, ja tunnistat toisen moniroottoritermin: " kiinni planeetan"Toinen tärkeä seikka on johtojen paksuus ja laatu. Väärin laskettu johdon poikkileikkaus tai huono liitin voi aiheuttaa tulipalon ilmassa.

Kuten näet, vivahteita on paljon. En ole listannut edes puolta niistä, joten on melko vaikeaa valita komponentteja ensimmäiseen multikopteriisi itse.

Stabilointimatematiikka, PID-säätimet (PID)


Jos päätät päästä monikoptereihin, joudut ennemmin tai myöhemmin käsittelemään PID-säätimen asettamisen, koska tätä matemaattista laitetta käytetään melkein kaikissa stabilointitehtävissä: nelikopterin kulmien vakauttaminen ilmassa, lentäminen ja asennon pitäminen GPS:n avulla, korkeuden pitäminen barometrin avulla, harjattomat mekanismit videokameran stabilointi lennon aikana (kameran gimbal).

Ostat kaksiakselisen kameran gimbalin, laitat sinne esimerkiksi GoPron, laitat sen päälle ja stabiloinnin sijaan saat kouristuksia, tärinää ja nykimistä, vaikka kaikki anturit on kalibroitu ja mekaaniset ongelmat poistuvat. Syynä ovat PID-säätimien väärät parametrit.

Kokoat multikopterin, kalibroit anturit, säätimet, radion, tarkistat kaiken, yrität nousta, ja se on niin tylsää ilmassa, että jopa kevyt tuuli kääntää sen ympäri. Tai päinvastoin: hän on niin terävä, että nousee yhtäkkiä lentoon ja tekee kolminkertaisen kuperkan ilman lupaa. Syy on edelleen sama: PID-säätimien parametrit.

Monille PID-säätimiä käyttäville laitteille löytyy asennusohjeet ja jopa useita käyttäjien itsensä antamien lukuisten videoohjeiden lisäksi. Mutta jotta olisi helpompi navigoida tässä monimuotoisuudessa, on hyödyllistä ymmärtää, kuinka nämä säätimet toimivat sisällä. Lisäksi aiomme kirjoittaa oman nelikopterin vakautusjärjestelmän! Ehdotan "keksimistä uudelleen" ja "sormilla" ymmärtääkseni PID-säätimen kaava. Niille, jotka pitävät kuivaa matemaattista kieltä, suosittelen Wikipediaa, koska... venäjäksi materiaalia ei vielä esitetä näin yksityiskohtaisesti.

Tarkastellaan nelikopteria kaksiulotteisessa tilassa, jossa sillä on vain yksi kulma - kallistuskulma ja kaksi moottoria: vasen ja oikea.




Lennonjohtaja vastaanottaa jatkuvasti maasta tulevia komentoja: "rulla 30 astetta", "rulla -10 astetta", "rulla 0 astetta (pidä horisonttia)"; sen tehtävänä on suorittaa ne mahdollisimman nopeasti ja tarkasti moottoreilla ottaen huomioon: tuuli, nelikopterin painon epätasainen jakautuminen, moottoreiden epätasainen kuluminen, nelikopterin hitaus jne. Siten lennonohjaimen on jatkuvasti ratkaistava ongelma, mitä pyörimisnopeutta kullekin moottorille tulee soveltaa ottaen huomioon kulman kulman nykyinen arvo ja vaadittu. Jatkuvasti on tietysti vahva sana. Kaikki riippuu tietyn laitteiston laskentaominaisuuksista. Adruinossa on täysin mahdollista sovittaa yksi käsittely- ja ohjaussyklin iteraatio 10 millisekuntiin. Tämä tarkoittaa, että 10 millisekunnin välein luetaan nelikopterin kulmat ja niiden perusteella lähetetään ohjaussignaaleja moottoreille. Näitä 10 millisekuntia kutsutaan säätelyaika. On selvää, että mitä pienempi se on, sitä useammin ja tarkemmin säätely tapahtuu.

Kaasun taso virtaa vastaanottimesta säätimeen. Merkitään se. Muistutan, että tämä on kaikkien moottoreiden pyörimisnopeuksien välinen aritmeettinen keskiarvo, joka ilmaistaan ​​prosentteina enimmäispyörimisnopeudesta. Jos ja ovat vasemman ja oikean moottorin pyörimisnopeudet, niin:




missä on nelikopterin vaste (voima), joka luo vääntömomentin johtuen siitä, että vasen moottori pyörii nopeammin kuin kaasu ja oikea moottori pyörii yhtä paljon hitaammin. voi myös ottaa negatiivisia arvoja, silloin oikea moottori pyörii nopeammin. Jos opimme laskemaan tämän arvon jokaisessa käsittelysyklin iteraatiossa, pystymme ohjaamaan nelikopteria. On selvää, että sen pitäisi riippua vähintään nykyisestä rullauskulmasta () ja halutusta rullauskulmasta (), joka tulee ohjauspaneelista.

Kuvitellaanpa tilanne: käsky "pidä horisontti" ( = 0) vastaanotetaan ja nelikopterilla on rullaus vasemmalle:




- ero (virhe) välillä ja, jonka ohjain pyrkii minimoimaan.

Mitä suurempi ero halutun pyörimiskulman ja nykyisen kulman välillä, sitä voimakkaampi reaktion tulisi olla, sitä nopeammin vasemman moottorin tulee pyöriä suhteessa oikeaan. Jos kirjoitamme tämän käyttämällä merkintäämme:



Tässä P on suhteellisuuskerroin. Mitä suurempi se on, sitä voimakkaampi reaktio on, sitä terävämmin nelikopteri reagoi poikkeamiin vaaditusta kallistuskulmasta. Tämä intuitiivinen ja yksinkertainen kaava kuvaa työtä suhteellinen säädin. Asia on yksinkertainen: mitä enemmän nelikopteri poikkeaa vaaditusta asennosta, sitä kovemmin sinun täytyy yrittää palauttaa se. Valitettavasti tämän kaavan on oltava monimutkainen. Suurin syy on ylitys.

Muutamassa kymmenessä millisekunnissa (useita iteraatioita prosessointisyklissä) nelikopteri palaa suhteellisuussäätimen vaikutuksesta vaadittuun (tässä tapauksessa vaakasuoraan) asentoon. Koko tämän ajan virheellä ja ponnistelulla on sama merkki, vaikka niiden suuruus pienenee. Saavutettuaan tietyn kääntönopeuden (kulmanopeuden), nelikopteri yksinkertaisesti kaatuu toiselle puolelle, koska kukaan ei pysäytä sitä haluttuun asentoon. Se on kuin jousi, joka haluaa aina palata alkuperäiseen asentoonsa, mutta jos vedät sen takaisin ja vapautat sen, se värähtelee, kunnes kitka ottaa vallan. Kitka vaikuttaa tietysti myös nelikopteriin, mutta käytäntö osoittaa, että se ei riitä.

Tästä syystä suhteelliseen ohjaimeen on lisättävä vielä yksi termi, joka hidastaa nelikopterin pyörimistä ja estää ylilyönnin (vierimisen vastakkaiseen suuntaan) - eräänlainen kitkan jäljitelmä viskoosissa väliaineessa: mitä nopeammin quadcopter kääntyy, sitä kovemmin sinun täytyy yrittää pysäyttää se, tietysti kohtuullisissa rajoissa. Merkitään pyörimisnopeus (virheen muutosnopeus) muodossa , sitten:



missä D on säädettävä kerroin: mitä suurempi se on, sitä suurempi pysäytysvoima. Koulun fysiikan kurssista ilmenee epämääräisiä muistoja, että minkä tahansa suuren muutosnopeus on tämän suuren johdannainen ajan suhteen:

.

Ja nyt suhteellinen säädin muuttuu suhteelliseksi differentiaaliksi (suhteellinen termi ja differentiaali):

.

Virhe on helppo laskea, koska jokaisessa iteraatiossa tiedämme ja ; P ja D ovat parametreja, jotka voidaan määrittää ennen käynnistämistä. Derivaatan (muutosnopeuden) laskemiseksi on tarpeen tallentaa edellinen arvo, tietää nykyinen arvo ja tietää mittausten välillä kulunut aika (kontrollijakso). Ja tässä se on - kuudennen luokan koulun fysiikka (nopeus = matka / aika):

.

- säätelyjakso; - virhearvo säätöjakson edellisestä iteraatiosta. Muuten, tämä kaava on yksinkertaisin tapa numeeriseen eriyttämiseen, ja se sopii meille varsin täällä.

Nyt meillä on suhteellinen differentiaalisäädin litteässä bikopterissa, mutta silti on vielä yksi ongelma. Anna vasemman reunan painaa hieman enemmän kuin oikea, tai mikä on sama, vasen moottori toimii hieman huonommin kuin oikea. Nelikopteri on hieman kallistettu vasemmalle eikä käänny takaisin: differentiaalitermi on nolla, ja suhteellinen termi, vaikka se saa positiivisen arvon, ei riitä palauttamaan nelikopteria vaaka-asentoon, koska vasen reuna painaa hieman enemmän kuin oikea. Tämän seurauksena nelikopteri vetää aina vasemmalle.

Tarvitaan mekanismi tällaisten poikkeamien seuraamiseksi ja korjaamiseksi. Tällaisille virheille on ominaista, että ne korjaantuvat ajan myötä. Integroitu termi tulee apuun. Se tallentaa kaikkien käsittelysilmukan iteraatioiden kaikkien virheiden summan. Miten tämä auttaa? Jos suhteellinen termi ei riitä pienen virheen korjaamiseen, mutta se on kuitenkin olemassa, integraalitermi vahvistuu vähitellen ajan myötä, mikä lisää vastetta ja nelikopteri ottaa vaaditun kallistuskulman.

Tässä on vivahde. Oletetaan, että se on 1 aste, ohjausjakso on 0,1 s. Sitten yhdessä sekunnissa virheiden summa on 10 astetta. Ja jos käsittelyjakso on 0,01 s, niin määrä kasvaa jopa 100 astetta. Jotta samaan aikaan integraalitermi saa saman arvon eri säätöjaksoille, kerrotaan saatu määrä itse säätöjaksolla. On helppo laskea, että molemmissa tapauksissa esimerkin määrä on 1 aste. Tässä se on - integraalitermi (ilman säädettävää kerrointa toistaiseksi):

.

Tämä kaava ei ole muuta kuin funktion numeerinen integraali ajan mittaan välillä nollasta nykyhetkeen. Siksi termiä kutsutaan integraaliksi:

,

missä T on nykyinen ajanhetki.
On aika kirjoittaa lopullinen kaava suhteellisuus-integraali-derivaatta-ohjaimelle:

,

jossa on yksi konfiguroitavista parametreista, joita on nyt kolme: . Tätä kaavaa on kätevä käyttää ohjelmakoodista, mutta tässä on kaava, joka annetaan oppikirjoissa:

.

Siitä on useita muunnelmia, esimerkiksi voit rajoittaa integraalitermin moduulia niin, että se ei ylitä tiettyä sallittua kynnystä (teemme tämän).

Harjoitella

No, nyt on aika harjoitella kertoimien valintaa. Lukijoille tarjotaan JavaScript-sivu virtuaalisella nelikopterilla, jonka he ovat jo nähneet kuvissa: PID-säätimen parametrien valinta nelikopterille(JSFiddle). Ensimmäisessä käynnistyksessä ylitys näkyy välittömästi - värähtelyjä halutun asennon ympärillä. Kun värähtelyt loppuvat, voit havaita vaikutuksen, että suhteellinen kerroin ei kestä "epäsymmetrisen" nelikopterin aiheuttamaa virhettä (asetettu "Epäsymmetria"-valintaruudulla). Konfigurointiin käytettävissä olevat parametrit ovat P, I, D. Nyt tiedät mitä niillä tehdä. Nelikopterin alla olevaa "rullaa" voidaan ohjata vaaditulla rullausarvolla. "Interval (ms):" - säätöväli. Sen vähentäminen on huijausta, mutta sen näkeminen, kuinka se vaikuttaa stabiloinnin laatuun, on erittäin hyödyllistä.

Voimme tarjota "puhtaan" matematiikan ystäville määrittää abstraktin PID-säätimen

Syötettyjä parametreja ei oteta käyttöön automaattisesti: sinun on napsautettava "Käytä". Pari pientä vinkkiä: jos sinusta tuntuu, että nelikopteri on liian hidas reagoimaan ohjaukseen, voit lisätä P:tä, mutta liian suuri P-arvo voi johtaa ylityksiin. Parametri D auttaa selviytymään ylityksestä, mutta liian suuret arvot johtavat toistuviin värähtelyihin tai taas ylityksiin. I-parametri on yleensä 10 - 100 kertaa pienempi kuin P-parametri, koska sen vahvuus on kerääntyminen ajan kuluessa, ei nopea reagointi.

PID-parametrien manuaalinen viritys vaatii harjoittelua. Niiden laskemiseen on olemassa analyyttisiä menetelmiä, mutta ne edellyttävät hyvää valmistelua ja tarkkaa tietoa räätälöitävän järjestelmän monista parametreista. Keskitienä manuaalisen valinnan ja analyyttisen laskennan välillä on lukuisia eri tutkijoiden ehdottamia empiirisiä menetelmiä.

2D-nelikopterissamme vain yksi kulma muuttuu - kallistuskulma. 3D-nelikopterin virittämisessä tarvitaan kolme erillistä PID-säädintä kutakin kulmaa kohti, ja tietyn moottorin ohjaus edustaa kaikkien säätimien ponnistelujen summaa.

Ensimmäisen osan johtopäätös

Tässä artikkelissa tutustuimme peruskäsitteisiin: nelikopteri ja lentoperiaate, pitch, roll, yaw, kaasu, leijuva kaasu, stabiloi lentotila, lennonohjain, gyroskooppi, kiihtyvyysanturi, nopeudensäädin, PWM, ohjaimen kalibrointi, radiokalibrointi, sisäinen vastaanotin, liitäntä lennonohjaimen asettamiseen, viritetyt/pois päältä -tilat, automaattinen sammutus.

Sen jälkeen keksimme kaavan uudelleen PID-säädin koskettaa vähän numeerinen eriyttäminen ja integrointi, ja kokenut kovan tavan määrittää parametrit P, minä, D päällä virtuaalinen nelikopteri .

Nyt, jos olet taitava valomiekkaohjelmoinnissa, voit aloittaa oman nelikopterin vakautusohjelman tai, mikä vielä parempaa, liittyä olemassa oleviin avoimen lähdekoodin projekteihin tuoreilla ideoilla. No, viikon tai kahden kuluttua, kun minulla on voimaa ja aikaa kohdata laatu, jatkan tarinaa siitä, kuinka se kaikki ohjelmoitiin, testattiin, kaatui, leikkasi sormia ja lensi kokonaan pois tuntemattomaan suuntaan. Jos todella haluat jatkaa, voit ottaa minuun yhteyttä täällä tai esimerkiksi Vkontaktessa: se antaa hieman kannustinta.

Tämän osan lopuksi minun on vain mainittava henkilö, joka auttoi minua komponenttien valinnassa ja MegapirateNG-laiteohjelmiston monimutkaisimman (ensimmäisen!) kvadrokopterin asettamisessa ja vastasi kärsivällisesti satoihin näihin peruskäsitteisiin liittyviin kysymyksiin: kiitos! :-)

Palkintona niille, jotka pystyivät tuhlaamaan kaiken tämän arkin, julkaisen luvatun pienen videon siitä, kuinka "keksitetyillä" PID-säätimillämme varustettu nelikopterimme lentää Arduino Mega 2560 -ohjelmassamme:



Tietysti siitä puuttuu GPS, kuten kaupallisissa ja massatuotteissa, siitä puuttuu hieman vakautta, mutta se on MEIDÄN, ja me tunnemme sen sisältä ja ulkoa integraalikertoimen viimeistä tekijää myöten! Ja on todella hienoa, että tällaisia ​​tekniikoita on saatavillamme tänään.

Sinun ei tarvitse ostaa dronea kaupasta - nyt voit tehdä arduino-pohjaisen nelikopterin itse. Dronissa on tehokas autonominen virtalähde ja se toimii Arduino-pohjaan perustuvalla stabilointijärjestelmällä. Jos teet lentokoneen omin käsin, voit säästää kohtuullisen summan. Ostettu kopteri maksaa vähintään 80 dollaria. Jos luot sen itse, se maksaa noin 60 tavanomaista yksikköä.

Kotitekoinen nelikopteri on erillisen keskustelun aihe. Aina on ollut, on ja tulee olemaan käyttäjiä, joille pelkkä lentäminen ei riitä. Heidän tulee tuntea olevansa mahtavia suunnittelijoita ja olla varmoja, että heidän omilla käsillään valmistama drone lentää haluamallaan tavalla.

Voit luoda omin käsin lentävän mallin, jossa on 4 jalkaa. Prosessi ei näytä sinulle vaikealta, vaan päinvastoin, se on nautinnollista, mutta vain, jos opit ohjeita ja noudatat niitä askel askeleelta. Ensinnäkin ennen dronin luomisprosessia kannattaa päättää elementeistä, joita työssä käytetään. Kuten odotettiin, käytämme Arduino-alustaa ohjaimena - tämä on edullinen, mutta laadukas pohja, joka varmistaa laitteen keskeytymättömän toiminnan.

Dronin luomiseksi on tärkeää valita oikeat moottorit. Harjattomat ovat melko tehokkaita, mutta maksavat vähintään 20 dollaria, mikä tarkoittaa, että laite maksaa noin 80 dollaria. Tässä tapauksessa sinun tulee antaa etusija harjaversiolle - se on paljon halvempi eikä vaadi lisäohjaimien asentamista.

Sinun on myös huolehdittava laadukkaan moottorin ostamisesta ja aloitettava sen stabilointi. Et tule toimeen ilman kiihtyvyysmittaria ja gyroskooppia. Tällä tavalla määritetään kaltevuus- ja kiihtyvyyskulma. Näitä antureita käytetään tehokkaan mallin luomiseen. Jotta voit tehdä oman nelikopterin Arduino-ohjauksella, tarvitset:

  • 3,7 V litiumparistot;
  • johdot;
  • transistori ei ole heikompi kuin ULN2003A Darlington-transistori;
  • Coreless Motors moottorit;
  • mikro-ohjain 0820 Coreless Motors;
  • gyroskooppi;
  • kiihtyvyysmittari;
  • juotos työkalut;
  • 3D tulostin.

Ensimmäinen asia on luoda runko tulevalle nelikopterille. Kehystä tulee kevyt ja kestävä, jos käytät 3D-tulostinta. Sitten sinun tulee määrittää kiihtyvyysanturi ja gyroskooppi. Ei tarvitse kytkeä 5 V -verkkoon - tämä voi vahingoittaa korttia. On parempi antaa etusija 3,3 V:lle. Huomaa, että useimmissa korteissa on erityinen jännitesäädin.


Kiihtyvyysmittarin kytkemisen jälkeen voit aloittaa sähköpiirin kokoamisen. Jotta kaikki tehdään oikein, kannattaa katsoa yksityiskohtainen video, jossa kokoonpanomenetelmät selitetään selvästi. Nyt sinulla on oma nelikopterisi, jonka teit meidän selkeässä ohjauksessamme.

Kuten kävi ilmi, tämä on erittäin todellinen tehtävä. Prosessi ei aiheuta sinulle huolta, mutta voit säästää paljon rahaa. Jos sinulla on epäilyksiä laitteen käynnistämisestä, lue ohjeet tämän tekemiseen. Oikein käsiteltynä arduino-pohjainen nelikopteri kestää pitkään.

Tässä artikkelissa puhumme Arduinoon perustuvista nelikoptereista, niiden eduista ja hintaluokista.

Nelikopteri tietokonelaitteen toiminnoilla.


Nykymaailmassa on laaja valikoima nelikopterimalleja, jotka on suunniteltu käytettäväksi eri tarkoituksiin. Ne eivät ole vain leluja, joiksi niitä pidettiin heti niiden ilmestymisen jälkeen kotimarkkinoille. Ne ovat nykyään laitteita, jotka on suunniteltu suorittamaan monenlaisia ​​​​tehtäviä. Niitä käytetään monissa tapauksissa ammattimaiseen luovaan toimintaan. Jotta nelikopteri toimisi kunnolla, se tulee varustaa tuotannossa lisäosilla alustan lisäksi. Jotta laitetta voidaan ohjata kaukosäätimellä, siihen on asennettava prosessori ja monet muut elektroniikkajärjestelmän osat. Nykyään on olemassa suuri määrä prosessoreita, joita käytetään korkealaatuisten ja toimivien nelikopterien luomiseen. Heistä Arduino erottuu. Se on melko tehokas prosessori, jonka avulla nelikopterilla on joitain tietokonelaitteen toimintoja.

Nykyään Arduinoa käyttävä nelikopteri voidaan ostaa helposti mistä tahansa tällaisten laitteiden tuotantoon erikoistuneesta verkkokaupasta. Tämän prosessorin ansiosta luodaan teknisten parametrien suurimmat ja tehokkaimmat laitteet. Ne sopivat monenlaisiin tehtäviin. Ne on suunniteltu sekä säännöllisiin lentoihin että ammattimaiseen kuvaamiseen. Tehokkaan prosessorin ansiosta ne suorittavat helposti kaikki käyttäjien määräämät tehtävät. Kaukosäätimen tiedonsiirron nopeus kasvaa merkittävästi. Lisäksi reaaliajassa kuvatut videot välittyvät välittömästi mobiililaitteisiin, jotka ovat tällä hetkellä yhteydessä nelikopteriin. On huomattava, että monet käyttäjät kokoavat itse Arduino-prosessoriin perustuvia laitteita. Sitä on saatavana melkein jokaisesta erikoisliikkeestä.

Adruinoon perustuvan nelikopterin ominaisuudet.


Arduino-laitteet ovat erittäin suosittuja, koska ne ovat erittäin käteviä käyttää. Tämän tyyppiset nelikopterit suorittavat nopeasti kaikki käyttäjien määräämät tehtävät. Tällä prosessorilla on mahdollista saada laadukas laite, jonka avulla voit nauttia rajattomista mahdollisuuksista normaalin lennon aikana ja jopa kuvausprosessin aikana. Kuvat saadaan korkealla resoluutiolla. Arduinoon perustuvat laitteet toimivat sujuvasti. Tämän prosessorin ansiosta laite itse pystyy suorittamaan työnsä pitkän ajan kuluessa, eikä sen järjestelmä epäonnistu. Arduinon uusimpiin versioihin perustuvat laitteet eivät ole budjettilaitteita. Näin käyttäjät voivat kuitenkin saada ammattitason nelikoptereita, jotka suorittavat nopeasti ja keskeytyksettä kaikki kuluttajien määräämät tehtävät. Se varmistaa nelikopterin luotettavan toiminnan.