venerdì 13 dicembre 2013

L'elettronica di Arduino nelle scuole

Perché bisognerebbe insegnare l'elettronica in tutte le scuole e incoraggiare gli studenti a costruire oggetti interattivi con schede come Arduino?
Sono convinto che la cultura passiva e strutturata sarà sempre più rifiutata dai giovani. Questo perché l'approfondimento culturale sarà sempre più finalizzato alle necessità del momento, quindi limitato nel tempo e fruito attraverso la Rete che dispone di contenuti per tutte le esigenze. Questo scenario potrebbe essere la morte della Scuola, almeno per come la conosciamo adesso. Una via di uscita potrebbe essere l'educazione alla creatività, nel senso più esteso del termine. Voglio dire che la Scuola potrebbe stimolare gli studenti a creare non solo con la mente (la composizione letteraria) ma anche con le mani. L'elettronica facilitata con strumenti come Arduino (ma ne esistono altri simili) consente di estendere di molto il campo delle vecchie "applicazioni tecniche", materia che come sappiamo viene limitata solo ad alcune classi e lasciata alla buona volontà dell'insegnante.
A tutti i livelli, partendo dalla secondaria inferiore, è possibile introdurre i ragazzi all'elettronica di Arduino, in modo tale che l'obiettivo di costruire un oggetto interattivo sia il motore per approfondire gli argomenti via via più complessi.

domenica 17 novembre 2013

Un Convegno per cambiare Milano. Il volontariato al servizio della città


CISE2007 e GREEM a Convegno assieme ai rappresentanti delle istituzioni cittadine. Il 30 novembre 2013, presso l'Acquario civico di Milano, verrà presentato il progetto ARETHA, come opportunità di fare cose concrete che hanno a che fare con la scienza, i giovani, la solidarietà e il lavoro di gruppo che attraversa le generazioni.
Tutte le informazioni su www.meteoenergia.it/aretha/index_aretha.htm


lunedì 5 agosto 2013

I tre pezzi di base del GPS funzionano!!

Sono riuscito a far funzionare il modulo GPS assieme ad Arduino, alla bussola elettronica LSM303 e al display a colori della Sparkfun. Infatti prima di andare avanti con il progetto, volevo essere sicuro che tutti i collegamenti tra questi moduli non si disturbassero a vicenda. Invece sembra proprio che i vari pezzi di hardware funzionino. Come si vede dalla figura, il modulo GPS rileva le coordinate geografiche e le spedisce al display (assieme all'altezza e altri parametri legati ai satelliti). La bussola elettronica, che è compensata rispetto ad eventuali sue rotazioni, invia a sua volta al display  la direzione rispetto al N.


giovedì 25 luglio 2013

Esperimenti con il GPS fai da te

Tutti hanno sentito parlare almeno una volta del sistema GPS, quello cioè alla base dei navigatori che abbiamo in auto. Pochi sanno però come funziona e come è possibile costruirsi dispositivi che realizzino altre funzioni, meno commerciali e più orientate ai nostri hobby. Per questo motivo ho iniziato a fare alcuni esperimenti con lo shield GPS venduto da Adafruit Industries accoppiato con la board Arduino UNO. Il ricevitore GPS incorporato nello Shield ci permette di elaborare i dati grezzi prodotti dal sistema dei satelliti GPS. La libreria di programmi, fornita free da Adafruit, facilita il compito di interpretazione di questi dati. In poche parole la scheda è in grado di fornire ogni secondo i seguenti dati principali:
latitudine, longitudine, altezza s.l.m., data/ora, velocità, tutto relativo alla posizione della scheda stessa.  Inoltre la scheda è in grado di memorizzare su micro SD card tutti i dati, che possono poi essere letti ed elaborati con un normale foglio excel.
Il mio primo esperimento, dopo aver perso un po' di tempo con il software di esempio fornito dalla ditta, è stato quello di fare un giro con la mia auto intorno a casa, portandomi dietro il GPS alimentato da una batteria e con la sua antenna per esterni attaccata al tetto. I dati raccolti mi sono serviti per fare un file excel che ho poi convertito nel formato usato da Google Earth, il KML. Per questa conversione è utilissimo e facile da usare il sito:
earthpoint.us
Una volta ottenuto il file KML, se avete installato il client Google Earth sul vostro PC, non rimane che cliccarci sopra e ottenere questo:

Le prossime cose che cercherò di fare sono:

  • accoppiamento di una bussola elettronica compensata per l'inclinazione;
  • programma per il calcolo della distanza e direzione dalla posizione corrente ad una pre-impostata.

giovedì 13 giugno 2013

Misurare la temperatura al sole

Cosa vuol dire misurare la temperatura al sole??
Di solito quello che si vuole misurare è la temperatura dell'aria in un ambiente esposto al sole.
Qualsiasi termometro, elettrico a mercurio o altro, misura la temperatura di se stesso. I termometri sono fatti di materiale solido, che deve assumere la stessa temperatura dell'aria in cui è immerso. Al Sole, però, i corpi solidi, a seconda di come sono fatti, assorbono in minor o maggior misura l'energia radiante proveniente dal Sole, portandosi quindi ad una temperatura che può essere molto diversa da quella dell'aria circostante. Per questo motivo, un qualsiasi sensore di temperatura deve essere schermato dalla radiazione solare affinché si porti alla stessa temperatura dell'aria. Ma anche lo schermo è fatto di materiale solido che assorbe la radiazione solare e quindi può alterare la temperatura dell'aria circostante.
Il problema non è banale. I meteorologi hanno inventato la "capannina" e altre tipologie di schermi. Vedi a questo proposito il mio post http://paolometeo.blogspot.it/2013/02/capannina-meteo-economica.html.
In questo post voglio riportare i risultati di un esperimento realizzato con diversi tipi di schermo applicato a sensori elettronici di temperatura.  Il sensore usato è il noto DS18B20 visibile in figura.  Come si può notare il suo involucro, con cui esce dalla fabbrica è nero. Se esponiamo al Sole questo sensore, senza protezione nè schermo, la sua temperatura può raggiungere valori anche di dieci gradi più alti della temperatura dell'aria, con scarso vento. Il movimento dell'aria attorno al sensore è un fattore che influenza senz'altro la temperatura che esso misura, infatti l'aria in movimento è un buon conduttore di calore, al contrario di quella ferma, e quindi riduce la differenza tra le temperature del sensore e dell'aria.
Un certo miglioramento si ha ricoprendo il sensore con uno strato di silicone bianco, che ha il potere di riflettere la radiazione solare e isolare elettricamente i terminali del chip. Anche così il sensore assorbe una certa quantità di radiazione e inoltre la possibilità di sporcarsi può cambiare drasticamente il potere riflettente del silicone. Uno schermo che faccia ombra al sensore, permettendo al contempo all'aria di circolargli intorno, è quindi l'unica soluzione.
Per certe applicazioni è necessario fare misure di temperatura in spazi ristretti. Quindi anche lo schermo deve essere piccolo.  Una di queste applicazioni è il pannello solare ARETHA 
http://paolometeo.blogspot.it/2013/03/misura-e-controllo-di-un-pannello.html. In questo pannello si è reso necessario misurare la temperatura dell'aria all'interno, sotto la finestra di policarbonato, quindi  sotto i raggi solari.
Questi sono gli ultimi risultati di alcune prove che ho fatto mettendo al sole e all’ombra, tre tipi di schermatura diversi e confrontando le letture con una misura di un termometro ventilato al mercurio, con precisione 0.5 °C.
I tre sensori sono stati esposti al sole con:
S14        un tettuccio in alluminio;
S6          senza niente (sensore ricoperto da silicone
              bianco pulito);
S13        capannina meteo;
Hg          termometro a mercurio ventilato.
All’inizio tutti i sensori sono stati tenuti all’ombra e hanno presentato scarti entro 0,2 °C  tra loro e entro 0.3 con il termometro a mercurio

S14  = 29.7;  S6 = 29.6; S13 = 29.8; Hg = 29.5 


Esposti circa 15 minuti al sole delle ore 15:35, hanno dato i seguenti risultati:
S14 = 31.3; S6 =  32.4; S13= 31.4; Hg = 30.0





Nelle foto qui accanto si vede lo schermo a tettuccio composto da un pezzo di profilato a L sorretto da una bacchetta di legno. Il tutto dipinto di bianco.


In conclusione le temperature del tettuccio in alluminio e della capannina risultano  più vicine tra loro e a quella segnata dal termometro a mercurio, sebbene questa risulti più bassa di 1.4 gradi. La temperatura del sensore senza schermo risulta più alta di 2.4 gradi rispetto al termometro ventilato.  L'esperimento è stato fatto in condizioni di calma di vento.  Una maggiore ventilazione dei sensori potrebbe senz'altro attenuare queste differenze.







mercoledì 12 giugno 2013

PROVA RIUSCITA

Il tappo con finestrella in plexiglass, inserito in un tubo a incastro con guarnizione, ha resistito per 4 giorni immerso nell'acqua senza che entrasse una molecola!!

giovedì 6 giugno 2013

Contenitori ermetici per circuiti UNDERWATER

Quali contenitori per i nostri circuiti che devono stare all'aperto o addirittura sott'acqua?

Sulla scia delle mie idee sul monitoraggio ambientale, come da post precedenti, un problema da risolvere è quello di impiegare contenitori di basso costo che proteggano i circuiti dall'acqua. Qui accanto si vede una realizzazione di prova ottenuta con tubi di scarico in PVC, disponibili in vari diametri e varie forme a prezzi molto bassi. Ogni elemento dispone di guarnizione in gomma  che assicura una buona tenuta quando i pezzi vengono inseriti uno nell'altro ad incastro.

La forma che ho costruito, dovrebbe servirmi per ospitare uno strumento per la misura della torbidità dell'acqua. I tappi messi alle estremità del "3" dovrebbero ospitare una finestra in plexiglass in modo da far passare la luce emessa da un led e due fotodiodi che devono misurarla.







Sul tappo viene praticato un foro di circa 12 mm, sopra il quale viene incollata una finestralla di plexiglass di 1 mm di spessore con colla a caldo.
Attualmente sto provando la tenuta idraulica del tappo. Se tiene, passerò alla fase di installazione del led e dei fotodiodi.

martedì 14 maggio 2013

Prenotare l'Autostrada!?

Code sull'autostrada? Partenze intelligenti tutte uguali?
Basterebbe prenotarsi. Possibile?
Certo, oggi con il telepass sarebbe possibile prenotare l'uso di una certa autostrada in una certa fascia oraria; in cambio, se il telepass verifica il rispetto della prenotazione e se si usa una fascia oraria non intasata, si hanno sconti sul pedaggio o sulla benzina.
Potrebbe essere un modo per incentivare veramente le persone a partenze intelligenti ed evitare ingorghi di traffico che danneggiano anche le stesse aziende autostradali.
Qualcuno si offre per cavalcare il progetto?

martedì 7 maggio 2013

SPAZIO, SPAZIO!!!


C'è bisogno di spazio per rilanciare l'economia! Non vogliamo lasciare le nostre poltrone ai giovani? Almeno lasciamogli un po' di spazio affinché possano aggregarsi, incubare nuove idee. Quante aree dismesse in una città come Milano?  Si preferisce lasciarle vuote, improduttive pur di non creare spazi di co-working, aggregazione.   L'articolo qui sotto è interessante.

http://www.startupitalia.eu/it/blog/article/bricolage-maker-esempio-perfetto-do-it-yourself?utm_source=startupitalia%21&utm_campaign=43d89c9acd-aprile_Eventi&utm_medium=email&utm_term=0_05dc2f3e98-43d89c9acd-49520061


Seminario presso ITIS Molinari di Milano: Elettronica Ri-Creativa

Ho cercato di raccontare la mia esperienza in questi ultimi due anni con l'elettronica di Arduino.
Soprattutto, al di là delle applicazioni e dei tecnicismi, la scoperta di un nuovo modo di lavorare nel campo dell'artigianato elettronico. La scoperta della grande potenzialità che sta nella Rete tra le persone. Persone sparse nel mondo, che si aiutano solo perché condividono un interesse, dei progetti, delle sfide.
Forse il futuro è questo. Sarò contento se almeno qualcuno degli spettatori di oggi abbia compreso il messaggio.

sabato 20 aprile 2013

CO-Scienza Ambientale

A proposito del monitoraggio ambientale per tutti, di cui ad un mio post di dicembre, ho scritto questo titolo e questi concetti che spiegano meglio le motivazioni.



Co-Scienza Ambientale
Monitoraggio ambientale per tutti

“Co” sta per condivisione e cooperazione: quello che oggi è indispensabile per vivere in un mondo sempre più stretto.
“Scienza” è la forma di cultura più sana, più lontana dai pregiudizi, dalle fobie e dalle fissazioni che troppo spesso prendono il sopravvento nella società moderna.
“Ambientale” è un aggettivo, spesso abusato, ma che fa pensare alle conseguenze della nostra  presenza sulla Terra, ormai impossibili da nascondere. 
“Coscienza” è qualcosa che dobbiamo costruire nel corso della nostra vita, è una condizione di pace interiore indispensabile per vivere.
Smettiamola di pensare alla Scienza come qualcosa riservata a pochi, è solo un alibi per non riflettere, informarsi, pensare al mondo con raziocinio e senza preconcetti. La Scienza deve essere soprattutto vissuta, attraverso un’esperienza sensoriale completa. Non solo leggere e ascoltare quindi, ma anche fare, sperimentare, osservare ed interpretare. Galileo, quando si rivolgeva alla gente comune, la invitava proprio all’osservazione e alla riflessione su quanto osservato.



giovedì 18 aprile 2013

Trasmettere dati via radio a più di 1 km!!

Banda larga?  Cos'è??
Quando si ha una casa in campagna, anzi nel bosco, dove non c'è assolutamente campo GSM, figuriamoci WiFi o cavi ADSL, come si possono trasmettere dati? Immaginate che l'acqua arrivi alla casa da un serbatoio posto 1 km lontano e che ogni tanto d'estate l'acquedotto interrompe l'erogazione dell'acqua o i consumi siamo superiori al previsto. Diventa vitale sapere con anticipo il livello dell'acqua nel serbatoio in modo da regolarsi nei consumi e non rimanere all'improvviso con lo shampoo nei capelli.
Bene ho sperimentato con successo un telecomando, venduto da Futura Elettronica, che usando la banda degli 869 MHz e una buona antenna direzionale riesce tirare per alcuni chilometri. Il trasmettitore (TX) ha due pulsanti, uno per accendere il relè del ricevitore (RX), l'altro per spegnerlo. L'idea è quella di comandare i due pulsanti nella stessa sequenza di 1 o 0 di un numero binario. Sappiamo che il codice ASCII permette con 8 bit di codificare caratteri e numeri da 0 a 255. Un byte è più che sufficiente quindi per trasmettere il livello dell'acqua in un serbatoio.
Al fine quindi di pilotare il telecomando per trasmettere una sequenza di bit, ho programmato un Arduino che, tramite due dei suoi output digitali, aziona i "pulsanti" acceso e spento.

In realtà i pin di Arduino provvedono a collegare a massa i due ingressi del telecomando, come se si trattasse del contatto dei pulsanti.
Un problema non banale è trovare il tempo ottimale tra i bit da trasmettere. Infatti per ogni bit il TX in realtà invia un treno di impulsi costituito da "preambolo" codice del canale, etc. Non solo, poi occorre aspettare un certo tempo dopo aver trasmesso un bit, perché il canale non può essere occupato al 100% del tempo per problemi di normativa sulle frequenze.

 Morale, alla fine un buon compromesso è la trasmissione di un byte in 72 secondi. Una bella velocità!! Altro che banda larga!! I segnali di fumo degli indiani erano più veloci.  Però è più che sufficiente per trasmettere i dati che servono e che variano con molta lentezza.
L'altra "trovata" è stata quella della ricezione del byte. Infatti RX non ha nessun modo per sincronizzarsi con TX, sta quindi in attesa del primo bit di start e poi si mette in ascolto usando un ritardo tra i bit uguale a quello di TX. Tutto qui. Non solo, ma tra un byte e l'altro è necessario aspettare un po' di tempo in modo da permettere a RX di rimettersi in ascolto senza senza rischiare di mischiare i pezzi di due byte.
Insomma, un bel tam-tam, ma molto utile.

lunedì 8 aprile 2013

Ovunque e comunque

Continuano i lavori del sistema di misura e controllo del pannello solare. Si lavora anche sul posto, con qualsiasi tempo!!
La scatola che contiene le due schede Arduino con i due shield: datalogger e Ethernet.

giovedì 28 marzo 2013

Monitoraggio ambientale: Le polveri


Recentemente ho voluto provare il misuratore di polvere che avevo comprato tempo fa. E' il GP2Y1010AU0F della Sharp, con un costo equivalente ad una pizza + birra. Di questo sensore, oltre al suo datasheet, si parla in alcuni siti/blog di persone, anche esperte che lo hanno usato. Ho trovato anche altri sensori economici di polvere. A quanto sembra, questo componente viene usato commercialmente negli impianti di condizionamento dell'aria, probabilmente per monitorare l'efficienza dei filtri.  In uno di questi siti sono riportati confronti tra un misuratore di polvere professionale a laser e questi economici.
Innanzitutto vediamo cosa vuol dire "misurare la polvere in aria". Le particelle di polvere sono composte da vari materiali: carta, pollini, idrocarburi, fibre di tessuti, ecc.  Le dimensioni dei granuli possono essere molto piccole, da qualche decimo di micron fino a qualche decimo di millimetro. Naturalmente le particelle più grosse rimangono per poco tempo sospese nell'aria, mentre quelle più piccole possono percorrere lunghe distanze portate dalle correnti d'aria.  Il nostro sensore, come anche altri, usa un sistema ottico per misurare la polvere. Una sorgente di luce (LED) illumina una piccola camera, dove entra l'aria esterna, e un fotodiodo rileva la luce riflessa dalle particelle (scattering). Il sensore della Sharp sembra che sia sensibile a particelle con dimensioni maggiori di 0.5 micron (da prove effettuate in uno dei siti visitati) e la sua uscita è tarata per dare i milligrammi di polvere per metro cubo (mg/m3). Nelle foto è riportato il misuratore completo, costruito da me.  Ho inserito il sensore, Arduino, una  ventolina e un display LCD,  in una scatoletta. Poi ho sviluppato lo sketch che prevede anche la conversione dell’ uscita analogica  del sensore in mg/m3 e numero di particelle per cm3.  La prima conversione è data dalla casa produttrice del sensore, riportata nel suo datasheet,  mentre la seconda è stata ricavata da Chris Nafis per confronto con un altro misuratore, più preciso ma, ovviamente più costoso.  Il numero di particelle per cm3 s’intende per particelle con diametro superiore a 0.5 micron.

La foto mostra la scatola con il display, i buchi per il passaggio dell’aria, dietro i quali è sistemata la ventolina. A lato c’è la presa jack per i +9 V fornita dall’alimentatore wall plug.

La seconda foto mostra l’interno della scatola. E’ ben visibile la board Arduino con sopra una protoboard che accoglie i pochi componenti aggiuntivi necessari. Il sensore di polvere è stato posto in fondo alla scatola e in corrispondenza del buco dove viene campionata l’aria, è stato aperto un buco anche sul fondo della scatola. In questo modo la ventolina, esercitando un’aspirazione dell’aria dal fondo della scatola verso l’esterno, garantisce il passaggio dell’aria da dietro alla scatola nel sensore.



Per ulteriori approfondimenti visitate i siti:

http://aqe.wickeddevice.com/
http://www.aliexpress.com/compare/compare-dust-sensor.html




lunedì 18 marzo 2013

Misura e controllo di un pannello solare termico

Sto lavorando ad un progetto di pannello solare di nuova concezione, occupandomi del sistema di misura e controllo. Sulle caratteristiche di questo pannello lascio all'autore il compito di divulgarle, mentre penso che possa essere interessante descrivere come ho affrontato il problema della misura e registrazione dei dati di funzionamento e quello del controllo di alcuni dispositivi ausiliari.
Il sistema è descritto nello schema qui sotto riportato.  
I sensori di temperatura, distribuiti in vari punti del pannello, sono  i DS18B20 della  Maxim e funzionano con il protocollo 1-Wire.
Sono collegati ad un unico cavetto a tre poli (2 + schermo) al quale sono collegati l'alimentazione a +5V, il Ground e la linea dati che fa capo ad un pin digitale di Arduino. Esiste una libreria per gestire questo tipo di componente e ricavare direttamente la temperatura in °C. La precisione dichiarata di questo tipo di sensore è di circa 0.5 gradi.
Un altro sensore è costituito da un contatore volumetrico dell'acqua che scorre nel pannello. Questo contatore, oltre alla parte meccanica che fa muovere i tamburi con le cifre, è dotato di un reed relè che si chiude ogni 10 litri.  Il relè è collegato ad un altro ingresso digitale di Arduino, tramite una resistenza di pull-up di 10 K.
Il sistema deve poi controllare la velocità di un ventilatore e accendere o spegnere una pompa, oltre naturalmente a registrare tutti i dati.
La foto mostra un chip DS18B20 montato sul cavetto e il connettore a 3 pin con il quale viene collegato al bus 1-Wire.

La foto mostra il contatore di acqua con il cavetto collegato al reed relè.

giovedì 7 marzo 2013

Trasmettere i dati su Internet 2

Dicevo nel precedente post, che il Server è quello che risponde alla chiamata del Client inviando una pagina WEB. Noi vogliamo che questa pagina comprenda alcune scritte fisse, esplicative, e alcune variabili dipendenti dallo stato degli input nelle varie porte di Arduino. Questo si realizza facilmente con le istruzioni pc_client.print(....)  contenute nel programma di Marco Lai Controllo Remoto. Istruzioni che permettono di inviare al Browser del Client i tag HTML per formattare i testi fissi ma anche i testi variabili.
Infatti l'istruzione pc_client.print(var) inserisce il valore della variabile var ricavata per esempio dalla lettura di uno degli ingressi, come ad esempio analogRead(0) .  E' la funzione print che si occupa della trasformazione dei valori numerici in caratteri.
Ecco quindi la pagina che ho ottenuto:


Arduino analog input

Ingresso: A0: 412
Ingresso: A1: 403
Ingresso: A2: 364
Ingresso: A3: 320
Ingresso: A4: 309
Ingresso: A5: 270

Una cosa importante è ricordarsi di inserire nel programma citato sopra, il mac address, cioè il numero scritto su una label attaccata alla scheda Ethernet. Poi va inserito nel programma l'indirizzo IP del server. Questo viene assegnato dal access point e di solito ha queste cifre: 192.168.0.1.xxx. Gli xxx possono variare nel mio caso da 100 a 150.  Per avere un indirizzo valido si può usare il programma DhcpAddressPrinter contenuto negli esempi della Libreria Ethernet.

Trasmettere i dati su Internet

Un obiettivo che mi ero sempre posto d'avanti ma non osavo mai tentare di raggiungere, e' stato quello di usare Internet per trasmettere i dati rilevati dalle mie applicazioni con Arduino. Molte persone più esperte di me l'hanno già fatto e sulla rete c'è molto materiale sull'argomento. Però il mio timore è sempre stato quello di dover affrontare problemi difficili senza il necessario background culturale, non sapendo anche da dove partire per farmelo.  Grazie pero' a numerosi esempi postati da persone che hanno affrontato questi problemi, e soprattutto hanno fatto lo sforzo di spiegarli, sono riuscito nel mio intento e senza troppo sforzo.
Per prima cosa mi sono procurato una Ethernet Shield, scheda essenziale da accoppiare ad Arduino, se si vuole comunicare su Internet. Questo Shield è dotato di una presa RJ45 e di uno slot per introdurre una micro card SD, utile per la memorizzazione dei dati. Una volta inserito lo Shield su Arduino, si collega, con un cavo Ethernet (RJ45) alla porta di un access point. Io l'ho collegato allo "scatolotto" WiFi della mia rete domestica.  Fondamentale è la libreria EthernetLibrary che, assieme alle altre di Arduino, permette di far funzionare la scheda.
Per i primi programmi, consiglio vivamente il sito "www.logicaprogrammabile.it" di Marco Lai. Questo sito raccoglie moltissimi progetti ed esperimenti con Arduino, spiegati ed illustrati veramente bene. Infatti devo ringraziare lui se sono riuscito in poco tempo a fare qualcosa e soprattutto a capirla!!

In parole povere, la prima cosa da fare è scegliere se far funzionare la coppia Arduino/Ethernet Shield come Server o come Client. Per chi non sa queste cose, il Server è quel dispositivo che risponde alle chiamate di un Browser, come Explorer o Google Crome, inviando una pagina WEB. Il Client è invece il dispositivo che chiama il server inviando un URL (quella stringa di caratteri che inizia con http://...). Mi scusino gli esperti per questa spiegazione grossolana e incompleta, ma è esattamente quello che ho capito.  Quando parlo di dispositivo Server o Client, intendo un hardware (PC o scheda che sia) con un software sopra.  Quindi la coppia Arduino e Shield se funziona da Server, rimane in ascolto di un URL proveniente da un Client e risponde con una serie di stringhe che contengono caratteri e tag HTML. L'insieme di queste stringhe forma la pagina WEB che il Client si vedrà arrivare e presenterà sul Browser.  Nel prossimo post spiegherò come può il Server inserire i dati letti dalle porte di Arduino nella sua risposta al Client.

lunedì 11 febbraio 2013

Capannina meteo economica

Cos'è una capannina meteo?  Una specie di bungalow dove si rifugia il meteorologo in vacanza? No, è una di quelle cose fondamentali usata per misurare correttamente la temperatura e l'umidità dell'aria. Infatti, se vogliamo che il nostro termometro o igrometro misurino la temperatura dell'aria e non la propria, bisogna schermarli dagli scambi radiativi con sorgenti esterne. Primo tra tutti il sole, che riscalda i corpi condensati ma non l'aria che è un gas. Secondo il cielo sereno di notte, che costituisce un pozzo freddo, capace di raffreddare i corpi condensati fino a temperature inferiori a quella dell'aria.
Una capannina meteorologica ha quindi il compito di schermare i nostri sensori dalla radiazione solare (visibile, onda corta) e notturne (infrarosso, onda lunga), ma nello stesso tempo deve permettere ai sensori di stare in equilibrio termico con l'aria. Quindi la capannina deve poter far passare più aria possibile al suo interno; certe volte addirittura è dotata di ventilatore.  In commercio ne esistono tante e di vario tipo, il costo è sicuramente superiore a quello degli stessi sensori e del sistema di acquisizione. Infatti oggi è possibile costruirsi da un sistema di misura meteorologico spendendo poco per la parte elettronica, mentre la parte più costosa è costituita da tutto ciò che è meccanico, vale a dire, l'anemometro, la capannina, il pluviometro a vaschetta basculante.
In questo post faccio vedere come, con il costo di una pizza+birra, è possibile costruirsi una capannina che soddisfa ai requisiti che ho spiegato su.
La parte meno costosa, ma anche più importante, è costituita da una confezione di piatti di plastica bianca, quelli un po' più robusti della media, spessore 0,5 mm. Io ho scelto un piatto quadrato, ma vanno bene anche quelli tondi, l'importante è che siano fondi.  I piatti di plastica hanno il vantaggio di essere leggeri e quindi reagiscono rapidamente ai cambiamenti di temperatura dell'aria. Lo svantaggio è ovviamente la fragilità, ma ho l'impressione che la capannina che ho costruito sia più robusta della apparenze, staremo a vedere!
Si incomincia con la foratura della "risma" di piatti, facendo 4 buchi da 5 mm per le viti di sostegno e un buco centrale da circa 30 mm che servirà a introdurre i sensori. Quest'ultimo può essere ottenuto usando una sega a tazza e un trapano a colonna. Attenzione alla velocità del trapano, perché la plastica può lacerarsi facilmente.  I piatti bucati appaiono come nella foto. Uno dei piatti, quello più in alto nella capannina, non avrà il buco centrale.
A questo punto si prendono 4 barre filettate di acciaio inox o ferro zincato (costa meno), 8 bulloni  con altrettante rondelle per ogni piatto. Si incomincia a fissare il piatto superiore, quello senza buco centrale, alle estremità delle barre. Gli altri piatti sono infilati successivamente e fissati con i bulloni ad una distanza di circa 3 cm l'uno dall'altro. Questa misura dipende essenzialmente da come sono fatti i bordi dei piatti. La distanza deve essere un buon compromesso tra una facile circolazione dell'aria e una buona barriera per i raggi solari.

Il numero di piatti da infilare è anche questo arbitrario. Solo quando avrò fatto alcune prove in pieno sole potrò dirvi cosa è meglio fare.
Finito di montare i piatti, ho preso un profilato di alluminio a sezione quadrata 2 x 2 cm e lungo un metro e l'ho fissato a due barre filettate sulla diagonale della capannina. Alle altre due barre ho fissato un pezzo di profilato più leggero che sarà a sua volta avvitato al profilato quadrato.


Il profilato da un metro serve a montare la capannina al palo verticale che normalmente sorregge tutti i sensori meteo, lo sbraccio di un metro è importante per non far interferire la capannina con il palo e gli altri sensori.
Il sensore di temperatura che ho usato (per ora manca quello di umidità) è costituito da un integrato DS18B20 collegato ad un cavetto due poli + schermo, sufficienti a fornire all'integrato GND, alimentazione +5 e linea dati I2C. Il sensore e il cavetto sono stati sigillati con un bagno di silicone liquido bianco.

Non mi resta ora che fare delle prove, misurando la temperatura in diverse condizioni di insolazione e vento. A presto conoscerete i risultati.

mercoledì 6 febbraio 2013

Misurare alte correnti con Arduino

Nel post precedente, parlando del metodo per controllare la corrente in un circuito, ho fatto vedere l'inserimento nel circuito di un sensore di corrente ad effetto Hall, il ACS715. Questo sensore restituisce una tensione di 133 mV per ogni Ampere che passa al suo interno. E' alimentato a 5 V e consente misure da 0 a 30 A.
Facilmente Arduino, utilizzando il suo input analogico, può misurare la tensione in uscita dal sensore e calcolare la corrente. Il problema sorge quando la corrente è pulsata, come quella usata nel circuito del mio precedente post. Il sensore è molto veloce, vale a dire che nel momento che Arduino lo interroga, potrebbe stare misurando la parte di onda quadra a 0 o quella a 5 V.  La risposta istantanea del sensore non è quindi adatta a misurare un valore medio della corrente, esattamente quello che invece darebbe un tester.
Ma questo inconveniente può essere superato con il software. Basta campionare la corrente qualche migliaio di volte al secondo e fare la media dei valori ottenuti.

Controllare carichi potenti!!

Mi sono posto il problema di usare Arduino per il controllo di dispositivi ad alto assorbimento di corrente, come ad esempio un ventilatore a 12 V o una lampada o una pompa.

Girando in rete ho visto diversi blog sull'uso dei MOSFET accoppiati ad Arduino. Il MOSFET, per chi non lo sapesse, è un componente elettronico attivo che funziona come un relè. Una piccola tensione in ingresso (piedino gate) riesce a chiudere un circuito (tra i due piedini Drain e Source) facendo passare correnti notevoli, anche di decine di Ampere.

Frugando nella scatola dei semiconduttori, ho trovato nel cassetto un MOSFET NDP405B della National, che può commutare una corrente fino a 12 A con una tensione di 12 V (144 W !!).  Va benissimo per il mio scopo che è quello di controllare dispositivi alimentati a 12 V, tipo quelli usati sulle autovetture.

Prima ho detto che il MOSFET funziona come un interruttore, quindi permette alla corrente di passare o non passare attraverso il dispositivo. Come puo' essere usato per farne passare una quantità voluta, tra 0 e il valore massimo?  Alcuni dispositivi come i motori o le lampade, hanno la prerogativa di reagire lentamente alla corrente pulsata (intermittente). Se per esempio alimentiamo un motore con una corrente che si interrompe ogni millisecondo, questo continuerà a girare, durante l'interruzione, come se fosse alimentato da una corrente continua, ma leggermente inferiore. Lo stesso dicasi per una lampada, anche quelle a LED, alimentate con corrente pulsata, ci appaiono emettere una luce continua a causa della reazione lenta della nostra retina (persistenza).  Quindi possiamo dire che alcuni dispositivi alimentati da corrente pulsata si comportano come se fossero alimentati da una corrente media, ricavata mediando i periodi di corrente "on" con quelli di corrente "off".  Variando quindi la lunghezza di questi periodi si possono ottenere tutti i valori di corrente media compresi tra 0 e il massimo.

In base a questa spiegazione, per raggiungere il nostro scopo di far passare una corrente media prefissata dentro al nostro carico, bisogna comandare il MOSFET con un treno di impulsi di durata voluta. In particolare, per il MOSFET NDP405B gli impulsi possono essere anche di 12 V di ampiezza. L'ideale è quindi inviare al Gate un'onda quadra  tra 0 e 12 V, con frequenza fissa, ma con la durata della semionda alta di lunghezza variabile a piacere.  La frazione di tempo in cui l'onda è alta rispetto al periodo è chiamata "Duty cycle". Arduino può produrre un'onda di questo genere, anche se fino a 5 V di ampiezza, usando l'uscita PWM e l'istruzione analogWrite(pin, value). L'onda quadra emessa, ha una frequenza di circa 490 Hz con un    duty cycle pari a value/255.  Value può andare da 0 (ampiezza media nulla) a 255 (ampiezza media 5V).

Per portare l'ampiezza dell'onda da 5 V a 12, come richiesto dal MOSFET, ho inserito nel circuito un transistor alimentato a 12 V, come nello schema qui sotto.


Nello schema si nota un altro componente, ACS715, inserito sulla linea di alimentazione del carico (Load). Questo componente serve a misurare la corrente. E' un dispositivo ad effetto Hall che consente ad Arduino di acquisire i dati di corrente. Ne parlerò in un prossimo post.

mercoledì 30 gennaio 2013

Monitoraggio ambientale: Radioattività all'aria aperta






Un contatore geiger autocostruito misura la radioattività di un minerale di Uranio a Novazza (BG).





Tempo fa, ho pubblicato, su questo blog, un Manifesto che propone la necessità che tutti partecipino al monitoraggio dell'ambiente.
A tal proposito, in questo post, parlo di una recente gita a Novazza, in provincia di Bergamo, sulle Alpi Orobie, dove in passato è stata scoperta, e si è tentato di sfruttare, una miniera di Uranio.
 In prossimità delle gallerie esplorative della miniera, sui sentieri aperti a tutti per magnifiche passeggiate in montagna, si trovano sassi con intrusioni di Uranite.  I contatori geiger, che ci siamo portati durante la gita, dimostrano in modo molto evidente livelli di radioattività elevati, dovuti essenzialmente alla radioattività naturale dell'Uranio.  I livelli, talvolta sopra le soglie di sicurezza, si riscontrano solo a pochi centimetri da alcune pietre, essenzialmente dovuti alla radioattività alfa e beta. E' pur vero però che questi sassi radioattivi sono abbandonati in giro e chiunque può prenderli e portarseli a casa con un certo rischio per la salute, specialmente se questi sono lasciati vicino alle persone, esempio su uno scaffale di libreria.

A fianco, uno scorcio primaverile del sentiero che corre vicino alla miniera di Novazza.

Sotto, il ghiaione sotto la miniera di Novazza dove è possibile trovare  molti frammenti con minerali di Uranio



Novazza in Val Seriana, Provincia di Bergamo