» elektronik » Arduino »Hjemmelavet flystabiliseringssystem baseret på Arduino

Hjemmelavet flystabiliseringssystem baseret på Arduino


For nylig blev jeg interesseret i flymodelltemaet. Og så begyndte det: han byggede et fly, købte udstyr. Forudse den hurtige bortgang af den første model uden at forlade kassen, begyndte han at indsamle den anden, mens han samtidig arbejdede i simulatoren. Generelt forsinkede jeg min første rigtige flyvning, som jeg kunne, idet jeg var bange for at bryde på farten modellen. Og så, ved en fejltagelse, ved at pløje de åbne rum på aliexpress, stødte jeg på en interessant ting - et flystabiliseringssystem. Dette er en lille enhed i størrelse-størrelse, der justerer flyets flyvning, hvilket gør det glattere og udjævner pilotfejl. Begyndte at søge, læse, siger de og virkelig en god ting for begyndere. Nå, her fyrede jeg op - jeg vil og i det mindste knækker du. Det var bare, at budgettet allerede var ved at løbe ud ... Det ser ud til, at flyet ville bygge et spørgsmål om 10 dollars i loftet, og købe udstyr, købe et batteri, købe en oplader til det, en motor, en regulator, servoer, propeller ... Kort sagt sker der en masse ting. Lidt deprimeret, men ikke opgive, begyndte jeg at visne bag på hovedet: Duc, jeg kan slags lodde. Han begyndte at søge og fandt næsten øjeblikkeligt en lille artikel med titlen "Flystabiliseringssystemet til 200 rubler." En meget beskeden lille artikel med en meget beskeden implementering. Men dette er allerede noget. Han klatrede op til udenlandske fora - og se og se, dette er et kæmpe projekt med konstant udvikling! Det er besluttet, vi vil gøre det!

Projektet kaldes MultiWii. Oprindeligt blev det udtænkt som en flyveleder til multicopterbaseret Arduino, men med tiden begyndte de at vokse og forbedre sig. Nu er der en kode, der giver dig mulighed for at placere dette stabiliseringssystem på fly og V-vinger. For den enkleste udførelse, som i ovenstående artikel, har du kun brug for to ting: arduino og accelerometer. Alt dette kan loddes med ledninger, fyldes med varm snørr og fungerer. Men det kan og vil være, kun jeg fungerer ikke sådan.




Og så skal du til fremstilling af en komplet enhed bruge:

  • Arduino PRO Mini, 5V, Atmega 328
  • Tre-akset accelerometermodul med gyroskop MPU-6050
  • Kam pls
  • Et stykke foliefiberglas, hvis du selv laver brættet.
  • SMD-modstand 500-1500 Om
  • LED 3 mm hvilken som helst.

Fra værktøjerne:

  • Loddejern
  • lodde
  • Flux (jeg anbefaler F5)
  • USB - UART Converter CP2102 eller lignende
  • Model / kontor / kniv til fremstilling af etuiet

Nå, de små ting, dobbeltsidet bånd, saks, ørepinde, pincet, hvad der skal være i tjeneste med de yngste.

Som sagt er projektet i vækst og udvikling. Så her kan du skrue et andet Bluetooth-modul til at konfigurere controlleren fra telefonen, et barometer, til at kontrollere højden, GPS for at returnere modellen "hjem", når signalet går tabt. Ud over dette vokser også emnet med improviserede modtagere baseret på den samme arduino og et billigt kommunikationsmodul A7105, som uden kirurgi forstyrrer mit FlySky i6-udstyr, så i teorien kan du forbinde disse to projekter og få fuld hjerne til en flyvemaskine, en svævefly eller vinger. Og i et rum med det førnævnte budgetudstyr, der roligt blinkes fra 6 kanaler til 14, kommer dette generelt ud lige perfekt til en nybegynder for sine penge.

Af denne grund forsøgte jeg at gøre kredsløbskortet til denne enhed så simpelt som muligt, dvs. ensidigt og med et strygejern. Naturligvis er det nødvendigt med viden inden for radioelektronik, i det mindste evnen til at lodde mere eller mindre kvalitativt, du kan bestille et tavle og i ekstreme tilfælde, men i det væsentlige er det en designer: Jeg sydede en arduino, loddet den, modulet og kammen til brættet, det er klar. Minimum indsats.


Arduino



For arduinka firmware har du brug for en speciel USB - UART (TTL) konverter, fordi Arduino PRO Mini har ikke en USB-interface. Du skal ikke være bange for dette, som regel kan du købe dem på samme sted, hvor arduino og moduler sælges. Den eneste forskel i firmwaren gennem denne konvertering er, at du nødt til dygtigt at trykke på reset-knappen på selve arduino, når skitsten downloades, selvom der er konvertere, der selv trækker nulstillingsfoden. Jeg vil ikke beskrive proceduren for upload af en skitse; der er allerede en million artikler og videoer om dette emne skrevet og skudt.

betaling



Det næste trin er at lave bestyrelsen. Brættet fremstilles af enhver tilgængelig teknologi eller bestilles. Jeg anbefaler stærkt, at rive sporene op, det er bedre at bruge ROSE- eller WOODA-legering, så laget er så lille som muligt, store strømme går ikke rundt her, og det er bedre at beskytte kobber mod overdreven korrosion, regn, sne, du ved aldrig, det er stadig ikke et hjemmet udstyr. Jeg lavede en rogue LUT, ikke det bedste resultat, du kan gøre en masse dårlig printer, men hvem er ligeglad med)



Den første ting at lodde springerne.



Bag dem er arduino. Benene til at blinke arduinki skal loddes op eller vinkelret sidelæns. Du kan udfylde skitsen med det samme, du kan ikke udfylde den, den betyder ikke noget, fordi den samlede enhed skal stadig være tilsluttet computeren, så programmeringskontakterne skal være let tilgængelige. Det eneste råd er at kontrollere arduinoen før lodning, udfyld en testskitse og sørge for, at tavlen blinker. Bare lodning, så bliver det hæmorroider.



Nå og alt andet. Accelerometeret loddes på høje ben og er placeret over arduino. Jeg vil ikke skjule en synd, jeg spionerede sådan en layout på et udenlandsk forum på et solgt, men jeg tegnet mit eget ensidige tørklæde. Hvad mig angår, er fraværet af tre springere ikke værd at stå op med et dobbeltsidet bræt, uanset hvor dårlig form for tilstedeværelsen af ​​disse samme springere ikke betragtes.




Et advarsel. Der er en modstand og LED på tavlen. Modstand SMD-format kan droppes ud af noget ødelagt udstyr, den nominelle værdi på 500 ohm - 1,5 kOhm. Du kan tage en almindelig 3 mm LED, jeg havde en rektangulær, jeg lodede den.


På dette tidspunkt kan enheden i princippet allerede være tilsluttet og konfigureret, men som det forekommer mig ufuldstændig. elektronik for radiostyrede modeller har længe fået en modulær karakter. Derfor synes jeg, at denne enhed skal bringes til det færdige modul, som er let at montere i modellen og tilslutte. For at gøre dette har han brug for en sag. En god mulighed ville være at udskrive den på en 3D-printer, plasten, der bruges til udskrivning, er let og holdbar. Men ikke alle har det. Du kan lave sagen ved termoforming, på Internettet er der en masse information om, hvordan man laver en simpel maskine til dette fra en støvsuger, træ og et stykke krydsfiner. Men til dette skal du lave et blokhoved, og det er dovenskab. På dette tog jeg vejen for mindst modstand. Ja, og en sådan metode vil svare til denne artikel - for at gøre det så enkelt som muligt ved hjælp af et minimum af værktøjer.


boliger

Jeg skar to stykker plast efter størrelsen på tavlen, i mit tilfælde tynd transparent PVC, men du kan f.eks. Bruge hvad du vil, en kasse fra en disk. Jeg tog ikke mellemliggende fotos, men jeg tror, ​​det allerede vil være klart.Ved hjælp af en lineal målte jeg afstanden til kontakterne på tavlen og skar vinduer til dem øverst på "sagen". Jeg borede huller koaksialt med hullerne på brættet og forbindte dem sammen med improviserede nitter fra rørene fra ørestikkene. For at fremstille en sådan nitte er det nok at forsigtigt holde spidsen af ​​røret i tænderens flamme, og når der dannes en tilstrømning, skal du trykke den mod denne lightere. På bagsiden skærer vi rørene, der forlader et par millimeter og gør det samme. Som afstandsstykker bruges segmenter af røret fra dropper. Som et resultat kom en sådan sandwich ud:




Let at gøre, let, enkelt og pålideligt. Det er allerede praktisk at montere det i flyets flyplads ved at limes til bunden et par strimler af "bil" dobbeltsidet bånd. Men for det fulde billede har du stadig brug for en navneskilt, der fortæller dig om et halvt år, når allerede elleve andre ordninger vil blive samlet, hvad du skal forbinde til.




Navneskiltet er trykt på selvklæbende blankt papir. For nylig købt specifikt til sådanne formål. Tidligere gjorde jeg det: trykt på hvad der er, lamineret med klæbebånd og limet på dobbeltsidet tape. Den mest opmærksomme kunne evaluere mit niveau for engelsk)

Nu kan enheden virkelig kaldes et færdigt modul. Den samlede vægt på 15,5 gram. For meget sammenlignet med det købte, men generelt meget meget. Min model med en rækkevidde på 950mm trækker i det mindste uden problemer. Men hvis du forfølger vægten, kan du løsne arduino fra det løse pulver direkte på brættet, spare 2 gram, bruge en tynd millimeter tekstolit (jeg brugte hvilken, en og en halv eller to millimeter, målede ikke), gør ikke sagen. Men er det værd at disse 5 gram? For eksempel er vægten af ​​den oprindelige modtager fra min app 16 gram.
Enheden skal placeres i et vandret plan, pilen angiver bevægelsesretningen. Enheden kan heller ikke installeres på hovedet. For klarhed vedhæfter jeg et billede.




Opsætning, kalibrering

Gå nu til indstillingerne. Først skal du tilslutte enheden til computeren og derefter åbne den vedhæftede grafiske brugergrænseflade. Hvis der ikke er problemer med driverne, skal porten vises i programmet:




Vi vælger det. Nu skal du kalibrere accelerometeret. Vi trykker på LÆS-knappen, og hvis alt er korrekt, kan vi observere målingerne fra sensoren i realtid. Vi lægger enheden på en plan overflade og trykker på CALIB_ACC. Normalt er en "flad overflade" et bord i nærheden af ​​computeren, så når du trykker på kalibreringen, skal du holde dine hænder væk fra bordet. Hvem kan ikke huske, at accelerometeret er en accelerationssensor. Så enhver vibration eller vibration i kalibreringen vil ikke have en positiv effekt. Men hvis det er muligt, er det bedre at kalibrere det på en overflade, der er udsat for niveauet. Gyroskopet kalibreres i sig selv, hver gang det tændes, så det behøver ikke at blive kalibreret. Det eneste er, at når du tænder for modellen skal være stille. Det vil sige, vi sætter modellen på jorden, tænder den og rører ikke ved den. Gyroskopet kalibreres øjeblikkeligt. Kalibrering angives med en LED signeret som STATUS.




Konfigurer øjeblikkeligt AUX1. Det er praktisk for ham at bruge en trepositionskontakt, hvis der er en på senderen. På et lavt niveau (afbryderen er i den første position) deaktiveres stabilisering, på et gennemsnitligt niveau (henholdsvis position) tændes et accelerometer, og på et højt niveau, et gyroskop og et accelerometer. Til en normal flyvning er principielt et accelerometer nok, et gyroskop bruges normalt til FPV-flyvninger. Hvad ville være som jeg beskrev - indstil værdierne som vist her:



Lidt om andre indstillinger. PID - dette er indstillingerne for selve stabiliseringen. Kort sagt:

  • P er værdien af ​​den anvendte korrektionskraft for at returnere modellen til dens udgangsposition.
  • jeg Er det tidsrum, i hvilket vinkelafvigelser registreres og gennemsnit.
  • D - dette er den hastighed, hvormed modellen vender tilbage til sin oprindelige position.




Jeg anbefaler dig ikke at røre ved disse indstillinger før den første flyvning. Stabilisering fungerer godt ved basale værdier, godt, og der kan du allerede stramme op, hvis noget ikke passer dig.

Næste. TPA ansvarlig for værdien af ​​disse PID-indstillinger afhængigt af gaspositionen. Ved en værdi på 0,00 er PID-værdierne de samme i enhver gasposition, det vil sige som forventet ved enhver hastighed. Med en værdi på 1,00 med en gas vil 100% PID være nul, dvs. stabilisering deaktiveres. Ved en værdi på 0,5 pr. 100% af gassen vil pidserne være henholdsvis 50%. Her er det allerede indstillet til flyet og til din aerobatiske stil, indtil videre har jeg forladt 50%.

Også på kanalen AUX2 skal du konfigurere forstærkningen. Bevæbning er et copter-udtryk. Mennesket kaldes dette for at låse motoren op. På fly implementeres dette normalt gennem kontroludstyr, men siden Denne controller var oprindeligt copter - her blev det gjort ret hårdt. Generelt hænger vi en slags gratis vippekontakt på AUX2, i programmet satte vi ARM til et højt niveau. Her er det måske nogen, der vil snyde og indstille låsningen på alle niveauer af AUX2, men bare ikke mislykkes. I dette tilfælde nægter multivægen overhovedet at starte motoren. Det kan antages, at dette er en fejl, men jeg tror, ​​at beskyttelsen snart er. Flyet flyver stadig kun fremad, og kun gudene ved, hvor den ukontrollerede copter vil eksplodere.

I øvrigt er dette faktisk praktisk. Specifikt i min app låses motoren op ved at flytte vippekontakten op. I dette tilfælde skal udstyret tændes netop med alle vippekontakter i den øverste position. Det vil sige, det viser sig, at du skal tænde for udstyret, flytte vippekontakten ned for at blokere motoren og derefter overføre det op igen for at låse op. Og du kan ikke vende det vigtigste. Umiddelbart viser det sig menneskeligt, i den øverste position er motoren låst, i den nederste ulåst.




I fanen SERVO du kan vende servoer om nødvendigt. Her gjorde de det på en eller anden måde kompliceret. Først skal du trykke på SERVO. En liste over servoer og niveauer vises. Hvis du trykker på omvendt-knappen nu og forsøger at gemme, gemmes intet. Først skal du trykke på GO LIVE, hvorefter når stavene afvises, vil det være muligt at observere niveauafvigelsen i vinduet. Nu trykker vi på reversknappen på den ønskede kanal og derefter trykker vi på SAVE. Nu er alt optaget.




Et vigtigt punkt ved at afbryde enheden fra computeren. Hvis du trækker programmeringskablerne fra enheden eller trækker konverteren fra USB-porten uden at lukke COM-porten eller MultiWiiConf-programmet, vil systemet gå ned, og den blå skærm vil være cirka 100% sandsynlig. I det mindste på min bærbare computer. Jeg kontrollerede endda specifikt. Jeg ved ikke, om dette er et problem med min hardware, eller om den reagerer, at den er synlig for den virtuelle COM-port, men hvis den advares, betyder det, at den er bevæbnet. Husk.

Og et par flere indstillinger, der kan komme godt med. Hvis din modtager ved, hvordan man udsender et PPM-signal, skal du muligvis overføre det til multiview. For at gøre dette skal du åbne firmwarefilen, gå til fanen config.h og kigge efter sektionen PPM Sum Reciver (glorificeret Ctrl + F). Her skal du fjerne 2 linjer. Hvem ikke er i emnet, ukommenterende - det betyder at fjerne to skråstreg i begyndelsen af ​​linjen. Det var sådan:


// # definér PPM_ON_THROTTLE


Det blev sådan:

#definér PPM_ON_THROTTLE


Du skal også fjerne enhed af en af ​​disse linjer, afhængigt af hardware:

// # definér SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // For Graupner / Spektrum
// # definér SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // For Robe / Hitec / Futaba
// # definér SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // For Multiplex
// # definér SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // For nogle Hitec / Sanwa / Andre


I mit tilfælde er dette den anden linje, hvor er Futaba (hvad har jeg FlySky udstyr til). Her kan det være nødvendigt at vælge empirisk, det er muligt at ordinere den ønskede rækkefølge selv. En eller anden måde er der intet kompliceret ved det. Vi samler skitsen og fylder den med en ny. For at vende tilbage til normal tilstand skal du gøre det modsatte, kommentere linjer, kompilere, udfylde. Jeg vil være opmærksom, når alle indstillinger og kalibrering er blevet slået ned igen, når du har indlæst tegningen, husk dette.

Et andet almindeligt problem, som jeg forstår det, ofte støder på, og jeg er ingen undtagelse.Når alle er samlet og konfigureret, tilsluttes alle rattet - roret flyder væk. Håndtagene på fjernbetjeningen blev rykket - det så ud til at være på plads, men hvis svæveflyet rystede lidt - flyder det væk til siden igen og i en ret alvorlig vinkel. Det behandles elementært: I GUI-programmet skal du indstille værdien YAW - jeg til nul. Problemet forsvinder med det samme.


Nå, videoen fungerer:


konklusion

Generelt, hvis du har erfaring med fremstilling af trykte kredsløbskort, samles enheden på en aften. Jeg har allerede selv lavet de grundlæggende indstillinger for flyet på skitsen, resten beskrev jeg i artiklen. Information måtte indsamles i forskellige fora, hovedsageligt udenlandske. Ikke desto mindre giver jeg links til forskellige kilder, der kan hjælpe i tilfælde af andre problemer, selvom de ikke burde være det.

, hvorfra jeg lånte bordets formfaktor. Jeg tilbyder ikke at købe, men emnet har en detaljeret guide til firmwarekonfigurationen på engelsk. Sandt for den gamle firmwareversion, men i den nye er alt næsten det samme. Der er også en tilstand i grenen, der giver dig mulighed for at justere PID-indstillinger i realtid gennem potentiometerstyringsudstyret.

. Han har sin egen personlige omskrevne firmware, de siger, at den ideelt er optimeret til fly. Men igen, den gamle version. Du kan prøve det, men for udseendet af fejl, der ikke er beskrevet i denne artikel, er jeg ikke ansvarlig. Der er mange beskrivelser af indstillinger.

. Men de grundlæggende nyttige oplysninger, der er beskrevet der, nemlig behandlingen af ​​roret, har jeg allerede beskrevet. Ikke desto mindre ved du aldrig.

De samlede omkostninger varierer fra 4-8 dollars, afhængigt af hvilken pris arduino og modulet blev købt, er der en tekstolit derhjemme, er der en programmør. Under alle omstændigheder er dette flere gange mindre end markedsværdien fra $ 20 pr. Enhed med de samme egenskaber. Personligt kostede det mig $ 2, et lager af arduino til sådanne formål blev købt for et år siden, der var ikke kun et modul.

I arkivet, der er vedhæftet nedenfor, er en skitse til arduino, MultiWiiConf installationsprogram til forskellige operativsystemer, et kredsløbskortfil (for at åbne har du brug for SprintLayout ikke mindre end version 6), samt et trykt kredsløbskort i PDF-format, for dem, der ikke har en laserprinter derhjemme ( skal udskrives med 100%).


airplain_stabilization.rar [10.64 Mb] (downloads: 234)

Held og lykke til alle i dit arbejde!
10
10
9.9

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
9 kommentar
Gæst Gennady
Generelt var eksperimenterne ikke succesrige, arduinka brændte ud. Vi venter på, at en ny fra de kinesiske brødre fortsætter.
Forfatteren
Og linjen skal også kommenteres, i samme sektion er de i nærheden.
Forfatteren
Og hvordan sluttede du forbindelse til modtageren via PPM eller kanal-for-kanal? Hvis kanal for kanal, skal du finde afsnittet i skitsen i fanen conhig.h PPM Sum Reciver og kommenter tilbage på linjen, læse slutningen af ​​artiklen. Hvis det ikke fungerer via PPM, skal du kontrollere, om du har glemt at skifte udstyr og modtager til PPM-tilstand.
Gæst Gennady
Hej. Samlet, uploadet en skitse i arduino, i programmet viser afvigelser. Men jeg kan ikke oprette forbindelse til RC udstyr. Servoer fungerer ikke, eller rettere "rangle".
Forfatteren
Afmeld, hvis muligt, til kontoen for resultatet, har løst problemet eller ej. Og i bekræftende fald hvordan. Det vil være nyttigt for andre læsere.
Valery K.
Tak for svaret. Jeg vil prøve en anden version. Og jeg ved, at dette ikke er autopilot. Jeg har brug for en flygestabilisator.
Forfatteren
Hilsner. I betragtning af at skitsen fungerer 100%, og bibliotekerne er indbygget i selve skitsen, er det eneste, der kommer til at tænke på den gamle eller omvendt, en meget ny version Arduino IDE.Af en eller anden grund, undertiden med den "forkerte" version, tegner skitsen ikke, det er kun sket en gang, men fora skriver ofte om et sådant problem. Jeg kan ikke huske, hvilken version var, da jeg indsamlede den, men nu kontrollerede jeg den, alt samlet. Version 1.8.6
Læs også kilderne, der er vedhæftet i slutningen af ​​artiklen, måske har nogen også fundet et problem.
P. S. Dette er ikke en autopilot. Der er også et autopilot-projekt til arduino, se efter ardupilot.
Valery K.
Kære forfatter, jeg har sat en autopilot til din artikel. Men når firmwaren ikke skete på grund af manglen på færdiggørelse af kompilering af skitsen. Jeg beder om hjælp, for jeg er desværre ikke programmerer. Jeg har arbejdet med arduino for nylig og erfaringer er ikke nok, men jagt flyver.
Forfatteren
Jeg glemte at skrive om et andet problem. Motoren starter kun, hvis flyet er i en vandret position. Det kan ske, at du under en flyvning for eksempel opretter en løkke, og af en eller anden grund fjerner du gassen til nul, kan det ske ved et uheld. Så efter dette starter motoren muligvis ikke længere. Den nemmeste måde at løse problemet på er at lade gassignalet fra modtageren gennem Y-kablet, det ene er forbundet direkte til controlleren, det andet til multivisionen. Men dette fungerer kun, hvis du ikke bruger PPM. For PPM skal dette jamb behandles i kode.

Vi råder dig til at læse:

Giv den til smartphonen ...