Un Allarme Più Intelligente con gli Eventi

Abbiamo usato i loop per controllare costantemente se qualcosa sta accadendo, ma non è un po’ inefficiente, come chiedere continuamente “Siamo arrivati?” durante un viaggio in auto? C’è un modo molto più intelligente! E se i nostri componenti potessero semplicemente dirci quando succede qualcosa? Benvenuto nel potente mondo della programmazione basata sugli eventi. In questa missione, costruirai un allarme che non controlla, ma ascolta, rendendo il tuo codice più veloce e professionale.

Eventi; Stati; Condizionali; Interruttore; Programmazione efficiente

Un Allarme Più Intelligente con gli Eventi illustration
Sei un insegnante?

Corsi

  • Classi 3-12

Materiali

  • Cellulare, tablet o computer
  • Connessione a Internet

Obiettivi Educativi

  • Comprendere il concetto di evento.
  • Creare un oggetto tecnologico (prototipo) utilizzando un dispositivo.
  • Identificare le relazioni tra la tecnologia e il mondo circostante.
  • Valutare il proprio lavoro e quello degli altri.
  • Partecipare a dialoghi e riflessioni su idee di miglioramento.

Inizio (10 minuti) - Un Modo Più Intelligente per Ascoltare

  1. Dai il benvenuto agli studenti e presenta l’attività del giorno: “Oggi impareremo a creare un semplice allarme che emette un suono quando si preme un pulsante, ma usando un metodo nuovo e più intelligente.”
  2. Inizia chiedendo alla classe: “Come funziona effettivamente un semplice pulsante o interruttore?” Guidali verso l’idea di due stati: ACCESO e SPENTO.
  3. Poi, introduci il concetto fondamentale di oggi: l’efficienza. Chiedi loro: “Usando un loop, il nostro programma deve chiedere costantemente al pulsante: ‘Sei premuto? Sei premuto?’. E se il pulsante potesse semplicemente inviare un messaggio al programma solo quando viene effettivamente premuto?” Questo introduce il concetto di evento come notifica, un modo più efficiente di programmare.

Come funziona un interruttore?

Creeremo un allarme che viene attivato da un interruttore. Ma per farlo, dobbiamo capire come ‘pensa’ un interruttore. Nella programmazione, un semplice interruttore ha due possibili stati:

  • Acceso: L’interruttore è attivato. Possiamo rappresentare questo stato con il numero 1.
  • Spento: L’interruttore è disattivato. Possiamo rappresentarlo con il numero 0. Un interruttore può trovarsi solo in uno stato alla volta. Leggendo se lo stato è 1 o 0, il computer può decidere cosa fare dopo.

Come fa il computer a conoscere lo stato?

Il computer può essere programmato per “ascoltare” un segnale dall’interruttore. Ogni volta che lo stato del pulsante cambia (da Spento a Acceso, o da Acceso a Spento), notifica il computer! Questa notifica è chiamata evento. Una volta che il computer riceve l’evento, può eseguire un pezzo di codice specifico per reagire ad esso.

Perché non usare semplicemente un loop principale?

Usare un Loop Principale per controllare un pulsante è come un passeggero sul sedile posteriore che chiede costantemente: “Sei già stato premuto?! E adesso?! Sei stato premuto ora?!” anche quando non sta succedendo nulla. È ripetitivo e spreca l’energia del computer. Con gli eventi, il programma è silenzioso. Aspetta semplicemente. L’interruttore stesso invia un singolo segnale al computer solo quando il suo stato è cambiato. Questo è molto più efficiente e professionale!

Abbiamo ricevuto l’evento… E adesso?

Una volta che l’interruttore invia il suo segnale, il computer può usare un condizionale per decidere cosa fare in base allo stato attuale dell’interruttore. Per il nostro allarme, la logica è semplice: SE il nuovo stato dell’interruttore è ACCESO, riproduciamo un suono. ALTRIMENTI (significa che il suo nuovo stato è SPENTO), fermiamo il suono.

Sviluppo (20-30 minuti) - Costruzione di un Allarme Guidato dagli Eventi

  1. Ora che gli studenti comprendono la differenza tra controllare costantemente con un loop e ascoltare efficientemente un evento, è tempo di costruire l’allarme più intelligente.
  2. Guidali attraverso le istruzioni per costruire il programma guidato dagli eventi, come dettagliato nella sezione pratica qui sotto. Sottolinea che la logica principale di questo programma non utilizza un loop “ripeti per sempre”, perché l’evento fa il lavoro per noi.

Chiusura (5-10 minuti) - Gli Eventi sono Ovunque

  1. Once everyone has a working, event-driven alarm, it’s time to reflect on this powerful new programming paradigm.
  2. Usa la sezione finale per stimolare una discussione su dove altro vengono utilizzati gli eventi nella tecnologia moderna (ogni clic, tocco e notifica è un evento!) e per sfidarli a combinare eventi con variabili per aggiungere una nuova funzionalità.

Rifletti

Hai appena imparato un modo più professionale di programmare!

Gli eventi sono la spina dorsale di tutte le interfacce utente moderne: ogni clic, tocco e scorrimento è un evento. Oltre ai pulsanti, quali altre cose sul tuo telefono o in un gioco potrebbero innescare un evento? (Pensa alle notifiche, al termine di un download, a un personaggio che tocca una moneta, ecc.)

Come funziona un interruttore?

Come funziona un interruttore?

Creeremo un allarme che viene attivato da un interruttore. Ma per farlo, dobbiamo capire come ‘pensa’ un interruttore. Nella programmazione, un semplice interruttore ha due possibili stati:

  • Acceso: L’interruttore è attivato. Possiamo rappresentare questo stato con il numero 1.
  • Spento: L’interruttore è disattivato. Possiamo rappresentarlo con il numero 0. Un interruttore può trovarsi solo in uno stato alla volta. Leggendo se lo stato è 1 o 0, il computer può decidere cosa fare dopo.

Come fa il computer a conoscere lo stato?

Come fa il computer a conoscere lo stato?

Il computer può essere programmato per “ascoltare” un segnale dall’interruttore. Ogni volta che lo stato del pulsante cambia (da Spento a Acceso, o da Acceso a Spento), notifica il computer! Questa notifica è chiamata evento. Una volta che il computer riceve l’evento, può eseguire un pezzo di codice specifico per reagire ad esso.

Perché non usare semplicemente un loop principale?

Perché non usare semplicemente un loop principale?

Usare un Loop Principale per controllare un pulsante è come un passeggero sul sedile posteriore che chiede costantemente: “Sei già stato premuto?! E adesso?! Sei stato premuto ora?!” anche quando non sta succedendo nulla. È ripetitivo e spreca l’energia del computer. Con gli eventi, il programma è silenzioso. Aspetta semplicemente. L’interruttore stesso invia un singolo segnale al computer solo quando il suo stato è cambiato. Questo è molto più efficiente e professionale!

Abbiamo ricevuto l’evento… E adesso?

Abbiamo ricevuto l'evento… E adesso?

Una volta che l’interruttore invia il suo segnale, il computer può usare un condizionale per decidere cosa fare in base allo stato attuale dell’interruttore. Per il nostro allarme, la logica è semplice: SE il nuovo stato dell’interruttore è ACCESO, riproduciamo un suono. ALTRIMENTI (significa che il suo nuovo stato è SPENTO), fermiamo il suono.

Crea l’Allarme

Creiamo un prototipo che suona un allarme quando un interruttore viene attivato.

Per prima cosa, aggiungeremo due componenti che ci permettono di (1) attivare l’allarme e (2) riprodurre il suono.

1

Premi ✙ Aggiungi dispositivo e seleziona AudioPlayer.

2

Premi di nuovo ✙ Aggiungi Dispositivo e seleziona Interruttore.

3

Ricorda che se non hai uno smartphone per scansionare i codici ▣ QR , puoi cliccare su Apri in questa finestra.

Siamo pronti per iniziare a prototipare!

Suggerimento: In Protobject, puoi aggiungere più componenti sullo stesso smartphone premendo il pulsante SCAN tante volte quante ne hai bisogno.

Media illustration

Composizione del Codice

Clicca sull’icona del punto interrogativo per aprire i commenti che spiegano il codice.

Rifletti

Hai appena imparato un modo più professionale di programmare!

Gli eventi sono la spina dorsale di tutte le interfacce utente moderne: ogni clic, tocco e scorrimento è un evento. Oltre ai pulsanti, quali altre cose sul tuo telefono o in un gioco potrebbero innescare un evento? (Pensa alle notifiche, al termine di un download, a un personaggio che tocca una moneta, ecc.)

Sfida: Aggiorniamo il nostro allarme per contare e visualizzare quante volte è stato attivato!

Suggerimento: Avrai bisogno di una variabile per memorizzare il conteggio e del dispositivo WriteDraw per mostrarlo sullo schermo. Dove aggiungeresti 1 alla variabile?