» electronică » Arduino »Sistem de stabilizare a aeronavelor de casă bazat pe Arduino

Sistem de stabilizare a aeronavelor de origine, bazat pe Arduino


Recent, m-am interesat de tema modelului aeronavei. Și atunci a început: a construit un avion, a cumpărat echipament. Anticipând dispariția rapidă a primului model fără a se îndepărta de la box office, a început să strângă al doilea, în timp ce lucra simultan în simulator. În general, am întârziat primul meu zbor real, cât am putut, temându-mă să rup în mișcare modelul. Și apoi, întâmplător, aratând spațiile deschise ale aliexpress, am dat peste un lucru interesant - sistemul de stabilizare a zborului. Acesta este un dispozitiv mic cu dimensiunea receptorului, care ajustează zborul unui avion, făcându-l mai lin, eliminând defectele pilotului. A început să caute, să citească, spun ei și într-adevăr un lucru bun pentru începători. Ei bine, iată că am tras - Vreau și cel puțin te crăpă. Doar că bugetul era deja terminat ... S-ar părea că avionul ar construi o întrebare de 10 dolari în tavan și ar cumpăra echipamente, cumpără o baterie, cumpără un încărcător pentru el, un motor, un regulator, servos, elice ... Pe scurt, se întâmplă o mulțime de lucruri. Puțin deprimat, dar fără să renunț, am început să-mi zvârlesc spatele capului: așa, știu cum să se lipească. A început să caute și a găsit aproape imediat un mic articol intitulat „Sistemul de stabilizare a aeronavei pentru 200 de ruble”. Un mic articol foarte modest, cu o implementare foarte modestă. Dar acest lucru este deja ceva. A urcat pe forumuri străine - și iată și iată, acesta este un proiect uriaș, cu dezvoltare constantă! Se decide, o vom face!

Proiectul se numește MultiWii. Inițial, a fost conceput ca un controler de zbor pentru bazele multicopter Arduino, dar, în timp, a început să crească și să se îmbunătățească. Acum există un cod care vă permite să puneți acest sistem de stabilizare pe aeronave și pe aripi V. Pentru cea mai simplă execuție, ca în articolul de mai sus, veți avea nevoie de doar 2 lucruri: arduino și accelerometru. Toate acestea pot fi soldate cu fire, umplute cu snot fierbinte și vor funcționa. Dar poate și va fi, numai că nu funcționez așa.




Astfel, pentru fabricarea unui dispozitiv complet, veți avea nevoie de:

  • Arduino PRO Mini, 5V, Atmega 328
  • Modul de accelerometru cu trei axe cu giroscop MPU-6050
  • Pieptene pls
  • O bucată de fibră de sticlă, dacă faceți singur placa.
  • Rezistent SMD 500-1500 Om
  • LED 3 mm oricare.

Din instrumente:

  • Fier de lipit
  • suda
  • Flux (recomand F5)
  • USB - UART Converter CP2102 sau similar
  • Model / clerical / cuțit de montare pentru confecționarea carcasei

Ei bine, lucrurile mărunte, banda dublu față, foarfecele, bastoanele de urechi, penseta, ceva care ar trebui să fie înarmat cu cei mai tineri.

După cum am spus, proiectul este în creștere și dezvoltare. Deci, aici puteți înșuruba un alt modul Bluetooth pentru a configura controlorul de la telefon, un barometru, pentru a controla altitudinea, GPS-ul pentru a returna modelul „acasă” atunci când semnalul este pierdut. Pe lângă asta, se dezvoltă și tema receptoarelor improvizate bazate pe același arduino și un modul de comunicare ieftin A7105, care fără intervenții chirurgicale interferează cu echipamentul meu FlySky i6, așa că, teoretic, puteți conecta aceste două proiecte și puteți obține creiere complete pentru un avion, un planor sau aripi. Și într-un compartiment cu echipamentul bugetar menționat anterior, care este liniștit luminat de la 6 canale la 14, acest lucru iese în general perfect pentru un începător pentru banii săi.

Din acest motiv, am încercat să fac placa de circuit pentru acest dispozitiv cât mai simplu, adică pe o singură parte și cu un fier de călcat. Desigur, va fi nevoie de cunoștințe în domeniul electronicelor radio, cel puțin capacitatea de a vinde mai mult sau mai puțin calitativ, puteți comanda o placă și în cazuri extreme, dar în esență este un designer: am cusut un arduino, l-am lipit, modulul și pieptene pe placă, este gata. Efort minim.


Arduino



Pentru firmware arduinka, veți avea nevoie de un convertor USB - UART (TTL) special, deoarece Arduino PRO Mini nu are interfață USB. Nu ar trebui să vă fie frică de acest lucru, de regulă, le puteți cumpăra în același loc în care sunt vândute arduino și module. Singura diferență în firmware prin intermediul acestui convertor este că trebuie să apăsați cu abilitate butonul de resetare pe arduino însuși strict la momentul descărcării schiței, deși există convertizoare care trag singuri piciorul de resetare. Nu voi descrie procedura de încărcare a unei schițe, există deja un milion de articole și videoclipuri pe acest subiect scrise și înregistrate.

plată



Următorul pas este de a face consiliul. Placa este realizată prin orice tehnologie disponibilă sau comandată. Vă sfătuiesc foarte mult să rupeți piesele, este mai bine să folosiți aliaj ROSE sau WOODA, astfel încât stratul să fie cât mai mic, curenții mari să nu meargă pe aici și este mai bine să protejați cuprul împotriva coroziunii excesive, ploii, zăpezii, nu știți niciodată, nu este încă un dispozitiv de uz casnic. Am făcut un LUT necinstit, nu cel mai bun rezultat, puteți face o mulțime de imprimante proaste, dar cui îi pasă)



Primul lucru pentru a lipi jumperii.



În spatele lor este arduino. Picioarele pentru aprinderea arduinki trebuie să fie lipite sau în unghi lateral. Puteți completa schița imediat, nu o puteți completa, nu contează, pentru că dispozitivul asamblat va trebui totuși conectat la computer, deci contactele de programare ar trebui să fie ușor accesibile. Singurul sfat este să verificați arduino înainte de lipire, să completați orice schiță de testare și să vă asigurați că placa este intermitentă. Doar lipire atunci va fi hemoroizi.



Ei bine și orice altceva. Accelerometrul este lipit pe picioare înalte și este situat deasupra arduino-ului. Nu voi ascunde un păcat, am spionat un astfel de aspect pe un forum străin la unul vândut, dar mi-am atras propria eșarfă unilaterală. În ceea ce privește mine, absența a trei jumperi nu merită bătaia cu o placă cu două fețe, oricât de proastă ar fi să nu fie luată în considerare prezența acelorași jumperi.




Un singur avertisment. Pe placă există un singur rezistor și LED. Formatul SMD de rezistență poate fi eliminat din unele echipamente stricate, valoarea nominală de 500 Ohms - 1,5 kOhm. Puteți lua un LED obișnuit de 3 mm, am avut unul dreptunghiular, l-am sudat.


În această etapă, dispozitivul, în principiu, poate fi deja conectat și configurat, dar așa cum mi se pare incomplet. electronică pentru modelele controlate radio a dobândit mult timp un caracter modular. Prin urmare, cred că acest dispozitiv ar trebui adus la modulul terminat, care este ușor de montat în model și de conectat. Pentru a face acest lucru, el are nevoie de un caz. O opțiune bună ar fi să o imprimați pe o imprimantă 3D, plasticul utilizat pentru imprimare este ușor și durabil. Dar nu toată lumea îl are. Puteți face carcasa prin termoformare, pe Internet există o mulțime de informații despre cum să faceți o mașină simplă pentru asta de la un aspirator, cherestea și o bucată de placaj. Dar pentru asta trebuie să faceți un blocaj, iar acest lucru este lene. În acest sens, am luat calea cea mai mică rezistență. Da, și o astfel de metodă va fi similară cu acest articol - pentru a o face cât mai simplu, folosind un minim de instrumente.


carcasă

Am tăiat două bucăți de plastic în funcție de dimensiunea plăcii, în cazul meu subțire din PVC transparent, dar puteți folosi orice, o cutie de pe un disc, de exemplu. Nu am făcut fotografii intermediare, dar cred că oricum va fi clar.Folosind o riglă, am măsurat distanța până la contactele de pe placă și am tăiat ferestrele pentru ele în partea de sus a „carcasei”. Am găurit găuri coaxial cu orificiile de pe bord și am conectat totul împreună cu nituri improvizate din tuburile de la urechi. Pentru a face un astfel de nit, este suficient să țineți ușor vârful tubului în flacăra brichetei și atunci când se formează un aflux, apăsați-l pe corpul acestei brichete. Pe revers, tăiem tuburile lăsând câțiva milimetri și procedăm la fel. Ca distantiere au folosit segmente de tub din picurator. Drept urmare, a ieșit un astfel de sandwich:




Ușor de făcut, ușor, simplu și de încredere. Este deja convenabil să-l montați în fuselajul aeronavei prin lipirea pe partea inferioară a unei perechi de benzi cu bandă dublă "automobilă". Dar pentru imaginea completă, mai aveți nevoie de o placă de identificare, care vă va spune într-o jumătate de an, când deja vor fi asamblate alte unsprezece scheme, la ce să vă conectați.




Placa de imprimare imprimată pe hârtie lucioasă autoadezivă. Cumpărat recent special pentru astfel de scopuri. Anterior, am făcut acest lucru: am imprimat pe ceea ce aveam, am laminat cu bandă adezivă și am lipit-o pe bandă dublă. Cei mai atenți mi-ar putea evalua nivelul de engleză)

Acum dispozitivul poate fi numit într-adevăr modul gata pregătit. Greutatea totală de 15,5 grame. Prea mult în comparație cu cel cumpărat, dar, în general, foarte mult nimic. Cel puțin modelul meu cu o gamă de 950 mm va trage fără probleme. Dar dacă urmărești greutatea, poți dezvălui arduino din pulberea desfăcută direct pe bord, economisind 2 grame, folosește un textolit milimetric subțire (am folosit care, unu și jumătate sau doi milimetri, nu a măsurat), nu face cazul. Dar merită acele 5 grame? De exemplu, greutatea receptorului nativ din aplicația mea este de 16 grame.
Dispozitivul trebuie amplasat pe un plan orizontal, săgeata indică direcția de mișcare. De asemenea, dispozitivul nu poate fi instalat cu susul în jos. Pentru claritate, atașez o poză.




Configurare, calibrare

Acum accesați setările. Mai întâi trebuie să conectați dispozitivul la computer, apoi să deschideți interfața grafică de utilizator atașată. Dacă nu există probleme cu driverele, atunci portul ar trebui să apară în program:




O selectăm. Acum trebuie să calibrați accelerometrul. Apăsați butonul CITEȘTE și dacă totul este corect, putem observa citirile de la senzor în timp real. Așezăm dispozitivul pe o suprafață plană și apăsăm CALIB_ACC. De obicei, o „suprafață plană” este o masă lângă computer, așa că atunci când apăsați calibrarea, țineți mâinile departe de masă. Cine nu-și amintește, accelerometrul este un senzor de accelerație. Deci orice vibrație sau vibrație în calibrare nu va avea un efect pozitiv. Dar, dacă este posibil, este mai bine să o calibrați pe o suprafață expusă la nivel. Giroscopul este calibrat de fiecare dată când este pornit, deci nu este necesar să fie calibrat. Singurul lucru este că atunci când porniți modelul ar trebui să fie staționar. Adică punem modelul la sol, îl pornim și nu îl atingem. Giroscopul este calibrat imediat. Calibrarea este indicată printr-un LED semnat STATUS.




Configurați imediat AUX1. Este convenabil pentru el să folosească un comutator cu trei poziții, dacă există unul pe transmițător. La un nivel scăzut (comutatorul este în prima poziție), stabilizarea este dezactivată, la un nivel mediu (și respectiv poziție) este pornit un accelerometru, iar la un nivel înalt, un giroscop și un accelerometru. Pentru un zbor normal, în principiu, un accelerometru este suficient, un giroscop este de obicei utilizat pentru zborurile FPV. Care ar fi așa cum am descris - setați valorile așa cum se arată aici:



Un pic despre alte setări. PID - acestea sunt setările în sine ale stabilizării. Pe scurt:

  • P este valoarea forței corective aplicate pentru a readuce modelul în poziția inițială.
  • eu Este perioada de timp în care sunt înregistrate și mediate abaterile unghiulare.
  • D - aceasta este viteza cu care modelul va reveni la poziția inițială.




Vă sfătuiesc să nu atingeți aceste setări înainte de primul zbor. Stabilizarea funcționează bine la valori de bază, iar acolo vă puteți strânge dacă ceva nu vi se potrivește.

În continuare. TPA responsabil pentru valoarea acestor setări PID în funcție de poziția gazului. La o valoare de 0,00, valorile PID vor fi aceleași la orice poziție de gaz, adică, așa cum este de așteptat, la orice viteză. Cu o valoare de 1,00 cu un gaz, PID 100% va fi zero, adică stabilizarea va fi dezactivată. La o valoare de 0,5 la 100% din gaz, gropile vor fi egale cu 50%, respectiv. Aici a fost deja reglat pentru avion și pentru stilul dvs. aerobatic, până acum am lăsat 50%.

Tot pe canal AUX2 trebuie să configurați armarea. Armarea este un termen copter. Uman, aceasta se numește deblocarea motorului. La avioane, acest lucru este de obicei implementat prin echipamente de control, dar de atunci Acest controler a fost inițial copter - aici a fost făcut destul de greu. În general, agățăm un fel de comutator de comutare gratuit pe AUX2, în programul setăm ARM la un nivel înalt. Aici, cineva poate dori să înșele și să stabilească deblocarea la toate nivelurile AUX2, dar pur și simplu nu eșuezi. În acest caz, multiviy refuză să pornească motorul deloc. Se poate presupune că aceasta este o eroare, dar cred că protecția este în curând. Avionul zboară încă înainte și doar Zeii știu unde va exploda copterul necontrolat.

Apropo, acest lucru este de fapt convenabil. Mai exact, în aplicația mea, motorul este deblocat prin mutarea comutatorului de comutare în sus. În acest caz, echipamentul trebuie să fie pornit doar cu toate comutatoarele în poziția superioară. Adică, se dovedește că trebuie să porniți echipamentul, să mutați comutatorul de comutare în jos pentru a bloca motorul, apoi transferați-l înapoi pentru a debloca. Și nu puteți inversa principalul lucru. Imediat se dovedește uman, în poziția superioară motorul este blocat, în partea inferioară deblocată.




În filă SERVO puteți inversa servos-urile, dacă este necesar. Aici au făcut-o într-un fel complex. Mai întâi trebuie să apăsați SERVO. Va apărea o listă de servos și niveluri. Dacă apăsați acum butonul invers și încercați să salvați, nimic nu va fi salvat. În primul rând, trebuie să apăsați GO LIVE, după care atunci când stickurile sunt respinse, va fi posibil să observați abaterea de nivel în fereastră. Acum apăsăm butonul invers al canalului dorit și după aceea apăsăm SAVE. Acum s-a înregistrat totul.




Un punct important despre deconectarea dispozitivului de la computer. Dacă scoateți firele de programare din dispozitiv sau extrageți convertorul din portul USB fără a închide portul COM sau programul MultiWiiConf, sistemul se va bloca și ecranul albastru va fi aproximativ 100% probabil. Cel puțin pe laptopul meu este. Chiar am verificat în mod specific. Nu știu dacă aceasta este o problemă cu hardware-ul meu sau dacă reacționează este vizibilă pentru portul virtual COM, dar dacă este avertizat, înseamnă că este armat. Ține cont.

Și alte câteva setări care pot fi utile. Dacă receptorul dvs. știe să emită un semnal PPM, este posibil să doriți să îl transmiteți multiview. Pentru a face acest lucru, deschideți fișierul firmware, accesați fila config.h și căutați secțiunea PPM Sum Reciver (glorificat Ctrl + F). Aici trebuie să necomentizezi 2 linii. Cine nu este în subiect, necomentează - asta înseamnă să înlăture două tălpi la începutul liniei. A fost asa:


// # define PPM_ON_THROTTLE


A devenit așa:

#define PPM_ON_THROTTLE


De asemenea, trebuie să decomentați una dintre aceste linii, în funcție de hardware:

// # define SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Pentru Graupner / Spektrum
// # define SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // For Robe / Hitec / Futaba
// # define SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Pentru Multiplex
// # define SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Pentru unele Hitec / Sanwa / Altele


În cazul meu, aceasta este a doua linie, unde se află Futaba (pentru ce am echipament FlySky). Aici poate fi necesar să selectați empiric, este posibil să vă prescrieți singur secvența dorită. Într-un fel sau altul, nu este nimic complicat. Compilăm schița și o completăm cu una nouă. Pentru a reveni la modul normal, faceți opusul, comentați liniile, compilați, completați. Vreau să fiu atent, după ce reîncărcați schița, toate setările și calibrarea vor fi anulate, țineți cont de acest lucru.

O altă problemă comună care, după cum o înțeleg, este adesea întâlnită și nu fac excepție.După ce toată lumea s-a asamblat și configurat, a conectat toate volanele - cârma plutește departe. Mânerele de pe telecomandă erau smucite - părea să fie în loc, dar dacă planorul scutura puțin - plutește din nou în lateral și într-un unghi destul de serios. Acesta este tratat elementar: în programul GUI, setați valoarea DA - Eu la zero. Problema dispare imediat.


Ei bine, videoclipul funcționează:


concluzie

În general, dacă aveți experiență în fabricarea plăcilor de circuit imprimat, dispozitivul este asamblat într-o seară. Am făcut deja setările de bază pentru avion chiar eu în schiță, restul descris în articol. Informațiile trebuiau colectate pe diverse forumuri, în special în cele străine. Cu toate acestea, dau link-uri către diverse surse care vor ajuta în cazul altor probleme, deși acestea nu ar trebui să fie.

, de la care am împrumutat factorul de formă al consiliului. Nu ofer să cumpăr, dar subiectul are un ghid detaliat privind configurația firmware-ului în engleză. Adevărat pentru versiunea de firmware veche, dar în noua, totul este aproape la fel. Există, de asemenea, un mod în ramură care vă permite să ajustați setările PID în timp real prin intermediul echipamentului de control al potențiometrului.

. El are propriul firmware rescris personal, spun că este optimizat ideal pentru avioane. Dar, din nou, versiunea veche. Puteți încerca, dar pentru apariția glitches-urilor care nu sunt descrise în acest articol, nu sunt responsabil. Există multe descrieri ale setărilor.

. Dar informațiile utile de bază care sunt descrise acolo, și anume tratarea cârmei, am enunțat deja. Cu toate acestea, nu știi niciodată.

Costul total variază între 4-8 dolari, în funcție de prețul cum a fost cumpărat arduino și modulul, există un textolit acasă, există un programator. În orice caz, aceasta este de câteva ori mai mică decât valoarea de piață de la 20 USD pe dispozitiv cu aceleași caracteristici. Personal, m-a costat 2 USD, un stoc de arduino pentru astfel de scopuri a fost achiziționat acum un an, nu exista doar un modul.

În arhiva atașată mai jos se găsește o schiță pentru arduino, un program de configurare MultiWiiConf pentru diferite sisteme de operare, un fișier PCB (pentru a deschide aveți nevoie de SprintLayout nu mai puțin de versiunea 6), precum și un PCB în format PDF, pentru cei care nu au o imprimantă laser acasă ( trebuie să imprimați la 100%).


airplain_stabilization.rar [10.64 Mb] (descărcări: 234)

Noroc tuturor celor din munca ta!
10
10
9.9

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
9 comentariu
Invitat Gennady
În general, experimentele nu au reușit, ardinka a ars. Așteptăm să continuăm unul nou din partea fraților chinezi.
Autorul
Și linia trebuie să fie comentată, în aceeași secțiune, acestea sunt în apropiere.
Autorul
Și cum te-ai conectat la receptor, prin PPM sau canal prin canal? Dacă canal cu canal, atunci trebuie să găsiți secțiunea din schița din fila conhig.h PPM Sum Reciver și comentați înapoi pe linie, citiți sfârșitul articolului. Dacă nu funcționează prin PPM, verificați dacă ați uitat să schimbați echipamentul și receptorul în modul PPM.
Invitat Gennady
Buna ziua. Asamblat, încărcat o schiță în arduino, în program arată abateri. Însă nu mă pot conecta la echipamentele RC. Servosele nu funcționează, sau mai degrabă „zdruncină”.
Autorul
Dezabonați-vă, dacă este posibil, în contul rezultatului, ați rezolvat sau nu problema. Și dacă da, cum. Va fi util pentru alți cititori.
Valery K.
Mulțumesc pentru răspuns. Voi încerca o altă versiune. Și știu că acesta nu este un pilot automat. Am nevoie de un stabilizator de zbor.
Autorul
Salutări. Având în vedere că schița funcționează 100%, iar bibliotecile sunt încorporate în schița în sine, singurul lucru care îmi vine în minte este vechiul sau invers, o versiune foarte nouă Arduino IDE.Din anumite motive, uneori cu versiunea „greșită”, schița nu compilează, aceasta s-a întâmplat o singură dată, dar forumurile scriu deseori despre o astfel de problemă. Nu-mi amintesc ce versiune a fost când am colectat-o, dar acum am verificat-o, totul a fost compilat. Versiunea 1.8.6
Citiți și sursele atașate la sfârșitul articolului, poate cineva a întâmpinat și o problemă.
P.S. Acesta nu este un pilot automat. Există, de asemenea, un proiect cu pilot automat pentru arduino, căutați ardupilot.
Valery K.
Stimate autor, am pregătit un pilot automat pentru articolul dvs. Dar când firmware-ul nu s-a întâmplat din cauza lipsei completării compilării schiței. Cer ajutor, pentru că, din păcate, nu sunt programator. Lucrez recent cu arduino și experiența nu este suficientă, dar vânătoarea zboară.
Autorul
Am uitat să scriu despre o altă problemă. Motorul pornește numai dacă aeronava este în poziție orizontală. Se poate întâmpla ca în timpul zborului să faceți o buclă, de exemplu, și dintr-un anumit motiv să eliminați gazul la zero, s-ar putea întâmpla din întâmplare. Așadar, după aceasta, motorul poate să nu mai pornească. Cel mai simplu mod de a rezolva problema este de a lăsa semnalul de gaz de la receptor prin cablul Y, unul este conectat direct la regulator, al doilea la multiviziune. Dar acest lucru funcționează numai dacă nu utilizați PPM. Pentru PPM, acest jamb trebuie tratat cu cod.

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...