Il progetto che ti presento è un polsino arduino interattivo realizzato da due giovani appassionati Matteo e Marco, il loro progetto si basa su Lilypad, utilizza un accellerometro a 3 assi, un buzzer e dei led:
Come spesso ho scritto e risposto a tutti gli appassionati che commentano i miei articoli: se hai sviluppato un progetto e vuoi condividerlo sul blog ti offro lo spazio che meriti.
E’ quello che Marco e Matteo hanno fatto, mi hanno contattato perché hanno voglia di condividere il progetto del polsino arduino con tutti gli appassionati come te.
Il progetto: polsino arduino con lilypad
Matteo e Marco scrivono del loro progetto:
Il progetto consiste nel creare un polsino elettronico utilizzando un lilypad e un accelerometro. Ecco la lista di cose di cui hai bisogno:
- n.1 polsino (ad esempio quelli usati per giocare a basket o tennis)
- n. 1 arduino lilypad, ad esempio il lilypad 328
- n.1 convertitore seriale-usb per lilypad
- n.1 accelerometro 3 assi
- n.5 led vari di diverso tipo per abbellire il progetto
- n.1 vibe board o micromotore che permette la vibrazione
- n.1 buzzer o cicalino
- n.1 filo da cucire conduttivo
- n.1 modulo di alimentazione
consigliano di usare il lilypad power supply, comodo perché ha uno switch on-off e supporta le pile tipo AA fornendo la tensione di +5v di hai abbiamo bisogno. Il polsino riceve sui 3 ingressi analogici di arduino i tre assi x,y,z dell’accellerometro, ciascun ingresso analogico ha un range 0-1023 in cui il punto centrale è circa 512.
L’accelerometro in base al movimento del polso decide se attivare:
- i led frontali
- il buzzer
- la vibe board
- gli altri led
E’ possibile impostare l’arduino lilypad in modo che:
- i led funzionino solo quando il polsino si muove a destra o a sinistra
- il buzzer suoni solo se il movimento è verso l’alto o verso il basso
- i led frontali e la vibe board funzionino solo se ci si muove in avanti o indietro.
Se hai problemi a reperire il filo per cucire conduttivo puoi benissimo usare dei normali cavi di rame e saldarli facendo attenzione a non bruciare il polsino. Il convertitore usb-seriale va collegato all’arduino lilypad che dispone di un’uscita apposita. Tale convertitore alimenta anche l’arduino lilypad.
Lo sketch del polsino arduino
Marco e Matteo hanno realizzato non solo il polsino ma sopratutto lo sketch del polsino arduino:
int x=512,y=512,z=512,a,b,m,n; //Coordinate default e variabili void setup(){ Serial.begin(9600); pinMode(0,INPUT); //Asse X pinMode(1,INPUT); //Asse Y pinMode(2,INPUT); //Asse Z pinMode(5,OUTPUT); //Led pinMode(6,OUTPUT); //Led pinMode(7,OUTPUT); //Led pinMode(8,OUTPUT); //Led pinMode(9,OUTPUT); //Vibe Board pinMode(10,OUTPUT); //Buzzer pinMode(11,OUTPUT); //Gate Transistor per accender i Led frontali, se LOW accende i led pinMode(12,OUTPUT); //Alimenta l'accelerometro a 3 assi digitalWrite(11,HIGH); //Tengo spenti i led frontali digitalWrite(12,HIGH); //Accendo l'acceleromentro led(); led(); //Inizializzazione } void loop(){ x=analogRead(0); y=analogRead(1); z=analogRead(2); Serial.print(x); Serial.print(" "); Serial.print(y); Serial.print(" "); Serial.println(z); if(x>y){ a=1; b=2; m=x; n=y; if(z>x){ a=3; m=z; } else if(z<y){ b=3; n=z; } } else{ a=2; b=1; m=y; n=x; if(z>y){ a=3; m=z; } else if(z<x){ b=3; n=z; } } if(m>800){ if(a==1) led(); else if(a==2) strobo(); else buzzer(); reset(); } else if(n<300) { if(b==1) led(); else if(b==2) strobo(); else buzzer(); reset(); } } void led(){ digitalWrite(5,HIGH); delay(200); digitalWrite(5,LOW); digitalWrite(6,HIGH); delay(200); digitalWrite(6,LOW); digitalWrite(7,HIGH); delay(200); digitalWrite(7,LOW); digitalWrite(8,HIGH); delay(200); digitalWrite(8,LOW); } void vibe(){ //Vibrazione digitalWrite(9,HIGH); delay(200); digitalWrite(9,LOW); delay(200); } void buzzer(){ //Suono tone(10,1000); delay(300); noTone(10); } void strobo(){ //Flash led digitalWrite(9,HIGH); for(int i=0;i<8;i++){ digitalWrite(11,LOW); delay(100); digitalWrite(11,HIGH); delay(100); } digitalWrite(9,LOW); } void reset(){ x=512; y=512; z=512; delay(500); }
come puoi vedere lo sketch del polsino arduino con lilypad ha alcune difficoltà che Matteo e Marco hanno affrintato in modo corretto e pulito:
linee 06-16: inizializza i pin della lilypad indicando di utilizzare i pin 0,1 e 2 come pin di INPUT con cui leggere i 3 assi dell’accellerometro. I pin 5,6,7 ed 8 per controllare i 4 led posti nella parte posteriore del polsino ed il pin 9 per la vibrazione, il pin 10 per il buzzer ed il pin 11 per controllare il transistor collegato ai led frontali. Il pin 12 è utilizzato come alimentazione per l’accellerometro;
linee 26-28: leggi i valori analogici dei 3 assi dell’accellerometro collegato al polsino arduino ed assegna il valore letto su ciascun pin ad una variabile ( x,y o z );
linee 36-47: esegui i confronti tra le variabili x,y e z per determinare l’asse lungo il quale è avvenuta una accellerazione, tali valori e confronti determinano il valore m utilizzato per compiere l’azione desiderata;
linee 49-58: in funzione del valore m ed a, calcolati alle linee 36-47, decidi se attivare i led in modalità strobo() o se attivare il buzzer;
linee 62-75: imposta la sequenza di accensione dei led collegati ai rispettivi pin, l’accensione avviene in sequenza;
linee 77-82: definisci la funzione vibe() il cui scopo è attivare per 200 millisecondi, circa 1/5 di secondo la vibrazione mediante il pin 9;
linee 84-88: definisci la fuinzione di controllo del buzzer() che esegue una nota di valore 10 per 300 millisecondi per poi tornare in silenzio;
linee 90-99: è la funzione strobo() il cui scopo è occuparsi dell’accensione, similmente ad un Flash stroboscopico, dei led frontali del polsino;
linee 101-107: definisci la funzione di reset() con cui il polsino arduino reimposta tutti i valori relativi alle variabili x,y e z a 512, valore di default medio;
Il video delpolsino arduino all’opera
Marco e Matteo hanno anche realizzato un video demo del funzionamento del polsino arduino con lilypad e lo hanno condiviso in modo che io potessi pubblicarlo:
Buon divertimento !!!
5 commenti
Vai al modulo dei commenti
Fantastico!!
Domanda stupida… e se piove? Qualche suggerimento per rendere questo polsino[ o impianto simile] waterproof?
Autore
Ciao Yash,
la domanda è interessante, spesso si omette di considerare l’idea pioggia.
Potresti pensare di isolare tutto il circuito con del silicone e coprire tutti i cavi di collegamento con delle guaine.
Mauro
Molto interessante il progetto.
Nessuna libreria è stata utilizzata?
Mi piacerebbe vedere lo schema elettrico.
Ho un lilypad cinese senza bootloader hai qualche tutorial dettagliato?
ciao ottimo lavoro
Autore
Ciao Alessandro,
evito di acquistare materiale non originale per non trovarmi nelle tue condizioni.
Puoi cercare in internet se qualcuno ha avuto il tuo medesimo errore o provare con la procedura che si utilizza per l’arduino standalone.