Questo � il post delle piccole ansie di un pap�� 

Il consueto appuntamento mensile dal barbiere Luigi per il taglio di capelli. Incontro Albino, entrambi abbiamo i figli della stessa et� che frequentano il medesimo Liceo. Inevitabile i discorsi di scuola e problemi adolescenziali, primo tra tutti la difficolt� nel trovare una passione o ampliare le proprie relazioni al di fuori della scuola.
Un’adolescente in casa insegna molte cose. Osservavo in queste serate, guardando mio figlio che studia, la modalit� con cui al liceo vengono propinate le materie scientifiche: fisica, chimica, biologia… tutte categoricamente su carta, esercizi sui moti uniformemente accelerati, studio di molecole e composti organici� solo�su carta mannaggia… il laboratorio e luogo sconosciuto, per non parlare dell�informatica� lasciamo perdere.
Non voglio incominciare il solito discorso disfattista e lamentoso su taglio delle ore dei laboratori e mancanza di denaro e se pur impegnato a scuola nel trovare soluzioni, incominciano a stancarmi i ragionamenti sui massimi sistemi e sulla funzione docente, sono pi� concentrato sulle soluzioni e dare possibilit�, nel limite delle mie forze, ai ragazzi che mostrano interesse.
Il carico di studio elevatissimo (che noto al liceo) e la quasi assenza di materie svolte in laboratorio fanno perdere nei ragazzi la percezione del senso degli argomenti che stanno studiando provocando disagio, a ci� si aggiunge il periodo di �scombussolamento ormonale� che provoca stati d�animo estremamente controversi� sicuro che mi procurer� l�ira dei colleghi del liceo� ma poco importa.
Come genitore ci si interroga continuamente e si cercano strategie che possano favorire l�accensione di quella �fiammella� di passione nei propri figli, attivando, si spera, il volano che porta al desiderio di scoperta� insomma ansie da genitori.
Tutto ci� per dire, che siano esperimenti di elettronica, osservazioni astronomiche con un telescopio, l�uso di un microscopio, � importante insegnare a dare forma fisica ai propri progetti, potranno nascere da un copia ed incolla visto su internet, ma � cos� che si impara , se non ci si ferma al copia ed incolla ovviamente, comprendere, rielaborare.
Nella mente di mio figlio, ora piena di poemi Omerici, Epica Latina e tra poco anche dei Promessi Sposi, sto cercando di inserire anche la materia �progetta e costruisci�.
Con stampante 3D e tanta elettronica che gira per casa da qualche tempo abbiamo incominciato con Arduino, robotica ed automazione in genere e come per i miei studenti anche per questo, �particolare studente�
Arduino svolge egregiamente la funzione di �facilitatore� e mi sta rendendo la vita da padre un po� pi� serena.
Corsi su Arduino ovunque online a scuola e nei FabLab� ora � giunta l�ora di farli anche alla famiglia
la figlia pi� piccola costruisce piccolo alberi di Natale con LED, il grande programmazione ed elettronica.
Con il liceale�siamo giunti in queste serate alla realizzazione di un semplice controllo di una striscia RGB che abbiamo utilizzato per adornare la zona in cui � collocato l�albero di Natale, poich� lo sketch � di interesse per alcuni miei allievi di 5�, pubblico e lascio a chi vorr� la possibilit� di migliorarlo.
La spiegazione nei commenti dello sketch.
Nello sketch che � l�ultima versione sviluppata dal giovane studente, trovate commentate alcune parti di codice che potrete attivare e che svolgono funzioni diverse.
1. Cambio colore graduale (in accensione ed in spegnimento) casuale nella scelta del colore:
- solo bianco
- solo rosso
- solo verde
- solo blu
- variazione continua di tutti i colori
2. Variazione di una sola delle modalit� del punto 1
Compiti per Natale:
3. inserimento di un sensore ad ultrasuoni che percepisce il passaggio di persone davanti all�Albero di Natale emettendo una luce intensa bianca
4. Controllo remoto con telecomando
5. Controllo remoto con cellulare (per questo per� credo che ci penser� il pap�)
materiale sufficiente per fare qualcosa di creativo durante le prossime vacanze di Natale 
Lista componenti:
- Arduino UNO R3
- N. 3 transistor BD 709 (quelli che avevo a disposizione)
- N.3 resistori da 220 Ohm
Striscia LED alimentata a 12V.
Si � utilizzato un alimentatore esterno a 12V per l’alimentazione della scheda e della striscia LED.
L’alimentazione a 12V della striscia LED � presa direttamente dalla Vin della scheda.

/* Pilotaggio striscia LED
Mattia Maffucci
...con lo zampino di suo pap� Michele
20.12.14
*/
// pin a cui � collegata la striscia LED
#define pinRosso 5
#define pinVerde 6
#define pinBlu 3
// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeBianco = 60;
// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeRosso = 60;
// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeVerde = 60;
// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeBlu = 60;
// velocit� tra un'intensit� luminosa e la successiva.
// Per rallentare il fade aumentare il valore
int velocitaFadeContinuo = 60;
// attesa prima della partenza della successiva accensione
int attesaFinaleBianco = 2000;
int attesaFinaleRosso = 2000;
int attesaFinaleVerde = 2000;
int attesaFinaleBlu = 2000;
int attesaFinaleContinuo = 2000;
// intensit� massima di bianco. Per
// rallentare il fade aumentare il valore
int limiteBianco = 30;
// intensit� massima di rosso. Per
// rallentare il fade aumentare il valore
int limiteRosso = 30;
// intensit� massima di verde. Per
// rallentare il fade aumentare il valore
int limiteVerde = 30;
// intensit� massima di blu. Per
// rallentare il fade aumentare il valore
int limiteBlu = 30;
// intensit� massima dei colori. Per
// rallentare il fade aumentare il valore
// massimo 255
int limiteContinuo = 100;
// per rallentare il fade aumentare il valore
int limiteFadeRandom = 120;
// numero massimo di colori scelto in
// maniera casuale
int randomColor = 5;
void setup() {
pinMode(pinRosso, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinBlu, OUTPUT);
}
void loop() {
// --- accensione solo bianco alla massima luminosit� ---
/*
analogWrite(pinRosso, 255);
analogWrite(pinRossoDue, 255);
analogWrite(pinVerde, 255);
analogWrite(pinVerdeDue, 255);
analogWrite(pinBlu, 255);
analogWrite(pinBluDue, 255);
*/
// ------------------------------------------------------
/*
// --- variazione luminosit� bianco ---
variazioneBianco();
// ------------------------------------------------------
*/
// --- casuale nella scelta del colore ---
casuale();
// ------------------------------------------------------
/*
// --- variazione continua colori incluso il bianco ---
variazioneContinua();
// ------------------------------------------------------
*/
}
// funzioni esterne per la variazione continua del colore
// -- casuale
void casuale() {
int sceltaSequenza=random(randomColor);
switch (sceltaSequenza) {
case 0:
variazioneBianco(limiteBianco, velocitaFadeBianco, attesaFinaleBianco);
break;
case 1:
variazioneRosso(limiteRosso, velocitaFadeRosso, attesaFinaleRosso);
break;
case 2:
variazioneVerde(limiteVerde, velocitaFadeVerde, attesaFinaleVerde);
break;
case 3:
variazioneBlu(limiteBlu, velocitaFadeBlu, attesaFinaleBlu);
break;
case 4:
variazioneContinua(limiteContinuo, velocitaFadeContinuo, attesaFinaleContinuo);
break;
default:
{
// nulla
}
}
}
// --- variazione contina del colore
void variazioneContinua(int limiteContinuo, int velocitaFadeContinuo, int attesaFinaleContinuo) {
int rosso, verde, blu;
// fade da blu a viola
for (rosso = 0; rosso < limiteContinuo; rosso++) { analogWrite(pinRosso, rosso); delay(velocitaFadeContinuo); } // fade da viola a rosso for (blu = limiteContinuo; blu > 0; blu--) {
analogWrite(pinBlu, blu);
delay(velocitaFadeContinuo);
}
// fade da rosso a giallo
for (verde = 0; verde < limiteContinuo; verde++) { analogWrite(pinVerde, verde); delay(velocitaFadeContinuo); } // fade da giallo a verde for (rosso = limiteContinuo; rosso > 0; rosso--) {
analogWrite(pinRosso, rosso);
delay(velocitaFadeContinuo);
}
// fade da verde a bianco
for (blu = 0; blu < limiteContinuo; blu++) { analogWrite(pinBlu, blu); delay(velocitaFadeContinuo); } // fade da bianco a blu for (verde = limiteContinuo; verde > 0; verde--) {
analogWrite(pinVerde, verde);
delay(velocitaFadeContinuo);
}
}
// --- variazione intensit� luminosa del bianco ---
void variazioneBianco(int limiteBianco, int velocitaFadeBianco, int attesaFinaleBianco) {
for (int fade = 0; fade < limiteBianco; fade++) { analogWrite(pinRosso, fade); analogWrite(pinVerde, fade); analogWrite(pinBlu, fade); delay(velocitaFadeBianco); } for (int fade = limiteRosso; fade >= 0; fade--) {
analogWrite(pinRosso, fade);
analogWrite(pinVerde, fade);
analogWrite(pinBlu, fade);
delay(velocitaFadeBianco);
delay(attesaFinaleBianco);
}
}
// --- variazione luminosit� del rosso
void variazioneRosso(int limiteRosso, int velocitaFadeRosso, int attesaFinaleRosso) {
analogWrite(pinVerde, 0);
analogWrite(pinBlu, 0);
for (int fade = 0; fade < limiteRosso; fade++) { analogWrite(pinRosso, fade); delay(velocitaFadeRosso); } for (int fade = limiteRosso; fade >= 0; fade--) {
analogWrite(pinRosso, fade);
delay(velocitaFadeRosso);
delay(attesaFinaleRosso);
}
}
// --- variazione luminosit� del verde
void variazioneVerde(int limiteVerde, int velocitaFadeVerde, int attesaFinaleVerde) {
analogWrite(pinRosso, 0);
analogWrite(pinBlu, 0);
for (int fade = 0; fade < limiteVerde; fade++) { analogWrite(pinVerde, fade); delay(velocitaFadeVerde); } for (int fade = limiteVerde; fade >= 0; fade--) {
analogWrite(pinVerde, fade);
delay(velocitaFadeVerde);
delay(attesaFinaleVerde);
}
}
// --- variazione luminosit� del blu
void variazioneBlu(int limiteBlu, int velocitaBlu, int attesaFinaleBlu) {
analogWrite(pinRosso, 0);
analogWrite(pinVerde, 0);
for (int fade = 0; fade < limiteBlu; fade++) { analogWrite(pinBlu, fade); delay(velocitaFadeBlu); } for (int fade = limiteBlu; fade >= 0; fade--) {
analogWrite(pinBlu, fade);
delay(velocitaFadeBlu);
delay(attesaFinaleBlu);
}
}