» elettronica » Arduino »Sistema di stabilizzazione degli aeromobili fatto in casa basato su Arduino

Sistema di stabilizzazione dell'aeromobile fatto in casa basato su Arduino


Di recente mi sono interessato al tema del modello di aereo. E poi è iniziato: ha costruito un aereo, comprato attrezzature. Anticipando la rapida scomparsa del primo modello senza allontanarsi dal botteghino, iniziò a raccogliere il secondo, mentre contemporaneamente lavorava nel simulatore. In generale, ho ritardato il mio primo vero volo, potendo temere di rompere in movimento il modello. E poi, quasi per caso, arando gli spazi aperti di aliexpress, mi sono imbattuto in una cosa interessante: il sistema di stabilizzazione del volo. Questo è un piccolo dispositivo delle dimensioni di un ricevitore che regola il volo di un aereo, rendendolo più fluido, levigando i difetti del pilota. Iniziato a cercare, leggere, dicono e davvero una buona cosa per i principianti. Bene, qui ho acceso - voglio e almeno tu ti spezzi. È solo che il budget si stava già esaurendo ... Sembrerebbe che l'aereo avrebbe costruito una domanda di 10 dollari nel soffitto, e comprasse attrezzature, comprasse una batteria, comprasse un caricabatterie, un motore, un regolatore, servi, eliche ... Insomma, succedono molte cose. Un po 'depresso, ma senza arrendermi, ho iniziato ad appassire la parte posteriore della mia testa: quindi, so come saldare. Iniziò a cercare e trovò quasi immediatamente un piccolo articolo intitolato "Il sistema di stabilizzazione dei velivoli per 200 rubli". Un piccolo articolo molto modesto con un'implementazione molto modesta. Ma questo è già qualcosa. È salito su forum stranieri - ed ecco, questo è un progetto enorme con uno sviluppo costante! È deciso, lo faremo!

Il progetto si chiama MultiWii. Inizialmente, è stato concepito come un controller di volo basato su multicotteri arduino, ma nel tempo ha iniziato a crescere e migliorare. Ora c'è un codice che ti permette di mettere questo sistema di stabilizzazione su velivoli e ali a V. Per l'esecuzione più semplice, come nell'articolo precedente, avrai bisogno solo di 2 cose: arduino e accelerometro. Tutto questo può essere saldato con fili, riempito con moccio caldo e funzionerà. Ma può e sarà, solo che non lavoro così.




E così, per la produzione di un dispositivo completo avrai bisogno di:

  • Arduino PRO Mini, 5V, Atmega 328
  • Modulo accelerometro a tre assi con giroscopio MPU-6050
  • Pettine
  • Un pezzo di pellicola di fibra di vetro, se fai da te la tavola.
  • Resistenza SMD 500-1500 Om
  • LED 3 mm qualsiasi.

Dagli strumenti:

  • Saldatore
  • saldare
  • Flusso (consiglio F5)
  • USB - Convertitore UART CP2102 o simile
  • Modello / clericale / coltello di montaggio per realizzare la custodia

Bene, le piccole cose, nastro biadesivo, forbici, bastoncini per le orecchie, pinzette, ciò che dovrebbe essere in servizio con il più giovane.

Come ho detto, il progetto sta crescendo e sviluppandosi. Quindi qui puoi avvitare un altro modulo Bluetooth per configurare il controller dal telefono, un barometro, per controllare l'altitudine, GPS per restituire il modello "home" quando il segnale viene perso. Inoltre, sta crescendo anche l'argomento dei ricevitori improvvisati basati sullo stesso arduino e un modulo di comunicazione economico A7105, che senza chirurgia interferisce con la mia attrezzatura FlySky i6, quindi in teoria puoi collegare questi due progetti e ottenere il cervello pieno per un aereo, un aliante o ali. E in un compartimento con le attrezzature di bilancio sopra menzionate, che è silenziosamente trasmesso da 6 canali a 14, questo generalmente risulta perfetto per un principiante per i suoi soldi.

Per questo motivo, ho cercato di rendere il circuito stampato per questo dispositivo il più semplice possibile, cioè unilaterale e con un ferro da stiro. Certo, saranno necessarie conoscenze in radioelettronica, almeno la capacità di saldare più o meno qualitativamente, è possibile ordinare una scheda e in casi estremi, ma in sostanza è un designer: ho cucito un arduino, saldato, il modulo e il pettine alla scheda, è pronto. Minimo sforzo.


Arduino



Per il firmware arduinka, avrai bisogno di uno speciale convertitore USB - UART (TTL), perché Arduino PRO Mini non ha un'interfaccia USB. Non dovresti aver paura di questo, di norma, puoi acquistarli nello stesso posto in cui sono venduti arduino e moduli. L'unica differenza nel firmware attraverso questo convertitore è che è necessario premere abilmente il pulsante di ripristino sull'arduino stesso rigorosamente al momento del download dello schizzo, anche se ci sono convertitori che tirano da soli il piede di ripristino. Non descriverò la procedura per caricare uno schizzo; ci sono già un milione di articoli e video su questo argomento scritti e girati.

pagamento



Il prossimo passo è fare la tavola. La scheda è realizzata con qualsiasi tecnologia disponibile o ordinata. Consiglio vivamente di strappare i binari, è meglio usare la lega ROSE o WOODA, quindi lo strato è il più piccolo possibile, le grandi correnti non vanno da queste parti, ed è meglio proteggere il rame da corrosione eccessiva, pioggia, neve, non si sa mai, non è ancora un dispositivo domestico. Ho fatto una LUT canaglia, non il miglior risultato, puoi fare molte cattive stampanti, ma chi se ne frega)



La prima cosa da saldare i ponticelli.



Dietro di loro c'è Arduino. Le gambe per il lampeggio di Arduinki devono essere saldate o angolate lateralmente. Puoi compilare subito lo schizzo, non puoi compilarlo, non importa, perché il dispositivo assemblato dovrà comunque essere collegato al computer, quindi i contatti di programmazione dovrebbero essere facilmente accessibili. L'unico consiglio è di controllare l'arduino prima di saldare, compilare qualsiasi schizzo di prova e assicurarsi che la scheda lampeggi. Solo saldatura quindi saranno emorroidi.



Bene e tutto il resto. L'accelerometro è saldato su gambe alte e si trova sopra l'arduino. Non nasconderò un peccato, ho spiato un tale layout su un forum straniero in una vendita, ma ho disegnato la mia sciarpa unilaterale. Per quanto mi riguarda, l'assenza di tre ponticelli non vale la pena con una tavola a doppia faccia, non importa quanto male sia la presenza di questi stessi ponticelli.




Un avvertimento. C'è una resistenza e un LED sulla scheda. Il formato SMD del resistore può essere eliminato da alcune apparecchiature rotte, il valore nominale di 500 Ohm - 1,5 kOhm. Puoi prendere un normale LED da 3mm, ne avevo uno rettangolare, l'ho saldato.


In questa fase, il dispositivo, in linea di principio, può già essere collegato e configurato, ma poiché mi sembra incompleto. elettronica per i modelli radiocomandati ha da tempo acquisito un carattere modulare. Pertanto, penso che questo dispositivo dovrebbe essere portato al modulo finito, che è facile da montare nel modello e connettersi. Per fare questo, ha bisogno di un caso. Una buona opzione sarebbe quella di stamparlo su una stampante 3D, la plastica utilizzata per la stampa è leggera e resistente. Ma non tutti ce l'hanno. Puoi realizzare il caso con la termoformatura, su Internet ci sono un sacco di informazioni su come realizzare una semplice macchina per questo da un aspirapolvere, legname e un pezzo di compensato. Ma per questo è necessario creare un blockhead, e questa è pigrizia. Su questo, ho preso la strada della minor resistenza. Sì, e un tale metodo sarà simile a questo articolo - per renderlo il più semplice possibile, usando un minimo di strumenti.


alloggiamento

Ho tagliato due pezzi di plastica in base alle dimensioni della tavola, nel mio caso in PVC trasparente sottile, ma puoi usare qualsiasi cosa, ad esempio una scatola da un disco. Non ho fatto foto intermedie, ma penso che sarà comunque chiaro.Usando un righello, ho misurato la distanza dai contatti sul tabellone e ho tagliato le finestre sulla parte superiore del "case". Ho praticato fori coassialmente con i fori sulla scheda e ho collegato tutto insieme a rivetti improvvisati dai tubi dei bastoncini. Per realizzare un tale rivetto, è sufficiente tenere delicatamente la punta del tubo nella fiamma dell'accendino e quando si forma un afflusso, premerlo contro il corpo di questo accendino. Sul retro, tagliamo i tubi lasciando un paio di millimetri e facciamo lo stesso. Come distanziatori utilizzati segmenti del tubo dal contagocce. Di conseguenza, è uscito un tale panino:




Facile da fare, leggero, semplice e affidabile. È già conveniente montarlo nella fusoliera dell'aeromobile incollando sul fondo un paio di strisce di nastro biadesivo "automobile". Ma per il quadro completo, hai ancora bisogno di una targhetta, che ti dirà in sei mesi, quando saranno già assemblati undici altri schemi, a cosa collegarti.




La targhetta stampata su carta lucida autoadesiva. Recentemente acquistato appositamente per tali scopi. In precedenza, ho fatto questo: ho stampato su quello che avevo, laminato con nastro adesivo e incollato su nastro biadesivo. Il più attento potrebbe valutare il mio livello di inglese)

Ora il dispositivo può davvero essere chiamato un modulo pronto. Il peso totale di 15,5 grammi. Troppo rispetto a quello acquistato, ma in generale, molto niente. Almeno il mio modello con una gamma di 950 mm tirerà senza problemi. Ma se insegui il peso, puoi dissaldare l'arduino dalla polvere sciolta direttamente sulla scheda, risparmiare 2 grammi, usare un textolite millimetrico sottile (ho usato quale, uno e mezzo o due millimetri, non ho misurato), non fare il caso. Ma vale quei 5 grammi? Ad esempio, il peso del ricevitore nativo dalla mia app è di 16 grammi.
Il dispositivo deve essere posizionato su un piano orizzontale, la freccia indica la direzione del movimento. Inoltre, il dispositivo non può essere installato capovolto. Per chiarezza, allego un'immagine.




Installazione, calibrazione

Ora vai alle impostazioni. Innanzitutto è necessario connettere il dispositivo al computer, quindi aprire l'interfaccia utente grafica allegata. Se non ci sono problemi con i driver, allora la porta dovrebbe apparire nel programma:




Lo selezioniamo Ora devi calibrare l'accelerometro. Premiamo il pulsante LEGGI e se tutto è corretto, possiamo osservare le letture dal sensore in tempo reale. Posiamo il dispositivo su una superficie piana e premiamo CALIB_ACC. Di solito una "superficie piana" è un tavolo vicino al computer, quindi quando si preme la calibrazione, tenere le mani lontano dal tavolo. Chi non ricorda, l'accelerometro è un sensore di accelerazione. Quindi eventuali vibrazioni o vibrazioni nella calibrazione non avranno un effetto positivo. Ma se possibile, è meglio calibrarlo su una superficie esposta al livello. Il giroscopio viene calibrato automaticamente ogni volta che viene acceso, quindi non è necessario calibrarlo. L'unica cosa è che quando si accende il modello dovrebbe essere fermo. Cioè, mettiamo il modello a terra, lo accendiamo e non lo tocchiamo. Il giroscopio viene calibrato immediatamente. La calibrazione è indicata da un LED firmato come STATUS.




Configurare immediatamente AUX1. Per lui è conveniente usare un interruttore a tre posizioni, se ce n'è uno sul trasmettitore. A un livello basso (l'interruttore è nella prima posizione), la stabilizzazione è disabilitata, a un livello medio (e posizione, rispettivamente), un accelerometro è acceso, e ad un livello alto, un giroscopio e un accelerometro. Per un volo normale, in linea di principio, è sufficiente un accelerometro, un giroscopio viene solitamente utilizzato per i voli FPV. Quale sarebbe come ho descritto - imposta i valori come mostrato qui:



Un po 'di altre impostazioni. PID - queste sono le impostazioni della stabilizzazione stessa. In breve:

  • P è il valore della forza correttiva applicata per riportare il modello nella posizione iniziale.
  • io È il periodo di tempo durante il quale vengono registrate e mediate le deviazioni angolari.
  • D - questa è la velocità con cui il modello tornerà alla sua posizione iniziale.




Ti consiglio di non toccare queste impostazioni prima del primo volo. La stabilizzazione funziona bene ai valori di base, bene, e lì puoi già stringere se qualcosa non ti soddisfa.

Avanti. TPA responsabile del valore di queste impostazioni PID in base alla posizione del gas. Con un valore di 0,00, i valori PID saranno gli stessi in qualsiasi posizione del gas, ovvero, come previsto, a qualsiasi velocità. Con un valore di 1,00 con un gas, il PID del 100% sarà zero, ovvero la stabilizzazione sarà disabilitata. Con un valore di 0,5 per 100% del gas, i pid saranno rispettivamente pari al 50%. Qui è già stato messo a punto per l'aereo e per il tuo stile acrobatico, finora ho lasciato il 50%.

Anche sul canale AUX2 è necessario configurare il rinforzo. Armare è un termine elicottero. Umanamente, questo si chiama sbloccare il motore. Sui velivoli, questo è di solito implementato attraverso apparecchiature di controllo, ma da allora Questo controller era originariamente elicottero - qui è stato fatto abbastanza difficile. In generale, appendiamo una sorta di interruttore a levetta gratuito su AUX2, nel programma impostiamo ARM su un livello elevato. Qui, qualcuno potrebbe voler imbrogliare e impostare lo sblocco a tutti i livelli di AUX2, ma non fallire. In questo caso, il multiviy si rifiuta di avviare il motore. Si può presumere che si tratti di un bug, ma penso che la protezione sia presto. L'aereo vola ancora solo in avanti, e solo Gods sa dove esploderà l'elicottero incontrollato.

A proposito, questo è effettivamente conveniente. In particolare, nella mia app, il motore viene sbloccato spostando l'interruttore a levetta verso l'alto. In questo caso, l'apparecchiatura deve essere accesa solo con tutti gli interruttori a levetta nella posizione superiore. Cioè, si scopre che è necessario accendere l'apparecchiatura, spostare l'interruttore a levetta verso il basso per bloccare il motore, quindi trasferirlo nuovamente su per sbloccare. E non puoi invertire la cosa principale. Immediatamente risulta umanamente, nella posizione superiore il motore è bloccato, nella parte inferiore sbloccata.




Nella scheda SERVO puoi invertire i servi se necessario. Qui lo hanno fatto in qualche modo complicato. Per prima cosa devi premere SERVO. Apparirà un elenco di servi e livelli. Se si preme il pulsante inverso ora e si tenta di salvare, nulla verrà salvato. Per prima cosa devi premere GO LIVE, dopodiché quando i bastoncini vengono respinti, sarà possibile osservare la deviazione di livello nella finestra. Ora premiamo il pulsante inverso del canale desiderato e successivamente premiamo SALVA. Ora tutto è stato registrato.




Un punto importante sulla disconnessione del dispositivo dal computer. Se si estraggono i fili di programmazione dal dispositivo o si estrae il convertitore dalla porta USB senza chiudere la porta COM o il programma MultiWiiConf, il sistema si arresterà in modo anomalo e la schermata blu avrà circa il 100% di probabilità. Almeno sul mio laptop lo è. Ho anche controllato in modo specifico. Non so se questo è un problema con il mio hardware o se reagisce è visibile alla porta COM virtuale, ma se viene avvisato, significa che è inserito. Tieni presente.

E alcune altre impostazioni che potrebbero tornare utili. Se il tuo ricevitore sa come emettere un segnale PPM, potresti volerlo trasmettere al multiview. Per fare ciò, apri il file del firmware, vai alla scheda config.h e cerca la sezione PPM Sum Reciver (glorificato Ctrl + F). Qui devi decommentare 2 righe. Chi non è in argomento, non commenta - questo significa rimuovere due barre all'inizio della riga. Era così:


// # definisce PPM_ON_THROTTLE


È diventato così:

#define PPM_ON_THROTTLE


È inoltre necessario decommentare una di queste righe, a seconda dell'hardware:

// # definisce SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Per Graupner / Spektrum
// # definisce SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Per Robe / Hitec / Futaba
// # definisce SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Per Multiplex
// # definisce SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // Per alcuni Hitec / Sanwa / Altri


Nel mio caso, questa è la seconda riga, dove si trova Futaba (per cosa ho le apparecchiature FlySky). Qui potrebbe essere necessario selezionare empiricamente, è possibile prescrivere da soli la sequenza desiderata. In un modo o nell'altro, non c'è nulla di complicato. Compiliamo lo schizzo e lo riempiamo con uno nuovo. Per tornare alla modalità normale, fare il contrario, commentare le righe, compilare, riempire. Voglio prestare attenzione, dopo aver ricaricato lo schizzo tutte le impostazioni e la calibrazione verranno abbattute, tienilo a mente.

Un altro problema comune che, a quanto ho capito, viene spesso riscontrato e non faccio eccezione.Dopo che tutti hanno assemblato e configurato, collegato tutti i volanti - il timone galleggia via. Le maniglie del telecomando erano a scatti - sembrava essere al suo posto, ma se l'aliante tremava un po '- galleggia di nuovo di lato, e con un'angolazione piuttosto seria. Viene trattato in modo elementare: nel programma GUI, imposta il valore YAW - I a zero. Il problema scompare subito.


Bene, il video funziona:


conclusione

In generale, se si ha esperienza nella produzione di circuiti stampati, il dispositivo viene assemblato in una sera. Ho già fatto personalmente le impostazioni di base per l'aereo nello schizzo, il resto ho descritto nell'articolo. Le informazioni dovevano essere raccolte in vari forum, principalmente stranieri. Tuttavia, do collegamenti a varie fonti che aiuteranno in caso di altri problemi, anche se non dovrebbero esserlo.

, da cui ho preso in prestito il fattore di forma del consiglio di amministrazione. Non offro di acquistare, ma l'argomento ha una guida dettagliata sulla configurazione del firmware in inglese. Vero per la vecchia versione del firmware, ma nella nuova tutto è quasi uguale. Esiste anche una modalità nella diramazione che consente di regolare le impostazioni PID in tempo reale tramite l'apparecchiatura di controllo del potenziometro.

. Ha il suo firmware riscritto personale, dicono che sia idealmente ottimizzato per gli aeroplani. Ma ancora una volta, la vecchia versione. Puoi provarlo, ma per la comparsa di problemi tecnici non descritti in questo articolo, non sono responsabile. Esistono molte descrizioni delle impostazioni.

. Ma le informazioni utili di base che sono descritte lì, vale a dire il trattamento del timone, ho già delineato. Tuttavia, non lo sai mai.

Il costo totale varia da 4-8 dollari, a seconda del prezzo acquistato dall'arduino e dal modulo, c'è un textolite a casa, c'è un programmatore? In ogni caso, questo è molte volte inferiore al valore di mercato da $ 20 per dispositivo con le stesse caratteristiche. Personalmente, mi è costato $ 2, uno stock di arduino per tali scopi è stato acquistato un anno fa, non c'era solo un modulo.

Nell'archivio allegato di seguito è riportato uno schizzo per arduino, un programma di installazione MultiWiiConf per diversi sistemi operativi, un file PCB (per aprire è necessario SprintLayout non meno della versione 6), nonché un PCB in formato PDF, per coloro che non hanno una stampante laser a casa ( necessità di stampare al 100%).


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

Buona fortuna a tutti nel tuo lavoro!
10
10
9.9

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
9 commento
Ospite Gennady
In generale, gli esperimenti non ebbero successo, l'arduinka si esaurì. Stiamo aspettando che uno nuovo dai fratelli cinesi continui.
L'autore
E la linea deve anche essere commentata, nella stessa sezione, sono nelle vicinanze.
L'autore
E come ti sei connesso al ricevitore, tramite PPM o canale per canale? Se canale per canale, allora devi trovare la sezione nello schizzo nella scheda conhig.h PPM Sum Reciver e commenta di nuovo sulla riga, leggi la fine dell'articolo. Se non funziona tramite PPM, controlla se hai dimenticato di cambiare l'apparecchiatura e il ricevitore in modalità PPM.
Ospite Gennady
Ciao. Assemblato, caricato uno schizzo in arduino, nel programma mostra deviazioni. Ma non riesco a collegarmi alle apparecchiature RC. I servi non funzionano, o piuttosto "sonaglio".
L'autore
Annulla l'iscrizione, se possibile, all'account del risultato, ha risolto il problema o meno. E se sì, come. Sarà utile ad altri lettori.
Valery K.
Grazie per la risposta Proverò un'altra versione. E so che questo non è pilota automatico. Ho bisogno di uno stabilizzatore di volo.
L'autore
Saluti. Dato che lo schizzo funziona al 100% e che le librerie sono integrate nello schizzo stesso, l'unica cosa che viene in mente è la vecchia o viceversa, una versione nuovissima Arduino IDE.Per qualche ragione, a volte con la versione "sbagliata" lo schizzo non viene compilato, è accaduto solo una volta, ma i forum spesso scrivono di questo problema. Non ricordo quale versione fosse quando l'ho raccolta, ma ora l'ho verificato, tutto compilato. Versione 1.8.6
Leggi anche le fonti allegate alla fine dell'articolo, forse qualcuno ha riscontrato anche un problema.
Post scriptum Questo non è un pilota automatico. Esiste anche un progetto di pilota automatico per arduino, cercare ardupilot.
Valery K.
Caro autore, ho messo insieme un pilota automatico per il tuo articolo. Ma quando il firmware non è avvenuto a causa della mancanza di completamento della compilazione del disegno. Chiedo aiuto, perché, sfortunatamente, non sono un programmatore. Di recente ho lavorato con Arduino e l'esperienza non è abbastanza, ma la caccia sta volando.
L'autore
Ho dimenticato di scrivere di un altro problema. Il motore si avvia solo se l'aeromobile è in posizione orizzontale. Può succedere che durante il volo, ad esempio, eseguirai un loop e per qualche motivo rimuoverai il gas a zero, potrebbe accadere per caso. Quindi, dopo questo, il motore potrebbe non avviarsi più. Il modo più semplice per risolvere il problema è lasciare che il segnale del gas dal ricevitore attraverso il cavo Y, uno sia collegato direttamente al controller, il secondo alla multivisione. Questo funziona solo se non si utilizza PPM. Per PPM, questo stipite deve essere trattato in codice.

Ti consigliamo di leggere:

Passalo per lo smartphone ...