Nel corso di questi primi 3 giorni ci è stato assegnato il compiti di assemblare una stampante 3D…Esperienza molto divertente anche se un pò complicata. Durante il montaggio abbiamo riscontrato alcuni problemi che fortunatamente non ci hanno impedito di portarla a termine
Archivi categoria: Senza categoria
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);
}
}
-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.
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
Il pomeriggio abbiamo assemblato degli scaffali utilizzati per l’antibagno e la mensa.
Per ultimo abbiamo assemblato un shield di controllo per un cnc
Il risultato finale
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
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.
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.
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.
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.
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
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.
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