Archivi autore: admin

Progettare una nuova scuola – Corso gratuito on-line – Corso n. 3 – produrre e gestire contenuti online

Ho il piacere di informarvi che da qualche giorno è on line il mio terzo corso gratuito:

produrre e gestire contenuti online
per potenziare la didattica digitale a distanza e integrata

che fa parte dell’iniziativa realizzata da Tecnica della Scuola: Progettare una nuova scuola.
Il corso illustra come creare e condividere contenuti on line (documenti e presentazioni mediante le Google Apps) e come gestire attività di progetto tramite la creazione di siti e blog didattici, la cui realizzazione e gestione prevede l’uso esclusivo di un browser internet. Nello specifico verranno mostrate le modalità di creazione di siti e blog mediante applicativi visuali appositamente studiate per il docente.
Il blog o il sito possono diventare luoghi in cui il docente inserisce i contenuti da lui mediati da offrire ai propri allievi, un luogo che può essere arricchito con contenuti multimediali per rafforzare l’efficacia dell’apprendimento, ma in un sito è possibile inserire sistemi di e-learning che offrono allo studente strumenti per verificare in autonomia le competenza raggiunte e quindi autovalutazione durante il processo di apprendimento.

Per maggiori informazioni vi rimando alla pagina del sito di Tecnica della Scuola.

5 minuti da Maker: lista della spesa smart

Figlia: Papà visto che sei al supermercato puoi aggiungere alla lista della pesa:

  • gocciole,
  • cerotti,
  • matite

aspetta aspetta papà ti mando la foto della lista!

Io: Basta! Da oggi si cambia, vi avevo condiviso liste con Evernote, Google Keep, ma nulla! Mannaggia!
Proviamo con Google Documenti che sapete usarlo tutti in famiglia! Un tag nfc da pochi centesimi ed un foglio Google Documenti condiviso in famiglia.

Approfondimenti

Progetti realizzati/da realizzare:

  • tag NFC su strumento di laboratorio che rimanda alla manualistica e agli appunti del Prof.
  • tag NFC su armadio aula che rimanda all’inventario
  • tag NFC su porta aula di scuola che rimanda ad orario occupazione aula
  • tag NFC sportello segreteria che rimanda alla documentazione (moduli permessi, ferie, ecc…)
  • tag NFC per realizzare una caccia al tesoro didattico a scuola
  • tag NFC per individuare oggetti da parte di un robot
  • tag NFC per controllo freschezza alimenti

😉

Progettare una nuova scuola – Corso gratuito on-line – Corso n. 2 – videolezione e ambienti di apprendimento

Come già segnalato in un precedente post, ho collaborato con Tecnica della Scuola al progetto: Progettare una nuova scuola, corsi di formazione a cui è possibile iscriversi gratuitamente. Il mio contributo copre aspetti di carattere tecnologico ed ho il piacere di informarvi che da qualche giorno potete iscrivervi al corso:

video lezione e ambienti di apprendimento

Il corso si propone di mostrare come configurare e gestire ambienti di apprendimento integrati on line per potenziare la didattica digitale a distanza e integrata. Ciò consente di realizzare dinamiche di lavoro collaborative, altamente inclusive permettendo il monitoraggio e la valutazione a distanza sulla classe o sul singolo allievo.
Il corso contiene anche situazioni didattiche reali gestite con le tecnologie esposte, mostrando tutto il processo di lavoro: dalla creazione della classe online alla realizzazione di videolezioni in modalità sincrona o asincrona, in particolare si forniscono le nozioni tecniche e le competenze per un’operatività avanzata nell’uso di software per la produzione di videolezioni, sistemi per il montaggio audio e video, scelte tecnologiche: microfoni, webcam, luci.

Per maggiori informazioni vi rimando alla pagina dedicata.

Ringrazio di cuore tutte le persone che stanno partecipando, sono tantissimi gli iscritti sia al primo che al secondo corso e preannuncio che sono in procinto di preparare nuovi corsi per i prossimi mesi, che rispondono a molte delle esigenze che negli scorsi mesi mi avete comunicato. L’ultimo corso: produrre e gestire contenuti online verrà pubblicato nel breve.

Grazie 🙂

Arduino: cicli infiniti ed uscita da un ciclo infinito

Per rispondere ad un quesito che mi è stato posto questa mattina a lezione da alcuni allievi condivido questo breve approfondimento sulla gestione dei cicli infiniti.

Parliamo di un ciclo infinito quando il controllo entra nel corpo del ciclo e non esce mai da esso, ciò accade quando la condizione di test del loop non è mai false.

Possiamo realizzare un ciclo infinito in C in diversi modi:

for (int i = 0; i >= 0; )
{
    // corpo del ciclo in cui la variabile i non viene mai modificata
}

Nell’esempio la variabile i viene inizializzata a 0 e la condizione di controllo i>=0 all’inizio è vera. La variabile i non viene modificato in nessun punto del codice inoltre l’espressione di aggiornamento della variabile non è presente, ciò implica che i avrà sempre come valore 0 e la condizione di controllo i>=0 non è mai falsa e quindi il corpo del for viene eseguito ad ogni ciclo.

Un modo più sintetico per realizzare un ciclo infinito è quello di utilizzare una condizione sempre vera utilizzando l’istruzione while:

while (true)
{
    // corpo del while
}

Questo comportamento può essere realizzato anche scrivendo 1 per indicare “condizione sempre vera”.

while (1)
{
    // corpo del while ripetuto per sempre
}

o ancora utilizzando un’uguaglianza sempre vera:

while (3==3)
{
    // corpo del while ripetuto per sempre
}

che nella programmazione con Arduino può essere ottenuto anche con:

while (HIGH)
{
    // corpo del while ripetuto per sempre
}

E’ possibile realizzare un ciclo infinito anche con l’istruzione for omettendo la condizione di ripetizione del ciclo, cioè che bisognerebbe inserire tra i due punti e virgola.

for (;;)
{
    // corpo del for ripetuto per sempre
}

Terminare un ciclo infinito

Negli esempi visti precedentemente la condizione sempre vera causava la ripetizione infinita del corpo dell’istruzione, però esiste il modo per terminare un ciclo infinito utilizzando l’istruzione break usata appunto per uscire da un ciclo: for, while oppure do..while, ma anche per uscire da una istruzione switch case.

Poiché nelle nostre sperimentazioni utilizziamo Arduino vediamo come realizzare l’uscita da un loop infinito.

Lo scopo è quello di far lampeggiare ripetutamente un LED e bloccare il lampeggio con la pressione di un pulsante.

Realizzimo il seguente circuito:

Utilizzando l’istruzione while.

Esempio 1

/*
  Prof. Michele Maffucci
  Data: 16.11.2020
  Esempio1: Funzionamento dell'istruzione break
*/
const int pinPulsante = 8; // pin digitale 8

void setup()
{
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT); // abilita il pin a cui è connesso il LED come output
  pinMode(pinPulsante, INPUT);  // abilita il pin a cui è connesso il pulsante come input
}
void loop()
{
  while (true) // ciclo infinito
  {
    if (digitalRead(pinPulsante) == HIGH)
    {
      break; // esce dal ciclo se si preme il pulsante
    }
    lampeggio(); // chiama la funzione che accende e spegne il LED
  }
}
void lampeggio()
{
  digitalWrite(LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
  delay(100);
}

Come si può notare viene utilizzata l’istruzione break per uscire dal ciclo. Fino a quando il pulsante non sarà premuto la condizione: digitalRead(pinPulsante) == HIGH sarà falsa, pertanto non verrà eseguito il corpo dell’if e quindi non potrà essere eseguito il break, in questa condizione ciò che segue l’if è la chiamata della funzione lampeggia().

Nel caso in cui il pulsante viene premuto, la condizione digitalRead(pinPulsante) == HIGH risulta vera, pertanto viene eseguito il corpo dell’if che contiene l’istruzione break che causerà l’uscita dal ciclo while.

Il codice sopra indicato funziona anche se nel while viene sostituito true con HIGH:

...
while (true) // ciclo infinito
  {
       // corpo del while
  }
...

con

...
while (HIGH) // ciclo infinito
  {
       // corpo del while
  }
...

Come spiegato ad inizio lezione, un ciclo infinito può essere ottenuto anche con un’istruzione for quindi si ottiene il medesimo risultato se si utilizza il codice che segue.

Esempio 2

/*
  Prof. Michele Maffucci
  Data: 16.11.2020
  Funzionamento dell'istruzione break
*/
const int pinPulsante = 8; // pin digitale 8

void setup()
{
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT); // abilita il pin a cui è connesso il LED come output
  pinMode(pinPulsante, INPUT);  // abilita il pin a cui è connesso il pulsante come input
}
void loop()
{
  for (;;) // ciclo infinito
  {
    if (digitalRead(pinPulsante) == HIGH)
    {
      break; // esce dal ciclo se si preme il pulsante
    }
    lampeggio(); // chiama la funzione che accende e spegne il LED
  }
}
void lampeggio()
{
  digitalWrite(LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
  delay(100);
}

Differenze tra ciclo for e ciclo while

  • Il ciclo for ha necessità di una variabile al suo interno, mente il ciclo while può utilizzare qualsiasi variabile definita prima dell’istruzione while.
  • L’uso del ciclo do-while permette di realizzare sempre una volta il corpo delle istruzioni in esso contenuto (indipendentemente dall’espressione condizionale) e ciò non può essere fatto con un  ciclo for.

Esercizio per i miei studenti

Esercizio 1

Realizzare le stesse funzionalità dell’esempio precedente (usando un ciclo infinito nel loop()) aggiungendo la stampa sequenziale crescente di un numero n = n + 1 sulla Serial Monitor. Alla pressione del pulsante si interrompe il lampeggio del LED e si azzera il contatore.

Buon Coding a tutti 🙂

5 minuti da Maker: porta rasoio

Sulla mia pagina Facebook pubblico spesso alcuni brevi post che ho intitolato: 5 minuti da Maker, attività di Making familiare che risolvono qualche piccola necessità, che rispondono a piccole problemi del vivere quotidiano. E’ un esercizio che mi piace svolgere quando ho il bisogno di distrarmi un momento da un lavoro che mi stanca parecchio. L’idea nasce da una sperimentazione di qualche tempo fa che feci con alcuni allievi: una challenge di breve durata, non più di 30 minuti, in cui bisogna risolvere un problema pratico. Tipicamente si tratta di riparare o inventare un oggetto da stampare in 3D oppure riadattare oggetti per usi diversi o ancora migliorare le caratteristiche di un oggetto secondo le necessità specifiche dell’utente sia dal punto di vista meccanico che elettronico.

L’ultima challenge svolta su me stesso nasce dal seguente fatto:

Figlio: papà perché mi rubi le lamette da barba!
Io: No giovane figlio! Sei tu che rubi le MIE lamette!
Figlio: No no diversamente giovane! Sei tu tu tu tu tuuuuu!!!!
Moglie: forse essere più ordinati aiuterebbe? Visto che siete in bagno a chi tocca pulirlo oggi?
Io: Shhh Matty… pace pace pace …. ci penso io faccio due supporti per rasoio

🙂

Per prelevare i file per la stampa 3D seguire il link sulla mia pagina su Thingiverse.

Buon Making a tutti 🙂