Originalmente inviato da catman 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 Questi dovranno essere ingressi digitali e non analogici
// 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)Non ti serviranno canali analogici per quello discusso fin'ora
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 Il giroscopio fa continue correzioni sul canale del timone per mantenere la prua costante, quindi va messo prima del micro)
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?Se la portanza è data da motore 1 + motore 2, se diminuisci l'uno senza aumentare l'altro perdi quota, sei d'accordo?
poi mando in output i valori
analogWrite=(A6, BLD1)Anche questi devono essere segnali digitali, in particolare PWM variabili dallo 0% al 100%
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 Per correttezza bisognerebbe fare delle misure per capire come varia la portanza al variare delle due velocità, in questa maniera sarebbe tutto molto più preciso.
Attendo ................ |