170 likes | 429 Views
Realizzazione di una scheda di acquisizione dati da interfacciare ad un microprocessore ARM ed impiego della stessa per applicazioni mobili. Laureando: Relatori: Danilo Dalena Sergio Carrato Slim Hachani. Premessa. GE863-PRO3 (Telit): Processore GSM/GPRS quadband
E N D
Realizzazione di una scheda di acquisizione dati da interfacciare ad un microprocessore ARM ed impiego della stessa per applicazioni mobili Laureando: Relatori:Danilo Dalena Sergio Carrato Slim Hachani
Premessa GE863-PRO3 (Telit): • Processore GSM/GPRS quadband • Microcontrollore ARM9 AT91SAM9260: • 220 MIPS • Interfacce SPI, I2C, SD/MMC, USB,… • Sistema operativo Linux • 8/64 MB SDRAM + 4 MB Flash
Problema Sfruttare GE863-PRO3 per sviluppo di applicazioni quali: • Rilevazione del nord magnetico (Compass) • Realizzazione di un sistema di navigazione inerziale (INS)
Soluzione Usare sensori per rilevare: • Campo magnetico terrestre • Accelerazione di gravità • Accelerazione dinamica • Velocità angolare Compass INS
Sensor Board (1/3) Componenti scelti: • Campo magnetico Magnetometro HMC1052L (assi x e y) + HMC1051Z (asse z) • Accelerazione (statica + dinamica) Accelerometro ADXL330 (assi x, y e z) • Velocità angolare Giroscopio 3 x LISY300AL (asse z) • Convertitore analogico-digitale AD7718
Sensor Board (2/3) ADXL330 (x,y,z) LISY300AL (y) HMC1051Z (z) Connettore 26 pin LISY300AL (x) • AD7718: • ADC ΔΣ con • 10 ingressi • 24 bit di risol • interfaccia SPI HMC1051Z (x,y) LISY300AL (z)
Interfacciamento Adapter Board GE863-PRO3 Interface Board Motherboard
Linux O.S. Formato da: • Filesystem (JFFS2, contiene directory predefinite) • Linux kernel • gestisce processi, memoria e periferiche • dispone di moduli, cioè driver per uso di: • GPIO • SPI • SD/MMC
Acquisizione Si sviluppa applicativo in C che: • Riceve i dati dei sensori tramite bus SPI • Salva i dati su scheda SD Da analisi statistica dei dati si ricava: • Errore sistematico • Errore statistico
Accorgimenti Per ridurre: • Errore sistematico • calibrazione • Errore statistico • Riduzione banda segnale • Aumento tempo acquisizione dell’ADC • Filtro alpha-trimmed
Algoritmo Compass (1/2) Per rilevare nord magnetico, si ha θ= arctan (mY / mX) Sensor Board su piano xy Altrimenti tilt compensation (calcolo inclinazione Sensor Board)
Algoritmo Compass (2/2) θ = arctan (Y / X) X = mX·cos(φ) + mY·sin(φ) ·sin(ρ) - mZ·sin(φ) ·cos(ρ) Y = mY·cos(ρ) + mZ·sin(ρ)
Algoritmo INS (2/2) ωB(t) C(t) aG(t) = C(t) · aB(t) vG(t+δt) = vG(t) + δt· (aG(t) - gG) sG(t+δt) = sG(t) + δt· vG(t)
Risultati Algoritmo Compass: • OK, con precisione di ± 0.3° Algoritmo INS: • Errore crescente nel tempo, con drift di 5.5 m dopo 60 secondi
Conclusioni Per migliorare algoritmo INS