Proiectarea Si Realizarea Unui Quadcopter Pentru Misiuni de Supraveghere Aeriana
Cuprins
Capitolul 1. INTRODUCERE
1.1 Problematica lucrării curente
1.2 Evoluția conceptului de quadcopter
1.3Justificarea alegerii temei
1.4 Sisteme similare existente
1.5 Obiective propuse
1.6 Prezentarea conceptelor teoretice
Capitolul 2. ARHITECTURA HARDWARE
2.1. Descrierea componentelor alese și explicarea funcționării lor
2.1.1 Cadrul
2.1.2 Motoare
2.1.3.Elici
2.1.4.Bateria
2.1.5 Regulatoare /ESC
2.1.6 Controler-ul de zbor
2.1.7 Sistemul de transmisie Radio
2.1.8 Sistemul de transmisie video
2.1.9 Camera video AV
2.1.10.Ecran
2.1.11 Modul GPS
2.1.12 Modul de afișare a parametrilor de zbor
Senzor pentru măsurarea tensiunii bateriei
Avertizor optic și acustic pentru nivelul scăzut al bateriei
2.2 Protocoale de comunicație
2.3 Interfață utilizator
2.4 Arhitectura Hardware implementată
Capitolul 3. ARHITECTURA SOFTWARE
3.1 Mediu de dezvoltare
3.2 Biblioteci utilizate
Capitolul 4. DESCRIEREA SISTEMULUI
4.1 Controlul Quadrocopterului
4.2 Specificații functionale finale
4.3 Mod de utilizare
Capitolul 5. CONCLUZII
5.1 Realizări proprii în cadrul proiectului
5.2 Comparație între sistemul realizat și sisteme similare existente
5.3 Dezvoltări ulterioare
Capitolul 6.Bibliografie
Capitolul 7.Anexe
Capitolul 1. Introducere
Apariția și dezvoltarea computerului personal, cunoscut sub numele de PC (Personal computer), a avut un impact major asupra felului în care oamenii trăiesc în societate. În prezent este întâlnit sub numeroase forme cum ar fi: desktopul – calculatorul de birou , laptop-varianta mobilă a calculatorului de birou , telefoane inteligente (smartphone) , tablete , ceasuri inteligente și multe alte dispozitive specifice. Previziunile actuale ale cercetătorilor arată că în viitorul apropiat robotul personal va avea un impact similar sau chiar mai mare asupra societății.
Automatizările sunt utilizate în prezent în numeroase domenii ale industriei, fiind capabile să îndeplinească o multitudine de sarcini. Roboții în sine reprezintă o aplicație concretă a automatizărilor și oferă rapiditate , productivitate dar și o precizie remarcabilă.Pe lângă aceste avantaje importante , roboții sunt capabili să realizeze misiuni ce s-ar dovedi periculoase sau chiar imposibile pentru oameni. Aplicațiile în care pot fi folosiți variază de la procese de fabricație sau menținerea curățeniei până la detectarea și dezamorsarea bombelor.Majoritatea acestora sunt foarte specializați , fiind capabili să îndeplinească doar câteva sarcini prestabilite și sunt utilizați cu preponderență în domeniul militar.
Având în vedere progresele actuale ale tehnologiei , roboții încep să fie utilizați cu succes și în aplicații civile.De la an la an , aceștia dobândesc un nivel de inteligență din ce în ce mai ridicat , devenind totodată mai atenți la obiectele din mediul înconjurător. O categorie de astfel de roboți este reprezentată de vehiculele aeriene fără om la bord . Acestea pot fi autonome sau pot fi comandate de către un operator care se află la sol prin intermediul unui sistem radio. Un astfel de vehicul , cunoscut și sub denumirea mai populară de UAV (Unmanned aerial vehicle) a fost folosit inițial pentru a executa diverse misiuni militare , considerate riscante pentru om .Odată cu trecerea timpului și conștientizarea avantajelor pe care le oferă , versiuni similare ale aparatului descris mai sus, însă cu o complexitate ceva mai redusă au început să fie utilizate și pentru aplicații civile .
Problematica lucrării curente
Un exemplu de UAV , utilizat cu succes de armata S.U.A este Global Hawk. , capabil să zboare la altitudini de maximum 20.000 metri , timp de 35 de ore. Viteza maximă a unui astfel de vehicul este de 690 Km/h . Anvergura sa este de 58 metri și poate realiza un zbor cu o distanță de 20.000 Km.Global Hawk a fost construit pentru a realiza diferite misiuni militare de supraveghere ,însă poate transporta cu ușurință radare meteo , numeroase camere sau senzori. Aparatul poate fi controlat de la distanță de către un operator uman sau poate funcționa autonom îndeplinind misiuni prestabilite.În ambele cazuri parametrii de zbor sunt urmăriți de către un operator și în cazul înregistrării unor abateri de la traseul prestabilit , acesta poate interveni , preluând controlul manual al aeronavei. [1]
Un dispozitiv UAV , tot mai popular în ultimii ani este mulțicopterul .Acesta reprezintă de fapt o versiune modificată a elicopterului . Modelele curente sunt echipate cu 3 motoare(tricopter) 4 motoare ( fiind denumite quadcoptere sau quadrocoptere) , 6 motoare (hexacoptere) sau chiar 8 motoare ( octacoptere). Fiecare dintre acestea are câte o caracteristică specifică în funcție de care este aleasă aplicația în care vor fi utlizate.
Un tricopter , spre exemplu are avantajul unui timp de zbor ceva mai mare față de restul modelelor , însă greutatea pe care acesta o poate ridica trebuie să fie cât mai redusă . Spre deosebire de acesta , hexacopterele sau octacopterele, au un timp de zbor ceva mai redus, însă sunt capabile să ridice cu ușurință o greutate considerabilă(unele modele putând ajunge chiar și la aproximativ 8 kg).Quadcopter-ul reprezintă un model de mijloc ce îmbină avantajele acestora oferind un timp de zbor mulțumitor dar și o capacitate de ridicare rezonabilă. Denumirea mai răspândită și implicit mai populară a acestora este cea de dronă, ce include toate dispozitivele fără om la bord ( autonome sau controlate cu ajutorul unor sisteme de comandă) ce operează în spațiul aerian cu scopul de a efectua diferite misiuni.
Ținând cont de faptul că prețul unui quadcopter variază de la 50 de dolari (în cazul modelelor de mici dimensiuni și cu performanțe reduse) și poate atinge prețul de 7000 de dolari ( în cazul modelelor utilizate pentru cercetare ce oferă timpi de zbor ridicați , dar și o rază de funcționare extinsă) au fost dezvoltate numeroase platforme open source ( software liber ce poate fi preluat,studiat și modificat de către orice utilzator al respectivei platforme) . Una dintre acestea este denumită ArduCopter.
Aflată într-o continuă dezvoltare , platforma beneficiază de un preț accesibil și de poate cea mai largă comunitate. Toate aceste elemente fac din ArduCopter o platformă ideală pentru dezvoltarea unei vehicul UAV.
În această lucrare se prezintă realizarea unui quadrocopter bazat pe platforma Arducopter .Aparatul construit beneficiază în plus și de un sistem video ce poate fi utilizat pentru a urmări în timp real imaginile înregistrate de camera montată pe acesta . Fluxul video va fi trimis către utilizator tot prin intermediul unui sistem radio (ce folosește o frecvență diferită de cea pentru controlul aparatului) . Imaginile trimise sunt afișate pe un ecran ,alături de câțiva dintre parametrii de bază ai dispozitivului, astfel încât operatorul va cunoaște în permanență nivelul curent al bateriei, poziția , altitudinea ,orientarea sau timpul de zbor al quadcopterului.Totodată va putea observa mediul înconjurător din apropierea mulțicopterului și va putea modifica poziția lui în funcție de necesitate. Întregul ansamblu poate fi folosit pentru a îndeplini cu succes diferite misiuni de supraveghere aeriană , la fel cum se întamplă și în cazul variantelor comerciale.
Controlul quadcopterului este realizat prin unde radio , utilizatorul putând manevra aparatul în orice poziție cu ajutorul unei telecomenzi. Pentru a profita cât mai mult de avantajele unui quadcopter, cum ar fi zborul la punct fix, a fost conectat un modul GPS extern la controlerul de zbor. Prin intermediul acestuia și al barometrului (inclus în controlerul de zbor) quadcopterul își va menține poziția setată în prealabil de utilizator (cu o eroare de 3-4 metri aceasta fiind cauzată de numărul de sateliți cu care s-a stabilit o legătură) ,chiar și în cazul unor perturbații.
Protocolul prin care s-a realizat comunicația între senzori și platforma ArduCopter este denumit MAVlink . Algoritmul de stabilizare precum și cel de zbor la punct fix au fost realizate prin intermediul unui sistem de control de tip PID(Proporțional – Integral – Derivativ) . Implementarea algoritmului a fost efectuată în mediul de dezvoltare ArduPilot IDE (reprezentând o versiune modificată a mult mai cunoscutului mediu de dezvoltare Arduino IDE). Prezentarea amănunțită a funcționării fiecărei componente va fi efectuată în capitolele următoare .
Evoluția conceptului de quadcopter
Cercetările pentru dezvoltarea inițială a quadcopterelor au început în anii 1920. Unul dintre primii ingineri care au incercat să construiască un elicopter cu 4 elici a fost francezul Etienne Oemichen. El și-a început cercetările în acest domeniu în anul 1920 atunci când a realizat primul prototip denumit Oemichen 1 . Deșignul acestuia era bazat pe un motor de 25 cai – putere ce trebuia să rotească 6 elici. Deși a fost supus la numeroase teste prototipul nu a fost însă capabil să zboare. [2]
Doi ani mai târziu Oemichen a realizat un al doilea model , ce reprezenta o imbunătățire considerabilă a primului. Denumit Oemichen 2 , acesta beneficia de un motor mai puternic de 125 cai-putere și era dotat cu 8 elici , fiind ajutat la partea de stabilizare și de un balon cu heliu. Cinci dintre acestea erau utilizate pentru a stabiliza zborul , două erau folosite pentru propulsia aparatului , în timp ce ultima era folosită pentru a efectua viraje.În anul 1923 a realizat un zbor record pentru un elicopter , reușind să străbată o distanță de 525 metri și un timp de zbor de 14 minute. Acest model este considerat primul elicopter capabil să ridice o persoană. [2]
În paralel cu progresele realizate în acest domeniu în Franța , Dr. George de Bothezat și Ivan Jerome au început la rândul lor un studiu în ianuarie 1921 pentru aviația S.U.A . Aceștia au realizat primul prototip la mijlocul anilor 1922 , în timp ce primul test de zbor a avut loc în luna octombrie a anului 1920 , în Ohio. Aparatul avea o greutate totală de aproximativ 1700 kg și era dotat cu un motor de 220 cai putere și 4 elici cu câte 6 pale fiecare. În urmă numeroaselor teste , aparatul a reușit să realizeze un zbor cu o durată de doar 1 minut și 42 de secunde , la o altitudine maximă de 1.8 metri. [2]
După numai 2 ani de la începutul acestor studii , proiectul a fost întrerupt deoarece aparatul de zbor nu avea un control foarte bun al direcției de zbor și exista riscul de apariție a unor probleme secundare. De asemenea , prototipul nu era capabil să ridice mai mult de 4 persoane( incluzând aici și pilotul) , fiind considerat submotorizat. În ceea ce privește altitudinea maximă atinsă , aceasta a fost de doar 5 metri , deși George de Bothezat și Ivan Jerome, creatorii designului estimaseră o altitudine de aproximativ 100 metri.
Deși aceste prototipuri se aseamănă într-o oarecare măsură cu ideea curentă a unui quadcopter , nu reprezentau cu adevărat un astfel de dispozitiv. Aparatele realizate erau propulsate prin intermediul unor elici suplimentare , montate undeva în față sau în spatele acestuia , la un unghi de 90 de grade față de motorul principal. De abia în anii 1950 , a fost realizat un quadcopter, a cărui construcție se aseamănă cu modelele disponibile în prezent.
Prototipul a fost realizat de către , Marc Adam Kaplan, iar primul zbor al acestuia ce a avut loc în anul 1956 a fost un adevărat succes. Aeronava , denumită Covertawings ,era dotată cu 4 elici și avea o greutate totală de 1000 kg și putea realiza un zbor la punct fix și să își schimbe direcția folosind cele două motoare ale sale de câte 90 de cai putere fiecare. Controlul deplasării aparatului nu s-a mai bazat pe elici suplimentare montate în părțile laterale ,ci pe varierea turației celor două motoare. Acesta a fost totodată și primul deșign bazat pe 4 elici ce era capabil să zboare în față. Aparatul era totuși destul de greu de controlatÎn ceea ce privește altitudinea maximă atinsă , aceasta a fost de doar 5 metri , deși George de Bothezat și Ivan Jerome, creatorii designului estimaseră o altitudine de aproximativ 100 metri.
Deși aceste prototipuri se aseamănă într-o oarecare măsură cu ideea curentă a unui quadcopter , nu reprezentau cu adevărat un astfel de dispozitiv. Aparatele realizate erau propulsate prin intermediul unor elici suplimentare , montate undeva în față sau în spatele acestuia , la un unghi de 90 de grade față de motorul principal. De abia în anii 1950 , a fost realizat un quadcopter, a cărui construcție se aseamănă cu modelele disponibile în prezent.
Prototipul a fost realizat de către , Marc Adam Kaplan, iar primul zbor al acestuia ce a avut loc în anul 1956 a fost un adevărat succes. Aeronava , denumită Covertawings ,era dotată cu 4 elici și avea o greutate totală de 1000 kg și putea realiza un zbor la punct fix și să își schimbe direcția folosind cele două motoare ale sale de câte 90 de cai putere fiecare. Controlul deplasării aparatului nu s-a mai bazat pe elici suplimentare montate în părțile laterale ,ci pe varierea turației celor două motoare. Acesta a fost totodată și primul deșign bazat pe 4 elici ce era capabil să zboare în față. Aparatul era totuși destul de greu de controlat deoarece pilotul trebuia să varieze manual turația fiecărui motor în funcție de direcția de deplasare dorită. [2]
În ciuda acestor realizări , mulțicopterele nu au fost considerate la fel de performanțe față de aeronavele convenționale de până atunci (din punct de vedere al vitezei de deplasare , sarcina ce putea fi ridicată , sau a razei de acțiune).Astfel , nu au fost înregistrate cereri de contracte pentru producția în serie a acestora , iar interesul pentru quadcoptere s-a diminuat din nou.
Arhitectura unui elicopter cu 4 elici a început să atragă din nou atenția la începutul anilor 1990 , devenind un domeniu activ pentru cercetare. În prezent companiile Bell Helicopter și Boeing și-au unit eforturile pentru cercetarea unui quadcopter denumit Bell Boieng Quad Rotor. Deșignul inițial al aeronavei prevedea 4 elici cu câte 3 pale fiecare propulsate de motoare V22.
Rolul principal al acestei aeronave va fi acela de elicopter pentru transportul diferitelor mărfuri cu posibilitatea de a oferi provizii sau de a transporta soldați în zonele mai greu accesibile.Primele teste în tunelul aerodinamic au fost realizate în 2006. Aparatul va fi utilizat așadar inițial pentru diverse misiuni militare , urmând ca ulterior să fie realizată și o versiune destinată aviației civile.
În ultimii 10 ani pe piața au apărut numeroase dispozitive în miniatură de quadcoptere . Acestea sunt capabile de un zbor la punct fix și pot fi controlate prin intermediul unui sistem radio (varianta cea mai raspândită de altfel) , a unui telefon inteligent( smartphone) , a unei tablete sau chiar a unui laptop. Toate modele curente sunt concepute pentru a putea transporta o camera video cu ușurință . Majoritatea acestora sunt dotate cu o camera de mici dimensiuni care îi permite pilotului de la sol să vizualizeze în timp real iamginile transmise de aceasta . Alternativ , camera poate fi montată după achiziționarea aparatului pentru a îndeplini cât mai bine posibil cerințele utilzatorului . Pentru o misiune de supraveghere aeriană desfășurată pe timpul nopții , o cameră obișnuită nu ar putea fi folosită la fel de eficient ca una ce oferă un mod nocturn bazat pe filtre infraroșii.
Toate modelele de quadcoptere disponibile pe piață au ca sursă principală de energie o baterie dedicată . Turația motoarelor ce folosesc combustbili fosili ,cum sunt cele utilizate în aviație , este mai dificil de controlat. Varierea turației acestora se face în funcție de cantitatea de combustibil trimisă către motoare.
Justificarea alegerii temei
Omenirea a fost întotdeauna fascinată de conceptul de levitație.Motivul acestei atracții este probabil datorat faptului că lumea în care trăim este tridimensională. Cu toate acestea ființele umane trăiesc și se deplasează în principal în doar două dimensiuni. Ținând cont de ambiția și de dorința caracteristică omenirii de a își depăși limitele biologice a creat dispozitive capabile să exploreze și cea de-a treia dimensiune. Pe lângă această dorință , șansa de a construi și programa un dispozitiv (utilizând cunoștiințe acumulate pe parcursul anilor de studiu ) capabil să îndeplinească misiuni din numeroase domenii a reprezentat un alt factor decisiv pentru alegerea acestei teme.Domeniile în care un astfel de dispozitiv poate fi utlizat , precum și potențialul acestora sunt enumerate în rândurile următoare pentru o mai bună înțelegere a oportunităților oferite:
Operațiuni de căutare și salvare: În anumite locuri , considerate periculoase sau inaccesibile omului , quadcopterele pot îndeplini această sarcină trimițând imagini live către operatori.În cazul în care aparatul este dotat și cu un modul GPS , se pot stabili anumite trasee pe care quadcopterul le va urma, astfel că rezultatele vor fi imbunătățite semnificativ.
Utilizare comercială : fără a mai fi nevoie de închirierea unui elicopter ( în schimbul unei sume importante de bani), fotografiile aeriene precum și filmele pot fi realizate pentru a îndeplini diferite așteptări: de la clipuri pentru filme , media , știri până la fotografie aeriană profesională realizată de la altitudini inalte.
Transportul obiectelor: Un quadrocopter poate transporta cu ușurință obiecte de dimensiuni reduse , ceea ce îl transforma într-un mijloc adecvat diferitelor necesități De exemplu , se pot realiza transporturi de medicamente în locuri în care s-au petrecut catastrofe , iar ajutorul medical este urgent.
Scopuri educaționale: pentru realizarea unui astfel de dispozitiv este necesară o gamă largă de cunoștiințe tehnice , astfel încât beneficiile de pe urmă unui astfel de program sunt importante. Conceperea unui aparat care să își mențină echilibrul în aer face ca această idee să fie una dintre cele mai atractive modalități de a învăța .De asemenea un alt avantaj este reprezentat de posibilitatea de a înțelege ce presupune o gândire inginerească precum și lucrurile pe care un inginer trebuie să le ia în calcul în momentul dezvoltării unui astfel de proiect.
Aeromodelism: quadcopterul este considerat unul dintre cele mai interesante și atractive modele aeriene de către majoritatea posesorilor de astfel de dispozitive, având avantajul unei manevrabilități excelente dar și a unei viteze rezonabile.În țări precum Anglia , Germania sau Austria sunt cheltuite sume importante de bani pentru a construi și a pilota un asemenea aparat.
Orice senzor poate fi montat pe un astfel de dispozitiv: având în vedere varietatea de senzori existența și utilitatea acestora montarea lor pe un quadcopter le mărește valoarea.De exemplu , adăugarea unui senzor de temperatură sau gaze la bordul aparatului , îl transformă într-un mijloc sigur și rapid pentru măsurarea temperaturii în locuri inaccesibile sau periculoase pentru om cum ar fi o centrală nucleară . În acest caz expunerea prelungită a oamenilor la materialele radioactive existente într-un astfel de loc poate avea efecte nedorite . Un alt exemplu este reprezentat de posibilitatea de a realiza o scanare a anumitor locuri pentru a determina potențiale pericole.În cadrul unei metropole se pot monitoriza și apoi stabili zonele cele mai poluate . Se pot realiza perspective tridimensionale ale anumitor zone , imaginile obținute fiind concatenate și utilizate apoi pentru a întocmi o hartă actualizată și precisă , așa cum este cazul hărților oferite de Google .
Realizarea unor servicii de curierat: în prezent sunt testate astfel de modele de quadcoptere , autonome , pentru a efectua livrări rapide ale unor obiecte de mici dimensiuni. Una din aceste companii este bine cunoscuta Amazon , care estimează că în următorii ani , odată cu îmbunătățirea versiunilor curente de quadcoptere , va fi posibilă implementarea unui asemenea sistem pe o scară mai largă.
Supravegherea traficului , a revoltelor sau a protestelor : având avantajul unei altitudini înalte , un quadcopter dotat cu o cameră video poate transmite în direct desfășurarea de evenimente din cadrul unor proteste sau manifestări , oferind o perspectivă unică.Totodată , pe baza imaginilor transmise , forțele de ordine își vor putea realiza un plan de acțiune organizat și bine pus la punct ,cunoscând exact situația cu care se vor confrunta.În ceea ce privește supravegherea traficului vor putea fi observate punctele în care se realizează accidente sau blocaje precum și intervalul orar în care se întamplă aceste lucruri. Pe baza datelor obținute se va putea realiza o analiză pentru a determina punerea în practică a unor măsuri adecvate , menite să înlăture sau măcar să diminueze problemele întâlnite.
1.4 Sisteme similare existente
Având în vedere capacitatea de a îndeplini mai multe misiuni , pe piață au apărut numeroase modele de quadrocoptere/ drone preasamblate și gata de zbor(RTF-redy to fly) oferindu-le utilizatorilor acestora diverse avantaje. , cum ar fi: timpul de zbor, dimensiunile reduse , posibilitatea de a fi controlate cu ajutorul unui telefon inteligent , sau capacitatea de ridicare.Câteva sisteme de astfel de quadrocoptere vor fi prezentate în secțiunea curentă.
Parrot Ar.Drone 2.0 , model realizat de compania franceză Parrot , este conceput pentru a fi controlat prin intermediul unui telefon mobil sau al unei tablete ce rulează un sistem de operare Android sau iOS . Comunicația aparatului de zbor cu dispozitivul mobil este realizată prin intermediul sistemului wireless , bazat pe o aplicație specială oferită de compania Parrot. Așa cum se observă și din nume , modelul de față reprezintă versiunea a doua și oferă față de prima un timp de zbor cu 50% mai mare , cu un total de 18 minute. [3]
Cadrul dronei este realizat în cea mai mare parte din nylon , anumite componente fiind constuite din carbon.Distanța de la motor la motor este de 57 cm ,iar motoarele cu care acesta este echipat au o putere de câte 15 wati fiecare. .
Bateria cu 3 celule , este una de tip lithium-polymer și are o tensiune nominală de 11.1 volți. Viteza maximă este de 5m/s adică aproximativ 18 Km/h . Controlerul de zbor rulează o versiune de Linux , iar pentru controlul aparatului sunt utilizați senzori de tip IMU ce includ un giroscop cu 3 axe alături de un accelerometru cu 3 axe , un magnetometru și un senzor de presiune pentru menținerea altitudinii.
Interfețele prin care utilizatorul poate comunica cu aparatul sunt: Wi-fi 802.11n și USB. Versiunea curentă a dronei este dotată cu două camere : una frontală ,dotată cu lentile cu un unghi de 93 de grade ce oferă o rezoluție HD și una verticală ,ce utilizează lentile cu un unghi de 64 de grade cu o rezoluție inferioară. Este livrată cu două carcase : una destinată folosirii în interiorul clădirilor(ce reprezintă un cadru din polistiren ce protejează elicile de un eventual contact cu un obstacol) și una destinată folosirii în exterior ( aceasta protejând doar controlerul de zbor și senzorii) Principalele dezavantaje ale acestui sistem sunt capacitatea redusă de ridicare și raza relativ redusă pe care aparatul poate fi controlat (maximum 150 metri ) , aceasta datorându-se sensibilității scăzute regăsite într-un sistem wi-fi integrat în telefoanele inteligente actuale. Modelul de față este utilizat pentru a realiza fotografii și clipuri video de la altitudini reduse. Prețul unui astfel de dispozitiv este de 300 dolari. [3]
DJI Phantom 2, model produs de compania chinezească DJI , reprezintă versiunea a doua de la Phantom 1, realizat în 2013 , prezentând o serie de imbunătățiri în ceea ce privește timpul de zbor , raza pe care poate fi controlat , dar și calitatea camerei video montate la bordul aparatului . Modelul curent poate fi controlat atât prin intermediul unei telecomenzi radio cât și prin utilizarea unui telefon inteligent sau a unei tablete .Raza pe care dispozitivul poate fi controlat variază de la 300 metri ,atunci când este comandat prin intermediul unui telefon mobil, până la 1000 metri , în momentul în care se utilizează telecomanda radio inclusă. [4]
Versiunea a două este disponibilă în 3 variante denumite : Phantom 2, Phantom 2 Vision și Phantom 2 Vision + . Ultimele două versiuni utilizează un sistem de control ce funcționează pe o bandă de frecvență de 5.8 ghz ,iar fluxul video este transmis pe frecvența de 2.4 Ghz . Prima versiune , care este de alftel și cea mai accesibilă din punct de vedere al prețului uilizează un sistem de control pe 2.4 Ghz , iar fluxul video este trimis către utilizator prin intermediul unui sistem ce funcționează pe 5.8 Ghz. [4]
Greutatea întregului ansamblu este 1000 grame , iar sarcina suplimentară pe care o poate ridica este de aproxiamtiv 300 grame. Viteza maximă recomandătă de producător este de 10 m/s ( adică 36 km/h). Motoarele care echipează toate cele 3 versiuni au un factor de 900 kv (adica 900 turații pe minut pentru fiecare volt).Bateria utilizată , de tip lithium –polimer are o tensiune de 11.1 volți și o capacitate de 5200 mAh, asigurând o durată de zbor de 25 de minute .
Quadrocopterul este livrat ca fiind gata de zbor și oferă cateva funcții importante ce măresc valoarea aparatului . Este vorba despre întoarcerea și aterizarea automată la punctul de decolare . Pentru a fi capabil să realizeze aceste lucruri aparatul este dotat cu un modul GPS. Controler-ul de zbor al aparatului se numește NAZA și include senzori de timp IMU cum ar fi accelerometru , giroscop și magnetometru În ciuda faptului că performanțele obținute sunt remarcabile , prețul unui astfel de controler , în versiunea cea mai ieftină este de: 100 dolari , neincluzând aici și modulul GPS, care se achiziționează separat , având un preț similar (110 dolari).
Deși oferă funcții utile ce pot simplifica zborul, modelul prezentat are și câteva dezavantaje importante . Se pot include aici prețul de achiziție( modelul cel mai ieftin având un preț de 700 de dolari , în timp ce modele situate în vârful gamei pot ajune și la 1200 de dolari) , capacitatea de ridicare redusă de doar 300 g , prețurile ridicate ale pieselor de schimb, dar și limitări în ceea ce privește îmbunătățirea ulterioară a dispozitivului (aparatul putând să își piardă din eficiența și implicit din timpul de zbor în cazul unor modificări).
Draganflyer , realizat de compania Draganfly Innovations ca urmare a numeroaselor studii științifice și tehnice .Modelele realizate de această companie sunt utilizate cu succes pe piață pentru realizarea unor misiuni variate , datorittă calităților dovedite. Compania oferă spre vânzare atât modele de quadrocoptere (Draganflyer x4) cât și tricoptere (Draganflyer x3), hexacoptere (Draganflyer X6) cât și octacoptere (Draganflyer X8).
Datorită construcției sale din carbon are o greutate de doar 680 grame și este conceput pentru a ridica o cameră video compactă sau orice altă sarcină cu o greutate de maximum 350 grame.Modelul X4 include un controler de zbor ce oferă 7 senzori ( 3 senzori de tip griroscop , 3 senzori de tip accelerometru și un se senzor de presiune atmosferică pentru a putea menșine altitudinea.
Comanda modelului este realizată cu ajutorul unei radiocomenzi pe care este montat și un ecran touchscreen de tip OLED pe care sunt afișați parametrii de zbor ai aparatului (baterie ,altitudine , distanța de la punctul de decolare etc). Este oferit într-o configurație gata de zbor, brațele acestuia putând fi pliate pentru a facilita transportul . Bateria utilizată, de tip lithium-polimer , este formată din 4 celule , având o tensiune nominală de 14.8 volți și o capacitate de 5400mAh ce permite un zbor continuu de 40 de minute . [5]
Este folosit cu succes de guvernul S.U.A pentru a depista rapid coordonatele unor eventuale accidente rutiere sau aviatice .Un alt aspect interesant este suportul special conceput pe care este montată camera video, Acesta este izolat de restul cadrului printr-un sistem propriu în așa fel încât imaginile obținute sunt foarte stabile , neexistând așadar efecte secundare ale vibrațiilor produse de motoare pe durata zborului. Ținând cont de toate elementele prezentate mai sus , modelul curent reprezintă una dintre cele mai bune opțiuni disponibile pe piața dronelor comerciale , însă drept consecință și prețul de achiziție al unui astfel de aparat se situează în jurul valorii de 3000 de dolari.
Obiective propuse
Obiectivele principale ale acestei lucrări sunt următoarele:
-Proiectarea și construirea unui quadrocopter care să fie controlat de către un operator situat la sol prin intermediul unei telecomenzi radio .
-Aparatul realizat va trebui să aibă o greutate cât mai redusă (mai puțin de 2 kg ) ,o autonomie de zbor de minim 15 minute și să aibă capacitate de ridicare de cel puțin 500 grame ( pentru a fi capabil să ridice și aparate foto profesionale).
-Dispozitivul va trebui să ofere în permanență informații operatorului cu privire la parametrii de zbor ; acestea vor fi afișate pe un ecran pe care se va putea monitoriza și fluxul video înregistrat de camera montată la bordul quadrocopterului.
-Realizarea codului în mediul de dezvoltare Ardupilot Mega IDE care să realizeze controlul aparatului , acesta fiind de altfel și cel mai dificil obiectiv de indeplinit datorită numeroaselor variabile ce trebuie luate în considerare.
-La proiectarea modelului realizat s-a avut în vedere posibilitatea ca acesta să sufere anumite avarii în cazul unei aterizări bruște. De aceea componentele alese pentru trenul de aterizare au fost modificate pentru a le spori rezistența.
-Un alt obiectiv a fost realizarea unei platforme care să poată fi îmbunătățită pe viitor, cu eforturi minime .
1.6 Prezentarea conceptelor teoretice
Un quadcopter reprezintă de fapt o versiune modificată a unui elicopter, fiind dotat cu patru motoare , pe fiecare dintre acestea regăsindu-se montată câte o elice.Motoarele pot fi separate în două perechi, fiecare dintre acestea rotindu-se în direcția opusă celeilate. Spre deosebire de un quadrocopter, un elicopter este dotat cu doar două elici dintre care una este responsabilă de realizarea propulsiei ,iar cealaltă , de dimensiuni inferioare celei principale localizată pe coada aparatului este responsabilă de modificarea direcției de deplasare.
În cazul unui quadrocopter toate cele patru elici sunt folosite atât pentru realizarea propulsiei cât și pentru modificarea direcției de deplasare. Mișcarea aparatului este realizată așadar prin varierea forței de tracțiune pentru fiecare motor obținută prin modificarea turației individuale a fiecăruia dintre acestea. Datorită structurii sale conceptuale , în cazul unei comparații cu un elicopter , quadrocopterul va avea avantajul unei platforme mult mai stabile, asigurată de cele patru motoare poziționate simetric. [6]
Dimensiunea dispozitivelor de acest tip variază , putând ajunge de la quadrocoptere cu un diametru al brațelor de aproximativ 10-15 cm , întâlnite în cazul modelelor concepute pentru jucării, până la modele cu o lățime de de 1 metru ,capabile de zboruri lungi.. Fiecare din cele patru motoare trebuie să fie capabil să ridice cel puțin un sfert din greutatea totala a aparatului .Acest lucru poate reprezenta un avantaj în anumite cazuri deoarece uzura motoarelor va fi redusă , iar cantitatea de energie necesară pentru menținerea zborului ar fi diminuată . Rezultă implicit că se pot utiliza motoare mai puțin puternice , dar și mai iefține., întrucât costurile pentru intreținerea lor ar scădea.
Motoarele sunt așezate sub forma colțurilor unui pătrat, două dintre acestea se rotesc în direcția acelor de ceas , iar celelalte două în sens trigonometric. Un alt lucru important de precizat este că cele patru elici montate câte una pe axul fiecărui motor , nu sunt identice . Fiecare două elici formează câte o pereche .Astfel , pentru sensul de rotație al acelor de ceasornic va fi folosit un anumit set de elici , în timp ce pentru sensul trigonometric va fi utilizat un alt set de elici ( inversat față de primul).
Avantajele pe care un quadrocopter le are față de un avion sau de elicopterele clasice sunt prezentate în continuare. Câteva dintre acestea sunt: deșignul simplificat , abilitatea de a zbura la punct fix fără dificultăți , capacitatea de a decola și de a ateriza vertical, manevrabilitatea îmbunătățită, dar și capacitatea de a efectua zboruri în interiorul clădirilor sau în exteriorul acestora.De asemenea , în cazul unei prăbușiri a aparatului este foarte probabil că doar una dintre cele patru elici să fie distrusă ,astfel incât costurile de reparație ar fi mai mici față de cele ale unui elicopter.Toate aceste avantaje au dus la popularizarea platformei quadrocopterului și răspândirea ei în diverse medii. Totuși , la fel ca orice dispozitiv prezintă și anumite dezavantaje., cel mai important dintre acestea fiind reprezentat de durata redusă a unui zbor , care momentan este situată în jurul valorii de 17 -20 minute.Este adevărat că există și modele capabile de un zbor cu o durată de aproape două ore , însă acestea folosesc motoare mai puțin accesibile datorită prețului mai mare de achiziție față de motoarele obișnuite .Acestea sunt caracterizate de un număr de turații scăzute ceea ce garantează un grad ridicat de eficiență atunci când sunt utilizate alături de elici cu un diamentru de 17-18 inchi.
Controlul individual al turației fiecărui motor de către controlerul de zbor este esențial pentru un zbor lin.Astfel în cazul în care toate motoarele s-ar roti în aceeași direcție de exemplu , întreagul dispozitiv s-ar roti la fel ca un elicopter fără motorul stabilizator , plasat pe coada . Pentru funcționarea corespunzătoare a aparatului , toate motoarele vor trebui să exercite o forță de tracțiune egală , ceea ce va face ca aparatul să își mențină direcția.În cazul apariției unor perturbații , cum ar fi greutatea mai mare pe o anumită parte , aparatul va încerca să compenseze acest lucru , mărind turația motoarelor pe partea mai ușoară și scazând-o simultan pe cea a motoarelor situate pe partea mai grea. [6]
Pentru a-și menține echilibrul , quadcopterul trebuie să facă măsurători în continuu cu ajutorul senzorilor și în funcție de valorile returnate de aceștia să ajusteze turația fiecărui motor astfel încât să își mențină echilibrul.Aceste măsurători sunt realizate automat prin intermediul unui controller capabil să proceseze cantitatea ridicată de informații , primită de la senzori.Întregul algoritm de stabilizare este rulat de foarte multe ori pe durata unei secunde pentru a obține rezultatele dorite.
Un quadrocopter are 3 grade de libertate:Yaw(reprezintă mișcarea dreapta-stânga sau invers), roll(mișcarea de rotire a aparatului), pitch (mișcarea sus-jos) .Acestea reprezintă rotațiile pe care aparatul le poate executa în jurul proprilor axe. [6]
Dacă se dorește executarea unei mișcări de rotație (roll) sau a unei mișcări de tip pitch , puterea unui motor este redusă de către controlerul de zbor și apoi redirecționată către motorul opus acestuia . Acest lucru face ca dispozitivul să se încline într-o anumită parte. În momentul apariției acestei înclinări , forța (care este o mărime de tip vectorial) va fi împărțită în două componente: o componentă verticală și una orizontală. Rezultatul este apariția a două fenomene. Primul fenomen implică faptul că dispozitivul de zbor va începe să se deplaseze în direcția opusă noii componente verticale create.În al doilea rând , din cauza împărțirii vectorului forță , componenta verticală va fi mai mică , ceea ce va avea drept consecință pierderea altitudinii . Pentru a menține quadrocopterul în echilibru , puterea fiecărui motor trebuie crescută în mod corespunzător de către controlerul de zbor pentru a compensa pierderea altitudinii. [6]
Așa cum s-a precizat și în rândurile de mai sus , singurele părți mobile sunt cele patru motoare , respectiv elicile montate pe acestea. În cazul unui quadrocopter nu există eleroane sau flapsuri așa cum se întâmplă la avion , astfel încât singura variantă de a schimba direcția de mers este oferită de varierea simultană a turației celor 4 motoare.
Pentru imaginea de mai sus motoarele 1 și 2 reprezintă perechea ce se rotește în sens invers acelor de ceasornic , în timp ce motoarele 3 și 4 formează cea de-a doua pereche , ce se rotește , în sensul acelor de ceasornic. Fața aparatului este marcată de brațul pe care se regăsește montat motorul 3. Pentru menținerea altitudinii , accelerația tuturor motoarelor trebuie să fie egală .Mărirea turației acestora în mod egal va propulsa aparatul pe axa Z determinând o creștere a altitudinii curente. Analog , micșorarea simultană a turației celor 4 motoare va genera o scădere a altitudinii.
Reducând turația motorului 3 și crescând-o pe cea corespunzătoare motorului 4 se va realiza o mișcare a aparatului în față ( cunoscută și sub numele de pitch) . În mod asemănător dacă se dorește o deplasare în spate a quadrocopterului se va mări turația motorului 3 și va fi redusă cea a motorului 4.Pentru controlul mișcării de rotație se va proceda ca și mai sus , însă de această dată va fi modificată simultan turația motoarelor 1 și 2 reprezentând partea dreaptă a aparatului respectiv partea stângă a acestuia.
Quadrocopterul poate fi considerat un sistem dinamic instabil și neliniar , astfel că pentru controlul acesuia este esențială existența unui sistem informatic integrat. Astfel numeroții senzori regăsiți în construcția unui astfel de aparat măsoară informația în timp real și o compară cu cea dorită . Diferența dintre valoarea dorită și ieșirea reală va fi memorată în cadrul unei variabile și va fi considerată eroare. Controlerul implementat va procesa eroarea întâlnită , astfel că ieșirea oferită de acesta în urma analizei efectuate va fi noua turație a fiecărui motor în parte.Din acest punct ciclul va reîncepe și va efectua din nou aceiași pași.
Capitolul 2. Arhitectura Hardware
2.1.Descrierea componentelor alese și explicarea funcționării lor
Componentele necesare pentru orice quadcopter sunt următoarele:
Cadru : reprezintă structura care susține toate componentele (electronice , mecanice etc). Cele mai importante caracteristici ale unui cadru sunt precizia construcției , rezistența acestuia ( pe parcursul utilizării sale , un astfel de dispozitiv este supus la numeroase șocuri ce apar în momentul aterizării) , dar și greutatea cât mai redusă.
Motoarele : se vor folosi motoare de tip „brushless” ( adica fără perii , acestea fiind înlocuite de magneți) . Acestea vor asigura forță de ridicare necesară dispozitivului pentru a zbura. Principalul factor de decizie în alegerea motoarelor este dat de caracteristica „kv”( care reprezintă numărul de turații ce poate fi executat de un motor la o tensiune de alimentare de 1v ) și de consumul acestora ( care variază în funcție de dimensiunea elicilor , greutatea întregului ansamblu etc).
Driverele pentru motoare : fiecare dintre cele 4 motoare va fi controlat separat de către un driver (regulator de turație). Denumirea prescurtată a acestora este ESC , reprezentând o abreviere din limba engleza de la : Electronic Speed Controller ( traducere: controller electronic de viteza).
Elici: acestea vor fi montate pe fiecare motor (rezultând un număr total de 4 elici ). Principalele caracteristici ale elicilor sunt: materialul de fabricație, diametrul acestora , dimensiunea „pasului” (cunoscută și sub numele de „pitch”) și valoarea maximă a rotațiilor ce pot fi executate într-un minut.
Bateria : reprezintă sursa de energie pentru motoare , controller-ul de zbor , dar și pentru ESC. Principalele caracteristici ale acesteia sunt tensiunea de alimentare (care depinde de numărul de celule aflate în componența acesteia) , capacitatea ( poate fi comparată cu dimensiunea unui rezervor de combustibil ; cu cât aceasta este mai mare , cu atât timpul de zbor al quadcopter-ului va crește) și greutatea.
Senzori de tip IMU (inertial measuring unit) pot fi integrați pe controlerul de zbor sau montați pe o placă separată de acesta . Senzorii sunt responsabili de trimiterea de informații către controler-ul de zbor privind înclinarea în aer , altitudinea dispozitivului , direcția cardinală către care aparatul se îndreaptă etc. Principalele caracteristici ale acestor senzori sunt : precizia măsurătorilor efectuate dar și izolarea lor față de elemente ce pot perturba acuratețea măsurătorilor ( de exemplu , în cazul montării acestora în carcase inadecvate , senzorul de presiune/barometric necesar zborului la punct fix va trimite valori incorecte către controler-ul central ceea ce va face ca aparatul să nu își mențină poziția prestabilită și să se deplaseze).
Controlerul de zbor: reprezintă „creierul” întregului ansamblu , fiind asemănător cu procesorul unui calculator . El este responsabil de reglarea poziției quadrocopterului în aer , realizând acest lucru pe baza informațiilor primite de la senzori , în funcție de care ajustează turația pentru fiecare motor în parte. De asemenea , este responsabil de primirea și realizarea comenzilor de la transmițătorul RC controlat de utilizator prin intermediul telecomenzii.
Transmițătorul și receptorul RC : fac posibilă comanda dispozitivului de la depărtare de către utilizator. Principala caracteristică a acestora este raza de acțiune .
Ca elemente opționale utilizate în cadrul proiectului se pot aminti:
Modul GPS : utilizat pentru efectuarea zborurilor autonome ,dar și pentru înregistrarea valorilor unor parametri din timpul zborului (de exemplu viteza maximă sau altitudinea maximă atinsă de quadrocopter , distanța parcursă etc). Acuratețea localizării este cea mai importantă caracteristică a modulului GPS.
Transmițător + receptor AV (audio video) – wireless : responsabil de transmiterea de imagini și sunete live din timpul zborului către un monitor situat la sol, prin intermediul căruia un utilizator îl poate controla de la distanță fără a-l avea în câmpul său vizual. Principala caracteristică este , la fel ca și în cazul transmițătorului + receptorului RC , raza de acțiune.
LED-uri : necesare pentru semnalizarea aparatului și reperarea sa mai ușoară în câmpul vizual.
Avertizor sonor: responsabil de emiterea de sunete în cazul în care tensiunea bateriei este scăzută , semnalizând astfel utilizatorului că este momentul ca dispozitivul să aterizeze .
Camera video: va înregistra și va transmite (prin intermediul transmițătorului AV) imagini de la bordul quadcopterului.
2.1.1 Cadru Reprezintă structura de bază a quadcopterului , pe care vor fi montate toate celelalte piese. Așa cum s-a evidențiat și în prezentarea din paginile anterioare , un cadru potrivit trebuie să fie rigid , ușor și de asemenea să fie capabil să minimizeze vibrațiile provenite de la motoare.Acesta este alcătuit din 4 părți principale , după cum urmează:
-placa centrală , pe care sunt montate controlerul de zbor , receptorul AV , receptorul RC , modulul GPS , bateria etc.
-4 brațe , pe care vor fi montate motoarele și driverele acestora (ESC).Acestea vor fi fixate de placa centrală prin intermediul șuruburilor.
-4 adaptoare , pentru montarea motoarelor pe brațe.
-tren de aterizare , responsabil să absoarbă șocurile produse în momentul în care quadcopterul atinge pământul.
– opționale: montura pentru camera , care va constitui un suport pentru montarea cât mai sigură a camerei video.
Materialele cele mai utilizate pentru construcția cadrelor sunt:
-Fibra de carbon- reprezintă materialul ideal pentru un quadcopter datorită greutății sale reduse ,rigidității crescute dar și capacității sale foarte bune de a a absorbi vibrațiile produse de motoare. Principalele dezavantaje ale acestui material sunt : prețul destul de mare în momentul achiziției și dificultatea efectuării de reparații în cazul unor potențiale fisuri în structura sa de rezistență.
-Aluminiul – este materialul cel mai popular datorită greutății relativ reduse , rigidității crescute și prețului scăzut de achiziție. Totuși , acesta are și dezavantaje , de care trebuie ținut cont . De exemplu , capacitatea sa de a absorbi vibrațiile nu este la fel de bună ca în cazul fibrei de carbon. În anumite cazuri , problema vibrațiilor poate afecta valorile parametrilor măsurați de senzori.
-Lemnul – poate fi prelucrat cu ușurință , brațele realizate din acest material absorbind vibrațiile mai bine față de cele din aluminiu. Spre deosebire de acesta , lemnul nu este un material foarte rigid și se poate fisura cu ușurință în momentul unei aterizări necontrolate a quadcopterului. [7]
Un alt aspect important de care s-a ținut cont în alegerea cadrului este reprezentat de dimensiunea acestuia , mai precis distanța de la motor-la motor ( adica distanța de la centrul unui motor până la centrul motorului opus acestuia). Aceasta distanță depinde de diametrul elicilor alese .S-a avut în vedere așadar că spațiul alocat elicilor să fie suficient , astfel încât acestea să nu se loveasca una de cealaltă și să nu fie influențate de curenții de aer rezultați din rotația celorlalte (așa cum s-ar întâmpla în cazul unor elice situate la o distanță foarte mică una de cealaltă)
Modelul de cadru ales se numeste X580 , produs de HobbyKing și este vandut sub forma unui kit , ce poate fi asamblat urmărind instrucțiunile oferite de producător . În alegerea cadrului s-au avut în vedere toate caracterisitcile prezentate mai sus . Cadrul este realizat din aluminiu , ceea ce ii conferă o greutate relativ redusă (418 grame cadrul + 120 g trenul de aterizare) , o rigiditate crescută , iar prețul de achiziție al acestuia (20 dolari) nu este la fel de mare ca al variantelor realizate din carbon. [8] De asemenea , pe parcursul testelor inițiale , neavând experiența în pilotarea unui astfel de aparat, cadrul a fost supus unor șocuri considerabile , astfel că două dintre brațele originale au fost înlocuite pentru motive de siguranță. În cazul în care aș fi ales un cadru de carbon ,reparațiile aferente acestuia ar fi fost cu siguranță mai costisitoare ,datorită rarității acestui material . Brațele originale au fost înlocuite integral cu unele realizate dintr-un profil dreptunghiular de aluminiu cu o grosime de 1 cm .Greutatea acestora s-a dovedit a fi aproape identică cu cea a pieselor originale.
.
Pentru diminuarea vibrațiilor produse de motoare și transmise către placa centrală s-a folosit o placă realizată din fibră de sticlă și fixată pe placa centrală a cadrului prin intermediul unor garnituri cauciucate.Deasupra acesteia va fi montat controlerul de zbor ce integreaza toți senzorii necesari zborului. Reducerea trepidațiilor de către această placă suplimentară este foarte importantă deoarece măsurătorile senzorilor(regăsiți pe controlerul principal) nu trebuie să fie influențate de propagarea vibrațiilor prin cadru.
Alte motive pentru alegerea acestui model de cadru au fost existența unui tren de aterizare destul de înalt( aproximativ 25 cm) ce permite montarea oricărui tip de cameră foto / video pe acesta precum și prezența unui suport dedicat (integrat în structura acestuia) pentru montarea camerei. De asemenea, distanța de la motor la motor este de 58 cm ( de unde derivă și denumirea sa : X580) , ceea ce permite montarea unor elici cu un diametru maxim de 11 inchi .Aceste specificații îl plasează în categoria quadcopterelor de dimensiuni medii ( printre cele mai populare datorită prețului accesibil pentru restul pieselor necesare : motoare, elici , baterii etc).
2.1.2 Motoare Pe piața de profil se remarcă existența a două tipuri de motoare ce pot fi utilizate pentru a genera forță necesară ridicării quadrocopterului de la sol : motoare cu perii și cele cu magneți. Pentru a înțelege mai bine avantajele și dezavantajele fiecărui tip de motor se va prezența în continuare principiul de funcționare pentru fiecare în parte,
Motoarele cu perii , întâlnite de obicei în ventilatoare , uscătoare de par , coolere pentru PC etc au o construcție mai simplă raportată la cele care folosesc magneți. Motoarele cu perii generează forța necesară zborului direct de la sursa de alimentare (în cazul proiectului de față, sursa de alimentare este o baterie cu o tesiune nominala de 14.8 v) , utilizând comutația internă , magneții permanenți staționari și cei rotativi. La fel ca toate motoarele/ generatoarele electrice , cuplul este obținut prin intermediul principului forței Lorentz, care afirmă că orice conductor străbătut de un curent electric amplasat în apropierea unui câmp magnetic este supus unei forțe numita forță Lorentz. Așadar în momentul în care curentul străbate rotorul motorului, se remarcă apariția unui câmp magnetic ce generează o forță electromagnetică, rezultatul acesteia fiind mișcarea rotorului. Pentru a păstra același sens al curentului rezultat , pe durată întregii rotații se folosesc plăcuțele colectoare ,adică un inel de metal împărțtit în două secțiuni. Acest inel este poziționat pe axul rotorului. Cele două jumătăți ale sale sunt izolate reprezentând astfel bornele bobinei. Periile fixe ,ce pot fi realizate din metal sau din carbon, sunt montate pe aceste plăcuțe colectoare astfel că în timp ce acestea se rotesc, realizează contactul electric al bobinei cu firele exterioare. În timp ce rotorul se află în mișcare , fiecare perie intră în contact cu plăcuțele colectoare în mod alternativ , modificându-și poziția imediat ce curentul din bobină își schimă sensul. Turația este direct proporțională cu tensiunea aplicată înfășurării rotorului și invers proporțională cu câmpul magnetic de excitație. Aceasta , se modifică prin reglarea tensiunii aplicată motorului . [7]
Motoarele fără perii , cunsocute și sub denumirea de motoare comutate electronic ,sunt motoare electrice sincrone puse în funcțiune de o sursă de curent electric și de un sistem electronic de comutație .Acest tip de motor este oarecum asemănător cu cel prezentat mai sus (cu perii), din punct de vedere al faptului ca folosește magneți și bobine pentru a pune în mișcare rotorul. Denumirea lor rezultă din faptul că pe axul rotorului nu se regăsesc periile responsabile de păstrarea aceluiași sens al curentului rezultat , pe durată intregii rotații. În locul acestora se regăsesc 3 bobine situate în interiorul motorului (exact în centrul acestuia). Pe partea exterioară , acesta conține un anumit număr de magneți (ce poate varia în funcție de performanțele motorului) montați pe un cilindru atașat axului ce se rotește. Bobinele sunt așadar fixe ceea ce înseamnă că firele pot ajunge direct la acestea , nemaifiind nevoie de prezența periilor . [7]
Comparație motoare cu perii vs motoare fără perii: avantaje și dezavantaje
Motoarele fără perii au o serie de avantaje față de cele obișnuite ce folosesc perii.
Cele mai importante avantaje sunt :eficiența(75% – 80 % în cazul motoarelor cu perii , respectiv 85% – 90 % în cazul celor fără perii )-datorată frecărilor periilor , zgomotul redus , durată de funcționare mai mare (nu mai este necesară înlocuirea periilor care în cazul motoarelor obișnuite se toceau datorită frecărilor existente ) , eliminarea scânteilor ce apăreau la comutator (în cazul motoarelor cu perii), o putere considerabil mai mare și reducerea generală a interferențelor electromagnetice(în cazul motoarelor cu perii , scânteile realizate de perii generează multe interferențe de acest fel) .Neavând bobinajul montat pe rotor , motoarele fără perii nu sunt afectate de forțele centrifugale și nici nu au nevoie de un flux de aer în interiorul acestora , ceea ce înseamnă că pot fi izolate complet de mediul exterior , fiind astfel protejate de apă , praf etc. De asemenea , puterea maximă ce poate fi aplicată unui motor fără perii este destul de mare , aceasta fiind limitată doar de căldura ce se degaja și care poate slăbi în timp magneții.
Principalul dezavantaj al motoarelor brushless este faptul că necesită un circuit electronic de conducere mai complex față de un motor cu perii. Acestea din urmă pot fi controlate cu ajutorul unui controler simplu cum ar fi un potențiometru. Motoarele fără perii necesită un controler special , acesta fiind reprezentat de regulatoarele ESC ( electronic speed controler) , al căror preț de achiziție este mai mare . Totuși , avantajul acestui tip de controler (ce înlocuiește ansamblul perii / comutator) este că răspunsul motoarelor este mult mai rapid și mai precis față de cel al unor motoare cu perii. Motoarele brushlesss sunt așadar mai eficiente în realizarea conversiei puterii mecanice față de cele cu perii. Aceasta îmbunătățire este datorată absenței frecărilor (cauzate de perii). Eficiența motoarelor fără perii este mai mai mare în zona unor sarcini mai mici,raportându-ne la curba de performanță a motoarelor . Dacă se face această comparație și în cazul unor sarcini mecanice mari cele două tipuri de motoare sunt asemănătoare din punct de vedere al eficienției.
Datorită numeroaselor avantaje prezentate în paragrafele de mai sus am ales ca soluție de implementare pentru realizarea propulsiei motoarele fără perii. La rândul său acest tip de motor se împarte în două categorii: 1. motoare out-runner și 2.motoare în-runner. Motoarele out-runner sunt cele mai folosite în domeniul aeromodelismului . Ele sunt asemănătoare cu cele întâlnite în unitățile optice de citire (CD-ROM / DVD-ROM) și presupun rotirea carcasei exterioare în jurul bobinajului situat în interiorul acestuia. Au viteze mai mici de rotație față de cele de tip in-runner. În cazul acestora mișcarea de rotație are loc în interiorul carcasei. Ele necesită totuși și prezența unei cutii de viteze care adaugă greutate suplimentară întregului ansamblu , zgomot și complexitate. Motoarele de tip out-runner sunt destul de populare , existând diferite dimensinui ce pot fi alese pentru acestea .Sunt folosite și în realizarea mijloacelor de transport electrice cum ar fi biciclete electrice , scootere electrice, motocicletele electrice. De aceea am ales să folosesc un motor brushless de tip out-runner.
Caracteristicile cele mai importante ale unui astfel de motor sunt : curentul consumat și caracteristica Kv. Această ultimă specificație indică numărul de rotații pe minut (RPM) pe care motorul le va executa la o anumită tensiune. Valoarea RPM variază așadat în funcție de voltajul aplicat. De exemplu ,un motor cu o caracteristică de 1000 Kv, va executa 1000 rpm la fiecare volt. Astfel , pentru tensiunea de 12 volți , motorul va executa 12 *1000= 12000 rpm. Formula prin care se poate afla numărul de rpm pentru orice motor este așadar următoarea:
Nr_RPM= U*kv, unde U reprezintă tensiunea de alimentare a motorului , iar kv-caracteristica prezentată în rândurile de mai sus. [7]
În alegerea modelului exact de motoare s-a avut în vedere un alt aspect foarte important pentru buna funcționare a dispozitivului și anume: greutatea totală a întregului ansamblu , a cărei valoare a trebuit să fie aproximată , neavând posibilitatea de a o cunoaște precis. Pe baza aproximațiilor , dar și a modelelor deja existente pe piața am aproximat o greutate totală a întregului ansamblu între 1.6 kg – 2 kg . La determinarea acestui prag am ținut cont și de valorile greutății pentru cadru , baterie, camera video, motoare , ESC etc. În urma acestor calcule , rezultatul obținut s-a încadrat în intervalul de mai sus(1,6Kg-2 Kg). De asemenea , în acest domeniu al aeromodelismului , mai există o regulă care precizează că pentru a obține un quadrocopter manevrabil , motoarele trebuie să asigure o forță de ridicare de două ori mai mare decât greutatea ansamblului. Așadar , în cazul de față pentru o greutate totală de 1.6-2 Kg , motoarele vor trebui să aibă capacitatea de a ridica de două ori această valoare , aceasta situându-se între 3.2 Kg-4 Kg,acest lucru asigurând că în momentul decolării sau în timpul unui zbor la punct fix, motoarele vor fi la 50% din puterea maximă disponibilă. Capacitatea de ridicare a unui motor variază în funcție de tensiunea bateriei ce îl alimentează și de diametrul elicilor ce vor fi montate pe acesta . Totuși , pentru rotirea unei elici , trebuie ca diametrul acesteia să aibă o anumită valoare . În cazul în care s-ar fi ales o elice cu un diametru mai mare decât cel recomandăt pentru un motor , acesta s-ar fi putut supraîncălzi .Practic , pentru a roti elicea respectivă motorul ar fi fost supus unei sarcini mai
mari decât cea pentru care a fost proiectat , astfel că în cazul unei funcționări pe perioade mai mari de timp în acest interval , acesta s-ar defecta , iar în cazul în care acest lucru s-ar întâmpla în momentul în care quadcopterul se află la o altitudine de câteva sute de metri rezultatul ar fi o pierdere rapidă a altitudinii și implicit prăbușirea dispozitivului , ce poate duce la distrugerea cadrului , elicilor ,camerei și la alte posibile pagube .
Ținând cont de toți factorii prezentați în paragrafele precedente am ales următorul motor , achiziționat la fel ca și cadrul de la același magazin online specializat( Hobbyking ) : NTM Prop Drive Series 28-30S 900kv / 270w al cărui preț s-a dovedit accesibil , ținând cont că modelul repesctiv respecta valorile parametrilor de mai sus.
Conform specificațiilor tehnice de mai sus , oferite de producator , motorul are o caracteristică Kv de 900 rpm / v , curentul maxim pe care îl poate consuma este de 18A( acest factor a fost luat în calcul la alegerea ESC-urilor) . Puterea maximă a motorului este de 215 wati în cazul unei baterii cu 3 celule de 12 volți sau 270 wati în cazul unei baterii cu 4 celule de 15 volți. Greutatea fiecărui motor este de 66 grame , rezultând un total de 256 grame pentru toate patru. După cum se poate observa , acest model de motor poate fi alimentat de o baterie cu o tensiune cuprinsă între 12 și 15 volți (adică se poate alege fie o baterie cu 3 celule: 3S fie una cu 4 celule : 4S). Sarcina pe care o poate ridica fiecare motor variază în funcție de dimensiunea elicei și tensiunea bateriei alese. Folosind o elice de 10×4.7(10 inchi diametru și un pas de 4.7 inchi) sarcina maximă ce poate fi ridicată este de 1.08kg , ceea ce înseamnă că toate cele 4 sunt capabile să ridice o geutate de 4,32 kg. [9] Ținând cont și de recomandarea de a avea o greutate totală a întregului ansamblu la jumătate față de capacitatea maximă de ridicare a motoarelor (lucru ce îmbunătățește manevrabilitatea în timpul zborului) , rezultă o greutate maximă de 2,16 kg pe care ar trebui să o aibă quadrocopterul ( aceasta fiind în apropierea intervalului inițial aproximat la 1,6-1.8kg).La alegerea unei elici potrivite pentru acest timp de motor trebuie avut în vedere și că mărimea acesteia să fie compatibilă cu cadrul ales. Astfel , din specificațiile producătorului cadrului , dimensiunile acceptate pentru elici sunt între 9-11 inci (diametru). Alegerea unor elici mai mari ar putea duce la lovirea acestora , cadrul neavând o distanță suficientă între brațe care să asigure montarea unor elici cu un diametru mai mare de 11 inchi.De asemenea , alegerea unei elici mai mari poate avea și efecte negative asupra funcționării motorului , așa cum s-a specificat mai sus( supraîncălzirea motoarelor , ce poate duce la defectarea acestora).Un alt parametru important al motoarelor este consumul lor. Din specificațiile producătorului , curentul maxim consumat de motor este de 18A ( acesta variind în funcție de diametrul elicilor). Pentru o elice de 10×4.7 , fiecare motor va avea un consum maxim de 15.4A , dezvoltând o putere de 233 wati. Pentru calculul consumului necesar menținerii la punct fix , se va împărți consumul maxim la 2 (deoarece pentru zborul la punct fix va fi folosită doar 50% din puterea maximă disponibilă) , rezultând un total de 7.7A (în condițiile în care quadcopterul ar avea o greutate de 2.16 kg).Se recomandă totuși ca greutatea întregului ansamblu să fie cât mai mică posibil , pentru a îmbunătăți controlul acestuia și timpul de zbor.
2.1.3.Elici
Pe fiecare motor al quadcopterului se va regăsi montată o elice. Este important de știut că cele 4 elici nu sunt identice. În urma unei obervații mai atente se va vedea că două dintre acestea au o înclinare către dreapta , iar celelalte au o înclinare către stânga.Astfel , două dintre acestea se rotesc în sensul acelor de ceasornic , în timp ce restul se rotesc în direcția inversă acelor de ceasornic , de unde și denumirea lor din engleză CW ( clockwise) respectiv CCW(counter-clockwise). Datorită acestei diferențieri între elici , elicile vor genera forța de ridicare necesară aparatului și vor stabiliza aparatul. .Se va evita , în acest fel, rotirea celor 4 elici în același sens , ceea ce ar duce implicit și la rotirea întregului quadcopter în aer.
Un element important în alegerea elicilor , pe lângă dimensiunile acestora este materialul din care acestea sunt fabricate. În general cele mai utilizate astfel de materiale sunt: plastic,plastic ranforsat cu fibră de carbon , lemn și fibră de carbon. În general , elicile de plastic și cele ranforsate cu carbon au o flexibilitate mărită față de restul elicilor , însă nu sunt la fel de rezistente , generând totodată vibrații ce pot afecta zborul. Elicile de carbon sunt mult mai rigide și mai ușoare față de cele din plastic , neavând probleme cu vibrațiile. Totuși , au un preț de achiziție mai mare . Elicile din lemn sunt asemănătoare cu cele din carbon , însă nu au rezistența acestora , astfel că în cazul unui impact mai dur pot apărea fisuri.Trebuie avut în vedere că în cazul în care elicea se îndoaie în timpul zborului , se va pierde din eficiența întrucât forța de ridicare a acesteia va scădea. De aceea , am ales să montez pe quadcopterul realizat elici din carbon. În alegerea mărimii acestora și a pasului am ținut cont de diametrul maxim permis de cadru și de motor. Astfel , un diametru și un pas mai mare al elicilor ar genera mai multa forță de tracțiune . [7]
Totuși și consumul de curent ar crește în acest caz , însă elicile vor putea ridica mai multă greutate. O altă regulă este că în cazul alegerii unor motoare cu turații mari (peste 1400 rpm per volt) să se folosească elici cu diametru mai mic , în timp ce pentru motoare cu turații mai mici (sub 750 rpm per volt) se vor alege elici cu un diametru cât mai mare pentru a genera forța de ridicare necesară. Motoarele alese de mine au un factor Kv de 900 ( adica 900 rpm per volt) , ceea ce le clasează în categoria de mijloc în ceea ce privește turația . Pentru această plaja de turații se recomandă utilizarea unor elici între 9-12 inchi. [10]
O viteză de rotație mai mare a elicilor va avea drept rezultat o viteză mai mare și un control bun al aparatului , fiind limitată totuși în greutatea pe care o poate ridica. Așadar , pe măsură ce diametrul elicii crește , va crește și consumul de curent dar și capacitatea de ridicare a motorului. Pentru quadcoptere cu o greutate ceva mai mare ce transportă și o cameră , se recomandă folosirea unor motoare cu un factor kv mediu , pe care să fie montate elici cu dimensiuni medii.Pasul unei elici este dat de gradul de înclinare al acesteia. O elice cu un pas mai mare va determina mișcarea unor mase de aer mai mari , ceea ce poate duce la apariția turbulențelor și implicit a vibrațiilor ce vor fi transmise prin cadru. Având în vedere toți factorii mai sus prezentați s-au ales elici realizate din fibră de carbon cu un diametru de 10 inchi ,un pas de 4.7 și o greutate de 9g ( fiind de altfel și o dimensiune destul de populară pentru mulțicoptere , dovedindu-se totodată relativ ușor de găsit) . Pentru a limita vibrațiile ce pot apărea , elicile trebuie echilibrate cu un dispozitiv ca cel de mai jos în care se verifică dacă cele 2 pale ale elicii( partea din stânga și cea din dreapta lagărului) sunt egale. În cazul în care acestea nu sunt egale , elicea va trebui echilibrată: fie se va pune o mică greutate(bandă adezivă pe partea mai ușoara) fie se va folosi un șmirghel fin pe partea mai grea pentru a înlătura excesul de material .Deși pare o operațiune simplă de realizat , echilibrarea trebuie făcută cu atenție deoarece în cazul în care elicile nu sunt bine calibrate , zborul și calitatea imaginii transmise pot fi afectate.
2.1.4.Bateria
Reprezintă sursa de energie a quadcopterului.Pe piață există o varietate largă de tipuri de baterii ce pot fi utilizate : Li-po, Li-ion,Ni-mh etc. Bateriile Li-ion au un preț de achiziție mai ridicat față de restul și o greutate mai mare față de bateriile Li-po. Avantajul acumulatorilor Li-ion este durată mai mare de viață (aproximativ 500 cicluri încărcare-descărcare). Bateriile Ni-mh au un preț mai scăzut , însă greutatea lor este mai mare față de restul bateriilor. Bateriile Li-po ( Lithium-polymer) au un preț de achiziție acceptabil , o greutate redusă față de celelalte tipuri de acumulatori și în plus satisfac consumul de curent necesar în acest caz. Ca dezavantaj pentru acest model de acumulatori se poate aminti ciclul de viață mai mic față de bateriile Li-ion și faptul că necesită o mai mare atenție la manipulare și la încărcare pentru a evita o potențială explozie a acestora. De asemenea, în cazul unei descărcări sub nivelul minim recomandăt( mai puțin de 2.8v / celulă) bateria se poate defecta. Se recomandă așadar rezervarea unei capacități de 10-20% de siguranță .Totodată această rezervă poate mări durată de viață a bateriei în timp. [7]
Bateriile Li-po pot fi gasite în diverse configurații ce incep de la 1 celulă și merg până la 10 celule ( cu tensiuni de la 3.7 volți până 37 volți).Tensiunea nominală a unei astfel de celule este de 3.7v , iar în momentul în care bateria este încărcată 100% , tensiunea per celula ajunge la 4.2v. Printre cele mai populare baterii de acest fel se pot aminti bateriile 3S(compuse din 3 celule și cu o tensiune nominală de 11.1 volți) și cele 4S (compuse din 4 celule și cu o tensiune nominală de 14.7 celule). Principalii factori în alegerea unei baterii sunt : voltajul , capacitatea , factorul de descărcare C și greutatea.În ceea ce privește capacitatea acumulatorului aceasta poate fi asemănată cu rezervorul de combustibil al unui autoturism. Așadar , cu cât capacitatea acesteia este mai mare cu atât mai mult va rămâne în aer quadcopterul. Timpul de zbor nu este totuși liniar , în sensul că dacă se va utiliza o baterie de 2000mAh pentru un zbor de 8 minute , înlocuirea acesteia cu una de 4000mAh nu va însemna o dublare a timpului de zbor de la 8 minute la 16 minute . Cauza acestui lucru este greutatea suplimentară a bateriei cu o capacitate superioară ce face ca turația motoarelor să fie mai mare și implicit consumul de curent să creasca.Un alt element important în alegerea bateriei este factorul de descărcare C. Acesta , împreună cu capacitatea acumulatorului indică valoarea maximă a curentului ce poate fi furnizat. Pentru calculul acestei valori se utilizează formula următoare: CurentMaxim=Capacitate x Factorul C . De exemplu în cazul unei baterii cu o capacitate de 5000mAh și cu un factor de descărcare de 30C , curentul maxim oferit va avea valoarea de 5000mAh x 30C= 150A. Așadar , motoarele și elicile pentru acestea trebuie alese în așa fel încât consumul maxim să nu depășească valoarea de 150 A (echivalent cu un consum maxim de 37.5 A pentru fiecare dintre cele 4 motoare). Pentru prelungirea duratei de viață a acumulatorului este recomandăt că valoarea maximă a curentului oferit de acesta să fie mai mare față de valoarea curentului consumat. În cazul exemplului de mai sus , este recomandăt un consum de 100-120 Amperi. De asemenea , un alt lucru ce poate fi efectuat pentru prevenirea deteriorării acumulatorului în timp este rezervarea unei capacități de 10-20 % din capacitatea maximă disponibilă. Astfel pentru o baterie cu o capacitate de 5000mAh este recomandătă încheierea zborului atunci când se ajunge la 500-1000 mAh. Greutatea unui astfel de acumulator variază în funcție de numărul de celule , de factorul de descărcare C și de capacitatea acestora.
Pentru o baterie cu 4 celule ( voltaj nominal : 14.8 v) și o capacitate de 5800 mAh greutatea totală este de aproximativ 560 grame , reprezentând o parte importantă din masa totală a întregului dispozitiv. Având în vedere toți acești factori am ales bateria Zippy FlightMax formată din 4 celule (tenisune nominală 14.8 volți) cu o capacitate de 5800mAh și o greutate de aproximativ 560 grame. Factorul de descărcare C oferit de aceasta este de 30C , ceeea ce înseamnă că valoarea maximă a curentului oferit de acest model este de 5800mAh x 30C =174A . Ținând cont de faptul că valoarea maximă consumată de un motor este de 18 Amperi , rezultă un total de 72 Amperi , sub nivelul maxim de 174 A disponibil. Pentru încărcarea bateriei se utilizează un încărcător controlat de un microprocesor . Având în vedere că bateriile Lithium-polimer nu trebuie supraîncărcate sau încălzite excesiv , dispozitivul oprește încărcarea în momentul în care este atinsă tensiunea maximă admisă (16.8 volți) semnalizând totodată acest lucru prin emiterea unor semnale sonore menite să avertizeze utilizatorul că bateria trebuie decuplată. [11]
De asemenea , încărcătorul ales are și funcția de egalizator în sensul că verifică ca toate cele 4 celule să fie încărcate în mod egal (adică să aibe aceeași tensiune) , și face ajustări în cazul în care acestea nu au aceeași valoare.Tensiunea acumulatorului poate fi urmărită pe display-ul încărcătorului. În cazul în care se dorește ca bateria să fie depozitată pe o perioadă mai mare de timp , ea va fi încărcată doar la 50 % din capacitate cu scopul de a îi prelungi pe cât posibil durată de viață.Încărcătorul ales este modelul Turnigy Accucell 6 ce permite încărcarea diferitelor tipuri de baterii: Lithium-ion , Lithium – polimer , Ni-Mh cu tensiuni cuprinse între 2 și 20 de volți cu un curent ce poate varia între 1 A și 6 A .Cu cât se alege o durată mai mare a curentului cu atât încărcarea se realizează mai rapid , însă trebuie ținut cont și de faptul că un curent cu o valoare superioară duce la încalzirea și implicit deterioarea acumulatorului. Recomandărea este ca acumulatorul pe care îl voi utiliza să fie încărcat cu un curent de o intensitate cât mai mică posibil ( 1A , maxim 2A) . Pentru maximizarea timpului de zbor se mai poate conecta o a două baterie , montată în paralel cu prima care va dubla capacitatea inițială. Totuși , în acest caz trebuie avut în vedere ca ambele baterii să fie identice ( tenisunea , factorul de descărcare C , capacitatea ). De asemenea , acestea vor fi încărcate în același timp prin intermediul unui conector special , asigurând totodată că tensiunea celor două să fie cât mai apropiată una de cealaltă. De asemenea trebuie ținut cont ca greutatea bateriei suplimentare adunată cu cea a întregului dispozitiv să nu depășească 50 % din forța de ridicare a motoarelor (în cazul dispozitivului de față forța totală de ridicare a motoarelor este de 4320 grame) , în scopul de a nu afecta manevrabilitatea aparatului în timpul zborului.
2.1.5 Regulatoare /ESC
Motoarele folosite ( fără perii) pentru construcția quadrocopter-ului sunt trifazate , astfel că în cazul conectării acestora direct la baterie , nu vor funcționa. De aceea , între baterie și fiecare motor se montează un driver a cărui denumire prescurtată este ESC (electronic speed controller ) responsabil pentru controlul acestora. ESC – ul generează trei semnale de frecvență ridicată cu faze diferite ce mențin motorul în mișcare. Acest driver este de fapt un controler cu un preț accesibil ce are o intrare pentru baterie(al cărei voltaj poate varia) și o ieșire trifazată responsabilă de controlul motorului. ESC-urile sunt controlate cu ajutorul semnalelor de tip PPM (pulse-position modulation), asemănător cu semnalul de tip PWM(pulse width modulation).Protocolul PPM este de fapt o undă PWM cu o frecvență de 50 Hz. În cazul unui quadcopter este recomandat ca ESC-ul folosit să suporte frecvențe suficient de mari astfel încât viteza motoarelor să poată fi modificată îndeajuns de rapid cu scopul de a obține o stabilitate cât mai bună. Frecvență minimă care respectă cerințele impuse este de 400hz. Funcționarea acestor tipuri de regulatoare va fi explicată în continuare. Controlul acestuia este asemănător cu cel al unui motor servo. Prin intermediul telecomenzii este trimis câte un impuls la fiecare 20 milisecunde către drivere. Lumgimea pulsului variază de la 1milisescunda(ms) la 2 ms și este cea care codifică controlul informației. În momentul în care este primit un impuls cu o lungime de 1 ms și o frecvență de 50 hz ESC dă comanda de oprire a motorului. În cazul recepționării unui impuls de 1.5 ms , ESC-ul dă un semnal de ieșire ce comandă motorului să se miște cu aprox jumătate din viteza maximă. Pentru un impuls de 2 ms , motorul va funcționa la turația maximă. Se remarcă și existența unor alte modele de ESC-uri ce permit o durată de 2,5 ms a impulsului. [7]
Majoritatea ESC-urilor actuale beneficiază și de o altă caracteristică numita BEC (abreviere de la battery elimination circuit).Aceasta presupune folosirea ESC-urilor ca înlocuitor al unei baterii suplimentare responsabile de alimentarea controler-ului de zbor și a receiver-ului telecomenzii. Practic , modelele respective de ESC-uri au în componența lor regulatoarea de tensiune ( cele mai întalnite astfel de regulatoare sunt modele IC7805 și IC7812 ce oferă o tensiune de ieșire de 5V- primul model , respectiv 12V cel de – al doilea model) ce oferă tensiunea necesară pentru funcționarea diferiților consumatori. Această funcție BEC se dovedește a fi utilă deoarece prin eliminarea bateriei suplimentare se câștigă aproximativ 100 grame ,ceea ce înseamnă o greutate mai mică , un consum mai mic de curent al motoarelor și implicit un timp mai mare de zbor.
Totuși , caracteristica cea mai importantă în alegerea ESC-urilor este curentul maxim pe care acestea îl pot oferi motoarelor . Pentru siguranța în timpul zborului dar și pentru prelungirea duratei de viață a ESC-urilor, se recomandă ca valoarea curentului maxim suportat de acestea să fie mai mare decât cea a motoarelor . De exemplu pentru un motor cu un consum maxim de 18 A ,așa cum este cazul motoarelor de față , se recomandă un ESC de 25-30 A. Valoarea acestuia este strâns legată de cea a curentului maxim consumat de motoare. În cazul în care s-ar fi ales un ESC de 20 A sau mai mic , acesta s-ar fi încălzit excesiv , putând ajunge chiar la distrugerea completă a regulatorului și pagube importante ale quadcopterului în cazul în care această creștere a temperaturii interne s-ar întâmpla pe durata unui zbor. Respectiva problema are drept cauză faptul că ESC-ul nu poate oferi motorului curent la intensitatea potrivită. De asemenea , trebuie avută în vedere și tensiunea până la care aceste drivere pot funcționa . În cazul meu , având o baterie 4s( cu 4 celule a câte 4.2 v max fiecare) , esc-ul utilizat va trebui să suporte o tensiune maximă de 16.8 v. Ținând cont de acești factori am ales să folosesc esc-ul Mystery M-30 , capabil să funcționeze la tensiuni de alimentare între 7.2v și 16.8 v (incadrându-se așadar în tensiunea bateriei ) și să livreze fiecărui motor un curent ,maxim de 30A.
Frecvența la care acesta funcționează este de aproximativ 500 Hz , ceea ce înseamnă un timp mai bun de răspuns la comenzile primite și implicit o manevrabilitate mai bună și o eficiență sporită a întregului ansamblu. Fiecare din cele 4 ESC-uri are posibilitatea de a fi folosit ca BEC ( adică poate fi utilizat pentru a alimenta diverși consumatori cum ar fi led-uri , controller de zbor, receiver RC la o tensiune de 5 v). Circuitul electronic este protejat de umezeală , praf sau eventuale descărcări electrostatice prin intermediul unui bande izolatoare cauciucate , ce înconjoară întregul ESC. [12] Din imaginile de mai jos se pot observa cele 2 intrări de la baterie respectiv cele 3 ieșiri care controlează motorul.Se mai remarcă și existența a 3 fire situate între intrările de la baterie , lipite unul de celalt . Două dintre acestea (roșu și negru ) oferă un curent de ieșire cu o tensiune de 5V și o intensitate de 2A și vor fi folosite pentru alimentarea controler-ului de zbor și a receiver-ului RC. Cel de-al treilea fir, de culoare albă, este responsabil de preluarea semnalului de la receiver și în funcție de acesta oferă ieșirea dorită . Acest model de ESC are o greutate de aproximativ 25 grame , ceea ce înseamnă un total de 100 grame pentru toate cele 4 exemplare.Ele vor fi conectate la baterie prin intermediul unei plăci de distribuție ce are rolul de a partaja tensiunea bateriei către fiecare ESC și implicit fiecare motor. Un aspect important al acestei plăci suplimentare este că poate fi utilizată doar pentru motoare ce au un consum maxim de 20A ( pentru motoarele alese consumul maxim este de 18A). [13] Așa cum se poate remarca și în poză pe placa de distribuție există 2 fire cu diametrul mai mare(responsabile de legătura plăcii cu bateria,de unde se explică și diametrul firelor ) și 8 conectori (grupați câte 2) ce vor fi conectați la câte un ESC. Conectorii prezenți pe placă sunt denumiți conectori de tip „bullet”(au un diametru de 3.5mm ) și sunt folosiți pentru a face mai ușor legătura între ESC și placa de distribuție. La capătul firelor de intrare ale fiecărui ESC au fost cositoriți astfel de conectori. Totodată , în cazul în care se dorește schimbarea unui ESC ,sau demontarea lui de pe cadrul quadcopter-ului și testarea acestuia separată , înlăturarea lor va fi mult mai simplă deoarece nu va mai implica o cositorire suplimentară pentru a reface legătura.Acest tip de conector se aseamănă cu cel întâlnit și la diferitele tipuri de căști audio cu mufă jack de 3.5 mm regăsite în prezent într-o gamă largă de dispozitive (PC,laptop , telefon, player audio etc) datorită simplității de fabricare și a robusteții dovedite.
ESC-ul ales poate fi programat de utilizator cu scopul de a avea o funcționare cât mai eficientă în funcție de restul componentelor. În primul rând permite alegerea tipului de baterie ce va fi folosită : Li-Ion /Li-po/NiMh/Nicd . O altă funcție permite setarea acțiunii ce va fi executată în momentul atingerii unui anumit prag al tensiunii. Există două variante ce pot fi alese : Soft Cut-off(reducere treptată a turației motoarelor ) sau Cut-off(oprește imediat alimentarea motoarelor, nepotrivită pentru mulțicoptere). De asemenea , se poate alege valoarea acestei tensiuni în funcție de voltajul bateriei la un anumit moment. Pentru o baterie cu 4 celule așa cum este cea aleasă pentru quadcopter-ul construit , se poate selecta o tensiune de decuplare de: 11.4v/12.8v/ 13.2v . În momentul în care quadcopter-ul se ridică de la sol se poate alege timpul necesar motoarelor pentru a atinge turația dorită : 300ms / 6s / 12s. Există și câteva tonuri speciale de avertizare pe care ESC-ul le emite în cazul în care bateria nu are tensiunea potrivită , nu se detectează semnalul de la receiver-ul RC , sau alte posibile defecțiuni ce pot afecta zborul.
2.1.6.Controler-ul de zbor
Controler-ul de zbor este practic cea mai importantă parte dintr-un quadcopter , fiind asemănător cu un CPU(procesor) întâlnit în prezent în diverse dispozitive electronice. El are rolul de a menține echilibrul întregului aparat prin intermediul senzorilor. Pentru a face acest lucru , controller-ul trebuie să primească în mod continuu valori ale parametrilor de zbor de la senzori. În funcție de valorile recepționate se ajustează viteza fiecărui motor pentru a menține echilibrul aparatului.Așa cum am precizat și la începutul acestei lucrări un quadcopter are 4 grade de libertate: Yaw, Roll(rotire), pitch și altitudine. Acestea pot fi controlate ajustând turația fiecărui motor în parte. Se remarcă așadar prezența obligatorie a 3 tipuri de senzori care să permită măsurarea precisă a poziției în aer a dispozitivului. Acești 3 senzori pot fi integrați în controler-ul principal sau pot fi achiziționați separat și apoi conectați la acesta. Ansamblul format este denumit și IMU , abreviere de la inertial measuring unit și este întâlnit în dotarea oricărui aparat aerian . Ansamblul IMU este format din accelerometru , giroscop, magnetometru. În continuare , va fi prezentată funcționarea fiecărui tip de senzor în parte cu scopul de a înțelege rolul precum și necesitatea lor. [7] Accelerometrul arată cât de rapid se mișcă un obiect și este folosit atât pentru a măsura accelerațiile de tip static , așa cum este gravitatea , cât și pe cele de dinamic, de genul opririi sau pornirii bruște. Unitatea de măsură a acestuia este m/s2 .Trebuie ținut cont că măsurătorile accelerometrului sunt afectate de forța de gravitație. De accea pentru a obține o măsurătoare corectă este nevoie de măsurarea accelerației pe toate cele 3 axe (Ox, Oy,Oz).Senzorii de acest fel sunt regăsiți în prezent într-un mic circuit electronic , protejat de o capsulă din plastic, cu o greutate redusă și un consum mic de curent . Un dezavataj important întâlnit la accelerometru este sensibilitatea sa la vibrațiile produse de motoare , ce pot furniza valori eronate ale accelerației în cazul în care senzorii nu sunt izolați corespunzător de restul cadrului .
Giroscopul este responsabil de măsurarea vitezei unghiulare . Unitatea de măsură a unui astfel de dispozitiv este RPM( rotații pe minut) sau grade pe secundă.La fel ca și la accelerometru pentru a obține valori corecte se impune măsurarea vitezelor de pe toate cele 3 axe ortogonale.Pe piață există diferite modele de giroscop , grupate în funcție de precizia și de rata de actualizare a datelor.
Pentru un quadcopter , chiar și modelele cu o precizie mai mică sunt potrivite , astfel că prețul acestuia este accesibil.
În cazul utilizării doar al unui accelerometru fără un giroscop , s-ar putea măsura orientarea aparatului raportată la suprafața pământului. Însă , așa cum s-a precizat și în paginile anterioare ale acestei lucrări , accelerometrul este foarte sensibil și uneori chiar instabil în momentul în care motoarele produc vibrații puternice , trimise apoi prin intermediul cadrului către diferiții senzori.Dacă pe lângă accelerometru se folosește și un giroscop se va putea face o diferențiere între mișcare și vibrație , lucru esențial în ceea ce privește calitatea zborului. Pe de altă parte , în cazul folosirii doar a giroscopului ar apărea probleme la citirea valorilor acestuia în momentul mișcării de rotație (cunoscută și sub numele de mișcare de drift). Astfel , dacă senzorul este rotit , giroscopul va returna viteza unghiulară, dar în momentul opririi mișcării , acesta nu va arata obligatoriu valoarea de 0 grade/s . S-ar obține așadar citiri care vor oferi o orientare ce arată că aparatul ar executa în continuare o usoara mișcare de drift , chiar dacă senzorul nu ar fi oprit. De aceea , folosirea celor 2 senzori împreună este importantă. Magnetometru. Accelerometrul nu poate resimți mișcarea de Yaw așa cum face în cazul celei de rotație (roll) sau pitch. Pentru a compensa acest lucru în unele cazuri se apelează și la montarea unui magnetometru.Acesta este un dispozitiv ce măsoră orientarea și intensitatea câmpului magnetic. El poate fi utilizat pentru a determina în ce direcție se află polii magnetici ( sud sau nord) . Cunoașterea acestei poziționări este folosită ca o referință , alături de viteza unghiulară oferită de giroscop , pentru a calcula un unghi yaw cât mai stabil.În multe situații acești 3 senzori sunt montați direct pe controler-ul de zbor , însă există și posibilitatea de a fi achiziționati separat și ulterior montați , în cazul în care nu se regăsesc pe aceasta.
Controler-ul de zbor ales este cunoscut sub mai multe denumiri cum ar fi :Ardupilot, Arduflyer, Arducopter etc . Se remarcă asemănarea numelui acestuia cu mult mai cunoscuta placă de dezvoltare și prototipare Arduino. Acest lucru se datorează alegerii unui microcontroller fabricat de Atmel , regăsit cu unele modificări și pe anumite versiuni Arduino (Leonardo , Mega etc). Mai precis este vorba despre ATMega 2560 , succesor al mai vechiului ATMEL 328( regasit pe Arduino Uno) care spre deosebire de acesta are o frecvență de tact mai mare , precum și o memorie ce permite înregistrarea mai multor comenzi , lucruri care fac posibilă utilizarea acestuia în cadrul unui aparat de zbor , în care senzorii primesc o cantitate vastă de informații într-un interval de timp scurt). Alături de controller se poate achziționa și o carcasă dedicată pentru acesta cu rol de protecție la curenții de aer produși de elici , umezeală , șocuri , praf sau alte elemente ce pot afecta calitatâtea măsurătorilor sau chiar deteriora senzorii. Conexiunea cu calculatorul se face prin intermdiul unei mufe micro-usb.Tensiunea de alimentare a plăcii trebuie să se regăseasca în intervalul urmator: 4,8-5,5 volți. Exista mai multe metode prin care aceasta poate fi alimentată. Pentru testare , debugging și încărcarea programelor se va utiliza portul micro-usb, care în acest caz, va asigura și alimentarea la o tensiune optimă. Totuși , în timpul zborului , alimentarea se va realiza fie dintr-un modul dedicat(denumit power module , ce asigură o tensiune constantă de 5.3 volți , fără variații semnificative) , fie de la unul din ESC-urile(regulatoarele de turație) cu funcție de BEC (ce presupune existența unei ieșiri suplimentare de aproximativ 5v). Producatorul menționează că circuitul integrat de pe placă beneficiază de protecție la supra –tensiune (prin intermediul unor siguranțe ce pot fi înlocuite în cazul în care se depășeste pragul maxim admis) și la inversarea polarității.
Versiunea plăcii utilizată în acest proiect este 2.5 . Din punct de vedere al senzorilor utilizați se remarcă existența unui circuit integrat numit MPU-6000 ,(în cadrul căruia se regașeste un giroscop , precum și un accelerometru , ambele pe 3 axe ) a unui senzor de presiune atmosferică (BMP085) și a unui magnetometru (HMC5883L) . Pentru stocarea datelor din timpul zborului se folosește o memorie flash(cu o dimensiune de 4 mb ) , utilă în cazul în care se dorește o analiză ulterioară zborului a diferiților parametri inregistrați(exemplu : altitudine , temperatură , orientarea în zbor etc). De asemenea există posibilitatea de a folosi un magnetometru extern , prin intermediul portului I2C , sau un modul GPS(pentru a obține locația în timp real a dispozitivului, viteza de deplasare , zborul la punct fix etc) prin intermediul unui alt port dedicat. De asemenea , există posibilitatea de a atașa un modul de telemetrie care să permită comunicarea , către utilizator în timp real, a diferiților parametrii de zbor cum ar fi : altitudinea , viteza de zbor , orientarea , timpul de zbor , tensiunea bateriei ( prin intermediul unui senzor suplimentar) , coordonatele GPS( ale locului în care se afla aparatul) ,etc. [14]
Realizarea conexiunii procesorului central ,ATMEGA2560 , cu interfață microusb este posibilă prin intermediul unui encoder PPM specializat denumit ATMEGA 32U2. În ceea ce privește specificațiile procesorului principal ATMEGA 2560 este necesară amintirea a câtorva dintre acestea.: Beneficiază de 54 de porturi intrare / ieșire dintre care 15 pot fi utilizate ca ieșiri PWM., 16 intrări analogice , 4 porturi UART( porturi seriale hardware , la care dacă se atașează un modul ftdi extern se poate realiza programarea CPU-ului , ocolind interfață USB, lucru util de știut în cazul în care conectorul microusb de pe placă s-ar desprinde , moment în care fără existența unui port UART recunoașterea plăcii de către calculator ar fi imposibilă ). Un avantaj foarte important al acestui controller este dimensiunea memoriei Flash disponibile (248 KB) pentru memorarea comenzilor ,dar și frecvență de lucru de 16 Mhz. [15]
Acțiunile pe care utilizatorul dorește ca aparatul de zbor să le execute sunt recepționate prin intermediul unui receiver radio și apoi de la acesta sunt trimise mai departe pentru procesare pe porturile pwm de intrare disponibile (în număr de 8) , urmând ca semnalul de comandă pentru acționarea motoarelor să fie trimis pe porturile PWM de ieșire (8 astfel de porturi). În partea superioara a plăcii se regăsesc 13 porturi suplimentare (denumite de la A0 la A13). Acestea pot fi utilizate pentru a conecta senzori suplimentari cum ar fi : senzor de curent și tensiune (importanți pentru monitorizarea capacității bateriei) , proximitate (ce pot fi ultrasonici sau infraroșii ,fiind utilizați pentru a menține altitudinea la distanțe mai mici față de pământ , zone în care barometrul nu are o precizie la fel de bună), de viteză a aerului, de temperatură sau orice alte tipuri de senzori).
2.1.7.Sistemul de transmisie Radio: Emițător + Receptor
Din punct de vedere al metodelor prin care mulțicopterul poate fi controlat , există diferite posibilități pentru a îndeplini acest obiectiv , dintre care se pot aminti : bluetooth , wireless , radio , infraroșu etc. Pentru proiectul de față s-a ales un sistem de transmisie radio , datorită razei mare de acțiune , simplitudinii acestuia , dar și pentru securitatea de care un astfel de sistem dă dovadă eliminând aproape total apariția unor posibile interferențe. Caracteristicile unui sistem radio sunt date de : frecvență pe care operează , raza de acțiune și numărul de canale pe care se pot trimite comezi. Pe piață există o mulțitudine de frecvențe ce pot fi utilizate în acest scop . Se întâlnesc astfel de sisteme cu frecvențe de 35 mhz, 72 mhz , 1.2 Ghz, 2.4 ghz , 5.8 ghz . În alegerea frecevenței potrivite s-a ținut cont de posibilele interferențe radio (preponderent în intervalul 900Mhz-1300 Mhz , banda de frecvență pe care operează telefonia mobilă ) , accesibilitatea diferitelor modele (cele mai populare fiind sistemele cu o frecvență de 2.4 ghz și 5.8 ghz) , dar și consumul de curent( cu cât frecvența este mai mare cu atât curentul necesar este mai mic).Ținând cont și de faptul că sistemul de transmisie video va fi nevoit să aibă o alta bandă (pentru a evita interferențele) s-a ales 2.4 ghz pentru transmisia comenzilor către mulțicopter și 5.8 ghz pentru transmisia video.
Un sistem radio RC este compus dintr-un transmițător și un receptor. În cazul de față transmițătorul este reprezentat de o telecomandă prin intermediul căreia pot fi trimise semnale către un receiver , acesta din urmă fiind responsabil de recepționarea semnalului . Odată ce semnalul a ajuns la receiver , va fi trimis ulterior către intrările PWM ale controler-ului de zbor, care va procesa semnalul primit și apoi în funcție de acesta va oferi ieșirile corespunzătoare pentru motoare.Fiecare canal radio , va avea alocat un port de intrare PWM pe controller. Pentru controlul unui quadcopter este nevoie obligatoriu de un controler cu minim 4 canale . De exemplu , canalul unu este responsabil de controlul accelerației , canalul doi va fi responsabil de controlul mișcării la stânga sau la drepta , al treilea canal va controla mișcarea înainte / înapoi , iar cel de –al patrulea va fi responsabil de controlul mișcării de rotație. Existența unor canale suplimentare este chiar recomandată , astfel că un alt canal va fi responsabil de schimbarea modului de zbor (aterizare , decolare, menținere altitudine etc) sau de declanșarea unor lumini / sunete , utile în cazul pierderii contactului vizual sau pentru găsirea locului în care aparatul a aterizat.
Orice sistem radio RC (remote- control) , indiferent de frecvența pe care operează , utilizează un semnal cu o durată precisă pentru a controla o ieșire(motor , lumină , difuzor). Transmițătorul realizează conversia din intrările date de utilizator ( viraj , accelerație, rotire etc) într-un set de impulsuri a căror durată este proporțională cu comenzile oferite. Apoi , modulează aceste impulsuri într- o frecvență radio specifică și transmite semnalul radio până la receiver. Odată primit semnalul , receiverul începe demodularea frecvenței radio pentru a obține pulsurile originale , pe care le trimite către controler. Controlul ESC-urilor (și implicit al motoarelor) necesită un flux continuu de pulsuri cu o durată cuprinsă între 1 ms și 2 ms . Acestea apar la o durată de aproximativ 20 ms. Tensiunea acestor pulsuri depinde de tensiunea de ieșire oferită de controler ( situându-se de obicei în jurul valorii de 5 volți). [17]
Modelul de sistem RC ales se numeste Turnigy 6x și este fabricat de compania Hobbyking. Sistemul de față a fost preferat altora datorită prețului mic de achiziție( 30 dolari) , razei de acțiune oferite , dar și pentru faptul că permite utilizarea unor canale suplimentare pentru diferite acțiuni.Alimentarea trasmițătorului se realizează prin utilizarea a 4 baterii sau acumulatori AA , fiecare având o tensiune nominală de 1.5 volți (6 volți în total). Este recomandată verificarea tensiunii acestora și a integrității la anumite intervale de timp pentru a fi înlocuiți atunci când este cazul , fără a pune în pericol întregul quadcopter. [16]
Din datele oferite de producător transmițătorul (reprezentat de telecomanda) are o putere de 20 dBm , ceea ce înseamnă ca sistemul poate fi folosit pentru distanțe maxime de 1.5 kilometri , în cazul în care nu există obstacole care să restricționeze transmiterea corectă a semnalului. Curentul consumat de transmițător se situează în jurul valorii de 150 mA.Transmițătorul este alcătuit din două manete ( asemănătoare cu joystick-urile prezente și pe consolele de jocuri) a căror funcționare este asemănătoare cu cea a unor potențiometre [16] Maneta din stânga este responsabilă de controlul accelerației ( punctul inferior al cursei manetei reprezintă accelerația minimă , iar punctul superior al cursei acesteia marcheză accelerația maximă). În cazul mișcării manetei pe orizontală se controlează mișcarea de rotație a aparatului. Maneta din partea dreaptă a telecomenzii este cea care permite deplasarea quadcopterului în față sau în spate (dacă este mișcată pe verticală) respectiv la stânga sau la dreapta( dacă este mișcată pe orizontală). Cele 4 sensuri de mișcare ale manetelor ocupă primele 4 canale dintre cele 6 oferite de acest sistem RC. Canalele 5 și 6 sunt poziționate în partea superioară și pot fi configurate prin intermediul software-ului să execute anumite acțiuni . Pe canalul 5 se va face schimbul între 2 moduri de zbor( de exemplu într-una din cele două poziții se va putea utiliza modul în care se menține altitudinea , iar în cealaltă aparatul va ateriza automat). Canalul 6 va fi util pentru acționarea unor led-uri sau buzzere, prin a căror declanșare utilizatorul va putea observa mai bine poziția în care se situează aparatul.În partea inferioară a transmițătorului se regăsesc 6 întrerupătoare responsabile de modificarea sensurilor celor 4 manete. Lângă ambele manete se remarcă prezența a câte 2 comutatoare , denumite trimmere. Acestea sunt responsabile de realizarea unui control mai fîn al aparatului. Astfel dacă, în lipsa unor perturbații (cum ar fi mișcarea bruscă a maselor de aer) quadcopterul va avea mereu tendința ca după decolare să se deplaseze într-o anumită direcție (stânga , dreapta , înainte sau înapoi) și fără ca utilizatorul să dea vreo comandă , se va apela la aceste 4 comutatoare pentru a corecta această abatere. Procedeul se repetă până când se obține o îmbunătățire a poziției aparatului. Este important ca acest proces să fie corect realizat deoarece ,în funcție de rezultatul acestuia controlul aparatului va fi îmbunătățit sau din contră va fi mai dificil.
În ceea ce privește receiver-ul , care are la rândul lui un rol important s-a avut în vedere alegerea unui model care să aibă o greutate cât mai redusă , iar dimensiunile acestuia să permită montarea lui pe cadrul quadcopterului ,într-un loc care să fie ferit de eventualele câmpuri electromagnetice fiind cunoscut faptul că în prezența unui astfel de câmp semnalul recepționat de receiver poate fi alterat.Greutatea modelului ales este 11.5 grame , în timp ce dimensiunile lui sunt de : 41mm(lungime) x 28mm(lățime) x 14 mm (grosime). Receiverul acceptă o alimentare la o tensiune cuprinsă în intervalul 4.5v-9.6v , astfel că tensiunea oferită de controlerul de zbor ( 5v) a fost suficientă. Curentul consumat nu depașește valoarea de 30 mA. Modulul prezintă 6 porturi corespunzătoare canalelor disponibile. Fiecare port este compus din 3 pini dintre care 2 pini responsabili de alimentarea cu 5v (+ și -) , iar cel de-al treilea pin oferă semnalul ce va fi transmis către controlerul central. Funcționarea întregului sistem se bazează așadar pe comenzile date de utilizator ( considerate intrări) ce sunt convertite în impulsuri pwm de o anumită durată și apoi sunt transmise către receiver. Acesta recepționează și decodifică semnalul pwm trimițându-l la rândul lor către controlerul de zbor prin conectarea celor 6 porturi ale sale la porturile de intrare ale controlerului de zbor. Ulterior , impulsurile sunt prelucrate de către acesta și în funcție de valoarea duratei lor sunt transmise , prin intermediul porturilor de ieșire ,comenzile către fiecare din cele 4 ESC-uri responsabile de controlul individual al motoarelor.
2.1.8 Sistemul de transmisie video: Emițător+Receptor
Pentru a putea controla quadcopterul la distanțe mai mari , la care contactul vizual cu acesta se diminuează este necesară implementarea unui sistem radio de transmisie video. Acesta va prelua imaginile captate de camera video montată la bordul aparatului prin intermediul unui transmițător. Imaginile vor fi recepționate la sol prin intermediul unui receptor video. Majoritatea sistemelor de transmisie video funcționează fie pe frecvență de 2.4 Ghz fie pe 5.8 Ghz.Fiecare dintre cele 2 frecvențe prezintă anumite avantaje și dezavantaje. Un sistem de transmisie video pe 2.4Ghz are avantajul că semnalul acestuia poate pătrunde mai ușor prin eventualele obstacole ce pot apărea între receptor și emițător cum ar fi diverse clădiri , copaci , stâlpi de telecomunicații etc.Dezavantajul unui astfel de sistem este calitatea mai scăzută a imaginii recepționate datorate lungimii de undă mai mici. În cazul unui sistem de transmisie video pe 5.8 ghz avantajul îl va reprezenta calitatea superioară a imaginii raportat la cel de 2.4 ghz . Dezavantajul acestuia va fi capacitatea mai scăzută a semnalului de a pătrunde prin eventualele obiecte ce se pot interpune între receptor și emițător. Astfel , în cazul în care aparatul s-ar situa în apropierea unui copac există posibilitatea ca semnalul transmis să fie diminuat sau chiar complet pierdut , ceea ce ar duce la pierderea orientării care,implicit, ar pune în pericol aparatul de zbor. Alegând un sistem de comandă RC pe 2.4 ghz ,am preferat ca sistemul de transmisie video să funcționeze pe o altă bandă de frecvență , astfel că s-a mers pe varianta unui sistem de 5.8 ghz . Pentru a îmbunătăți sistemul de transmisie video se pot monta antene cu o polarizare diferită. Astfel , indiferent de frecvență pe care funcționează aceasta ,în cadrul antenelor utilizate se remarcă prezența a două tipuri de polarizare: liniară și circulară. Alegerea uneia dintre aceste două tipuri de antene poate reprezenta o îmbunătățire substanțială în calitatea imaginii recepționate. Polarizarea liniară apare în momentul în care undele electromagnetice sunt transmise pe un singur plan ( orizontal sau vertical). Datorită emiterii concentrate , antenele liniar polarizate au o rază de acțiune mai mare decât cele polarizate circular. Polarizarea liniară este de două tipuri : verticală și orizontală.O antenă este denumită vertical polarizată atunci când câmpul electric al acesteia este perpendicular cu suprafața Pământului.Astfel de antene sunt întâlnite în cadrul turnurilor de transmisie AM sau în cazul antenelor montate pe automobile. Pentru o antenă orizontal polarizată, câmpul electric al acesteia este paralel Pământul. Astfel de antene sunt utilizate pentru transmisile TV. [18]
În cazul antenelor polarizate circular , acestea emit câmpuri electromagnetice într-o formă asemănătoare cu cea a unei spirale.O astfel de antenă emite energie așadar în ambele planuri simultan ( orizontal și vertical). Polarizarea circulară este cel mai des utilizată în comunicațiile pe bază de sateliți deoarece indiferent de poziția Pământului față de acestea sau de alte elemente ce pot apărea între acestea , semnalul transmis se va menține constant. Pentru a atinge cele mai bune performanțe este de preferat ca ambele antene (atât cea montată pe receptor cât și cea montată pe emițător ) să aibă aceeași polarizare.Chiar și în cazul în care s-ar folosi antene cu polarizări diferite , transmisia video ar fi posibilă în continuare , însă nu la calitatea maximă disponbilă. Astfel dacă se dorește ca aparatul să fie controlat la distanțe mai mari de 1 kilometru este recomandăt ca antenele utilizate să fie polarizate liniar , însă utilizatorul va trebui să fie atent deoarece în cazul unor distante atât de mari este foarte posibil ca între emițător și receptor să se interpună un obstacol . Pentru distanțe mai mici de 1 km , se recomandă utilizarea unor antene polarizate circular întrucât acestea vor asigura o transmisie cu o calitate video superioară chiar dacă quadcopterul va efectua viraje sau rotații. [18]
`
Un alt element important în alegerea unei antene este câștigul dBi. Neavând o sursă care să îi asigure alimentarea(așa cum se întâmplă în cazul amplificatoarelor) antena primește energia de la sursa responsabilă de semnal și apoi o concentrează câte o zonă mai mică sau mai mare în funcție de valorea factorului dBi. În cazul antenelor standard , regăsite și în cadrul routerelor wireless , valoarea câștigului dBi este de aproximativ 3 dBi. La fiecare 3 dBi adăugați , distanța la care semnalul se propagă se dublează. Astfel , dacă pentru o antenă de 3 dBi , producătorul sistemului de transmisie video menționează că imaginea poate fi transmisă fără probleme la o distanță de 500-600 metri , în cazul înlocuirii acesteia cu o antenă de 6 dBi distanța de transmisie se va dubla și va ajunge la aproximativ 1 km- 1.2 km. Pentru o antenă de 9 dBI distanța utilă va ajunge la aproximativ 2 km. Trebuie menționat că odată cu creșterea factorului dBi , se va mări și dimensiunea antenelor. Dacă pentru o antenă de 3 dBi dimensiunile acesteia sunt de aproximativ 10 cm , în cazul unei antene de 9 dbi , dimensiunile se vor tripla ( la fel ca și valoarea factorului dBi) , ceea ce va face montarea acesteia mai dificilă. Totuși , prin modificarea antenei , se obține o îmbunătățire considerabilă a distanței de transmisie fără a opera alte schimbări la puterea sistemului . În majoritatea țărilor există legi ce impun ca sistemele radio dedicate modelismului să nu depășească anumite valori. De exemplu , în Anglia puterea unui astfel de sistem este limitată la maximum 100 mW , în Germania ( la fel ca și în România ) limitarea apare la valoarea de 200mW. Aceste măsuri sunt luate cu scopul de a evita eventualele interferențe ce pot apăea cu sistemele de radiotransmisie. Deși riscul apariției acestor interferențe este destul de scăzut , este recomandat ca sistemele alese să se încadreze în limitele impuse.
În alegerea sistemului video de transmisie s-a ținut cont de anumiți factori ce caracterizează performanța respectivului sistem. Acești factori au fost reprezentați de : distanța de transmisie a imaginii , dimensiunile emițătorului, curentul consumat de ambele module (emițător + receptor) , gama de frecvențe pe care operează , standardul video ( prin intermediul căruia se preiau imagini de la o camerăvideo compatibilă) , tensiunea de alimentare , greutate dar și tipul formatului video ce va fi transmis. Ținând cont de aceste elemente am ales sistemul de transmisie AV denumit RC580 ce oferă o putere de 200mW. Așa cum se poate vedea și din primele două cifre ale numelui „58” , se observă că banda de frecvență pe care acesta funcționează se situează în jurul valorii de 5.8 ghz , variind mai precis în intervalul 5705 Mhz -5945 Mhz.Ultimele două cifrele din numele său și anume „08” , precizează numărul de canale pe care sistemul poate fi configurat. Astfel ,atât transmițătorul cât și receptorul beneficiază de 8 canale pe care pot comunica. Selectarea acestora se face cu ajutorul a câtor 4 comutatoare , regăsite pe fiecare modul. Prin modificarea atentă a pozițiilor acestora se poate selecta unul din următoarele canale: canalul 1 (5705 mhz) ,canalul 2 (5685Mhz) , canalul 3 (5665 Mhz) , canalul 4 (5645 Mhz) , canalul 5 (5885Mhz), canalul 6(5905 Mhz), canalul 7(5925), canalul 8 (5945 Mhz). [19]
Din testele realizate, în diferite locuri canalul 4 oferă cea mai bună ecranare a informației transmise. Formatul video transmis și recepționat poate fi NTSC sau PAL. Standardul video utilizat este AV ( audio-video) , un standard analog de transmisie a fluxului video , astfel că modelul de cameră și de ecran ales vor trebui să aibă același standard (AV). Acesta este regăsit în principal în cadrul televizoarelor de generație mai veche și permite conectarea la un player DVD . Consumul de curent al fiecărui modul nu depășește valoarea de 150 mA.Tensiunea acceptată de transmițătorul video este cuprinsă în intervalul 7 – 15 v , iar cea a receptorului video se situează între 6.5 – 12 v. Greutatea emițătorului este de 28 grame ( incluzând o antenă standard de 3 dBi) în timp ce dimensiunile acestuia sunt de 55 mm(lungime) x 28 mm(lățime) x17 mm (grosime) , astfel că poziționarea acestuia la bordul quadcopterului s-a dovedit facilă. Din testele efectuate pe un banc de probe , am remarcat că temperatura emițătorului crește considerabil după o utilizare continuă de 10 minute a acestuia.Deși este dotat cu un radiator de aluminiu , responsabil de răcirea modului , producătorul recomandă ca în momentul montării sale să se aleaga o zonă cu un flux mărit de aer , ceea ce nu va reprezenta o dificultate având în vedere fluxul de aer remarcabil realizat de cele 4 elici. Receptorul video oferă posibilitatea de a afișa imaginile simultan pe două monitoare prin intermediul a două mufe AV.
Un alt aspect important de care trebuie ținut cont este alimentarea emițătorului. Din specificațiile producătorului , se observă ca acceptă o tensiune minimă de 7v și o tensiune maximă de 15 volți , astfel ca în cazul alimentării acestuia la bateria principală a quadcopterului (cu o tensiune maximă de 16.8 v) ar putea genera o supraîncălzire a modulului, ce poate determina pierderea semnalului sau în cazul unei durate mai mari de timp se poate ajunge chiar la distrugerea emițătorului. [20]
De asemenea,un alt motiv pentru a evita bateria principală (chiar dacă aceasta are o tensiune de cel mult 15 v) este reprezentat de zgomotul electric ce apare în momentul în care turația motoarelor se schimbă. Din acest motiv se preferă utilizarea unei baterii secundare cât mai ușoare care să alimenteze camera și emițătorul . Am ales o baterie 2s (cu două celule) , a cărei tensiune variază între 6 și 8,4 v în funcție de nivelul de descărcare , cu o capacitate de 1000mA , suficientă pentru a alimenta camera și emițătorul pe durata unui zbor de 30 de minute . Factorul de descărcare C al bateriei , nu este important intrucât cei doi consumatori conectați la această nu necesită un curent mai mare de 400mA.
2.1.9 Camera video AV
În cazul în care quadcopterul va fi controlat de la distanțe ce nu vor permite contactul vizual direct al utilizatorului , aparatul va trebui să fie dotat cu o cameră video. Astfel , prin intermediul acesteia se vor putea observa obiectele din jurul quadcopterului , iar poziția acestuia va putea fi modificată cu ușurință.În alegerea unei camere potrivite pentru acest caz , cei mai importanți factori au fost : standardul video (prin care se trimite fluxul video către emițător) , greutatea , dimensiunea și calitatea imaginilor. Pe lângă aceștia s-a avut în vedere și tensiunea de alimentare necesară , curentul consumat , dar și existența unei carcase adecvate care să protejeze circuitele interne ale camerei.
Ținând cont de acești factori am ales modelul bazat pe un senzor Sony denumit 800TVL. Modelul de față beneficiază chiar și de o carcasă din aluminiu , menită să protejeze circuitele electronice de umezeală sau de eventualele șocuri apărute în momentul unei aterizări bruște. Greutatea totală a sistemului video ( incluzând aici și firele , respectiv mufele prin care se face transmisia semnalului) este de aproximativ 30 de grame , în timp ce dimensiunile carcasei în care se regăsește montată camera sunt de 36 mm (lungime)x36mm(lățime) x 11 mm (grosime) . [21]
O funcție utilă a carcasei este că permite rotirea camerei pe verticală la un unghi de 360 de grade , ceea ce permite utilizatorului să își aleagă în funcție de necesități,înainte de zbor , unghiul la care dorește să se realizeze filmarea.
Rezoluția imaginilor este de 1.3 megapixeli, adica 1280×1024 pixeli .Camera poate fi utilizată și în condiții de iluminare slabă (0.001 LUX) , ceea ce înseamnă că poate fi de folos chiar și în cazul în care zborul este realizat în decursul unei nopți. Alimentarea se realizează cu o tensiune ce poate varia între 5v și 24 volți , astfel că bateria 2S aleasă să alimenteze și emițătorul video va fi suficientă . [21]
Consumul de curent nu depășeste valoarea de 200 mA. Camera beneficiază de protecție la supratensiune, la descărcări electrostatice , sau la inversarea polarității. Un alt avantaj îl reprezintă faptul că lentilele camerei pot fi schimbate în funcție de necesitate. Lentilele standard primite la achiziționarea camerei oferă un unghi larg de aproximativ 120 de grade, suficient pentru ca utilizatorul să își facă o idee de ansamblu asupra mediului.
Standardul video prin intermediul căruia se poate realiza conexiunea cu emițătorul video este AV.Mufa prezintă 3 pini (doi pini pentru realizarea alimentării și un pin pentru semnalul video ce va fi conectat la emițător. Camera oferă de asemenea posibilitatea de a efectua anumite ajustări asupra imaginii .
Se poate modifica balansul de alb , culoarea culorilor sau poate începe înregistrarea automat în momentul în care detectează mișcare . Un alt aspect interesant este că în cazul în care camera este expusă brusc la o lumină puternică ,se activează o protecție care oprește înregistrarea până când cantitatea de lumina revine la valoarea inițială.Acest lucru protejează senzorul camerei de expunerea bruscă la o sursă puternică de lumină ce îl poate distruge .
2.1.10.Ecran
Pentru ca utilizatorul să poata vedea imaginile surprinse de camera video și trimise către acesta prin intermediul sistemului de transmisie video va fi necesară utilizarea unui ecran care să aiba o mufa AV , prin intermediul căreia se va face legătura cu receptorul video. Elementele caracteristice ale unui monitor adecvat situației de față . Un astfel de monitor trebuie să aibă anumite caracteristici în ceea ce privește următoarele aspecte: diagonala , rezoluție , luminozitate , unghi de vizualizare, consum de curent , tensiune de lucru , greutate. Există mai multe variante de ecrane ce pot fi utilizate pentru a urmări imaginile transmise în timpul zborului. Sunt folosite în acest scop televizoare portabile , ecrane dedicate sau alte dispozitive asemănătoare.
Având în vedere prețul unei soluții dedicate am preferat să aleg varianta unui player DVD portabil ce oferă și o intrare AV prin intermediul căreia se va primi fluxul video de la receptorul video. Acesta beneficiază de o baterie internă inclusă astfel că nu va mai avea nevoie de o sursă externă de alimentare. Încărcarea bateriei se realizează prin intermediul unui încărcător dedicat ce oferă o tensiune de ieșire de 9v și un curent de 900 mA. Spre deosebire de ecranele dedicate , varianta aleasă pentru situația de față oferă o diagonală de 10 inchi , care s-a dovedit a fi suficientă.
Rezoluția ecranului este de 800×480 pixeli, iar luminozitatea acestuia poate fi ajustată , valoarea maximă atingând valoarea de 400 cd/m² (candela/ metru²). Un alt avantaj al modelului ales este reprezentat de faptul că ecranul poate fi rotit la un unghi de 360 de grade pentru o vizualizare optimă indiferent de condițiile meteo sau de poziția utilizatorului față de acestea. În testele efectuate nu am întâlnit dificultăți majore în citirea informațiilor afișate pe ecran , singurele probleme depistate fiind determinate de apariția unor bruiaje minore a căror cauza s-a dovedit a fi distanța considerabilă dintre emițătorul și receptorul video (aproximativ 500 metri). [22]
Greutatea sistemului este de 360 grame , incluzând și bateria. Puterea maximă consumată (valoare atinsă doar în momentul în care se selectează o valoare ridicată pentru luminozitate) este de 5W , astfel că sistemul de afișare are o autonomie de lucru de aproximativ 1 oră și 30 de minute .
2.1.1 Modul GPS
Pentru a efectua un zbor la punct fix quadcopterul va avea nevoie să fie dotat cu un modul GPS prin intermediul căruia va prelua informații despre poziția în care se află aparatul. Pe baza informațiilor recepționate de la modulul GPS , controlerul de zbor va face ajustările necesare pentru a menține poziția inițială a aparatului , chiar și în prezența unor perturbații cum ar fi de exemplu mișcarea maselor de aer. Modulul este dotat cu 2 leduri de stare. Unul dintre acestea , de culoare roșie, indică faptul că modulul este pornit ,în timp ce al doilea led , de culoare verde, va clipi în momentul în care s-a obținut o legătură cu cel puțin 3 sateliți. Sistemul de poziționare globală (GPS) reprezintă de fapt o grupare de 27 de sateliți regăsiți pe orbita Pământului , în anumite poziții , astfel încât indiferent de locul receptorului GPS , situat pe Pamant , și indiferent de oră sau condiții meteorologice se va putea obține o localizare precisă a acestuia.În momentul în care receptorul GPS primește semnal de la cel puțin 3 sateliți se poate calcula o poziție 2D , ceea ce înseamnă ca se pot obține latitudinea și longitudinea . [24] În cazul în care receptorul primește semnal de la 4 sau mai mulți sateliți se poate stabili o poziție 3D , care oferă în plus față de localizarea 2D și altitudinea. Dimensiunile unui receptor GPS variază de la câțiva centimetri cum este cazul modelelor întâlnite în telefoanele actuale , până la cele de dimensiuni considerabile ( utilizate pentru precizia deosebită pe care o conferă în cadrul experimentelor de exemplu). Pentru situația de față precizia oferită de un modul cu dimensiunile de 22mm x33 mm este suficientă. Abaterea acestuia variază între 2.5 m și 3m în funcție de numărul de sateliți la care s-a conectat. Modelul ales prezintă în partea inferioară chip-ul GPS , iar în partea superioară antena , prin care se obține semnalul de la sateliți. Modulul prezintă 4 pini prin care se realizează conectarea la controlerul de zbor.[23] Doi pini sunt responsabili de alimentarea receptorului cu o tensiune de 5v , iar ceilalți doi realizează comunicarea cu controlerul de zbor. Pinul inscripționat cu RX primește informații de la controler , în timp ce pinul TX , cel mai important de altfel , trimite informațiile referitoare la poziție către unitatea centrală de prelucrare. Fiind un element extrem de sensibil la zgomotul electric regăsit în apropierea plăcii de distribuție, este recomandat să fie montat cât mai departe posibil de acestea. Ținând cont de acest lucru , am confecționat o tijă din aluminiu cu o lungime de 15 cm pe care am fixat receptorul GPS. Pentru a reține informațiile privitoare la poziționarea sateliților pe o perioadă de câteva zile modulul este dotat cu o baterie de mici dimensiuni.
2.1.2 Modul de afișare a parametrilor de zbor
Pentru a cunoaște valoarea diferiților parametri în timpul zborului a fost necesară montarea unui modul OSD (on screen display). Acesta primește prin intermediul unor pini ,conectați la portul de telemetrie al controlerului de zbor , valori ale unor parametri ( ce pot fi configurați de utilizator) precum : altitudine , orientare ,coordonate GPS, viteza de deplasare , tensiunea bateriei și altele . Parametrii aleși vor fi afișați pe monitorul player-ului DVD, fiind practic suprapuși peste imaginile oferite de camera video.
Informațiile oferite de acesta sunt utile , mai ales în cazul în care quadcopterul zboară la o distanță sau o altitudine considerabilă față de utilizator , astfel încât acesta poate cunoaște în permanență poziția aparatului , capacitatea bateriei , orientarea aparatului și poate decide momentul în care consideră că este necesar ca aparatul să se intoarcă la punctul de decolare. În lipsa unui astfel de modul , utilizatorul ar trebui să realizeze constant calcule pentru a cunoaște nivelul curent al bateriei , poziția în care se află aparatul precum și timpul necesar întoarcerii acestuia la punctul inițial. Transmiterea datelor către ecranul de pe care se poate urmări zborul se realizează prin intermediul sistemului de transmisie video .
Dispozitivul ales are la baza un microcontroler Atmega 328P( identic cu cel întâlnit pe plăcile Arduino UNO) ce are încărcată în memoria sa o secvență de program ce permite programarea acestuia prin intermediul cunoscutului mediu de programare Arduino IDE . Pe lângă acesta se mai regăsește un chip denumit MAX7456(produs de Maxim), responsabil de afișarea unor caractere monocrome pe ecran.
Conectarea dispozitivului la un computer se realizează prin intermediul unui modul FTDI . Acesta se atașează în partea stânga a modului, unde se regăsesc și cei 4 pini responsabili de comunicarea cu controlerul de zbor.
Doi dintre aceștia realizează alimentarea cu 5v a modulului OSD , iar ceilalți doi , denumiti RX și TX sunt responsabili de recepționarea datelor ce oferă valorile diferiților parametri de zbori aleși. În partea opusă se regăsesc pinii prin intermediul cărora se realizează alimentarea chip-ului video MAX7456 . Se observă că acesta este separat de microcontrolerul principal Atmega 328P și necesită o alimentare separată la o tensiune ce poate varia în intervalul 6 v-12v . Aceasta este asigurată de bateria suplimentară cu 2 celule , folosită și în cazul camerei video sau a emițătorului video. Lângă pinii ce asigură tensiunea pentru chip-ul video se regăsesc și cei prin intermediul cărora se face suprapunerea valorii parametrilor peste imaginile primite de la camera. Aceștia sunt inscripționati cu Vin respectiv Vout și reprezintă prescurtarea pentru VideoÎN ( la care se realizează conexiunea cu semnalul video de la camera) respectiv VideoOut ( acesta conține fluxul video final ce include paramterii de zbor , fiind conectat direct la emițătorul video).Modul prezintă și câteva led-uri de stare ce semnalizează funcționarea acestuia . [25]
2.1.3 Senzor pentru măsurarea tensiunii bateriei
Cunoașterea în permanență a nivelului bateriei reprezintă un avantaj important astfel încât utilizatorul quadcopterului poate determina cu precizie timpul rămas până când aceasta atinge nivelul critic(10% din capacitatea totală) . Odată atins acest prag , pilotul trebuie să caute un loc adecvat pentru a efectua aterizarea aparatului în condiții de siguranță.
Modulul care oferă această valoare actualizată a capacității curente a bateriei se numește senzor de curent și tensiune și se bazează pe principiul unui divizor de tensiune. Acesta este localizat între bateria principală și placa de distribuție și măsoară în permanență toate schimbările în tensiunea acesteia.
Ieșirile senzorului sunt trimise prin intermediul a 3 fire către un port al controlerului de zbor.Cele 3 fire reprezintă valoarea tensiunii , a curentului și respectiv minusul. Senzorul este realizat astfel încât unei tensiuni de intrare de 12 volți(ce reprezintă valoarea minimă pentru o baterie cu 4 celule) ) îi corespunde o valoare de ieșire de 1,5v , iar pentru o tensiune de intrare de 16.8 volți(ce reprezintă valoarea maximă a unei baterii cu 4 celule) îi corespunde o valoare de ieșire de 1.8v. [27]
Circuitul divizorului de tensiune se bazează pe două rezistențe montate ca în figura de mai jos. Cunoscând valorile celor două rezistențe se calculează un factor care înmulțit cu valoarea tensiunii de ieșire Vout va avea drept rezultat valoarea tensiunii de intrare. Circuitul este utilizat în general în cazuri în care este necesară măsurarea unei tensiuni mai mari(de obicei peste 6 volți) , iar controlerul către care este trimisă valoarea acesteia nu acceptă mai mult de 5.5 volți, așa cum este și cazul de față.
În ceea ce privește portul controlerului la care se realizează conectarea senzorului , trebuie verificat cu atenție ca acesta să nu prezinte o tensiune parazită , întrucât în acest caz măsurătorile ar fi influențate negativ , rezultând o valoare eronată ce poate cauza probleme serioase [29]
În testele realizate acuratețea măsurătorilor a fost destul de ridicată , remarcând existența unei diferențe de doar 0.04 volți între valoarea bateriei măsurată cu un multimetru și cea oferită de senzorul de tensiune . Un alt aspect important de care am ținut cont a fost reprezentat de alegerea unor fire adecvate care să permita realizarea legăturii între baterie și placa de distribuție. Diametrul acestor fire a fost ales în așa fel încât să reziste la trecerea unui curent de maximum 62 A ( valoare atinsă doar în cazul în care toate motoarele se află la puterea maximă).
2.1.4 Avertizor optic și acustic pentru nivelul scăzut al bateriei
În anumite cazuri interferențele pot afecta calitatea fluxului video recepționat sau chiar pot întrerupe temporar recepția video . De aceea este recomandătă utilizarea unui avertizor care să semnalizeze nivelul scăzut al bateriei ( acesta reprezentând totodată un factor critic pentru siguranța zborului).
La atingerea unui anumit prag al tensiunii se vor declanșa martorii optici ce constau în 8 led-uri de semnalizare . Patru dintre acestea sunt de culoare verde și anunță utilizatorul că fiecare dintre cele 4 celule ale bateriei are o tensiune de peste 3.5 volți , ceea ce înseamnă un total de 14 volți . Celelalte 4 leduri , de culoare roșie semnalizează că tensiunea uneia sau mai multor celule a scăzut sub nivelul menționat. În momentul în care tensiunea bateriei scade sub 12 volți , se va declanșa un buzzer ce va emite un sunet puternic. [29]
Acesta va avertiza utilizatorul că bateria a atins un nivel minim de aproximativ 10% din capacitatea bateriei și că este necesară începerea manevrei de aterizare. Modulul este dotat cu 5 pini ( 4 dintre aceștia reprezintă tensiunea fiecărei celule, în timp ce al cincelea pin reprezintă minusul) ce vor fi conectați la mufa de egalizare a bateriei. Pentru a proteja circuitul electronic de umezeală , praf, sau de un eventual scurtcircuit , modulul este izolat de mediul exterior prin intermediul unui plastic incolor . Greutatea întregului circuit este de 7 grame , în timp ce dimensiunile acestuia sunt de 38 mm (lungime) x 25 mm (lățime) x 11 mm (grosime) .
2.2 Protocoale de comunicație
În cadrul proiectării quadrocopterului de față au fost utilizate două protocoale de comuncație: radio FHSS , pe o frecvență de 2.4 Ghz și Mavlink. În continuare vor fi detaliate modalitățile în care acestea funcționează.
Protocolul Radio FHSS este utilizat pentru a transmite în siguranță și cât mai rapid posibil comenzile date de utlizator prin intermediul telecomenzii și primite de modulul de recepție radio. Protocolul FHSS (Frequency – hopping spread spectrum) reprezintă o metodă de transmitere a semnalelor radio ce se bazează pe comutarea rapida ( denumită în limba engleza hopping) între un număr prestabilit de frecevențe respectând o anumită secvență prestabilită atât pentru transmițător cât și pentru receptor. O astfel de transmisie prezintă anumite avantaje față de o transmisie realizată pe o frecvență fixă, cum ar fi:
-Semnalele transmise sunt mult mai rezistente la interferențele ce pot apărea în cazul unei îngustări a benzii de transmisie.
-Semnalele sunt mai greu de interceptat datorită varierii bruște a semnalului , ce poate fi confundată mai degrabă cu un zgomot de fundal.Astfel în cazul în care cineva ar dori să intercepteze sau să modifice mesajul transmis ar fi foarte dificil sau chiar imposibil în cazul în care nu ar cunoaște secvența prestabilită, în funcție de care se fac comutările respective.
-Semnalele de acest fel pot împărți aceeași bandă de frecvențe cu alte dispozitive asemănătoare , efectul apariței unui interferențe fiind minim. Astfel gama de frecvențe poate fi utilizată mult mai eficient.
Acest tip de transmisie este utilizat și pentru aplicațiile militare , însă prezintă anumite modificări pentru a beneficia de o securitate îmbunătățita.Mijloacele de comunicație militare folosesc tehnici criptografice specializate pentru a genera comutarea rapidă între benzile de frecvență. În aplicațiile civile astfel de sisteme sunt folosite îndeosebi pe banda de 2.4 ghz pentru dispozitive radiocomandate sau chiar stații de emisie – recepție.
Al doilea protocol utilizat se numește MAVLink . Acesta este utilizat de platforma Arducopter și reprezintă un protocol de comunicație duplex (comunicație în ambele părți) bazat pe W-CAN ,un standard conceput special pentru vehiculele aeriene de mici dimensiuni ( cunoscute sub denumirea de micro air vehicle). Protocolul Mavlink se bazează de fapt pe o librărie ce are implementate diverse mesaje utilizate des pentru a permite actualizarea senzorilor , citirea acestora, schimbarea modurilor de zbor și trimiterea unor comenzi de control. În cazul în care se dorește trimiterea unor mesaje personalizate , ce nu se regăsesc definite în librăria protocolului se pot utiliza scripturi Python sau în C.
Dimensiunea unui pachet variază în lungime și se poate situa între 8 biți și 256 biți. Fiecare pachet conține cel puțin 8 biți iar tipul mesajului determină lungimea paylaod-ului care poate varia între 0 și 255 biți.Formatul unui astfel de pachet este prezentat în tabelul de mai jos. Primul bit reprezintă pachetul ce marchează începutul unui mesaj (0x55) și este format de lungimea payload-ului (0-255) . Al treilea bit este secvența pachetului și reprezintă numărul de mesaje care au fost generate în timpul sesiunii curente.Numărul se mărește automat când un nou mesaj este recepționat.Următorii doi biți reprezintă ID-ul sistemului și ID-ul componentelor. Acest lucru permite mai multor sisteme să comunice cu mai multe vehicule deoarece un mesaj poate fi adresat precis , acolo unde se dorește.Al șaselea bit reprezintă ID-ul mesajului care determină funcția mesajului. Există numeroase mesaje tipice pentru acest protocol , însă în același timp există și câteva specifice platformei Arducopter. Payload-ul poate varia în lungime între 0 și 255 de biți, în funcție de mesajul pe care îl transportă.Informația necesară este fie recepționată de către Arducopter , fie trimisă de la acesta către operatorul situat la sol. [30]
Payload-ul poate conține 8 , 16,32 sau 64 de biți reprezentând numere întregi cu semn sau fără semn, reale , double sau de tip caracter. Ultimii doi biți reprezintă câte un checksum de 16 biți. Numărul mesajelor ce pot fi trimise într-o secundă este determinat de viteza conexiunii seriale și de dimensiunea payload-ului. Valorile cele mai des întalnite se regăsesc de obicei în intervalul 57000 bps -115000 bps ( baud per second)
Alte protocoale suportate de controlerul de zbor Arducopter sunt I2C , folosit pentru a monta un magnetometru / busolă externă (opțional), și UART utilizat pentru conexiunea cu modulul GPS.
Protocolul I2C , inventat de Philips pentru a realiza o standardizare fiind o simplificare a metodelor de comunicație între circuitele integrate de unde a rezultat și numele. Protocolul este cunoscut sub mai multe denumiri dintre care cea mai populară este „transmisie pe două fire”. Structura acestuia se bazează pe doi pini responsabili de transmisia datelor și unul pentru conectarea la masă. Comunicația realizată prin intermediul acestora este duplex ( se desfășoră în ambele sensuri) .Numele acestora sunt SDA ( prescurtare de la serial data line) respectiv SCL (prescurtare de la Serial Clock line). Toate dispozitivele conectate au o adresă unică și în funcție de rolul acestora pot trimite sau pot recepționa date. Pe un bus de tip I2C pot fi realizate mai multe conexiuni cu diverse circuite. Astfel circuitul responsabil pentru realizarea acesteia va fi denumit Master , iar restul celorlate conectate la Master poartă numele de Slave. Secvența tipică prin care se realizează comunicația urmează ordinea de desfașurare a etapelor de mai jos: [31]
Circuitul master va fi cel care va trimite un semnal de început numit START. Odată cu trimiterea acestui semnal. , restul circuitelor își vor modifica starea în gata de recepție.
Circuitul master va iniția un nou semnal ce va conține adresa celui cu care va comunica alături de operația pe care va dori să o realizeze: citire sau scriere.
Toate circuitele SLAVE , vor realiza o comparație a adresei primite cu cea proprie . În cazul în care adresele nu sunt identice , restul comenzilor până la cea de oprire vor fi ignorate. În cazul în care adresele se potrivesc ,circuitul respectiv va furniza un mesaj prin care va confirma primirea semnalului inițial. După această etapă se va începe efectuarea transmisiei . Sfârșitul acesteia va fi marcat de o secvență tipică de oprire , pe care toate circuitele slave care îl vor recunoaște.
Protocolul UART ( prescurtare de la universal asynchronous receiver/ transmitter ) este regăsit în cadrul controlerului de zbor arducopter pentru a realiza conexiunea cu un modul extern GPS compatibil. Având în vedere ca microcontrolerul principal întâlnit în cadrul controlerului de zbor este ATMEGA 2560 ce beneficiază și de câteva porturi UART , ce permit ca prin intermediul unui modul FTDI extern să fie încărcate programele realizate , ocolind mufa microUSB. UART reprezintă de fapt o interfață de comunicare serială asincronă , așa cum îi spune și numele. Este realizat pentru a efectua conexiunea dintre un computer , sau mai nou un microcontroler , și un dispozitiv serial.Numeroase circuite integrate moderne sunt dotate cu UART capabil să comunice sincron ( USART). Standardul UART se bazează pe doi pini ce transmit respectiv primesc date , denumiți RX și TX.Protocolul se bazeză pe transmiterea unor biți într-o anumită ordine de către un transmițător. La primirea acestora , un receptor UART reconstruiește informația primită pentru a obține mesajul transmis .[32]
2.3 Interfață utilizator
Dupa cum a fost specificat și în subcapitolele precedente , utilizatorul va putea controla quadrocopterul prin intermediul unui transmițător reprezentat în acest caz de o telecomandă cu 6 canale ce funcționează pe banda de frecvență de 2.4 Ghz.
În paralel va putea urmari evoluția parametrilor de zbor ai aparatului pe un ecran separat alături de fluxul video înregistrat de camera .Așa cum se poate observa și din imaginea de mai jos valorile diferiților parametri de zbor vor fi suprapuși pe imaginile oferite de camera video montată la bordul aparatului.
Parametrii de zbor vor arăta valorea altitudinii , a coordonatelor GPS , a tensiunii bateriei și a orientării aparatului. Aceste date vor facilita zborul pentru utilizator deoarece va cunoaște în permanență starea quadrocopterului și va putea decide momentul potrivit pentru a efectua întoarcerea acestuia la punctul de decolare.
Prin intermediul acestor valori zborul quadrocopterului va fi mai sigur ,reducându-se considerabil riscul unei eventuale prabușiri a aparatului cauzate fie de pierderea orientării de către pilot , fie datorită epuizării complete a bateriei instalate la bordul acestuia.
Deși la prima vedere ,aceste riscuri par a fi destul de improbabil să se producă , de cele mai multe ori ele reprezintă cauza prabușirii sau pierderii aparatului. Este adevărat că în ceea ce privește nivelul bateriei , utilizatorul se mai poate baza și pe avertizorul optic – acustic , însă în cazul în care quadrocopterul se află la o distanță ridicată față de utilizator , acesta nu va mai putea fi capabil să observe semnalele de atenționare emise.
În ceea privește controlul quadrcopterului operatorul aparatului va folosi cele două manete(joystickuri) regăsite pe telecomandă. Maneta din stânga va fi responsabilă de mărirea respectiv reducerea altitudinii și de mișcarea execuției de rotire către stânga sau către dreapta.
Maneta din dreapta va fi responsabilă de efectuarea schimbării direcției de zbor : înainte – înapoi , respectiv stânga – dreapta. De remarcat că fiecare dintre cele două manete are posibilitatea de a se mișca atât pe orizontală cât și pe verticală , dupa cum se poate observa și din desenul de mai jos.
Cele patru comutatoare regăsite în apropierea manetelor poartă denumirea de trimmere , explicarea lor fiind utilizată detaliat la subcapitolul în care este prezentată telecomanda. Rolul lor principal este de a permite o ajustare mai fină a menținerii poziției de zbor de către aparat. Cele două comutatoare regăsite în partea superioară a telecomenzii reprezintă canalele suplimentare .
Comutatorul din stânga reprezintă canalul 5 , utilizat pentru schimbarea modurilor de zbor , iar cel din dreapta este canalul 6 , ce poate fi configurat de către utilizator pentru a emite semnale luminoase sau acustice care să faciliteze zborul efectuat pe durata nopții sau identificarea rapidă a aparatului în cazul unei prăbușiri.
2.4 Arhitectura Hardware implementată
Diagrama componentelor utilizate și conexiunile dintre acestea
Diagrama bloc -Quadrocopter
Capitolul 3. Arhitectura software
3.1 Mediu de dezvoltare
Mediul de dezvoltare utilizat pentru a încărca programele realizate se numește ArduPilot Arduino IDE v1.0.3 , reprezentând o versiune modificată a mult mai cunoscutului mediu de dezvoltare denumit Arduino IDE. Interfață grafică a celor două este identică ,iar meniul situat în partea de sus a programului este asemănător existând câteva diferențieri în ceea ce privește acest aspect. [33]
Interfață grafică este bazată pe o împărțire în trei zone : partea superioară ,mediană și inferioară.În partea superioară se regasește un meniu format din 6 butoane ce permite utilizatorului să realizeze mai multe operații .
Butonul File oferă posibilitatea de a deschide un fișier deja realizat , de a salva un proiect sau de a încărca un exemplu ,care ulterior poate fi modificat.De asemenea tot prin intermediul acestui buton se poate realiza încărcarea codului realizat pe placa aleasă în prealabil .Al doilea buton Edit oferă posibilitatea de a copia o secvență de cod sau de a căuta un anume cuvânt. Butonul Sketch permite afișarea fișierului în care se află programele realizate.Tot prin intermediul acesteia se poate importa o librărie . Butonul Tools permite începerea unui sesiuni de monitorizare serială sau încărcarea bootloader-ului Arduino pe un alt microcontroler ATMEL. Butonul ArduPilot ( opțiune inexistentă în Arduino IDE) permite selectarea modelului de controler de zbor utilizat (versiunea 1.0 sau 2.x). Butonul Help prezintă câteva îndrumări despre mediul de dezvoltare Arduino precum și o opțiune prin care utilizatorul este trimis către site-ul oficial arduino.cc de unde poate afla mai multe despre posibilitățile oferite de plăcile de dezvoltare bazate pe microcontrolere ATMEL.
Situată imediat sub bara de meniu se regăsește o secțiune în care sunt plasate câteva scurtături pentru cele mai utilizate comenzi . Rolul fiecăreia va fi prezentat în continuare. Butonul Verifiy marcat prin intermediul simbolului permite compilarea programului și detectarea eventualelor erori existente în cod. Butonul Upload marcat prin simbolul permite încărcarea codului realizat pe placa de dezvoltare selectată în prealabil. Butonul Open marcat prin simbolul reprezintă o scurtătură pentru comanda File-> Open și realizează deschiderea unui proiect din dosarul Sketch. Butonul Save marcat prin simbolul reprezintă o scurtătură pentru comanda de salvare a fișierului realizat. Butonul Serial Monitor marcat prin simbolul reprezintă și el o scurtătura ce realizează deschiderea unei monitorizări seriale. Următoarea zonă este cea mediană și reprezintă porțiunea în care se poate scrie codul ce urmează a fi compilat și apoi încărcat pe placa de dezvoltare aleasă.Zona respectivă este de fapt un editor de text ce oferă câteva opțiuni utile precum cut /paste sau căutarea unui cuvânt și înlocuirea acestuia cu un altul ales ulterior.
Ultima zonă este cea situată în porțiunea inferioară a interfeței și reprezintă mesaje în care sunt afișate :erorile de sintaxă intervenite în urma procesului de compilare , confirmarea că programul realizat a fost încărcat pe placa aleasă .De asemenea , lângă numele programului este afișată dimensiunea programului creat și o bară de progres.
Codul scris poate fi grupat în câteva părți dupa cum urmează .Prima parte este reprezentată de declararea bibiliotecilor ce vor fi utilizate în programul curent.Următoarea secțiune reprezintă porțiunea în care se realizeză configurările diferitelor porturi. În această parte se stabilesc natura porturilor ( de intrare sau de ieșire ) , se definesc variabilele și tipul acestora ( float , int etc).Secțiunea este rulată o singură dată la începutul programului și se regăsește în funcția void setup (). Ultima parte marcată prin void loop() marchează instrucțiunile și atribuirile ce vor fi executate în buclă până în momentul în care placa va fi oprită.Limbajul utilizat pentru realizarea programelor este o versiune simplificată a C++.Sunt folosite așadar instrucțiuni intuitive de genul: delay(100) (așteaptă 100 milisecunde) sau digitalWrite(13,HIGH) – va avea ca efect modificarea stării logice a portului digital 13 din 0 în 1 etc. Instrucțiunile decizionale sunt identice cu cele din C : if , switch …case() . Instrucțiunile repetitive sunt de asemenea identice : while() ,for() .
Datorită simplității dovedite Arduino IDE poate fi utilizată și de cei care nu au cunoștiințe solide de programare Astfel cu ajutorul uneia din diferitele versiuni de plăci Arduino se pot comanda de la aprinderea bruscă sau treptată a led-urilor , până la servo motoare , motorașe pas cu pas sau la controlarea unor echipamente electrice alimentate la tensiunea de 220volți. De asemenea , pot fi integrați numeroși senzori care să fie conectați la diferite porturi . Arduino a fost folosit cu succes și pentru proiecte de tipul unei case inteligente sau pentru pornirea unui autoturism prin intermdiul unui modul bluetooth. Multitudinea de librării existente este folosită pentru facilitarea codării , astfel încât utilizatorul nu trebuie să cunoască codul ascuns ,ce stă la baza acesteia ci doar instrucțiunea simplă ce realizează comanda dorită. Ținând cont de popularitea mediului de dezvoltare Arduino platforma se află într-o continuă dezvoltare ce are în vedere îmbunătățirea experienței utilizatorului , mai ales că oricine poate contribui la acest lucru.
3.2 Biblioteci utilizate
Bibliotecile utilizate pentru realizarea programului surse sunt: MPULib , Wire, PIDCont , avr/pgmspace , AP_GPS , AP_Baro .În continuare vor fi prezentate rolurile fiecăreia dintre acestea. [34]
MPULib reprezintă libraria ce realizează definirea registrilor necesari configurării chip-ului de tip IMU denumit MPU6050 . Acesta reprezintă un chip cu 6 grade de libertate produs de Invensense și conține un accelerometru pe 3 axe și un giroscop pe 3 axe.Chip-ul , integrat în controlerul de zbor , beneficiază de o alimentare de 3.3 volți,rata de actualizare a informației fiind de 400kHz. Raza de măsurare a giroscopului poate fi selectată din următoarele variante : +-250/500/1000/2000 grade/s .Un alt lucru interesant la acest chip este reprezentat de procesorul digital de mișcare inclus . Prin intermediul acestuia se poate obține direct unghiul Euler , pe baza căruia este realizat controlerul PID. Biblioteca menționată oferă și posibilitatea efectuării unor teste pentru a verifica starea de funcționare a chip-ului precum și corectitudinea datelor furnizate. Standardul de comunicare utlizat pentru a comunica cu controlerul este I2C.
Librăria Wire este utilizată pentru a comunica cu dispozitivele ce folosesc standardul I2C / TWI . Funcțiile oferite de aceasta vor fi prezentate în continuare . Funcția begin() realizează ințializarea librăriei și se stabilește felul în care va fi tratât bus-ul I2C : ca master sau slave. beginTransmission începe o transmisie cu un dispoztiv I2C de tip slave de la o adresă prestabilită . Încheierea acestei transmisii se realizează prin funcția endTransmission(). Următoarea funcție ,denumită requestFrom() este utilizată de circuitul master pentru a realiza o cerere de comunicație de la un dispozitiv de tip slave. Funcția write va scrie date recepționate de la un dispozitiv slave ca răspuns la o cerere de la un master. Funcția read() citește un bit transmis de la un dispozitiv slave către un master dupa apelul funcției requestFrom().
Librăria PIDcont este utilizată, așa cum îi spune și numele pentru a scrie codul necesar implementării unui algoritm de tip PID. Funcțiile importante oferite de această librărie vor fi explicate în continuare. Funcția PID() realizează un controler PID în care se poate selecta intrarea dorită , ieșirea , valoarea dorită pentru menținerea intrării De asemenea , oferă posibilitatea de a seta direcția în care se va deplasa ieșirea în momentul în care va fi intâmpinată o anumită eroare. Funcția compute conține algoritmul PID ce va fi rulat de fiecare dată în bucla. [35]
Librăria avr/pgmspace este utilizată pentru a oferi o interfață pentru ca un program să acceseze datele stocate în memoria flash a unui dispozitiv.[36]
Libraria AP_GPS reprezintă o librărie special realizată pentru a putea folosi un modul GPS conectat la controlerul de zbor.Librăria este creată cu scopul folosirii exclusive pentru platforma Arducopter.Funcțiile oferite de aceasta au denumiri intuitive . De exemplu funcția gps.update () va inițializa procesul de actualizare a datelor GPS . În continuare se mai remarcă funcția Gps.new_data prin care sunt primite date noi de la sateliți prin intermediul cărora se pot stabili ulterior latitudinea ( gps.latitude) , longitudinea (gps.longitude) , altitudinea( gps.altitude) ,viteza de deplasare (gps.ground_speed) , numărul de sateliți de la care s-a primit semnal ( gps.num_sats) . De asemenea se poate verifica dacă modulul a obținut o localizare prin funcția gps.fix
Librăria AP_BARO este asemănătoare cu cea de mai sus , AP_GPS, în sensul că a fost creată special pentru a rula pe platforma Arducopter. Denumirile funcțiilor utilizate sunt intuitive , astfel încât folosirea acestora este facilă. De exemplu , funcția APM_BMP085.get_pressure() va oferi valoarea presiunii atmosferice curente , iar APM_BMP085.get_temperature() temperatura curentă ( modelul de barometru BMP 085 are integrat și un senzor de temperatură , pentru îmbunătățirea valorilor returnate). Altitudinea la care se află aparatul este obținută prin intermediul unei formule . De asemenea, alte funcții cum ar fi APM_BMP085.healty() , oferă posibilitatea de a vizualiza starea barometrului funcționare , astfel că eventualele probleme apărute vor fi semnalate programatorului prin mesaje specifice.
Capitolul 4. Descrierea sistemului
4.1 Controlul Quadrocopterului
Regulatorul de tip PID (Proporțional Integral Derivativ) reprezintă una din cele mai vechi metode de control implementate. La momentul conceperii acesteia , în anul 1940,era utilizat pentru controlul dispozitivelor pneumatice . Ulterior a fost preluat și utilizat și în domeniul electronicii analogice.Avea avantajul de a oferi o structură simplă de control , înțeleasă de operator , iar lucrul cu acesta era destul de facil.
Quadrocopterul va folosi un astfel de sistem PID , care va fi reglat pentru a determina un răspuns optim. Ecuația controlerului PID este un sistem în buclă-închisă care va avea drept ieșire un semnal de control u ce va primi feedback de la senzori.Regulatorul va calcula diferența dintre poziția dorită și poziția curentă , ajustând ieșirea u în consecință.Ecuația unui controler PID este următoarea:
u = P + I + D
e(t) = ed(t) – ea(t)
Unde ed reprezintă condiția dorită , iar ea poziția actuală în timp ce e(t) desemnează diferența dintre cele doua la un anumit moment de timp.
Un regulator PID are trei termeni proporțional , integral , derivativ ce pot fi reprezentați intr-o funcție de transfer ca cea de mai jos:
K(s) = Kp + + Kd
Unde Kp reprezintă elementul proporțional , Ki este termenul integral, iar Kd reprezintă termenul derivativ. Reglând aceste elemente ale PID , controlerul va putea executa actiunile de control necesare pentru îndeplinirea cerințelor inițiale prestabilite.
Termenul integral Ki este proporțional atât cu magnitudinea erorii cât și cu durata acesteia. Rata de modificare a erorii procesului este calculată determinând panta diferențială a erorii raportată la timp.Rata de modificare a erorii va fi inmulțită cu temenul derivativ Kd .
Folosirea unui control de tip feed-back alături de un control tip feedforward poate îmbunătăți considerabil performanța unui sistem față de unul care utilizează doar controlul feedback.Acest lucru poate fi cel mai bine observat când sistemul este afectat de o perturbație majoră. În situația ideală , controlul feed – forward poate neutraliza complet efectul perturbațiilor. Controlul feed-forward este utilizat alături de controlul feedback pentru a reduce perturbațiile prezente în orice proces real.
Pentru proiectul curent controlul feed forward ține cont de comportamentul dinamic al quadrocopterului cum ar fi momentul și timpul de răspuns al motoarelor.Termenul integral determină magnitudinea erorii acumulate însumând eroarea instantanee în timp. Ecuația regulatorului integral este :
I= Ki
Termenul derivativ va lua în considerare rata la care variază eroarea.
D = Kd P = Kp e(t)
Efectele celor trei termeni ( P,I,D)asupra unui sistem sunt evidențiate în tabelul de mai jos.
Pentru reglarea regulatoarelor PID au fost dezvoltați mai mulți algoritmi cum ar fi Ziegler –Nichols sau reglarea Lambda. Prima metodă este cea mai des utilizată pentru reglarea unui regulator PID. A fost dezvoltată de John Zeigler și Nathaniel Nichols.Principiul acesteia se bazează pe aplicarea unui semnal de tip treaptă unitară la intrare.Dacă raspunul sistemului rezultă într-o curbă asemănătoare literei S , atât constanta de timp cât și timpul de așteptare sunt determinate printr-o pantă diferențiala. Când este folosită reglarea iterativă , se poate aplica următorul algoritm pentru a obține răspunsul dorit:
Pasul 1. Se studiază răspunsul la treaptă
Pasul 2. Se mărește Kp pentru a reduce timpul de așteptare , dacă este necesar.
Pasul 3. Se mărește Kd pentru a imbunătăți suprareglajul , dacă este necesar
Pasul 4. Se mărește Ki pentru a elimina eroarea staționară ,dacă este necesar
Pasul 5. Se ajustează valorile adaugate până la obținerea răspunului dorit.
Funcția de transfer a metodei prezentate este:
Valorile lui Kp, Ti și Td sunt prezentate în tablelul de mai jos.Metoda prezintă îmbunătățiri semnificative față de reglarea manuală , însă găsirea exactă a parametrilor potriviți ramane dificil de realizat.
Quadrocopterul poate fi reprezentat ca un corp solid capabil de a se deplasa în toate cele direcții (x,y,z) . Coordonatele generale ale aparatului fiind:
c= (x,y,z, θ,ϕ,ψ) , unde primele coordonate reprezintă direcțiile pe care aparatul se poate deplasa , iar următoarele trei componente reprezintă unghiurile lui Euler .
Controlul poziției verticale
În momentul în care quadrocopterul se află în aer , la o altitudine de câțiva metri , ieșirea U1 corespunzătoare comenzii motoarelor este proporțională cu accelerația verticală ce apare în cadrul aparatului. Pentru a menține altitudinea constană , este necesară o valoare ridicată pentru ieșirea U1 cu scopul de a învinge gravitația , astfel că un regulator PID adițional va fi adaugat pentru a stabiliza mișcarea pe direcția z. Legea de control poate fi descrisă de următoarea ecuație:
[37]
U1=
Controlul poziției orizontale
Poziția orizontală (x,y) a quadrocopterului este utilizată ajustând mișcarea de rotație ( roll) și pe cea de pitch (mișcarea sus –jos). Forța de ridicare , realizată de motoare produce o accelerație de ridicare aproximativ egală cu gravitația (notata cu g) . Va rezulta un mic unghi de rotire care va duce la o accelerație laterala .
Comenzile pentru direcția x respectiv y sunt descrise de următoarele două ecuatii :
[37]
[37]
În urma corecțiilor efectuate unghiul dorit de roll și cel de pitch vor deveni:
[37]
[37]
4.2 Specificații funcționale finale
În urma calculelor și a experimentelor efectuate , pot fi prezentate caracteristicile modelului de quadrocopter realizat ,alături de avantajele și dezavantajele acestuia.
În ceea ce privește greutatea finală a aparatului , ce a constituit un element important , aceasta se situează în jurul valorii de 1850 de grame(incluzând aici și echipamentul pentru filmare respectiv transmisia video ) . Având în vedere estimația inițială a acesteia de 1650-1900 grame ,realizată la începutul proiectului,se poate afirma că aparatul realizat a respectat planul impus. Aceasta valoare oferă avantajul unei turatii mai scazute a motoarelor ,astfel că pentru ridicarea de la sol a aparatului este necesară doar 35 % din puterea maximă oferita de motoare ( capabile să ridice o masa maximă totala de 4200grame ). De asemenea , datorită alegerii unor regulatoare de turație capabile să ofere un curent de 30 Amperi , s-a creat o rezervă de putere ce permite montarea unor elici cu un diametru mai mare pe motoarele existente.
Distanța de la motor la motor ( modificată , în urma înlocurii brațelor originale cu alte mai rezistente) este de 62 cm , astfel că pot fi montate elici de 12 sau chiar și de 13 inchi , mărind astfel capacitatea de ridicare maximă, care în prezent este de 2000 grame . Această valoare permite montarea de numeroși senzori sau de mai multe camere video . Timpul maxim de zbor se modifică în funcție de altitudinea la care se află aparatul sau de greutatea suplimentară adăugată, variind între 10 minute ( în cazul unui zbor ce implică schimbarea repetată a poziției și altitudinii ) și 20 minute ( pentru un zbor constant pe durata căruia se menține pozitia inițială de zbor).
Altitudinea maximă testată a fost de 100 metri , fiind verificată prin intermediul barometrului . Este sigur că aparatul poate atinge și altitudini mai mari , însă neavând suficientă experiență în pilotarea acestuia m-am limitat la atingerea acestui prag , preferând să nu depășesc valorea menționată din motive de siguranță.În ceea ce privește distanța maximă de la care poate fi comandat , aceasta se situează în jurul valorii de 1km , date obținute din specificațiile producătorului sistemului radio RC.
La partea de manevrabilitate , nu am remarcat probleme , aparatul menținându-se stabil la fiecare test efectuat. Sistemul video și transmisterea imaginilor înregistrate de camera video către utilizator funcționează pe o rază maximă de 500 m . Aceasta poate fi extinsă dacă în locul antenei standard ,montată pe transmițătorul video , se va utiliza un model cu factor dBi mai ridicât.
Parametrii de zbor sunt suprapuși peste fluxul video trimis . Vizualizarea acestora se face pe ecranul pe care se pot urmari și imaginile în timp real surprinse de camera video . Parametrii PID utilizați reprezintă rezultatul numeroaselor teste efectuate , aceștia putând fi modificați pentru a obține fie un zbor lin ,stabil fie pentru un zbor acrobatic ,în care aparatul devine mult mai senzitiv la comenzile primite.
Pe lângă modul de zbor stabil , în care operatorul folosește cele două manete regăsite pe telecomandă pentru a comanda direcția de deplasare , aparatul poate efectua și zbor la puunct fix cu ajutorul modulului GPS. Din testele efectuate , aparatul și-a menținut poziția cu o marjă de eroare de maximum 3 metri , datorată semnalului GPS și a numărului de sateliți cu care s-a stabilit o conexiune.
4.3 Mod de utilizare
Deși utilizarea aparatului este simplă , se recomandă ca utilizatorii ce nu au experiență în controlul unui astfel de aparat să exerseze inițial mișcările de bază ( decolare ,accelerare , schimbarea direcției zborului) în prezența unei persoane mai experimentate , într-un spațiu deschis , în care să nu existe obstacole. De asemenea ,este important ca în momentul decolării , operatorul să păstreze o distanță de siguranță față de aparat de câțiva metri, pentru a preveni o eventuală ranire .
Elicile se pot roti chiar și la o viteză de aproximativ 7000 de rotații pe minut , iar un eventual contact cu acestea poate provoca răni serioase sau pagube materiale obiectelor din jurul acestuia. De asemenea , înainte de a decola trebuie efectuate câteva verificari ale senzorilor , conexiunile dintre controlerul de zbor și cele 4 esc-uri , sau cele cu modulul de recepție radio.
Un alt element important ce trebuie verificat este bateria principală . Pentru a realiza acest lucru se va folosi un voltmetru. Astfel dacă se dorește ca zborul să aibă o durată maximă tensiunea bateriei trebuie să fie în jurul valorii de 16.8 volți. În cazul în care valoarea menționată se situează în apropierea valorii de 14.5 volti este recomandată încărcarea bateriei. Înainte de a decola , operatorul va trebui să „armeze ” controlerul . Acesta este un element de siguranță , asemănător cu rotirea cheii în contact pentru a porni un autoturism.
Armarea presupune ca operatorul să tină maneta din partea stangă corespunzatoare modificării turației în poziția dreapta –jos timp de câteva secunde. Confirmarea armării este realizată prin aprinderea alternativă a unui led de culoare roșie , respectiv de culoare albastră. Pentru a realiza decolarea turația trebuie mărită treptat prin ridicarea manetei din stânga cu atenție. Odată ce aparatul a decolat se poate trece la modificarea direcției de deplasare . utilizând maneta din stânga .
Pentru comenzile detaliate oferite de fiecare dintre cele doua manete se poate consulta capitoul 2. 4 Interfață utilizator. În cazul în care se dorește schimbarea modului de zbor se va schimba poziția comutatorului corespunzătoare canalului 5. Aterizarea va fi efectuată reducând treptat turația motoarelor până când aparatul atinge solul.
Este foarte important ca în timpul zborului operatorul să iși păstreze concentrarea deoarece datorită simetriei construcției , se poate pierde cu ușurintă orientarea aparatului .În cazul în care se întamplă acest lucru ,operatorul nu va putea stabili cu siguranță care este partea frontală a aparatului , iar comenzile pe care le va transmite vor fi inversate.
Capitolul 5. Concluzii
5.1 Realizări proprii în cadrul proiectului
Scopul acestei lucrări a fost proiectarea și construirea unui quadrocopter , care să își poată menține singur echilibrul prin intermediul unui regulator PID implementat. Contribuțiile personale în cadrul acestui proiect sunt prezentate în continuare :
-Proiectarea și asamblarea platfomei fizice a quadcopterului prin alegerea corespunzătoare a unor componente pe cât posibil de eficiente și cu un pret de achiziție accesibil .Piesele au fost comandate în principal de la Hobbkyking , însă au existat și câteva componente achiziționate din alte locații ( ex : Ebay.com,SuveilZone.com).
-Alegerea unui controler de zbor capabil să îndeplinească obiectivele impuse , dar care să și ofere posibilitatea unor îmbunătățiri ulterioare.
– Realizarea calculelor inițiale pentru a stabili puterea necesară motoarelor , dimensiunile elicilor, capacitatea bateriei , greutatea cadrului precum și estimarea timpului de zbor utilizând diferite variante de configuratii.
-Modificarea cadrului achzitionat pentru a suporta greutatea unuei baterii cu o capacitate superioară , care să ofere o durată mai mare a zborului.
-Proiectarea unui algoritm care să fie responsabil de menținerea în aer a dispozitivului , utilizând cunostiintele acumulate pe durata anilor de studiu
-Alegerea și utilizarea unui sistem de comandă radio pe o frecvență de 2.4 Ghz , responsabil de transmiterea comenzilor utlizatorului către aparat.
-Implementarea sistemului de transmisie video și realizarea conexiunilor ncecesare astfel încât utilizatorul să poată umări în timp real imaginile oferite de camera AV ,montată la bordul quadrocopterului.
-Alegerea unei camere video adecvate pentru aparatul realizat care să ofere o calitate bună a imaginilor transmise , dar și o greutate redusă.
– Implementarea bibliotecilor necesare pentru a putea folosi datele oferite de giroscop, accelerometru , barometru ,GPS .
-Realizarea software-ului responsabil de controlul motoarelor în funcție de comenzile operatorului , implementând un regulator de tip PID
– Testarea modelului realizat în diferite condiții pentru a identifica eventualele limitări ale acestuia , dar și performanțele de care este capabil.
– Realizarea unei stații de monitorizare,situată la sol , reprezentată de monitorul DVD-player-ului , prin care operatorul va putea urmări evoluția parametrilor de zbor alături de fluxul video .
5.2 Comparație între sistemul realizat și sisteme similare existente
Specificațiile tehnice ale modelului de față realizat , sunt asemănătoare cu sistemele similare existente pe piață ( în anumite aspecte , situându-se chiar peste acestea). Față de modelele gata de zbor disponibile (Ready To Fly) prezentate în capitolul 1 , quadrocopterul realizat prezinta atât avantaje cât și anumite dezavantaje.
Unul din cele mai importante avantaje față de toate cele 3 modele comerciale este reprezentat de capacitatea de ridicare , situată la 2000g față de doar 400g maxim oferită de modelul Draganflyer x4. De asemenea , are posibilitatea de a fi ușor modificat într-o etapă ulterioară pentru a înlocui anumite componete cu unele mai performante.
Platforma de zbor Arducopter , beneficiază de un suport larg din partea utilizatorilor, astfel că în cazul în care ar apărea anumite defecte fizice în circuitul electronic ( ex: defectarea unei diode , a unei rezistente sau a unei sigurante) , piesele respective vor putea fi înlocuite cu ușurință cu unele asemănătoare sau chiar identice.
Pentru mărirea preciziei zborului la punct fix se poate achiziționa un modul GPS care să aibă o acuratețe imbunătățită. Modelele comerciale nu au un suport la fel de mare din partea utilizatorilor sau a producătorului .
În ceea ce privește costurile unui eventuale reparații (cum ar fi cazul unei elici , unui motor , sau a bateriei) vor fi mult mai mici în cadrul quadrocopterului realizat.De exemplu , bateria unui model DJI Phantom poate ajunge la 200 dolari , în timp ce bateria utilizată la realizarea aparatului de față nu depășește valoarea de 50 de dolari. Raportul de preț se păstrează și la alte componente cum ar fi cadrul(care în cazul unei versiuni comerciale nu poate fi modificat) sau elicile.
Performanțele sistemului creat sunt de asemenea comparabile cu cele ale unor versiuni similar existente. Pot fi incluse în această categorie , altitudinea maximă , manevrabilitatea aparatului , calitatea imaginilor transmise sau chiar timpul de zbor (dacă se face comparația cu un model de tipul Dji Phantom)
Un dezavantaj al modelului realizat față de o versiune comercială de top este reprezentat de timpul de zbor . În timp ce versiunea creată ajunge la o durată maximă a zborului de 20 de minute , o variantă produsă de DraganFlyer poate oferi operatorului un zbor a cărui durată maximă se situează în jurul valorii de 45 minute. Un alt posibil dezavantaj atât al modelelor comerciale cât și al celui realizat este transportul către diferitele zone în care va fi comandat , dar și zborul în interiorul cladirilor . Totuși , există posibiltatea de a demonta elicile cu usurinta , prin intermediul unei surubelnite în câteva minute ,astfel că modelul va fi mai ușor de transportat.
Din punct de vedere al sistemului de transmisie radio , acesta a fost preferat în detrimentul sistemului Bluetooth sau wireless ,regasite intr-un telefon, datorită razei de control pe care o oferă , dar și pentru a diminua riscul producerii unor interferențe.
Prețul total al pieselor montate pe dispozitiv ajunge la aproximativ 400 dolari , preț ce a inclus și bateriile de rezervă achziționate , încărcătorul specializat și elicile de rezervă. Spre doesebire de acesta prețul de achiziție al celui mai ieftin model DJI Phantom este de aproximativ 800 de dolari.
5.3 Dezvoltări ulterioare
Dezvoltările ulterioare ce pot fi aplicate variantei curente se împart în două categorii: hardware și software. Din punct de vedere Hardware pot fi aplicate următoarele îmbunătățiri:
-Modificarea motoarelor curente cu altele de o turație mai scazută ce oferă o eficiență sporită în cazul în care sunt utilizate alături de elici cu un diametru mai mare ( 15 inchi)
-Înlocuirea bateriei curente lithium-polimer cu una ce folosește celule Li-ion.Aceasta va oferi un raport greutate –capacitate mai bun , însă având factorul de descarcare inferior unei baterii Li-po consumul de current al motoarelor va trebui să fie mai mic. (maxim 15 amperi consumul total).
-Înlocuirea elicilor curente cu unele din lemn , care reduc considerabil sunetul produs de aparat , ceea ce ar permite supravegherea aeriană fără a fi reperat ,chiar și de la o altitudine mai redusă.
-Adăugarea unei varietăți de senzori pentru ca aparatul să poată fi utilizat cu scopul de a realiza masuratori de temperatură , umiditate ,poluare ale mai multor zone. De asemenea, prin intermediul utilizării acestora și integrarea lor în controlerul de zbor quadrocopterul va putea executa autonom zborul sesizând eventualele obstacolele aparute pe traiectoria sa de deplasare .
-Realizarea unei antene pentru sistemul radio care să extindă raza de control a quadrocopterului de la 1 km la 2-3 km.
Din punct de vedere software vor putea fi efectuate următoarele îmbunătățiri:
-Implementarea unui mod care la acționarea comutatorului de pe canalul 5 să realizeze întoarcerea la punctul de decolare al aparatului. Funcția , asemănătoare cu cele oferite de versiunile comerciale , s-ar putea dovedi utilă în cazul în care operatorul pierde atât contactul vizual cu aparatul cât și cel video . Prin intermediul acesteia , utilizatorul va avea un element de siguranță în plus , ce va diminua riscul de prăbușire ca urmare a dezorientării operatorului.
-Implementarea unui mod care să realizeze aterizarea automat ,ceea ce ar reduce șocurile transmise în cadru și în trenul de aterizare ,provenite în urma unei aterizări mai bruște.
-Realizarea unei interfețe grafice prin care operatorul să poată introduce rapid coordonatele locației la care va dori să ajungă aparatul . Prin utilizarea unui modul de telemetrie separat vor putea fi afișate în această interfață datele de zbor ( altitudine , baterie , orientare, coordondate GPS etc)
Quadrocopterele reprezintă o platformă ideala pentru a implementa noțsiunile de control acumulate pe durata anilor de studii . Beneficiind de posibilitatea de decolare verticală , zborul la punct fix , precum și controlul facil al acestuia de către un operator ,quadrocopterul poate fi utilizat cu succes pentru supraveghere aeriană sau pentru a interveni rapid într-o zonă inaccesibilă omului . Numeroasele îmbunătățiriri ce pot fi efectuate ulterior , posibile odată cu evoluția tehnologiei , transformă platforma quadrocopterului într-un vehicul aerian cu domenii de aplicații variate de la fotografie aeriană sau cercetare până la misiuni militare de supraveghere sau recunoaștere a teritoriilor ostile.
6.Bibliografie
[1] RQ-4 Global Hawk
http://www.af.mil/AboutUs/FactSheets/Display/tabid/224/Article/104516/rq-4-global-hawk.aspx
[2] Bouabdallah, S. & Siegwart, R. “Design and Control of a Miniature Quadrotor”, Advances in Unmanned Aerial Vehicles (2007).
[3] Parrot Ardrone 2.0 specs
http://ardrone2.parrot.com/
[4] Phantom 2 General Features
http://wiki.dji.com/en/index.php/Phantom_2
[5] Draganflyerx4p Specs
http://www.draganfly.com/uav-helicopter/draganflyer-x4p/index.php
[6] Understanding The RC Quadrocopter / Multi Rotor
http://www.rchelicopterfun.com/quadrocopter.html
[7] Build A Quadcopter From Scratch – Hardware Overview
http://blog.oscarliang.net/build-a-quadcopter-beginners-tutorial-1/
[8] Hobbyking X580 Glass Fiber Quadcopter Frame w/Camera Mount 585mm
http://www.hobbyking.com/hobbyking/store/__34236__hobbyking_x580_glass_fiber_quadcopter_frame_w_camera_mount_585mm.html
[9] NTM Prop Drive Series 28-30S 900kv / 270w (short shaft version)
http://www.hobbyking.com/hobbyking/store/__25081__NTM_Prop_Drive_Series_28_30S_900kv_270w_short_shaft_version_.html
[10] 10×4.7 SF Carbon Fiber Propellers L/H and R/H Rotation
http://www.hobbyking.com/hobbyking/store/__39773__10x4_7_SF_Carbon_Fiber_Propellers_L_H_and_R_H_Rotation_1_pair_.html
[11] ZIPPY Flightmax 5800mAh 4S1P 30C
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=38244
[12] SimonK Mystery M30A 30A Brushless ESC Quadcopter KK2.0 APM 2
http://www.ebay.com/itm/4X-SimonK-Mystery-M30A-30A-Brushless-ESC-Quadcopter-KK2-0-APM-2-5-FREE-Ship-/310805409032?pt=Radio_Control_Parts_Accessories&hash=item485d722d08
[13] Hobby King Quadcopter Power Distribution Board
http://www.hobbyking.com/hobbyking/store/__23140__hobby_king_quadcopter_power_distribution_board.html
[14] The APM 2.5 Board Overview
http://copter.ardupilot.com/wiki/apm25board_overview/
[15] Arduino Mega 2560
http://arduino.cc/en/Main/arduinoBoardMega2560
[16] Turnigy 6X FHSS 2.4ghz Transmitter and Receiver (Mode 2)
http://www.hobbyking.com/hobbyking/store/__24969__turnigy_6x_fhss_2_4ghz_transmitter_and_receiver_mode_2_.html
[17] How Radio Controlled Toys Work
http://electronics.howstuffworks.com/rc-toy2.htm
[18] Circular or Linear Polarized Antenna For FPV
http://blog.oscarliang.net/linear-circular-polarized-antenna-fpv/
[19] Boscam RC805 – 5.8Ghz 8 Channel AV Receiver
http://www.hobbyking.com/hobbyking/store/__18649__Boscam_RC805_5_8Ghz_8_Channel_AV_Receiver.html
[20] ZIPPY Flightmax 1000mAh 2S1P 20C
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=35805
[21] 800TVL Sony 1.3Mega CMOS Sensor Board Camera
http://www.surveilzone.com/800tvl-sony-1.3-mega-cmos-sensor-board-camera-dc5v-hs1160f
[22] 9.8 INCH PORTABLE DVD PLAYER WITH HIGH RESOLUTION TFT LCD SCREEN
http://www.ebay.com/itm/KDQ1N-9-8-INCH-PORTABLE-DVD-PLAYER-WITH-HIGH-RESOLUTION-TFT-LCD-SCREEN-SCA-0821-/330935786452?pt=DVD_Players_Recorders&hash=item4d0d4f5bd4
[23] NEO-6M GPS Module
http://www.hobbyking.com/hobbyking/store/__31135__neo_6m_gps_module.html
[24] How GPS Receivers Work
http://electronics.howstuffworks.com/gadgets/travel/gps.htm
[25] MinimOSD+ Details
https://code.google.com/p/arducam-osd/wiki/minimosd
[26] MinimOSD – Specific Hardware Setup Diagrams
http://copter.ardupilot.com/wiki/common-minim-osd-specific-hardware-setup/
[27] Using a Voltage and Current Sensor
http://plane.ardupilot.com/wiki/voltage_current-3/
[28] Installing Rctimer C&V Sensor 90A to ArduFlyer 2.5
http://www.rcgroups.com/forums/showthread.php?t=1846684&page=2
[29] On Board Lipoly Low Voltage Alarm (2s~4s)
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18987
[30] MAVLink Micro Air Vehicle Communication Protocol
http://qgroundcontrol.org/mavlink/start
[31] I2C-Bus: What's that?
[32] UART – Universal Asynchronous Receiver and Transmitter
http://tutorial.cytron.com.my/2012/02/16/uart-universal-asynchronous-receiver-and-transmitter/
[33] Programming ArduPilot Mega with Arduino
https://code.google.com/p/ardupilot-mega/wiki/ProgrammingArduino
[34] Programming ArduPilot Mega
https://code.google.com/p/ardupilot-mega/wiki/Programming
[35] PID Library
http://playground.arduino.cc/Code/PIDLibrary
[36] PROGMEM Library
http://arduino.cc/en/Reference/PROGMEM
[37] Peter O. Basta,” Quad Copter Flight”, California State University, Northridge, Thesis, Electrical Engineering, May 2012
7.Anexe
Cod sursa:
Fișier de cofigurare:
#define Compensatie_accelerometru_axaX 19
#define Compensatie_accelerometru_axaY 7
#define Compensatie_accelerometru_axaZ-73
#define Compensatie_giroscop_axaX 1.418431
#define Compensatie_giroscop_axaY -1.05606
#define Compensatie_giroscop_axaZ -0.54401
//configurarea Nivelelor PWM pentru motoare
#define INITIALIZARE_IESIRI 90
#define INITIALIZARE_TURATIE_ARMARE 135
#define NIVEL_MAXIM_TURATIE 254
//Configurarea Pinilor utilizati penru conexiunea ESC-urilor(corespunzatoare fiecarui motor) cu Arducopter
#define IESIRE1 8
#define IESIRE2 10
#define IESIRE3 11
#define IESIRE4 9
// Configurare GPS
#define T6 1000000
#define T7 10000000
//Configurarea pinilor penru sistemulradio
#define Numar_port_SistemRadio_MiscareRotire 1
#define Numar_port_SistemRadio_Miscare_Sus_Jos 2
#define Numar_port_SistemRadio_Miscare_Stanga_Dreapta 3
#define Numar_port_SistemRadio_Acceleratie 0
#define Numar_port_SistemRadio_canal5 8
Fișier initializare PID
void initializare_regulatorPID(){
PIDMiscareRotire.ChangeParameters(parametru_miscareRotire_Kp,parametru_miscareRotire_Ki,parametru_miscareRotire_Kd,MiscareRotire_PID_MIN,MiscareRotire_PID_MAX);
PIDMiscare_Sus_Jos.ChangeParameters(parametru_miscareMiscare_Sus_Jos_Kp,parametru_miscareMiscare_Sus_Jos_Ki,parametru_miscareMiscare_Sus_Jos_Kd,Miscare_Sus_Jos_PID_MIN,Miscare_Sus_Jos_PID_MAX);
PIDMiscare_Stanga_Dreapta.ChangeParameters(parametru_miscareMiscare_Stanga_Dreapta_Kp,parametru_miscareMiscare_Stanga_Dreapta_Ki,parametru_miscareMiscare_Stanga_Dreapta_Kd,Miscare_Stanga_Dreapta_PID_MIN,Miscare_Stanga_Dreapta_PID_MAX);
PIDunghi_X.ChangeParameters(unghi_X_KP,unghi_X_KI,unghi_X_KD,unghi_X_MIN,unghi_X_MAX);
PIDunghi_y.ChangeParameters(unghi_y_KP,unghi_y_KI,unghi_y_KD,unghi_y_MIN,unghi_y_MAX);
}
Fișier configurare Motoare
void Poces_Initializare(){
pinMode(IESIRE1,OUTPUT);
pinMode(IESIRE2,OUTPUT);
pinMode(IESIRE3,OUTPUT);
pinMode(IESIRE4,OUTPUT);
analogWrite(IESIRE1,INITIALIZARE_IESIRI);
analogWrite(IESIRE2,INITIALIZARE_IESIRI);
analogWrite(IESIRE3,INITIALIZARE_IESIRI);
analogWrite(IESIRE4,INITIALIZARE_IESIRI);
}
void Proces_Armare(){
PIDMiscareRotire.resetI();
PIDMiscare_Sus_Jos.resetI();
PIDMiscare_Stanga_Dreapta.resetI();
PIDunghi_X.resetI();
PIDunghi_y.resetI();
analogWrite(IESIRE1,INITIALIZARE_IESIRI);
analogWrite(IESIRE2,INITIALIZARE_IESIRI);
analogWrite(IESIRE3,INITIALIZARE_IESIRI);
analogWrite(IESIRE4,INITIALIZARE_IESIRI);
}
Fișier configurare sistem RADIO
const byte Port_RADIO[6]={Numar_port_SistemRadio_Miscare_Stanga_Dreapta,Numar_port_SistemRadio_MiscareRotire,Numar_port_SistemRadio_Miscare_Sus_Jos,Numar_port_SistemRadio_canal5,Numar_port_SistemRadio_AUX2,Numar_port_SistemRadio_Acceleratie};
byte Stare_RADIO[4]={0,0,0,0};
int Stare_anterioara_RADIO[6]={0,0,0,0,0,0};
void Radio_Stare_TRUE(){
attachInterrupt(RADIO_INT_Acceleratie,Radio_Stare_FALSE,FALLING);
Stare_anterioara_RADIO[5]=micros();
}
void Radio_Stare_FALSE(){
attachInterrupt(RADIO_INT_Acceleratie,Radio_Stare_TRUE,RISING);
Valoarea_Radio[5]=micros()-Stare_anterioara_RADIO[5];
}
ISR(Port_RADIO[6])
{
for(byte t=0;t<4;t++){
byte Stare_temporala_Radio=digitalRead(pgm_read_byte(&Port_RADIO[t]));
if((Stare_RADIO[t] == 0) & (Stare_temporala_Radio==1)){
Stare_anterioara_RADIO[t]=micros();
Stare_RADIO[t]=1;
}
else if((Stare_RADIO[t] == 1) & (Stare_temporala_Radio==0)){
Valoarea_Radio[t]=micros()-Stare_anterioara_RADIO[t];
Stare_RADIO[t]=0;
}
}
}
Fișier configurare senzori IMU
int coordX_accelerometru=0;
int coordY_accelerometru=0;
int coordZ_accelerometru=0;
long timp_milisescunde=millis();
long timp_microsescunde=micros();
void actualizare_valori_senzori(){
if((micros()-timp_microsescunde)>900){
actualizare_valori_giroscop();
timp_microsescunde=micros();
}
if((millis()-timp)>65){
actualizare_valori_accelerometru();
timp=millis();
}
unsigned long timp_milisescunde = millis();
float dt = (float)(timp_milisescunde-durata)/1000.0;
float pozitie_accelerometru_unghiX = (coordX_accelerometru,coordZ_accelerometru)*RadToDeg;
float pozitie_accelerometru_unghiY = (coordY_accelerometru,coordZ_accelerometru)*RadToDeg;
durata=timp_milisescunde;
}
void actualizare_valori_accelerometru(){
int vector_memorare[3];
senzor_IMU.getAxlData(vector_memorare);
vector_memorare[0]=vector_memorare[0]-Compensatie_accelerometru_axaX;
vector_memorare[1]=vector_memorare[1]-Compensatie_accelerometru_axaY;
vector_memorare[2]=vector_memorare[2]-Compensatie_accelerometru_axaZ;
coordX_accelerometru=(ACC_HPF_NR*coordX_accelerometru+(100-ACC_HPF_NR)*vector_memorare[0])/100;
coordY_accelerometru=(ACC_HPF_NR*coordY_accelerometru+(100-ACC_HPF_NR)*vector_memorare[1])/100;
coordZ_accelerometru=(ACC_HPF_NR*coordZ_accelerometru+(100-ACC_HPF_NR)*vector_memorare[2])/100;
}
void actualizare_valori_giroscop(){
float vector_memorare[3];
senzor_IMU.getGyroData(vector_memorare);
coord_temporala_giroscop_axa_X[t]=coord_temporala_giroscop_axa_X[t+1];
coord_temporala_giroscop_axa_Y[t]=coord_temporala_giroscop_axa_Y[t+1];
coord_temporala_giroscop_axa_Z[t]=coord_temporala_giroscop_axa_Z[t+1];
}
coord_temporala_giroscop_axa_X[GYRO_MAF_NR-1]=(float)(vector_memorare[0]-Compensatie_giroscop_axaX);
coord_temporala_giroscop_axa_Y[GYRO_MAF_NR-1]=(float)(vector_memorare[1]-Compensatie_giroscop_axaY);
coord_temporala_giroscop_axa_Z[GYRO_MAF_NR-1]=(float)(vector_memorare[2]-Compensatie_giroscop_axaZ);
}
Fișier configurare algoritm de zbor
void Regulator_Zbor(){
if(Valoare_Radio[5]<1100){ Proces_Armare();}
if(Valoare_Radio[4]<1500){comutator_rata_unghi=0;}
else{comutator_rata_unghi=1;
PIDunghi_X.resetI();
PIDunghi_y.resetI();
}
Acceleratie=map(Valoare_Radio[5],Acceleratie_ValoareMinimaPwm ,Acceleratie_ValoareMaximaPwm );
if(Valoare_Radio[0]<1370){ setare_unghi_Z=map(Valoare_Radio[0],Miscare_Stanga_Dreapta_ValoareMinimaPwm ,1450);}
else{ setare_unghi_Z=map(Valoare_Radio[0],1410,Miscare_Stanga_Dreapta_ValoareMaximaPwm ,0);}
if (comutator_rata_unghi == 0){
if(Valoare_Radio[1]<1370){ setare_unghi_X=map(Valoare_Radio[1],MiscareRotire_ValoareMinimaPwm ,valoare_turatie_iesire4,MiscareRotire_WMIN,0);}
else{ setare_unghi_X=map(Valoare_Radio[1],1410,MiscareRotire_ValoareMaximaPwm ,0,MiscareRotire_WMAX);}
if(Valoare_Radio[2]<1450){ setare_unghi_Y=map(Valoare_Radio[2],Miscare_Sus_Jos_ValoareMinimaPwm ,1450,0); }
else{ setare_unghi_Y=map(Valoare_Radio[2],1490,Miscare_Sus_Jos_ValoareMaximaPwm ,0,Miscare_Sus_Jos_WMIN); }
}
else{ if(Valoare_Radio[1]<1450){setare_unghi_X=map(Valoare_Radio[1],MiscareRotire_ValoareMinimaPwm ,1450,MiscareRotire_WMIN*RADIO_RATE_SENSITIVITY,0);}
else{
setare_unghi_X=map(Valoare_Radio[1],1490,MiscareRotire_ValoareMaximaPwm ,0);
}
if(Valoare_Radio[2]<1450){ setare_unghi_Y=map(Valoare_Radio[2],Miscare_Sus_Jos_ValoareMinimaPwm ,1450,0);}
else{ setare_unghi_Y=map(Valoare_Radio[2],1490,Miscare_Sus_Jos_ValoareMaximaPwm ,0); }
}
if((Valoare_Radio[1]>1450) & (Valoare_Radio[1]<1490)) setare_unghi_X=0.0;
if((Valoare_Radio[2]>1450) & (Valoare_Radio[2]<1490)) setare_unghi_Y=0.0;
if((Valoare_Radio[0]>1450) & (Valoare_Radio[0]<1490)) setare_unghi_Z=0.0;
}
if (comutator_rata_unghi == 0)
{setare_unghi_X=(int)PIDunghi_X.Compute((float)setare_unghi_X+angles[0],coord_giroscop_medii_axa_Y,(float)setare_unghi_X);
setare_unghi_Y=(int)PIDunghi_y.Compute((float)setare_unghi_Y-angles[1],coord_giroscop_medii_axa_X,(float)setare_unghi_Y);
}
int PIDMiscare_Sus_Jos_val= (int)PIDMiscare_Sus_Jos.Compute((float)setare_unghi_Y-coord_giroscop_medii_axa_X);
int PIDMiscareRotire_val= (int)PIDMiscareRotire.Compute((float)setare_unghi_X-coord_giroscop_medii_axa_Y);
int PIDMiscare_Stanga_Dreapta_val= (int)PIDMiscare_Stanga_Dreapta.Compute((float)setare_unghi_Z-coord_giroscop_medii_axa_Z);
int valoare_turatie_iesire1=Acceleratie+PIDMiscareRotire_val+PIDMiscare_Sus_Jos_val+ PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE1,valoare_turatie_iesire1);
int valoare_turatie_iesire2=Acceleratie-PIDMiscareRotire_val+PIDMiscare_Sus_Jos_val-PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE2,valoare_turatie_iesire2);
int valoare_turatie_iesire3=Acceleratie+PIDMiscareRotire_val-PIDMiscare_Sus_Jos_val-PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE3,valoare_turatie_iesire3);
int valoare_turatie_iesire4=Acceleratie-PIDMiscareRotire_val-PIDMiscare_Sus_Jos_val+PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE4,valoare_turatie_iesire4);
}
Fișier Principal
#include "Configurare.h"
#include <MPULib.h>
#include <Wire.h>
#include <PIDCont.h>
#include <avr/pgmspace.h>
#include <AP_GPS.h>
#include <AP_Baro.h>
PIDCont PIDMiscareRotire,PIDMiscare_Sus_Jos,PIDMiscare_Stanga_Dreapta,PIDunghi_X,PIDunghi_y;
MPULib IMU;
int Acceleratie=INITIALIZARE_IESIRI;
void setup() {
IMU.init();
INITIALIZARE_IESIRI();
InitializareRADIO();
Proces_Armare();
initializare_regulatorPID();
}
void loop() {
actualizare_valori_senzori();
Regulator_Zbor();
}
Bibliografie
[1] RQ-4 Global Hawk
http://www.af.mil/AboutUs/FactSheets/Display/tabid/224/Article/104516/rq-4-global-hawk.aspx
[2] Bouabdallah, S. & Siegwart, R. “Design and Control of a Miniature Quadrotor”, Advances in Unmanned Aerial Vehicles (2007).
[3] Parrot Ardrone 2.0 specs
http://ardrone2.parrot.com/
[4] Phantom 2 General Features
http://wiki.dji.com/en/index.php/Phantom_2
[5] Draganflyerx4p Specs
http://www.draganfly.com/uav-helicopter/draganflyer-x4p/index.php
[6] Understanding The RC Quadrocopter / Multi Rotor
http://www.rchelicopterfun.com/quadrocopter.html
[7] Build A Quadcopter From Scratch – Hardware Overview
http://blog.oscarliang.net/build-a-quadcopter-beginners-tutorial-1/
[8] Hobbyking X580 Glass Fiber Quadcopter Frame w/Camera Mount 585mm
http://www.hobbyking.com/hobbyking/store/__34236__hobbyking_x580_glass_fiber_quadcopter_frame_w_camera_mount_585mm.html
[9] NTM Prop Drive Series 28-30S 900kv / 270w (short shaft version)
http://www.hobbyking.com/hobbyking/store/__25081__NTM_Prop_Drive_Series_28_30S_900kv_270w_short_shaft_version_.html
[10] 10×4.7 SF Carbon Fiber Propellers L/H and R/H Rotation
http://www.hobbyking.com/hobbyking/store/__39773__10x4_7_SF_Carbon_Fiber_Propellers_L_H_and_R_H_Rotation_1_pair_.html
[11] ZIPPY Flightmax 5800mAh 4S1P 30C
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=38244
[12] SimonK Mystery M30A 30A Brushless ESC Quadcopter KK2.0 APM 2
http://www.ebay.com/itm/4X-SimonK-Mystery-M30A-30A-Brushless-ESC-Quadcopter-KK2-0-APM-2-5-FREE-Ship-/310805409032?pt=Radio_Control_Parts_Accessories&hash=item485d722d08
[13] Hobby King Quadcopter Power Distribution Board
http://www.hobbyking.com/hobbyking/store/__23140__hobby_king_quadcopter_power_distribution_board.html
[14] The APM 2.5 Board Overview
http://copter.ardupilot.com/wiki/apm25board_overview/
[15] Arduino Mega 2560
http://arduino.cc/en/Main/arduinoBoardMega2560
[16] Turnigy 6X FHSS 2.4ghz Transmitter and Receiver (Mode 2)
http://www.hobbyking.com/hobbyking/store/__24969__turnigy_6x_fhss_2_4ghz_transmitter_and_receiver_mode_2_.html
[17] How Radio Controlled Toys Work
http://electronics.howstuffworks.com/rc-toy2.htm
[18] Circular or Linear Polarized Antenna For FPV
http://blog.oscarliang.net/linear-circular-polarized-antenna-fpv/
[19] Boscam RC805 – 5.8Ghz 8 Channel AV Receiver
http://www.hobbyking.com/hobbyking/store/__18649__Boscam_RC805_5_8Ghz_8_Channel_AV_Receiver.html
[20] ZIPPY Flightmax 1000mAh 2S1P 20C
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=35805
[21] 800TVL Sony 1.3Mega CMOS Sensor Board Camera
http://www.surveilzone.com/800tvl-sony-1.3-mega-cmos-sensor-board-camera-dc5v-hs1160f
[22] 9.8 INCH PORTABLE DVD PLAYER WITH HIGH RESOLUTION TFT LCD SCREEN
http://www.ebay.com/itm/KDQ1N-9-8-INCH-PORTABLE-DVD-PLAYER-WITH-HIGH-RESOLUTION-TFT-LCD-SCREEN-SCA-0821-/330935786452?pt=DVD_Players_Recorders&hash=item4d0d4f5bd4
[23] NEO-6M GPS Module
http://www.hobbyking.com/hobbyking/store/__31135__neo_6m_gps_module.html
[24] How GPS Receivers Work
http://electronics.howstuffworks.com/gadgets/travel/gps.htm
[25] MinimOSD+ Details
https://code.google.com/p/arducam-osd/wiki/minimosd
[26] MinimOSD – Specific Hardware Setup Diagrams
http://copter.ardupilot.com/wiki/common-minim-osd-specific-hardware-setup/
[27] Using a Voltage and Current Sensor
http://plane.ardupilot.com/wiki/voltage_current-3/
[28] Installing Rctimer C&V Sensor 90A to ArduFlyer 2.5
http://www.rcgroups.com/forums/showthread.php?t=1846684&page=2
[29] On Board Lipoly Low Voltage Alarm (2s~4s)
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18987
[30] MAVLink Micro Air Vehicle Communication Protocol
http://qgroundcontrol.org/mavlink/start
[31] I2C-Bus: What's that?
[32] UART – Universal Asynchronous Receiver and Transmitter
http://tutorial.cytron.com.my/2012/02/16/uart-universal-asynchronous-receiver-and-transmitter/
[33] Programming ArduPilot Mega with Arduino
https://code.google.com/p/ardupilot-mega/wiki/ProgrammingArduino
[34] Programming ArduPilot Mega
https://code.google.com/p/ardupilot-mega/wiki/Programming
[35] PID Library
http://playground.arduino.cc/Code/PIDLibrary
[36] PROGMEM Library
http://arduino.cc/en/Reference/PROGMEM
[37] Peter O. Basta,” Quad Copter Flight”, California State University, Northridge, Thesis, Electrical Engineering, May 2012
Anexe
Cod sursa:
Fișier de cofigurare:
#define Compensatie_accelerometru_axaX 19
#define Compensatie_accelerometru_axaY 7
#define Compensatie_accelerometru_axaZ-73
#define Compensatie_giroscop_axaX 1.418431
#define Compensatie_giroscop_axaY -1.05606
#define Compensatie_giroscop_axaZ -0.54401
//configurarea Nivelelor PWM pentru motoare
#define INITIALIZARE_IESIRI 90
#define INITIALIZARE_TURATIE_ARMARE 135
#define NIVEL_MAXIM_TURATIE 254
//Configurarea Pinilor utilizati penru conexiunea ESC-urilor(corespunzatoare fiecarui motor) cu Arducopter
#define IESIRE1 8
#define IESIRE2 10
#define IESIRE3 11
#define IESIRE4 9
// Configurare GPS
#define T6 1000000
#define T7 10000000
//Configurarea pinilor penru sistemulradio
#define Numar_port_SistemRadio_MiscareRotire 1
#define Numar_port_SistemRadio_Miscare_Sus_Jos 2
#define Numar_port_SistemRadio_Miscare_Stanga_Dreapta 3
#define Numar_port_SistemRadio_Acceleratie 0
#define Numar_port_SistemRadio_canal5 8
Fișier initializare PID
void initializare_regulatorPID(){
PIDMiscareRotire.ChangeParameters(parametru_miscareRotire_Kp,parametru_miscareRotire_Ki,parametru_miscareRotire_Kd,MiscareRotire_PID_MIN,MiscareRotire_PID_MAX);
PIDMiscare_Sus_Jos.ChangeParameters(parametru_miscareMiscare_Sus_Jos_Kp,parametru_miscareMiscare_Sus_Jos_Ki,parametru_miscareMiscare_Sus_Jos_Kd,Miscare_Sus_Jos_PID_MIN,Miscare_Sus_Jos_PID_MAX);
PIDMiscare_Stanga_Dreapta.ChangeParameters(parametru_miscareMiscare_Stanga_Dreapta_Kp,parametru_miscareMiscare_Stanga_Dreapta_Ki,parametru_miscareMiscare_Stanga_Dreapta_Kd,Miscare_Stanga_Dreapta_PID_MIN,Miscare_Stanga_Dreapta_PID_MAX);
PIDunghi_X.ChangeParameters(unghi_X_KP,unghi_X_KI,unghi_X_KD,unghi_X_MIN,unghi_X_MAX);
PIDunghi_y.ChangeParameters(unghi_y_KP,unghi_y_KI,unghi_y_KD,unghi_y_MIN,unghi_y_MAX);
}
Fișier configurare Motoare
void Poces_Initializare(){
pinMode(IESIRE1,OUTPUT);
pinMode(IESIRE2,OUTPUT);
pinMode(IESIRE3,OUTPUT);
pinMode(IESIRE4,OUTPUT);
analogWrite(IESIRE1,INITIALIZARE_IESIRI);
analogWrite(IESIRE2,INITIALIZARE_IESIRI);
analogWrite(IESIRE3,INITIALIZARE_IESIRI);
analogWrite(IESIRE4,INITIALIZARE_IESIRI);
}
void Proces_Armare(){
PIDMiscareRotire.resetI();
PIDMiscare_Sus_Jos.resetI();
PIDMiscare_Stanga_Dreapta.resetI();
PIDunghi_X.resetI();
PIDunghi_y.resetI();
analogWrite(IESIRE1,INITIALIZARE_IESIRI);
analogWrite(IESIRE2,INITIALIZARE_IESIRI);
analogWrite(IESIRE3,INITIALIZARE_IESIRI);
analogWrite(IESIRE4,INITIALIZARE_IESIRI);
}
Fișier configurare sistem RADIO
const byte Port_RADIO[6]={Numar_port_SistemRadio_Miscare_Stanga_Dreapta,Numar_port_SistemRadio_MiscareRotire,Numar_port_SistemRadio_Miscare_Sus_Jos,Numar_port_SistemRadio_canal5,Numar_port_SistemRadio_AUX2,Numar_port_SistemRadio_Acceleratie};
byte Stare_RADIO[4]={0,0,0,0};
int Stare_anterioara_RADIO[6]={0,0,0,0,0,0};
void Radio_Stare_TRUE(){
attachInterrupt(RADIO_INT_Acceleratie,Radio_Stare_FALSE,FALLING);
Stare_anterioara_RADIO[5]=micros();
}
void Radio_Stare_FALSE(){
attachInterrupt(RADIO_INT_Acceleratie,Radio_Stare_TRUE,RISING);
Valoarea_Radio[5]=micros()-Stare_anterioara_RADIO[5];
}
ISR(Port_RADIO[6])
{
for(byte t=0;t<4;t++){
byte Stare_temporala_Radio=digitalRead(pgm_read_byte(&Port_RADIO[t]));
if((Stare_RADIO[t] == 0) & (Stare_temporala_Radio==1)){
Stare_anterioara_RADIO[t]=micros();
Stare_RADIO[t]=1;
}
else if((Stare_RADIO[t] == 1) & (Stare_temporala_Radio==0)){
Valoarea_Radio[t]=micros()-Stare_anterioara_RADIO[t];
Stare_RADIO[t]=0;
}
}
}
Fișier configurare senzori IMU
int coordX_accelerometru=0;
int coordY_accelerometru=0;
int coordZ_accelerometru=0;
long timp_milisescunde=millis();
long timp_microsescunde=micros();
void actualizare_valori_senzori(){
if((micros()-timp_microsescunde)>900){
actualizare_valori_giroscop();
timp_microsescunde=micros();
}
if((millis()-timp)>65){
actualizare_valori_accelerometru();
timp=millis();
}
unsigned long timp_milisescunde = millis();
float dt = (float)(timp_milisescunde-durata)/1000.0;
float pozitie_accelerometru_unghiX = (coordX_accelerometru,coordZ_accelerometru)*RadToDeg;
float pozitie_accelerometru_unghiY = (coordY_accelerometru,coordZ_accelerometru)*RadToDeg;
durata=timp_milisescunde;
}
void actualizare_valori_accelerometru(){
int vector_memorare[3];
senzor_IMU.getAxlData(vector_memorare);
vector_memorare[0]=vector_memorare[0]-Compensatie_accelerometru_axaX;
vector_memorare[1]=vector_memorare[1]-Compensatie_accelerometru_axaY;
vector_memorare[2]=vector_memorare[2]-Compensatie_accelerometru_axaZ;
coordX_accelerometru=(ACC_HPF_NR*coordX_accelerometru+(100-ACC_HPF_NR)*vector_memorare[0])/100;
coordY_accelerometru=(ACC_HPF_NR*coordY_accelerometru+(100-ACC_HPF_NR)*vector_memorare[1])/100;
coordZ_accelerometru=(ACC_HPF_NR*coordZ_accelerometru+(100-ACC_HPF_NR)*vector_memorare[2])/100;
}
void actualizare_valori_giroscop(){
float vector_memorare[3];
senzor_IMU.getGyroData(vector_memorare);
coord_temporala_giroscop_axa_X[t]=coord_temporala_giroscop_axa_X[t+1];
coord_temporala_giroscop_axa_Y[t]=coord_temporala_giroscop_axa_Y[t+1];
coord_temporala_giroscop_axa_Z[t]=coord_temporala_giroscop_axa_Z[t+1];
}
coord_temporala_giroscop_axa_X[GYRO_MAF_NR-1]=(float)(vector_memorare[0]-Compensatie_giroscop_axaX);
coord_temporala_giroscop_axa_Y[GYRO_MAF_NR-1]=(float)(vector_memorare[1]-Compensatie_giroscop_axaY);
coord_temporala_giroscop_axa_Z[GYRO_MAF_NR-1]=(float)(vector_memorare[2]-Compensatie_giroscop_axaZ);
}
Fișier configurare algoritm de zbor
void Regulator_Zbor(){
if(Valoare_Radio[5]<1100){ Proces_Armare();}
if(Valoare_Radio[4]<1500){comutator_rata_unghi=0;}
else{comutator_rata_unghi=1;
PIDunghi_X.resetI();
PIDunghi_y.resetI();
}
Acceleratie=map(Valoare_Radio[5],Acceleratie_ValoareMinimaPwm ,Acceleratie_ValoareMaximaPwm );
if(Valoare_Radio[0]<1370){ setare_unghi_Z=map(Valoare_Radio[0],Miscare_Stanga_Dreapta_ValoareMinimaPwm ,1450);}
else{ setare_unghi_Z=map(Valoare_Radio[0],1410,Miscare_Stanga_Dreapta_ValoareMaximaPwm ,0);}
if (comutator_rata_unghi == 0){
if(Valoare_Radio[1]<1370){ setare_unghi_X=map(Valoare_Radio[1],MiscareRotire_ValoareMinimaPwm ,valoare_turatie_iesire4,MiscareRotire_WMIN,0);}
else{ setare_unghi_X=map(Valoare_Radio[1],1410,MiscareRotire_ValoareMaximaPwm ,0,MiscareRotire_WMAX);}
if(Valoare_Radio[2]<1450){ setare_unghi_Y=map(Valoare_Radio[2],Miscare_Sus_Jos_ValoareMinimaPwm ,1450,0); }
else{ setare_unghi_Y=map(Valoare_Radio[2],1490,Miscare_Sus_Jos_ValoareMaximaPwm ,0,Miscare_Sus_Jos_WMIN); }
}
else{ if(Valoare_Radio[1]<1450){setare_unghi_X=map(Valoare_Radio[1],MiscareRotire_ValoareMinimaPwm ,1450,MiscareRotire_WMIN*RADIO_RATE_SENSITIVITY,0);}
else{
setare_unghi_X=map(Valoare_Radio[1],1490,MiscareRotire_ValoareMaximaPwm ,0);
}
if(Valoare_Radio[2]<1450){ setare_unghi_Y=map(Valoare_Radio[2],Miscare_Sus_Jos_ValoareMinimaPwm ,1450,0);}
else{ setare_unghi_Y=map(Valoare_Radio[2],1490,Miscare_Sus_Jos_ValoareMaximaPwm ,0); }
}
if((Valoare_Radio[1]>1450) & (Valoare_Radio[1]<1490)) setare_unghi_X=0.0;
if((Valoare_Radio[2]>1450) & (Valoare_Radio[2]<1490)) setare_unghi_Y=0.0;
if((Valoare_Radio[0]>1450) & (Valoare_Radio[0]<1490)) setare_unghi_Z=0.0;
}
if (comutator_rata_unghi == 0)
{setare_unghi_X=(int)PIDunghi_X.Compute((float)setare_unghi_X+angles[0],coord_giroscop_medii_axa_Y,(float)setare_unghi_X);
setare_unghi_Y=(int)PIDunghi_y.Compute((float)setare_unghi_Y-angles[1],coord_giroscop_medii_axa_X,(float)setare_unghi_Y);
}
int PIDMiscare_Sus_Jos_val= (int)PIDMiscare_Sus_Jos.Compute((float)setare_unghi_Y-coord_giroscop_medii_axa_X);
int PIDMiscareRotire_val= (int)PIDMiscareRotire.Compute((float)setare_unghi_X-coord_giroscop_medii_axa_Y);
int PIDMiscare_Stanga_Dreapta_val= (int)PIDMiscare_Stanga_Dreapta.Compute((float)setare_unghi_Z-coord_giroscop_medii_axa_Z);
int valoare_turatie_iesire1=Acceleratie+PIDMiscareRotire_val+PIDMiscare_Sus_Jos_val+ PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE1,valoare_turatie_iesire1);
int valoare_turatie_iesire2=Acceleratie-PIDMiscareRotire_val+PIDMiscare_Sus_Jos_val-PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE2,valoare_turatie_iesire2);
int valoare_turatie_iesire3=Acceleratie+PIDMiscareRotire_val-PIDMiscare_Sus_Jos_val-PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE3,valoare_turatie_iesire3);
int valoare_turatie_iesire4=Acceleratie-PIDMiscareRotire_val-PIDMiscare_Sus_Jos_val+PIDMiscare_Stanga_Dreapta_val;
analogWrite(IESIRE4,valoare_turatie_iesire4);
}
Fișier Principal
#include "Configurare.h"
#include <MPULib.h>
#include <Wire.h>
#include <PIDCont.h>
#include <avr/pgmspace.h>
#include <AP_GPS.h>
#include <AP_Baro.h>
PIDCont PIDMiscareRotire,PIDMiscare_Sus_Jos,PIDMiscare_Stanga_Dreapta,PIDunghi_X,PIDunghi_y;
MPULib IMU;
int Acceleratie=INITIALIZARE_IESIRI;
void setup() {
IMU.init();
INITIALIZARE_IESIRI();
InitializareRADIO();
Proces_Armare();
initializare_regulatorPID();
}
void loop() {
actualizare_valori_senzori();
Regulator_Zbor();
}
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiectarea Si Realizarea Unui Quadcopter Pentru Misiuni de Supraveghere Aeriana (ID: 163134)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
