Prove tecniche per la realizzazione di un sismografo con Arduino

Recentemente ho realizzato una breve lezione sull’uso del sensore piezoelettrico con Arduino e durante le prossime lezioni di sistemi elettronici, per le classi 3′, vedremo come sfruttare questo sensore per la realizzazione di un semplice sismografo per la rilevazione delle oscillazioni del pavimento dei corridoi della scuola, durante l’attività aggiungeremo la regolazione della sensibilità e la visualizzazione del grafico delle oscillazioni su un display oled, il passo successivo sarà quello di realizzare un sismografo con un pendolo.

Anteprima dell’attività di laboratorio:

Buon Making a tutti 🙂

Convegno: Metodologie didattiche innovative Making Robotica e Dobotica Educative

Nella giornata di domani, 30 Marzo, dalle 9.30 alle 17.00 parteciperò alla: Giornata di studio per la scuola sui temi del Making, della Domotica e della Robotica Educative.
Rappresenterò il mio istituto, l’ITIS G.B. Pininfarina di Moncalieri e il FutureLabs di Moncalieri. Il mio intervento previsto dalle 10,30 alle 11,00, avrà come titolo: “Didattica e IOT: l’intelligenza delle cose”, parlerò di making a scuola e “del futuro prossimo venturo” della didattica laboratoriale dal mio punto di vista. L’evento, in diretta streaming su YouTube vuole essere anche il momento per l’inaugurazione della rete nazionale: Robot School che ha tra i suoi obiettivi:

…creare, promuovere e sostenere, tramite l’attuazione delle misure previste dal PNSD, un sistema sinergico tra scuola, agenzie educative, enti, associazioni e tutti gli attori della comunità educante, diretto a favorire la più ampia diffusione dei processi di innovazione digitale e di didattica innovativa condividendo i principi e gli obiettivi dell’innovazione metodologico-didattica e digitale e ricercando costantemente l’incontro e la collaborazione con altre istituzioni scolastiche presenti su tutto il territorio nazionale, al fine di creare sempre maggiori sinergie e moltiplicare l’impatto della sperimentazione…

Rete capofila della rete: Liceo Scientifico “Leonardo da Vinci” Floridia (SR).

Programma della giornata:

    • 9.30 – 10.00  Saluti istituzionali – relatori on. Lucia Azzolina (ex Ministro Pubblica Istruzione), dott. S. Suraniti  (Direttore – USR Sicilia) , dott. N. Neri Serneri (Dirigente AT Siracusa)
    • 10.00 – 10-30 Presentazione del progetto – relatori prof. M. Pisani (Dirigente Scolastico Liceo L. Da Vinci ), prof.ssa V. Martorino (referente Progetto Robot School)
    • 10.30- 11.00  Didattica e IOT : l’intelligenza delle cose –relatore prof. Maffucci (Future Lab Pininfarina di Torino)
    • 11.00 -11.30  “ Innovazioni tra Making ed IoT  ” – relatore prof.  F. Piana (vincitore Premio Scuola Digitale)
    • 11.30-12.00  “La tecnologia nello spazio : prospettive e scenari futuri – relatore ing.  Farina (Microgravity Research Center – Brussels)
    • 12.00-12.30 – Saluti del dirigente del Future Lab di Gallarate – prof. G. Martino
    • STEM : Tinkering, IoT e Robotica Educativa” – Proposte formative e buone pratiche dal FutureLab – relatori prof. M. Sabella, V. Belloni (Future Lab di Gallarate)
    • 12.30-13.00 -“Spazio Domande e Contributi”
    • 13:00 – 14:30 Pausa
    • 14.30 – 15.00 Strategie e processi di ragionamento durante la programmazione robotica: riflessioni teoriche ed empiriche”relatori Edoardo Datteri e Gilda Bozzi – (Università Milano Bicocca- coordinatore del Laboratorio di Robotica per le Scienze Cognitive e Sociali)
    • 15.00- 15.30 Pepper recita Dante – Buone pratiche nella robotica umanoide  – relatore prof R. Delle Monache (Future Lab Volta – Pescara)
    • 15:30 -16.30 Workshop Immersivo: “Umanoidi e Disabilità”, relatori dott. G. Pioggia , dott.ssa Flavia Marino (CNR Messina, Istituto Marino)
    • 16.30-17.00 -“Spazio Domande e Contributi”

Arduino: Sensore Piezoelettrico

Per effettuare una misura dinamica di pressione o allungamento o vibrazione di superfici è possibile utilizzare sensori che si basano su quello che viene comunemente chiamato “effetto piezoelettrico”, la parola “piezoelettrico” deriva dalla parola greca “piezein” che significa premere. La piezoelettricità è la proprietà di alcuni cristalli, che se sottoposti all’azione di una forza esterna esterna, provoca in essi una migrazione di cariche elettriche. Con l’utilizzo di un apposito circuito elettronico, la migrazione di cariche elettriche può essere tradotta una differenza di potenziale.

L’effetto piezoelettrico è un effetto reversibile, ciò vuol dire che una volta che abbiamo applicato una variazione meccanica sul cristallo si ottiene una variazione di cariche e in maniera analoga quando viene fornita una carica elettrica al sensore, questo si allungherà o si comprimerà.

Quando applichiamo al cristallo una forza meccanica le cariche elettriche si spostano accumulandosi sulle facce opposte del cristallo:

I materiali piezoelettrici utilizzati possono essere naturali o di sintesi dopo polarizzazione:

Materiali naturali

  • Quarzo cristallino (SiO2)
  • sale di Rochelle o sale di Seignette (tartrato di Sodio e Potassio)
  • Tormalina

Materiali di sintesi

  • Piezoceramici
    • Titanio Zirconato di Piombo (PZT)
    • Titanio di Bario (BaTiO3)

L’effetto piezoelettrico può essere sfruttato per:

  • generare energia elettrica
  • in campo medicale: ecografi
  • sensori di vibrazione per allarmi
  • sensori di impatto
  • sonar (in campo militare)
  • viene utilizzato negli accendini
  • per gli orologi
  • per rilevare variazioni meccaniche
  • produrre suoni, come nelle chitarre elettriche
  • messa a fuoco di strumenti ottici
  • sensori in capo ambientale per il radio tracking
  • ecc…

Esempio tipico è quello dei cicalini piezoelettrici, conosciuti anche come buzzer, che vengono utilizzate in molte delle sperimentazioni con Arduino, infatti sottoponendo a tensione elettrica e ad una determinata frequenza il materiale piezoelettrico all’interno del buzzer, viene posta in oscillazione e questo muovendo l’aria, dall’apposita apertura collocata sul buzzer, permette di percepire il suono.

Nelle sperimentazioni con Arduino è tipico usare sensori piezoelettrici economici che generalmente hanno forma circolare. Questi sensori non hanno gradi di precisioni elevati e sono utilizzati prevalentemente per rilevare vibrazioni. Per capire come sono realizzati questi sensori immaginate ad un sandwich in in cui l’elemento piezoelettrico, costituito da piombo-zirconato è inserito tra due piastre metalliche. Il loro utilizzo in circuito con microcontrollori è particolarmente semplice anche perché funzionano con le tensioni e le correnti che si hanno direttamente dai pin di uscita di questi circuiti elettronici.

Nel caso abbiate necessità di consultare i dati tecnici di diverse tipologie di dispositivi piezoelettrici vi rimando al questi due datasheet:

Realizziamo ora un circuito che ci permette, mediante il sensore piezoelettrico e Arduino, la rilevazione di vibrazioni e urti. Colleghiamo il sensore sulla breadboard e dalla breadboard ad Arduino, in questo modo eviteremo di far vibrare il sensore quando tocchiamo Arduino per effettuare i collegamenti.

Colleghiamo il filo rosso del sensore ad un ingresso analogico di Arduino, ad esempio A0 mentre il filo nero lo colleghiamo. In parallelo al sensore bisognerà inserire una resistore con resistenza da 1MOhm, ciò è necessario perché un piezo è un componente con caratteristiche capacitive e la resistenza in parallelo permette di assorbire le cariche che vengono accumulate sulla capacità.

Il circuito proposto è estremamente semplice ed è riportato di seguito:

Esempio 1

/*
 * Prof. Maffucci Michele
 * data: 22.01.2021
 * Lettura sensore piezoelettrico
 *
 * Esempio 1: stampa dei valori sulla serial monitor
 * e visualizzazione del grafico sulla serial Plot
 *
 * Si ricorda che la Serial Plotter e la Serial Monitor
 * non possono essere usati contemporaneamente
 *
 */


void setup(){
   // Inizializzazione della serial monitor
  Serial.begin(9600);
}

void loop(){
  // val contiene il valore letto dal sensore
  int val = analogRead(A0);
  Serial.println(val);
  delay(20);
}

Se si selezione Serial Plotter dal menù Tools:

si avrà la visualizzazione del grafico degli urti provocati sul sensore:

Come si può notare i valori sull’asse delle ordinate è compreso tra 0 e 1023.

Esempio 2

Arduino, come già spiegato nelle mie slide: Alfabeto di Arduino – Lezione 4, non è in grado di leggere direttamente valori di tensione, bisognerà utilizzare il convertitore analogico/digitale (ADC) integrato in esso per convertire una tensione elettrica in un valore numerico. L’ADC di Arduino è a 10 bit, quindi potrà mappare valori compresi tra 0V e 5V in valori numerici compresi tra 0 e 1023. (1024 valori), pertanto si avrà una risoluzione di 5/1024 = 4,88 mV.

Per ottenere la tensione elettrica partendo dai valori restituiti dall’ADC, sarà sufficiente prendere il valore restituito dall’analogRead() e moltiplicarlo per la tensione unitaria corrispondente ad una unità 5/1024 = 4,88 mV. Traduciamo questo in codice per visualizzare la tensione elettrica sulla Serial Plotter.

/*
 * Prof. Maffucci Michele
 * data: 22.01.2021
 * Lettura sensore piezoelettrico
 *
 * Esempio 2: stampa dei valori della tensione elettrica
 * sulla Serial Monitor e Serial Plotter
 * resitituita dal sensore nell'intervallo 0V - 5V
 *
 * Si ricorda che la Serial Plotter e la Serial Monitor
 * non possono essere usati contemporaneamente
 *
 */

void setup(){
   // Inizializzazione della serial monitor
  Serial.begin(9600);
}

void loop(){
  // val contiene il valore letto dal sensore
  int val = analogRead(A0);
  // tensione contiene il valore di tensione elettrica
  float tensione = val *(5.0/1024);
  Serial.println(tensione);
  delay(20);
}

Esercizio 1

Realizziamo un interruttore on/off, possiamo utilizzare gli esempi già disponibili all’interno dell’IDE di Arduino e che in altre occasioni ho utilizzato su questo sito.  L’idea è quella di realizzare un sistema antirimbalzo software (debounce) e attivare l’on o l’off su un LED se l’intensità della forza meccanica impressa è superiore ad un valore di soglia che impostiamo nel codice.

Esercizio 2

Collegare 10 LED ad Arduino ed utilizzare un sensore piezoelettrico per accendere una quantità di LED proporzionale alla forza impressa sul sensore.

Esercizio 3

Realizziamo un dimmer, un sistema in grado di regolare l’intensità luminosa di un LED. La regolazione dell’intensità luminosa sarà fatto toccando il sensore piezoelettrico. Il doppio tocco veloce (in un intervallo di tempo prestabilito da voi) inverte la modalità di variazione dell’intensità luminosa (aumentare/diminuire), nel caso non si riesca a realizzare lo sketch con il doppio tocco veloce, utilizzare un pulsante esterno per invertire la modalità intensità luminosa prodotta.

Esercizio 4

Utilizzando la stessa logica di funzionamento dell’esercizio 2, utilizzare ora una striscia LED per misurare l’intensità della forza meccanica con cui sollecitiamo il sensore piezoelettrico.

Buon Coding a tutti 🙂

Metodologia Double Diamond per progettare attività didattiche di laboratorio

Durante le attività di laboratorio molto spesso i ragazzi si trovano nelle condizioni di dover sviluppare per intero un progetto in cui devono realizzare artefatti fisici complessi, in cui vengono fornite da me o altri colleghi le specifiche del progetto mediante una lezione in cui si espone il problema da risolvere, questa è ad esempio un’attività tipica durante un progetto di PCTO. Molto spesso la difficoltà maggiore da parte dei ragazzi è proprio quella di definire con chiarezza il problema nell’attività di progetto.
Come sempre insisto sulla parte di organizzazione del lavoro e progettazione collaborativa e non sempre tutto ciò viene recepito.

A tal proposito qualche giorno fa, durante un confronto con amici su una progettualità sviluppata da studenti del Politecnico di Milano insieme ad Hackability, si faceva proprio riferimento alla Metodologia Double Diamond, che avevo illustrato tempo fa durante alcuni miei corsi di formazione e che credo possano tornare utile ai miei studenti e sicuramente mostrerò durante il mio prossimo corso sulla Didattica Laboratoriale presso il FutureLabs dell’ITIS Pininfarina.

Al fondo di questo post trovate risorse utili per lo studio e la progettazione da cui sono tratte alcune cose riportate in questo post e che utilizzo attualmente per lo sviluppo di qualsiasi progetto mio, anche di carattere didattico.

Il British Design Council nel 2005 sviluppò il concetto di Double Diamond, proponendo un modello di processo di progettazione costituito da 4 fasi, nelle quali si alterna pensiero divergente e poi pensiero convergente. Il primo diamante (rombo) rappresenta l’area della ricerca o di esplorazione, il secondo diamante l’area del design cioè la fase in cui viene progettata la soluzione.

Fase divergente

La fase divergente consiste nell’esplorazione, la fase che ci consente di ampliare il punto di vista, quindi: nostre idee o idee che potrebbero giungere da una ricerca, quindi informazioni e dati. Nella fase divergente apriamo il nostro punto di vista, assumiamo il comportamento dell’esploratore, è una fase creativa in cui non bisogna applicare filtri alla nostra creatività e ricerca, non bisogna preoccuparsi se un’informazione è realmente utile e fattibili per la realizzazione del progetto.

Fase convergente

La fase convergente è quella logica, analitica in cui si analizza in modo critico la fase precedente e quindi si procede ad una selezione delle informazioni raccolte nella prima fase e che corrispondono alle specifiche del progetto.

Unendo le due fasi otteniamo il diamante.

La metodologia si sviluppa secondo lo schema seguente, in cui abbiamo due fasi:

  • la fase di RICERCA in cui si effettua un’esplorazione del problema
  • la fase di DESIGN in cui si progetta la soluzione

Nel primo diamante abbiamo la fase di esplorazione/scoperta seguita da una fase analitica di definizione, in cui i dati raccolti nella precedente fase vengono analizzati in modo da essere in grado di definire le priorità che porteranno alla definizione del problema.

Nel secondo diamante si parte con con lo sviluppo, però assumendo nuovamente un atteggiamento creativo e divergente in cui si analizzando la maggior parte di soluzioni possibili senza tener conto della fattibilità delle stesse, dopo di che si entra nella zona convergente in cui si selezionano le soluzioni più adatte per risolvere il problema, che verranno raffinate al fine di realizzare un prototipo.

La fase terminale del processo, la consegna, nell’attività laboratoriale può essere considerata l’unione di: prototipazione dell’oggetto e di test. Ovviamente, come esposto nella prima immagine di questo post, sarà possibile tornare alla fase di sviluppo nel caso in cui si abbia bisogno di migliorare o correggere la soluzione proposta con il prototipo.

Per approfondire l’argomento vi rimando ai seguenti articoli tratti principalmente dal sito del design council che ho utilizzato spesso per sviluppare sperimentazioni didattiche:

Consigli di lettura:
per applicazioni in campo didattico: CPS = Creative Problem Solving

Buona progettazione a tutti 🙂

Lezione 4 – Arduino GamePad – Disegnare caratteri speciali su LCD1602 Keypad Shield della Keyestudio

In riferimento a quanto esposto a lezione questa mattina durante la lezione a distanza, aggiungo alcune indicazioni per disegnare icone personalizzate sul display: pacman, alieno, fantasmi, ecc… La modalità di realizzazione icone è la medesima di quella spiegata nella lezione svolta alcuni mesi fa: Disegnare caratteri personalizzati con Arduino per un LCD 16×2 in cui veniva utilizzato un display I2C.

Le modifiche per l’utilizzo dell’LCD1602 Keypad Shield della Keyestudio sono minime e di seguito indico alcuni esempi.

E’ importante, per inserire nuove icone sul display, studiare la lezione precedente in cui descrivo come realizzare le icone.

Di seguito tre esempi utili per sviluppare il vostro progetto di PCTO.

Esempio 1

In questo esempio mostro come visualizzare sulla prima riga del display una stringa di presentazione e sulla seconda riga 8 icone

/*
 *  Prof. Michele Maffucci
 *  Crezione di caratteri personali
 *  Utilizzo di un display LCD1602 Keypad Shield della Keyestudio
 *  Data: 19.03.2021
*/

// inclusione della libreria LiquidCrystal.h
#include <LiquidCrystal.h>

// inizializza la libreria con i numeri dei pin dell'interfaccia
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// caratteri personalizzati

byte lucchettoChiuso[8] = {
  0b01110,
  0b10001,
  0b10001,
  0b10001,
  0b11111,
  0b11011,
  0b11011,
  0b11111
};

byte lucchettoAperto[8] = {
  0b01110,
  0b10000,
  0b10000,
  0b10000,
  0b11111,
  0b11011,
  0b11011,
  0b11111
};

byte Altoparlante[8] = {
  0b00001,
  0b00011,
  0b01111,
  0b01111,
  0b01111,
  0b00011,
  0b00001,
  0b00000
};

byte batteriaMezza[8] = {
  0b01110,
  0b11011,
  0b10001,
  0b10001,
  0b10001,
  0b11111,
  0b11111,
  0b11111
};

byte alieno[8] = {
  0b10001,
  0b01010,
  0b11111,
  0b10101,
  0b11111,
  0b11111,
  0b01010,
  0b11011
};


byte pacmanBoccaChiusa[8] = {
  0b01110,
  0b11101,
  0b11111,
  0b11111,
  0b11000,
  0b11111,
  0b11111,
  0b01110
};

byte pacmanBoccaAperta[8] = {
  0b01110,
  0b11101,
  0b11111,
  0b11100,
  0b11000,
  0b11000,
  0b11111,
  0b01110
};

byte fantasmino[8] = {
  0b01110,
  0b11111,
  0b10101,
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b10101
};

void setup()
{
 // impostazione del numero di colonne e righe del display
  lcd.begin(16, 2);

  // creazione nuovi caratteri
  lcd.createChar(0, lucchettoChiuso);
  lcd.createChar(1, lucchettoAperto);
  lcd.createChar(2, Altoparlante);
  lcd.createChar(3, batteriaMezza);
  lcd.createChar(4, alieno);
  lcd.createChar(5, pacmanBoccaChiusa);
  lcd.createChar(6, pacmanBoccaAperta);
  lcd.createChar(7, fantasmino);

  // Cancella il display
  lcd.clear();

  // Stampa la stringa
  lcd.print("PCTO a.s. 20/21");

}

void loop()
{
  lcd.setCursor(0, 1);
  lcd.write(byte(0));

  lcd.setCursor(2, 1);
  lcd.write(byte(1));

  lcd.setCursor(4, 1);
  lcd.write(byte(2));

  lcd.setCursor(6, 1);
  lcd.write(byte(3));

  lcd.setCursor(8, 1);
  lcd.write(byte(4));

  lcd.setCursor(10, 1);
  lcd.write(byte(5));

  lcd.setCursor(12, 1);
  lcd.write(byte(6));

  lcd.setCursor(14, 1);
  lcd.write(byte(7));
}

Esempio 2

In questo secondo esempio mostriamo come visualizzare l’icona del Pacman che va avanti e indietro sulla prima riga del display

/*
 *  Prof. Michele Maffucci
 *  Crezione di caratteri personali
 *  Utilizzo di un display LCD1602 Keypad Shield della Keyestudio
 *  Data: 19.03.2021
 *
 *  Movimento verso destra e sinistra di una icona (alieno)
*/

// inclusione della libreria LiquidCrystal.h
#include <LiquidCrystal.h>

// inizializza la libreria con i numeri dei pin dell'interfaccia
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Velocità con cui viene stampato il l'icona
int velocita = 300;

// caratteri personalizzati

byte alieno[8] = {
  0b10001,
  0b01010,
  0b11111,
  0b10101,
  0b11111,
  0b11111,
  0b01010,
  0b11011
};

void setup()
{
 // impostazione del numero di colonne e righe del display
  lcd.begin(16, 2);

  // creazione nuovi caratteri
  lcd.createChar(4, alieno);

  // visualizzazione sul display del nome
  // dell'attività

  // Cancella il display
  lcd.clear();

  // Stampa la stringa
  lcd.print("PCTO a.s. 20/21");
  delay(1000);

  // Cancella il display
  lcd.clear();
}

void loop()
{
   // Movimento verso destra del carattere
  for (int contatorePosizioneColonna = 0; contatorePosizioneColonna < 16; contatorePosizioneColonna++) {
    // Cancella il display
    lcd.clear();
    // Spostamento di una posizione verso destra del cursore
    lcd.setCursor(contatorePosizioneColonna, 0);
    // Stampa del icona: alieno
    lcd.write(byte(4));
    // Attesa di un'istante per percepire il movimento del carattere
    delay(velocita);
  }

  // Movimento verso sinistra del carattere
  for (int contatorePosizioneColonna = 16; contatorePosizioneColonna > 0; contatorePosizioneColonna--) {
    // Cancella il display
    lcd.clear();
    // Spostamento di una posizione verso sinistra del cursore
    lcd.setCursor(contatorePosizioneColonna, 0);
    // Stampa del icona: alieno
    lcd.write(byte(4));
    // Attesa di un'istante per percepire il movimento del carattere
    delay(velocita);
  }
}

Esempio 3

Realizzare le medesime funzionalità dell’esercizio precedente in cui l’icona del Pacman nell’avanzamento apre e chiude la bocca.
In questo esempio il Pacman quando torna indietro non si gira.


/*
    Prof. Michele Maffucci
    Crezione di caratteri personali
    Utilizzo di un display LCD1602 Keypad Shield della Keyestudio
    Data: 19.03.2021

    Movimento verso destra e sinistra di una icona (Pacman)
    Durante il movimento il Pacman apre e chiude la bocca
*/

// inclusione della libreria LiquidCrystal.h
#include <LiquidCrystal.h>

// inizializza la libreria con i numeri dei pin dell'interfaccia
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Velocità con cui viene stampato il l'icona
int velocita = 300;

// caratteri personalizzati

byte pacmanBoccaChiusa[8] = {
  0b01110,
  0b11101,
  0b11111,
  0b11111,
  0b11000,
  0b11111,
  0b11111,
  0b01110
};

byte pacmanBoccaAperta[8] = {
  0b01110,
  0b11101,
  0b11111,
  0b11100,
  0b11000,
  0b11000,
  0b11111,
  0b01110
};

void setup()
{
  // impostazione del numero di colonne e righe del display
  lcd.begin(16, 2);

  // creazione nuovi caratteri
  lcd.createChar(0, pacmanBoccaChiusa);
  lcd.createChar(1, pacmanBoccaAperta);

  // Cancella il display
  lcd.clear();

  // Stampa la stringa
  lcd.print("PCTO a.s. 20/21");
}

void loop()
{

  // Movimento verso destra del carattere
  for (int contatorePosizioneColonna = 0; contatorePosizioneColonna < 16; contatorePosizioneColonna++) {
    // Cancella il display
    lcd.clear();
    // Spostamento di una posizione verso destra del cursore
    lcd.setCursor(contatorePosizioneColonna, 0);
    if (contatorePosizioneColonna % 2 == 0) {
      // Stampa del icona: Pacman bocca chiusa
      lcd.write(byte(0));
    }
    else
    {
      // Stampa del icona: Pacman bocca aperta
      lcd.write(byte(1));
    }
    // Attesa di un'istante per percepire il movimento del carattere
    delay(velocita);
  }

  // Movimento verso sinistra del carattere
  for (int contatorePosizioneColonna = 16; contatorePosizioneColonna > 0; contatorePosizioneColonna--) {
    // Cancella il display
    lcd.clear();
    // Spostamento di una posizione verso sinistra del cursore
    lcd.setCursor(contatorePosizioneColonna, 0);
    if (contatorePosizioneColonna % 2 == 0) {
      // Stampa del icona: Pacman bocca chiusa
      lcd.write(byte(0));
    }
    else
    {
      // Stampa del icona: Pacman bocca aperta
      lcd.write(byte(1));
    }
    // Attesa di un'istante per percepire il movimento del carattere
    delay(velocita);
  }
}

Esercizio 1

Eseguire le stesse funzionalità dell’esempio 3 in cui però il Pacman rivolga il viso nella stessa direzione del movimento.

Esercizio 2

Movimentare il Pacman con i pulsanti RIGHT e LEFT, rivolgendo sempre il viso nella giusta posizione di movimento.

Buon Coding a tutti 🙂