Programmare con Halocode

Halocode è un computer a scheda singola di forma circolare molto simile a micro:bit, ma Halocode ha fatto decisamente un balzo tecnologico in avanti, infatti con questa scheda è anche possibile sperimentare il riconoscimento vocale e quello facciale e realizzare semplici progetti di domotica. Halocode può essere programmato da un computer (PC o Mac) con mBlock5, un ambiente di programmazione grafico basato su Scratch 3, disponibile per Windows, Mac, iOS, Android, Linux, ChromeBook. Esiste anche una versione on line ottimizzata per Google Chrome.

Componenti principali [indice]

​La scheda programmabile Halocode, prodotta dall’azienda cinese Makeblock,  è costituita dai seguenti componenti principali:

  • 1 pulsante centrale azzurro
  • 4 sensori di contatto (PIN), a cui si aggiungono 1 pin alimentato a 3,3V e 1 pin per la messa a terra (GND)
  • 1 microfono
  • 1 sensore di movimento
  • 12 led RGB
  • 1 connettore USB
  • 1 modulo Bluetooth
  • 1 modulo Wi-Fi
  • 1 connettore per la batteria
  • 1 connettore per moduli
  • 1 connettore per scheda di estensione

halocode-front

halocode-2

Nella confezione, oltre alla scheda programmabile troviamo:

  • 1 porta batterie con 3 batterie AAA
  • 4 clip a coccodrillo
  • 1 nastro laminato in rame
  • 1 cinturino in velcro
  • 4 striscioline di velcro
  • 1 cavo micro USB
  • 12 cartoncini con esempi di programmi (in inglese) per fare subito le prime esperienze con il dispositivo.

confezione halocode

Cos’è Makeblock? [indice]

Fondata nel 2012, Makeblock è un’azienda cinese produttrice di robotica educativa e prodotti STEAM. La linea Makeblock è composta da diversi robot con struttura metallica, come mBot o Ranger, e moduli elettronici, come schede di controllo, sensori, attuatori, ruote, assi, travi, cavi, ecc. L’elettronica Makeblock è compatibile con Scratch, un diffuso ambiente grafico con cui è possibile imparare a programmare facilmente. Per interagire con questa linea di prodotti, Makeblock ha creato l’ambiente di programmazione mBlock5 basato su Scratch.

Sensori integrati in Halocode [indice]

I sensori sono gli elementi che danno i “sensi” al robot: il tatto, la vista, l’udito, l’equilibrio, ecc.

Vediamo in dettaglio quali sono i sensori di Halocode.

Pulsante

Halocode presenta un pulsante blu, situato al centro della scheda. Un pulsante è un sensore che restituisce un valore logico in base al suo stato:

  • Vero (1) se premuto
  • Falso (0) se non premuto

Sensore di tocco

I quattro pin Halocode di connessione color oro sono anche sensori tattili. Concettualmente questo tipo di sensore, detto anche sensore capacitivo, è molto simile ad un pulsante ma, a differenza di questo, non ha bisogno di essere premuto, poiché è sufficiente toccarlo per attivarlo.

Sensore sonoro e vocale

Questo sensore conferisce ad Halocode un senso simile all’udito, in grado non solo di misurare l’intensità del suono, ma anche di interpretarlo, il che, ad esempio, permette all’utente di accendere o spegnere i LED con la voce. Tramite questo tipo di sensore è possibile realizzare una moltitudine di dispositivi come un fonometro (strumento che misura il livello del suono ambientale), allarmi sonori etc.

Sensore giroscopico e accelerometro

Halocode è dotato di un sensore giroscopico e un accelerometro, che consentono di misurare il movimento angolare e l’accelerazione lungo i 3 assi cartesiani. La portata del giroscopio è + -180° sull’asse X e + -90° sull’asse Y, mentre la portata dell’accelerometro è + -8g. Con questo componente possiamo rilevare la rotazione e le accelerazioni della scheda nonché la sua posizione nei 3 assi.

Pin di connessione

La scheda Halocode ha 6 pin di connessione di colore dorato:

  • 4 pin di input e output che possono essere utilizzati per ingressi e uscite digitali e per uscite analogiche. Per gli ingressi analogici possono essere utilizzati solo i pin 2 e 3.
  • Pin di alimentazione etichettato con 3.3 V che fornisce alimentazione ai sensori o attuatori aggiuntivi collegati alla scheda.
  • Pin di terra, etichettato con GND (ground) è il connettore di terra per i sensori o attuatori aggiuntivi collegati alla scheda.

pin-connessione

Sensori aggiuntivi [indice]

La scheda Halocode dispone di pin di connessione per sensori e attuatori Arduino aggiuntivi:

  • Potenziometro: permette di regolare l’intensità della corrente (la quantità di elettricità) che circola in un circuito. Un chiaro esempio sono i controlli che consentono di regolare il volume nell’apparecchio musicale.
  • Sensore di luce: consente ad Halocode di misurare l’intensità della luce, il che apre le porte allo sviluppo di progetti tipo fotometri.
  • Termometro: la temperatura è una grandezza riferita alle comuni nozioni di caldo o freddo che le persone possono percepire attraverso i termorecettori, situati nella pelle chiamati rispettivamente corpuscoli di Krause e corpuscoli di Ruffini.
  • Sensore di umidità del suolo: determina l’umidità del suolo misurando la conduttività. Con questo tipo di sensore è possibile, ad esempio, controllare l’umidità di una pianta.
  • Sensore PIR (Passive InfRared): misura la luce infrarossa (IR) emessa dagli oggetti che si trovano nel suo campo visivo. Una delle applicazioni più comuni di questo tipo di sensori sono i rilevatori di movimento, sia nei sistemi di allarme che nei sistemi di illuminazione automatici.
  • Sensore di fiamma: si basa su un ricevitore di luce infrarossa estremamente sensibile alla lunghezza d’onda specifica emessa dalle fiamme, sebbene con determinate luci possano dare falsi positivi.

Sono tutti componenti digitali analogici e devono essere collegati alla scheda in questo modo:

  • Cavo segnale (giallo): pin 3 o pin 2
  • Cavo di alimentazione (rosso): pin 3,3 Volt
  • Filo di terra (nero): pin di terra (GND)

potenziometro-halocode

Attuatori [indice]

Un attuatore è un dispositivo in grado di trasformare l’energia idraulica, pneumatica o elettrica nell’attivazione di un processo, con lo scopo di generare un effetto su una procedura automatizzata. Halocode ha integrati 12 LED RGB che formano un anello. Ogni LED RGB è composto da tre LED monocromatici, uno per ciascun colore primario: rosso, verde e blu. L’acronimo RGB sta appunto per: Red, Green e Blu. Combinando questi tre colori primari è possibile ottenere qualsiasi colore dello spettro. In mBlock5 ogni LED RGB è controllato con diversi blocchi specifici.

Attuatori aggiuntivi

Come abbiamo visto precedentemente, la scheda Halocode dispone di pin ai quali è possibile collegare attuatori aggiuntivi:

  • Buzzer: è un trasduttore elettroacustico passivo (esistono anche trasduttori attivi) che produce un suono monotonale continuo (solitamente acuto). Serve come meccanismo di segnalazione o di allarme e viene utilizzato in molteplici sistemi, come elettrodomestici, veicoli, ecc.
  • Relè: dispositivo simile a un interruttore ma, invece di essere azionato manualmente, si accende o si spegne tramite un segnale digitale. È quindi elemento chiave per l’utilizzo della robotica nei progetti di domotica.
  • Pompa fluido: è una pompa verticale da 3 V che può essere utilizzata per tutti i tipi di progetti ed è controllata indirettamente tramite un relè.

Comunicazione [indice]

Halocode ha diversi componenti per la comunicazione, sia cablati che wireless.

  • Connettore USB: utilizzato sia per caricare i programmi nella memoria della scheda sia per alimentarla.
  • Modulo Wi-Fi: consente ad Halocode di connettersi ad una rete per utilizzare, ad esempio, le funzioni IoT (Internet of Things) o per far comunicare tra loro più schede.
  • Modulo Bluetooth: utilizzato per connettere Halocode a un tablet, smartphone o PC. Nel caso del PC è consigliabile utilizzare la chiavetta Bluetooth Makeblock.

makeblock-bluetooth-dongle

Aggiornamento del firmware [indice]

Il firmware è il software non volatile (non viene cancellato quando l’Halocode è spento) che controlla le funzioni di base di un circuito integrato (chip). A volte è necessario aggiornare il firmware, sia per risolvere problemi operativi sia per aggiungere nuove funzionalità. Collegando una scheda Halocode al computer ed accedendo all’ambiente di programmazione mBlock5, quest’ultimo verifica automaticamente se è disponibile un aggiornamento del firmware, nel qual caso offre all’utente la possibilità di aggiornarlo. Una volta avviato l’aggiornamento è necessario evitare l’interruzione del processo per non compromettere il funzionamento della scheda.

Alimentazione elettrica [indice]

Per funzionare, la scheda Halocode necessita di alimentazione elettrica che si ottiene tramite il connettore USB o il connettore laterale. Nel caso del connettore USB, Halocode è alimentato direttamente dal dispositivo a cui è collegato: PC, tablet, etc.. Il connettore laterale è invece utilizzato per collegare il portabatterie disponibile nella confezione. Se si utilizzano batterie, la tensione deve essere compresa tra 3 e 5 volt. Per alcuni progetti l’ideale è alimentare la scheda Halocode con le batterie fissate sul retro tramite velcro. Subito dopo aver ricevuto l’alimentazione, la scheda Halocode si avvierà ed eseguirà il programma caricato precedentemente nella memoria.

batteria-halocode

Programmare con mBlock5 [indice]

Halocode può essere programmato con mBlock5, disponibile per PC e Mac, uno strumento sviluppato da Makeblock. È basato su Scratch3, quindi utilizza blocchi che si incastrano, come se fosse un puzzle, per costruire programmi. Ciò aiuta a rendere la programmazione accessibile ai bambini, perché non devono preoccuparsi della sintassi come nei linguaggi di programmazione testuali (C++, Java, Python).

Essendo un prodotto sviluppato da Makeblock, è costantemente aggiornato e permette di utilizzare l’intera gamma di sensori e attuatori del marchio. All’avvio di mBlock5, viene visualizzata la seguente schermata:

mBlock

  1. Menù superiore
  2. Stage
  3. Menù di esecuzione
  4. Sottomenu
  5. Selezione e connessione della scheda
  6. Gruppi di comandi di programmazione
  7. Comandi di programmazione del gruppo selezionato
  8. Area di programmazione

È possibile utilizzare la scheda Halocode all’interno di mBlock5 in due modalità diverse:

  • Modalità Carica File o upload: consente di caricare sulla scheda il progetto creato precedentemente in mBlock ed eseguire quindi il programma direttamente dalla scheda senza essere connessi al PC o altri dispositivi. Quando questa modalità è attiva, gli utenti possono utilizzare il pulsante Quando Halocode si avvia presente nella categoria Situazioni.
  • Modalità dal vivo o Live: consente di eseguire in tempo reale il codice creato in mBlock sulla scheda Halocode collegata al PC. Questa modalità è quindi ideale per il debug del codice.

Selezione e connessione della scheda [indice]

Nell’angolo in basso a sinistra dell’ambiente mBlock5, appare una casella con tre opzioni: Dispositivi, Sprite e Sfondo. Cliccando su Dispositivi sono visualizzati quelli già selezionati:

dispositivi-mBlock

Cliccando sulla casella che contiene il segno più e la scritta Aggiungi, appare una nuova schermata con i robot e le schede disponibili:

mBlock-dispositivi

Per selezionare e aggiungere Halocode ai dispositivi del progetto, basta cliccare sulla icona relativa al dispositivo. Successivamente, per caricare un programma sulla scheda, è necessario collegarla al PC, tramite la porta USB o il modulo Bluetooth.

Connessione USB

Halocode può essere collegato a un PC tramite il connettore mini USB sulla parte superiore. Dopo aver collegato il cavo USB, fare clic sul pulsante Collega, si apre una finestra che permette di selezionare la porta di connessione, ad esempio COM3. Dopo aver selezionato la porta a cui è stata collegata la scheda, fare clic sul pulsante Connessione. Non è possibile collegare più di un dispositivo contemporaneamente, quindi quando si collega un nuovo dispositivo, quello precedentemente connesso viene disconnesso. Una volta stabilita la connessione, questa finestra si chiude e nella sezione Dispositivi appare l’opzione per caricare il programma (upload). La stessa connessione USB fornisce alimentazione a Halocode.

halocode-connetti

Connessione Bluetooth

Per connettere il PC con Halocode tramite Bluetooth, è necessario seguire i seguenti passaggi:

  • Collegare il dongle Bluetooth Makeblock ad una porta USB del PC.
  • Attiva Halocode.
  • Premere il pulsante sul dongle Bluetooth. Una volta effettuato l’abbinamento la luce blu di entrambi i componenti rimarrà fissa.
  • In mBlock5 collegare Halocode seguendo la stessa procedura descritta per la connessione alla porta USB.

Una volta eseguita la connessione della scheda Halocode al PC o altro dispositivo, è possibile iniziare a creare progetti in mBlock, incastrando i blocchetti colorati nell’area di programmazione, come faremmo in Scratch.

mBlock-programma

Guido Mondelli

Docente formatore informatico