Tappa 4
Elettronica
Un solo modulo “cervello”, sei servo, un sensore di orientamento, un amplificatore e l’alimentazione. Tutto a filo, niente circuito stampato: bastano poche saldature.
Regola d’oro: regola lo step-down con il multimetro prima di collegarci qualsiasi cosa, e controlla la polarità due volte. Leggi gli avvisi sulle batterie al litio.
Schema dei collegamenti
Disegno originale, semplificato per essere leggibile: ogni colore è un tipo di collegamento. Le linee verdi spesse sono la massa comune: tutti i GND devono essere uniti, altrimenti i segnali dei servo e dell’I²C non hanno un riferimento e il robot si comporta in modo imprevedibile.
A parole
- Batteria → BMS → interruttore → step-down. Le due 18650 in serie (2S) passano dal BMS; il positivo del BMS (P+) va all’interruttore e da lì all’ingresso dello step-down.
- Step-down → rail 5 V. L’uscita alimenta i sei servo (filo rosso), il pin
5Vdel XIAO e ilVINdel MAX98357A. - XIAO → sensori. Il pin
3V3del XIAO alimenta l’MPU6050 (che è collegato su I²C: D4 = SDA, D5 = SCL). - XIAO → amplificatore. D6 = BCLK, D7 = LRC, D10 = DIN; l’uscita del MAX98357A va allo speaker.
- XIAO → servo. Il filo di segnale (arancione/giallo sul servo) di ciascuno va al suo pin, vedi tabella.
- Masse comuni. P− del BMS, GND dello step-down, marrone di tutti i servo, GND di XIAO, MPU6050 e MAX98357A: tutti insieme.
Tensione dello step-down. Il pin 5V del XIAO accetta 5 V: regola l’uscita a 5,0 V. Con 6 V i servo hanno più coppia, ma allora il XIAO e il MAX98357A vanno alimentati con un regolatore separato a 5 V. Nel dubbio, 5 V. Il MAX98357A ammette al massimo 5,5 V: scheda del produttore. Consulta anche la guida XIAO. Scollega l’alimentazione esterna prima di collegare USB-C, per evitare ritorni di corrente.
Tabella dei pin (modalità predefinita)
Modalità predefinita: i servo sono pilotati direttamente dal XIAO con la libreria ESP32Servo.
| Funzione | Pin XIAO | GPIO |
|---|---|---|
Servo 0 L_hip_roll | D0 | 1 |
Servo 1 L_hip_pitch | D1 | 2 |
Servo 2 L_ankle_pitch | D2 | 3 |
Servo 3 R_hip_roll | D3 | 4 |
Servo 4 R_hip_pitch | D8 | 7 |
Servo 5 R_ankle_pitch | D9 | 8 |
| I²C SDA (MPU6050, PCA9685) | D4 | 5 |
| I²C SCL | D5 | 6 |
| I²S BCLK (MAX98357A) | D6 | 43 |
| I²S LRC/WS | D7 | 44 |
| I²S DIN | D10 | 9 |
| Camera | interna (connettore B2B) | XCLK 10, SIOD 40, SIOC 39, Y9 48, Y8 11, Y7 12, Y6 14, Y5 16, Y4 18, Y3 17, Y2 15, VSYNC 38, HREF 47, PCLK 13 |
| Microfono PDM | interno | CLK 42, DATA 41 |
Non usare la microSD della scheda Sense: condivide i pin D8–D10 con due servo e l’audio.
Timer PWM. La camera usa il timer LEDC 0 per il suo clock: il firmware assegna ai servo i timer 1–3. Se modifichi il codice, non toccare questa assegnazione o la camera si blocca.
Variante con PCA9685
Con un driver PWM PCA9685 (circa 3 €, indicativo) i servo passano su I²C e liberano pin del XIAO. Si attiva in config.h con #define USE_PCA9685 1.
| Cosa | Dove |
|---|---|
| Servo 0–5 | Canali PCA9685 0–5 (stesso ordine) |
| LED occhi | Canale 8 (sinistro), canale 9 (destro), con resistenza da 220 Ω |
| Tensione batteria | D0 libero → partitore 200 kΩ / 100 kΩ (VBAT = adc × 3) |
| HC-SR04 | D1 → trigger; D2 ← echo con partitore 5 V → 3,3 V |
| Alimentazione PCA9685 | VCC 3,3 V dal XIAO; V+ (servo) dallo step-down |
Il partitore sulla batteria (8,4 V max ÷ 3 = 2,8 V) resta sotto i 3,3 V ammessi dall’ADC.
Dove sta ogni cosa
Le batterie stanno orizzontali in basso, il XIAO in alto davanti (la camera guarda dal frontalino), lo speaker in basso davanti, l’MPU6050 al centro del fondo: così misura l’inclinazione del corpo senza essere disturbato dalle vibrazioni delle gambe.
Consigli di cablaggio
- Per batteria, step-down e rail dei servo usa cavo in silicone 22 AWG: i sottili cavetti dupont scaldano e fanno cadere la tensione.
- Monta l’MPU6050 piatto e allineato agli assi del corpo (freccia X verso il davanti). Un modulo storto falsa l’equilibrio.
- Tieni i cavi dei servo lontani dall’antenna del XIAO e dalla camera.
- Un condensatore elettrolitico da 470–1000 µF sul rail 5 V vicino ai servo aiuta molto contro i reset (vedi Problemi).
- Per caricare il firmware, spegni l’interruttore: così i servo non si muovono mentre il robot è collegato al computer.
Sicurezza delle batterie al litio
- Mai cortocircuitare una cella: basta un attimo con una pinza per far scaldare i fili e bruciare l’isolante.
- Usa sempre il BMS 2S e celle uguali (stessa marca, capacità e carica) nello stesso portabatterie.
- Non saldare direttamente sulle celle: usa un portabatterie o celle con linguette già saldate.
- Ricarica sotto supervisione, su una superficie non infiammabile, con un caricatore adatto (4,2 V per cella, 8,4 V per il pacco 2S).
- Celle ammaccate, gonfie o con la guaina rovinata vanno sostituite e portate a un punto di raccolta, non buttate nell’indifferenziata.
- Non lasciare il robot acceso e incustodito per lunghi periodi; se qualcosa scalda o puzza, spegni subito l’interruttore.
- Tieni le batterie lontane dalla portata dei bambini.
Questo progetto è fornito così com’è: costruirlo e usarlo è sotto la tua responsabilità.