Robotica e musica: il robot percussionista

Aggiornato il: mar 3

Per spiegare a cosa ci riferiamo con le parole robot percussionista, presentiamo il seguente video, nel quale un’orchestra robot ibrida, composta da robot LEGO e robot basati su Arduino esegue una performance musicale.


L’orchestra nel video (Toa Mata Band) è composta da personaggi LEGO, strumenti elettronici più o meno tradizionali e strumenti acustici. Vediamo che per ciascun personaggio c'è un semplice motore che muove una puleggia, la quale, a sua volta, fa muovere gli arti del robot.


Come realizzare un'orchestra di robot?

Quando vogliamo realizzare un laboratorio di robotica musicale e usare i robot per eseguire la musica, dobbiamo distinguere il concetto di spartito digitale, da quello di orchestra.

Lo spartito digitale dice all’orchestra quali note suonare, per quanto tempo e con quale volume. Nel video lo spartito è rappresentato dall’IPad che controlla i robot tramite uno spartito digitale usando il MIDI, il protocollo standard per l'interazione degli strumenti musicali elettronici, anche tramite un computer.

L’orchestra è lo strumento, l’hardware che suona le note dello spartito digitale, nel nostro caso è costituita dai robot.


Spartito digitale

Per controllare un robot con uno spartito digitale musicale, usiamo, in questa lezione, un programma musicale come LMMS. Dobbiamo cercare di controllare i motori del nostro robot a tempo, in base alle note MIDI.



Osserviamo che all'interno del programma LMMS lo spartito è rappresentato dai blocchetti verdi. Possiamo, inoltre, scegliere lo strumento che suona le note, che servirà esclusivamente per avere un feedback sonoro, prima del collegamento all’orchestra di robot.


Orchestra con LEGO/Engino

Se scegliamo di usare LEGO o Engino, non è possibile collegare i motori ad uno spartito MIDI, quindi per ottenere lo stesso risultato del video, dovremmo usare il codice programmando, blocchetto per blocchetto, uno spartito che fa muovere il motore a tempo e lo fa ripetere un certo numero di volte.

Poiché questo procedimento è piuttosto complesso, è possibile ricorrere all’alternativa di usare un singolo motore per far girare un rullo simile a quello di un carillon, come nel seguente video.



Orchestra con robot Arduino

Se, invece, decidiamo di utilizzare robot basati su Arduino, è possibile collegare quest’ultimo al MIDI e quindi tutto diventa più semplice. Per farlo si può utilizzare il programma Hairless MIDI Bridge.



Arduino comunica con il computer attraverso una porta seriale (in Windows si chiama com); possiamo decidere di far passare attraverso essa il MIDI mediante questo programma.

Apriamo quindi una porta virtuale interna al sistema operativo e la scheda esterna; per farlo in Windows è necessario scaricare il programma Loop MIDI e creare la porta, mentre in IOS si può aprire la porta senza bisogno di scaricare alcun software aggiuntivo.

Una volta aperta la porta virtuale, entriamo in LMMS, apriamo le impostazioni della traccia musicale sulla quale stiamo lavorando, andiamo in MIDI>Uscita e troviamo la nostra porta virtuale.

Quindi, tutte le note dello spartito escono dal computer tramite la porta seriale ed entrano nella scheda (se non avessimo creato la porta virtuale, il suono sarebbe uscito dal generatore interno a Windows).

In questa traccia troviamo una sola nota, poiché lo spartito è rivolto ad uno strumento percussivo suonato dal braccio del robot (pattern di 4 battute).

Verifichiamo sempre che la connessione seriale sia attiva (in alto a sinistra Serial MIDI Bridge On) e premiamo Play sullo spartito: il servomotore collegato ad Arduino si muove a tempo di musica.


Il servomotore è collegabile facilmente alla scheda Arduino.


I tre cavi del servomotore si collegano all’alimentazione, alla terra e al segnale di controllo del motore.

Il codice Arduino è di tipo testuale, quindi più indicato per la scuola secondaria, tuttavia, anche chi non è esperto può prenderlo così com'è, perché esso serve solo per attivare il motore in base allo spartito. Eventualmente, può essere modificata la nota musicale.


Codice Arduino

Vediamo brevemente la parte principale del codice:


Troviamo una funzione che dice:


controlla MIDI, se arriva qualcosa sulla porta seriale, il primo byte di questi messaggi è il tipo di messaggio (nel MIDI è il messaggio di nota ON), quale nota è (in questo caso è la n° 48) e se la nota è uguale a 48 e la velocity (cioè il volume) è superiore a 0, accendi la porta n° 13 e muovi il servomotore e mettilo in posizione di 90°.


Il codice continua per rendere questo processo ciclico.

Nel caso in cui la nota NON sia ON, il servomotore va in posizione 40°.

C’è, inoltre, una riga che serve per fare acceso/spento sulla porta n° 13; essa serve per attivare un altro componente elettronico, molto usato nella robotica musicale, cioè il solenoide, una specie di stantuffo elettromeccanico che, in base alla corrente, dà colpi.

Tale componente prevede un circuito un po’ più complicato del servomotore e anch’esso si muove a tempo di musica. Ha una componente magnetica ed un’alimentazione a 12 volt (quindi per funzionare richiede che Arduino sia collegato ad un alimentatore a 12 volt)

Con esso diventa molto più interessante creare robot che suonano percussioni.


Per approfondire questo argomento, guarda la video lezione Robotica e musica: il robot percussionista (Corso Robotica per la scuola primaria).

Vuoi certificare la tua formazione? Abbonati a PaLEoS!


© 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