Archivi categoria: corsi

Tecniche e applicativi per organizzare il lavoro a scuola e ottimizzare la gestione del tempo

Durante la nostra attività lavorativa come insegnanti siamo chiamati a svolgere numerose attività: progettare lezioni, scrivere verbali, valutare, formarci, gestire progetti ma queste sono solo alcune delle decine di attività del docente.

  • Come non soccombere al proprio lavoro?
  • Come è possibile gestire tutti gli incarichi assegnati?
  • Che cosa distingue chi è solo bravo e competente in una disciplina da chi riesce a rendere coinvolgente l’attività didattica?

La risposta a queste domande richiede inevitabilmente formazione, ma per trovare una risposta è fondamentale la propria capacità di saper pianificare e organizzare. In questo corso ci occuperemo del “primo passo da compiere” ovvero suggerire strategie e software che possono essere di aiuto per non soccombere alla grande quantità di compiti bisogna svolgere. Verranno presentati una serie di software per gestire molte delle azioni della vita lavorativa in modo da poter intraprendere un percorso decisionale chiaro e lineare:

  • gestire il tempo lavoro
  • pianificare attività
  • sviluppare progetti
  • realizzare blocchi appunti condivisi
  • scrivere in modalità condivisa
  • gestire gruppi di persone
  • messaggistica categorizzata
  • ottimizzare la realizzazione di presentazioni
  • gestire la propria presenza on-line

Saranno svolti 4 incontri di 2 ore ciascuno per un totale di 8 ore

  • Lunedì 16 dicembre 2019 – dalle ore 17.00 alle 19.00
  • Mercoledì 18 dicembre 2019 – dalle ore 17.00 alle 19.00
  • Giovedì 19 dicembre 2019 – dalle ore 17.00 alle 19.00
  • Venerdì 20 dicembre 2019 – dalle ore 17.00 alle 19.00

Per maggiori informazioni su contenuti e modalità di iscrizione seguire il link allegato sul sito di Tecnica della Scuola.

About Robotics – A proposito di Robotica | European Robotics Week 2019

Dal 14 al 25 novembre 2019 si svolgerà in Europa e in altre nazioni del mondo la nona Edizione della European Robotics Week, una manifestazione che vuole mettere in evidenza l’importanza e i vantaggi della robotica in ogni settore. Numerosi sono gli eventi organizzati anche in Italia uno degli appuntamenti fissi è quello che a Torino organizza il Fab Lab di Torino insieme al gruppo Robot Side e per tale occasione sono stato invitato come relatore il 24/11/2019 il mio intervento è previsto per le 16,30.

Poichè sono insegnante il mio talk sarà centrato sulla didattica della robotica, sulle sperimentazioni che svolgo con i miei allievi dell’ITIS G.B. Pininfarina di Moncalieri e con i docenti che seguono i miei corsi di formazione. Porterò con me le automazioni che utilizzo ogni giorno, i kit robotici costruiti per far didattica e parlerò di progetti in cantiere.

Per maggiori informazioni sul programma e le modalità di iscrizione seguite il link all’evento su Facebook.

Vi aspetto 🙂

Sesta edizione del corso: STARTER KIT DELLE COMPETENZE DIGITALI per il docente che vuole usare al meglio le tecnologie didattiche

Siamo giunti alla sesta edizione di uno dei corsi più richiesti che svolgo per Tecnica della Scuola.

Saranno svolti 3 incontri di 2 ore ciascuno per un totale di 6 ore

  • Lunedì 18 novembre 2019 – dalle ore 17.00 alle 19.00
  • Mercoledì 27 novembre 2019 – dalle ore 17.00 alle 19.00
  • Giovedì 28 novembre 2019 – dalle ore 17.00 alle 19.00

Come sempre succede in ogni nuova edizione ci saranno nuovi contenuti e risorse per l’apprendimento all’uso delle tecnologie didattiche, tutte soluzioni che ho sperimentato con docenti e studenti in questi mesi.
Per chi segue i miei canali social su Facebook e Instagram potrà vedere alcune pillole di ciò che ho sperimentato, dalla realtà aumentata, nuove soluzioni per coding e robotica e applicativi web per la progettazione didattica, tutto questo ed altro da lunedì prossimo.

Per chi lo desiderasse è ancora possibile iscriversi al corso, per maggiori informazioni su contenuti e modalità di iscrizione vi rimando al sito di Tecnica della Scuola.

Evitare il loop di messaggi inviati sulla Serial Monitor

Con questo post rispondo ad alcuni miei studenti su quesiti posti sull’uso di Arduino durante il ripasso condotto in questi giorni sulla modalità di stampa di messaggi sulla Serial Monitor.

L’esercizio assegnato consisteva nella tipica accensione e spegnimento di un LED mediante un pulsante con antirimbalzo software, nella seconda parte bisognava aggiungere un secondo pulsante che permetteva di accendere e spegnere un secondo LED e nella terza fase segnalare l’accensione e lo spegnimento sulla Serial Monitor mediante i messaggi:

“LED Rosso ON”
“LED Rosso OFF”
“LED Verde ON”
“LED Verde OFF”

Qundi per ciascun LED, alla prima pressione del pulsante accensione del LED e segnalazione ON sulla Serial, alla seconda pressione del pulsante segnalazione OFF sulla Serial e spegnimento del LED, ovviamente senza alcun limite sul numero di pressioni sui pulsanti.

Gli studenti sono riusciti a realizzare lo sketch ma con il solito problema di ripetizione in loop del testo di segnalazione sulla Serial.

Il problema può essere superato utilizzando un codice simile al seguente:

int stampaMessaggio = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  if(!stampaMessaggio)
  {
     Serial.println(“Qualsiasi testo da stampare una sola volta…“);
     stampaMessaggio = 1;
  }
}

Nel primo ciclo di loop la condizione dell’if risulterà vera e ciò permetterà l’esecuzione della stampa del testo,  successivamente impostata la variabile “stampaMessaggio” ad 1 non sarà più possibile stampare il testo al ciclo di loop successivo in quanto “!stampaMessaggio” risulterà uguale a 0.

Di seguito le due soluzioni, la prima con testo in loop sulla Serial, mentre la seconda con testo NON in loop.

Al fondo del post un esercizio aggiuntivo per i miei studenti.

All’interno del codice la spiegazione del funzionamento.

Soluzione con testo di output in loop

/*
   Prof. Michele Maffucci
   Accensione e spegnimento
   23.09.19

   Accensione e spegnimento di LED mediante pulsanti
   con antirimbalzo e messaggio ripetuto dello stato del LED
   sulla Serial Monitor

   Pulsante Rosso: accensione e spegnimento LED Rosso
   (prima pressione accende, seconda pressione spegne)

   Pulsante Verde: accensione e spegnimento LED Verde
   (prima pressione accende, seconda pressione spegne)

*/

// ledRosso variabile di tipo intero a cui viene assegnato
// il valore intero 5 che sarà associato al pin digitale 5

int ledRosso = 5;

// ledVerde variabile di tipo intero a cui viene assegnato
// il valore intero 4 che sarà associato al pin digitale 4

int ledVerde = 4;


// pulsanteRosso variabile di tipo intero a cui viene assegnato
// il valore intero 7 che sarà associato al pin digitale 7
// a cui sarà collegato il pulsante che comanda il LED Rosso

int pulsanteRosso = 7;

// pulsanteVerde variabile di tipo intero a cui viene assegnato
// il valore intero 6 che sarà associato al pin digitale 6
// a cui sarà collegato il pulsante che comanda il LED Verde

int pulsanteVerde = 6;

// inizializzazione della variabili in cui verrà memorizzato il valore della
// digitalRead: 0 non premuto, 1 premuto

int valRosso = 0;
int valVerde = 0;

// inizializzazione della variabili in cui verrà memorizzato lo stato del pulsante
// All'avvio dello sketch i pulsanti non sono premuti

int statoRosso = 0;
int statoVerde = 0;

// inizializzazione della variabili in cui verrà memorizzato lo stato precedente del pulsante
// All'avvio dello sketch i pulsanti non sono premuti

int valRossoOld = 0;
int valVerdeOld = 0;

void setup() {
  pinMode(ledRosso, OUTPUT);           // imposta il pin digitale come output
  pinMode(ledVerde, OUTPUT);           // imposta il pin digitale come output
  pinMode(pulsanteRosso, INPUT);       // imposta il pin digitale come input
  pinMode(pulsanteVerde, INPUT);       // imposta il pin digitale come input

  Serial.begin(9600);                 // imposta la velocità di scrittura della serial monitor
}

void loop() {

  valRosso = digitalRead(pulsanteRosso);  // lettura dell'input (pulsante) e memorizzazione in valRosso
  valVerde = digitalRead(pulsanteVerde);  // lettura dell'input (pulsante) e memorizzazione in valVerde

  // ---------- Controllo pulsante LED Rosso ----------

  if ((valRosso == HIGH) && (valRossoOld == LOW)) {
    statoRosso = 1 - statoRosso;

    // antirimbalzo software - attesa di 15 ms per attendere che l'input si stabilizzi
    delay(15);
  }


  // memorizzazione del valore precedente restituito dalla digitalRead

  valRossoOld = valRosso;

  // ---------- Controllo pulsante LED Verde ----------

  // viene controllato che l'input sia HIGH (pulsante premuto) e cambia lo stato del LED

  if ((valVerde == HIGH) && (valVerdeOld == LOW)) {
    statoVerde = 1 - statoVerde;

    // antirimbalzo software - attesa di 15 ms per attendere che l'input si stabilizzi

    delay(15);

    // memorizzazione del valore precedente restituito dalla digitalRead
  }

  valVerdeOld = valVerde;

  // ---------- Stampa sulla Serial Monitor dello stato del LED Rosso ----------

  // Se il pulsante è stato premuto la condizione dell'if risulta vera ed il LED Rosso si accende

  if (statoRosso == 1) {
    digitalWrite(ledRosso, HIGH);
    Serial.println("LED Rosso ON");
  }

  // nel caso in cui il pulsante non sia premuto o nello stato precedente era stato premuto
  // allora il LED dovrà essere spento ed il messaggio sulla seriale dovrà essere "LED Rosso OFF"

  else {
    digitalWrite(ledRosso, LOW);
    Serial.println("LED Rosso OFF");
  }

  // ---------- Stampa sulla Serial Monitor dello stato del LED Verde ----------

  // Se il pulsante è stato premuto la condizione dell'if risulta vera ed il LED Verde si accende

  if (statoVerde == 1) {
    digitalWrite(ledVerde, HIGH);
    Serial.println("LED Verde ON");
  }

  // nel caso in cui il pulsante non sia premuto o nello stato precedente era stato premuto
  // allora il LED dovrà essere spento ed il messaggio sulla seriale dovrà essere "LED Verde OFF"

  else {
    digitalWrite(ledVerde, LOW);
    Serial.println("LED Verde OFF");
  }
}

Soluzione con testo di output NON in loop

/*
   Prof. Michele Maffucci
   Data: 23.09.19

   Accensione e spegnimento di LED mediante pulsanti
   con antirimbalzo e messaggio NON ripetuto dello stato del LED
   sulla Serial Monitor

   Stampa 1 sola volta il messaggio dello stato del LED sulla Serial Monitor
   (non va in loop la stampa dello stato del LED)

   Pulsante Rosso: accensione e spegnimento LED Rosso
   (prima pressione accende, seconda pressione spegne)

   Pulsante Verde: accensione e spegnimento LED Verde
   (prima pressione accende, seconda pressione spegne)

*/

// ledRosso variabile di tipo intero a cui viene assegnato
// il valore intero 5 che sarà associato al pin digitale 5

int ledRosso = 5;

// ledVerde variabile di tipo intero a cui viene assegnato
// il valore intero 4 che sarà associato al pin digitale 4

int ledVerde = 4;


// pulsanteRosso variabile di tipo intero a cui viene assegnato
// il valore intero 7 che sarà associato al pin digitale 7
// a cui sarà collegato il pulsante che comanda il LED Rosso

int pulsanteRosso = 7;

// pulsanteVerde variabile di tipo intero a cui viene assegnato
// il valore intero 6 che sarà associato al pin digitale 6
// a cui sarà collegato il pulsante che comanda il LED Verde

int pulsanteVerde = 6;

// inizializzazione della variabili in cui verrà memorizzato il valore della
// digitalRead: 0 non premuto, 1 premuto

int valRosso = 0;
int valVerde = 0;

// inizializzazione della variabili in cui verrà memorizzato lo stato del pulsante
// All'avvio dello sketch i pulsanti non sono premuti

int statoRosso = 0;
int statoVerde = 0;

// inizializzazione della variabili in cui verrà memorizzato lo stato precedente del pulsante
// All'avvio dello sketch i pulsanti non sono premuti

int valRossoOld = 0;
int valVerdeOld = 0;

// inizializzazione delle variabili che consentono la stampa dello stato del LED

int stampoRossoON = 0;
int stampoRossoOFF = 0;

int stampoVerdeON = 0;
int stampoVerdeOFF = 0;

void setup() {
  pinMode(ledRosso, OUTPUT);           // imposta il pin digitale come output
  pinMode(ledVerde, OUTPUT);           // imposta il pin digitale come output
  pinMode(pulsanteRosso, INPUT);       // imposta il pin digitale come input
  pinMode(pulsanteVerde, INPUT);       // imposta il pin digitale come input

  Serial.begin(9600);                 // imposta la velocità di scrittura della serial monitor
  Serial.println("Avvio programma");  // stampa la stringa tra le " e va a campo
  Serial.println("---------------");  // stampa la stringa tra le " e va a campo
}

void loop() {

  valRosso = digitalRead(pulsanteRosso);  // lettura dell'input (pulsante) e memorizzazione in valRosso
  valVerde = digitalRead(pulsanteVerde);  // lettura dell'input (pulsante) e memorizzazione in valVerde

// ---------- Controllo pulsante LED Rosso ----------

  // viene controllato che l'input sia HIGH (pulsante premuto) e cambia lo stato del LED

  if ((valRosso == HIGH) && (valRossoOld == LOW)) {
    statoRosso = 1 - statoRosso;

    // antirimbalzo software - attesa di 15 ms per attendere che l'input si stabilizzi
    delay(15);

    // poichè il pulsante è stato premuto la variabile stampoRossoON viene posta a 0
    // per consentire la stampa del messaggio "LED Rosso ON"

    stampoRossoON = 0;
  }

  // memorizzazione del valore precedente restituito dalla digitalRead

  valRossoOld = valRosso;

// ---------- Controllo pulsante LED Verde ----------

  // viene controllato che l'input sia HIGH (pulsante premuto) e cambia lo stato del LED

  if ((valVerde == HIGH) && (valVerdeOld == LOW)) {
    statoVerde = 1 - statoVerde;

    // antirimbalzo software - attesa di 15 ms per attendere che l'input si stabilizzi

    delay(15);

    // poichè il pulsante è stato premuto la variabile stampoVerdeON viene posta a 0
    // per consentire la stampa del messaggio "LED Verde ON"

    stampoVerdeON = 0;
  }

  // memorizzazione del valore precedente restituito dalla digitalRead

  valVerdeOld = valVerde;

// ---------- Stampa sulla Serial Monitor dello stato del LED Rosso ----------

// Se il pulsante è stato premuto la condizione dell'if risulta vera ed il LED Rosso si accende

  if (statoRosso == 1) {
    digitalWrite(ledRosso, HIGH);

    // Se la variabile stampoRossoON è 0 allora !stampoRossoON vale 1
    // ciò consente la stampa del messaggio "LED Rosso ON"

    if (!stampoRossoON) {
      Serial.println("LED Rosso ON");

      // Per evitare una stampa continua del messaggio viene posto ad 1 stampoRossoON
      // in modo che nel ciclo di loop successivo non venga più stampato il messaggio
      // "LED Rosso ON". Viene posto a 0 stampoRossoOFF per consentire la stampa "LED Rosso OFF"
      // nel caso si prema nuovamente il pulsante che controlla il LED Rosso.

      stampoRossoON = 1;
      stampoRossoOFF = 0;
    }
  }

  // nel caso in cui il pulsante non sia premuto o nello stato precedente era stato premuto
  // allora il LED dovrà essere spento ed il messaggio sulla seriale dovrà essere "LED Rosso OFF"

  else {
    digitalWrite(ledRosso, LOW);

    if (!stampoRossoOFF) {
      Serial.println("LED Rosso OFF");

      // Per evitare una stampa continua del messaggio viene posto ad 0 stampoRossoON
      // in modo che nel ciclo di loop successivo non venga più stampato il messaggio
      // "LED Rosso OFF". Viene posto a 1 stampoRossoOFF per consentire la stampa "LED Rosso OFF"
      // nel caso si prema nuovamente il pulsante che controlla il LED Rosso.

      stampoRossoON = 0;
      stampoRossoOFF = 1;
    }
  }

// ---------- Stampa sulla Serial Monitor dello stato del LED Verde ----------

// Se il pulsante è stato premuto la condizione dell'if risulta vera ed il LED Verde si accende

  if (statoVerde == 1) {
    digitalWrite(ledVerde, HIGH);

    // Se la variabile stampoVerdeON è 0 allora !stampoVerdeoON vale 1
    // ciò consente la stampa del messaggio "LED verde ON"

    if (!stampoVerdeON) {
      Serial.println("LED Verde ON");

      // Per evitare una stampa continua del messaggio viene posto ad 1 stampoVerdeON
      // in modo che nel ciclo di loop successivo non venga più stampato il messaggio
      // "LED Verde ON". Viene posto a 0 stampoVerdeOFF per consentire la stampa "LED Verde OFF"
      // nel caso si prema nuovamente il pulsante che controlla il LED Rosso.

      stampoVerdeON = 1;
      stampoVerdeOFF = 0;
    }
  }

  // nel caso in cui il pulsante non sia premuto o nello stato precedente era stato premuto
  // allora il LED dovrà essere spento ed il messaggio sulla seriale dovrà essere "LED Verde OFF"

  else {
    digitalWrite(ledVerde, LOW);

    if (!stampoVerdeOFF) {
      Serial.println("LED Verde OFF");

      // Per evitare una stampa continua del messaggio viene posto ad 0 stampoVerdeON
      // in modo che nel ciclo di loop successivo non venga più stampato il messaggio
      // "LED Verde OFF". Viene posto a 1 stampoVerdeOFF per consentire la stampa "LED Verde OFF"
      // nel caso si prema nuovamente il pulsante che controlla il LED Verde.

      stampoVerdeON = 0;
      stampoVerdeOFF = 1;
    }
  }
}

Esercizio: implementare il controllo della marci e dell’arresto di un motore

Realizzare un circuito in cui con tre pulsanti vengono identificate le tre situazioni:

  1. Marcia
  2. Arresto
  3. Anomalia

Associare ad ogni situazione il colore del LED:

  1. Rosso: marcia
  2. Verde: arresto
  3. Giallo: anomalia

Alla pressione del corrispondente pulsante mostrare sulla Serial Monitor :

  1. Motore in marcia
  2. Motore fermo
  3. Anomalia motore

Buon lavoro 🙂

Corso propedeutico ad affrontare la certificazione CLAD

Ricevo e volentieri pubblico la segnalazione dell’amico e collega Fabio Carruccio in riferimento al corso che si terrà presso l’istituto in cui presta servizio. Gli argomenti trattati sono, dal mio punto di vista estremamente importanti soprattutto in percorsi di elettronica, automazione industriale e meccatronica.
Il mio personale grazie a Fabio per l’impegno e la passione che da sempre dedica alla didattica e alla progettazione di corsi tecnici altamente professionalizzanti per studenti e insegnanti.

Presentazione del corso

www.iis-pascal.gov.it
IIS “PASCAL MAZZOLARI”
in collaborazione con
IRS – INGEGNERIA RICERCA e SISTEMI

L’Istituto “Pascal Mazzolari” sensibile all’evoluzione della didattica, organizza un corso con l’obiettivo di fornire ai docenti un approfondimento relativo all’utilizzo dell’ambiente National Instruments LabVIEW per l’acquisizione, l’elaborazione e la gestione dei dati nelle applicazioni ingegneristiche.

Corso propedeutico ad affrontare la certificazione CLAD

PROGRAMMA

Lezione 1
Mart. 08/10/2019

NI Lab VIEW foundamental

  • Comprendere front panel, diagramma a blocchi, connector panes
  • Creare user interfaces con diagrammi, grafici e bottoni
  • Uso tipi di dati e di strutture di programmazione

Lezione 2
Mart. 15/10/2019

State machine design pattern in LabVIEW

  • Uso delle tecniche di editing e di debugging
  • Creazione di VI e di subVI
  • Display e log data
  • Uso di macchine a stati finiti nelle diverse applicazioni

Lezione 3
Mart. 22/10/2019

Applicazioni per l’acquisizione automatica di dati

  • DAQ Assistant – myDAQ

Lezione 4
Mart. 05/11/2019

Applicazioni per l’acquisizione automatica di dati

  • NI DAXmx palette – myDAQ

Lezione 5
Mart. 12/11/2019

Creazione di applicazioni che utilizzano myRIO
Express VI

Lezione 6
Mart. 19/11/2019

Creazione di applicazioni che utilizzano myRIO
Low level functions

Lezione 7
Mart. 26/11/2019

Creazione di una Vision application in LabVIEW
NI Vision Assistant

Lezione 9
Mart. 03/12/2019

Creazione di una Vision application in LabVIEW
NI IMAQdx palette


Destinatari: Docenti
Durata: 24 ore
Tempi: orario pomeridiano dalle 14,30 -17,30
Relatori: Docenti IRS

Per iscrizioni compilare il link:
https://forms.gle/Auvq5iGcUAHLeGih9

Sede del corso:
IIS “Pascal Mazzolari” – via Solferino, 92 – 25025 Manerbio (BS)
Per info: Fabio Caruccio – ufficio-tecnico@iis-pascal.edu.it – 3381109073

Locandina del corso di formazione.