Tutorial #18 – Arduino Lilypad. Realizziamo un peluche interattivo
Per vedere tutti i tutorial: www.marcopucci.it/arduino/
Segui la pagina Tutorial Arduino su Facebook
Materiale utilizzato – Arduino LilyPad, accelerometro, sensore di forza, sensore di distanza Sharp, led RGB, resistenza 10k Ohm.
N.B: Clicca qui per scaricare il file .zip con tutti gli sketch utilizzati per realizzare il peluche interattivo.
Arduino LilyPad è una piccola scheda creata da Leah Buechlet (http://leahbuechley.com/) per realizzare dei progetti (wearable device) con l’utilizzo di tessuti e vestiti. LilyPad infatti può essere cucita su qualsiasi materiale tessile ed è lavabile. Ideale per progetti che devono essere indossati come t-shirt interattive o maglioni che comunicano con il nostro smartphone scambiandosi i dati dei sensori.
Iniziamo a scoprire le proprietà di questa scheda Arduino con un semplice tutorial che mostrerà come trasformare un vecchio peluche in un giocattolo interattivo utilizzando dei sensori di prossimità, forza e accelerometro.
Esistono numerosi componenti (sensori, bottoni, filo da cucire conducibile, ecc…) che possono essere collegati al nostro LilyPad. In questo link alcuni prodotti che utilizzeremo nei prossimi tutorial: http://www.robotics-3d.com/component/virtuemart/Arduino/lilypad
Questo tutorial è stato realizzato in collaborazione con www.robotics-3d.com che mi ha fornito i componenti per costruire il
peluche interattivo. Potete trovare tutto il materiale acquistando il box completo presso il sito www.robotics-3d.com.
Il box contiene Arduino LilyPad, accelerometro, sensore di distanza Sharp, sensore di forza, led RGB, resistenza 10K Ohm.
N.b: il peluche non è compreso nel box.
Arduino LilyPad Simple Board
LilyPad Arduino USB è una scheda leggermente più piccola del LilyPad normale (clicca qui per vedere la scheda Lilypad principale) con 5 pin di uscita (per gestire luci, vibrazione,suoni, ecc….) e 4 di ingresso (per leggere i valori dei sensori). Due pin sono utilizzati per l’alimentazione ed è possibile collegare una batteria ricaricabile da 3V per realizzare progetti con auto-ricarica. Il software si carica con un cavo micro Usb.
In questo primo tutorial dedicato ad Arduino LilyPad utilizzeremo dei cavi elettrici morbidi per evitare di saldare i sensori. E’ possibile però effettuare questi collegamenti con un filo cucibile (o con speciali tessuti) ma vedremo queste modalità nei prossimi tutorial.
Il peluche
Prendiamo un vecchio peluche e realizziamo un giocattolo interattivo. Il nuovo device sarà in grado di rilevare la presenza di una persona e accendere un led per venti secondi in modo da illuminare una culla o un lettino. Stringendo una delle zampe si illumineranno 4 led RGB a seconda della pressione esercitata. Infine ruotando il peluche si accenderà un altro led rgb di colore verde.
Con queste semplici istruzioni iniziamo a muovere i primi passi nella realizzazione di prototipi wearable ovvero device indossabili con cuciture e stoffe che trasmettono dati, applicazioni che mettono in comunicazione vestiti con il nostro smartphone o con i dati della rete.
Elettronica
Dividiamo il tutorial in tre sezioni: sensore di forza, sensore di distanza e accelerometro.
Realizziamo le tre parti elettroniche separatamente e alla fine inseriamo tutto il circuito all’interno del peluche.
Led RGB
Colleghiamo un led RGB ad Arduino LilyPad per vedere come funziona. Utilizziamo del filo elettrico morbido per avvolgere il filo nei vari buchi di Arduino. Colleghiamo il pin più lungo del led RGB alla massa (Pin –). Nell’immagine qui sotto potete vedere il filo avvolto nel Pin – e saldato nel pin lungo del led.
La stessa operazione deve essere effettuata per gli altri tre pin. Quello a sinistra del pin lungo del led RGB deve essere collegato al pin 11 del Lilypad. Il terzo pin del led al pin 10 e il quarto pin del led al pin 9 di Arduino. Nella figura qui sotto potete vedere il circuito completo.
Apriamo il software di Arduino e colleghiamolo al computer con un cavetto micro USB.
Giochiamo con il led RGB aprendo e caricando su Arduino il file precedentemente scaricato 1_ledRGB.ino (in STRUMENTI – SCHEDA selezionate LilyPad Arduino USB).
int led_red=11;
int led_green=10;
int led_blue=9;
void setup() {
pinMode(led_red,OUTPUT);
pinMode(led_green,OUTPUT);
pinMode(led_blue,OUTPUT);
I tre pin vengono utilizzati come ouput analogico ovvero è possibile assegnare un valore compreso tra 0 e 255.
}
void loop() {
analogWrite(led_red,255);
Con il comando analogWrite impostiamo il valore del pin led_red uguale a 255 (il massimo)
analogWrite(led_green,0);
analogWrite(led_blue,0);
}
Il led RGB funziona assegnado tre valori ai pin red, green e blue.
Caricando questo sketch dove solamente il rosso ha una valore alto il colore del led sarà ROSSO.
Provate a modificare i valori dei tre pin e uplodate il codice: con led_red=0, led_green=255 e led_blue=0 il led diventerà VERDE.
I tre pin possono assumenre qualsiasi valore compreso tra 0 e 255 riproducendo in questo modo tutta la gamma dei colori RGB.
Sensore di forza
Colleghiamo ora il sensore di forza. Questo sensore invia un valore ad Arduino compreso tra 0 e 1024 a seconda della pressione che esercitiamo su di esso.
Per realizzare il circuito abbiamo bisogno di una resistenza da 10k Ohm (marrone, nera, arancione) che deve essre collegata come nel circuito sopra.
Nel pin4 avviene la lettura della forza esercitata sul sensore. In base a questo numero facciamo accendere il led RGB.
Aprite lo sketch _2_LedRGB_sesnore_forza.ino.
int led_red=11;
int led_green=10;
int led_blue=9;
void setup() {
pinMode(led_red,OUTPUT);
pinMode(led_green,OUTPUT);
pinMode(led_blue,OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A4);
Lettura del valore del sensore
Serial.println(sensorValue);
if (sensorValue>201)&&(sensorValue<500){
Se il valore è compreso tra 201 e 500 allora accendo il led RGB di colore ROSSO
analogWrite(led_red,255);
analogWrite(led_green,0);
analogWrite(led_blue,0);
}
if (sensorValue>501)&&(sensorValue<700){
analogWrite(led_red,);
analogWrite(led_green,255);
analogWrite(led_blue,0);
Led RGB di colore VERDE
}
if (sensorValue>701)&&(sensorValue<1024){
analogWrite(led_red,);
analogWrite(led_green,);
analogWrite(led_blue,255);
Led RGB di colore BLU
}
else{
analogWrite(led_red,0);
analogWrite(led_green,0);
analogWrite(led_blue,0);
Se il valore non corrisponde alle tre IF precedenti (ovvero se è minore di 200) allora il led RGB è spento.
}
Alla fine del tutorial inseriamo il sensore dentro una zampa del peluche e i tre led (collegati come nello schema del circuito precedente) sulla pancia in modo da illuminare il suo cuore a seconda della pressione che esercitiamo stringendogli la zampa.
Sensore di distanza Sharp
Colleghiamo il sensore di distanza Sharp alla scheda Arduino. Nei precedenti tutorial abbiamo già visto il funzionamento di questo sensore (clicca qui).
Il led RGB collegato al sensore si illuminerà in base alla presenza di una persona nelle vicinanze del peluche.
In questo modo possiamo realizzare una lampada di emergenza da posizionare vicino alla culla o al lettino del bambino.
Colleghiamo il led RGB e il sensore con dei fili morbidi come fatto precedentemente.
N.B: Colleghiamo solo il pin GND e il quarto pin, quello che controlla il colore BLU del led.
Aprite lo sketch 3_sensore_Sharp.ino per visualizzare la parte di codice realative a questo sensore.
Alla fine tutti e tre le parti di codice saranno unite per gestire tutte le interazioni del peluche.
int led_sharp=2;
Il pin 2 comanda da solo il led RGB
void setup() {
pinMode(led_sharp,OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorSharp = analogRead(A5);
Serial.println(sensorSharp);
if (sensorSharp>401){
analogWrite(led_sharp,255);
delay(500);
Se il sensore individua una presenza accende il led RGB di colore BLU per 5 secondi.
(quando avete testato il corretto funzionamento del sistema inseriamo al posto di 500 il valore 200000 – venti secondi).
}
else{
analogWrite(led_sharp,0);
}
}
Accelerometro
Con l’accelerometro infine possiamo vedere se il peluche è in posizione orizzontale o verticale.
Cuciamo il sensore nella parte posteriore dell’orsacchiotto e leggiamo il valore della X.
Se questo valore è maggiore di 600 (questo numero verificatelo con il vostro accelerometro) allora il peluche è in posizione verticale, altrimenti è in posizione orizzontale.
In base alla sua posizione accendiamo un led RGB di colore verde.
Seguite lo schema elettrico qui sotto per realizzare il circuito.
Aprite lo sketch 4_accelerometro.ino.
int led_accel= 3;
Il pin 3 gestisce il colore verde del led RGB
void setup() {
pinMode(led_accel,OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorAccelerometro = analogRead(A2);
Serial.println(sensorAccelerometro);
if (sensorAccelerometro>590){
analogWrite(led_accel,255);
delay(1000);
Se il valore della X dell’accelerometro supera il valore di 601 (è in posizione orizzontale) allora il motorino si accende per due secondi.
}
else{
analogWrite(led_accel,0);
}
}
Abbiamo terminato il tutorial. Non rimane che unire tutti gli sketch (provate voi facendo attenzione a copiare in un unico sketch tutte le variabili e i controlli sui sensori) e cucire il nostro peluche interattivo.
Di seguito alcune immagini che spiegano i vari passaggi dell’assemblaggio di Teddy.
Fatevi aiutare dalla vostra nonna e state attenti a non utilizzare il peluche preferito di vostro figlio per realizzare questo device interattivo!!!
Clicca qui per acquistare tutti i componenti per realizzare il Peluche interattivo!
I tutorial sono liberamente scaricabili e condivisibili sotto l’etichetta Creative Commons (non è possibile commercializzarli e modificarli)
Scarica il Pdf del tutorial di Arduino “LilyPad – Peluche interattivo“
Ti è piaciuto il tutorial? Se ti va offrimi un caffè… [paypal-donation]