progetto sveglia biologica

premessa: durante il riposo notturno, si alternano cicli di sonno profondo in cui il corpo è completamente immobile con cicli di sonno più lieve in cui il corpo si muove leggermente.

sapendo che  il risveglio ideale dovrebbe avvenire nella fase di sonno leggero, per ottenere una sensazione di maggior riposatezza, abbiamo deciso di realizzare una sveglia in grado di risvegliarci nella fase di sonno lieve anticipando la sua messa in funzione di un tempo deciso dall’ utilizzatore.

struttura hardware  basata su shield e arduino UNO

in questo progetto abbiamo portato al limite la piedinatura di Arduino UNO riuscendo a lasciare liberi solo i due pin riservati al I/O seriale(digital 0,1).

funzione dei vari piedini:

A0 = accelerometro asse x

A1= accelerometro asse Y

A2= accelerometro asse Z

A3= tasti lcd (sotto la spiegazione)

A4, 5= RTC(shield real time clock)

D0= seriale usb

D1=seriale usb

D2=piccolo tastino esterno

D3=buzzer

D4, 5, 6, 7, 8, 9= LCD shield

D 10, 11, 12, 13 = SD shield

SDA, SLC= RTC

 

tutte le schede sono state disposte a cascata sopra Arduino lasciando isolato solo l’ accellerometro

RTC shield

questa scheda munita di temporizzatore e batteria a bottone permette di sgravare il processore dai calcoli di tempo e di avere sempre l ora in tempo reale.abbiamo rimosso il ponticello sul led per liberare un piedino di arduino in quanto al nostro progetto inutile

SD /micro SD shield

questa scheda è stata utilizzata per il salvataggio dei dati dell accelerometro relativi alla notte, cosi da poterli importare in exel in qualunque pc tramite la funzione macro. i dati vengono automaticamente ordinati secondo le righe colonne di exel permettendo una facile creazione di grafici per scopi vari. viene creato un file (denominato MINUTI,ORA,GIORNO,MESE) per ogni settaggio della sveglia biologica.

LCD shield

sicuramente utile al progetto serve a visualizzare a video le informazioni relative all orologio stato della sveglia e stato della sveglia biologica (due quadratini separati sulla destra del display). inoltre dispone di tre tasti da noi settati in configurazione analogica per usare un solo pin di Arduino restituivano valori diversi in base al tasto premuto, cosi facendo pero non è possibile registrare due pressioni contemporanee.

schema dei tasti:

sinistro:nella schermata orologio-> a un click entra nel set-up dell’ ora della sveglia classica,click successivo minuti della sveglia,click successivo esce.

centrale: click sveglia classica on/off

destro:click settaggio preavviso sveglia biologica, funzionamento medesimo alla sveglia classica

esterno: click bio sveglia on /off (quando la bio sveglia è attiva si attiva anche la registrazione su sd dei movimenti dell accelerometro)

per incrementare un valore nei vari menu premere il tasto destro per decrementare il tasto centrale

se si desidera cambiare l ora della sveglia bisogna tenere premuto 3/5 sec il tasto sinistro (regolazione medesima alla sveglia classica)

 

accelerometro:

noi abbiamo scelto un accelerometro abbastanza accurato settandolo nella modalità precisa(GSEL collegato a  GND)

schema dei suoi contatti diretti ad Arduino:

VCC= 3,3 V

GND=GND

x,y,z out = A0,1,2

SLEEP= 3,3V

ST= / (vuoto)

GSEL= GND

questa scheda restituisce valori da -1023 a 1023 per ogni asse sulle uscite analogiche dedicate.

il progetto nonostante abbia richiesto una progettazione macchinosa dal punto di vista della gestione dei pin una volta scomposto in moduli indipendenti (orologio,sveglia,registrazione accelerometro,biosveglia) è risultato fattibile.

 

 

 

Lampada Touch-less

DSC_6708

L’idea di una lampada di questo tipo ci è venuta dal fatto che nessuno di noi probabilmente ne ha mai vista o usata una.

La lampada è basata sul semplice sistema di shield di Arduino UNO, che ci hanno permesso una rapida realizzazione sia materiale che del codice, sopratutto grazie al fatto che è stato possibile programmare in C++, programma che noi conosciamo molto bene.

DSC_6687

una volta appresi i nomi e le funzioni delle classi proprietarie del compilatore di Arduino abbiamo iniziato la realizzazione del codice traendo anche spunto da progetti svariati reperiti in rete. La componentistica necessaria alla lampada (micro controllore, shield RGB, cavi) è contenuta all’ interno di una normale lampada, opportunamente svuotata per contenere il tutto.

DSC_6703

non sono state necessarie molte modifiche alla lampada perché si presentava già pronta al futuro scopo.

abbiamo semplicemente creato un foro (con l ausilio di una punta in Vidian) al centro per far uscire il potenziometro e un paio di fori sul fondo per fissare la struttura necessaria a mantenere in posizione i led RGB.

DSC_6684

cavi e contatti:

potenziometro: tre uscite la prima da sinistra collegata al 5V di Arduino, la seconda, quella al centro collegata all’ entrata analogica A0 la terza collegata a gnd.

DSC_6688

sensore ultrasuoni: il sensore che abbiamo usato noi era gia provvisto di strip maschi saldati sui contatti. partendo da sinistra abbiamo collegato il VCC a 5V di Arduino, trigger al pin 11 echo al pin 12, out lo abbiamo lasciato inutilizzato ed infine  GND lo abbiamo collegato al grownd

DSC_6689

RGB shield: questa scheda permette il controllo RGB di una striscia di led o altri tipi di luci alimentate a 12V e max 2A, noi utilizzando una striscia relativamente corta abbiamo dato alimentazione ad Arduino tramite il cavo a 12V e  1 A senza utilizzare la morsettiera della scheda.

DSC_6686

abbiamo collegato la scheda a cascata sopra Arduino e i cavi che connettevano i led alla loro morsettiera mettendo il + in comune.

assemblaggio finale: abbiamo collegato tutti i cavi saldandoli ed isolandoli nei punti critici con le guaine termo restringenti. finito di montare il tutto abbiamo eseguito un rapido collaudo andato a buon fine.

 

di seguito lo sketch del nostro programma perfettamente funzionante

 

lampada_Touch-less

prima settimana di stage (progetto porta ombrelli intelligente)

Come secondo progetto abbiamo pensato di costruire un portaombrelli intelligente ovvero che è in grado di dirci in base al meteo se è il caso di prendere l’ombrello oppure no! Per realizzarlo abbiamo utilizzato un Arduino UNO,  una RGB shield, resa necessaria dal fatto che i led erano molti e serviva una gestione semplice, un sensore a ultrasuoni,dimostrato molto sensibile e affidabile nello scorso progetto, e una Ethernet shield, . L’Arduino grazie alla Ethernet shield va su internet a leggere il meteo della città selezionata e quando noi ci troveremo in prossimità del portaombrelli accenderà delle luci colorate e in base al loro colore si potrà dedurre che meteo è previsto nella giornata di oggi, nella città che ho indicato tramite la sua pagina internet.

il progetto in totale è stato diviso in varie componenti, che interagiscono fra di loro per fornire ad micro controllore le previsioni meteo, la gestione della striscia di luci RGB e la gestione di una pagina internet.

il lavoro è iniziato con l’implementazione di un codice in grado di reperire e fornire le previsioni meteo di una determinata città contraddistinta da un codice WOEID universale.Per fare questo ci siamo appoggiati ad una API di yahoo che ci restituiva un valore da 1 a 35 e in base a quello si poteva determinare il meteo previsto.

La seconda fase, forse la più semplice dell intero progetto, è stata la gestione dell’ accensione delle luci di un determinato colore (basato sul meteo), al passaggio davanti al sensore a ultrasuoni posto al interno del porta ombrelli.

L’ultima parte del nostro lavoro è stata la creazione di una pagina web dedicata da cui l’ utente può inserire la città per cui vuole riceve le previsioni meteo. Questa è stata sicuramente la parte più difficile sia perchè non abbiamo ancora conoscenze di HTML sia per il fatto che dovevamo gestire tre server,ovvero quello di yahoo per le previsioni, la nostra pagina web e un altro server di appoggio necessario per reperire data la città il suo codice WOEID. la complessità della sincronizzazione dei tre eventi ha portato non pochi problemi che pero nel giro di un paio di giorni siamo riusciti a risolvere.

prima settimana di stage! (progetto lampada Tuch-Less )

Come primo progetto abbiamo deciso di realizzare una lampada da tavolo Touch-Less ovvero per l’accensione e lo spegnimento è sufficiente passare la mano sopra la lampada mentre per regolare la luminosità bisogna alzare o abbassare la mano. Per rendere lampada un po’ più vivace abbiamo deciso di mettere un piccolo potenziometro per regolare il colore. Il tutto è stato realizzato grazie ad un Arduino UNO, una RGB Shield, un sensore a ultrasuoni,scelto per la precisione riscontrata durante i vari test; infatti inizialmente avevamo optato per un sensore a infrarossi ma durante le prove abbiamo notato che esso era molto sensibile ai cambiamenti di tensione seppur minimi e inviava di conseguenza dati falsati che causavano l accensione involontaria delle luci oppure una errata regolazione della luminosità. Una volta preso il sensore a ultrasuoni invece non ci sono stati problemi di rilevazioni errate anche se tale sensore richiede una funzione specifica per la gestione dell’ impulso e ritorno sonoro.