Due papà ansiosi dal barbiere ed una striscia led per la mente

Questo il post delle piccole ansie di un pap 🙂

striscia-led01

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 solosu carta mannaggia… il laboratorio e luogo sconosciuto, per non parlare dellinformatica 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 danimo estremamente controversi sicuro che mi procurer lira dei colleghi del liceo ma poco importa.
Come genitore ci si interroga continuamente e si cercano strategie che possano favorire laccensione 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, luso 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 lora di farli anche alla famiglia 🙂 la figlia pi piccola costruisce piccolo alberi di Natale con LED, il grande programmazione ed elettronica.

Con il licealesiamo giunti in queste serate alla realizzazione di un semplice controllo di una striscia RGB che abbiamo utilizzato per adornare la zona in cui collocato lalbero 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 lultima 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 allAlbero 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.

strip-led-rgb

/* 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);
  }
}
Questa voce è stata pubblicata in arduino, i miei allievi e contrassegnata con , , , , , , , , , . Contrassegna il permalink.

5 risposte a Due papà ansiosi dal barbiere ed una striscia led per la mente

  1. sara scrive:

    Bellissimo questo post♥

  2. Antonio Valenti scrive:

    Condivido il post…il discorso poi si complica se si pensa anche alla parvità delle ore di laboratorio nei percorsi universitari (almeno per gli indirizzi scientifici). E cosa dire poi delle grandi “potenzialità di make faire” che il laboratorio offre proprio per creare una significativa metodologia di approccio al mondo del lavoro?
    Professore, complimenti sempre per l’interessantissimo sito e, con l’occasione, tanti auguri di buon Natale.
    Antonio

    p.s. nell’esempio citato dal post la striscia Led è alimentata a parte con i 12 V?

    • admin scrive:

      Ciao Antonio, grazie.

      Condivido quanto scritto da te.
      Purtroppo la mancanza di un progetto a lungo termine per la scuola/università che ne accresca la qualità, assolutamente prioritario per la crescita di un paese, credo sia ancora uno slogan usato alla bisogna.
      La necessità è quella di risolvere subito nell’immediato, i primo passo è quello della legalità il secondo è quello della condivisione della conoscenza, che porterebbe ad una crescita economica solida e vera, azioni che necessariamente devono nascere dal basso, dalla scuola, dal singolo… un discorso lungo.

      Si nell’esempio la striscia LED è alimentata a 12V, l’alimentazione della striscia è presa direttamente dalla Vin della scheda Arduino, quindi se si alimenta la scheda con un alimentatore a 12V sulla Vin vi saranno i 12V.
      Grazie per la precisazione, aggiungo nel post.

      Buone Feste.
      Saluti.

  3. Simone Gimelli scrive:

    Assolutamente d’accordo sulla totale mancanza si riscontri pratici nella didattica italiana, aspetto che invece potrebbe accrescere enormemente l’interesse.
    Complimenti per il sito, è da un po’ che lo seguo e trovo degli spunti molto interessanti.

    Mi sembra che il circuito disegnato con Fritzing non sia corretto, i collettori non sono collegati a nulla e gli emettitori cortocircuitati tra loro e i negativi della striscia led.

    Saluti

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.