CubeX prototyping – i sensori e le varie periferiche

Inizialmente durante i vari “brainstorming” riguardo alla realizzazione del CubeX  pensai di aggiungere un accelerometro per aiutarmi in certi casi nella navigazione del menù oppure per aggiungere nuove possibilità di comando/gestione del CubeX. Poi però mi sono chiesto: “ma se posso aggiungere un accelerometro, perchè non aggiungere anche un magnetometro? e magari un barometro? e perchè non sensore di temperatura? magari anche un Real Time Clock? 😀 “

Visto che il CubeX non ha ancora uno scopo preciso, ma nasce con l’intento di creare una base di partenza, un tool di sviluppo per un possibile progetto futuro, l’idea di sperimentare con l’utilizzo di quanti più sensori possibili mi ha sempre emozionato!

Visto il crescere del numero di sensori, ho pensato di utilizzare unicamente sensori e dispositivi interfacciabili tramite bus I2C (per chi non ha la minima idea di cosa stia parlando, rimando a wikipedia) così da interfacciare tutti i sensori, dispositivi utilizzando solamente due linee dati, ovvero solamente due connessioni con il microcontrollore (il master) mentre tutti i vari dispositivi (gli slaves) saranno connessi in parallelo:

1) Come già detto, il primo candidato a diventare parte integrante del CubeX è stato l’accelerometro, per la precisione l’MMA8451Q della Freescale (ex Motorola), un accelerometro a tre assi da 14bit, interrupt multipli, rilevazione di caduta libera e cambio di orientamento, e molto altro ancora. Insomma un dispositivo bellino bellino, tutto da scoprire!

2) Il secondo device in lista per il CubeX è il magnetometro della Freescale MAG3110 che andrebbe a lavorare a fianco dell’accelerometro per rilevare con più precisione i movimenti del CubeX e perchè no, sviluppare una bussola elettronica non sarebbe proprio male 😀

3) L’ultimo arrivato in casa Freescale è il precisissimo sensore di pressione MPL3115A2, con il convertitore analogico/digitale a 24bit è possibile utilizzarlo come altimetro di precisione con una risoluzione fino a 30cm ! Quindi perché non utilizzarlo assieme al CubeX ?

4) Anche la gestione della data e dell’ora è un punto fondamentale nei dispositivi elettronici come il CubeX, è per questo che ho scelto di utilizzare un RTC (RealTimeClock) della Maxim, più precisamente il DS3231. In particolare si tratta di un RTC molto accurato con un sensore di temperatura interno per l’autocompensazione. Inoltre anche se a scapito delle dimensioni poco ridotte, il DS3231 non necessita del classico quarzo esterno da 32,768 kHz.

5) Per vari motivi ho scartato l’idea di utilizzare un sistema per il salvataggio dei dati su SDcard ed invece ho optato per una semplice memoria eeprom della Microchip, la memoria eeprom 24FC1026 mi permette di poter aver a disposizione fino a 128KBytes dove salvare impostazioni, log vari, etc… Inoltre utilizza anche lei il bus I2C, quindi potrà essere interfacciata al microcontrollore assieme alle altre periferiche.

6) Anche se lo descrivo per ultimo, non significa che sia meno importante e soprattutto meno “cool” 😀 ! Si tratta del sensore di temperatura senza contatto ad infrarossi della Texas Instruments. Con un package di soli 1,6×1,6mm il TMP006 permette la lettura della temperatura dell’oggetto che si trova sopra di lui solamente rilevando le radiazioni di raggi IR che lo stesso oggetto emette.

La mia idea è di utilizzarla nel retro del PCB per monitorare la temperatura della batteria al litio durante la fase di carica. Ugualmente potrebbe essere utilizzato per controllare la temperatura del case che conterrà il CubeX. L’unico “problema” visto le sue dimensioni sarà saldarlo:

……………………………………………………………………………………………………………………………………………………….

Oltre che a scegliere i vari dispositivi, bisogna anche testarli. Quindi mi sono creato una piccola scheda per effettuare i primi test:

successivamente ho prestagnato il PCB e saldato i vari sensori. Nella foto successiva si può vedere il barometro MPL3115A2 in primo piano, mentre nella parte superiore c’è l’accelerometro MMA8451Q. Più piccolino sulla sinistra c’è il magnetometro MAG3110 mentre sulla destra il più piccolo di tutti con 1,6mm per lato, è il sensore di temperatura all’infrarosso TMP006.

Ora non ci resta che collegare in parallelo tutti i sensori e fornire l’alimentazione ad ognuno:

I primi test di comunicazione con i vari dispositivi tramite il bus I2C ha dato esiti positivi. Ogni sensore/periferica ha un proprio indirizzo, quindi prima di iniziare una comunicazione attraverso il bus I2C bisogna scegliere la periferica con cui si vuole dialogare semplicemente inviando l’indirizzo tramite protocollo I2C.

A breve inserirò qualche video per mostrare il funzionamento di questa schedina di test!