» elektronik » Arduino »Hemlagat flygstabiliseringssystem baserat på Arduino

Hemgjorda flygstabiliseringssystem baserat på Arduino


Nyligen blev jag intresserad av flygplansmodellen. Och sedan började det: han byggde ett flygplan, köpte utrustning. Han förutsåg att den första modellen snabbt skulle avgå utan att avgå från kontoret och började samla den andra, samtidigt som han arbetade i simulatorn. I allmänhet försenade jag min första riktiga flygning som jag kunde och var rädd för att gå sönder modellen. Och sedan, helt av misstag, plogar de öppna utrymmena för aliexpress, stötte jag på en intressant sak - flygstabiliseringssystemet. Detta är en liten enhet med stor mottagare som justerar flygningen för ett flygplan, vilket gör det jämnare och utjämnar pilotbrister. Började söka, läsa, säger de och verkligen bra för nybörjare. Tja, här sparkade jag upp - jag vill och åtminstone spricka dig. Det är bara så att budgeten redan var slut ... Det verkar som om planet skulle bygga en fråga om 10 dollar i taket, och köpa utrustning, köpa ett batteri, köpa en laddare för det, en motor, en regulator, servon, propeller ... Kort sagt, det händer en hel del saker. Lite deprimerad, men inte att ge upp, började jag vissna bakhuvudet: så jag vet lite hur man lodde. Han började söka och hittade nästan omedelbart en liten artikel med titeln "Flygstabiliseringssystemet för 200 rubel." En mycket blygsam liten artikel med en mycket blygsam implementering. Men det här är redan något. Han klättrade till utländska forum - och se och se, detta är ett enormt projekt med ständig utveckling! Det är beslutat, vi kommer att göra det!

Projektet heter MultiWii. Ursprungligen var det tänkt som en flygkontroll för multicopter baserad arduino, men med tiden började växa och förbättras. Nu finns det en kod som låter dig sätta detta stabiliseringssystem på flygplan och V-vingar. För den enklaste exekveringen, som i ovanstående artikel, behöver du bara två saker: arduino och accelerometer. Allt detta kan lödas med ledningar, fyllas med het snut och kommer att fungera. Men det kan och blir, bara jag fungerar inte så.




Och så, för tillverkning av en komplett enhet behöver du:

  • Arduino PRO Mini, 5V, Atmega 328
  • Treaxlad accelerometermodul med gyroskop MPU-6050
  • Kam pls
  • En bit foliefiberglas, om du själv gör brädet.
  • SMD-motstånd 500-1500 Om
  • LED 3 mm valfri.

Från verktygen:

  • Lödkolv
  • lod
  • Flux (jag rekommenderar F5)
  • USB - UART Converter CP2102 eller liknande
  • Modell / kontorist / monteringskniv för att tillverka fodralet

Tja, de små sakerna, dubbelsidig tejp, sax, öronpinnar, pincett, vad som ska vara i tjänst med de yngsta.

Som sagt växer och utvecklas projektet. Så här kan du skruva in en annan Bluetooth-modul för att konfigurera styrenheten från telefonen, en barometer, för att kontrollera höjden, GPS för att returnera modellen "hem" när signalen går förlorad. Utöver detta växer också ämnet improviserade mottagare baserat på samma arduino och en billig kommunikationsmodul A7105, vilket utan operation stör min FlySky i6-utrustning, så i teorin kan du ansluta dessa två projekt och få full hjärna för ett flygplan, en glidflygplan eller vingar. Och i ett fack med ovannämnda budgetutrustning, som tyst blinkas från 6 kanaler till 14, kommer detta i allmänhet ut perfekt för en nybörjare för sina pengar.

Av denna anledning försökte jag göra kretskortet för den här enheten så enkelt som möjligt, det vill säga ensidigt och med ett strykjärn. Naturligtvis kommer kunskap inom radioelektronik att behövas, åtminstone förmågan att löda mer eller mindre kvalitativt, du kan beställa ett bräde och i extrema fall, men i själva verket är det en designer: Jag sydde en arduino, lödde den, modulen och kammen till brädet, den är klar. Minsta ansträngning.


Arduino



För arduinka firmware behöver du en speciell USB - UART (TTL) omvandlare, eftersom Arduino PRO Mini har inte ett USB-gränssnitt. Du bör inte vara rädd för detta, som regel kan du köpa dem på samma plats där arduino och moduler säljs. Den enda skillnaden i firmware genom denna omvandlare är att du skickligt måste trycka på återställningsknappen på själva arduino när skissen laddas ner, även om det finns omvandlare som drar återställningsfoten själva. Jag kommer inte att beskriva proceduren för att ladda upp en skiss; det finns redan en miljon artiklar och videor om detta ämne skrivna och skottade.

betalning



Nästa steg är att göra styrelsen. Kortet tillverkas av all tillgänglig teknik eller beställs. Jag rekommenderar starkt att riva upp spåren, det är bättre att använda ROSE- eller WOODA-legering, så att skiktet är så litet som möjligt, stora strömmar går inte runt här, och det är bättre att skydda koppar från överdriven korrosion, regn, snö, du vet aldrig, det är fortfarande inte en hemanordning. Jag gjorde en skurk LUT, inte det bästa resultatet, du kan göra mycket dålig skrivare, men vem bryr sig)



Den första saken att löda hopparna.



Bakom dem är arduino. Benen för att blinka arduinki måste lödas upp eller vinklas i sidled. Du kan fylla i skissen direkt, du kan inte fylla i den, det spelar ingen roll, för den monterade enheten måste fortfarande vara ansluten till datorn, så programmeringskontakterna bör vara lättillgängliga. Det enda rådet är att kontrollera arduino innan lödning, fylla i någon testskiss och se till att kortet blinkar. Bara lödning då blir det hemorrojder.



Tja och allt annat. Accelerometern är löd på höga ben och är belägen ovanför arduino. Jag kommer inte att dölja en synd, jag spionerade en sådan layout på ett utländskt forum på ett sålt, men jag ritade min egen ensidiga halsduk. När det gäller mig är frånvaron av tre hoppare inte värt besväret med en dubbelsidig bräda, oavsett hur dålig form närvaron av samma hoppare inte beaktas.




En varning. Det finns ett motstånd och lysdiod på kortet. Motstånd SMD-format kan släppas ur viss trasig utrustning, det nominella värdet 500 ohm - 1,5 kOhm. Du kan ta en vanlig 3mm LED, jag hade en rektangulär, jag lödde den.


I detta skede kan enheten i princip redan anslutas och konfigureras, men som det verkar vara ofullständig. elektronik för radiostyrda modeller har länge förvärvat en modulär karaktär. Därför anser jag att den här enheten bör föras till den färdiga modulen, som är lätt att montera i modellen och ansluta. För att göra detta behöver han ett ärende. Ett bra alternativ skulle vara att skriva ut den på en 3D-skrivare, plasten som används för utskrift är lätt och hållbar. Men inte alla har det. Du kan göra fallet genom termoformning, på internet finns det massor av information om hur man gör en enkel maskin för detta från en dammsugare, timmer och en bit plywood. Men för detta måste du göra ett blockhead, och det här är lata. På detta tog jag vägen med minst motstånd. Ja, och en sådan metod kommer att likna den här artikeln - för att göra det så enkelt som möjligt med ett minimum av verktyg.


hölje

Jag klippte två stycken plast beroende på kortets storlek, i mitt fall tunn transparent PVC, men du kan använda vad som helst, till exempel en låda från en skiva. Jag tog inte mellanliggande foton, men jag tror att det kommer att bli klart ändå.Med hjälp av en linjal mätte jag avståndet till kontakterna på brädet och klippte fönster för dem på toppen av "fallet". Jag borrade hål koaxiellt med hålen på brädet och anslutit allt tillsammans med improviserade nitar från rören från öronpinnarna. För att göra en sådan nit är det tillräckligt att försiktigt hålla spetsen på röret i tändarens låga och när ett tillströmning bildas, tryck det mot denna tändare. På baksidan skär vi rören och lämnar ett par millimeter och gör samma sak. Som distanser användes segment av röret från dropparen. Som ett resultat kom en sådan smörgås ut:




Lätt att göra, lätt, enkelt och pålitligt. Det är redan bekvämt att montera det i flygplanets flygkropp genom att limma på botten ett par remsor av "bil" dubbel-sidigt tejp. Men för hela bilden behöver du fortfarande en typskylt, som kommer att berätta om ett halvt år, när redan elva andra scheman kommer att monteras, vad du ska ansluta till.




Märkskylten tryckt på självhäftande glansigt papper. Nyligen köpt specifikt för sådana ändamål. Tidigare gjorde jag det här: Jag tryckte på vad jag hade, laminerade med tejp och limmade den på dubbelsidig tejp. De mest uppmärksamma kunde utvärdera min nivå på engelska)

Nu kan enheten verkligen kallas en färdig modul. Den totala vikten på 15,5 gram. För mycket jämfört med det köpta, men i allmänhet, mycket ingenting. Åtminstone min modell med en räckvidd på 950mm kommer att dra utan problem. Men om du jagar vikten kan du lossa arduino från det lösa pulvret direkt på brädet, spara 2 gram, använda en tunn millimeter textolit (jag använde vilken, en och en halv eller två millimeter, inte mätte), gör inte saken. Men är det värt dessa 5 gram? Till exempel är den ursprungliga mottagarens vikt från min app 16 gram.
Enheten ska vara placerad i ett horisontellt plan, pilen indikerar rörelseriktningen. Enheten kan inte heller installeras upp och ner. För tydlighetens skull bifogar jag en bild.




Inställning, kalibrering

Gå nu till inställningarna. Först måste du ansluta enheten till datorn och sedan öppna det bifogade grafiska användargränssnittet. Om det inte finns några problem med drivrutinerna bör porten visas i programmet:




Vi väljer det. Nu måste du kalibrera accelerometern. Vi trycker på LÄS-knappen och om allt är korrekt kan vi observera avläsningarna från sensorn i realtid. Vi lägger enheten på en plan yta och trycker på CALIB_ACC. Vanligtvis är en "plan yta" ett bord nära datorn, så när du trycker på kalibreringen, håll händerna borta från bordet. Vem kommer inte ihåg att accelerometern är en accelerationssensor. Så alla vibrationer eller vibrationer i kalibreringen kommer inte att ha en positiv effekt. Men om möjligt är det bättre att kalibrera den på en yta som är utsatt för nivån. Gyroskopet kalibreras själv varje gång det slås på, så det behöver inte kalibreras. Det enda är att när du slår på modellen ska vara stillastående. Det vill säga, vi lägger modellen på marken, sätter på den och rör inte vid den. Gyroskopet kalibreras omedelbart. Kalibrering indikeras av en LED signerad som STATUS.




Konfigurera omedelbart AUX1. Det är bekvämt för honom att använda en trepositionsomkopplare, om det finns en på sändaren. På en låg nivå (omkopplaren är i det första läget), är stabilisering inaktiverad, på en genomsnittlig nivå (respektive position) är en accelerometer påslagen, och på en hög nivå, ett gyroskop och en accelerometer. För en normal flygning räcker i princip en accelerationsmätare, ett gyroskop används vanligtvis för FPV-flygningar. Vad skulle vara som jag beskrev - ställ in värdena som visas här:



Lite om andra inställningar. PID - det här är inställningarna för själva stabiliseringen. I ett nötskal:

  • P är värdet på den korrigerande kraft som appliceras för att återställa modellen till dess ursprungliga position.
  • jag Är den tidsperiod under vilken vinkelavvikelser registreras och i genomsnitt.
  • D - detta är hastigheten med vilken modellen kommer att återgå till sin ursprungliga position.




Jag råder dig att inte beröra dessa inställningar innan den första flygningen. Stabilisering fungerar bra vid grundläggande värden, ja, och där kan du redan strama åt om något inte passar dig.

Nästa. TPA ansvarar för värdet på dessa PID-inställningar beroende på gaspositionen. Vid ett värde av 0,00 kommer PID-värdena att vara desamma vid varje gasposition, det vill säga, som förväntat, med vilken hastighet som helst. Med ett värde på 1,00 med en gas kommer 100% PID att vara noll, det vill säga stabilisering avaktiveras. Vid ett värde av 0,5 per 100% av gasen kommer piderna att vara lika med 50%. Här är det redan anpassat för planet och för din aerobatiska stil, hittills har jag lämnat 50%.

Också på kanalen AUX2 du måste konfigurera armen. Beväpning är en kopterterm. Mänskligt kallas detta att låsa upp motorn. På flygplan implementeras detta vanligtvis via styrutrustning, men sedan Den här kontrollern var ursprungligen copter - här gjordes det ganska tufft. I allmänhet hänger vi någon slags gratis växelströmbrytare på AUX2, i programmet sätter vi ARM på en hög nivå. Här kanske någon vill fuska och ställa in upplåningen på alla nivåer av AUX2, men misslyckas bara inte. I detta fall vägrar multivägen alls att starta motorn. Det kan antas att detta är ett fel, men jag tror att skyddet snart är. Flygplanet flyger fortfarande bara framåt, och bara gudarna vet var den okontrollerade koptern kommer att explodera.

Förresten, detta är faktiskt bekvämt. I min app låses specifikt upp motorn genom att flytta vippbrytaren upp. I detta fall måste utrustningen vara påslagen bara med alla växelomkopplare i det övre läget. Det vill säga, det visar sig att du måste slå på utrustningen, flytta vippbrytaren ner för att blockera motorn och sedan överföra den igen för att låsa upp den. Och du kan inte invertera det viktigaste. Omedelbart visar det sig mänskligt, i det övre läget är motorn låst, i den nedre olåst.




På fliken SERVO- Du kan vända servon om det behövs. Här gjorde de det på något sätt intrikat. Först måste du trycka på SERVO. En lista över servon och nivåer visas. Om du trycker på bakåtknappen nu och försöker spara sparas ingenting. Först måste du trycka på GO LIVE, varefter det går att se nivåavvikelsen i fönstret när pinnarna avvisas. Nu trycker vi på bakåtknappen på önskad kanal och därefter trycker vi på SAVE. Nu har allt spelats in.




En viktig punkt när du kopplar bort enheten från datorn. Om du drar programmeringsledningarna ur enheten eller drar ut konverteraren från USB-porten utan att stänga COM-porten eller MultiWiiConf-programmet kommer systemet att krascha och den blå skärmen är ungefär 100% trolig. Åtminstone på min bärbara dator är det. Jag kontrollerade till och med specifikt. Jag vet inte om detta är ett problem med min hårdvara eller om den reagerar att den är synlig för den virtuella COM-porten, men om den varnas betyder det att den är beväpnad. Kom ihåg.

Och några ytterligare inställningar som kan komma till nytta. Om din mottagare vet hur man ska ge ut en PPM-signal kanske du vill överföra den till multiview. För att göra detta, öppna firmwarefilen, gå till fliken config.h och leta efter avsnittet PPM Sum Reciver (förhärligad Ctrl + F). Här måste du ta bort två rader. Vem som inte är med i ämnet, okommenterande - det betyder att ta bort två snedstreck i början av raden. Det var så här:


// # definier PPM_ON_THROTTLE


Det blev så:

# definiera PPM_ON_THROTTLE


Du måste också avmarkera en av dessa rader, beroende på hårdvaran:

// # definier SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // För Graupner / Spektrum
// # definiera SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // För Robe / Hitec / Futaba
// # definiera SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // För Multiplex
// # definiera SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // För vissa Hitec / Sanwa / Andra


I mitt fall är detta den andra raden, var är Futaba (vad har jag FlySky-utrustning till). Här kan det vara nödvändigt att välja empiriskt, det är möjligt att förskriva önskad sekvens själv. På ett eller annat sätt är det inget komplicerat med det. Vi sammanställer skissen och fyller den med en ny. För att återgå till normalt läge gör du motsatsen, kommenterar rader, sammanställer, fyller. Jag vill uppmärksamma, efter att ha laddat om skissen kommer alla inställningar och kalibrering att slås ner, ha detta i åtanke.

Ett annat vanligt problem som, som jag förstår det, ofta stöter på, och jag är inget undantag.När alla har monterats och konfigurerat, anslutit alla rattarna - rodret flyter bort. Handtagen på fjärrkontrollen ryckte - det verkade vara på plats, men om glidaren skakade lite - flyter den bort till sidan igen och i en ganska allvarlig vinkel. Det behandlas elementärt: ställ in värdet i GUI-programmet YAW - jag till noll. Problemet försvinner direkt.


Tja, videon fungerar:


slutsats

I allmänhet, om du har erfarenhet av tillverkning av kretskort, monteras enheten på en kväll. Jag har redan gjort de grundläggande inställningarna för planet själv i skissen, resten beskrev jag i artikeln. Information måste samlas in i olika forum, främst utländska. Ändå ger jag länkar till olika källor som kan hjälpa vid andra problem, även om de inte borde vara det.

, från vilken jag lånade styrelsens formfaktor. Jag erbjuder inte att köpa, men ämnet har en detaljerad guide om firmwarekonfigurationen på engelska. Sant för den gamla firmwareversionen, men i den nya är allt nästan detsamma. Det finns också ett läge i grenen som gör att du kan justera PID-inställningar i realtid genom styrenheten för potentiometern.

. Han har sin egen personliga omskrivna firmware, de säger att den är idealisk optimerad för flygplan. Men igen, den gamla versionen. Du kan prova det, men för utseendet på fel som inte beskrivs i den här artikeln är jag inte ansvarig. Det finns många beskrivningar av inställningar.

. Men den grundläggande användbara informationen som beskrivs där, nämligen behandlingen av rodret, har jag redan beskrivit. Du vet ändå aldrig.

Den totala kostnaden sträcker sig från 4-8 dollar, beroende på vilket pris arduino och modulen köptes, finns det en textolit hemma, finns det en programmerare. I vilket fall som helst är detta flera gånger mindre än marknadsvärdet från $ 20 per enhet med samma egenskaper. Personligen kostade det mig $ 2, ett lager av arduino för sådana ändamål köptes för ett år sedan, det fanns inte bara en modul.

I arkivet som bifogas nedan finns en skiss för arduino, MultiWiiConf installationsprogram för olika operativsystem, en kretskortfil (för att öppna behöver du SprintLayout inte mindre än version 6), samt ett tryckt kretskort i PDF-format, för de som inte har en laserskrivare hemma ( behöver skriva ut med 100%).


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

Lycka till alla i ditt arbete!
10
10
9.9

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
9 kommentar
Gäst Gennady
I allmänhet var experimenten misslyckade, arduinka brann ut. Vi väntar på att en ny från de kinesiska bröderna ska fortsätta.
Författaren
Och raden måste också kommenteras, i samma avsnitt är de i närheten.
Författaren
Och hur anslöt du till mottagaren, via PPM eller kanal-för-kanal? Om kanal-för-kanal, måste du hitta avsnittet i skissen på fliken conhig.h PPM Sum Reciver och kommentera tillbaka på raden, läs artikelns slut. Om det inte fungerar via PPM, kontrollera om du har glömt att byta utrustning och mottagare till PPM-läge.
Gäst Gennady
Hello. Samlade, laddat upp en skiss på arduino, i programmet visar avvikelser. Men jag kan inte ansluta till RC-utrustning. Servos fungerar inte, eller snarare "skralla".
Författaren
Avsluta, om möjligt, till resultatet för resultatet, har löst problemet eller inte. Och i så fall hur. Det kommer att vara användbart för andra läsare.
Valery K.
Tack för svaret. Jag kommer att prova en annan version. Och jag vet att detta inte är autopilot. Jag behöver en flygstabilisator.
Författaren
Hälsningar. Med tanke på att skissen fungerar 100% och biblioteken är inbyggda i själva skissen, är det enda som kommer att tänka på den gamla eller vice versa, en mycket ny version Arduino IDE.Av någon anledning, ibland med den "fel" versionen som skissen inte sammanställs, har det bara hänt en gång, men forum skriver ofta om ett sådant problem. Jag kommer inte ihåg vilken version som var när jag samlade den, men nu kontrollerade jag den, allt sammanställt. Version 1.8.6
Läs också källorna bifogade i slutet av artikeln, kanske någon också stött på ett problem.
P.S. Detta är inte en autopilot. Det finns också ett autopilotprojekt för arduino, leta efter ardupilot.
Valery K.
Kära författare, jag sätter ihop en autopilot för din artikel. Men när firmware inte skedde på grund av bristen på färdigställande av sammanställningen av skissen. Jag ber om hjälp, för tyvärr är jag inte programmerare. Jag har jobbat med arduino nyligen och erfarenhet räcker inte, men jakt flyger.
Författaren
Jag glömde att skriva om ett annat problem. Motorn startar endast om flygplanet är i horisontellt läge. Det kan hända att du till exempel gör en slinga under flygningen, och av någon anledning tar du bort gasen till noll, kan det hända av misstag. Så efter detta kanske motorn inte längre startar. Det enklaste sättet att lösa problemet är att låta gassignalen från mottagaren via Y-kabeln, en är ansluten direkt till styrenheten, den andra till multivisionen. Men detta fungerar bara om du inte använder PPM. För PPM måste detta skräppost behandlas i kod.

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...