Pio racconta parte 2

Dopo aver raccontato cosa ho svolto nei primi giorni di stage ora vi racconto la mia penultima settimana da stegista qui alla Futura Group, all’inizio ho elaborato una newsletter e il banner su uno strumento multifunzione per laboratorio, ho realizzato delle pubblicità riguardanti il ” Set antifurto domestico wireless ” e su dei localizzatori per animali.Ho realizzato un videomontaggio sul nuovo quatricottero, e durante questi lavori per distrarmi un pò ho scattato delle fotografie ai nuovi PLA ed a dei dispositvi e componenti elettronici.Questo potrebbe essere il mio ultimo messaggio qui per quest’anno, vedremo se farò altri lavori interessanti in questi ultimi 4 giorni e se valga la pena di aggiungerne un altro messaggio. Ma comunque per sicurezza d’ho ora i miei saluti , vi ringrazio a tutti per la belle esperienza di lavoro vissuta qui , ma soprattutto ringrazio lo Stefano (Garavaglia), Alessia,Filippo e in fine il davide che sono sempre stati buoni e gentili e molto simpatici , ma soprattutto sempre al mio fianco in questa esperienza lavorativa , vi ringrazio tutti e ciaooooo.

Infinity Mirror-Vu Meter

Il progetto svolto unisce l’effetto generato da un infinity mirror (attraverso il quale è possibile ottenere un’immagine ripetuta continuamente tramite degli specchi) a quello di un vu meter.
Il primo passaggio del progetto è stato la ricerca di informazioni (codici per arduino, materiale necessario, eventuali progetti simili, ecc…) per poi successivamente passare a una lavorazione dell’hardware.
Nel progetto finale sono presenti:

-Shield RGB che permette di gestire i led (red -green – blue)
-Spectrum shield necessaria per poter analizzare e suddividere la frequenza audio dei suoni/canzoni utilizzati come input..
La realizzazione dei filtri passa alto/basso/banda è stata un primo tentativo, ma nonostante le formule applicate e ricontrollate non risultavano performanti a dovere, optando dunque per una shield apposita, i filtri sono stati controllati attraverso PCSU200 un oscilloscopio per pc, con la quale è stato possibile compiere dei test.
Dopo aver dissaldato i cavi per la gestione dei led dal “Led tunnel lamp”, prodotto da cui sono stati utilizzati led e infinity mirror.
Dissaldando i vari fili del prodotto e saldandoli alla nostra scheda è stato possibile accedere alla gestione dei led, facendo in modo che essi funzionassero a ritmo di musica.

Il codice è il seguente:

//Specifica i pin Reset, Strobe
int spectrumReset=7;
int spectrumStrobe=4;

//Specifico il canale di ingresso
//pin A0 per canale destro
//pin A1 per canale sinistro
int spectrumAnalog = 1; //canale sinistro

//creo un vettore per contenere i valori analogici
//delle 7 bande
int Spectrum[7];

void setup()
{
//pin reset e strobe in output
pinMode(spectrumReset, OUTPUT);
pinMode(spectrumStrobe, OUTPUT);

//inizializzo lo spectrum shield
//Strobe
digitalWrite(spectrumStrobe,HIGH);
delay(1);
digitalWrite(spectrumStrobe,LOW);
delay(1);

pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

}

void loop()
{
//esegui la lettura ogni 10mS
readSpectrum();
/*analogWrite(3, Spectrum[1]);
analogWrite(5, Spectrum[2]);
analogWrite(6, Spectrum[0]);*/
//delay(10);

}

void readSpectrum()
{
//Questa funzione legge il valore analogico per ogni banda
//e ne rappresenta il valore tramite dei led

byte Band;
//questo ciclo for viene eseguito 7 volte
for(Band = 0; Band < 7; Band++)
{
//eseguo due letture per poi dividerle per due tramite
//spostamento di bit. Il valore ottenuto viene memorizzato
//nel vettore
Spectrum[Band] = (analogRead(spectrumAnalog) + analogRead(spectrumAnalog) ) >>1;

//invio un impulso al pin strobe per passare al filtro successivo
digitalWrite(spectrumStrobe,HIGH);
digitalWrite(spectrumStrobe,LOW);
}

//una volta effettuata la memorizzazione dei dati
//nel vettore, creo un altro ciclo for
//per rappresentare gli stessi tramite led

for (byte Ciclo = 1; Ciclo < 5; Ciclo++)
{

if(Ciclo==2) //per fare in modo da saltare il pin 4, e passare al pin 5
Ciclo=Ciclo+1;
//recupero il valore memorizzato nel vettore
//traslo il valore intero in un byte
byte x = map(Spectrum[Ciclo], 0, 1023, 0, 255);
int R,G,B;
R=map(Spectrum[6],0,1023,0,254);
G=map(Spectrum[3],0,1023,0,254);
B=map(Spectrum[1],0,1023,0,254);
//se il valore supera una soglia accendi il led
//altrimenti spegnilo
if( x > 120 )
{
if(Ciclo+2==5)
{
analogWrite(Ciclo+2,G);
delay(10); //delay necessario per far funzionare i led a dovere
}
if(Ciclo+2==3)
{
analogWrite(Ciclo+2,R);
delay(10);  //delay necessario per far funzionare i led a dovere
}
if(Ciclo+2==6)
{
analogWrite(Ciclo+2,B);
delay(10); //delay necessario per far funzionare i led a dovere
}

}
else
digitalWrite(Ciclo + 2, LOW);
}
}

 

Infinity mirror - vu meter

Infinity mirror – vu meter

Infinity mirror - vu meter // shield

Infinity mirror – vu meter // shield RGB e spectrum con arduino

Infinity mirror - vu meter

Infinity mirror – vu meter

Infinity mirror - vu meter

Infinity mirror – vu meter // spectrum shield

Infinity mirror - vu meter

Infinity mirror – vu meter // shield RGB

Filtri: -passa alto -passa banda -passa basso

Filtri:
-passa alto
-passa banda
-passa basso

-Stefano Carraro

Quarto Giorno Di Stage

Seguendo le indicazioni di Alessandro abbiamo svolto i seguenti compiti:
Abbiamo preso in esame un pacco contenente componenti difettosi, testandoli e sostituendoli nel caso non funzionassero o in caso contrario segnalando al cliente il funzionamento dell’oggetto.
Successivamente abbiamo assemblato 100 kit per stampanti 3d, con dentro il materiale necessario.
Abbiamo portato avanti il test sulla centrale metereologica, ma non sono ancora stati individuati i problemi di quest’ultima
Nel pomeriggio abbiamo riparato una stampante 3d inviata da un cliente, correggendo la posizione di alcuni pezzi essa è tornata a funzionare senza mostrare alcun problema di stampa.
In fine abbiamo Inserito dei libretti di istruzioni all’interno delle rispettive scatole successivamente riposte in magazzino.

Terzo Giorno Di Stage

Siamo stati seguiti da Alessandro, che ci ha spiegato come compilare i moduli e le email per i clienti inerenti ai prodotti non funzionanti.
Abbiamo iniziato a esaminare scatola per scatola, in alcuni casi riscontrando i problemi segnalati dall’utente, in altri invece il prodotto funzionava perfettamente.
Tra questi è stata presa in esame una centrale meteorologica, di cui il problema non è ancora stato individuato e verranno effetuati altri test nei giorni seguenti.
E per ultimo abbiamo registrato i prodotti guasti in un apposito programma risistemandoli e dividendoli come stabilito, inserendoli nei corretti scaffali.

Il secondo giorno di stage

Appena arrivati a Futura, Francesca ci ha incaricato di montare altri kit, dandoci alcune istruzioni abbiamo incominciato subito.

I kit da noi montati:

RandA: una scheda di sviluppo Raspberry e Arduino, capace di unire i due per ottenere un potente sistema capace di unire la potenza di un “computer” come Raspberry e la capacità di Arduino di gestire porte I/O , analogiche e PWM.

IMG_5076

Il secondo Kit che abbiamo assemblato è Starter Kit v5 con arduino UNO R3 esso contiene tutto il necessario per utilizzare questa piattaforma hardware open-source ormai diffusissima in tutto il mondo, comprende:

– Arduino UNO REV3                                                                                                               – Cavo USB                                                                                                                               – Breadboard 400 contatti                                                                                                         – Motore elettrico DC 3 Vdc 350 mA 14200 rpm                                                                     – Relè miniatura 12 V 1 scambio                                                                                               – Fotoresistenza                                                                                                                       – 2 LED RGB                                                                                                                          – 3 LED rossi 5 mm                                                                                                                – 3 BS170 NMOS 50V 0,5A                                                                                                     – Connettore Strip maschio 40 POLI passo 2,54 mm                                                             – Confezione 10 Jumper rosso e nero                                                                                    – 3 mini pulsanti da C.S.                                                                                                           – Transistor NPN BC547B                                                                                                       – Resistenze                                                                                                                             – Potenziometri                                                                                                                         – Buzzer                                                                                                                                   – Servomotore                                                                                                                           – Diodo                                                                                                                                       – LCD 16×2

IMG_5081 - Copia

 

Il pomeriggio abbiamo assemblato degli scaffali utilizzati per l’antibagno e la mensa.

Per ultimo abbiamo assemblato un shield di controllo per un cnc IMG_5110 IMG_5119

Il risultato finale

 

 

 

IMG_5122 IMG_5124

 

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