Divertiamoci (e impariamo) con Arduino

A Spaziolab8 il corso “Costruiamo la casa del futuro” è partito! Sabato 6 aprile il primo incontro con Fabio Genovese, Alessandro Perlongo e Francesca D’Arrigo ha visto la partecipazione entusiasta dei ragazzi alle prese col kit Arduino.

E’ stato l’inizio di un percorso alla scoperta dell’elettronica più creativa e divertente.

Un’esperienza che non si ferma al nostro workshop.
Fabio ha messo a disposizione di tutti gli aspiranti programmatori un ‘gioco’ da lui ideato, realizzabile con un kit Arduino.
Eccolo (grazie, ingegnere!).
E con i nostri ragazzi ci vediamo a Spaziolab8 per gli altri due workshop Sabato 13 e 20 aprile.

Lezione 1. Gioco delle “Belle statuine” realizzato con sensore passivo a infrarossi (PIR) e led colorati

Rilasciato su licenza Open Source GPLv3 da Fabio Genovese
eMail: ing.fabiogenovese@gmail.com


Il gioco consiste nell’avvicinarsi al sensore poco a poco, evitando di far accendere tutti e tre i led. Il programma caricato su Arduino in questa lezione legge ogni secondo il sensore, se viene rilevato movimento viene acceso prima il led verde, poi il led giallo e alla fine il led rosso. Se si accendono tutti e tre i led, hai perso. Se arrivi a toccare il sensore senza far accendere tutti i led, hai vinto!

Per una resa ottimale, i regolatori trimmer del sensore PIR vanno impostati sul livello minimo (girati al massimo in senso antiorario) e il jumper in posizione “H”



define SENSORE 12 //associo il sensore al pin 12

define LEDVERDE 2 // associo il led verde al pin 2

define LEDGIALLO 7 // associo il led giallo al pin 7

define LEDROSSO 8 // associo il led rosso al pin 8

int ti_ho_visto = 0;

void setup() {
pinMode(LEDVERDE,OUTPUT); // imposto il LED verde come uscita
pinMode(LEDROSSO,OUTPUT); // imposto il LED rosso come uscita
pinMode(LEDGIALLO,OUTPUT); // imposto il LED giallo come uscita
pinMode(SENSORE,INPUT); // imposto il sensore come ingresso
}

void loop() {
if(digitalRead(SENSORE) == HIGH )
// Il sensore ti ha visto!
ti_ho_visto++;
// incremento il numero di volte che ti ho visto di fila
else
{
ti_ho_visto=0; // se non ti vedo più, metto il contatore a zero.
}

switch (ti_ho_visto) {
case 0:
// non ti ho ancora visto, sei fortunato! Tengo tutto spento.
digitalWrite(LEDVERDE,LOW);
digitalWrite(LEDROSSO,LOW);
digitalWrite(LEDGIALLO,LOW);
break;
case 1:
// ti ho visto una volta, accendo solo led verde
digitalWrite(LEDVERDE,HIGH);

digitalWrite(LEDROSSO,LOW);
digitalWrite(LEDGIALLO,LOW);
break;

case 2:
// ti ho visto due volte, accendo solo verde e giallo
digitalWrite(LEDVERDE,HIGH);
digitalWrite(LEDROSSO,LOW);
digitalWrite(LEDGIALLO,HIGH);
break;

default:
// ti ho visto tre volte o più, accendo anche il rosso
digitalWrite(LEDVERDE,HIGH);
digitalWrite(LEDROSSO,HIGH);
digitalWrite(LEDGIALLO,HIGH);
break;
}

delay(2000); // aspetto 2 secondi prima di ricontrollare

}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *