BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Coassiale mixed controller con arduino (https://www.baronerosso.it/forum/circuiti-elettronici/207198-coassiale-mixed-controller-con-arduino.html)

catman 27 marzo 11 17:57

Coassiale mixed controller con arduino
 
Da tempo volevo imparare ad utilizzare arduino e derivati ma non ho mai trovato un progetto che mi catturasse.

Fin quando si rompe il mixed controller del mio elicottero coassiale un 3 canali revell l/ray, componente non in garanzia e che di fatto rende inutilizzabile l-elicottero. Questo funziona da ricevente, giroscopio, logica di controllo per i motori.

Secondo voi, sarebbe possibile lanciarsi in questa avventura e costruire con arduino, ardupilot, e vari shield, e controllare nuovamente il modello?

Il vero fine sarebbe programmare con arduino, ma se poi si alza in volo sarei pure contento.

Il modello in questione> birotore coassiale con due motori brusched controllati in tensione, il rotore di coda indipendente anche questo brushed, nessun servo (passo fisso), batteria lipo da 7,4 V.

In linea di principio si dovrebbe prendere una ricevente (ho una futaba FF9CP in TX) passare i 3 canali decodificati ad arduino che miscelerebbe i segnali da mandare ai motori con il valore di correzione del gyro (da rifare anche quello), controllare la diffrenze di velocit dei due motori, calibrare attravero una serie di tarature e test di volo questi valori.

Potete dirmi di che tipo di hardware ho bisogno ?

Grazie

Mrk89 27 marzo 11 18:38

Citazione:

Originalmente inviato da catman (Messaggio 2512957)
Da tempo volevo imparare ad utilizzare arduino e derivati ma non ho mai trovato un progetto che mi catturasse.

Fin quando si rompe il mixed controller del mio elicottero coassiale un 3 canali revell l/ray, componente non in garanzia e che di fatto rende inutilizzabile l-elicottero. Questo funziona da ricevente, giroscopio, logica di controllo per i motori.Sicuro che sul tuo coassiale ci sia il giroscopio??
Come mai si è rotto? Forse faresti prima a tentare di sistemare il guasto che costruire da capo, ma se il tuo intento è di imparare la programmazione allora ci può stare!

Secondo voi, sarebbe possibile lanciarsi in questa avventura e costruire con arduino, ardupilot, e vari shield, e controllare nuovamente il modello?
Si, anche abbastanza semplicemente

Il vero fine sarebbe programmare con arduino, ma se poi si alza in volo sarei pure contento.

Il modello in questione> birotore coassiale con due motori brusched controllati in tensione, il rotore di coda indipendente anche questo brushed, nessun servo (passo fisso), batteria lipo da 7,4 V.

In linea di principio si dovrebbe prendere una ricevente (ho una futaba FF9CP in TX) passare i 3 canali decodificati ad arduino che miscelerebbe i segnali da mandare ai motori con il valore di correzione del gyro (da rifare anche quello), controllare la diffrenze di velocit dei due motori, calibrare attravero una serie di tarature e test di volo questi valori.

Potete dirmi di che tipo di hardware ho bisogno ?
Sicuramente un Arduino:P Un giroscopio e dei MOSFET per pilotare i motori.
Grazie

Se riesci a scpiegarci come e perchè si è rotto, si potrebbero recuperare parti del circuito originale!! E' molto strano = IMPOSSIBILE che si siano rotti contemporaneamente stadio RF, giroscopio e di potenza.

Magari invia anche qualche foto della scheda.
Fare quello che vuoi fare tu non è complicato dal punto di vista logico, solo che non è proprio il progetto dal quale iniziare a sperimentare.:wink:

catman 27 marzo 11 21:40

Citazione:

Originalmente inviato da Mrk89 (Messaggio 2513022)
Se riesci a scpiegarci come e perchè si è rotto, si potrebbero recuperare parti del circuito originale!! E' molto strano = IMPOSSIBILE che si siano rotti contemporaneamente stadio RF, giroscopio e di potenza.

Magari invia anche qualche foto della scheda.
Fare quello che vuoi fare tu non è complicato dal punto di vista logico, solo che non è proprio il progetto dal quale iniziare a sperimentare.:wink:

il modello è questo L-Ray GSY Helicopter RTF | Revell-Shop è un modello con giroscopio, anche perchè era stabile di coda, poi smontandolo l'ho visto :lol:.

Lo avevo comprato da pochi giorni e girava benino quando in quota ho preso un angolo del muro , le pale si sono bloccate ed è caduto per terra diciamo da due metri e mezzo di altezza. Ovviamente si accendeva, poi davo gas e sentivo un rumore soffocato e le pale immobili, il rotore di coda era tutto ok. Ho contattato subito il negoziante che spedito all' assistenza di milano dopo tre mesi finalmente risponde che è la mixing board e che non è in garanzia, deve essere sostituita e ci vogliono più di 60 euro (vabbè pure io potevo cambiare la scheda). Li ringrazio, e do' l'ordine di rispedirmelo subito così com'era, a costo di vendermi i pezzi su e-bay non glielo lasciavo.

il modello prevede la scheda integrata che prende l'alimentazione dalla lipo (3,7 V non 7,4 come avevo detto prima) e gli unici spinotti di output sono i tre connettori per i motori; in pratica la scheda controlla tutto. Sicuramente non è tutta da buttare ma come faccio a capire dove si trova il difetto o bypassarlo senza gli schemi logici?

Questa settimana riprendo possesso del modello e posto una foto della scheda per scrupolo.
Prendo poi le misure di ingombro per capire quale arduino posso installare, cerco di capire il voltaggio, l'assorbimento dei motori, e cerco di capire di quali shield necessito. Magari per i mosfet vedo quali sono impiegati e se hanno un dissipatore; non userei gli stessi: se fosse proprio lì il problema?

Sicuramente posso trovare per 30 euro un modello estremamente simile, ma il bello sarebbe appunto ^_^ vincere il senso di impotenza di questo RTF e imparare la programmazione di un microcontroller.

Per volare c'è sempre il mio t-rex 500 :D

Mrk89 28 marzo 11 00:22

Ti ho chiesto perchè queste aziende poi le sparano grosse!!Magari era solo un problema di meccanica?!
Le pale giravano a vuoto? Il rumore di cui parli potrebbe essere il rumore del motore bloccato?

Attendiamo le foto.

Ci aggiorniamo

catman 30 marzo 11 17:24

foto scheda
 
5 Allegato/i
ecco le foto della scheda:

misura 44x25mm circa e in evidenza ho messo i mosfet, anche se devo dire che i motori non mi sembrano così esosi come potenza...

Ho scoperto che è un syma 9074 con brand revell me ne sono accorto smontando i motori che sono marchiati.

ad occhio e croce mi sembra che arduino fio sia la scelta migliore per le dimensioni.....ma ovviamente accetto consigli..........

Mrk89 01 aprile 11 14:51

Ciao, che problemi ti da esattamente l'ely?
Le pale, se le giri manualmente girano liberamente?

Inoltre, potresti scrivere le sigle degli integrati che sono montati sulla scheda?
In particolare l'integrato più grande al centro della scheda.

A dopo

catman 01 aprile 11 17:57

Citazione:

Originalmente inviato da Mrk89 (Messaggio 2521780)
Ciao, che problemi ti da esattamente l'ely?
Le pale, se le giri manualmente girano liberamente?

Inoltre, potresti scrivere le sigle degli integrati che sono montati sulla scheda?
In particolare l'integrato più grande al centro della scheda.

A dopo

I mosfet sono due ST : MRC D150 NH02L C921 sono le sigle


Meglio non toccare la storia del funzionamento perchè la scheda mi è ritornata non funzionante.........la scritta del tecnico ancora attaccata alla scatola dice "Centralina Bruciata, non riparabile, segni di caduta".......emerite c*****e, e i costi di riparazione ammontano a ........80 euro, cioè il prezzo del modello in negozio........
La scheda consegnata funzionava, si accendeva e sentivo anche qualcosa simile al segnale pwm per i motori inoltre il motore di coda era perfettamente funzionante. Ora è morta: inoltre in cina ho trovato per 10 euro + spedizione la centralina del Syma Double horse 9074 che è il vero nome di questo costoso Revell. Velo pietoso.......

Volevo chiederti un paio di cose: ho già abbozzato la logica di controllo (sapevo che mi sabbe tornato utile programmare lo Z80) e ho trovato queste difficoltà...

1) solo arduino Fio e pro , pro mini possono supportare alimentazione a 3,3 V?

2) Nello scegliere una variante hardware specifica ho necessità di avere molti pin analogici o per fare i pwm ai motori vanno bene anche i pin digitali? esempio per campionare i segnali dei potenziomentri dalla radio + gyro ho bisogno di 4 ingressi analogici che quindi saranno impegnati, 3 pin analogici mi servirebbero per uscita analogica ai motori ma non tutti i pin possono fare pwm; pro e mini hanno 8 ingressi mentre fio ne ha 14 mi pare; se devo generare un onda quadra con 4 valori forse anche i pin digitali vanno bene, boh? analogWrite () lo posso utilizzare sui pin digitali?

3) ho visto che esiste una libreria che mi consente di visualizzare sullo schermo il valore del segnale di un potenziometro campionato in digitale da Arduino. Quindi mi permette di capire che segnale manda il potenziomentro del canale 2 (che è zero in posizione centrale) per fare capire se è a desta o a sinistra; Cè un altro modo per saperlo? questa variabile è fondamentale nel mio abbozzo di programma per un output corretto.

Ho intenzione di procedere in questo modo:

scrivo il programma di gestione del birotore coassiale, utilizzo dei potenziometri collegati direttamente per fare delle prove di campionamento, collego i due motori direttamente ad Arduino sui pin pwm per vedere se la logica funziona (visto che i motori sono identici mi baserò sul rumore all'unisono o meno per capire se funziona) poi finalmente costruisco il circuito di potenza per tre motori. Il terzo più piccolino deve essere reversibile.

Sono veramente preso dalla cosa ...:lol:


Ciao
A presto

catman 01 aprile 11 18:04

Citazione:

Originalmente inviato da Mrk89 (Messaggio 2521780)
Ciao, che problemi ti da esattamente l'ely?
Le pale, se le giri manualmente girano liberamente?

Inoltre, potresti scrivere le sigle degli integrati che sono montati sulla scheda?
In particolare l'integrato più grande al centro della scheda.

A dopo


Ah scusa le pale girano bene senza motori, i mtori li ho smontati e vanno a scatti, mi sembra che sia normale perchè seguono i magneti.....

Mrk89 01 aprile 11 21:35

Praticamente ti hanno fottuto una centralina che andava bene? :o:
Mamma mia che stron:shutup:i!!

Come ti dicevo precedentemente, questo non è il tipo di progetto adatto a chi deve iniziare a programmare...

Il segnale di una radio per modellismo può essere PPM o PCM ( lasciamo perdere i 2.4Ghz per ora ), comunque, entrambi sono digitali.
Dalla ricevente ( segnale che interessa a te ) esce, per ogni canale un segnale digitale PWM ( livello basso = 0V; livello alto = tensione alimentazione ricevente = 5V ) ad una frequenza di 50Hz, con dutycicle variabile dal 5% al 10% ( quindi da un minimo di 1ms alto e 19ms basso, ad un massimo 2ms alto e 18ms basso ).
Tu leggendo la durata di questi impulsi sai in che posizione si trova lo stick della radio abbinato al canale letto.

Fissiamo:

canale 1 elevatore ( rotore in coda )
canale 2 timone ( variazione di rotazione differente dei due motori coassiali )
canale 3 motore ( variazione di rotazione uguale dei due motori coassiali )

All'interno del micro dovrai fare queste miscelazioni:

Uscita motore di coda = Canale 1 ( può essere utilizzato così com'è ).
Uscita motore coass 1 = (Canale 3 + Canale2*(costante) )
Uscita motore coass 2 = (Canale 3 - Canale2*(costante) )

questa costante dovrà essere scelta in base alla risposta dell'ely.

Il canale 2 prima di farlo entrare nel micro, deve passare dal giroscopio, per essere stabilizzato.

Se tutto non fosse abbastanza, devi creare i PWM per pilotare i MOS ( il segnale che mandi ai motori tramite i MOS, è un segnale PWM che varia dallo 0 al 100% ).

Come vedi la strada è lunga....

Fai pure domande se hai dubbi.:wink:

catman 01 aprile 11 22:59

Citazione:

Originalmente inviato da Mrk89 (Messaggio 2522460)
Praticamente ti hanno fottuto una centralina che andava bene? :o:
Mamma mia che stron:shutup:i!!

Come ti dicevo precedentemente, questo non è il tipo di progetto adatto a chi deve iniziare a programmare...

Il segnale di una radio per modellismo può essere PPM o PCM ( lasciamo perdere i 2.4Ghz per ora ), comunque, entrambi sono digitali.
Dalla ricevente ( segnale che interessa a te ) esce, per ogni canale un segnale digitale PWM ( livello basso = 0V; livello alto = tensione alimentazione ricevente = 5V ) ad una frequenza di 50Hz, con dutycicle variabile dal 5% al 10% ( quindi da un minimo di 1ms alto e 19ms basso, ad un massimo 2ms alto e 18ms basso ).
Tu leggendo la durata di questi impulsi sai in che posizione si trova lo stick della radio abbinato al canale letto.

Ma questa codifica non la fa già la ricevente? che poi manda i tre segnali 0, 3,3V, e quello varibile al servo? il pacchetto digitale in PPM non serve solo alla trasmissione seriale e poi decodificato in analogico?

Fissiamo:

canale 1 elevatore ( rotore in coda )
canale 2 timone ( variazione di rotazione differente dei due motori coassiali )
canale 3 motore ( variazione di rotazione uguale dei due motori coassiali )

All'interno del micro dovrai fare queste miscelazioni:

Uscita motore di coda = Canale 1 ( può essere utilizzato così com'è ).
Uscita motore coass 1 = (Canale 3 + Canale2*(costante) )
Uscita motore coass 2 = (Canale 3 - Canale2*(costante) )

questa costante dovrà essere scelta in base alla risposta dell'ely.

Il canale 2 prima di farlo entrare nel micro, deve passare dal giroscopio, per essere stabilizzato.

Se tutto non fosse abbastanza, devi creare i PWM per pilotare i MOS ( il segnale che mandi ai motori tramite i MOS, è un segnale PWM che varia dallo 0 al 100% ).

Come vedi la strada è lunga....

Fai pure domande se hai dubbi.:wink:

Io avevo abbozzato questo:


//memorizzo nelle variabili i valori dei pin


INT analogPin 0=A0 // Ch1 thrust
...................A1, CH2 L/R input, A3 Ch3 tail
INT analogPin4= A4 //gyro


// dichiaro le varibili
INT THR=0
ecc. , LR, L, R, Tail, Gyro, BLD1, BLD2 =0

//indico Vcc riferimento e pin alta/bassa impedenza
Void setup ()
....
analogReferece (defalut)
pinMode (a0.......a4, input)
pinMode (A5/ A9/ A10, output)
....

// leggo i valori dei canali
THR= analogRead (analogpin0)
LR=analogRead (analogpin2)

Per il cuore della miscelazione avrei pensato (semplificando senza giro per ora) a

IF LR> (valore analogico servo o digtale convertito) LR=R , L=0
BLD1=THR-L
BLD2=THR-R
(non sapevo di dovere considerare il gyro come coefficente del valore del canale)
In questo modo un rotore mantiene il segnale originale mentre l'altro diminuisce favorendo la risultante: consumo meno batteria e il tempo limitato del segnale non mi fa perdere portanza ...o no? Nel caso tuo aumenti di una quantià il rotore e diminuisci di uguale quantità l'altro: non è troppo?

poi mando in output i valori

analogWrite=(A6, BLD1)
analogWrite=(A9, BLD2)

segue altra if simmetrica se LR< (valore del potenziomentro)

è chiaro che poi a seconda della meccanica si deciderà se mantenere uguali i giri motore di entrambi sia conveniente o meno per l'equilibrio


Attendo ................


Tutti gli orari sono GMT +2. Adesso sono le 06:07.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002