Archivi tag: sensor

Arduino: water sensor

Per le attività in programma per il corso sui laboratori green, spiegherò come controllare il livello d’acqua in una cisterna utilizzata per l’irrigazione. A livello prototipale svolgerò prima sperimentazioni su singola pianta utilizzando il “water sensor” che potete acquistare per pochi centesimi online. In una fase successiva impiegherò dei sensori di livello che vengono comunemente impiegati in cisterne e controlleremo il riempimento e lo svuotamento della cisterna.

Il “water sensor” misura il livello di conduttività elettrica del liquido, conduttività che sarà funzione della quantità di superficie del sensore immerso.
Nell’acqua ed in generale nei liquidi, il passaggio di corrente è dovuto alla presenza di sali, infatti l’acqua pura non risulta conduttiva.
Le piste parallele di rame presenti sul sensore sono connesse al potenziale positivo e al GND, quando il sensore viene immerso nel liquido viene misurata una differenza di potenziale tra i due poli, d.d.p. che dipenderà dalla quantità di superficie immersa, pertanto al variare della quantità d’acqua varierà il valore di resistenza tra i due potenziali.

Sottolineo che il sensore non è preciso e richiede una taratura iniziale che dipende prevalentemente dall’acqua, inoltre sensori diversi potrebbero fornirvi misure diverse.

Il segnale di uscita del sensore (pin S) verrà inviato su un pin analogico di Arduino e da esso convertito in un valore numerico che oscillerà tra ~ 0 e ~500, pertanto se il sensore non è immerso il valore misurato sarà di circa 0, mentre se sarà totalmente immerso raggiungerà il valore massimo rilevato.

Sul sensore sono presenti 10 piste di rame parallele, connesse in modo alternato, in modo che vi siano 5 piste connesse ad un potenziale alto e 5 piste connesse a GND. E’ presente inoltre un LED che indica quando il sensore viene alimentato.

  • S (Signal): uscita analogica da connettere ad un ingresso analogico di Arduino
  • +Vcc: potenziale positivo dell’alimentazione. Si consiglia di alimentare il sensore con una tensione compresa tra 3,3 V e 5V. Si ricorda che l’uscita analogica del sensore varierà in funzione della tensione di alimentazione del sensore.
  • – : da connettere al GND

Attenzione che il sensore non è progettato per essere completamente immerso, fate in modo che solo le tracce ramate parallele esposte sul PCB vengano a contatto con l’acqua.

Continua a leggere

5 min al giorno di sperimentazione con M5Stack mini – Sensore TOF

Buoni propositi: utilizzare 5 minuti della mia giornata di lavoro per sperimentare alcuni utilizzi di M5Stick Mini, ma anche per sollecitare la curiosità e voglia di sperimentazione da parte dei miei studenti… pillole tecnologiche 🙂
Recentemente ho acquistato un sensore ToF (Time of Flight: tempo di volo) VL53L0X con connettore GROVE per effettuare misure precise sulla della distanza di ostacoli con M5Stick mini.

Un sensore ToF effettua un conteggio del tempo totale di volo dei fotoni dal momento in cui vengono emessi da un piccolissimo raggio laser al momento in cui viene rilevata la riflessione su un fotodiodo collocato sul sensore.
In generale il tempo di volo (spesso indicato con TOF, dall’inglese Time Of Flight) indica la misura del tempo impiegato da un oggetto, una particella o un’onda (elettromagnetica, acustica, elettromagnetica o di altro tipo) per percorrere una certa distanza in un mezzo determinato. (fonte: Wikipedia)
Il sensore è in grado di fornire una misura molto precisa della distanza, indipendentemente dalla riflettanza della superficie incidente.

Il sensore ToF di cui dispongo è un VL53L0X che incorporato un emettitore Laser VCSEL ed un fotodiodiodo ricevitore SPAD. Il laser è in grado di emettere impulsi a 940 nm (prossimi al campo infrarosso). Il fotodiodiodo SPAD è estremamente sensibile al singolo fotone e grazie alla schermatura di cui è costituito riceve soltanto la lunghezza d’onda di 940 nm del laser.

Il sensore che sto utilizzando sul mio M5Stick mini connesso in I2C, è in grado di misurare la distanza di oggetti dai 30mm a 800 mm, ma in commercio è possibile trovare sensori che sono in grado di misurare con precisione distanze fino a 2m. Campi di impiego: telecamere, macchine fotografiche, smartphone e sensoristica industriale.

L’integrato elettronico VL53L0 viene prodotto dalla ST Microelettronics, seguendo il link trovate maggiori informazioni tecniche.

Durante le nostre sperimentazioni elettroniche a scuola, spesso usiamo sensori basati sull’uso di un diodo LED emettitore di infrarossi ed un fotodiodi ad infrarossi ricevente  che sono influenzati dalla luce ambiente e dall’assorbimento della luce rilevata. Stessa cosa capita nel caso si utilizzi sensori ad ultrasuoni, dove la misura della distanza è fortemente dipendente dall’angolo di incidenza dell’onda ultrasonica e dalla fonoassobenza degli ostacoli di cui si vuole misurare la distanza.

Per maggiori informazioni sulle nozioni di base sull’utilizzo dei sensori ToF vi rimando al breve articolo di digikey dove oltre a presentare la tecnologia ToF, trovate dettagli interessanti su altre tecnologie utilizzate per la rilevazione della distanza degli ostacoli.
Nell’articolo si ripercorre la storia della sensistica per la misurazione degli ostacoli:

  • sensori di prossimità delle prime macchine fotografiche della Polaroid
  • sensori ad ultrasuoni come gli SR-HC04 che utilizziamo nelle sperimentazioni con Arduino
  • sensori ad infrarossi della Sharp
  • sensori ToF

Trovate il sensore ToF VL53L0X su schede che possono essere comodamente connessi in I2C ad Arduino a costi estremamente contenuti.

L’utilizzo del sensore ToF con M5Stick mini è estremamente semplice.

E’ sufficiente aggiungere tra i sensori disponibili il ToF, così come indicato nell’immagine che segue ed utilizzare così l’istruzione che permette di misurare la distanza dell’ostacolo.

Nel programma indicato di seguito viene misurate la distanza dell’ostacolo è nel caso in cui la misura sia inferiore ai 50 mm viene acceso il LED rosso disposto sull’M5Stick mini.

Ovviamente sviluppare ora un sistema per valutare il tempo necessario per lavarsi le mani, così come indicato nell’articolo: Arduino – Esercizio: Realizzare un timer per il lavaggio delle mani risulta semplicissimo.

Buona sperimentazione a tutti 🙂

Compatibilità motori e sensori NXT su Lego Mindstorms EV3

Posseggo diversi brick NXT ma come saprete programmarli con l’ambiente di sviluppo Lego ufficiale non è più possibile a meno che non si utilizzano altri ambienti di sviluppo su cui poter programmare questi mattoncini in C o in Python, ve ne parlerò in un prossimo post.
La bella notizia, per me, è che sia i motori che i sensori, ma anche i cavi del vecchio set NXT sono assolutamente compatibili con il brick EV3.
Non è però possibile collegare i nuovi sensori EV3 al mattoncino NXT.

Potrete collegare tutti i motori e i sensori LEGO NXT e NXT2 ufficiali di Lego al brick EV3.

Ad esempio, è possibile avere una configurazione con Touch Sensor NXT, un motore NXT e due motorie EV3, tutti collegati al brick EV3, così come mostrato nell’immagine e nel video che segue.

Per quanto riguarda la programmazione all’interno dell’ambiente di sviluppo ufficiale Lego nessun problema con motori e sensori NXT tutto funziona correttamente.

I due motori hanno circa le stesse dimensioni, però ad un esame più attento, i due motori richiedono procedure di montaggio diverse. Il motore NXT ha tutti i fori arrotondati, mentre i collegamenti del motore EV3 hanno fori arrotondati e trasversali. Il motore EV3 ha anche una fila aggiuntiva di tre fori vicino al connettore elettrico e ciò lo rende più versatile. I fori del motore EV3 sono molto più bassi e alcuni sono addirittura spostati su un lato.

Bene detto ciò, riapro le vecchie scatole e parto con il Coding su Lego.

Buon Making a tutti 🙂

Remidi: First Wearable Instrument to Record, Play & Perform

Sensors in fingers & palm trigger custom sounds while connected wrist controller, hand gestures control effects with reverb, echo, etc.

remidi

Perché vi segnalo questo progetto?
Analizzo molto spesso kickstarter ed ultimamente, su segnalazione di un caro amico, mi ha colpito in modo particolare il progetto Remidi, un guanto interattivo in grado essere un nuovo strumento musicale senza precedenti, un oggetto che da grazia e movimento alla produzione di musica che potrebbe far nascere nuove modalità di interazione tra persone e per me, che mi occupo di formazione, intravedo un potenziale oggetto che potrebbe migliorare l’espressività negli adolescenti introversi o dare sfogo all’iperattività di altri o ancora un nuovo ausilio per alcune disabilità.

Ecco Remidi!
Gesto, musica e creatività!

Carnevale della matematica: Arduino e un po’ di informatica per sapere quanto sei “brillo” quando esci dalla discoteca

Il mio secondo contributo al 45° Carnevale della matematica.

Cerco di continuo appigli nel vivere quotidiano dei miei allievi per amplificare il loro spirito critico e di osservazione al fine di condurli verso la nascita di una passione per un interesse che potrebbe trasformarsi in un lavoro futuro o in una competenza utile.
In questi anni, come più volte dichiarato su queste pagine, insegno anche l’utilizzo di Arduino, un dispositivo elettronico che mi consente di far interagire tre mondi: l’elettronica, l’informatica e il mondo fisico che ci circonda. La potenzialità di Arduino risiede nel fatto che, se opportunamente utilizzato con specifiche sperimentazioni, amplifica la curiosità e la voglia di sperimentare, creando un sistema “reazionato mentale” (nel senso elettronico del termine 🙂 ) che induce la voglia di risolvere sempre più problemi tecnici anche complessi riducendo la paura della matematica, della logica e quindi dell’informatica.

In una delle mie lezioni introduttive sull’uso di Arduino ho illustrato come possa essere possibile con un po’ di senso pratico, elettronica e informatica progettare dispositivi complessie e tra i vari esempi ho parlato di rilevatori di gas e…

…addirittura potreste misurare quanto siete brilli quando uscite dalla discoteca costruendo un etilometro

La cosa ha suscitato talmente tanto interesse che la lezione ha avuto risvolti positivi… sperimentazione e studio anche a casa!

Ma perché ho parlato di etilometro?

Tutto nacque tempo fa quando confidai ad alcuni miei studenti di 5′ la preoccupazione nell’aver visto studenti di non più di 17 anni, che usciti da scuola, alla fermata del pullman, tirarono fuori dallo zaino di scuola un softdink.

Questa la risposta lapidaria della maggioranza dei ragazzi:

STUDENTE: Prof. bere a più non posso e fare casino in discoteca, sballarsi di alcolici e dare di stomaco sono cose che accadono di continuo fuori e dentro alle discoteche che frequentiamo, gente che si ritrova in festini che nascono al puro scopo di sballarsi di superalcolici…

IO: e tu come ti comporti?

STUDENTE: io sto alla larga da tutto ciò, ho un amico che è finito sulla sedia a rotelle per un incidente era pieno di alcool ed era alla guida, fortunatamente non ha ucciso nessuno.

Queste dichiarazioni alcune volte mi fanno rabbrividire, ma purtroppo sono confermate anche dalle statistiche dell’ISTAT che nella ricerca: L’uso e l’abuso di alcol in Italia viene detto che:

Nel 2010 la quota di popolazione di 11 anni e più che ha consumato almeno una bevanda alcolica durante l’anno è pari al 65,7%, in diminuzione rispetto al 2009 (68,5%); il 26,3% della popolazione (14 milioni 126 mila persone) beve alcolici quotidianamente, mentre il 38,4% ha consumato alcol almeno una volta fuori dai pasti.

Beve vino il 53,3% delle persone di 11 anni e più, birra il 45,9% e aperitivi alcolici, amari, superalcolici o liquori il 39,9%; beve vino tutti i giorni il 24,1% e birra il 4,3% della popolazione di riferimento.

Negli ultimi 10 anni tra i giovani sono aumentati i consumatori occasionali, quelli che bevono fuori pasto e di chi consuma altri alcolici oltre a vino e birra, mentre si sono ridotti i consumatori giornalieri e quelli che bevono solo vino e birra.

Nel complesso i comportamenti a rischio nel consumo di alcol (consumo giornaliero non moderato), binge drinking (sei o più bicchieri di bevande alcoliche in un’unica occasione) e consumo di alcol da parte dei ragazzi di 11-15 anni) riguardano 8 milioni e 624 mila persone, il 16,1% della popolazione di 11 anni e più. Tale quota appare stabile nel tempo.

per i dati completi si legga il pdf dell’intera ricerca che trovate seguendo il link.

Tutto ciò è molto preoccupante ed io cosa posso fare?

Posso incominciare a rendere il “bit fisico” a misurare la quantità di alcol che uno studente ha nel sangue, con la speranza di metterlo in allerta, sperando che lo strumento da lui costruito (che serve a lui) lo sensibilizzi ancora di più rispetto al problema alcol.
Allora come sempre dico: fare e costruire per prevenire… anche con l’informatica.

Quello che segue e la prima parte di un circuito ed un software più complesso che svilupperemo con i miei allievi nei prossimi mesi, è l’inizio di una unità didattica che ho chiamato:

Ecco come ti misuro con Arduino lo sballo alcolico che ti può uccidere.
Costruiamo un etilometro indossabile

L’idea e di creare un dispositivo elettronico molto piccolo ed indossabile che può misurare in tempo reale la quantità di alcol nel sangue. Questa è la parte preliminare di costruzione del primo prototipo. Gli sviluppi successivi prevedono:

  • una versione con una barra led che indica il livello di alcol
  • una versione con un display che indica numericamente il livello di alcol

Per la costruzione del primo prototipo di cosa abbiamo bisogno?

  • scheda Arduino UNO,
  • un sensore di alcol MQ-3
  • potenziometro da 100 KOhm
  • un pizzico di informatica

La visualizzazione della quantità di alcol verrà visualizzata in tempo reale sul computer.

Non mi dilungherò molto sulle caratteristiche fisiche del sensore per approfondimenti seguite i link:

Il sensore è molto sensibile all’alcol, è costituito, come mostrato in figura, da 6 piedini di cui però ne utilizzeremo solo 4 in quanto due piedini sono duplicati. I piedini A sono tra loro collegati così come i piedini B.

 

Il sensore per funzionare deve essere riscaldato e ciò avviene collegandolo tramite i piedini H ad una tensione di alimentazione di 5V.
A questo punto scegliete quali piedini utilizzare (A o B è la stessa cosa) seguendo lo schema elettrico sopra indicato. La Vout dovrà essere inviata al pin analogico 0 di Arduino e l’altro capo della RL a GND.

L’utilizzo di un potenziometro ci consentirà di aumentare e diminuire la sensibilità dello struento.

Questo il codice:

/*
etilometro ver. 1.0
Michele Maffucci: https://www.maffucci.it
derivato dal lavoro di TigPT: http://www.LusoRobotica.com
*/

const unsigned int PIN = 0; // pin a cui sarà collegato il sensore
const unsigned int BAUD_RATE = 9600; // definiamo il boud rate della porta seriale
unsigned int valore = 0; // variabile intera non negativa per il valore rilevato dal sensore

void setup() {
Serial.begin(BAUD_RATE); // apriamo la porta seriale USB e la inizializziamo a 9600 bps.
pinMode(PIN,INPUT); // dichiariamo di utilizzare il piedino PIN come ingresso
}

void loop() {
valore = analogRead(PIN); // in valore conserviamo la lettura che proviene da PIN
Serial.println(valore); // stampiamo sulla Serial monitor "valore"
delay(500); // aggiungiamo un ritardo tra le letture successive di mezzo secondo
}

Questo il filmato: