» elektronikk » Arduino »Hjemmelaget flystabiliseringssystem basert på Arduino

Hjemmelaget flystabiliseringssystem basert på Arduino


Nylig ble jeg interessert i flymodelltemaet. Og så startet det: han bygde et fly, kjøpte utstyr. Forventet den raske bortgangen til den første modellen uten å forlate kassen, begynte han å samle den andre, mens han samtidig jobbet i simulatoren. Generelt forsinket jeg mitt første virkelige fly som jeg kunne, og var redd for å gå i stykker modellen. Og så, ved en tilfeldighet, pløying av de åpne områdene til aliexpress, kom jeg over en interessant ting - flystabiliseringssystemet. Dette er en liten enhet i størrelse med mottakeren som justerer flyet for å gjøre det jevnere, og utjevne pilotfeil. Begynte å søke, lese, sier de og virkelig en god ting for nybegynnere. Vel, her fyrte jeg opp - jeg vil og i det minste knaker du. Det var bare at budsjettet allerede var i ferd med å løpe ut ... Det ser ut til at flyet ville bygge et spørsmål om dollar for 10 tak, og kjøpe utstyr, kjøpe et batteri, kjøpe en lader for det, en motor, en regulator, servoer, propeller ... Kort sagt skjer det mye. Litt deprimert, men ikke ga opp, begynte jeg å visne bakhodet: så jeg vet hvordan jeg skal lodde. Han begynte å søke og fant nesten umiddelbart en liten artikkel med tittelen "Flystabiliseringssystemet for 200 rubler." En veldig beskjeden liten artikkel med en veldig beskjeden implementering. Men dette er allerede noe. Han klatret til utenlandske fora - og se og si, dette er et enormt prosjekt med konstant utvikling! Det er bestemt, vi skal gjøre det!

Prosjektet heter MultiWii. Opprinnelig ble den tenkt som en flygeleder for multicopterbasert arduino, men over tid begynte å vokse og forbedre seg. Nå er det en kode som lar deg sette dette stabiliseringssystemet på fly og V-vinger. For den enkleste utførelsen, som i artikkelen ovenfor, trenger du bare to ting: arduino og akselerometer. Alt dette kan loddes med ledninger, fylles med varm snørr og vil fungere. Men det kan og vil være, bare jeg ikke jobber sånn.




Og for å produsere en komplett enhet trenger du:

  • Arduino PRO Mini, 5V, Atmega 328
  • Tre-akset akselerometermodul med gyroskop MPU-6050
  • Kam pls
  • Et stykke glassfiberfiber, hvis du lager brettet selv.
  • SMD-motstand 500-1500 Om
  • LED 3 mm hvilken som helst.

Fra verktøyene:

  • Loddejern
  • lodde
  • Flux (jeg anbefaler F5)
  • USB - UART Converter CP2102 eller lignende
  • Modell / geistlig / monteringskniv for å lage saken

Vel, de små tingene, tosidig tape, saks, ørepinner, pinsett, noe som bør bevæpnes med de yngste.

Som sagt er prosjektet i vekst og utvikling. Så her kan du skru en annen Bluetooth-modul for å konfigurere kontrolleren fra telefonen, et barometer, for å kontrollere høyden, GPS for å returnere modellen "hjem" når signalet går tapt. I tillegg til dette vokser også emnet improviserte mottakere basert på samme arduino og en billig kommunikasjonsmodul A7105, noe som uten kirurgi forstyrrer FlySky i6-utstyret mitt, så i teorien kan du koble disse to prosjektene og få full hjerne for et fly, en glider eller vinger. Og i et rom med det nevnte budsjettutstyret, som rolig er blinket fra 6 kanaler til 14, kommer dette generelt ut perfekt for en nybegynner for pengene.

Av denne grunn prøvde jeg å gjøre kretskortet for denne enheten så enkel som mulig, det vil si ensidig og med et strykejern. Selvfølgelig vil kunnskap innen radioelektronikk være nødvendig, i det minste evnen til å lodde mer eller mindre kvalitativt, du kan bestille et brett og i ekstreme tilfeller, men i hovedsak er det en designer: Jeg sydde en arduino, loddet den, modulen og kammen til brettet, den er klar. Minimum innsats.


Arduino



For arduinka firmware trenger du en spesiell USB - UART (TTL) omformer, fordi Arduino PRO Mini har ikke et USB-grensesnitt. Du skal ikke være redd for dette, som regel kan du kjøpe dem på samme sted der arduino og moduler selges. Den eneste forskjellen i firmware gjennom denne omformeren er at du dyktig må trykke på reset-knappen på selve arduinoen når skissen er lastet ned, selv om det er omformere som drar tilbakestillingsfoten selv. Jeg vil ikke beskrive fremgangsmåten for å laste opp en skisse. Det er allerede en million artikler og videoer om dette emnet skrevet og skutt.

betaling



Neste trinn er å lage styret. Brettet er laget av all tilgjengelig teknologi eller bestilt. Jeg anbefaler på det sterkeste å rive sporene, det er bedre å bruke ROSE eller WOODA-legering, slik at laget er så lite som mulig, store strømmer ikke går rundt her, og det er bedre å beskytte kobber mot overdreven korrosjon, regn, snø, du vet aldri, det er fremdeles ikke et hjemmetapp. Jeg laget en useriøs LUT, ikke det beste resultatet, du kan gjøre mye dårlig skriver, men hvem bryr seg)



Den første tingen å lodde hopperne.



Bak dem er arduino. Bena for å blinke arduinki må loddes opp eller vinkles sidelengs. Du kan fylle ut skissen med en gang, du kan ikke fylle den ut, det betyr ikke noe, for den samlede enheten må fremdeles være koblet til datamaskinen, så programmeringskontaktene skal være lett tilgjengelige. Det eneste rådet er å sjekke arduino før lodding, fylle ut en testskisse og sørge for at brettet blinker. Bare lodd så blir det hemoroider.



Vel og alt annet. Akselerometeret er loddet på høye ben og er plassert over arduino. Jeg vil ikke skjule en synd, jeg spionerte en slik layout på et utenlandsk forum på et solgt, men jeg tegnet mitt eget ensidige skjerf. Når det gjelder meg, er ikke fraværet av tre hoppere verdt oppstyret med et tosidig brett, uansett hvor dårlig form tilstedeværelsen av disse samme hopperne ikke blir vurdert.




Ett påminnelse. Det er en motstand og LED på brettet. Motstand SMD-format kan slippes ut av noe ødelagt utstyr, den pålydende verdien på 500 ohm - 1,5 kOhm. Du kan ta en vanlig 3mm LED, jeg hadde en rektangulær en, jeg loddet den.


På dette stadiet kan enheten i prinsippet allerede være tilkoblet og konfigurert, men som det ser ut til å være ufullstendig. elektronikk for radiostyrte modeller har lenge fått en modulær karakter. Derfor synes jeg denne enheten bør føres til den ferdige modulen, som er enkel å montere i modellen og koble til. For å gjøre dette trenger han en sak. Et godt alternativ ville være å skrive den ut på en 3D-skriver, plasten som brukes til utskrift er lett og holdbar. Men ikke alle har det. Du kan lage saken ved å termoforme, på Internett er det massevis av informasjon om hvordan du lager en enkel maskin til dette fra en støvsuger, tømmer og et stykke kryssfiner. Men for dette må du lage et hode, og dette er latskap. På dette tok jeg veien til minst motstand. Ja, og en slik metode vil være lik denne artikkelen - for å gjøre det så enkelt som mulig ved å bruke et minimum av verktøy.


bolig

Jeg kuttet to stykker plast etter størrelsen på brettet, i mitt tilfelle tynt gjennomsiktig PVC, men du kan bruke hva som helst, en boks fra en disk, for eksempel. Jeg tok ikke mellombilder, men jeg tror det vil være klart uansett.Ved hjelp av en linjal målte jeg avstanden til kontaktene på brettet, og klippet vinduer for dem på toppen av "saken". Jeg boret hull koaksialt med hullene på brettet og koblet alt sammen med improviserte nagler fra rørene fra ørepinnene. For å lage en slik nagle er det nok å forsiktig holde tuppen av røret i tennens flamme, og når det dannes en tilstrømning, trykk den mot kroppen til denne lighteren. På baksiden kutter vi rørene som etterlater seg et par millimeter og gjør det samme. Som avstandsstykker brukte deler av røret fra dropperen. Som et resultat kom en slik sandwich ut:




Lett å gjøre, lett, enkel og pålitelig. Det er allerede praktisk å montere det i flykroppen ved å lime på bunnen et par strimler "bil" dobbeltsidig tape. Men for hele bildet, trenger du fortsatt en navneplate, som vil fortelle deg om et halvt år, når allerede elleve andre ordninger skal settes sammen, hva du skal koble til.




Navneskiltet er trykt på selvklebende glanset papir. Nylig kjøpt spesielt for slike formål. Tidligere gjorde jeg dette: Jeg trykket på det jeg hadde, laminert med limbånd og limte det på dobbeltsidig tape. De mest imøtekommende kunne evaluere nivået mitt på engelsk)

Nå kan enheten virkelig kalles en ferdig modul. Totalvekten på 15,5 gram. For mye sammenlignet med det kjøpte, men generelt sett ingenting. Minst min modell med en rekkevidde på 950mm vil trekke uten problemer. Men hvis du jager vekten, kan du løsne arduino fra det løse pulveret direkte på brettet, spare 2 gram, bruke en tynn millimeter tekstolit (jeg brukte hvilken, halvannen eller to millimeter, målte ikke), gjør ikke saken. Men er det verdt de 5 gram? Vekten til den opprinnelige mottakeren fra appen min er for eksempel 16 gram.
Enheten skal være plassert i et horisontalt plan, pilen indikerer bevegelsesretningen. Enheten kan heller ikke installeres opp ned. For klarhet legger jeg ved et bilde.




Oppsett, kalibrering

Gå nå til innstillingene. Først må du koble enheten til datamaskinen, og deretter åpne det vedlagte grafiske brukergrensesnittet. Hvis det ikke er problemer med driverne, bør porten vises i programmet:




Vi velger det. Nå må du kalibrere akselerometeret. Vi trykker på LES-knappen, og hvis alt er riktig, kan vi observere målingene fra sensoren i sanntid. Vi legger enheten på en flat overflate og trykker på CALIB_ACC. Vanligvis er en "flat overflate" et bord i nærheten av datamaskinen, så når du trykker på kalibreringen, må du holde hendene vekk fra bordet. Hvem husker ikke, akselerometeret er en akselerasjonssensor. Så eventuelle vibrasjoner eller vibrasjoner i kalibreringen vil ikke ha en positiv effekt. Men hvis mulig, er det bedre å kalibrere den på en overflate utsatt for nivået. Gyroskopet er kalibrert selv hver gang det slås på, så det trenger ikke å bli kalibrert. Det eneste er at når du slår på modellen skal være stasjonær. Det vil si at vi legger modellen på bakken, slår den på og ikke berører den. Gyroskopet blir kalibrert umiddelbart. Kalibrering indikeres av en LED signert som STATUS.




Konfigurer AUX1 øyeblikkelig. Det er praktisk for ham å bruke en treposisjonsbryter, hvis det er en på senderen. På et lavt nivå (bryteren er i den første posisjonen) er stabilisering deaktivert, på et gjennomsnittlig nivå (og henholdsvis posisjon) er et akselerometer slått på, og på et høyt nivå, et gyroskop og et akselerometer. For en normal flyging er i prinsippet et akselerometer nok, et gyroskop brukes vanligvis til FPV-flyvninger. Hva vil være som jeg beskrev - angi verdiene som vist her:



Litt om andre innstillinger. PID - dette er innstillingene for selve stabiliseringen. I et nøtteskall:

  • P er verdien av den korrigerende kraften som påføres for å føre modellen tilbake til dens opprinnelige posisjon.
  • jeg Er perioden hvor vinkelavvik blir registrert og gjennomsnitt.
  • D - dette er hastigheten som modellen vil returnere til sin opprinnelige posisjon.




Jeg anbefaler deg å ikke berøre disse innstillingene før den første flyvningen. Stabilisering fungerer bra på grunnleggende verdier, vel, og der kan du allerede stramme inn hvis noe ikke passer deg.

Neste. TPA ansvarlig for verdien av disse PID-innstillingene, avhengig av gassposisjon. Ved en verdi av 0,00 vil PID-verdiene være de samme i en hvilken som helst gassposisjon, det vil si som forventet, med hvilken som helst hastighet. Med en verdi på 1,00 med en gass vil 100% PID være null, det vil si stabilisering vil bli deaktivert. Ved en verdi på 0,5 per 100% av gassen vil pidene være henholdsvis 50%. Her er det allerede innstilt på flyet og din aerobatiske stil, så langt har jeg igjen 50%.

Også på kanalen AUX2 må du konfigurere forsterkningen. Bevæpning er et koptermedium. Menneskelig kalles dette å låse opp motoren. På fly implementeres dette vanligvis gjennom kontrollutstyr, men siden Denne kontrolleren var opprinnelig copter - her ble det gjort ganske tøft. Generelt henger vi en slags gratis vippebryter på AUX2, i programmet setter vi ARM til et høyt nivå. Her kan det være lurt å snyte og sette opp låsen på alle nivåer av AUX2, men bare ikke mislykkes. I dette tilfellet nekter multiviyen å starte motoren i det hele tatt. Det kan antas at dette er en feil, men jeg tror at beskyttelsen snart er. Flyet flyr fremdeles bare fremover, og bare Gods vet hvor den ukontrollerte koperen vil eksplodere.

Forresten, dette er faktisk praktisk. I appen min låses motoren spesielt opp ved å flytte vippebryteren opp. I dette tilfellet må utstyret slås på bare med alle bryterbryterne i øvre stilling. Det vil si at det viser seg at du trenger å slå på utstyret, flytte vippebryteren ned for å sperre motoren, og deretter overføre det opp igjen for å låse opp. Og du kan ikke snu det viktigste. Umiddelbart viser det seg menneskelig, i øvre stilling er motoren låst, i den nedre ulåste.




I fanen SERVO Du kan reversere servoer om nødvendig. Her gjorde de det på en eller annen måte intrikat. Først må du trykke på SERVO. En liste over servoer og nivåer vises. Hvis du trykker på reversknappen nå og prøver å lagre, blir ingenting lagret. Først må du trykke GO LIVE, hvoretter når stikkene blir avvist, vil det være mulig å observere nivåavviket i vinduet. Nå trykker vi på reversknappen til ønsket kanal og etter det trykker vi på SAVE. Nå er alt spilt inn.




Et viktig poeng om å koble enheten fra datamaskinen. Hvis du drar ut programmeringskablene fra enheten eller trekker omformeren fra USB-porten uten å lukke COM-porten eller MultiWiiConf-programmet, vil systemet krasje og den blå skjermen vil være omtrent 100% sannsynlig. I det minste på den bærbare datamaskinen er det. Selv sjekket jeg spesielt. Jeg vet ikke om dette er et problem med maskinvaren min, eller om den reagerer at den er synlig for den virtuelle COM-porten, men hvis den blir advart, betyr det at den er bevæpnet. Husk.

Og noen flere innstillinger som kan komme til nytte. Hvis mottakeren vet hvordan du gir ut et PPM-signal, kan det være lurt å overføre det til multivisningen. For å gjøre dette, åpne firmwarefilen, gå til config.h-fanen og se etter delen PPM Sum Reciver (glorifisert Ctrl + F). Her må du fjerne to linjer. Hvem som ikke er med i emnet, ikke-kommenterende - dette betyr å fjerne to skråstreker i begynnelsen av linjen. Det var slik:


// # definere PPM_ON_THROTTLE


Det ble slik:

#definere PPM_ON_THROTTLE


Du må også fjerne en av disse linjene, avhengig av maskinvaren:

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


I mitt tilfelle er dette den andre linjen, hvor er Futaba (hva har jeg FlySky-utstyr til). Her kan det være nødvendig å velge empirisk, det er mulig å foreskrive ønsket sekvens selv. På en eller annen måte er det ingenting komplisert med det. Vi sammenstiller skissen og fyller den med en ny. For å gå tilbake til normal modus, gjør det motsatte, kommenter linjer, kompilere, fylle. Jeg vil være oppmerksom på at når du har lastet inn skissen alle innstillinger og kalibrering vil bli slått ned, husk dette.

Et annet vanlig problem som, slik jeg forstår det, ofte blir møtt, og jeg er intet unntak.Etter at alle har montert og konfigurert, koblet alle rattene til - roret flyter vekk. Håndtakene på fjernkontrollen ble runket - det så ut til å være på plass, men hvis glidebryteren ristet litt - flyter den bort til siden igjen, og i en ganske alvorlig vinkel. Det behandles elementært: I GUI-programmet angir du verdien YAW - jeg til null. Problemet forsvinner med en gang.


Vel, videoen fungerer:


konklusjon

Generelt, hvis du har erfaring med produksjon av trykte kretskort, monteres enheten på en kveld. Jeg har allerede laget de grunnleggende innstillingene for flyet selv i skissen, resten beskrev jeg i artikkelen. Informasjon måtte samles i forskjellige fora, hovedsakelig utenlandske. Likevel gir jeg lenker til forskjellige kilder som vil hjelpe i tilfelle andre problemer, selv om de ikke burde være det.

, hvor jeg lånte formfaktoren til styret. Jeg tilbyr ikke å kjøpe, men emnet har en detaljert veiledning om firmwarekonfigurasjonen på engelsk. Sann for den gamle firmwareversjonen, men i den nye er alt nesten det samme. Det er også en modus i grenen som lar deg justere PID-innstillinger i sanntid gjennom potensiometerstyringsutstyret.

. Han har sin egen personlige omskrevne firmware, de sier at den er ideell optimalisert for fly. Men igjen, den gamle versjonen. Du kan prøve det, men for utseendet til glitches som ikke er beskrevet i denne artikkelen, er jeg ikke ansvarlig. Det er mange beskrivelser av innstillinger.

. Men den grunnleggende nyttige informasjonen som er beskrevet der, nemlig behandlingen av roret, har jeg allerede skissert. Likevel vet du aldri.

Den totale kostnaden varierer fra 4-8 dollar, avhengig av hvilken pris arduino og modulen ble kjøpt, er det en tekstolit hjemme, er det en programmerer. I alle fall er dette flere ganger mindre enn markedsverdien fra $ 20 per enhet med samme egenskaper. Personlig kostet det meg $ 2, et lager av arduino til slike formål ble kjøpt for et år siden, det var ikke bare en modul.

I arkivet som er vedlagt nedenfor, er en skisse for arduino, et MultiWiiConf-oppsettprogram for forskjellige operativsystemer, en PCB-fil (for å åpne trenger du SprintLayout ikke mindre enn versjon 6), samt en PCB i PDF-format, for de som ikke har en laserskriver hjemme ( trenger å skrive ut på 100%).


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

Lykke til alle i arbeidet ditt!
10
10
9.9

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
9 kommentar
Gjesten Gennady
Generelt var eksperimentene mislykkede, arduinka brant ut. Vi venter på at en ny fra de kinesiske brødrene skal fortsette.
Forfatteren
Og linjen må også kommenteres, i samme seksjon er de i nærheten.
Forfatteren
Og hvordan koblet du deg til mottakeren, via PPM eller kanal-for-kanal? Hvis du kanal for kanal, må du finne delen i skissen i fanen conhig.h PPM Sum Reciver og kommenter tilbake på linjen, les slutten av artikkelen. Hvis det ikke fungerer gjennom PPM, sjekk om du har glemt å bytte utstyret og mottakeren til PPM-modus.
Gjesten Gennady
Hei. Sett sammen, lastet opp en skisse på arduino, i programmet viser avvik. Men jeg kan ikke koble til RC-utstyr. Servoer fungerer ikke, eller rettere sagt "skrangle".
Forfatteren
Avslutt, hvis mulig, til kontoen for resultatet, har løst problemet eller ikke. Og i så fall, hvordan. Det vil være nyttig for andre lesere.
Valery K.
Takk for svaret. Jeg vil prøve en annen versjon. Og jeg vet at dette ikke er autopilot. Jeg trenger en flystabilisator.
Forfatteren
Hilsener. Med tanke på at skissen fungerer 100%, og bibliotekene er innebygd i selve skissen, er det eneste som kommer opp i tankene den gamle eller omvendt, en veldig ny versjon Arduino IDE.Av en eller annen grunn, noen ganger med den "gale" versjonen, samles ikke skissen, det har bare skjedd en gang, men fora skriver ofte om et slikt problem. Jeg husker ikke hvilken versjon det var da jeg samlet den, men nå har jeg sjekket den, alt sammen. Versjon 1.8.6
Les også kildene som er vedlagt på slutten av artikkelen, kanskje noen også hadde et problem.
PS! Dette er ikke en autopilot. Det er også et autopilot-prosjekt for arduino, se etter ardupilot.
Valery K.
Kjære forfatter, jeg har satt sammen en autopilot til artikkelen din. Men når firmware ikke skjedde på grunn av manglende fullføring av samlingen av skissen. Jeg ber om hjelp, for jeg er dessverre ikke programmerer. Jeg har jobbet med arduino den siste tiden, og erfaring er ikke nok, men jakt flyr.
Forfatteren
Jeg glemte å skrive om et annet problem. Motoren starter bare hvis flyet er i horisontal stilling. Det kan hende at du i løpet av flyturen lager en sløyfe for eksempel, og av en eller annen grunn vil du fjerne gassen til null, kan det skje ved et uhell. Så etter dette kan det hende at motoren ikke lenger starter. Den enkleste måten å løse problemet er å la gassignalet fra mottakeren gjennom Y-kabelen, den ene er koblet direkte til kontrolleren, den andre til multivisjonen. Men dette fungerer bare hvis du ikke bruker PPM. For PPM må dette søppelet behandles i kode.

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...