Robot a sangue freddo e sangue caldo alla primaria

In questo post vedremo come far reagire un robot alle variazioni di temperatura, utilizzando un apposito sensore e cercando di imitare il comportamento di animali a sangue freddo e a sangue caldo.

Per la scuola primaria i prodotti migliori per questo scopo sono Mbot (che ha incluso il sensore di temperatura, a differenza di LEGO WeDo o Engino) o robot fai da te stampati in 3D. Inoltre, tale attività si presta meglio per laboratori dedicati alle ultime classi della primaria e impiegando un linguaggio di programmazione a blocchetti.


Nei laboratori di robotica fai da te, che solitamente conduciamo, usiamo il robot diy EDUino, un robot insetto, interamente stampabile in 3D, dotato di 3 motori e basato sulla piattaforma Arduino, programmabile anche con Mblock (il software a blocchetti usato per programmare Mbot).

Una volta stampato il robot, gli studenti possono assemblarlo con cacciaviti, bulloni, lima, colla a caldo, ecc… e questa di solito è una fase molto apprezzata.



Sensori di temperatura

I sensori di temperatura che si possono usare sia con Mbot, sia con Arduino sono:

  • DHT11 per Mbot. E’ simile a quello che si usa per Arduino ed ha lo stesso funzionamento (l’unica differenza sta nel fatto che quello per Mbot si collega tramite un unico cavo, mentre quello per Arduino è collegabile tramite pin separati). E’ un sensore digitale, sensibile sia alla temperatura, che all’umidità.


DHT11 per MBot

DHT11 per Arduino

Di solito i sensori di temperatura non vengono usati per generare un’azione istantanea del robot (come nel caso del sensore ultrasuoni o del sensore infrarossi), ma per il monitoraggio ambientale e per la raccolta delle informazioni dall’ambiente e la loro visualizzazione, poiché la temperatura non varia in maniera repentina e quindi è difficile ottenere una reazione immediata del robot.


  • LM35 per Arduino. E’ di tipo analogico e può essere direttamente collegato ad un ingresso di Arduino, per rilevare la tensione elettrica che misura la temperatura.

Esso viene inserito nella breadboard con i piedini nella stessa linea dei cavi virtuali che vanno alle porte di Arduino, non occorrono resistenze.




LM35 in Circuits

Vediamo una simulazione di LM35 con Circuits, un’applicazione che si trova all’interno di Tinkercad (il programma di modellazione 3D per principianti), con la quale è possibile fare simulazioni di circuiti Arduino ed Mbot, utilizzando sia il codice testuale che quello a blocchetti (simile a Scratch).



Entrando in Circuits, apriamo la prima simulazione da noi preparata.

La simulazione è molto semplice, bastano 3 cavi per collegare Arduino al sensore: il 5volt (polo positivo, per l’alimentazione), il ground (che è la terra, il polo negativo) e il cavetto centrale che è ciò che rileva il sensore.



Il codice è il seguente:





Il codice dà istruzioni di scrivere sulla finestra monitor seriale il valore letto dal pin analogico A0 e andare a capo.

Per avviare la simulazione si clicca su “Avvia simulazione” in alto a destra e viene stampato un valore, che però non è la temperatura in gradi Celsius, ma è il valore di variazione della tensione elettrica rilevato dalla porta A0 di Arduino.

Se virtualmente modifichiamo la temperatura, agendo sullo slider, vedremo che più si alza la temperatura, più si alza il valore sul monitor seriale.


Se vogliamo che venga stampato un valore di temperatura in gradi Celsius, dobbiamo utilizzare alcune formule di conversione.

Il sensore appena mostrato, LM35, è il più semplice da usare per far rispondere il robot alla temperatura.


LM35 e pattern motorio

Apriamo un'altra simulazione  per lavorare sul pattern motorio del robot EDUino.



Anche in questo caso il codice è molto semplice: oltre alla riga con la quale facciamo scrivere sul monitor seriale il valore rilevato dal sensore di temperatura, inseriamo una condizione tramite il blocco “se” (se il valore che viene letto dalla porta A0 è maggiore di 30, allora avviene il movimento dei 3 motori del robot che riproducono uno schema di movimento, altrimenti i motori stanno fermi).

Il codice è il seguente:

Avviamo la simulazione, se con il tasto destro del mouse muoviamo la maniglia che permette di variare il valore della temperatura, fino a ridurre il valore rilevato ad un numero inferiore a 30, vediamo che i motori si fermano. Anche in questo caso il codice è molto semplice.


DHT11 in Mblock

Vediamo il sensore che è incluso in Mbot: DHT11.

Apriamo Mblock, dopo aver collegato la nostra scheda, in questo caso Arduino.

Per collegare la scheda:

  1. Scegliere la scheda giusta all’interno del menù “Schede”;

  2. Entrare in modalità Arduino, per cambiare la visualizzazione.

Come avviene per i robot originali Mbot, quasi tutti i blocchetti specifici sono sotto il menù Robot (ad esempio: lettura di un ingresso digitale/analogico; suonare una nota su una determinata uscita per far suonare i cicalini; scrittura del testo seriale; lettura del sensore ad ultrasuoni, ecc…). Gli altri menù che possiamo usare con i robot sono: gli operatori matematici, le strutture di controllo (“se”, “se...altrimenti”, “ripeti”, “attendi”), il blocco per la creazione delle variabili.

Quando si programma in Scratch si programma per un oggetto grafico, mentre quando programmiamo il robot, che è un oggetto esterno, i menù che si riferiscono ad oggetti grafici vengono oscurati.



Per avere questi blocchetti abbiamo dovuto installare un’estensione, seguendo i passaggi: Estensione (dal menù in alto) > Gestisci estensioni. Abbiamo cercato gli accessori che aumentano le possibilità di programmazione, poiché aumentano i blocchetti. In questo caso abbiamo selezionato DHT extension.



Analizziamo il codice: dopo Programma Arduino, troviamo il ciclo per sempre, poi il riferimento al nostro sensore prova e il collegamento al pin 3 (il modello del sensore è DHT11). L’estensione mette a disposizione le variabili temperatura e umidità, valori di esse verranno scritti sulla porta seriale. Abbiamo inserito, poi, l’attesa di 1 secondo per rallentare il processo.

Per vedere i dati che riceviamo dal sensore, dobbiamo aprire la finestra seriale del programma IDE di Arduino.



Vediamo i valori di 22 C° di temperatura e umidità 47%.

Questo tipo di esercitazione può essere usato negli ultimi anni della primaria.

Se volessimo determinare il movimento al superamento di una certa soglia, potremmo aggiungere al codice un’ulteriore istruzione:


Per approfondire questo argomento, guarda la video lezione Robotica e scienze: robot "animali" o con le ruote (Corso Robotica per la scuola primaria).

Vuoi certificare la tua formazione? Visita il nostro shop!


© 2020 PaLEoS Srl
Via Sant'Angelo 25 - 50142 Firenze (FI)
Tel. 329-5983082 - info@paleos.it paleos.srl@pec.it
P.iva 06843880482 - Capitale Sociale € 39.000
Nr. iscrizione Registro Imprese Firenze: 660459

 | Privacy | Dove siamo