Il Cuore del Mio Robot Amico

Missione compiuta! Hai caricato il tuo robot di energia. Ora è il momento di usare quel potere per sbloccare la sua funzione più importante: un cuore che batte! In questa missione non creerai soltanto un'animazione: darai al tuo robot un vero e proprio "umore". Imparerai a usare le variabili di stato per far passare il cuore del tuo robot da uno stato "attivo" a uno "addormentato" con una semplice inclinazione del dispositivo, cambiandone il comportamento in tempo reale.

Variabili di Stato Eventi Loop Principale Comportamento Dinamico Controllo di Stato

Livello Base

Apri in Protobject

Cosa faremo?

Sei un insegnante?

Corsi

  • Classi 3-12

Materiali

  • Microbit/telefono e computer
  • Connessione a Internet
  • Cartone, forbici e un paio di elastici per fissare il telefono al cartone

Descrizione

Questa attività conclude l'introduzione alle variabili e agli eventi insegnando il concetto di "variabili di stato". Gli studenti vedranno come gli eventi possano modificare variabili che un loop principale sta leggendo di continuo. Questo permette loro di osservare come l'azione dell'utente possa cambiare dinamicamente il comportamento centrale di un programma in esecuzione.

Obiettivi Educativi

  • Comprendere il concetto di "variabile di stato".
  • Utilizzare gli eventi per modificare lo stato di un programma.
  • Osservare come un loop principale possa avere un comportamento dinamico basato sulle variabili.
  • Creare un prototipo con diverse "modalità" di funzionamento.

Inizio (10 minuti) - Gli "Stati d'Animo" di un Programma

  1. Dai il benvenuto agli studenti: "Complimenti, avete caricato il robot! E adesso, cosa ce ne facciamo di tutta quella energia? Gli installeremo un cuore. Ma non un cuore qualsiasi: uno capace di cambiare ritmo, come se avesse degli stati d'animo."
  2. Introduci il nuovo tipo di variabile: "Prima la nostra variabile si limitava a contare in avanti. Ora le nostre variabili descriveranno lo 'stato' attuale del robot. Per esempio, il suo cuore sarà nello stato 'tranquillo' oppure 'accelerato'. Queste si chiamano variabili di stato."
  3. Spiega la dinamica: "Programmeremo degli eventi di inclinazione per cambiare lo stato del robot e vedremo come il suo cuore reagisce all'istante. È come controllargli il battito con le nostre mani!"

Variabili di Stato: la "Modalità" del Programma

Fino a ora la nostra variabile serviva soltanto a contare. Ma una variabile di stato è molto più potente. Non si limita a conservare un numero: descrive la "modalità" o lo "stato" in cui il programma si trova in quel momento. Pensa a un personaggio di un videogioco. Può trovarsi nello stato "cammina", "corre" o "salta". Nel nostro caso, il cuore del nostro robot può trovarsi nello stato "addormentato" oppure "sveglio". Le variabili di stato sono la memoria che permette al programma di sapere quale comportamento deve avere in ogni istante.

Lo Schema: Eventi che Controllano un Loop

In questo progetto due parti del nostro codice lavoreranno in squadra senza mai toccarsi direttamente. Comunicano attraverso le variabili!

  • Il Loop Principale: è il motore. Si occupa dell'azione continua: animare il cuore. Ma non decide da solo la velocità; a ogni ciclo legge pausaLunga e pausaBreve per sapere quanto aspettare tra un disegno e il successivo.
  • Gli Eventi: sono i comandi. Aspettano un'azione dell'utente (inclinare il dispositivo). Quando ne arriva una, il loro unico compito è scrivere un nuovo valore in pausaLunga e pausaBreve. Il loop legge, gli eventi scrivono. Le variabili sono il messaggio che si scambiano.

Sviluppo (20-30 minuti) - Costruzione del Cuore Dinamico

  1. Ora che hanno capito la differenza tra un contatore e una variabile di stato, è il momento di realizzare questo schema di programmazione avanzato.
  2. Guida gli studenti attraverso le istruzioni per costruire il cuore animato e gli eventi che ne controllano la velocità, come dettagliato qui sotto. È fondamentale che individuino la "conversazione" indiretta tra gli eventi e il loop principale.

Chiusura (5-10 minuti) - La Conversazione Attraverso le Variabili

  1. Una volta che tutti i cuori cambiano ritmo, è il momento di analizzare questo potente schema di progettazione.
  2. Chiedi alla classe: "Il loop principale e gli eventi non sono collegati direttamente. Come fa il loop a 'sapere' che deve accelerare? Come comunicano tra loro?" La risposta è: attraverso le variabili condivise. Usa la sezione di riflessione per consolidare questa idea fondamentale.

Rifletti

In questo progetto le variabili non si limitano a contare: controllano il comportamento. Che cos'è una "variabile di stato"?

Spiega con parole tue come fanno a comunicare il loop principale e i blocchi evento, se non sono collegati direttamente.

Quali altri "stati" potresti dare al tuo robot? Magari uno stato "accelerato", in cui il cuore batte molto, molto in fretta, come se il robot stesse correndo?

Presenta Piano Lezione Modellino di cartone

Variabili di Stato: la "Modalità" del Programma

Fino a ora la nostra variabile serviva soltanto a contare. Ma una variabile di stato è molto più potente. Non si limita a conservare un numero: descrive la "modalità" o lo "stato" in cui il programma si trova in quel momento. Pensa a un personaggio di un videogioco. Può trovarsi nello stato "cammina", "corre" o "salta". Nel nostro caso, il cuore del nostro robot può trovarsi nello stato "addormentato" oppure "sveglio". Le variabili di stato sono la memoria che permette al programma di sapere quale comportamento deve avere in ogni istante.

Lo Schema: Eventi che Controllano un Loop

In questo progetto due parti del nostro codice lavoreranno in squadra senza mai toccarsi direttamente. Comunicano attraverso le variabili!

  • Il Loop Principale: è il motore. Si occupa dell'azione continua: animare il cuore. Ma non decide da solo la velocità; a ogni ciclo legge pausaLunga e pausaBreve per sapere quanto aspettare tra un disegno e il successivo.
  • Gli Eventi: sono i comandi. Aspettano un'azione dell'utente (inclinare il dispositivo). Quando ne arriva una, il loro unico compito è scrivere un nuovo valore in pausaLunga e pausaBreve. Il loop legge, gli eventi scrivono. Le variabili sono il messaggio che si scambiano.

Crea

Diamo un cuore al nostro robot!

Costruisci il modellino di cartone— servono anche un paio di elastici per fissare il telefono al cartone

  1. Premi ✙ Aggiungi dispositivo e seleziona DisegnoLED per l'animazione del cuore.
  2. Aggiungi anche il componente BatteriaMusicale per il suono del battito.
  3. Infine, aggiungi Inclinazione per rilevare i gesti che cambieranno lo stato.

Siamo pronti a dare vita al nostro amico!

Composizione del Codice

Quando inizia il programma, impostiamo pausaLunga e pausaBreve sul ritmo "tranquillo". Attenzione: queste variabili non contengono una velocità ma millisecondi di attesa — più lunga l'attesa, più lento batte il cuore. Il loop principale usa di continuo queste variabili per definire le pause dell'animazione. I due blocchi evento di inclinazione restano in ascolto in secondo piano. Quando inclini il telefono di lato, l'evento corrispondente sostituisce i numeri nelle variabili con valori più piccoli, facendo accelerare il loop (che li sta sempre leggendo). Il cuore va in agitazione! Quando rimetti il telefono a faccia in su, l'altro evento ripristina la velocità normale. E un dettaglio importante: il ritmo tranquillo compare due volte — in Quando inizia il programma e nel gesto che riporta la calma. Se ne cambi uno, cambia anche l'altro, altrimenti il gesto annullerà la tua modifica.

Rifletti

In questo progetto le variabili non si limitano a contare: controllano il comportamento. Che cos'è una "variabile di stato"?

Spiega con parole tue come fanno a comunicare il loop principale e i blocchi evento, se non sono collegati direttamente.

Quali altri "stati" potresti dare al tuo robot? Magari uno stato "accelerato", in cui il cuore batte molto, molto in fretta, come se il robot stesse correndo?