In occasione del corso: creare un kit di robotica educativa a basso costo – 3′ edizione rendo pubblico il progetto del “Ciao Ciao Box” un dispositivo che è stato realizzato con BBC micro:bit V2 pensato per allievi della scuola elementare e media. Come annunciato recentemente sui vari social sto sviluppando una versione su cui sarà possibile bloccare magneticamente, con viti o con mattoncini Lego altri oggetti o scatole interattive programmabili.
Come potete intuire questo tipo di interazione potrà avvenire anche con altri Microcontrollori, ma la semplicità di programmazione di micro:bit rende la realizzazione di questo scatola interattiva interessante con gli studenti più giovani.
Ma come realizzare questo tipo di oggetto?
Innanzitutto l’interazione che mostro in questa lezione è tra due box con bandiera, il cui movimento è realizzato da un piccolo servomotore SG90 ed un terzo box che ha l’unico scopo di emettere un suono che sarà diverso in funzione del box trasmittente.
Quindi 3 box con le seguenti funzionalità:
- box 1 emettitore suono. Emette suoni diversi in funzione del box che muove la bandiera
- box 2 invio messaggio “muovi bandiera” al box 3 e nel contempo può ricevere il messaggio “muovi bandiera” dal box 3
- box 3 invio messaggio “muovi bandiera” al box 2 e nel contempo può ricevere il messaggio “muovi bandiera” dal box 2
Perché usare il box 1 per emettere un suono?
Intuitivamente si potrebbe si potrebbe essere portati a pensare che questa funzionalità poteva essere riprodotta dal box 2 e dal box 3, ma ciò non è possibile.
La gestione del servomotore e nel contempo dell’emissione del suono non può essere fatta contemporaneamente in quanto il comportamento dei due dispositivi elettronici non risponde ai comandi impartiti dalla programmazione. Dal puntosi vista tecnico è presente un unico timer che gestisce il ciclo di funzionamento e il timer può essere usato o dal servomotore o dal buzzer non da entrambi.
Per evitare il comportamento anomalo viene demandata l’emissione del suono al box 1.
Il progetto pertanto potrebbe essere realizzato con un micro:bit V2 dotato di buzzer e due microbit V1 a cui demandiamo il controllo dei servomotori.
Ovviamente se disponete di soli micro:bit V1 potrete connettere un buzzer esterno al micro:bit inserito nel box 1, per questa operazione fate riferimento alle schede di progetto condivise su questo sito.
Struttura del box
Si tratta di un cubo 10×10 cm. La realizzazione dei box può essere fatta con qualsiasi materiale: cartone, compensato, foam. Potreste anche riciclare scatole di alimenti: latte, pasta, sale ecc…
Per chi desidera realizzare le medesime scatole che vedete nell’immagine introduttiva di questa lezione condivido il file pdf che potrà essere utilizzato per tagliare a laser tutte le facce del cubo in cui troverete gli inserti per i pulsanti e i servomotori.
Per chi invece non può utilizzare una macchina a taglio laser condivido il file pdf delle facce del cubo su cui poi voi dovrete realizzare i fori per l’inserimento dei pulsanti e dei servomotori.
Materiali utilizzati
Tutti i materiali potete trovarli su qualsiasi store online e la quasi totalità di quelli in eleco li trovate su Amazon.
Compensato spessore 3 mm (se costruite i box in compensato)
Pulsanti 6 colori 12×24 mm
Servomotori SG90 (0°-180°)
Edge Connector Breakout Board per micro:bit
Jumper corti maschio/maschio (fili da usare per la breadboard)
mini breadboard da 170 punti
Contenitore 4 batterie AA da 1,5 V con interruttore
Fogli di cartone ondulato formato A4 da 4 mm di spessore
Viti M3 12 mm e dadi M3
Collegamenti
Box 1
Si suppone in questo circuito l’utilizzo di un micro:bit V2
Box 2
Box 3
Come potete notare i circuiti per il box 2 e 3 differiscono solamente per il pin a cui connettiamo il pulsante.
E’ essenziale notare due cose:
- il micro:bit e il servomotore sono alimentati da due batterie diverse, il micro:bit a 3V mentre il servomotore con un pacco batterie da 6V. Il positivo del servomotore va solamente collegato al pacco batterie da 6V
- Le masse dei due pacchi batterie sono comuni, si noti il collegamento a massa del micro:bit sulla breadboard e quello del servomotore al pacco batterie.
E’ possibile evitare il pacco batterie da 3V, ma per questa operazione è necessario effettuare una modifica al cavo micro USB utilizzato per connettere il micro:bit al computer, ma demando questa spiegazione ad una prossima lezione.
Per i colleghi che seguono il mio corso darò ulteriori dettagli tecnici e alternative di progettazione.
Programmazione
All’interno del codice condiviso troverete alcune indicazioni sul funzionamento, essenziale porre estrema attenzione al codice dei Box 2 e 3 in cui nel blocco “on start” ho abilitato le resistenze di pull-up sui pin 2 e 8 del micro:bit, questa operazione eviterà di utilizzare due resistori esterni di pull-up connessi al pulsante.
In questa sperimentazione, per i box 2 e 3 ho utilizzato un solo pulsante, lascio a voi le modifiche del circuito e la programmazione per abilitare il funzionamento del secondo pulsante.
Consiglio, per i box 2 e 3 di effettuare il trasferimento del codice sul micro:bit senza connettere il micro:bit all’edge connector, una volta effettuato il trasferimento del programma, scollegatelo dal computer ed inseritelo all’interno dell’edge connector.
Programmazione box1
Programmazione box 2 e 3
Maggiori dettagli su collegamenti e funzionalità da aggiungere durante il corso in presenza.
Buon Coding a tutti 🙂