Go Down

Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo (Read 132 times) previous topic - next topic

lesto

la sinusoide ha una frequenza, ovvero il numero di ripetizioni al secondo (vedi nel datasheet) e se te fai la media dei dati in quel range di tempo annulli l'effetto sinusoidale.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

samu_87


la sinusoide ha una frequenza, ovvero il numero di ripetizioni al secondo (vedi nel datasheet) e se te fai la media dei dati in quel range di tempo annulli l'effetto sinusoidale.


Nel datasheet http://www.cdiweb.com/datasheets/invensense/PS-MPU-6000A.pdf ho trovato questo:

"11.4.3 Trace Routing 
Routing traces or vias under the gyro package such that they run under the exposed die pad is prohibited.
Routed active signals may harmonically couple with the gyro MEMS devices, compromising gyro response.
These devices are designed with the drive frequencies as follows: X = 33±3Khz, Y = 30±3Khz, and
Z=27±3Khz. To avoid harmonic coupling don't route active signals in non-shielded signal planes directly
below, or above the gyro package. Note: For best performance, design a ground plane under the e-pad to
reduce PCB signal noise from the board on which the gyro device is mounted. If the gyro device is stacked
under an adjacent PCB board, design a ground plane directly above the gyro device to shield active signals
from the adjacent PCB board."

Che dovrebbe corrispondere appunto al discorso del segnale sinusoidale giusto? Quindi facendo il valore medio di ogni spezzone a 33Khz dovrei eliminare il disturbo del quale lamento, quindi ogni 30 microsecondi faccio la media dei valori e il valore che andrò ad inserire nel PID è proprio la media, e poi azzero la media e riparte dal primo valore successivo ai 30 microsecondi?

Fabio_automatico

#1302
Mar 17, 2013, 12:08 am Last Edit: Mar 17, 2013, 12:10 am by Fabio_automatico Reason: 1
Ragazzi dopo mesi di tentativi e letture sono ancora arenato non riesco a capire come diavolo funziona questa STM32F3 i problemi sono molteplici:
1) Nell'IDE uKeil non riesco a complilare progetti complessi ma solo progetti stupidi come accendere luci o simili perchè il compiler mi da sempre problemi nell'includere la libreria della ST
2) Non capisco come leggere i dati dei sensori, mi riferisco a velocità angolari, valori acc. e valori del campo magnetico.
3) utilizzo dei timer per realizzare dei segnali PPM

Premetto che c'ho perso tempo tanto tempo anche se in parallelo approfondivo i miei studi di Kalman, tecniche di controllo etc etc. ho praticamente progettato tutto ma la mia poca esperienza in ambito PIC mi sta bloccando.
C'è qualche buona anima che può aiutarmi anche inviandomi del codice ben documentato che mi spieghi come diavolo si programma sta scheda.
Grazie mille Fabio
P.s. sono uno studente di automazione quindi i controlli sono il mio pane quotidiano ma questo non significa che sono un esperto di programmazione e protocolli per questo vi pregherei di non usare terminologia troppo tecnica

lesto

per il 2 c'è un ottimo esemio fornito sul sito.. però se non conosci i2c e SPI ti conviene prima farti un'idea osservando come si usano i sensori i2c e SPI su arduino, capisci la logica di comunicazione, e poi passi al STM32.

Per la prima domanda mai usato quell'ambiente, e per l'ultima non so, devo ancora passare ad analizzare i timer, ma anche lì tutti gli esempi SMT usano una funzione che setta il timer principale ad una certa frequenza, io modificando quel valore ottengo un iterrupt ogni microsecondo, però non mi piace come cosa, preferirei andare sul PWM con giusta frequenza e dutyCicle.



sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

astrobeed


1) Nell'IDE uKeil non riesco a complilare progetti complessi ma solo progetti stupidi come accendere luci o simili perchè il compiler mi da sempre problemi nell'includere la libreria della ST
2) Non capisco come leggere i dati dei sensori, mi riferisco a velocità angolari, valori acc. e valori del campo magnetico.
3) utilizzo dei timer per realizzare dei segnali PPM


1) Devi copiare nella cartella principale del compilatore (C:\keil se hai fatto l'installazione standard) le cartelle "Libraries", "Peripheral_Examples" e "Utilities" che trovi nel sorgente del demo precaricato sulla scheda, in alternativa le puoi copiare all'interno del progetto, assieme alla cartella CMSIS se la usi, e cambi i percorsi delle relative path.

2) Ci sono le funzioni già pronte nella libreria di ST, comunque sono normali device I2C e vi accedi tramite questo bus.

3) Il PPM non lo generi tramite timer, va implementato tramite specifica routine software che si appoggia ad un timer, e relativo interrupt, come base dei tempi sia per generare i singoli impulsi che per il frame.

Go Up