Archivi categoria: i miei allievi

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� 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.

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);
  }
}

Computer Science Education Week – 8 -14 dicembre 2014

logo
L’Ora del Codice � in arrivo. Insegnanti e studenti, programmate la vostra Ora del Codice!

Perch� non passare un’ora nell’insegnare informatica con Arduino o Raspberry Pi?
Computer Science Education Week si svolger� questo mese dall’8 al 14 dicembre 2014.
L’appello di csedweek.org e code.org nel trascorrere una sola ora durante la settimana su un’attivit� di informatica: come scrivere codice o imparare in modo divertente concetti di logica o di matematica. Sul sito csedweek.org trovate una serie di proposte e attivit� didattiche pronte per essere usate in classe con allievi di ogni et�.

Iscrivetevi all’iniziativa e buon divertimento!

Risorse didattiche: Il PLC S7-1200 – il libro di Giovanni Pirraglia

il-plc-s7-1200E’ da qualche tempo che mi occupo di programmazione di PLC a livello didattico in quanto nel percorso di studi dei mie allievi � previsto l’uso di questo strumento estremamente importante in ambito aziendale. Trovare testi validi con un’impronta pratica, spendibile immediatamente in attivit� di laboratorio non �, a mio avviso cosa semplice. Fortunatamente la rete di conoscenze di colleghi mi ha permesso di conoscere lo scorso 15 novembre a Brescia durante il mio corso Arduino, il collega Giovanni Pirraglia, docente di Elettrotecnica ed Automazione ed esperto formatore PLC che mi ha fatto dono del suo ultimo libro: IL PLC s7-1200 Programmazione BASE e AVANZATA con TIA Portal v11/12.

Il volume tratta il PLC S7-1200 SIEMENS e il software TIA Portal v11/12. E’ sia un libro di teoria che di pratica. Gli esercizi proposti sono sviluppati e risolti. Viene trattata sia la programmazione base che avanzata con la tecnica grafcet e ladder. I blocchi OB (blocchi organizzativi), FC (funzioni), FB (blocchi funzionali) e DB (blocchi dati) sono utilizzati nei progetti sviluppati nel testo. Tra gli argomenti anche l’orologio hardware e gli ingressi e uscite analogiche.

Nel volume vengono evidenziate tutte le novit� apportate da “TIA Portal v11/12”, il nuovo software di gestione di tutti i dispositivi di automazione, dove non � pi� necessario conoscere il software specifico per ogni PLC, ma si programma tutto attraverso un’unica piattaforma che permette anche l’interazione tra i diversi PLC, gli HMI e i sistemi di controllo.

Il dettaglio degli argomenti trattati potete trovarlo direttamente sul suo sito: www.plcs7-1200.it con molte integrazioni, tra cui filmati visualizzabili via web che rendono ancor pi� agevole l’apprendimento. Moltissime le risorse messe a disposizione, tutte ottime per essere usate immediatamente in classe.

Per ulteriori informazioni vi invito a contattare il collega.

Arduino – lezione 09: uso di LED RGB

Mi viene continuamente richiesto da molti lettori di questo blog di inserire le lezioni che svolgo a scuola con i miei studenti quindi dopo questa tirata d’orecchie che mi viene fatta 🙂 spessissimo riprendo questa attività.

Per dare ordine al percorso di apprendimento, riprendo i contenuti sviluppati nelle mie slide di dominio pubblico e quanto già scritto in una mia precedente attività pratica svolta con gli studenti: Arduino: effetti luminosi per rendere attraente la lezione

Agendo in questo modo i miei colleghi, che desiderano implementare una didattica in cui viene utilizzo Arduino, si troveranno una sequenza ordinata di lezioni dove gli argomenti e gli esercizi sono scelti per sviluppare ed approfondire aspetti particolari della programmazione, quindi perdonate le ripetizioni (fisime da Prof. bacchettone), ma l’ordine è fondamentale  se si desidera spiegare e quindi faccio ordine 🙂

Parliamo dei LED RGB, uno dei componenti che suscita negli studenti sempre molto interesse, soprattutto perché si presta a molteplici attività creative i LED RGB.

Quanto scritto è ripreso dalle mie slide che sono di dominio pubblico a queste aggiungerò ulteriori esercizi.

I led RGB sono led capaci di produrre 3 differenti lunghezze d’onda:

  • Rosso (R, red)
  • Verde (G, green)
  • Blu (B, blue)

arduino-led-rgb-01

Posseggono 4 terminali e si possono presentare in due tipi di configurazione:

  • 1 anodo e 3 catodi (RGB ad anodo comune)
  • 3 anodi e 1 catodo (RGB a catodo comune)

La mescolanza dei tre colori dà luogo ad una luce di un determinato colore che dipende dall’intensità di ciascuno dei tre colori originari (si veda la composizione RGB) Continua a leggere

Partono i miei corsi Arduino a Torino

banner-corsi-arduino-torinoIl prossimo 14 ottobre incominceranno i miei corsi Arduino presso l’agenzia di Formazione Immaginazione e lavoro di Torino. Circa 5 mesi di corso dove partendo da zero condurrò gli studenti ad affrontare problematiche tecniche che spaziano dall’automazione civile ed industriale alla robotica utilizzando tanta elettronica, informatica e dove fulcro di questa attività sarà Arduino su cui si svilupperà tutto il percorso didattico.
Il corso sarà una nuova occasione per rielaborare e mettere in pratica una nuova idea di intendere la didattica che è quello di rendere gli spazi scuola, l’aula e il laboratorio un tutt’uno, dei veri e propri Makerspace, in cui, spero, possa essere diffusa la cultura maker basata sulla condivisione della conoscenza, collaborazione nell’apprendere e costruire, dove l’obiettivo ultimo è quello di creare un gruppo classe che impara ad imparare, studenti appassionati ed autonomi (sogni da insegnanti… ma è bello provarci).