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.

striscia-led02

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

Articoli simili:

Pubblicato in arduino, i miei allievi | Contrassegnato , , , , , , , , , | 3 commenti

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!

Articoli simili:

Pubblicato in arduino, i miei allievi, programmazione, Raspberry Pi | Contrassegnato , | 2 commenti

I migliori siti dove imparare a programmare

coding
Di recente ho affrontato una discussione via Facebook con alcuni studenti di scuola superiore che mi chiedevano consiglio su risorse, libri e siti, da cui partire per incominciare a programmare.
Il mio approccio è assolutamente didattico e le mie valutazioni sono fatte analizzando risorse gratuite e semi gratuite adatte a chi incomincia, quindi pur non essendo io un insegnante di informatica, ma un insegnante che usa l’informatica per spiegare altri argomenti, ritengo di poter sostenere che questa breve collezione (una selezione di alcuni dei mie bookmarks) di risorse che ho realizzato per gli studenti possa essere un buon punto di partenza per incominciare a costruirsi da soli competenze immediatamente spendibili. Il consiglio quindi per lo studente è quello di assumere un attegiamento nei confronti della propria formazione più attivo e da ricercatore, un buon modo ad esempio potrebbe essere quello di non essere semplici utilizzatori di app all’ultima moda ma creatori di app utili per voi e per gli altri.
Quindi nessun corso costoso, il costo di tutto risiede nel tempo che vorrete dedicarci.

Per chi fosse invece interessato ad un percorso indirizzato a giovanissimi studenti consiglio la lettura del mio post: Insegnare ai bambini a programmare

Continua a leggere

Articoli simili:

Pubblicato in corsi, programmazione | Contrassegnato , , , , , | Lascia un commento

EduRobot a Restructura 2014

In questi giorni (dal 27 al 30 di novembre) si sta svolgendo la 27′ edizione di  Restructura, la manifestazione che si occupa Riqualificazione – Recupero – Ristrutturazione.  In occasione del percorso di aggiornamento sulla digital fabrication organizzato dall’agenzia di formazione Oltre e Regione Piemonte, che mi vede coinvolto insieme ad altri colleghi di altri istituti di Torino, verranno presentate le prime esperieze sviluppate dai vari istituti durante il percorso di formazione. Nella giornata di venerdì 28 novembre 2014 dalle ore 14 alle ore 16 sarò presente presso la fiera per rappresentare il mio istituto l’IIS Galilei Ferrari (all’interno della zona CNA, angolo sud-est dello spazio oval) parlerò di EduRobot è l’attività in mostra ha il titolo:

Didattica della robotica con Arduino – realizzazione e programmazione

Mostrerò praticamente l’attività del fare robotica a scuola con Arduino, sia dal punto di vista organizzativo in classe che di contenuti (elettronica, informatica) partendo dal kit EduRobot UNO mostrando anche la prima versione funzionante di EduRobot DUE.

Quindi una “conferenza laboratorio”, chi vorrà potrà partecipare all’attività pratica.

Con me porterò tutte le evoluzioni sperimentali che hanno condotto al kit che già dalla prossima settimana utilizzerò in classe.

Il mio intervento rientra all’interno delle iniziative che vede coinvolti gli Istituti Scolastici: Galilei-Ferrari, Maxwell, Bodoni-Paravia, Peano e Sk1n e FabLab di Settimo.

Per ulteriori informazioni seguite il link.

Oval – Lingotto Fiere ingresso e parcheggi Via Giacomo Mattè Trucco, 70
ingresso pedonale Via Nizza, 280 – Torino

oltre

Articoli simili:

Pubblicato in news | Contrassegnato , , | Lascia un commento

EduRobot – versione 2 del kit di base

Ho apportato alcune modifiche alla versione EduRobt UNO a cui ho aggiunto ruote e sostituito i supporti di equilibrio il tutto realizzato in legno. Nella prima versione i supporti erano cotituiti da due viti.
Nella pagina di riferimento potete trovare i nuovi sorgenti grafici pronti per essere tagliati a laser.
Di seguito alcune foto che mostrano come ralizzare i supporti di equilibrio in legno.

Come richiesto da alcuni utenti ho aggiunto un link diretto alla pagina di EduRobot dalla colonna destra di questo sito.

edurobt-01

edurobt-05

Fissaggio delle ruote in legno mediante le due viti in dotazione al servomotore.

I fori aggiuntivi che mostrati nella foto sono un refuso di una versione precedente non più presente nella versione definitiva che trovate nel sorgente grafico.

edurobt-02

Sono stati utilizzati due listello di legno a base quadrata con lato 1 cm e lunghezza 45 mm a cui è stato fatto un foro da 2 mm con un invito da 3 mm in modo che la vite potesse entrare e avvitarsi bloccando in modo solidale il supporto di equilibrio alla base del robot.

Per il fissaggio dei supporti di equilibrio sono state utilizzate due viti da 20 mm.

edurobt-03

edurobt-04

Articoli simili:

Pubblicato in arduino, robotica | Contrassegnato , | Lascia un commento

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.

Articoli simili:

Pubblicato in i miei allievi, letture, news | Contrassegnato , , , , , , | 4 commenti

Teachers for Teachers 2014

t4t

Anche quest’anno si svolgerà l’interessantissimo workshop T4T che coinvolge molti colleghi della scuola superiore in conferenze e attività laboratoriali organizzate dal Dipartimento di Informatica dell’Università di Torino.

Dal sito:

Il Dipartimento di Informatica dell’Università di Torino propone il workshop Teachers for Teachers (T4T) per insegnanti di ogni livello e tipo di scuola.

Quest’anno il workshop è alla sua terza edizione, dopo il successo delle precedenti svoltesi nel 2012 (T4T 2012) e 2013 (T4T 2013).
Il workshop è costituito da varie unità svolte interamente in laboratorio che possono essere seguite singolarmente oppure composte, secondo le esigenze di ciascun partecipante, in un percorso di piú unità. T4T è gratuito.

Destinatari

Il workshop si rivolge ad insegnanti di ogni livello e tipo di scuola, e ha il riconoscimento e il sostegno della Direzione regionale del Ministero dell’Istruzione, dell’Università e della Ricerca. Il workshop costituisce per gli insegnanti partecipanti uno stage di aggiornamento, per il quale può essere richiesto il riconoscimento dei 5 giorni per attività di formazione di cui all’art.64 CCNL scuola 2009. Verrà rilasciato attestato di partecipazione.

Scopi del workshop T4T

Lo scopo primario dei workshop T4T è di favorire la presenza dell’Informatica come scienza nella scuola italiana, seguendo le raccomandazioni espresse nel “Manifesto per l’Informatica nella Scuola Secondaria” dell’Associazione dei ricercatori e professori di Informatica delle università italiane (GRIN Gruppo Ricercatori di Informatica Nazionale) insieme con CINI e GII (Consorzio interuniversitario per l’Informatica e Gruppo Ingegneri Informatici). Le attività proposte, basate sulle esperienze sviluppate congiuntamente negli ultimi anni dal Dipartimento di Informatica dell’Università degli Studi di Torino e da un gruppo di insegnanti attivi in varie scuole, sono finalizzate al raggiungimento di questo scopo.
In linea con la precedente questa nuova edizione si propone di coinvolgere anche insegnanti che operano in scuole secondarie che non prevedono l’informatica come disciplina curricolare.
Obiettivo finale è che gli insegnanti riescano ad integrare nei curricula di cui sono responsabili le attività svolte durante T4T e le facciano conoscere ad altri insegnanti nelle varie scuole, col supporto dei responsabili del workshop che saranno a disposizione durante l’anno scolastico attraverso un ambiente virtuale specifico e in alcuni incontri le cui modalità e date saranno decise al termine del workshop stesso.

Maggiori informazioni sul programma ed iscrizioni potete trovarle sul sito di riferimento.

Articoli simili:

Pubblicato in news | Contrassegnato , , , , , , | Lascia un commento

Borsa di studio presso: I3P – Incubatore Politecnico di Torino

i3p

Vi segnalo questa interessantissima opportunità che mi è stata comunicata oggi dall’amico e collega Fabio Carruccio.

3 posti disponibili – Grant: 3000€ per una durata di 6 mesi
Deadline 9 dicembre

Incontra l’ecosistema dell’innovazione del territorio torinese e impara a raccontarlo. Sarà un’esperienza importante per il tuo percorso di innovatore. All’I3P troverai storie esemplari di startup, persone supercompententi, un ambiente tecnologicamente molto avanzato.

I tuoi mentor ti daranno indicazioni sulle storie da cercare. E la redazione di Nòva ti indicherà come pubblicarle. Comincerai con un programma di massima, anche in relazione al tuo progetto. E poi aggiusterai il programma in base a quello che troverai, all’esperienza che farai e alle notizie di attualità.

Cosa si fa:

Durante i sei mesi del grant potrai incontrare gli innovatori del territorio, imparare da loro e descrivere quello che fanno. La possibilità di scrivere o pubblicare video su Nòva ti aprirà molte porte interessanti per chi voglia fare innovazione. Dovrai usare con molto senso di responsabilità questa opportunità. I tuoi mentor ti daranno indicazioni sulle storie da cercare. E la redazione di Nòva ti indicherà come pubblicarle. Comincerai con un programma di massima, anche in relazione al tuo progetto. E poi aggiusterai il programma in base a quello che troverai, all’esperienza che farai e alle notizie di attualità.

Maggiori informazioni sul sito di riferimento.

Articoli simili:

Pubblicato in corsi | Contrassegnato , , , | Lascia un commento

EduRobot UNO – Come costruire il vostro primo Arduino Robot – Lezione 3

banner-edurobot-uno-lezione3 Diamo movimento al nostro robot Se siete arrivati fino a questo punto avete aggiunto alle vostre competenze l’uso dei servomotori e dei sensori ad ultrasuoni. Combiniamo queste due abilità sarete in grado di movimentare il vostro robot facendogli evitare ostacoli. Incominciamo con unire il codice per governare i servomotori e il sensore ad ultrasuoni che avete utilizzato:

#include <Servo.h>

// creazione degli oggetti servo
Servo MotoreSinistro;
Servo MotoreDestro;

const int periodoStampaSuSeriale = 250;       // stampa sulla Serial Monitor ogni 1/4 di secondo
unsigned long ritardoSuSeriale = 0;

const int periodoLoop = 20;          // un periodo di 20 ms = una frequenza di 50Hz
unsigned long ritardoLoop = 0;

// specifica i pin di trig e echo usati per il sensore ad ultrasuoni
const int TrigPin = 8;
const int EchoPin = 9;

int distanza;
int durata;

void setup()
{
  Serial.begin(9600);     // configurazione dei pin Arduino a cui colleghiamo il sensore
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);

  MotoreSinistro.attach(11);
  MotoreDestro.attach(10);
}

void loop()
{
    printOutput(); // stampa un messaggio di debug sulla Serial Monitor
    if(millis() - ritardoLoop >= periodoLoop)
    {
        letturaSensoreUltrasuoni(); // legge e memorizza la distanza misurata
        ritardoLoop = millis();
    }
}

void letturaSensoreUltrasuoni()
{
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);                  // mantiene alto il trigger per almeno 10us
    digitalWrite(TrigPin, LOW);
    durata = pulseIn(EchoPin, HIGH);
    distanza = (durata/2)/29;
}

void printOutput()
{
    if((millis() - ritardoSuSeriale) > periodoStampaSuSeriale)
    {
        Serial.print("distanza: ");
        Serial.print(distanza);
        Serial.print("cm: ");
        Serial.println();
        ritardoSuSeriale = millis();
    }
}

Continua a leggere

Articoli simili:

Pubblicato in arduino | Contrassegnato , , , , , | 6 commenti