Back to blog

Zoobot: un robot che cammina con soli 4 servo motori

Sto costruendo un robot da zero, sarà un giocattolo, ma soprattutto il kit per il mio corso di Arduino nelle scuole medie.

Diario di bordo del progetto.

[ 20 maggio 2026 ]

Questo progetto nasce da un’esigenza reale: avere un kit semplice, programmabile, facile da montare, per il corso di robotica che tengo a ragazzi di 2a e 3a media.

Il corso dell’anno prossimo seguirà infatti il precedente sulle basi di Arduino, elettronica, sensori e attuatori, pertanto dovrebbe essere un corso con un kit di robotica. In anni passati abbiamo utilizzato il robot Penguin (un clone del robot bipede open source Otto).

Le problematiche col Penguin-bot riguardano il software che è un po’ complicato (per ovviare a questo problema ho provveduto a realizzare un’apposita libreria), ma poi ha scoperto un difetto hardware che è presente nei kit venduti su Amazon in Italia e acquistati dalla scuola.

Inoltre il risultato del lavoro per gli studenti è poco omogeneo, il robot non è facile da montare e se alcuni ragazzi completano correttamente il lavoro, altri finiscono per avere un robot che non funziona bene, le gambe sono “molli” e un po’ instabili, oppure i ragazzi perdono le viti, o rompono i motori durante il montaggio. Insomma non sono stato soddisfatto.

Il robot da realizzare deve essere molto semplice da assemblare, le lezioni a disposizione sono brevi, durano infatti solo 1 ora. Così, dopo aver analizzato e provato diversi kit di robotica, ho scelto la soluzione autarchica: lo faccio io.

[ 15 giugno 2026 ]

Non avendo io grosse capacità col disegno 3D, decido di non perdere tempo sul design del robot, e coinvolgo l’amico e compagno di progetti Andrea Barra, designer di lampade, ma anche di barche e di qualunque altra cosa come è giusto che debba essere un designer.

Abbiamo iniziato a costruire un telaio tridimensionale per ospitare e tenere insieme i motori e provare così i movimenti.

I movimenti: il problema principale dell’utilizzo di soli 4 servo è che i movimenti sono un po’ limitati, è come avere le gambe senza il ginocchio.

Tuttavia è possibile creare gesti, pose, passi che consentono il reale utilizzo del kit a fini didattici, ma anche come gioco.

Il kit, prima proof of concept, è basato su questi componenti:

  • una scheda XIAO ESP32S3, nella versione “Sense” cioè dotata di microfono e telecamera.
  • 4 servo motori, 180°
  • batteria 3.7V
  • modulo di ricarica e step up 5V

Il tutto montato su una perfboard e tenuto insieme da un elastico.

Il primo software è stato scritto con VSCode e Claude, ogni riga è stata verificata by human, si può compilare con Arduino IDE e si può caricare anche in modalità OTA.

La parte più complessa della programmazione del robot è la gestione dei movimenti, ed è avvenuta in modo empirico: trovare le posizioni delle gambe per fare un passo.

Per velocizzare ho realizzato un’interfaccia web che permette di caricare sequenze di numeri che rappresentano gli angoli di tutti e quattro i motori, quando la sequenza funziona è poi possibile salvare nella ESP 32 tutti i parametri.

[ 22 giugno 2026 ]

Andrea aggiunge un po’ di visione tridimensionale, propone di aggiungere dei caratteri, non è più solo un “cane” o un generico animale robot a quattro zampe, utilizzando dei carta modelli e utilizzando delle luci è possibile creare dei caratteri ben definiti: cane, maialino, coccodrillo, etc.

Prototipo di Zoobot con il guscio illuminato di verde

Nome proposto: Zoobot.

Iniziamo a definire gli spazi per le cose.

[ 28 giugno 2026 ]

Andrea Barra ha esplorato un po’ l’idea degli animali!

Schizzi a matita di Zoobot trasformato in vari animali
Schizzi colorati di Zoobot trasformato in vari animali

Intanto, con l’editor dei movimenti è più semplice programmare pose, e cercare di costruire movimenti coordinati più complessi.

[ 6 luglio 2026 ]

Una nuova versione del telaio è pronta, ho ridisegnato la PCB che sosterrà tutti i componenti, ho deciso di aggiungere al progetto anche un sensore di distanza per migliorare la comprensione del mondo esterno e poter ampliare i compotamenti. Inoltre ho aggiunto su richiesta di Andrea la luce per caratterizzare gli animali (verde per il coccodrillo, rosa per il maialino…).

Il sensore di distanza scelto è un TOF, un sensore ad infrarosse, molto più piccolo dei classici sensori ad ultrasuoni. Gli occhi del nostro Zoobot saranno asimmetrici dato che il TOF è allungato, mentre la camera è rotonda, questo ci sembra conferirgli un certo sguardo simpatico e buffo.

Un po’ di disegni e screen:

Layout della PCB di Zoobot nell'editor
Render 3D della PCB di Zoobot con i connettori dei servo
Render 3D della base di Zoobot con gli alloggiamenti dei servo
Render 3D del corpo di Zoobot con le quattro zampe
Pezzi di Zoobot preparati nello slicer per la stampa 3D
Pezzo di Zoobot nello slicer pronto per la stampa 3D
Render 3D di Zoobot in versione coccodrillo

Zoobot sta prendendo forma!

Prossime attività in programma:

  • stampa di un primo PCB per montare un prototipo completo.
  • Preparazione del nuovo software.
  • Definizione del software base che verrà preinstallato per consentire di giocare senza dover fare il corso

Promemoria, questo dovrebbe essere il programma del corso con Zoobot:

  • Lezioni base via Arduino IDE:
    • giocare con la luce
    • leggere le distanze
    • muovere i motori
  • Lezioni base, un po’ più articolate
    • leggere le distanze e interagire di conseguenza con i motori
    • distanze e luce
    • movimenti coordinati, uso dell’interfaccia web per testare i movimenti
    • creare nuovi movimenti
  • Lezioni avanzate, uso telecamera
    • fare una foto
    • leggere la luminosità dell’ambiente con la telecamera
    • sdraiare l’animale quando è buio, farlo alzare quando c’è luce
  • Lezioni avanzate, microfono
    • usare il microfono e visualizzare l’onda in Arduino IDE monitor
    • usare il microfono come sensore per attivare il robot
  • Lezioni finali
    • usare un fischio bitonale per dare un comando al robot
    • misurare la distanza di un ostacolo e aggirarlo
    • usare un codice ArUco per mostrare la strada al robot
    • creazione di una wake word con ML per svegliare il robot

Canonical URL