Percorso di costruzionePrincipianteUn fine settimana

Costruisci un robot seguilinea: dal simulatore alla pista reale

Un robot seguilinea funzionante che capisci dall'inizio alla fine—dal modo in cui legge la linea al ciclo PID che lo sterza—costruito con componenti prima regolati in simulazione.

Schema tecnico: Costruisci un robot seguilinea: dal simulatore alla pista realeSENSOR ERROR

Un robot seguilinea è il miglior primo robot: sente, decide e si muove, eppure ogni sua parte è abbastanza semplice da capire completamente. Questo percorso di costruzione lo tratta esattamente così: come un percorso. Invece di una lista di componenti e di una foto del cablaggio da copiare, sblocchi un nodo alla volta, imparando il meccanismo dietro ogni passo prima di costruirlo.

Inizi capendo come una fila di sensori a infrarossi (IR) diventa un unico errore di sterzata e come un ciclo Proporzionale-Integrale-Derivativo (PID) trasforma quell’errore in movimento regolare. Cinque sensori sono il punto ideale per una prima costruzione: tre bastano a bassa velocità ma danno una posizione grossolana, otto danno una risoluzione più fine ad alta velocità ma complicano cablaggio e calibrazione. La media ponderata che riduce quelle letture a un unico numero con segno—negativo quando la linea è a sinistra, positivo quando è a destra—è l’unico segnale che il ciclo di sterzata vede mai; per questo ottenere correttamente quel numero conta più che scegliere una scheda particolare.

Quel segnale deve poi diventare due velocità diverse per le ruote. La trazione differenziale significa che il robot sterza facendo girare le ruote a velocità diverse, e l’albero tecnologico ti porta dal driver grezzo del motore attraverso la modulazione di larghezza d’impulso (PWM) e la cinematica che trasforma una singola correzione in comandi per sinistra e destra. Vedrai anche dove si inserisce l’odometria: contare il movimento delle ruote dice quanto hai percorso e perché questa stima deriva senza un riferimento esterno, un tema che ritorna in ogni robot da labirinto.

Prima di spendere qualcosa o rischiare un collegamento errato, regoli il comportamento nel simulatore del browser, disegnando una pista, cambiando numero e spaziatura dei sensori e trascinando i guadagni Proporzionale, Integrale e Derivativo mentre osservi errore, tempo sul giro e tempo sulla pista. Il simulatore è un modello didattico, non hardware: presuppone una pista piatta, binaria e ad alto contrasto, una calibrazione ideale, nessuna variazione della luce ambiente e un ciclo perfettamente periodico senza slittamento delle ruote. I guadagni trovati qui sono un buon punto di partenza, ma dovrai comunque calibrare l’array reale e regolarlo di nuovo sul tuo nastro.

Solo dopo colleghi il robot vero: uscite a riflessione verso pin capaci di accettare segnali analogici, PWM e direzione verso l’L298N (i pin logici non possono fornire corrente al motore: l’H-bridge doppio commuta invece la corrente reale), alimentazione separata per i motori sulla propria linea e una massa comune che colleghi ogni modulo. L’ultimo nodo è l’assemblaggio e l’iterazione su un percorso reale nastrato, dove trasferisci i guadagni del simulatore e li modifichi in base a superficie, tensione della batteria e temporizzazione del ciclo. La stessa struttura riappare più avanti nel risolutore di labirinto di linee, che aggiunge a questo seguilinea uno strato decisionale: consolidare questa base ti fa risparmiare tempo due volte.

Percorri l’albero tecnologico qui sotto dall’alto verso il basso. Ogni nodo si sblocca quando i suoi prerequisiti sono completi e i progressi vengono salvati su questo dispositivo, così puoi costruire il robot durante un fine settimana senza perdere il punto.

Lista dei componenti

Componente Quantità Costo indicativo Note
Arduino Uno o Nano 1 $5–8 Un Nano è la scelta migliore qui: porta fuori A6 e A7, quindi si inserisce un array a 8 canali
Array IR a riflessione 1 $4–10 5 canali per imparare, 8 se vuoi più velocità in seguito. Insisti su un’uscita analogica
L298N o TB6612FNG 1 $2–4 TB6612FNG se acquisti: evita i ~1.5 V che l’L298N dissipa come calore
Motore TT con riduttore 2 $4 Quelli gialli. Le versioni con encoder costano $2 in più e ti fanno risparmiare una ricostruzione
Telaio 2WD con ruote e supporto girevole 1 $6–10 Di solito venduto come kit con i motori
Pacco batteria 1 $3–8 6×AA NiMH, oppure 2×18650 con supporto protetto. Non un blocco da 9 V
Ponticelli, nastro, interruttore — $5 Nastro elettrico opaco da 19 mm per la pista

Totale: circa $30–45. L’aggiornamento più prezioso dell’elenco è un motore con encoder, non per questo progetto, che non ne ha bisogno, ma perché un robot seguilinea quasi sempre diventa un risolutore di labirinto di linee, e quello sì ne ha bisogno.

Per la pista: nastro nero opaco su un pavimento chiaro opaco. Il nastro lucido riflette come il bianco se l’angolo è sbagliato, e lo fa anche un pavimento lucido: ottieni così un robot che funziona su una superficie e non su un’altra per ragioni che sembrano software.

Come si collega tutto

Da A Perché è importante
Array VCC, GND Arduino 5 V, GND Gli emettitori sono il consumo di corrente qui: 100–200 mA su un array a 8 canali
Array OUT1–8 A0–A7 Analogici, un canale ciascuno. Ecco perché un Nano batte un Uno
Driver PWMA, PWMB D9, D3 Pin devono supportare il PWM
Pin di direzione del driver D8, D7, D5, D4 Qualsiasi pin digitale
STBY del driver (solo TB6612FNG) D12, pilotato ALTO Se resta flottante non succede proprio nulla, in silenzio
Batteria + VM / +12V del driver Mai il pin 5 V dell’Arduino
Batteria − GND del driver, GND dell’Arduino, GND dell’array Una massa comune, riportata a un solo punto a stella

Due guasti spiegano la maggior parte dei problemi alla prima esecuzione, e nessuno dei due produce un messaggio di errore. Una massa comune mancante fa sì che i segnali di direzione non abbiano riferimento, così nulla si muove mentre tutto sembra collegato correttamente. La corrente dei motori attraverso l’Arduino abbassa la linea a 5 V, resetta la scheda e si manifesta come un blocco software.

Costruiscilo in traguardi

Non collegare tutto il robot e poi eseguire il debug. Ogni fase qui sotto ha un test e una fase che non lo supera si nasconde dentro la successiva.

# Traguardo Il test Un risultato positivo sembra
1 I motori girano Porta ogni ruota avanti e indietro al duty 200, su blocchi Entrambe girano in entrambe le direzioni; annota il duty a cui ciascuna inizia
2 Deadband misurata Aumenta il duty da 0 a passi di 5 Hai due numeri e sono diversi, spesso di 5–10
3 Marcia diritta Porta entrambe le ruote avanti per 2 m sul pavimento Deriva inferiore a 10 cm; altrimenti regola un motore via software
4 Sensori letti Stampa tutti i canali sopra la linea e sul pavimento Le due letture di ogni canale differiscono di centinaia di conteggi
5 Calibrazione Scorri l’array sulla linea per 3 s, poi stampa i valori normalizzati 0 sul pavimento, vicino a 1000 sulla linea, su ogni canale
6 Posizione Sposta il robot a mano attraverso la linea e stampa la posizione ponderata Fluida e monotona: nessun salto quando la linea attraversa il confine di un sensore
7 Solo P Pilotare con solo guadagno proporzionale, senza I né D Segue una curva dolce, oscillando un po’. L’oscillazione qui è prevista
8 Aggiungi D Aumenta il derivativo finché l’oscillazione si attenua Inseguimento fluido sui rettilinei e sulle curve dolci
9 Pista completa Esegui un ciclo chiuso con una curva stretta Completa i giri senza perdere la linea
10 Recupero dopo perdita della linea Solleva il robot dalla linea a metà corsa Continua a girare nella direzione in cui stava già girando, invece di andare dritto

Il traguardo 6 è quello che le persone saltano e non dovrebbero. Se il segnale di posizione salta mentre la linea passa tra due sensori, nessun ciclo di controllo può essere regolato: la discontinuità sembra un errore improvviso enorme e il robot scatta esattamente in quel punto a ogni giro. Un salto lì significa che l’array non è calibrato per canale oppure che la soglia di un canale lo esclude troppo presto.

Che aspetto ha un buon risultato

Misura Costruzione per principianti Ben regolata
Velocità sui rettilinei 0.15–0.25 m/s 0.4–0.6 m/s
Ampiezza dell’oscillazione su un rettilineo ±15 mm Inferiore a ±5 mm
Curva più stretta che riesce a seguire ~30 cm di raggio ~15 cm di raggio
Frequenza del ciclo 50 Hz 200 Hz o meglio
Giri prima di perdere la linea Qualche Indefinitamente, finché la batteria si affossa

La frequenza del ciclo merita attenzione perché limita silenziosamente tutto il resto. Un ciclo di controllo a 50 Hz vede la linea ogni 20 ms e, a 0.5 m/s, percorre 10 mm tra una decisione e l’altra. Rimuovere ogni delay() dal ciclo e leggere solo i sensori che usi porta di solito una prima costruzione da 50 Hz a diverse centinaia, e l’inseguimento migliora senza toccare alcun guadagno.

Risoluzione dei problemi

Sintomo Causa probabile Soluzione
Non si muove assolutamente nulla Nessuna massa comune, oppure STBY basso Collega tutte le masse a terra; porta STBY ALTO
La scheda si resetta quando inizia a muoversi Corrente dei motori attraverso l’Arduino Separare l’alimentazione dei motori; si condivide solo la massa
Va dritto oltre la linea Array non calibrato oppure troppo alto Ricalibra su questa superficie; imposta l’altezza da terra a 3–8 mm
Segue, ma oscilla molto P troppo alta oppure D troppo bassa Dimezza P, poi aumenta D
Oscilla sempre più velocemente P ben troppo alta Riduci finché si stabilizza, poi regola da lì
Deriva sui rettilinei Motori diversi Regola via software, poi ricontrolla alla velocità di funzionamento
Sterza solo a bassa velocità Due soglie di attrito statico diverse Misura la deadband di ogni motore e compensala separatamente
Perde la linea sulle curve brusche Troppo veloce, oppure array troppo vicino alle ruote Rallenta; sposta l’array in avanti per avere più tempo di anticipo
Si allontana quando perde la linea Errore impostato a 0 alla perdita della linea Mantieni l’ultimo errore: zero significa «centrato»
Funziona, poi peggiora durante una corsa La batteria si affossa e i guadagni non sono più adatti Previsto; chiudi un ciclo di velocità oppure accetti una corsa più breve
Fallisce vicino a una finestra Infrarossi ambientali Sottrai la lettura con emettitore spento, oppure scherma l’array

Da dove proseguire

Il robot seguilinea è deliberatamente una base, e tre direzioni si costruiscono direttamente su di esso.

Aggiungi il rilevamento dei bivi e diventa un risolutore di labirinto di linee: lo stesso ciclo PID sotto, con uno strato decisionale sottile sopra che classifica le ramificazioni e ricorda il percorso. Questo è il miglior progetto successivo, perché riutilizza tutto ciò che hai qui e aggiunge una sola idea realmente nuova.

Aggiungi gli encoder e potrai mantenere una velocità comandata anziché un duty comandato, eliminando completamente il problema «peggiora mentre la batteria si scarica» e rendendo stabile la regolazione per tutta la corsa.

Vai più veloce, il che è più difficile di quanto sembri e insegna di più. La velocità espone ogni approssimazione: la frequenza del ciclo diventa il limite, l’array deve essere più avanti per dare tempo di anticipo, le curve vanno rallentate prima di arrivare invece che dopo, e le ruote iniziano a slittare. Quest’ultimo è il muro: vedi slittamento delle ruote e trazione per capire dove si trova.

Roadmap del progetto

Il percorso di costruzione

Segui l'albero tecnologico dai componenti fino a un robot funzionante. Ogni nodo si sblocca quando i suoi prerequisiti sono completati, e i tuoi progressi vengono salvati su questo dispositivo.

0 / 15 completati

100%
Costruzione

Collega il robot

45 min

Costruzione

Assembla ed esegui una pista reale

60 min

Obiettivo

Robot seguilinea completato

L'hai costruito

Componenti

Tutorial in questo percorso

Esercitati prima di cablare

Mettilo a punto nel simulatore

Il percorso di costruzione passa per un laboratorio nel browser. Ottieni qui il comportamento giusto, poi trasferisci le tue impostazioni sul robot reale.

Domande frequenti

Devo comprare i componenti prima di iniziare questo progetto?

No. Tutta la parte di rilevamento e controllo del progetto funziona nel simulatore del browser, quindi puoi capire come un robot seguilinea legge la linea e regolare i suoi guadagni PID prima di comprare qualsiasi cosa. Solo i passaggi finali di costruzione—cablaggio e assemblaggio—richiedono l'Arduino fisico, l'array IR e il driver del motore.

Quanto tempo serve per costruire un robot seguilinea?

Se hai i componenti, il primo robot seguilinea funzionante è un progetto di un fine settimana: un pomeriggio per imparare il rilevamento e il controllo e regolarli nel simulatore, poi poche ore per collegare Arduino, array IR e driver del motore e iterare su una pista nastrata. La regolazione fatta in simulazione si trasferisce direttamente, eliminando la maggior parte delle prove a tentoni.

Qual è la parte più difficile della costruzione di un robot seguilinea?

Quasi sempre il ciclo di controllo, non il cablaggio. Far seguire al robot curve dolci senza oscillazioni significa regolare i guadagni PID per i tuoi motori, l'altezza dei sensori e la velocità specifici. Ecco perché questo percorso di costruzione ti fa regolare prima nel simulatore: così i guadagni sono già vicini quando il robot tocca il pavimento.

Perché il mio robot seguilinea oscilla attorno alla linea?

L'oscillazione di solito significa che il guadagno proporzionale è troppo alto, l'attenuazione derivativa è troppo bassa o il robot si muove più velocemente di quanto possa supportare la frequenza di aggiornamento dei sensori. Riduci prima la velocità di base, poi abbassa Kp di circa il 20% e aggiungi un po' di Kd. Sull'hardware, un lungo delay() nel ciclo aggiunge tempo morto e rende inefficace il termine derivativo, per quanto alto lo imposti: mantieni fisso l'intervallo di controllo.

Quanti sensori IR servono a un robot seguilinea?

Cinque sono un punto di partenza pratico: sufficienti per calcolare una posizione ponderata fluida e vedere verso quale parte curva la linea, mantenendo semplici da ispezionare il cablaggio e il calcolo della posizione. Tre sensori funzionano per una pista didattica lenta e con una linea larga; i robot da competizione ne usano spesso otto per una risoluzione più fine ad alta velocità, ma ogni sensore in più è un'altra calibrazione e un altro filo da sistemare.

Come calibro l'array di sensori IR a riflessione?

Prima di una corsa, fai scorrere lentamente l'array sia sul nastro nero sia sul pannello bianco e registra per ogni sensore la lettura minima e massima; poi normalizza le letture dal vivo rispetto a quell'intervallo. La calibrazione conta perché altezza del sensore, riflettanza della superficie e illuminazione della stanza spostano i valori grezzi, e un array non calibrato sbilancia la posizione ponderata anche quando il robot è centrato.