Terza settimana

Nella terza settimana abbiamo aiutato i dipendenti in alcuni lavori uno di questi è la costruzione di un retropie cioè di un vecchio cabinato rimodernizzato (http://www.futurashop.it/videogiochi_arcade_7300-RETROPIEKIT?search=retropie).

Per prima cosa abbiamo saldato i vari componenti sulla shield retropie    (http://www.futurashop.it/shield_retropie_per_raspberrypi_FT1199?search=Shield%20RetroPie%20per%20Raspberry%20Pi), in seguito la abbiamo montata sul RaspberryPi e fissata alla base del nostro gioco

Abbiamo poi montato i vari pulsanti e il joystick sul relativo pannello

e di seguito montato gli speaker sulle spalle laterali

Abbiamo fissato gli speaker alla loro base

insieme ai i pulsanti select start, volume  e il pulsante per il credit.

 

Successivamente sono stati realizzati  la maggior parte dei collegamenti interni

In seguito abbiamo montato il display sul supporto e infine collegato con la board raspberry. Anche i tasti di controllo dell’LCD sono stati fissati al relativo pannello.

Dopo tutto questo abbiamo completato il cabinato montando i pannelli mancanti e il risultato è il seguente. Per testare il dispositivo abbiamo “dovuto” provare qualche gioco per testare il dispositivo.

 

WhatsApp-Image-20160609 (4) WhatsApp-Image-20160609 (5) WhatsApp-Image-20160609 (6)

Seconda settimana

Nella seconda settimana abbiamo aiutato i dipendenti in varie occasioni e abbiamo modificato il codice in modo tale da poter scrivere anche le lettere dell’alfabeto italiano.
Qui di seguito,vi riportiamo la parte di codice cambiata :

switch (num) {
case 0:            // OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
lift(1);
drawTo(bx + 12 * scale, by + 6 * scale);
lift(0);
bogenGZS(bx + 7 * scale, by + 10 * scale, 10 * scale, -0.8, 6.7, 0.5);
lift(1);
break;
case 1:           //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(1);
break;
case 2:              //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
lift(1);
drawTo(bx + 2 * scale,by + 2 *scale );
lift(0);
drawTo(bx + 8 * scale, by + 20 * scale);delay(500);
drawTo(bx + 14 * scale, by + 2 * scale);delay(500);
lift(1);
drawTo(bx + 3 * scale, by + 11 * scale );delay(500);
lift(0);
drawTo(bx + 12.8 * scale, by + 11 * scale);delay(500);
lift(1);
break;
case 3:             // FFFFFFFFFFFFFFFFFFF
lift(1);
drawTo(bx + 20 * scale, by + 11 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(1);
drawTo(bx + 2 * scale, by + 13 * scale);
lift(0);
drawTo(bx + 12 * scale, by + 13 * scale);
lift(1);
break;
case 4:              //TTTTTTTTTTTTTTTTTTTTTTTTTTTTT
lift(1);
drawTo(bx + 10 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 10 * scale, by + 20 * scale);
lift(1);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 20 * scale, by + 20 * scale);
lift(1);
break;
case 5:       //EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
lift(1);
drawTo(bx + 20 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
drawTo(bx + 20 * scale, by + 2 * scale);
lift(1);
drawTo(bx + 2 * scale, by + 12 * scale);
lift(0);
drawTo(bx + 20 * scale, by + 12 * scale);
lift(1);
break;
case 6:       //PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 12 * scale, by + 20 * scale);
drawTo(bx + 12 * scale, by + 11 * scale);
drawTo(bx + 2 * scale, by + 11 * scale);
lift(1);
break;
case 7:   // Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
lift(1);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 20 * scale, by + 20 * scale);
drawTo(bx + 2 * scale, by + 2);
drawTo(bx + 20 * scale, by + 2);
lift(1);
break;
case 8:       //GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
lift(1);
drawTo(bx + 20 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
drawTo(bx + 20 * scale, by + 2 * scale);
drawTo(bx + 20 * scale, by + 10 * scale);
drawTo(bx + 8 * scale, by + 10 * scale);
lift(1);
break;
case 9:       // DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 14 * scale, by + 12 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(1);
break;
case 10:      //QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 12 * scale, by + 20 * scale);
drawTo(bx + 12 * scale, by + 2 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(1);
drawTo(bx + 7 * scale, by + 6 * scale);
lift(0);
drawTo(bx + 15 * scale, by + 1 * scale);
lift(1);
break;
case 11:      //UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
lift(1);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 2 * scale);
drawTo(bx + 12 * scale, by + 2 * scale);
drawTo(bx + 12 * scale, by + 20 * scale);
lift(1);
break;
case 12:       //HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(1);
drawTo(bx + 2 * scale, by + 12 * scale);
lift(0);
drawTo(bx + 18 * scale, by + 12 * scale);
lift(1);
drawTo(bx + 18 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 18 * scale, by + 2 * scale);
lift(1);
break;
case 13:         // LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
lift(1);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 2 * scale);
drawTo(bx + 18 * scale, by + 2 * scale);
lift(1);
break;
case 14:         //MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);delay(500);
drawTo(bx + 10 * scale, by + 4 * scale);delay(500);
drawTo(bx + 13 * scale, by + 20 * scale);delay(500);
drawTo(bx + 13 * scale, by + 2 * scale);delay(500);
lift(1);
break;
case 15://         NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);delay(500);
drawTo(bx + 12 * scale, by + 2 * scale);delay(500);
drawTo(bx + 12 * scale, by + 20 * scale);delay(500);
lift(1);
break;
case 16:      //RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 20 * scale, by + 20 * scale);
drawTo(bx + 20 * scale, by + 11 * scale);
drawTo(bx + 2 * scale, by + 11 * scale);
drawTo(bx + 20 * scale, by + -10* scale);
lift(1);
break;
case 17:         //VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
lift(1);
drawTo(bx + 2 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 10 * scale, by + 2 * scale);
drawTo(bx + 18 * scale, by + 20 * scale);
lift(1);
break;
case 18: //CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
lift(1);
drawTo(bx + 20 * scale, by + 20 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
drawTo(bx + 20 * scale, by + 2 * scale);
lift(1);
break;
case 19://BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
lift(1);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(0);
drawTo(bx + 2 * scale, by + 20 * scale);
drawTo(bx + 17 * scale, by + 9 * scale);
drawTo(bx + 6 * scale, by + 8 * scale);
drawTo(bx + 17 * scale, by + 2.5 * scale);
drawTo(bx + 2 * scale, by + 2 * scale);
lift(1);
break;
case 20: //SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
lift(1);
drawTo(bx + 0 * scale, by + 5 * scale);
lift(0);
bogenGZS(bx + 3 * scale, by + 6 * scale, 6 * scale, -2.5, 2, 1);
drawTo(bx + 3 * scale, by + 20 * scale);
drawTo(bx + 10 * scale, by + 20 * scale);
lift(1);
break;

 

Con queste modifiche abbiamo concluso il nostro progetto arrivando al nostro scopo

Prima settimana

Salve,siamo Alessandro e Roberto due studenti della classe 4BI e 4AI dell’istituto ISIS C. Facchinetti di Castellanza.
Nel primo giorno il Signor Boris, il nostro tutor, ci ha fatto visitare l’azienda e ci ha presentato ai vari dipendenti.
Successivamente ci ha dato un Arduino UNO e abbiamo iniziato a familiarizzare con i microcontrollori(Link Ardu: http://www.futurashop.it/libro-labc-di-arduino-board-arduino-uno-rev.3-7300-ardukitbook1?search=arduino%20uno).
Per prendere confidenza abbiamo svolto alcuni esempi predisposti sull’ambiente di sviluppo (link ide: https://www.arduino.cc/en/Main/Software).

In seguito abbiamo cercato sul sito http://www.thingiverse.com/ un progetto fattibile con il nostro Arduino, abbiamo trovato il progetto di un braccio che scrive l’ora (http://www.thingiverse.com/thing:248009).
Il nostro obbiettivo però è quello di modificare il programma in modo tale da fargli scrivere anche le lettere.
Durante tutta la settimana abbiamo stampato i pezzi tramite una stampante 3D.
Abbiamo montato i pezzi

IMG-20160610-WA0035 IMG-20160610-WA0031   IMG-20160610-WA0029

In seguito abbiamo montato i servo (link servo: http://www.futurashop.it/sub-micro-servo-9g-22x11x29-mm-7300-servo206) con le corrispondenti braccia.
Abbiamo iniziato la calibrazione delle braccia tramite del codice preso da internet (https://codebender.cc/sketch:80572#Plotclock%20Final%20Calibrate.ino); è stato un lavoro abbastanza lungo in quanto la calibrazione doveva essere al millimetro altrimenti la scrittura sarebbe risultata sbagliata.

3Dprint, Quadruped e Tri-Track

Introduzione:

Ciao, noi siamo due studenti dell’ ISIS C.Fachinetti, della 3° Informatici serale. Io che attualmente sto scrivendo questo articolo sono Ivan Bottigelli mentre il mio compagno si chiama Anejar Mohamed. Appena arrivati alla futura elettronica eravamo estasiati al solo pensiero di poter utilizzare delle cose che probabilemte a scuola non avremmo potuto usare ( come la stampante 3D ).

Il Robot A Ultrasuoni

Una volta finite le 3Drag, ci è stato assegnato un compito leggermente diverso: utilizzare le nostre stampanti per creare dei pezzi utili alla costruzione di un piccolo robottino. Noi abbiamo scelto di creare un robot a ultrasuoni in grado di evitare le pareti utilizzando, appunto, gli ultrasuoni. In pratica questo robot dovrà essere in grado di seguire autonomamente la sua strada, evitando tutti gli ostacoli che gli si porranno davanti, senza andare a sbatterci contro.

Il progetto che abbiamo seguito lo abbiamo trovato su Thingiverse, dove sono presenti lista dei materiali, progetti da stampare in 3D per i 3 pezzi che comporranno il nostro robot e sketch Arduino già pronti. Abbiamo seguito questa guida per quanto riguarda la parte meccanica, per la parte elettronica e informatica abbiamo svolto noi il lavoro principale. Clicca qui per vedere il progetto e scaricare i progetti in 3D.

Il primo passo che abbiamo compiuto è stato quello di programmare sensori e motori per far muovere il robot e per leggere le distanze. Per gli ultrasuoni abbiamo utilizzato una libreria libera trovata sul web, NewPing.h, scaricabile a questo link. Per i motori, invece, abbiamo utilizzato la libreria Servo.h standard di Arduino.

La lista dei materiali che abbiamo utilizzato è la seguente:

  • 3 pezzi creati con la stampante 3D
  • 2 motori Servo
  • 2 sensori ultrasuoni HY-SRF05
  • 1 Arduino Uno
  • una mini-breadboard
  • 8 jumper maschio-femmina
  • 8 jumper maschio-maschio
  • 2 viti M3x40
  • 8 viti M3x16
  • 1 rondella M3
  • Fascette

Una volta montata la struttura abbiamo creato il circuito elettrico e iniziato a sviluppare il codice. Durante lo sviluppo del codice abbiamo avuto alcuni problemi relativi al verso in cui doveva girare il robot, ad esempio non andava diritto oppure si spegneva invece di girare. Alla fine abbiamo trovato una soluzione al nostro problema, permettendo al robot di poter girare liberamente in tutte le direzioni.

Il risultato finale è stato il seguente:

IMG_2797

 

Questo è un video che mostra il risultato del nostro lavoro:

Montaggio Stampante 3Drag V 1.2

Dopo aver finito di montare la stampante 3D Vertex®, ci è stato assegnato il compito di montare 2 stampanti 3Drag, una a testa, senza aiuti prolungati.

Il montaggio della stampante di per sè non è stato molto difficile, i problemi nella parte meccanica erano per la maggior parte dovuti a imperfezioni nei vari pezzi, come ad esempio gli angolari per le barre. Queste imperfezioni non ci hanno comunque impedito di proseguire nel lavoro, che è risultato comunque buono nonostante qualche piccola imprecisione.

La parte più difficile è stata sicuramente quella della saldatura; non è molto difficile di per sè, ma dato che a scuola non ci è mai stato insegnato come fare a saldare, abbiamo dovuto passare qualche ora con Gabriele che ce lo ha insegnato. Una volta che abbiamo imparato ad usare il saldatore, questa fase è andata via liscia, con qualche spazio lasciato per le ustioni 🙂

Il montaggio completo di questa stampante ci ha richiesto circa 24 ore di lavoro.

Una volta montate le stampanti, le abbiamo attaccate tutte e due al pc e alla corrente per verificare il loro funzionamento. La parte un po’ più noiosa è stata quella della calibrazione dei fine-corsa, che essendo in posizioni difficili da raggiungere hanno causato qualche piccolo problemino. Finita la calibrazione dei fine-corsa, abbiamo inserito il filo di plastica e abbiamo provato a stampare un piccolo fischietto. Dopo vari aggiustamenti del software, siamo riusciti ad ottenere un risultato più che soddisfacente!

Il risultato finale della stampante è stato il seguente:

IMG_2793

Montaggio Stampante Vertex®

Il primo lavoro che abbiamo portato a termine è stato il montaggio della stampante 3D Vertex®. Per svolgere questo compito, abbiamo seguito un tutorial in inglese consultabile al seguente link.

Abbiamo organizzato i nostri lavori suddividendoceli: mentre uno faceva una cosa, l’altro ne faceva un’altra, in modo da rendere più veloce la costruzione del tutto.

Solo per fare questo ci abbiamo impiegato circa due ore! Quando stavamo per montare la scheda, però, ci siamo accorti che il pannello inferiore era montato al contrario e per riposizionarlo correttamente abbiamo dovuto smontarla quasi tutta… questo errore ci ha fatto perdere molto tempo, sfortunatamente 🙁

A parte questa piccola svista, il resto è andato tutto relativamente bene. Abbiamo riscontrato qualche altro problema quando siamo arrivati al montaggio della testa dell’estrusore: qui dovevamo inserire la testa all’interno delle barre guida di alluminio e fissare le cinghie alla testa in modo che quando le pulegge attaccate ai motori giravano, si portavano dietro la testa facendola scorrere sulle barre. Dopo vari sforzi e qualche colpetto di martello qua e là, siamo riusciti ad infilarla correttamente e a farla scorrere come si deve, anche se facevano un po’ di rumore!

Il resto del lavoro è andato a gonfie vele e la stampante è stata completata dopo circa 31 ore di lavoro!

La stampante costruita da noi ha prodotto questo bellissimo mappamondo in 3D

IMG_2792