venerdì 30 settembre 2011

Sensore di assetto e posizione

Tra le applicazioni elettroniche da utilizzare a bordo dei veicoli, siano essi aerei, marini o terrestri, una di quelle che più mi affascina è relativa al campo dei sistemi di navigazione. Il cosiddetto Navigatore Satellitare è ormai considerato un accessorio indispensabile nel settore automobilistico, ma tante altre novità ci attendono!


In questo post vorrei fornirvi qualche aggiornamento sullo stato del progetto Sistemi Inerziali (che ho già introdotto nel blog qui) e fornire qualche dettaglio sull'architettura del sensore di assetto e posizione, un elemento centrale per i sistemi di navigazione.

Nella figura seguente trovate lo schema a blocchi del circuito:


Vediamo quali sono gli elementi principali del design:

  • Tre accelerometri MEMS analogici montati perpendicolarmente tra loro
  • Tre giroscopi MEMS analogici montati perpendicolarmente tra loro
  • Un Magnetometro Digitale Triassiale
  • Un convertitore A/D SigmaDelta a 16/24 bit AD7739
  • Un microcontrollore NXP LPC2129
  • Due generatori di Clock
  • Due sensori di temperatura
Premetto che i sensori MEMS sono disponibili in ampia scelta tra diversi costruttori e, solo per citarne alcuni, li troverete nel catalogo Analog Devices, ST Microelectronics o VTI, mentre per i sensori magnetici allo stato solido la scelta ricadrà quasi esclusivamente tra i sensori Honeywell.

Vediamo ora, per punti salienti, come funziona il nostro circuito:
  1. Fase di startup e inizializzazione - Il software caricato a bordo del microcontrollore LPC2129 provvede a configurare tutte le periferiche interne ed esterne
  2. Fase di allineamento della matrice di Coseni Direttori - La soluzione di assetto è rappresentata da una matrice 3x3 detta DCM (Direction Cosine Matrix) che deve essere inizializzata mediante l'allinemento con il vettore gravitazionale locale (allineamento al piano locale). Tale allineamento viene effettuato nei primi secondi di funzionamento utilizzando i dati forniti dagli accelerometri e dal magnetometro digitale. Durante la fase di allineamento il sensore deve essere tenuto stazionario.
  3. Fase operativa - Questa è la condizione di lavoro del sensore. Durante questa fase la soluzione di assetto viene costantemente aggiornata integrando i dati forniti dai giroscopi e aggiornando la DCM. Nel nostro prototipo tale integrazione avviene alla frequenza di 100Hz.
  4. Correzione degli errori - L'integrazione delle velocità angolari fornite dai giroscopi, comporta la presenza di alcuni errori quali: approssimazioni numeriche, bias dei giroscopi, errori di artogonalità, bias termici. Al fine rendere stabile nel lungo termine la soluzione di assetto si provvede a introdurre un anello di retroazione con i dati forniti dagli accelerometri, dai sensori magnetici e dal sensore GPS se presente. Tali dati saranno opportunamente filtrati (es. filtri ricorsivi, PID, Kalman, ecc.) e provvederanno a stimare e correggere gli errori accumulati nella DCM.
  5. Fase di output - In funzione dell'applicazione può essere necessario fornire la soluzione di assetto in termini di angoli euleriani (Roll, Pitch, Yaw - Heading), dati di velocità lineare e angolare, accelerazione, jerk, posizione rispetto al geoide WGS-84, ecc. Questa fase provvede a estrarre i dati nel formato desiderato ed a trasmetterli in uscita. Nel nostro prototipo l'uscita è costituita da una porta seriale RS232 la cui velocità è fissata in 115 Kbps. La frequenza di aggiornamento del pacchetto dati è, invece, di 25Hz.
Lo sviluppo di questo sensore vi consentirà di effettuare una moltitudine di esperimenti che vanno dalle applicazioni veicolari, alla robotica, al monitoraggio ambientale, alla realtà virtuale. A voi la scelta!

Qui Pianeta Terra, a presto.

Illimitate possibiltà!

"Endless Possibilities" questo era lo slogan con cui la Xilinx presentava le soluzioni basate sui propri System On Programmable Chip. Che cosa vuol dire?


(fare click per ingrandire)

Vuol dire che combinando il classico design HDL (Hardware Description Language) con uno o più microcontrollori programmabili in linguaggio Assembler o ANSI C, è possibile sviluppare una nuova categoria di progetti, i SoPC appunto, cioè sistemi elettronici completamente immersi in FPGA (Field Programmable Gate Array) ove hardware e firmware vengono sviluppati secondo una metodologia che, fin ora, era esclusivo appannaggio dei progetti software. In altre parole, oggi è possibile creare progetti hardware, interamente su chip, con la flessibilità tipica del software (es. upgrade, riconfigurazione, design personalizzato, open source, ecc.).
In un precedente post ho definito questa modalità "Hardware Liquido".

Vediamo come ho utilizzato questa tecnologia nelle fasi di prototipazione di un progetto di Autopilota, per emulare il comportamento di alcune superfici mobili controllate mediante motori passo-passo (per ulteriori dettagli sui motori passo-passo vedere qui).
Nella figura seguente vi riporto lo schema a blocchi del simulatore di superfici mobili:

(fare click sulla figura)

Come avrete notato tutto il progetto è integrato in un unico FPGA, (50% di utilizzo delle risorse) microprocessore compreso, e all'esterno sono necessari solo i traslatori di livello, i transistor di potenza per controllare le fasi dei motori e i display 7-Segmenti ...tutto il resto è software e potrete modificarlo secondo le vostre esigenze, ogni qual volta esse si manifestano!!! I blocchi funzionali (es. UART, GPIO, ecc.) vengono aggiunti in base alle necessità e poi non resta che scrivere il programma che li utilizzarà.
Nelle figure seguenti sono riportati alcuni screen shot ripresi durante le fasi di sviluppo in cui è possibile visualizzare il blocchi funzionali (IP) da inserire nel progetto e il codice ANSI C che verrà eseguito dal microprocessore.








Semplice ed efficace, non vi pare? Mai più tagliare piste o aggiungere fili, oggi si riprogramma il chip!

Qui Pianeta Terra, a presto.

lunedì 12 settembre 2011

Una sana alimentazione - Parte 2

Oggi voglio mostrarvi un circuito di alimentazione che potrete realizzare per i Vostri progetti elettronici digitali. La figura seguente mostra il prototipo utilizzato per le prove in laboratorio:

(Alimentatore da 5,0V e 3,3V 1A, a partire da una tensione Vin di 9-30V)
 
In un precedente post, che trovate qui, ho illustrato alcuni vantaggi e svantaggi degli alimentatori lineari, mentre ora è il momento di introdurre gli alimentatori a commutazione, detti anche switch-mode o switching.
Per fare ciò, prendiamo in considerazione un circuito integrato che ha fatto la storia di una particolare categoria di regolatori; il circuito è LM2575 nelle due varianti  con preset da 5,0V e 3,3V, la categoria è quella degli step-down ovvero circuiti che possono convertire una tensione continua da un valore di ingresso Vin ad un valore di uscita Vout, regolato e stabilizzato, tale per cui Vout<Vin. Analogamente, i regolatori step-up, sono ingrado di fornire una tensione Vout>Vin, cioè sono degli elevatori di tensione.
Nella figura seguente trovate lo schema applicativo standard suggerito dal data-sheet del componente, mentre il link sotto la figura vi porterà direttamente nella pagina della casa che lo produce.


Avete già montato il vostro prototipo?
No? Occore mezz'ora ...al massimo!

Si? Benissimo, andiamo a misurare le tensioni di uscita. Dovremo leggere sul nostro multimetro i valori 5,0V +/- 2% e 3,3V +/- 2%. Poi, con l'aiuto di un oscilloscopio visualizziamo l'andamento temporale delle tensioni in uscita, che dovranno somigliare alla seguente figura:

(I due canali per le tensioni di 5 e 3,3V sono predisposti in AC e 50mV/Divisione)

Ok, funziona tutto, ma "sorpresa" ecco il punto debole dei regolatori switching: essi tendono ad introdurre del rumore nei circuiti a valle. Rumore che generalmente ha un contenuto armonico centrato sulla frequenza dell'oscillatore interno (nel nostro caso vediamo che è visibile un pattern a 52KHz). Tale rumore dovrà essere filtrato opportunamente, pena ritrovarlo su tutti i segnali del circuito a valle che si intende alimentare.

Ma allora perché li usiamo se hanno prestazioni inferiori ai regolatori lineari che risultano anche più semplici dal punto di vista del circuito applicativo?
Perché i regolatori SW hanno un pregio che li rende unici: l'efficienza di conversione è molto elevata  (77% TYP per LM2575-5.0, 88% TYP per LM2575-12) e può, in alcuni componenti, raggiungere e superare anche il 95%. Ciò significa che per differenziali di tensione elevati (Vin-Vout) la dissipazione di energia sul regolatore è minima, mentre con i regolatori lineari si avrebbero grandi problemi costruttivi e dispendiosi sistemi di raffreddamento, oltre a trasformare le nostre applicazioni in vere e proprie stufe elettriche, con un inutile quanto dannoso, spreco di energia.

Questo semplice ed efficiente circuito non può mancare nel vostro laboratorio.

Qui Pianeta Terra, a presto.