Scheda acquisizione dati: 4 canali 12/16 bit per Raspberry

scheda acquisizione datiUn'altra! Dopo quella ad 1 canale e 12bit, ho realizzato un'altra scheda di acquisizione dati, decisamente più fornita; il tutto ruota attorno a due moduli (ADS1x15) venduti da Adafruit (in Italia da Robot Italy) che mettono a disposizione 4 ingressi single ended, campionabili da 128SPS a 3300kSPS con risoluzione di 12 o 16 bit, a seconda del modello; la comunicazione avviene tramite bus I2C (quindi sono facilmente collegabili anche ad un semplicissimo microcontrollore). Il modulo è praticamente pronto, l'unica aggiunta necessaria a chi desidera collegarlo al Raspberry è di Continua a leggere

Scheda acquisizione dati - Parte Software

E dopo aver realizzato la scheda di acquisizione dati, bisogna scrivere qualche riga di codice; Il programma deve:

  • Leggere il dato convertito, un bit dopo l'altro (comunicazione tipo seriale)
  • Unire tutti i singoli bit formando una parola da 12bit
  • Convertire la parola in un numero decimale
  • Moltiplicare il numero per un opportuno fattore di scala

Comunicazione via SPI

La comunicazione tra l'ADS7816 ed il Raspberry, avviene tramite bus SPI. Sono disponibili acquisizione dati via SPIvarie librerie (anche in python) per gestire la comunicazione in questa modalità, come la py-spidev; purtroppo tutte hanno documentazione quasi nulla, gli esempi in giro per la rete sono pochi e sempre con le stesse periferiche (MCP3008 o 3002), rendendo laborioso anche un po' di sano reverse engineering. Continua a leggere

Scheda acquisizione dati - Parte Hardware

Uno dei vari pregi del Raspberry, utilissimo per chi voglia sviluppare sistemi più o meno scheda acquisizione daticomplicati, è disporre dei bus I2C, SPI e UART, indispensabili se ci si vuole interfacciare a periferiche come memorie (ad esempio per le SD si usa l'I2C), convertitori od anche microcontrollori. Trovando un ADS7816 mi sono deciso a sviluppare qualcosa di più interessante rispetto a quanto fatto fin'ora: una scheda di acquisizione dati ad 1 canale (purtroppo il 7816 non ne mette di più a disposizione) e 12bit, che dialoghi con il Raspberry tramite SPI (supportato dal ADC in questione). Il tutto, per quanto misero sia al momento, servirà da base per il futuro (con un MCP3204 avrei 4 canali da 12 bit, e costa qualche dollaro anche al dettaglio); per ora voglio prendere un po' di dimestichezza e farmi un'idea dei principali problemi e delle prestazioni raggiungibili. Continua a leggere

Google Charts, CSV e grafici in tempo reale

grafico con google chartsNel poco tempo concessomi dalla sessione estiva, mi sono interrogato circa la possibilità di disporre sul blog di un grafico aggiornato in tempo reale (o quasi, a me basta ogni ora) con la temperatura del Raspberry. La cosa sembra abbastanza inutile (ed in effetti lo penso anche io >:( ) , ma l'applicazione è a solo fine di apprendimento: potrebbe diventare interessante qualora ci fosse qualcosa di più significativo da graficare (ad esempio se usassi il raspi come un datalogger in remoto).

Schema generale applicazione

Quello che voglio fare è: leggere la temperatura interna del processore del Raspberry (come già fatto varie volte), associarci data e ora e caricare il tutto su un grafico in una pagina del blog. Di per se non è difficile, ma richiede più di qualche passaggio: Continua a leggere

Automatic data upload with Curl - Raspberry PI

automatic data upload with curlOgni tanto è bello cambiare! Magari di poco, ma male non fa: appena finito di sistemare il Raspberry per caricare in automatico i dati con curlftpfs, ho provato un altro modo. Il primo faceva uso di curlftpfs: in parole povere creavo una cartella in locale, dove caricavo il file (che uno script php doveva interpretare) che veniva subito uploadato sul server. Soluzione molto elegante, che purtroppo mi aveva dato qualche problema in fase di scrittura (prima per la sintassi, poi per i permessi con mount ed infine per l'assenza della specifica _netdev...). Con curl è tutto più semplice e rapido, Continua a leggere

Lettura misura in remoto - Raspberry PI

misura temperaturaCominciamo con le cose serie... Mi ha sempre affascinato l'idea di interfacciare un po' di eletronica al computer, per controllarla ed acquisire qualche dato di interesse, ma non ho mai concluso niente per due motivi: la lunghezza e la complessità del programma che si interfaccia e dialoga con l'elettronica, ed il non sapere come maneggiare i dati acquisiti. Finalmente, complici il Raspberry ed il semplicissimo Python (sicuramente più del C o dell'assembly che mi impegnavano fino a qualche anno fa) qualcosa comincia a svilupparsi. Continua a leggere

Perchè accontentarsi? - Hackerare un termostato

termostato autonicsPuntuale come sempre, arriva insieme alla necessità di studiare, la voglia di chiudere i libri e smanettare... Così questa volta punto gli occhi sul termostato che avevo usato per il termovinificatore : effettivamente è un bel giocattolo (misura da -99°C a 199°C con un errore massimo di 1°C), ma così da solo mi sembra un po scarnetto: ad esempio con qualche aggiunta potrei tirarci su un termostato con datalogger USB! In pratica vorrei piazzarci solo un PIC (18F2550) che si occupi di convertirmi il segnale di temperatura (che varia di 1mV/°C) rubato da dentro il termostato (che continuerebbe a svolgere i suoi compiti) e lo mandi via USB (perché è inutile raccontarsela, la vecchia seriale è defunta) al PC. Continua a leggere