Arduino kontroler leta. Kako dizajnirati vlastiti kvadrokopter

Glavna ideja projekta je stvoriti jeftin kvadrokopter koji ima autonomno napajanje i algoritam stabilizacije leta pomoću Arduina.

Osim Arduina, trebat će nam žiroskop/akcelerometar i motori četkica. Gornji projekt ne razmatra metode upravljanja letom kvadrokoptera, ali se svakako mogu dodati. Cijena ovog quadcoptera je oko 60 USD.

Što je kvadrokopter?

Siguran sam da većina onih koji čitaju ovaj članak već zna što je quadcopter. Ako niste, evo kratkog opisa ovih prekrasnih uređaja.

Kvadrokopter je leteći uređaj s četiri "noge", od kojih svaka ima motor s propelerom. Quadcopteri su u biti slični helikopterima, ali njihovo kretanje, rotaciju i nagib osiguravaju sinkroni rad četiri propelera. Osim toga, kvadrokopteri imaju takav koncept kao "nagib" - rotacija oko uzdužne osi. Kako bi se stabilizirao let quadcoptera, dva propelera se okreću u jednom smjeru (u smjeru kazaljke na satu), a dva propelera u suprotnom smjeru (u suprotnom smjeru). Zahvaljujući toj mogućnosti lebdenja u jednom položaju u zraku, kvadrokopteri se prvenstveno koriste za snimanje iz zraka i video snimanja. Naravno, kvadrokopteri i drugi slični uređaji s više motora koriste se u akcijama spašavanja, policije, vojske itd. Nedavno su se troškovi komponenti za proizvodnju kvadrokoptera značajno smanjili i mnoge su ih tvrtke počele proizvoditi. Kupnja gotovog proizvoda danas neće biti problem.

Dakle, već ste malo shvatili što je quadcopter, idemo sada na to Kratak opis proces njegove proizvodnje.

Prvo što smo učinili bila je kupovina na Googleu u potrazi za komponentama koje će nam trebati za izradu.

U većini slučajeva koriste se mikrokontroleri i motori bez četkica (ventili). Odlučeno je da se kao kontroler koristi Arduino, jer je to idealna platforma s obzirom na cijenu. Prvi problem koji se pojavio bili su motori bez četkica. Zapamtite, usredotočeni smo na proračun od 60 USD. A cijena jednog motora bez četkica, koji se može koristiti u našem dizajnu quadcoptera, kreće se od 20 do 60 dolara! Osim toga, korištenje ovih motora zahtijeva ugradnju dodatnih regulatora - regulatora brzine. Stoga je odlučeno koristiti brušene motore. Dimenzije našeg quadcoptera su male, pa smo kupili motore s relativno malim momentom. Google je sugerirao da postoje kvadrokopteri sa sličnim pogonima. Pronađeni motori mogu podići do 55 grama težine, što nam sasvim odgovara. Sljedeći korak je rješavanje problema stabilizacije motora pomoću žiroskopa i akcelerometara. Žiroskop je uređaj koji pomoću Zemljine gravitacije određuje kut nagiba (orijentacije) u prostoru. Klasični dizajn žiroskopa sastoji se od slobodno rotirajućeg diska koji se naziva rotor. Rotor je postavljen na osovinu koja se nalazi u središtu većeg, stabilnijeg kotača. Kada se os okreće, rotor ostaje u statičkom stanju, što odgovara težištu. Akcelerometar je kompaktni uređaj koji se koristi za mjerenje ubrzanja. Kada objekt izađe iz stanja mirovanja (počne se kretati), akcelerometar bilježi vibracije koje nastaju tijekom tog kretanja. Akcelerometri koriste mikroskopske kristale koji stvaraju napon pri udaru. Ovaj napon se uklanja i formira se vrijednost ubrzanja. Ova dva senzora potrebna su u kvadrokopteru. Na temelju njihovih očitanja generira se kontrolni signal koji regulira brzinu vrtnje motora kako bi se osiguralo kotrljanje, kretanje ili stabilizacija našeg quadcoptera.

Potrebne komponente, dijelovi i oprema

Za projekt kvadrokoptera kojim upravlja Arduino trebat će nam:

  • - žice;
  • - litijske baterije na 3,7 V;
  • - tranzistor: ULN2003A Darlington Transistor (možete uzeti tranzistor koji podržava veća opterećenja);
  • - motori: 0820 Motori bez jezgre;
  • - mikrokontroler: Arduino Uno;
  • - akcelerometar/žiroskop: MPU-6050 ploča (jeftina i vesela all-in-one opcija);
  • - 3D printer ili pristup njemu za ispis dijelova dizajna quadcoptera;
  • - alat (uključujući lemilo i mogućnost korištenja!).
  • KUPITE litijeve baterije od 3,7 V (Pazite, među ponuđenim proizvodima trebate pronaći upravo onu koja vam odgovara!);

3-D printanje dijelova kvadrokoptera

Jedan od prvih koraka je izrada okvira našeg kvadrokoptera. Odlučeno je krenuti putem manjeg otpora i isprintati okvir na 3D printeru. Osim jednostavnosti izrade, okvir otisnut na 3D printeru prilično je lagan zahvaljujući ispisu saća. Dijelovi su dizajnirani u Solidworksu. Ispod su svi čvrsti modeli. Možete ih jednostavno preuzeti i poslati na ispis. Detalji se spremaju u .stl formatu. Ako želite, možete ih sigurno modificirati i mijenjati koristeći isti Solidworks. Modeli su parametrični, tako da ako se odlučite za druge motore, samo trebate promijeniti nekoliko parametara u modelu i dobit ćete gotov okvir za vaše dimenzije quadcoptera.


Kao rezultat dobit ćete nešto poput ovoga:



Postavljanje akcelerometra-žiroskopa (I2C)


U ovom primjeru korištena je ploča MPU6050 tvrtke SparkFun. Na Amazonu košta oko 10 dolara i dobro radi. Slična Kina na Aliexpressu ili Ebayu nudi slične ploče do 5 USD. Također radi odlično.

Što je I2C?

Na jednostavne ploče akcelerometar, sve je logično i jasno: ima zasebne analogne izlaze za osi X, Y i Z. Svaki izlaz odgovara zasebnoj osi akcelerometra. Ako sada pogledate I2C ploču, shvatit ćete da je sve nešto zbunjujuće. I2C je komunikacijski standard u kojem se velike količine informacija prenose pomoću digitalnih logičkih impulsa umjesto analognih izlaza. MPU6050 vam daje 6 kontroliranih osi (3 za žiroskop i 3 za akcelerometar). Da su svi analogni, morali bismo koristiti sve analogne priključke na Arduino Uno. S I2C protokolom koristimo puno manje pinova za povezivanje.

Arduino dijagram povezivanja

Dijagram povezivanja za ploču MPU6050 prikazan je u nastavku. Imajte na umu da biblioteka Arduino pretpostavlja korištenje ovih pinova. U pravilu, čak i ako imate ploču drugog proizvođača, pinovi su označeni jednako, stoga dijagram povezivanja ostaje isti.

Ako ga napajate na 5 V, ploča bi se mogla oštetiti, pa budite oprezni i koristite 3,3 V. Neke MPU6050 ploče imaju regulator napona koji djeluje kao osigurač, ali još uvijek nije vrijedno rizika. Ako vaša ploča ima AD0 pin, on mora biti spojen na masu (GND). U našem slučaju VIO pin je spojen na AD0 na samoj ploči, tako da nema potrebe spajati AD0 pin.

Skica za Arduino

U ovom trenutku trebat će vam malo znanja o Arduino programiranju. Ako nešto ne razumijete, stanite tu i pokušajte shvatiti. Objašnjenja u nastavku pomoći će vam s mnogim pitanjima, ali nemoguće je opisati sve moguće nijanse.

Nakon što spojite MPU-6050 na svoj Arduino, uključite ga i preuzmite skicu koda I2C skenera.

Kopirajte programski kod, zalijepite ga u praznu skicu i pokrenite. Otvorite Arduino IDE serijski monitor (Alati->Serijski monitor) i provjerite jeste li spojeni na 9600 (dolje lijevo).

Ako ste sve učinili ispravno, I2C uređaj bi trebao biti otkriven i dodijeljena mu je adresa 0x68 ili 0x69. Zapisati. Ako se pojave pogreške, provjerite vezu.

Sada trebate prenijeti skicu koja obrađuje informacije iz akcelerometra/žiroskopa. Internetom postoji više od jedne verzije sličnih skica, preporučujemo korištenje ove. Nakon što slijedite poveznicu, kliknite "Preuzmi Zip". Nakon preuzimanja, raspakirajte arhivu. Zatim otvorite Arduino IDE. Idite na skica->uvoz knjižnice -> dodaj knjižnicu. Morat ćete dodati obje mape: I2Cdev i MPU6050.

Nakon što instalirate biblioteke, otvorite datoteku MPU6050_DMP6 (MPU6050 -> Primjeri). Preporučam da ga pogledate, čak i ako niste osobito upućeni u kodiranje. Ako ste dodijelili adresu 0x69, morate odkomentirati jedan redak na vrhu koda (nakon #includes), budući da je zadana 0x68. Program bi sada trebao kompilirati.

Skinite program, otvorite prozor serijskog monitora (ovaj put s 115200) i slijedite upute. Čestitamo, sada biste trebali moći dobiti vrijednosti s akcelerometra/žiroskopa putem Arduina!

Sada pokrenite skicu kalibracije, koju možete preuzeti ovdje: MPU6050_calibration.ino (opet, zadani port je 0x68, ali ga možete promijeniti). Zabilježite primljene podatke o pomaku. Koristit ćete ove podatke u skici MPU6050_DMP6 (iu sljedećem programu za kvadrokopter).

Sada imate funkcionalan, svakako koristan akcelerometar/žiroskop.

Spajanje na Arduino

Gledali smo spajanje akcelerometra. Sljedeći korak je natjerati Arduino da upravlja motorima. Arduino ploča ne daje izlaz veliki značaj struje i napona, pa umjesto izravnog spajanja motora na digitalne izlaze ploče, koristimo tranzistore za "pojačavanje" napona.

Počnimo sastavljati električni krug. U ovoj fazi trebat će nam Arduino, motori, tranzistori (ploča i konektori). Dijagram spajanja nalazi se u nastavku, ispod potrebnih tekstualnih objašnjenja. Spojite četiri PWM izlaza (označena s ~ na Arduinu) na tranzistor kao što je prikazano na slikama. Nakon toga spojite konektore na motore koji su spojeni na izvor napajanja. Gornji projekt kvadrokoptera koristio je napajanje od 5 V, ali bi trebala raditi i baterija od 3-5 V.

Provjerite jesu li tranzistori uzemljeni i je li uzemljenje na Arduinu povezano s uzemljenjem izvora napajanja. Provjerite okreću li se rotori motora u ispravnom smjeru (trebali bi moći podići kvadrokopter, a ne kotrljati se). Ako prebacite pin motora s 5V na tranzistor, rotor motora će se početi okretati u suprotnom smjeru. Nakon konfiguracije više nećete morati mijenjati smjer vrtnje motora. Promijenit ćemo samo brzinu.

Nakon što pokrenete akcelerometar i testirate ga, trebate sve instalirati na ProtoBoard (možete koristiti pločicu na koju ste zalemili tračnice za instalaciju na Arduinu. Možete ići elegantnijim putem i kupiti Proto Shield). Ne biste trebali lemiti tranzistor na ploču za izradu prototipa. Bolje je koristiti utičnicu s kontaktima za nju tako da je možete zamijeniti u bilo kojem trenutku.

U našem slučaju, akcelerometar smo zalemili na ploču i tek nakon toga napravili kalibraciju. Ali praksa pokazuje da to nije sasvim točno. Kako biste povećali točnost očitanja žiroskopa/akcelerometra, bolje ga je prvo kalibrirati na ravnoj površini, a tek onda lemiti.










Možete pročitati o PID kontroli na Wiki ako niste upoznati s ovim regulatorima. PID klasa za Arduino koristi tri ulaza: zadanu vrijednost, mjerenje i izlaz. Izlaz ovisi o trenutnom položaju i mjerenjima. PID regulator pokušava promijeniti izlaz tako da mjerenja odgovaraju ciljnoj poziciji. Algoritam koristi zanimljivu matematiku. Algoritam PID regulacije pokušava raditi na takav način da vrijednosti ostanu što stabilnije.

Naš algoritam koristi dva PID regulatora za stabilizaciju: jedan za nagib i jedan za nagib. Razlika u brzini vrtnje propelera 1 i 2 bit će ista kao razlika u brzini propelera 3 i 4. Isto tako i za parove 1,3 i 2,4. Nakon toga, PID regulator mijenja razliku u brzini, dovodeći nagib i kotrljanje na nulu.

Ne zaboravite provjeriti koji digitalni pinovi iz Arduina idu na motore i prema tome promijeniti skicu.

Daljnja modernizacija quadcoptera korištenjem Arduina


Glavni problemi s malim kvadrokopterom su njegova cijena i težina. Možete potražiti veće i snažnije motore, ali to neće osobito poboljšati njegovu izvedbu. Ono što će vam stvarno pomoći (ako ste spremni izdvojiti više novca) su motori bez četkica (ventila). Što se tiče karakteristika, oni su red veličine bolji, ali osim njih morate koristiti regulatore brzine, što će poskupjeti kvadrokopter.

Kako biste smanjili težinu dizajna, najbolje je koristiti Arduino Uno, budući da za ovaj model kontrolera možete ukloniti "ušiveni" mikroprocesorski čip i instalirati ga izravno na vaš ProtoBoard. Kao rezultat toga, dobit ćete oko 30 grama težine, što je prilično puno na takvoj ljestvici. Osim toga, morat ćete koristiti još nekoliko kondenzatora, itd. Ili, kao alternativu, možete koristiti Arduino Pro Mini.

Program Arduino, koji je napisan i predstavljen u prethodnom dijelu, može se jednostavno proširiti i obogatiti dodatnim funkcionalnostima. Najvažnije je da u ovoj fazi kvadrokopter već može automatski stabilizirati let. Ako želite postaviti daljinsko upravljanje, možete pogledati prema odašiljačima/prijemnicima ili bluetooth modulima. Općenito, sada imate osnovu, a ima još više prostora za daljnju modernizaciju.

Ostavite svoje komentare, pitanja i podijelite osobno iskustvo ispod. Nove ideje i projekti često se rađaju u raspravama!

Pozdrav čitateljima!
U ovoj seriji članaka otvorit ćemo poklopac quadcoptera malo više nego što hobi zahtijeva, a također ćemo ga napisati, konfigurirati i lansirati u zrak vlastiti program za kontroler leta, koji će biti obična Arduino Mega 2560 ploča.

Pred nama je:

  1. Osnovni koncepti.
  2. PID regulatori s interaktivnom web demonstracijom rada na virtualnom quadcopteru.
  3. Stvarni program za Arduino i konfiguracijski program za Qt.
  4. Opasni testovi kvadrokoptera na užetu. Prvi letovi.
  5. Slom i gubitak u polju. Automatsko pretraživanje iz zraka koristeći Qt i OpenCV.
  6. Završni uspješni testovi. Sažimajući. Gdje ići?

Materijal je pozamašan, ali pokušat ću ga smjestiti u 2-3 članka.
Danas nas očekuju: spoiler s videom kako je naš quadcopter letio; Osnovni koncepti; PID regulatori i praksa izbora njihovih koeficijenata.

Čemu sve ovo?

Akademski interes, koji, usput, ne prati samo mene (,). I, naravno, za dušu. Sjajno sam se zabavljala radeći i osjetila pravu, neopisivu sreću kada je “TO” poletjelo s mojim programom :-)

Za koga?

Ovaj materijal također može biti od interesa za ljude koji su daleko, ili koji se tek planiraju uključiti u sustave s više rotora. Razgovarajmo sada o svrsi glavnih komponenti kvadrokoptera, kako međusobno djeluju, o osnovnim konceptima i principima leta. Naravno, svo znanje koje nam je potrebno možemo naći na Internetu, ali ne možemo biti prisiljeni da ga tražimo na beskrajnom Internetu.

Bez ugrožavanja vašeg razumijevanja osnovnih pojmova, slobodno preskočite sve što znate do sljedećeg nepoznatog pojma, podebljano, odnosno na nerazumljivu ilustraciju.

NE #1!

Ne počinjite pisati vlastiti program za kontroler leta dok ne isprobate gotova rješenja, kojih sada ima dosta (Ardupilot, MegapirateNG, MiltiWii, AeroQuad itd.). Prije svega, opasno je! Potrebna je vježba za upravljanje kvadrokopterom bez GPS-a i barometra, a još više kada zaglibira, preokrene se ili ne leti točno gdje bi trebao - a to je gotovo neizbježno tijekom prvih testova. Drugo, bit će vam puno puta lakše programirati ako razumijete što treba programirati i kako bi to na kraju trebalo raditi. Vjeruj mi: matematika leta samo je mali dio programskog koda.

NE #2!

Nemojte se upuštati u pisanje vlastitog programa za kontrolora leta ako nemate akademski interes i trebate samo ono što gotova rješenja već dugo mogu učiniti (letjeti, fotografirati, snimati video, letjeti na zadatak, itd.) Dok sve napišete sami, to će trajati dugo, čak i ako niste sami.

Osnovni koncepti

Kvadrokopteri dolaze u različitim varijantama, ali sve ih ujedinjuju četiri glavna rotora:

Unatoč prividnoj simetriji, vrlo je važno za pilota da razlikuje gdje se nalazi prednji dio kvadrokoptera (prikazano strelicom). Ovdje, kao u radio-upravljanim modelima automobila: kada se zada naredba "naprijed", kvadrokopter ne leti kamo gleda pilot, već kamo pokazuje zamišljeni nos kvadrokoptera. To je prepuno opasnosti: početnicima može biti teško vratiti sebi uređaj koji je zahvatio vjetar, nekako okrenut na stranu (mi, naravno, ne govorimo o letenju u kameri iz prvog lica i o „pametnom ” načini letenja pomoću kompasa i GPS-a.) Rješenje Ovaj problem može se djelomično riješiti prednjim vijcima ili gredama druge boje, nekom vrstom kuglice ispred ili LED diodama različitih boja. Ali sve se to pokaže beskorisnim kada se pepelats brzo pretvori u točkicu iznad horizonta.

Letjet ćemo na okviru kvadrokoptera u obliku slova "X" jer mi se više sviđa kako izgleda. Svaki dizajn ima svoje prednosti i svrhu. Osim kvadrokoptera postoje i drugi multikopteri. Čak i ako ne računate egzotične mogućnosti, još uvijek ih postoji cijela hrpa!

Idemo shvatiti kako je naš quadcopter strukturiran iznutra i što bi kontroler leta koji planiramo programirati trebao raditi.


Kutovi pitch, roll and yaw (nagib, kotrljanje, skretanje)- kutovi po kojima se uobičajeno određuje i postavlja orijentacija kvadrokoptera u prostoru.

Ponekad se riječ "kut" izostavi i jednostavno se kaže: pitch, roll, yaw. Ali prema Wikipediji to nije sasvim točno. Let quadcoptera u traženom smjeru postiže se promjenom ta tri kuta. Na primjer, da bi letio naprijed, kvadrokopter se mora nagnuti jer se stražnji motori okreću malo jače od prednjih:

Plinski kvadrokopter- aritmetička sredina između brzina vrtnje svih motora. Što je više plina, veći je ukupni potisak motora, oni više vuku kvadrokopter gore(NE IDI NAPRIJED!!! “Papuče na podu” ovdje označavaju najbrži uspon). Obično se mjeri kao postotak: 0% - motori su zaustavljeni, 100% - vrte se maksimalnom brzinom. Plin lebdi- minimalna razina plina koja je potrebna da quadcopter ne izgubi visinu.

Gas, nagib, okretanje, skretanje - ako možete kontrolirati ova četiri parametra, onda možete kontrolirati i kvadrokopter. Ponekad se nazivaju i kontrolnim kanalima. Ako ste kupili dvokanalni daljinski upravljač, nećete moći upravljati kvadrokopterom. Trokanalni je prikladniji za male helikoptere: možete letjeti bez kontrole prevrtanja, ali to nije zgodno na quadcopteru. Ako želite mijenjati načine letenja, morat ćete izdvojiti petokanalni daljinski upravljač. Ako želite kontrolirati nagib i pomicanje kamere na brodu, postoje još dva kanala, iako profesionalci za to koriste zasebni daljinski upravljač.

Postoji mnogo načina letenja. Koriste se GPS, barometar i daljinomjer. Ali želimo implementirati onaj osnovni - način stabilizacije ( ubosti, stabilizirati, leti u “stubu”), u kojem kvadrokopter održava kutove koji su mu zadani s daljinskog upravljača, bez obzira na vanjske čimbenike. U ovom načinu rada, u nedostatku vjetra, kvadrokopter može visjeti gotovo na mjestu. Pilot će morati kompenzirati vjetar.

Smjer rotacije vijaka nije odabran slučajno. Kad bi se svi motori vrtjeli u jednom smjeru, kvadrokopter bi se vrtio u suprotnom smjeru zbog stvorenih momenta. Stoga se uvijek jedan par suprotnih motora okreće u jednom, a drugi par u drugom smjeru. Učinak pojave rotacijskih momenta koristi se za promjenu kuta skretanja: jedan par motora počinje se okretati malo brže od drugog, a sada se kvadrokopter polako okreće prema nama (kakav užas):

  • LFW - lijeva prednja rotacija u smjeru kazaljke na satu (lijeva prednja rotacija u smjeru kazaljke na satu)
  • RFC - desna prednja rotacija u smjeru suprotnom od kazaljke na satu (desna prednja rotacija u smjeru suprotnom od kazaljke na satu)
  • LBC - lijeva stražnja rotacija u smjeru suprotnom od kazaljke na satu (lijeva stražnja, rotacija u suprotnom smjeru kazaljke na satu)
  • RBW - desno nazad rotacija u smjeru kazaljke na satu (desno straga, rotacija u smjeru kazaljke na satu)

Kontrolira brzinu vrtnje motora kontrolor leta (kontrolor, mozak). Obično je to mala ploča ili kutija s mnogo ulaza i izlaza. Postoji ogroman broj različitih kontrolera s različitim skupovima mogućnosti, različitim firmverom i različitim zadacima. Evo samo nekoliko:


Opći zadatak kontrolora leta je izvršiti upravljački ciklus nekoliko desetaka puta u sekundi, što uključuje: očitavanje očitanja senzora, očitavanje upravljačkih kanala, obradu informacija i izdavanje upravljačkih signala motorima kako bi se izvršile naredbe pilota. Ovo ćemo programirati.

Postoji mnogo različitih tipova senzora koji se mogu koristiti. Koristit ćemo one koji su već postali gotovo obvezni u svim quadcopterima troosni žiroskop i troosni akcelerometar. Akcelerometar mjeri ubrzanje, žiroskop mjeri kutnu brzinu. Zahvaljujući njima, kontrolor leta zna trenutne kutove nagiba, prevrtanja i skretanja. Ovi senzori mogu biti ugrađeni u kontroler leta ili vanjski. Proces izračunavanja triju kutova na temelju očitanja senzora tema je za poseban članak. Ali ovo ne moramo znati ovdje: MPU-6050 će učiniti sve umjesto nas. Ovo je mala ploča koja interno provodi potrebne izračune i filtriranje i proizvodi gotovo gotove kutove koristeći i2c protokol. Sve što trebamo učiniti je prebrojati ih, obraditi s ostalim podacima i poslati upravljačke signale motorima.

Motori na multikopterima troše velike struje, pa kontroler leta njima ne upravlja izravno, već preko posebnih hardverskih drajvera tzv. regulatori brzine (ESC, regulator, eska). Ovi regulatori se napajaju iz glavne ugrađene baterije, upravljački signal primaju od kontrolera, a na izlazu imaju tri žice (A, B, C), koje idu direktno na motore (svaki motor ima svoj regulator !)


“Protokol” komunikacije između regulatora i motora nije nam toliko bitan koliko “protokol” komunikacije između kontrolera leta i regulatora, jer regulatorom moramo programski upravljati s kontrolera. Postoje regulatori kojima se upravlja preko i2c, ali najčešći su oni kojima se upravlja pravokutnim signalom s minimalno 0 volti i maksimalno 3-5 volti (tzv. PWM ili PWM, a neki tvrde da je ispravnije - PPM. Više detalja, na primjer).

“Protokol” je jaka riječ: da bi se motoru naložilo da se vrti maksimalnom brzinom, kontroler mora poslati impulse koji traju 2 milisekunde, isprekidane logičkom nulom koja traje 10 - 20 milisekundi. Trajanje impulsa od 1 milisekunde odgovara zaustavljanju motora, 1,1 ms - 10% maksimalna brzina, 1,2 ms - 20%, itd. U praksi trajanje nule ne igra nikakvu ulogu, bitno je samo trajanje samog impulsa.

Unatoč svoj prividnoj jednostavnosti, ovdje postoji zasjeda: kontroleri leta su različiti s različitim postavkama, regulatori su različiti, a minimum (1 ms) i maksimum (2 ms) nisu univerzalni. Ovisno o mnogim čimbenicima, raspon od 1-2 ms zapravo može biti 1,1 - 1,9 ms. Da bi regulator i kontrolor govorili apsolutno istim jezikom, postoji procedura kalibracija regulatora. Tijekom ovog postupka, rasponi kontrola se mijenjaju i postaju jednaki rasponu kontrolera. Postupak je ugrađen u program svakog kontrolera i uključuje nekoliko njih jednostavnih koraka(koraci se mogu razlikovati ovisno o proizvođaču - pročitajte upute!):

  • Isključite napajanje regulatora.
  • Skinite propeler s motora.
  • Primijenite signal koji odgovara maksimalnoj brzini vrtnje na ulaz regulatora.
  • Priključite napajanje regulatoru. Motor mora ostati nepomičan bez vanjske pomoći.
  • Primijenite signal koji odgovara minimalnoj brzini vrtnje na ulaz regulatora.
  • Zastanite 1-2 sekunde, pričekajte karakteristično škripanje.
  • Isključite napajanje regulatora.

Nakon toga će se odgovarajuće granice intervala unijeti u kontroler. Prilikom pokušaja polijetanja s nekalibriranim regulatorima, posljedice mogu biti neočekivane: od naglog trzaja kvadrokoptera u najbliže stablo do potpune nepokretnosti motora pri bilo kojoj vrijednosti gasa.

PWM koristi potpuno isti princip ugrađeni prijemnik. Ovaj mali uređaj, primajući radio upravljačke signale sa zemlje i odašiljući ih kontroloru leta. Najčešće kontroler leta za svaki upravljački kanal (gas, nagib, roll itd.) ima svoj ulaz na koji se dovodi PWM. Logika interakcije je jednostavna: naredba, na primjer, "70% gas," kontinuirano ide od zemlje do prijemnika, gdje se pretvara u PWM i šalje u kontroler leta putem zasebne žice. Isto s nagibom, okretanjem, skretanjem.

Budući da prijemnik i kontroler imaju svoj prijateljski PWM odnos, oni će također morati biti kalibrirani: daljinski upravljači s prijemnicima razlikuju se svojim radnim rasponima. Upravljač se mora moći prilagoditi. Postupak radio kalibracija, za razliku od kalibracije regulatora, morat ćemo ga izraditi sami u sklopu programa leta. Opći plan kalibracije je sljedeći:

  • Skinite propelere s motora za svaki slučaj.
  • Nekako stavite kontroler u način radio kalibracije.
  • Kontroler započinje radio kalibraciju na nekoliko desetaka sekundi.
  • U zadanom vremenu pomaknite sve palice daljinskog upravljača u svim smjerovima dok se ne zaustave.
  • Regulator pamti maksimume i minimume za sve upravljačke kanale tijekom Unutarnja memorija stoljećima.

Dakle: tijekom radio kalibracije, kontroler leta pamti domete prijemnika za sve upravljačke kanale; Tijekom kalibracije ESC-a, raspon kontrolera leta unosi se u sve ESC-ove.

Osim programa za kontroler leta potreban je još jedan program: sučelje za postavljanje kontrolera leta. Najčešće je to PC program koji se preko USB-a povezuje s kontrolerom leta i korisniku omogućuje konfiguriranje i provjeru programa leta, npr.: pokretanje radijske kalibracije, konfiguriranje parametara stabilizacije, provjera rada senzora, postavljanje rute leta na kartu, odrediti ponašanje multikoptera kada se signal izgubi i još mnogo toga. Napisat ćemo naše konfiguracijsko sučelje u C++ i Qt u obliku uslužnog programa konzole. Evo ga, ako pogledate u budućnost:


Nitko nije imun na nezgode. Čak i plastični propeleri od deset inča na malim motorima mogu ostaviti krvave modrice na koži koje će boljeti još tjedan dana (osobno testirano). Lako se našminkati i napraviti frizuru ako uključite gas na daljinskom upravljaču dok nosite uključen kvadrokopter. Stoga kontrolor leta mora osigurati barem neku sigurnost: mehanizam naoružan/razoružan. Stanje "deaktivirano" quadcoptera znači da su motori isključeni i čak ni naredba za puni gas s daljinskog upravljača nema učinka, iako je napajanje dostavljeno. “Naoružano” stanje kvadrokoptera znači da naredbe s daljinskog upravljača izvršava kontrolor leta. U tom stanju kvadrokopteri polijeću, lete i slijeću. Kvadrokopter se uključuje i trebao bi odmah prijeći u isključeno stanje u slučaju da ga nepažljivi pilot uključi kada ručica za gas na daljinskom upravljaču nije na nuli. Da bi helikopter stavio u "naoružano" stanje, pilot treba napraviti neku unaprijed dogovorenu gestu palicama daljinskog upravljača. Često je ova gesta držanje lijeve palice u donjem desnom kutu (gas = 0%, skretanje = 100%) nekoliko sekundi. Nakon toga kontrolor leta provodi barem minimalni samotest i ako ga uspješno prođe, " naoružavši se"(spreman za let!) S drugom gestom (gas = 0%, skretanje = 0%) kvadrokopter" postaje razoružan“Još jedna dobra mjera sigurnosti je automatsko razoružavanje, ako je plin bio na nuli 2-3 sekunde.

O motorima, baterijama, regulatorima, propelerima

Izbor komponenti za multikopter tema je za čitav niz članaka. Ako ćete napraviti svoj prvi quadcopter, formulirajte za što vam treba i poslužite se savjetima iskusnih ili uzmite popis komponenti koje je netko drugi sastavio i na njemu uspješno letite.

Ipak, za opće razumijevanje, korisno je znati glavne točke.

Baterije

Među amaterima i profesionalcima sustava s više rotora, litij-polimerske baterije su najčešće kao glavni izvori energije za elektroniku i motore na vozilu. Razlikuju se po kapacitetu, naponu i maksimalnoj izlaznoj struji. Kapacitet se, kao i obično, mjeri u amper-satima ili miliamper-satima. Napon se mjeri u broju "ćelija" baterije. Jedna "limenka" je u prosjeku 3,7 volti. Potpuno napunjena "limenka" je 4,2 volta. Najčešće baterije su one s tri do šest ćelija. Maksimalna izlazna struja mjeri se u amperima i označava se, na primjer, ovako: 25C. C je kapacitet baterije, 25 je množitelj. Ako je kapacitet 5 ampera, tada takva baterija može isporučiti 25 * 5 = 125 ampera. Naravno, bolje je uzeti trenutni izlazni parametar s rezervom, ali, u osnovi, što je veći, to je baterija skuplja. Primjer označavanja: 25C 3S 4500mah.

Svaka banka je zasebna baterija. Svi su lemljeni u nizu. Kako bi se ravnomjerno teretile sve banke, predviđen je konektor za balansiranje s pristupom svakoj banci zasebno, a poseban uređaj za punjenje.

Motori, propeleri, regulatori

Glavni parametar motora bez četkica je njegov kv. Ovo je broj okretaja u minuti za svaki volt primijenjenog napona. Najčešći motori su s kv od 300 do 1100. Kv bliže 1000 obično se bira za male quadcoptere (1-2 kilograma plus 500 grama nosivosti) i opremljeni su plastičnim propelerima do 12 inča u promjeru. Veliki multikopteri (za podizanje dobre i teške foto-video opreme) ili dugoleteće letjelice (za rekorde vremena letenja) obično imaju motore s niskim kv (300-500) i ogromne karbonske propelere (15 - 20 inča u promjeru). Kv nije jedini važan parametar motora: često možete pronaći cijele tablice ovisnosti snage motora i potiska o napajanom naponu i vrsti ugrađenog propelera. Osim toga, svaki je motor dizajniran za vlastiti raspon napona (broj baterijskih ćelija) i svoju maksimalnu struju. Ako proizvođač piše 3-4S, ne biste ga trebali koristiti s 5S baterijama. Isto vrijedi i za regulatore.

Ako je motor projektiran za struju do 30A, tada bi regulator trebao biti projektiran za struju do 30 + 10A kako bi se spriječilo pregrijavanje. Loša kvaliteta ili neprikladni regulatori mogu uzrokovati takozvana "klizanja sinkronizacije" i zaustaviti motor u letu, a prepoznat ćete još jedan izraz za više rotora: " uhvatio planet." Još jedan važna točka- debljina i kvaliteta žica. Žica neodgovarajuće veličine ili loš konektor mogu dovesti do požara u zraku.

Kao što vidite, postoji mnogo nijansi. Nisam ni polovicu naveo, tako da je prilično teško sami odabrati komponente za svoj prvi multikopter.

Matematika stabilizacije, PID regulatori (PID)

Odlučite li se baviti multikopterom, prije ili kasnije morat ćete se pozabaviti podešavanjem PID regulatora, budući da se ovaj matematički aparat koristi u gotovo svim stabilizacijskim zadacima: stabilizaciji kutova quadcoptera u zraku, letenju i držanju položaja. pomoću GPS-a, držanje visine pomoću barometra, mehanizmi bez četkica stabilizacija video kamere u letu (camera gimbal).

Kupiš dvoosni gimbal kamere, staviš tu npr. GoPro, upališ ga i umjesto stabilizacije dobiješ trzanje, vibracije i trzaje, iako su svi senzori kalibrirani i mehanički problemi otklonjeni. Razlog su neispravni parametri PID regulatora.

Složiš multikopter, kalibriraš senzore, regulatore, radio, sve provjeriš, pokušaš poletjeti, a on u zraku toliko dosadan da ga i lagani povjetarac prevrne. Ili obrnuto: toliko je oštar da se iznenada otrgne i bez dopuštenja napravi trostruki salto. Razlog je i dalje isti: parametri PID regulatora.

Za mnoge uređaje koji koriste PID regulatore postoje upute za podešavanje, pa čak i nekoliko uz brojne video upute od samih korisnika. No, da bismo se lakše snalazili u ovoj raznolikosti, korisno je razumjeti kako ovi regulatori rade unutra. Osim toga, mi ćemo napisati naš vlastiti sustav stabilizacije kvadrokoptera! Predlažem da se "ponovno izmisli" i "na prste" razumjeti Formula PID regulatora. Za one koji više vole suhoparni matematički jezik, preporučam Wikipediju, jer... u ruskom jeziku materijal još nije predstavljen tako detaljno.

Kvadrokopter ćemo razmatrati u dvodimenzionalnom prostoru, gdje ima samo jedan kut - kut prevrtanja, i dva motora: lijevi i desni.


Kontrolor leta kontinuirano prima naredbe sa zemlje: "zakreni 30 stupnjeva", "zakreni -10 stupnjeva", "zaokreni 0 stupnjeva (drži horizont)"; zadatak mu je izvršiti ih što brže i točnije pomoću motora, uzimajući u obzir: vjetar, neravnomjernu raspodjelu težine quadcoptera, neravnomjerno trošenje motora, tromost quadcoptera itd. Stoga kontrolor leta mora kontinuirano rješavati problem koju brzinu rotacije primijeniti na svaki motor, uzimajući u obzir trenutnu vrijednost kuta nagiba i traženu. Kontinuirano je, naravno, jaka riječ. Sve ovisi o računalnim mogućnostima određenog hardvera. Na Adruinu je sasvim moguće smjestiti jednu iteraciju ciklusa obrade i kontrole u 10 milisekundi. To znači da će se jednom svakih 10 milisekundi očitavati kutevi quadcoptera i na temelju njih slati upravljački signali motorima. Tih 10 milisekundi se zove regulacijsko razdoblje. Jasno je da što je manja, to se regulacija događa češće i točnije.

Razina plina teče od prijemnika do regulatora. Označimo to. Podsjetit ću vas da je ovo aritmetički prosjek između brzina vrtnje svih motora, izražen kao postotak maksimalne brzine vrtnje. Ako su i brzine vrtnje lijevog i desnog motora, tada je:

gdje je odziv quadcoptera (sila) koji stvara okretni moment jer se lijevi motor vrti brže od gasa, a desni isto toliko sporije. također može imati negativne vrijednosti, tada će se desni motor brže vrtjeti. Ako naučimo izračunati ovu vrijednost pri svakoj iteraciji ciklusa obrade, tada ćemo moći kontrolirati quadcopter. Jasno je da u najmanju ruku treba ovisiti o trenutnom kutu kotrljanja () i željenom kutu kotrljanja (), koji dolazi s upravljačke ploče.

Zamislimo situaciju: primljena je naredba "drži horizont" ( = 0), a kvadrokopter se okrene ulijevo:


Razlika (pogreška) između i koju kontroler nastoji minimizirati.

Što je veća razlika između željenog kuta kotrljanja i trenutnog, to bi reakcija trebala biti jača, to bi se lijevi motor trebao brže okretati u odnosu na desni. Ako ovo napišemo koristeći našu notaciju:

Ovdje je P koeficijent proporcionalnosti. Što je veći, reakcija će biti jača, kvadrokopter će oštrije reagirati na odstupanja od potrebnog kuta zakretanja. Ova intuitivna i jednostavna formula opisuje rad proporcionalni regulator. Poanta je jednostavna: što više kvadrokopter odstupi od tražene pozicije, to ga više morate pokušavati vratiti. Nažalost, ova će formula morati biti komplicirana. glavni razlog- prekoračenje.

Za nekoliko desetaka milisekundi (nekoliko iteracija ciklusa obrade), pod utjecajem proporcionalnog regulatora, kvadrokopter će se vratiti na potrebnu razinu (u u ovom slučaju horizontalni položaj. Cijelo to vrijeme pogreška i napor će imati isti predznak, iako će biti sve manje i manje veličine. Postigavši ​​određenu brzinu okretanja (kutnu brzinu), kvadrokopter će se jednostavno prevrnuti na drugu stranu, jer ga nitko neće zaustaviti u željenom položaju. To je kao proljeće kojem se uvijek želi vratiti početni položaj, ali ako ga povučete i otpustite, fluktuirat će sve dok trenje ne prevlada. Naravno, i na quadcopter će utjecati trenje, ali praksa pokazuje da to nije dovoljno.

Zbog toga je proporcionalnom regulatoru potrebno dodati još jedan član koji će usporiti rotaciju kvadrokoptera i spriječiti prekoračenje (kotrljanje u suprotnom smjeru) – svojevrsnu imitaciju trenja u viskoznom mediju: što brže quadcopter okreće, potrebno ga je jače pokušati zaustaviti, naravno, u razumnim granicama. Brzinu rotacije (stopu promjene greške) označavamo kao , tada:

gdje je D podesivi koeficijent: što je veći, to je jača sila zaustavljanja. Iz školskog tečaja fizike pojavljuju se nejasna sjećanja da je brzina promjene bilo koje veličine derivacija te količine u odnosu na vrijeme:

.

I sada se proporcionalni regulator pretvara u proporcionalno-diferencijalni (proporcionalni član i diferencijal):

Pogrešku je lako izračunati, jer pri svakoj iteraciji znamo i ; P i D su parametri koji se mogu konfigurirati prije pokretanja. Za izračun derivacije (brzine promjene) potrebno je pohraniti prethodnu vrijednost, znati trenutnu vrijednost i znati vrijeme koje je proteklo između mjerenja (kontrolno razdoblje). I evo ga - fizika šestog razreda (brzina = udaljenost / vrijeme):

Regulatorno razdoblje; - vrijednost pogreške iz prethodne iteracije regulacijskog ciklusa. Usput, ova formula je najjednostavniji način numerička diferencijacija, a nama je ovdje sasvim prikladna.

Sada imamo proporcionalni diferencijalni regulator u ravnom bikopteru, ali postoji još jedan problem. Neka lijevi rub teži malo više od desnog ili, što je isto, lijevi motor radi malo lošije od desnog. Kvadrokopter je blago nagnut ulijevo i ne okreće se natrag: diferencijalni član je nula, a proporcionalni član, iako ima pozitivnu vrijednost, nije dovoljan da vrati kvadrokopter u horizontalni položaj, jer lijevi rub malo teži više od desnice. Kao rezultat toga, kvadrokopter će uvijek vući ulijevo.

Potreban je mehanizam za praćenje takvih odstupanja i njihovo ispravljanje. Karakteristična značajka takvih pogrešaka je da se s vremenom same ispravljaju. Integralni termin dolazi u pomoć. Pohranjuje zbroj svih pogrešaka u svim iteracijama petlje obrade. Kako će ovo pomoći? Ako proporcionalni član nije dovoljan da ispravi malu grešku, ali ona još uvijek postoji, postupno, tijekom vremena, integralni član dobiva na snazi, povećavajući odziv i kvadrokopter zauzima potrebni kut zakretanja.

Ovdje postoji jedna nijansa. Pretpostavimo da je 1 stupanj, kontrolni ciklus je 0,1 s. Tada će u jednoj sekundi zbroj pogrešaka poprimiti vrijednost od 10 stupnjeva. A ako je ciklus obrade 0,01 s, tada će količina dobiti čak 100 stupnjeva. Kako bi u istom vremenu integralni termin dobio istu vrijednost za različita razdoblja regulacije, pomnožit ćemo dobiveni iznos sa samim regulacijskim razdobljem. Lako je izračunati da se u oba slučaja iz primjera dobiva zbroj od 1 stupnja. Evo ga - integralni član (za sada bez podesivog koeficijenta):

gdje je jedan od konfigurabilnih parametara, kojih sada ima tri: . Ova formula je jednostavna za korištenje iz programski kod, a evo formule koja se daje u udžbenicima:

Postoji nekoliko njegovih varijacija, na primjer, možete ograničiti modul integralnog člana tako da ne prelazi određeni dopušteni prag (mi ćemo to učiniti).

Praksa

Pa, sada je vrijeme za vježbu odabira koeficijenata. Čitateljima se nudi JavaScript stranica s virtualnim kvadrokopterom kojeg su već vidjeli na slikama: odabir parametara PID regulatora za kvadrokopter(JSFiddle). Kod prvog pokretanja odmah se vidi prekoračenje - oscilacije oko tražene pozicije. Kada oscilacije prestanu, možete primijetiti učinak da se proporcionalni koeficijent ne može nositi s pogreškom zbog "asimetričnog" kvadrokoptera (postavljenog potvrdnim okvirom "Asymmetry"). Parametri dostupni za konfiguraciju su P, I, D. Sada znate što učiniti s njima. "Svitak" ispod kvadrokoptera može se kontrolirati potrebnom vrijednošću kotrljanja. “Interval (ms):” - regulacijski interval. Smanjenje je varanje, ali vrlo je korisno vidjeti kako to utječe na kvalitetu stabilizacije.

Za ljubitelje “čiste” matematike možemo ponuditi konfigurirati apstraktni PID regulator

Uneseni parametri se ne primjenjuju automatski: morate kliknuti "Primijeni". Nekoliko malih savjeta: ako vam se čini da kvadrokopter presporo reagira na kontrolu, možete povećati P, ali prevelika P vrijednost može dovesti do prekoračenja. Parametar D će vam pomoći da se nosite s prekoračenjem, ali prevelike vrijednosti će dovesti do čestih oscilacija, ili opet do prekoračenja. Parametar I je obično 10 - 100 puta manji od parametra P jer njegova snaga leži u akumulaciji tijekom vremena, a ne u brzom odgovoru.

Ručno podešavanje PID parametara zahtijeva praksu. Postoje analitičke metode za njihov izračun, ali zahtijevaju dobru pripremu i točno poznavanje mnogih parametara konkretnog sustava koji se prilagođava. Kao sredina između ručnog odabira i analitičkog izračuna, postoji širok raspon empirijskih metoda koje predlažu razni istraživači.

U našem 2D kvadrokopteru mijenja se samo jedan kut - kut nagiba. Za ugađanje 3D quadcoptera bit će potrebna tri neovisna PID regulatora za svaki od kutova, a kontrola određenog motora bit će zbroj napora svih kontrolera.

Zaključak prvog dijela

U ovom smo se članku upoznali s osnovnim pojmovima: quadcopter i princip leta, pitch, roll, yaw, gas, lebdeći gas, stabilizacijski način leta, kontroler leta, žiroskop, akcelerometar, regulator brzine, PWM, kalibracija kontrolera, radio kalibracija, ugrađeni prijamnik, sučelje za podešavanje kontrolera leta, uključeno/dezoružano stanje, automatsko deaktiviranje.

Nakon toga smo ponovno izmislili formulu PID regulator dodirujući malo numerička diferencijacija i integracija, i iskusio teži način konfiguriranja parametara P, ja, D na virtualni kvadrokopter .

Sada, ako ste vješti u programiranju svjetlosnih mačeva, možete započeti svoj program stabilizacije kvadrokoptera, ili još bolje, dodati svježe ideje postojećima. otvoreni izvor projekti. Eto, za tjedan-dva ću nastaviti priču kako je sve isprogramirano, testirano, srušeno, posjeklo prste i potpuno odletjelo u nepoznatom smjeru.

U zaključku ovog dijela jednostavno moram spomenuti osobu koja mi je pomogla u odabiru komponenti i postavljanju najsloženijeg (prvog!) quadcoptera na MegapirateNG firmwareu i strpljivo odgovorila na stotine pitanja o ovim vrlo osnovnim konceptima: SovGVD, hvala ! :-)

Kao nagradu onima koji su mogli protraćiti cijeli ovaj list, objavljujem ono što sam obećao mali video, poput našeg quadcoptera s našim "izumljenim" PID kontrolerima, leti na našem programu za Arduino Mega 2560:

Naravno da mu fali GPS-a, kao kod komercijalnih i serijskih proizvoda, malo mu fali stabilnosti, ali on je NAŠ i znamo ga izvana i iznutra do posljednjeg faktora integralnog koeficijenta! I stvarno je super što su nam takve tehnologije danas dostupne.

Unatoč činjenici da su quadcopteri iznimno moderna tema, odabir komponenti za sastavljanje vašeg uređaja ipak nije tako jednostavan. Odabir dijelova za određeni projekt je mučna potraga za optimalnom kombinacijom težine, snage i funkcionalnosti. Stoga, prije nego što uronimo u svijet bezbrojnih internetskih trgovina i bezimenih kineskih proizvođača, obavimo pripremni rad.

Što je quadcopter i zašto je potreban?

Multirotori, poznati i kao multikopteri ili jednostavno helikopteri, bespilotne su letjelice dizajnirane za zabavu, snimanje fotografija i videa iz zraka ili testiranje automatiziranih sustava.

Kopteri se obično razlikuju po broju korištenih motora - u rasponu od bikoptera s dva motora (kao GunShip iz filma Avatar) do oktakoptera s osam. Zapravo, broj motora ograničen je samo vašom maštom, budžetom i mogućnostima kontrolera leta. Klasična verzija je quadcopter s četiri motora smještena na križnim gredama. Francuz Étienne Oehmichen još je 1920. godine pokušao izgraditi takvu konfiguraciju, a 1922. je to čak i uspio. Zapravo, ovo je najjednostavniji i jeftina opcija napraviti letjelicu sposobnu podići u zrak male kamere poput GoPro bez ikakvih problema. Ali ako ćete poletjeti s ozbiljnom foto i video opremom, onda biste trebali odabrati helikopter s velikim brojem motora - to ne samo da će povećati nosivost, već i dodati pouzdanost ako jedan ili više motora zataji tijekom leta. .

Teorija leta

U teoriji leta (aerodinamici), uobičajeno je razlikovati tri kuta (ili tri osi rotacije), koji određuju orijentaciju i smjer vektora gibanja zrakoplova. Jednostavno rečeno, letjelica negdje "gleda" i negdje se kreće. Štoviše, možda se neće pomaknuti u smjeru u kojem "gleda". Čak i zrakoplovi u letu imaju neku vrstu "drift" komponente koja ih odvodi od smjera njihovog kursa. A helikopteri općenito mogu letjeti bočno.

Ova tri kuta se obično nazivaju roll, pitch i yaw. Prevrtanje je rotacija vozila oko njegove uzdužne osi (os koja ide od nosa do repa). Pitch je rotacija oko svoje poprečne osi (kljuca nos, podiže rep). Skretanje je rotacija oko vertikalne osi, najsličnija rotaciji u "zemaljskom" smislu.

Osnovni manevri (s lijeva na desno): ravno, okretanje/nagib i skretanje

U klasičnom dizajnu helikoptera, glavni rotor kontrolira nagib i nagib pomoću zakretne ploče lopatice. Budući da glavni rotor ima otpor zraka različit od nule, helikopter doživljava okretni moment usmjeren u smjeru suprotnom od rotacije rotora, a kako bi ga kompenzirao, helikopter ima repni rotor. Promjenom performansi repnog rotora (okretaja ili koraka) klasični helikopter kontrolira svoje skretanje. U našem slučaju, sve je kompliciranije. Imamo četiri vijka, dva se okreću u smjeru kazaljke na satu, dva u suprotnom smjeru. Većina konfiguracija koristi propelere fiksnog koraka i njima se može upravljati samo njihovom brzinom. Ako se svi okreću istom brzinom, međusobno će se poništiti: skretanje, okretanje i nagib bit će nula.

Ako povećamo broj okretaja u minuti jednog propelera koji se okreće u smjeru kazaljke na satu i smanjimo broj okretaja u minuti drugog propelera koji se okreće u smjeru kazaljke na satu, tada ćemo zadržati ukupni okretni moment i skretanje će i dalje biti jednaki nuli, ali okretanje ili nagib (ovisno o tome gdje radimo njegov "nos") će promijeniti. A ako povećamo brzinu na oba propelera koji se okreću u smjeru kazaljke na satu, a smanjimo brzinu na propelerima koji se okreću suprotno od kazaljke na satu (kako bismo održali ukupni uzgon), tada će se pojaviti moment koji će promijeniti kut skretanja. Jasno je da sve to nećemo raditi mi sami, već putno računalo koje će primati signale s komandnih palica, dodavati korekcije s akcelerometra i žiroskopa te vrtiti vijke po potrebi. Za projektiranje helikoptera potrebno je pronaći ravnotežu između težine, vremena leta, snage motora i drugih karakteristika. Sve to ovisi o konkretnim zadacima. Svatko želi da quad leti više, brže i duže, ali prosječno vrijeme leta je između 10 i 20 minuta, ovisno o kapacitetu baterije i ukupnoj težini leta. Vrijedno je zapamtiti da su sve karakteristike međusobno povezane i, na primjer, povećanje kapaciteta baterije dovest će do povećanja težine i, kao rezultat toga, smanjenja vremena leta. Da biste otprilike saznali koliko dugo će vaša konstrukcija lebdjeti u zraku i hoće li se uopće moći odvojiti od tla, postoji dobar online kalkulator ecalc.ch. Ali prije nego što unesete podatke u njega, morate formulirati zahtjeve za budući uređaj. Hoćete li instalirati kameru ili drugu opremu na uređaj? Koliko bi uređaj trebao biti brz? Koliko daleko trebate letjeti? Pogledajmo karakteristike različitih komponenti.


PX4 - putno računalo s punim UNIX sustavom

Okvir

Glavna točka koju treba odlučiti pri odabiru okvira je hoćete li koristiti gotov okvir ili ćete ga izraditi sami. S gotovim okvirom sve je jednostavnije, au svakom slučaju morat ćete naručiti puno dijelova. Istovremeno, uzimajući u obzir cijene u Kineske trgovine, domaća opcija može biti skuplja. S druge strane, bit će lakše popraviti vlastiti okvir u slučaju nezgode. Pa, naravno, možete napraviti bilo koji dizajn, čak i onaj najluđi, vlastitim rukama. Pogledajmo pobliže opciju samomontaže.

Okvir možete izraditi iz bilo kojeg dostupnog materijala (drvo, aluminij, plastika i tako dalje). Možete se malo uozbiljiti i izrezati ga na CNC stroju od tkanih karbonskih vlakana, a možete zakomplicirati zadatak i napraviti preklopnu strukturu.

Najlakša opcija za DIY entuzijaste je otići u OBI, Leroy Merlin ili na građevinsku tržnicu i kupiti aluminijsku cijev kvadrata 12 × 12, kao i aluminijski lim debljine 1,5 mm. Za izradu okvira od takvih materijala tipa "četiri štapa i spojnica" dovoljna je bušilica ili pila za metal. Ali morate biti spremni na činjenicu da takav dizajn neće dugo trajati. Ipak, svi ovi profili izrađeni su od vrlo mekanog materijala (AD31/AD33), koji će se lako saviti tijekom letova.


Oehmichen br. 2, četverokopter s posadom francuskog inženjera Etiennea Oehmichena, lansiran 1922.

Kao uzorak za svoj okvir možete uzeti pojednostavljeni tvornički okvir ili pronaći gotov crtež na Internetu. Složeniji materijali (primjerice karbonska vlakna) mogu se zamijeniti aluminijem - ako se pokaže težim, neće biti puno. U svakom slučaju, treba obratiti pozornost na duljinu i simetriju zraka. Duljina greda odabire se na temelju promjera korištenih propelera, tako da nakon njihove ugradnje razmak između krugova rotirajućih propelera bude najmanje 1-2 cm, a još više se ti krugovi ne smiju presijecati. Motori postavljeni na ruke trebaju biti jednako udaljeni od središta okvira, gdje će se nalaziti "mozak", i (u većini slučajeva) biti na istoj udaljenosti jedan od drugog, tvoreći jednakostranični poligon.

Prilikom projektiranja vrijedi uzeti u obzir da se središte okvira mora podudarati s težištem, tako da je ugradnja baterije straga između greda loša ideja osim ako se ne kompenzira opterećenjem sprijeda, poput kamere . Razmislite o tome na što će vaš uređaj sletjeti; za početnike možete savjetovati korištenje nečeg mekog na "trbuhu" ili krajevima ruku, na primjer, gustu pjenastu gumu ili teniske loptice. Također zaštitite bateriju u slučaju neuspješnog slijetanja, na primjer ugradnjom između ploča okvira ili postavljanjem pod skije za visoko slijetanje.

info

Let u prvom licu (FPV) vrlo je uzbudljiv, pogotovo ako koristite video naočale i HeadTracker koji će pratiti pokrete vaše glave na gimbalu FPV kamere, stvarajući osjećaj da ste u kokpitu.

Motori i propeleri

Zbog rotacije motora u različitim smjerovima, potrebno je koristiti višesmjerne propelere: rotaciju naprijed (suprotno od kazaljke na satu) i rotaciju unatrag (u smjeru kazaljke na satu). Obično se koriste dvokraki propeleri, lakše ih je balansirati i pronaći u trgovinama, dok će trokraki dati više potiska s manjim promjerom propelera, ali će zadavati dosta glavobolje pri balansiranju. Loš (jeftin i neuravnotežen) propeler može se raspasti u letu ili izazvati jake vibracije koje se prenose na senzore kontrolera leta. To će dovesti do ozbiljnih problema sa stabilizacijom i uzrokovat će puno zamućenja i "žele" u videu ako nešto snimate iz kvadrokoptera ili letite u prikazu iz prvog lica.


Regulator brzine,
aka ESC

Svaki propeler ima dva glavna parametra: promjer i korak. Različito su označeni kao 10×4,5, 10×45 ili jednostavno 1045. To znači da propeler ima promjer od 10 inča i korak od 4,5 inča. Što je propeler duži i što je korak veći, to može stvoriti veći potisak, ali će se istovremeno povećati opterećenje motora i potrošnja struje, zbog čega se može pregrijati i elektronika će otkazati. Stoga su vijci usklađeni s motorom. Pa, ili motor za propelere, ovisno kako gledate. Obično se na web stranicama prodavača motora mogu naći informacije o preporučenim propelerima i baterijama za odabrani motor, kao i testovi generiranog potiska i učinkovitosti. Tu su i propeleri s promjenjivim korakom, koji će u teoriji povećati manevarske sposobnosti, ali u stvarnosti će dodati složenu mehaniku koja je sklona trošenju i lomljenju, nakon čega slijede skupi popravci.

Također, što je propeler veći, veća mu je inercija. Ako vam je potrebna manevarska sposobnost, bolje je odabrati propelere s velikim korakom ili tri lopatice. S istom veličinom stvaraju 1,2–1,5 puta veći potisak. Jasno je da propeleri i njihova brzina vrtnje moraju biti odabrani tako da mogu stvoriti potisak veći od težine aparata.

I na kraju, motori bez četkica. Motori imaju ključni parametar - kV. Ovo je broj okretaja u minuti koje će motor napraviti po voltu primijenjenog napona. Ovo nije snaga motora, to je njegov, da tako kažem, "prijenosni omjer". Što je niži kV, manja je brzina, ali veći moment. Što je više kV pri istoj snazi, veća je brzina i manji moment. Prilikom odabira motora, oni se vode činjenicom da će u normalnom načinu rada raditi na 50% maksimalne snage. Nemojte misliti da što je veći kV, to bolje; za helikoptere s tipičnom 3S baterijom, preporučeni broj je u rasponu od 700 do 1000 kV.

info

Izdržljiviji materijal je duralumin (D16T). Praktično se ne savija, prilično je elastičan i koristi se u zrakoplovstvu. Profili iz njega se ne prodaju u OBI-ju, ali ih možete uhvatiti na tržištu Mitinsky na trećem katu; bili su i na tržištu Stroy TVC.

Snaga i regulatori snage

Kapetan predlaže: što je veća snaga motora, to mu treba više baterije. Velika baterija nije samo njezin kapacitet (čitaj: vrijeme leta), već i maksimalna struja koju isporučuje. Ali što je veća baterija, to je veća njena težina, što nas tjera da prilagodimo svoje procjene u pogledu propelera i motora. Ovih dana svi koriste litij polimer (LiPo) baterije. Oni su lagani, prostrani, s visokom strujom pražnjenja. Jedini nedostatak je što ne rade dobro na temperaturama ispod nule, ali ako ih držite u džepu i spojite ih neposredno prije leta, tada se tijekom pražnjenja lagano zagrijavaju i nemaju vremena za zamrzavanje. LiPo ćelije proizvode napon od 3,7 V.

Prilikom odabira baterije obratite pozornost na tri njena parametra: kapacitet, mjeren u miliamper satima, maksimalnu struju pražnjenja u kapacitetu baterije (C) i broj ćelija (S). Prva dva parametra su međusobno povezana, a kada ih pomnožite, saznat ćete koliku struju ova baterija može isporučiti dugo vremena. Na primjer, vaši motori troše svaki po 10 A i ima ih četiri, a baterija ima parametre 2200 mAh 30/40C, pa je za helikopter potrebno 4 10 A = 40 A, a baterija može proizvesti 2,2 A 30 = 66 A. ili 2,2 A 40 = 88 A tijekom 5–10 sekundi, što će očito biti dovoljno za napajanje uređaja. Također, ovi koeficijenti izravno utječu na težinu baterije. Pažnja! Ako nema dovoljno struje, baterija će se u najboljem slučaju napuhati i otkazati, au najgorem će se zapaliti ili eksplodirati; to se također može dogoditi kada kratki spoj, oštećenja ili nepravilnih uvjeta skladištenja i punjenja, stoga koristite specijalizirane punjače, baterije čuvajte u posebnim nezapaljivim vrećicama i letite s "biperom" koji će upozoravati na pražnjenje. Broj ćelija (S) označava broj LiPo ćelija u bateriji, svaka ćelija proizvodi 3,7 V, a, na primjer, 3S baterija će dati približno 11,1 V. Vrijedno je obratiti pozornost na ovaj parametar, budući da brzina ovisi na njemu broj okretaja motora i vrstu korištenih regulatora.

Elementi baterije kombinirani su u seriju ili paralelno. Kada je spojen u seriju, napon se povećava, kada je spojen paralelno, povećava se kapacitet. Dijagram spajanja elemenata u bateriji može se razumjeti njegovim oznakama. Na primjer, 3S1P (ili jednostavno 3S) su tri elementa povezana u seriju. Napon takve baterije bit će 11,1 V. 4S2P je osam elemenata, dvije skupine, spojene paralelno s četiri serijska elementa.

Međutim, motori nisu spojeni na bateriju izravno, već preko tzv. regulatora brzine. Kontroleri brzine (također poznati kao ESC) kontroliraju brzinu rotacije motora, čineći vaš helikopter ravnotežom na mjestu ili letenjem u željenom smjeru. Većina regulatora ima ugrađen regulator struje od 5 V, iz kojeg možete napajati elektroniku (osobito "mozak"), ili možete koristiti zasebni regulator struje (UBEC). Regulatori brzine odabiru se na temelju trenutne potrošnje motora, kao i mogućnosti treptanja. Konvencionalni kontroleri su prilično spori u smislu odgovora na dolazni signal i imaju mnogo nepotrebnih postavki za konstrukciju helikoptera, pa se flešuju s prilagođenim firmwareom SimonK ili BLHeli. Kinezi su i tu priskočili u pomoć, a često se mogu naći regulatori brzine s već ažuriranim firmwareom. Ne zaboravite da takvi regulatori ne prate stanje baterije i mogu je isprazniti ispod 3,0 V po ćeliji, što će dovesti do njezinog oštećenja. Ali u isto vrijeme, na konvencionalnim ESC-ovima vrijedi promijeniti vrstu baterije koja se koristi s LiPo na NiMH ili onemogućiti smanjenje brzine kada se izvor napajanja isprazni (prema uputama), tako da na kraju leta motor se iznenada ne gasi i vaš dron ne pada.

Motori su povezani s regulatorom brzine s tri žice, redoslijed nije bitan, ali ako zamijenite bilo koje dvije od tri žice, motor će se vrtjeti u suprotnom smjeru, što je vrlo važno za helikoptere.

Dvije žice za napajanje koje dolaze iz regulatora moraju biti spojene na bateriju. NEMOJTE ZBIJENITI POLARITET! Općenito, radi praktičnosti, regulatori nisu spojeni na samu bateriju, već na takozvani Power Distribution Module - modul za distribuciju energije. Ovo je općenito samo ploča na kojoj su zalemljene žice za napajanje regulatora, zalemljene su grane za njih i zalemljen je kabel za napajanje koji ide do baterije. Naravno, bateriju nije potrebno lemiti, već je potrebno spojiti preko konektora. Ne želite ponovno lemiti bateriju svaki put kad se isprazni.

Putno računalo i senzori

Izbor kontrolera leta za helikoptere je vrlo velik - od jednostavnog i jeftinog KapteinKUK-a i nekoliko projekata otvorenog koda za Arduino-kompatibilne kontrolere do skupog komercijalnog DJI Wookonga. Ako ste pravi haker, onda vas zatvoreni kontroleri ne bi trebali previše zanimati, dok će otvoreni projekti, pa čak i oni temeljeni na popularnom Arduinu, privući brojne programere. Mogućnosti bilo kojeg kontrolera leta mogu se procijeniti prema senzorima koji se u njemu koriste:

Žiroskop vam omogućuje da držite helikopter pod određenim kutom i uključen je u sve kontrolere; akcelerometar pomaže odrediti položaj helikoptera u odnosu na tlo i usmjerava ga paralelno s horizontom (ugodan let); Barometar omogućuje držanje uređaja na određenoj nadmorskoj visini. Na očitanja ovog senzora uvelike utječu strujanja zraka iz propelera, pa ga trebate sakriti ispod komada pjenaste gume ili spužve; Kompas i GPS zajedno dodaju funkcije kao što su zadržavanje smjera, zadržavanje položaja, povratak na početnu točku i dodjeljivanje rute (autonomni let). Trebali biste pažljivo pristupiti postavljanju kompasa, jer na njegova očitanja uvelike utječu metalni predmeti u blizini ili strujne žice, zbog čega "mozak" neće moći odrediti točan smjer kretanja; sonar ili ultrazvučni daljinomjer koristi se za točnije zadržavanje visine i autonomno slijetanje; optički senzor iz miša koristi se za održavanje položaja na malim visinama; Trenutni senzori određuju preostalu napunjenost baterije i mogu aktivirati funkcije povratka na lansiranje ili slijetanje.

Trenutno postoje tri glavna projekta otvorenog koda: MultiWii, ArduCopter i njegova portirana verzija MegaPirateNG. MultiWii je najjednostavniji od njih, za rad je potreban Arduino s 328p, 32u4 ili 1280/2560 procesorom i barem jednim senzorom žiroskopa. ArduCopter je projekt prepun svih vrsta funkcionalnosti, od jednostavnog lebdenja do izvođenja složenih zadataka rute, ali zahtijeva poseban hardver temeljen na dva ATmega čipa. MegaPirateNG je klon ArduCoptera koji može raditi na običnom Arduinu s 2560 čipom i minimalnim skupom senzora uključujući žiroskop, akcelerometar, barometar i kompas. Podržava sve iste značajke kao i original, ali uvijek sustiže u razvoju.


napredni devet-
daljinski upravljač kanala

Situacija s hardverom za otvorene projekte je slična, kao i s okvirima za helikoptere, odnosno možete kupiti gotov kontroler ili ga sastaviti sami od nule ili na temelju Arduina. Prije kupnje uvijek biste trebali obratiti pozornost na senzore koji se koriste u ploči, budući da razvoj tehnologije ne stoji mirno, a stari se nekako moraju prodati Kinezima, a osim toga, otvoreni firmware ne može podržati sve senzore.

Konačno, još jedno računalo vrijedno spomena je PX4, koje se razlikuje od Arduino klonova po tome što ima UNIX-ov operacijski sustav stvarnom vremenu, s ljuskom, procesima i svim stvarima. Ali moramo vas upozoriti da je PX4 nova i prilično sirova platforma. Neće letjeti odmah nakon sklapanja.

Postavljanje parametara leta, kao i programa za postavljanje, vrlo je individualno za svaki projekt, a teorija o tome mogla bi potrajati još jedan članak, tako da ukratko: gotovo sav firmware za multikoptere temelji se na PID kontroleru, a glavni parametar koji zahtijeva intervenciju je proporcionalna komponenta, označena kao P ili rateP. Ako se vaš helikopter tijekom polijetanja trza s jedne na drugu stranu, tada bi se ova vrijednost trebala smanjiti, ali ako sporo reagira na vanjske utjecaje, naprotiv, povećajte je; druge nijanse možete pronaći u uputama i na web stranicama programera.

Sigurnost

Svi početnici, kada razmišljaju o sigurnosti, sjetite se AR.Drone-a i njegove zaštite propelera. Ovaj dobra opcija, i to radi, ali samo na malim i lakim uređajima, a kada se težina vašeg helikoptera počne približavati dva kilograma ili već odavno prelazi tu brojku, tada vas može spasiti samo čvrsta željezna konstrukcija koja će biti teška i, kao razumijete, vrlo će smanjiti nosivost i autonomiju leta. Stoga je bolje prvo trenirati daleko od ljudi i imovine koja se može oštetiti, a kako se vaše vještine budu poboljšavale, zaštita više neće biti potrebna. Ali čak i ako ste iskusan pilot, ne zaboravite na sigurnosne mjere opreza i razmislite o mogućim negativnim posljedicama vašeg leta u izvanrednim situacijama, posebno kada letite na prepunim mjestima. Ne zaboravite da kvar kontrolera ili komunikacijskog kanala može dovesti do toga da uređaj odleti daleko od vas, a potom i GPS tracker unaprijed instaliran na helikopteru ili jednostavan, ali vrlo glasan biper, čijim zvukom vas može odrediti njegov položaj. Unaprijed postavite i provjerite funkciju zaštite od kvara vašeg kontrolera leta, koja će vam pomoći da sletite ili vratite helikopter na početnu točku ako se izgubi signal s daljinskog upravljača.

Kontrolirati

Malo o radio opremi. Danas gotovo svi odašiljači za leteće modele rade na frekvenciji od 2,4 GHz. Dosta su dalekometni, a ovaj Raspon frekvencija nije tako bučan kao, na primjer, 900 MHz. Za let su općenito dovoljna četiri kanala: gas, skretanje, nagib i okretanje. Pa, osam kanala je sasvim dovoljno za nešto drugo.

info

Da biste letjeli s kamerom, nabavite gimbal koji će držati kameru paralelno s horizontom tijekom manevara i pomoći u kontroli nagiba kamere. Većina kontrolera ima izlaze za stabilizaciju servo pokretanih gimbala, kao i izlaz za upravljački prekidač okidača fotoaparata.

Komplet se obično sastoji od samog daljinskog upravljača i prijemnika. Prijemnik sadrži upravljačke tipke i dodatne tipke. Obično se odabire oprema Mode2, kada lijeva palica kontrolira gas i rotaciju, a desna palica kontrolira nagib helikoptera. Sve ručke, osim gasa, opterećene su oprugom i vraćaju se u prvobitni položaj kada se otpuste. Također je vrijedno obratiti pozornost na broj kanala. Dron će zahtijevati četiri kontrolna kanala i jedan kanal za prebacivanje načina leta, a dodatni kanali također mogu biti potrebni za upravljanje kamerom, za konfiguraciju ili za posebne načine rada kontrolera leta. Prilikom odabira daljinskog upravljača trebali biste razmotriti i mogućnost promjene radio modula kako bi se u budućnosti mogao lako ažurirati.

Pozdrav Habrovci!
U ovoj seriji članaka otvorit ćemo poklopac quadcoptera malo više nego što hobi zahtijeva, a također ćemo napisati, konfigurirati i pokrenuti vlastiti program za kontroler leta, a to će biti obična Arduino Mega 2560 ploča.



Pred nama je:

  1. Osnovni pojmovi (za pilote helikoptera početnike).
  2. PID regulatori s interaktivnom web demonstracijom rada na virtualnom quadcopteru.
  3. Stvarni program za Arduino i konfiguracijski program za Qt.
  4. Opasni testovi kvadrokoptera na užetu. Prvi letovi.
  5. Slom i gubitak u polju. Automatsko pretraživanje iz zraka koristeći Qt i OpenCV.
  6. Završni uspješni testovi. Sažimajući. Gdje ići?


Materijal je pozamašan, ali pokušat ću ga smjestiti u 2-3 članka.
Danas nas očekuju: spoiler s videom kako je naš quadcopter letio; Osnovni koncepti; PID regulatori i praksa izbora njihovih koeficijenata.

Čemu sve ovo?

Akademski interes, koji, usput, ne prati samo mene (,). I, naravno, za dušu. Sjajno sam se zabavljala radeći i osjetila pravu, neopisivu sreću kada je “TO” poletjelo s mojim programom :)

Za koga?

Ovaj materijal također može biti od interesa za ljude koji su daleko, ili koji se tek planiraju uključiti u sustave s više rotora. Razgovarajmo sada o svrsi glavnih komponenti kvadrokoptera, kako međusobno djeluju, o osnovnim konceptima i principima leta. Naravno, svo znanje koje nam je potrebno možemo naći na Internetu, ali ne možemo biti prisiljeni da ga tražimo na beskrajnom Internetu.

Bez ugrožavanja vašeg razumijevanja osnovnih pojmova, slobodno preskočite sve što znate do sljedećeg nepoznatog pojma, podebljano, odnosno na nerazumljivu ilustraciju.

NE #1!

Ne počinjite pisati vlastiti program za kontroler leta dok ne isprobate gotova rješenja, kojih sada ima dosta (Ardupilot, MegapirateNG, MiltiWii, AeroQuad itd.). Prije svega, opasno je! Potrebna je vježba za upravljanje kvadrokopterom bez GPS-a i barometra, a još više kada zaglibira, preokrene se ili ne leti točno gdje bi trebao - a to je gotovo neizbježno tijekom prvih testova. Drugo, bit će vam puno puta lakše programirati ako razumijete što treba programirati i kako bi to na kraju trebalo raditi. Vjeruj mi: matematika leta samo je mali dio programskog koda.

NE #2!

Nemojte se upuštati u pisanje vlastitog programa za kontrolora leta ako nemate akademski interes i trebate samo ono što gotova rješenja već dugo mogu učiniti (letjeti, fotografirati, snimati video, letjeti na zadatak, itd.) Dok sve napišete sami, to će trajati dugo, čak i ako niste sami.

Osnovni koncepti


Kvadrokopteri dolaze u različitim varijantama, ali sve ih ujedinjuju četiri glavna rotora:

Unatoč prividnoj simetriji, vrlo je važno za pilota da razlikuje gdje se nalazi prednji dio kvadrokoptera (prikazano strelicom). Ovdje, kao u radio-upravljanim modelima automobila: kada se zada naredba "naprijed", kvadrokopter ne leti kamo gleda pilot, već kamo pokazuje zamišljeni nos kvadrokoptera. To je prepuno opasnosti: početnicima može biti teško vratiti sebi uređaj koji je zahvatio vjetar, nekako okrenut na stranu (mi, naravno, ne govorimo o letenju u kameri iz prvog lica i o „pametnom ” načini letenja pomoću kompasa i GPS-a.) Rješenje Ovaj problem može se djelomično riješiti prednjim vijcima ili gredama druge boje, nekom vrstom kuglice ispred ili LED diodama različitih boja. Ali sve se to pokaže beskorisnim kada se pepelats brzo pretvori u točkicu iznad horizonta.

Letjet ćemo na okviru kvadrokoptera u obliku slova "X" jer mi se više sviđa kako izgleda. Svaki dizajn ima svoje prednosti i svrhu. Osim kvadrokoptera postoje i drugi multikopteri. Čak i ako ne računate egzotične mogućnosti, još uvijek ih postoji cijela hrpa!



Idemo shvatiti kako je naš quadcopter strukturiran iznutra i što bi kontroler leta koji planiramo programirati trebao raditi.




Kutovi pitch, roll and yaw (nagib, kotrljanje, skretanje)- kutovi po kojima se uobičajeno određuje i postavlja orijentacija kvadrokoptera u prostoru.


Ponekad se riječ "kut" izostavi i jednostavno se kaže: pitch, roll, yaw. Ali prema Wikipediji to nije sasvim točno. Let quadcoptera u traženom smjeru postiže se promjenom ta tri kuta. Na primjer, da bi letio naprijed, kvadrokopter se mora nagnuti jer se stražnji motori okreću malo jače od prednjih:

Plinski kvadrokopter- aritmetička sredina između brzina vrtnje svih motora. Što je više plina, veći je ukupni potisak motora, oni više vuku kvadrokopter gore(NE IDI NAPRIJED!!! “Papuče na podu” ovdje označavaju najbrži uspon). Obično se mjeri kao postotak: 0% - motori su zaustavljeni, 100% - vrte se maksimalnom brzinom. Plin lebdi- minimalna razina plina koja je potrebna da quadcopter ne izgubi visinu.

Gas, nagib, okretanje, skretanje - ako možete kontrolirati ova četiri parametra, onda možete kontrolirati i kvadrokopter. Ponekad se nazivaju i kontrolnim kanalima. Ako ste kupili dvokanalni daljinski upravljač, nećete moći upravljati kvadrokopterom. Trokanalni je prikladniji za male helikoptere: možete letjeti bez kontrole prevrtanja, ali to nije zgodno na quadcopteru. Ako želite mijenjati načine letenja, morat ćete izdvojiti petokanalni daljinski upravljač. Ako želite kontrolirati nagib i pomicanje kamere na brodu, postoje još dva kanala, iako profesionalci za to koriste zasebni daljinski upravljač.

Postoji mnogo načina letenja. Koriste se GPS, barometar i daljinomjer. Ali želimo implementirati onaj osnovni - način stabilizacije ( ubosti, stabilizirati, leti u “stubu”), u kojem kvadrokopter održava kutove koji su mu zadani s daljinskog upravljača, bez obzira na vanjske čimbenike. U ovom načinu rada, u nedostatku vjetra, kvadrokopter može visjeti gotovo na mjestu. Pilot će morati kompenzirati vjetar.

Smjer rotacije vijaka nije odabran slučajno. Kad bi se svi motori vrtjeli u jednom smjeru, kvadrokopter bi se vrtio u suprotnom smjeru zbog stvorenih momenta. Stoga se uvijek jedan par suprotnih motora okreće u jednom, a drugi par u drugom smjeru. Učinak pojave rotacijskih momenta koristi se za promjenu kuta skretanja: jedan par motora počinje se okretati malo brže od drugog, a sada se kvadrokopter polako okreće prema nama (kakav užas):



  • LFW - lijeva prednja rotacija u smjeru kazaljke na satu (lijeva prednja rotacija u smjeru kazaljke na satu)
  • RFC - desna prednja rotacija u smjeru suprotnom od kazaljke na satu (desna prednja rotacija u smjeru suprotnom od kazaljke na satu)
  • LBC - lijeva stražnja rotacija u smjeru suprotnom od kazaljke na satu (lijeva stražnja, rotacija u suprotnom smjeru kazaljke na satu)
  • RBW - desno nazad rotacija u smjeru kazaljke na satu (desno straga, rotacija u smjeru kazaljke na satu)


Kontrolira brzinu vrtnje motora kontrolor leta (kontrolor, mozak). Obično je to mala ploča ili kutija s mnogo ulaza i izlaza. Postoji ogroman broj različitih kontrolera s različitim skupovima mogućnosti, različitim firmverom i različitim zadacima. Evo samo nekoliko:




Opći zadatak kontrolora leta je izvršiti upravljački ciklus nekoliko desetaka puta u sekundi, što uključuje: očitavanje očitanja senzora, očitavanje upravljačkih kanala, obradu informacija i izdavanje upravljačkih signala motorima kako bi se izvršile naredbe pilota. Ovo ćemo programirati.

Postoji mnogo različitih tipova senzora koji se mogu koristiti. Koristit ćemo one koji su već postali gotovo obvezni u svim quadcopterima troosni žiroskop i troosni akcelerometar. Akcelerometar mjeri ubrzanje, žiroskop mjeri kutnu brzinu. Zahvaljujući njima, kontrolor leta zna trenutne kutove nagiba, prevrtanja i skretanja. Ovi senzori mogu biti ugrađeni u kontroler leta ili vanjski. Proces izračunavanja triju kutova na temelju očitanja senzora tema je za poseban članak. Ali ovo ne moramo znati ovdje: MPU-6050 će učiniti sve umjesto nas. Ovo je mala ploča koja interno provodi potrebne izračune i filtriranje i proizvodi gotovo gotove kutove koristeći i2c protokol. Sve što trebamo učiniti je prebrojati ih, obraditi s ostalim podacima i poslati upravljačke signale motorima.

Motori na multikopterima troše velike struje, pa kontroler leta njima ne upravlja izravno, već preko posebnih hardverskih drajvera tzv. regulatori brzine (ESC, regulator, eska). Ovi regulatori se napajaju iz glavne ugrađene baterije, upravljački signal primaju od kontrolera, a na izlazu imaju tri žice (A, B, C), koje idu direktno na motore (svaki motor ima svoj regulator !)




“Protokol” komunikacije između regulatora i motora nije nam toliko bitan koliko “protokol” komunikacije između kontrolera leta i regulatora, jer regulatorom moramo programski upravljati s kontrolera. Postoje regulatori kojima se upravlja preko i2c, ali najčešći su oni kojima se upravlja pravokutnim signalom s minimalno 0 volti i maksimalno 3-5 volti (tzv. PWM ili PWM, a neki tvrde da je ispravnije - PPM. Više detalja, na primjer).

“Protokol” je jaka riječ: da bi se motoru naložilo da se vrti maksimalnom brzinom, kontroler mora poslati impulse koji traju 2 milisekunde, isprekidane logičkom nulom koja traje 10 - 20 milisekundi. Trajanje impulsa od 1 milisekunde odgovara zaustavljanju motora, 1,1 ms - 10% maksimalne brzine, 1,2 ms - 20% itd. U praksi trajanje nule ne igra nikakvu ulogu, bitno je samo trajanje samog impulsa.

Unatoč svoj prividnoj jednostavnosti, ovdje postoji zasjeda: kontroleri leta su različiti s različitim postavkama, regulatori su različiti, a minimum (1 ms) i maksimum (2 ms) nisu univerzalni. Ovisno o mnogim čimbenicima, raspon od 1-2 ms zapravo može biti 1,1 - 1,9 ms. Da bi regulator i kontrolor govorili apsolutno istim jezikom, postoji procedura kalibracija regulatora. Tijekom ovog postupka, rasponi kontrola se mijenjaju i postaju jednaki rasponu kontrolera. Postupak je ugrađen u program svakog regulatora i uključuje nekoliko jednostavnih koraka (koraci se mogu razlikovati ovisno o proizvođaču - pročitajte upute!):

  • Isključite napajanje regulatora.
  • Skinite propeler s motora.
  • Primijenite signal koji odgovara maksimalnoj brzini vrtnje na ulaz regulatora.
  • Priključite napajanje regulatoru. Motor mora ostati nepomičan bez vanjske pomoći.
  • Primijenite signal koji odgovara minimalnoj brzini vrtnje na ulaz regulatora.
  • Zastanite 1-2 sekunde, pričekajte karakteristično škripanje.
  • Isključite napajanje regulatora.


Nakon toga će se odgovarajuće granice intervala unijeti u kontroler. Prilikom pokušaja polijetanja s nekalibriranim regulatorima, posljedice mogu biti neočekivane: od naglog trzaja kvadrokoptera u najbliže stablo do potpune nepokretnosti motora pri bilo kojoj vrijednosti gasa.

PWM koristi potpuno isti princip ugrađeni prijemnik. Ovo je mali uređaj koji prima radio upravljačke signale sa zemlje i šalje ih kontroloru leta. Najčešće kontroler leta za svaki upravljački kanal (gas, nagib, roll itd.) ima svoj ulaz na koji se dovodi PWM. Logika interakcije je jednostavna: naredba, na primjer, "70% gas," kontinuirano ide od zemlje do prijemnika, gdje se pretvara u PWM i šalje u kontroler leta putem zasebne žice. Isto s nagibom, okretanjem, skretanjem.

Budući da prijemnik i kontroler imaju svoj prijateljski PWM odnos, oni će također morati biti kalibrirani: daljinski upravljači s prijemnicima razlikuju se svojim radnim rasponima. Upravljač se mora moći prilagoditi. Postupak radio kalibracija, za razliku od kalibracije regulatora, morat ćemo ga izraditi sami u sklopu programa leta. Opći plan kalibracije je sljedeći:

  • Skinite propelere s motora za svaki slučaj.
  • Nekako stavite kontroler u način radio kalibracije.
  • Kontroler započinje radio kalibraciju na nekoliko desetaka sekundi.
  • U zadanom vremenu pomaknite sve palice daljinskog upravljača u svim smjerovima dok se ne zaustave.
  • Kontroler stoljećima pohranjuje maksimume i minimume za sve upravljačke kanale u internoj memoriji.

Dakle: tijekom radio kalibracije, kontroler leta pamti domete prijemnika za sve upravljačke kanale; Tijekom kalibracije ESC-a, raspon kontrolera leta unosi se u sve ESC-ove.

Osim programa za kontroler leta potreban je još jedan program: sučelje za postavljanje kontrolera leta. Najčešće je to PC program koji se preko USB-a povezuje s kontrolerom leta i korisniku omogućuje konfiguriranje i provjeru programa leta, npr.: pokretanje radijske kalibracije, konfiguriranje parametara stabilizacije, provjera rada senzora, postavljanje rute leta na kartu, odrediti ponašanje multikoptera kada se signal izgubi i još mnogo toga. Napisat ćemo naše konfiguracijsko sučelje u C++ i Qt u obliku uslužnog programa konzole. Evo ga, ako pogledate u budućnost:




Nitko nije imun na nezgode. Čak i plastični propeleri od deset inča na malim motorima mogu ostaviti krvave modrice na koži koje će boljeti još tjedan dana (osobno testirano). Lako se našminkati i napraviti frizuru ako uključite gas na daljinskom upravljaču dok nosite uključen kvadrokopter. Stoga kontrolor leta mora osigurati barem neku sigurnost: mehanizam naoružan/razoružan. Stanje "deaktivirano" quadcoptera znači da su motori isključeni i čak ni naredba za puni gas s daljinskog upravljača nema učinka, iako je napajanje dostavljeno. “Naoružano” stanje kvadrokoptera znači da naredbe s daljinskog upravljača izvršava kontrolor leta. U tom stanju kvadrokopteri polijeću, lete i slijeću. Kvadrokopter se uključuje i trebao bi odmah prijeći u isključeno stanje u slučaju da ga nepažljivi pilot uključi kada ručica za gas na daljinskom upravljaču nije na nuli. Da bi helikopter stavio u "naoružano" stanje, pilot treba napraviti neku unaprijed dogovorenu gestu palicama daljinskog upravljača. Često je ova gesta držanje lijeve palice u donjem desnom kutu (gas = 0%, skretanje = 100%) nekoliko sekundi. Nakon toga kontrolor leta provodi barem minimalno samotestiranje i ako ono uspješno prođe, “ naoružavši se"(spreman za let!) S drugom gestom (gas = 0%, skretanje = 0%) quadcopter " postaje razoružan". Još jedna dobra sigurnosna mjera je automatsko razoružavanje, ako je plin bio na nuli 2-3 sekunde.

O motorima, baterijama, regulatorima, propelerima



Matematika stabilizacije, PID regulatori (PID)


Odlučite li se baviti multikopterom, prije ili kasnije morat ćete se pozabaviti podešavanjem PID regulatora, budući da se ovaj matematički aparat koristi u gotovo svim stabilizacijskim zadacima: stabilizaciji kutova quadcoptera u zraku, letenju i držanju položaja. pomoću GPS-a, držanje visine pomoću barometra, mehanizmi bez četkica stabilizacija video kamere u letu (camera gimbal).

Kupiš dvoosni gimbal kamere, staviš tu npr. GoPro, upališ ga i umjesto stabilizacije dobiješ trzanje, vibracije i trzaje, iako su svi senzori kalibrirani i mehanički problemi otklonjeni. Razlog su neispravni parametri PID regulatora.

Složiš multikopter, kalibriraš senzore, regulatore, radio, sve provjeriš, pokušaš poletjeti, a on u zraku toliko dosadan da ga i lagani povjetarac prevrne. Ili obrnuto: toliko je oštar da se iznenada otrgne i bez dopuštenja napravi trostruki salto. Razlog je i dalje isti: parametri PID regulatora.

Za mnoge uređaje koji koriste PID regulatore postoje upute za podešavanje, pa čak i nekoliko uz brojne video upute od samih korisnika. No, da bismo se lakše snalazili u ovoj raznolikosti, korisno je razumjeti kako ovi regulatori rade unutra. Osim toga, mi ćemo napisati naš vlastiti sustav stabilizacije kvadrokoptera! Predlažem da se "ponovno izmisli" i "na prste" razumjeti Formula PID regulatora. Za one koji više vole suhoparni matematički jezik, preporučam Wikipediju, jer... u ruskom jeziku materijal još nije predstavljen tako detaljno.

Kvadrokopter ćemo razmatrati u dvodimenzionalnom prostoru, gdje ima samo jedan kut - kut prevrtanja, i dva motora: lijevi i desni.




Kontrolor leta kontinuirano prima naredbe sa zemlje: "zakreni 30 stupnjeva", "zakreni -10 stupnjeva", "zaokreni 0 stupnjeva (drži horizont)"; zadatak mu je izvršiti ih što brže i točnije pomoću motora, uzimajući u obzir: vjetar, neravnomjernu raspodjelu težine quadcoptera, neravnomjerno trošenje motora, tromost quadcoptera itd. Stoga kontrolor leta mora kontinuirano rješavati problem koju brzinu rotacije primijeniti na svaki motor, uzimajući u obzir trenutnu vrijednost kuta nagiba i traženu. Kontinuirano je, naravno, jaka riječ. Sve ovisi o računalnim mogućnostima određenog hardvera. Na Adruinu je sasvim moguće smjestiti jednu iteraciju ciklusa obrade i kontrole u 10 milisekundi. To znači da će se jednom svakih 10 milisekundi očitavati kutevi quadcoptera i na temelju njih slati upravljački signali motorima. Tih 10 milisekundi se zove regulacijsko razdoblje. Jasno je da što je manja, to se regulacija događa češće i točnije.

Razina plina teče od prijemnika do regulatora. Označimo to. Podsjetit ću vas da je ovo aritmetički prosjek između brzina vrtnje svih motora, izražen kao postotak maksimalne brzine vrtnje. Ako su i brzine vrtnje lijevog i desnog motora, tada je:




gdje je odziv quadcoptera (sila) koji stvara okretni moment jer se lijevi motor vrti brže od gasa, a desni isto toliko sporije. također može imati negativne vrijednosti, tada će se desni motor brže vrtjeti. Ako naučimo izračunati ovu vrijednost pri svakoj iteraciji ciklusa obrade, tada ćemo moći kontrolirati quadcopter. Jasno je da u najmanju ruku treba ovisiti o trenutnom kutu kotrljanja () i željenom kutu kotrljanja (), koji dolazi s upravljačke ploče.

Zamislimo situaciju: primljena je naredba "drži horizont" ( = 0), a kvadrokopter se okrene ulijevo:




- razlika (pogreška) između i koju kontrolor nastoji svesti na minimum.

Što je veća razlika između željenog kuta kotrljanja i trenutnog, to bi reakcija trebala biti jača, to bi se lijevi motor trebao brže okretati u odnosu na desni. Ako ovo napišemo koristeći našu notaciju:



Ovdje je P koeficijent proporcionalnosti. Što je veći, reakcija će biti jača, kvadrokopter će oštrije reagirati na odstupanja od potrebnog kuta zakretanja. Ova intuitivna i jednostavna formula opisuje rad proporcionalni regulator. Poanta je jednostavna: što više kvadrokopter odstupi od tražene pozicije, to ga više morate pokušavati vratiti. Nažalost, ova će formula morati biti komplicirana. Glavni razlog je prekoračenje.

Za nekoliko desetaka milisekundi (nekoliko iteracija ciklusa obrade), pod utjecajem proporcionalnog regulatora, kvadrokopter će se vratiti u traženi (u ovom slučaju horizontalni) položaj. Cijelo to vrijeme pogreška i napor će imati isti predznak, iako će biti sve manje i manje veličine. Postigavši ​​određenu brzinu okretanja (kutnu brzinu), kvadrokopter će se jednostavno prevrnuti na drugu stranu, jer ga nitko neće zaustaviti u željenom položaju. To je poput opruge koja se uvijek želi vratiti u prvobitni položaj, ali ako je povučete i otpustite, ona će oscilirati sve dok trenje ne prevlada. Naravno, i na quadcopter će utjecati trenje, ali praksa pokazuje da to nije dovoljno.

Zbog toga je proporcionalnom regulatoru potrebno dodati još jedan član koji će usporiti rotaciju kvadrokoptera i spriječiti prekoračenje (kotrljanje u suprotnom smjeru) – svojevrsnu imitaciju trenja u viskoznom mediju: što brže quadcopter okreće, potrebno ga je jače pokušati zaustaviti, naravno, u razumnim granicama. Brzinu rotacije (stopu promjene greške) označavamo kao , tada:



gdje je D podesivi koeficijent: što je veći, to je jača sila zaustavljanja. Iz školskog tečaja fizike pojavljuju se nejasna sjećanja da je brzina promjene bilo koje veličine derivacija te količine u odnosu na vrijeme:

.

I sada se proporcionalni regulator pretvara u proporcionalno-diferencijalni (proporcionalni član i diferencijal):

.

Pogrešku je lako izračunati, jer pri svakoj iteraciji znamo i ; P i D su parametri koji se mogu konfigurirati prije pokretanja. Za izračun derivacije (brzine promjene) potrebno je pohraniti prethodnu vrijednost, znati trenutnu vrijednost i znati vrijeme koje je proteklo između mjerenja (kontrolno razdoblje). I evo ga - fizika šestog razreda (brzina = udaljenost / vrijeme):

.

- regulacijsko razdoblje; - vrijednost pogreške iz prethodne iteracije regulacijskog ciklusa. Usput, ova formula je najjednostavniji način numeričke diferencijacije, i sasvim je pogodna za nas ovdje.

Sada imamo proporcionalni diferencijalni regulator u ravnom bikopteru, ali postoji još jedan problem. Neka lijevi rub teži malo više od desnog ili, što je isto, lijevi motor radi malo lošije od desnog. Kvadrokopter je blago nagnut ulijevo i ne okreće se natrag: diferencijalni član je nula, a proporcionalni član, iako ima pozitivnu vrijednost, nije dovoljan da vrati kvadrokopter u horizontalni položaj, jer lijevi rub malo teži više od desnice. Kao rezultat toga, kvadrokopter će uvijek vući ulijevo.

Potreban je mehanizam za praćenje takvih odstupanja i njihovo ispravljanje. Karakteristična značajka takvih pogrešaka je da se s vremenom same ispravljaju. Integralni termin dolazi u pomoć. Pohranjuje zbroj svih pogrešaka u svim iteracijama petlje obrade. Kako će ovo pomoći? Ako proporcionalni član nije dovoljan da ispravi malu grešku, ali ona još uvijek postoji, postupno, tijekom vremena, integralni član dobiva na snazi, povećavajući odziv i kvadrokopter zauzima potrebni kut zakretanja.

Ovdje postoji jedna nijansa. Pretpostavimo da je 1 stupanj, kontrolni ciklus je 0,1 s. Tada će u jednoj sekundi zbroj pogrešaka poprimiti vrijednost od 10 stupnjeva. A ako je ciklus obrade 0,01 s, tada će količina dobiti čak 100 stupnjeva. Kako bi u istom vremenu integralni termin dobio istu vrijednost za različita razdoblja regulacije, pomnožit ćemo dobiveni iznos sa samim regulacijskim razdobljem. Lako je izračunati da se u oba slučaja iz primjera dobiva zbroj od 1 stupnja. Evo ga - integralni član (za sada bez podesivog koeficijenta):

.

Ova formula nije ništa drugo nego numerički integral tijekom vremena funkcije u intervalu od nule do trenutnog trenutka. Zato se pojam naziva integral:

,

gdje je T trenutni trenutak u vremenu.
Vrijeme je da zapišemo konačnu formulu za regulator proporcionalne-integralne derivacije:

,

gdje je jedan od konfigurabilnih parametara, kojih sada ima tri: . Ova formula je prikladna za korištenje iz programskog koda, ali ovdje je formula koja se daje u udžbenicima:

.

Postoji nekoliko njegovih varijacija, na primjer, možete ograničiti modul integralnog člana tako da ne prelazi određeni dopušteni prag (mi ćemo to učiniti).

Praksa

Pa, sada je vrijeme za vježbu odabira koeficijenata. Čitateljima se nudi JavaScript stranica s virtualnim kvadrokopterom kojeg su već vidjeli na slikama: odabir parametara PID regulatora za kvadrokopter(JSFiddle). Kod prvog pokretanja odmah se vidi prekoračenje - oscilacije oko tražene pozicije. Kada oscilacije prestanu, možete primijetiti učinak da se proporcionalni koeficijent ne može nositi s pogreškom zbog "asimetričnog" kvadrokoptera (postavljenog potvrdnim okvirom "Asymmetry"). Parametri dostupni za konfiguraciju su P, I, D. Sada znate što učiniti s njima. "Svitak" ispod kvadrokoptera može se kontrolirati potrebnom vrijednošću kotrljanja. “Interval (ms):” - regulacijski interval. Smanjenje je varanje, ali vrlo je korisno vidjeti kako to utječe na kvalitetu stabilizacije.

Za ljubitelje “čiste” matematike možemo ponuditi konfigurirati apstraktni PID regulator

Uneseni parametri se ne primjenjuju automatski: morate kliknuti "Primijeni". Nekoliko malih savjeta: ako vam se čini da kvadrokopter presporo reagira na kontrolu, možete povećati P, ali prevelika P vrijednost može dovesti do prekoračenja. Parametar D će vam pomoći da se nosite s prekoračenjem, ali prevelike vrijednosti će dovesti do čestih oscilacija, ili opet do prekoračenja. Parametar I je obično 10 - 100 puta manji od parametra P jer njegova snaga leži u akumulaciji tijekom vremena, a ne u brzom odgovoru.

Ručno podešavanje PID parametara zahtijeva praksu. Postoje analitičke metode za njihov izračun, ali zahtijevaju dobru pripremu i točno poznavanje mnogih parametara konkretnog sustava koji se prilagođava. Kao sredina između ručnog odabira i analitičkog izračuna, postoji širok raspon empirijskih metoda koje predlažu razni istraživači.

U našem 2D kvadrokopteru mijenja se samo jedan kut - kut nagiba. Za ugađanje 3D quadcoptera bit će potrebna tri neovisna PID regulatora za svaki od kutova, a kontrola određenog motora bit će zbroj napora svih kontrolera.

Zaključak prvog dijela

U ovom smo se članku upoznali s osnovnim pojmovima: quadcopter i princip leta, pitch, roll, yaw, gas, lebdeći gas, stabilizacijski način leta, kontroler leta, žiroskop, akcelerometar, regulator brzine, PWM, kalibracija kontrolera, radio kalibracija, ugrađeni prijamnik, sučelje za podešavanje kontrolera leta, uključeno/dezoružano stanje, automatsko deaktiviranje.

Nakon toga smo ponovno izmislili formulu PID regulator dodirujući malo numerička diferencijacija i integracija, i iskusio teži način konfiguriranja parametara P, ja, D na virtualni kvadrokopter .

Sada, ako ste vješti u programiranju svjetlosnih mačeva, možete započeti vlastiti program stabilizacije kvadrokoptera, ili još bolje, pridružiti se postojećim projektima otvorenog koda sa svježim idejama. Eto, za tjedan-dva ću nastaviti priču kako je sve isprogramirano, testirano, srušeno, posjeklo prste i potpuno odletjelo u nepoznatom smjeru.

U zaključku ovog dijela jednostavno moram spomenuti osobu koja mi je pomogla u odabiru komponenti i postavljanju najsloženijeg (prvog!) quadcoptera na MegapirateNG firmwareu i strpljivo odgovorila na stotine pitanja o ovim vrlo osnovnim konceptima: SovGVD, hvala ! 🙂

Kao nagradu onima koji su uspjeli proćerdati sav ovaj list, postavljam obećani mali video kako naš quadcopter s našim "izumljenim" PID kontrolerima leti na našem programu za Arduino Mega 2560:



Naravno da mu fali GPS-a, kao kod komercijalnih i serijskih proizvoda, malo mu fali stabilnosti, ali on je NAŠ i znamo ga izvana i iznutra do posljednjeg faktora integralnog koeficijenta! I stvarno je super što su nam takve tehnologije danas dostupne.

Letenje kvadrokopterom je zabavno i zanimljivo iskustvo. Jedina stvar koja bi mogla biti zanimljivija je stvaranje vlastitog sustava upravljanja za takvu igračku temeljenog na nekoj popularnoj platformi, na primjer, Arduino. To je učinio entuzijast pod nadimkom Dzl. Prvo što je napravio bilo je rastaviti daljinski upravljač. daljinski upravljač da vidite koji radio sustav koristi.



Unutra je, očekivano, bilo nekoliko jeftinih tiskane ploče s nekoliko komponenti na sebi.



Radio komunikaciju osiguravao je mali diskretni radio modul. Dodatnim analizama i pretraživanjem interneta pokazalo se da je modul baziran na čipu odašiljača BK2421 koji radi u pojasu od 2,4 GHz. Danas se u principu većina jeftinih radio-kontroliranih igračaka temelji na ovom modulu.



Zahvaljujući osciloskopu i dokumentaciji za čip, bilo je prilično lako pronaći pinove preko kojih se odvijala SPI komunikacija između modula i ostatka daljinskog upravljača.



Zahvaljujući "prisluškivanju" pomoću Arduino UNO, redoslijed inicijalizacije i način komunikacije postali su jasni. postoji redoslijed inicijalizacije.


Ne ulazeći u detalje komunikacije niske razine, kada uključite daljinski upravljač i kvadrokopter, događa se sljedeće:


1. Daljinski upravljač šalje svoju jedinstvenu mrežnu adresu ili ID


2. Kvadrokopter prima ovaj prijenos, potvrđuje ga i počinje slušati kanal s podacima iz ovog ID-a


3. Nakon potvrde, daljinski upravljač počinje slati pakete podataka svakih 20 ms


Možete kontrolirati nekoliko quadcoptera istovremeno dodjeljujući im različite adrese. ID prijenos se odvija na jednom fiksnom kanalu, a podaci se prenose na jednom od 12 kanala. Kvadrokopteri automatski skeniraju radio kanale dok ne pronađu podatke.


Podaci se prenose u paketu od 8 bajta u sljedećem formatu:


Bajt 0 = gas (gas) 0-255
Bajt 1 = skretanje (skretanje) 0-255
Bajt 2 =Yaw_trim (Yaw trim) 0-128
Bajt 3 = visina 0-255
Bajt 4 = Roll 0-255
Bajt 5 = Pitch_trim 0-128
Bajt 6 = Roll_trim (Roll trim) 0-128
Bajt 7 = letjeti/trčati 0=letjeti, 16=trčati


Tada je stvoreno bazna stanica, koji bi trebali komunicirati kvadrokopterima. Korišteni moduli bili su RFM-70 koji su sadržavali isti BK2421 čip. Treba napomenuti da su pinovi BK2421 tolerantni na 5 V, tako da nije potrebno ugrađivati ​​dodatne otpornike za 3,3 V.



Napisana je posebna biblioteka za povezivanje jednog ili više kvadkoptera s Arduinom. Ova biblioteka bi trebala raditi sa svim Arduino pločama baziranim na ATMEGA88 - ATMEGA328P čipovima. I na kraju videa: