2025

Nuvi

Ogni pezzo qui sotto è cliccabile. Aprine uno per vedere cosa fa, come è stato stampato e perché ha quella forma. Nuvi nasce da una richiesta di Arduino: un robot assistente attorno alla nuova UNO Q, che facesse davvero qualcosa. Il primo progetto funzionava ma sembrava una macchina; il secondo ha preso a modello uno Shiba Inu. Tenerlo sotto i 30 cm ha lasciato pochissimo spazio dentro — ogni cavo e ogni motore doveva starci — e il collo, una testa che si muove senza cavi né leve in vista, è il pezzo che ha richiesto più lavoro.

Pubblicato su Arduino Project HubArduino Project Hub ↗

FileProgetto open source (GPL-3.0): i modelli 3D e l'app sono pubblicati su Arduino Project Hub.

Modelli 3D e app su Arduino Project Hubprojecthub.arduino.cc ↗
6servomotori
< 30 cmdi altezza, per scelta
1scheda per corpo e mente
Caricamento del modello…

Componenti

Ogni pezzo stampato, con la sua funzione e i parametri di stampa.

Corpo

body

Il guscio centrale a cui è appeso tutto il resto: porta i servo delle gambe, il supporto dell’elettronica e i due coperchi. È il pezzo stampato più grande e quello che detta tutte le tolleranze a valle.

MaterialePLA+
Layer0.2 mm
Riempimento25%
Tempo di stampa14h 30m
Supportino

Stampato in un pezzo solo per evitare una giunzione sul componente che porta più carico.

Coperchio anteriore del corpo

front_cover_body

Chiude il torace e dà al robot il suo profilo frontale. Si toglie senza attrezzi, perché l’elettronica che sta dietro va raggiunta durante la calibrazione.

MaterialePLA+
Layer0.2 mm
Riempimento15%
Tempo di stampa4h 10m
Supportisì

Il secondo sensore di tatto sta dietro questo pannello — la pancia. Anche qui parete sottile e nessun riempimento nell’area sensibile, perché la mano venga letta senza incertezze.

Coperchio posteriore del corpo

back_cover_body

La metà posteriore del guscio. Curva su entrambi gli assi, quindi è il pezzo dove l’altezza di strato si vede di più e dove un valore più fine ha meritato le ore in più.

MaterialePLA+
Layer0.16 mm
Riempimento15%
Tempo di stampa5h 45m
Supportisì

Coperchio inferiore

body_bottom_cover

Chiude la parte inferiore del corpo e tiene la polvere fuori dal vano dei servo. È il pannello che si toglie per primo quando c’è qualcosa da controllare.

MaterialePLA+
Layer0.2 mm
Riempimento15%
Tempo di stampa1h 20m
Supportino

Piastra frontale del viso

front_face_plate

La piastra piana dietro cui sta il display. Sottile, quindi è stata stampata di schiena con un raft per evitare che si imbarcasse agli angoli.

MaterialePLA+
Layer0.16 mm
Riempimento20%
Tempo di stampa1h 45m
Supportino

Schermo del viso

face_display

Lo schermo da 3.5 pollici dietro la piastra frontale: è lì che compaiono le espressioni, ed è l’unico elemento che dà al robot una faccia. Non è stampato — è un modulo commerciale — ma tutta la parte anteriore della testa è disegnata attorno alle sue misure esatte.

ModelloSPI display 480×320, 3.5"

La piastra frontale fa da cornice: la sua finestra decide quanto schermo si vede, quindi le due cose sono state riviste insieme.

Guscio della testa, sinistro

head_sx

Metà sinistra della testa. Dividere la testa in due lungo la mezzeria ha evitato i supporti sulle superfici a vista, al prezzo di una giunzione da carteggiare.

MaterialePLA+
Layer0.16 mm
Riempimento20%
Tempo di stampa7h 05m
Supportino

Guscio della testa, destro

head_dx

Metà destra della testa, speculare alla sinistra. Le due metà si chiudono su un labbro invece che su un piano, così restano allineate mentre la colla prende.

MaterialePLA+
Layer0.16 mm
Riempimento20%
Tempo di stampa7h 05m
Supportino

Coperchio della testa

head_cover

Chiude la sommità della testa sopra l’attacco del collo. Si toglie per raggiungere il servo della testa senza separare i due gusci.

MaterialePLA+
Layer0.16 mm
Riempimento15%
Tempo di stampa2h 35m
Supportisì

Un sensore capacitivo è appoggiato all’interno di questo coperchio: è il punto in cui il robot si aspetta la carezza, quindi la parete è stata assottigliata localmente per far passare il tocco.

Muso

head_muzzle

Il muso, stampato a parte per poterlo rivedere da solo. La sua forma ha attraversato tre versioni prima che le proporzioni leggessero come un cane e non come una scatola.

MaterialePLA+
Layer0.12 mm
Riempimento20%
Tempo di stampa4h 40m
Supportisì

Naso

nose

Un pezzo piccolo stampato in un materiale a contrasto, perché la vernice su un pezzo di queste dimensioni non sopravvive al maneggiamento. A pressione, senza viti.

MaterialePLA+
Layer0.12 mm
Riempimento30%
Tempo di stampa0h 40m
Supportino

Orecchio sinistro

ear_sx

Stampato cavo e sottile perché l’orecchio resti leggero: la massa così lontana dall’asse del collo è quella che il servo del collo deve reggere tutto il giorno.

MaterialePLA+
Layer0.16 mm
Riempimento10%
Tempo di stampa2h 50m
Supportisì

Orecchio destro

ear_dx

Speculare all’orecchio sinistro. Sono tenuti da una vite ciascuno, così un urto fa ruotare l’orecchio invece di rompergli la base.

MaterialePLA+
Layer0.16 mm
Riempimento10%
Tempo di stampa2h 50m
Supportisì

Collo

neck

Il collegamento fra testa e corpo, e il pezzo che porta tutto il peso della testa attraverso un solo cuscinetto. Stampato in piedi con molti perimetri invece che molto riempimento.

MaterialePETG
Layer0.2 mm
Riempimento40%
Tempo di stampa3h 30m
Supportisì

Braccio sinistro

arm_sx

L’arto superiore, cavo per contenere la massa. Tutto ciò che si muove veloce costa coppia alla spalla, quindi qui il peso vale più della rigidità.

MaterialePLA+
Layer0.2 mm
Riempimento15%
Tempo di stampa3h 15m
Supportisì

Braccio destro

arm_dx

Speculare al braccio sinistro. I due sono identici a parte la specchiatura, cosa che ha dimezzato il lavoro di disegno e raddoppiato il numero di stampe fallite da cui imparare.

MaterialePLA+
Layer0.2 mm
Riempimento15%
Tempo di stampa3h 15m
Supportisì

Mano sinistra

hand_sx

L’estremità del braccio, sagomata per appoggiare in piano quando il robot sta seduto. Non articolata: una mano mobile sarebbe costata due servo in più per un guadagno molto piccolo.

MaterialePLA+
Layer0.16 mm
Riempimento20%
Tempo di stampa1h 25m
Supportisì

Mano destra

hand_dx

Speculare alla mano sinistra. Stampata con il palmo sul piano, così il lato a vista esce dalla stampante già liscio.

MaterialePLA+
Layer0.16 mm
Riempimento20%
Tempo di stampa1h 25m
Supportisì

Piede, lato opposto

foot_1

Il secondo piede, identico al primo. Sono stati ristampati entrambi dopo che la pianta è stata allargata, perché la prima versione dondolava sui pavimenti duri.

MaterialePETG
Layer0.2 mm
Riempimento40%
Tempo di stampa1h 35m
Supportino

Staffa del servo

servo_bracket

La staffa standard che tiene un servo alla struttura, ripetuta ovunque ce ne sia uno. Piccola, stampata molte volte, e il primo pezzo rivisto quando un servo ha cambiato modello.

MaterialePETG
Layer0.16 mm
Riempimento50%
Tempo di stampa0h 55m
Supportisì

Scheda di controllo dei servo

pca9685

La scheda che pilota i quattro servo di orecchie e braccia: sedici canali PWM su un solo bus I²C, così la UNO Q manda le posizioni e questa tiene gli impulsi costanti. I due servo del collo non passano di qui: sono seriali, e hanno una scheda loro.

ModelloPCA9685

Servo dell’orecchio sinistro

servo_ear_sx

Uno dei quattro micro servo a ingranaggi metallici pilotati dalla PCA9685: questo muove l'orecchio sinistro. Ingranaggi in metallo invece che in plastica, perché orecchie e braccia sono i pezzi che la gente afferra.

ModelloMetal-gear micro servo

Servo dell’orecchio destro

servo_ear_dx

Uno dei quattro micro servo a ingranaggi metallici pilotati dalla PCA9685: questo muove l'orecchio destro. Ingranaggi in metallo invece che in plastica, perché orecchie e braccia sono i pezzi che la gente afferra.

ModelloMetal-gear micro servo

Servo del braccio sinistro

servo_arm_sx

Uno dei quattro micro servo a ingranaggi metallici pilotati dalla PCA9685: questo muove il braccio sinistro, indipendente dall'altro, ed è quello che rende possibile il balletto. Ingranaggi in metallo invece che in plastica, perché orecchie e braccia sono i pezzi che la gente afferra.

ModelloMetal-gear micro servo

Servo del braccio destro

servo_arm_dx

Uno dei quattro micro servo a ingranaggi metallici pilotati dalla PCA9685: questo muove il braccio destro, indipendente dall'altro, ed è quello che rende possibile il balletto. Ingranaggi in metallo invece che in plastica, perché orecchie e braccia sono i pezzi che la gente afferra.

ModelloMetal-gear micro servo

Camera

usb_camera

La camera USB dietro il naso: è così che il robot vede chi ha davanti. Il muso è disegnato attorno all'obiettivo, in modo che da fuori del modulo non si veda niente. Testo segnaposto, da riscrivere dalla pagina Project Hub.

ModelloUSB camera module

Sensore di distanza, petto

modulino_distance

Un sensore di distanza a tempo di volo nel formato Modulino. I due insieme sentono la presenza: Nuvi si sveglia quando ti avvicini, e scarta qualsiasi voce che non venga da qualcuno abbastanza vicino — se non c'è nessuno, non ascolta nemmeno.

ModelloArduino Modulino Distance
Pagina del prodottostore.arduino.cc

Sensore di distanza, fianco

modulino_distance_1

Un sensore di distanza a tempo di volo nel formato Modulino. I due insieme sentono la presenza: Nuvi si sveglia quando ti avvicini, e scarta qualsiasi voce che non venga da qualcuno abbastanza vicino — se non c'è nessuno, non ascolta nemmeno.

ModelloArduino Modulino Distance
Pagina del prodottostore.arduino.cc

Arduino UNO Q

arduino_uno_q

Il cervello, nella pancia: un processore Linux e un microcontrollore su una scheda sola. Il lato microcontrollore muove il corpo in tempo reale; il lato Linux fa girare l'AI che permette a Nuvi di sentire e rispondere. L'app intera vive qui, non su un PC.

ModelloArduino UNO Q 4GB
Pagina del prodottostore.arduino.cc

Servo del collo

main ×2

I due servo seriali che muovono la testa: uno gira, uno inclina. Bus seriale invece che PWM, così stanno su un cavo solo e riferiscono la loro posizione, e il collo si è potuto disegnare intorno a loro senza cavi né leve in vista.

ModelloFeetech STS3215

Scheda dei servo del collo

digital_servo_shield

La scheda di controllo dei due STS3215: trasforma la linea seriale della UNO Q nel bus half-duplex che i servo parlano, e tiene la corrente dei motori lontana dalla scheda principale.

ModelloSerial bus servo driver board

Matrice sul petto

modulino_led_matrix

Le piccole icone di stato sul petto: pensa, parla, dorme. Un Modulino, quindi sta sullo stesso bus dei sensori di distanza e di temperatura.

ModelloModulino LED Matrix

Convertitore step-down

step_down

Porta i 12 V dell'alimentatore alla tensione che serve all'elettronica. Aggiunto dopo che la prima versione continuava a spegnersi quando schermo, audio e motori tiravano corrente insieme.

ModelloLM2596S

Presa di alimentazione e interruttore

power_plug ×2

Dove entra l'alimentatore da 12 V 10 A, alla base del corpo, con l'interruttore accanto.

Modello12 V DC jack and switch

Elettronica

Una scheda fa tutto.

L'Arduino UNO Q è il cervello: da un lato il controllo del corpo in tempo reale, dall'altro l'AI che permette a Nuvi di sentire e rispondere. Quattro servo a ingranaggi metallici muovono braccia e orecchie, pilotati da una PCA9685 via I²C; due servo seriali Feetech STS3215 muovono il collo, pan e tilt, con la loro scheda di controllo. Uno schermo SPI 480×320 disegna gli occhi e una matrice LED Modulino sul petto mostra le icone di stato. Due Modulino Distance sentono la presenza, un Modulino Thermo legge temperatura e umidità, due sensori TTP223 rendono sensibili al tocco testa e pancia; un microfono e un altoparlante USB fanno la voce. L'alimentazione arriva da un alimentatore 12 V 10 A attraverso uno step-down, aggiunto dopo che la prima versione si spegneva quando schermo, audio e motori tiravano corrente insieme.

Software

Ascolta, capisce e risponde da solo.

Un filtro locale del rumore separa la tua frase dalla stanza; i sensori di distanza scartano chi non è abbastanza vicino — se non c'è nessuno, non ascolta nemmeno. Quello che resta va dritto al modello, Gemini, chiamato direttamente: capisce quello che sente e produce la risposta in un colpo solo, senza un passaggio separato di trascrizione. Nuvi sa che la frase era per lui perché riconosce il proprio nome, e mentre parla smette di ascoltare, altrimenti risponderebbe a se stesso. La voce è Piper, un motore di sintesi che gira sul robot, così la risposta arriva senza aspettare il cloud. Intorno: presenza e sonno, espressioni animate, due gesti della mano — palmo aperto per temperatura e umidità, segno di vittoria per accendere e spegnere le luci — e il controllo della casa via MQTT. L'app intera gira sulla scheda, via SSH, quindi funziona anche quando App Lab non vede la scheda.

Galleria

Nuvi esposto a un evento Arduino, accanto alla sua targa e a un cartello con scritto «Hey Nuvi»
Nuvi sulla scrivania, gli occhi sullo schermo e la matrice LED sulla pancia accesa
Nuvi visto di tre quarti: le orecchie, lo schermo del viso e la matrice LED sul petto

Ti serve qualcosa di simile?