Logo sheen.bot

Approfondimenti

Perché il vostro line follower fallisce sotto le luci intense della palestra (e come risolvere il problema)

16 set 2026·Sheen Robotics
Perché il vostro line follower fallisce sotto le luci intense della palestra (e come risolvere il problema)

L'illuminazione dei palazzetti di gara satura i sensori di linea a infrarossi non schermati inondando i fototransistor di IR ambientale. Risolvilo con schermature fisiche e calibrazione dinamica all'avvio.

Il vostro robot line follower funzionava alla perfezione sul pavimento dell'aula, ma nel momento in cui è stato posizionato sul tappeto di gara in una palestra scolastica o in un palazzetto dello sport, ha iniziato a girare in tondo o è uscito dritto fuori pista. Il motivo è semplice: l'illuminazione commerciale del palazzetto e i pavimenti verniciati inondano i sensori ottici del robot di luce a infrarossi (IR) ambientale, accecando i fototransistor e cancellando il contrasto tra il nastro nero e lo sfondo bianco.

I line follower non vedono i colori; misurano la luce riflessa. Quando l'ambiente circostante sovrasta la sorgente luminosa del sensore stesso, l'hardware fallisce. Fortunatamente, è possibile eliminare completamente questo tipo di guasto con due accorgimenti: una schermatura meccanica della luce e una calibrazione dinamica via software.

La fisica: perché l'illuminazione del palazzetto acceca i fototransistor

La maggior parte dei moduli di tracciamento di linea standard (come il TCRT5000 o le schede sensore di base a due canali) accoppia un diodo a emissione di luce infrarossa (emettitore) con un fototransistor a infrarossi (ricevitore). L'emettitore fa rimbalzare la luce IR sul tappeto. Le superfici bianche riflettono la maggior parte dell'IR verso il fototransistor, riducendone la resistenza e generando una lettura alta (o bassa, a seconda della configurazione di pull-up). Il nastro isolante nero assorbe l'IR, riflettendo pochissima luce.

Questo design si basa su un presupposto implicito: che l'unica luce infrarossa a raggiungere il ricevitore sia quella emessa dal robot stesso. In una tipica aula scolastica con plafoniere LED a luce diffusa o tubi fluorescenti standard, questa ipotesi regge ragionevolmente bene. In un palazzetto dello sport, crolla per tre motivi:

  • Apparecchi di illuminazione commerciale ad alta intensità: le palestre utilizzano spesso lampade industriali ad alogenuri metallici, fari alogeni ad alta potenza o array LED industriali ad alto rendimento. Molti di questi emettono una radiazione infrarossa significativa insieme alla luce visibile.
  • Soffitti alti e angolo di incidenza: le luci ad alta quota proiettano fasci ampi e potenti da molteplici angolazioni, penetrando sotto i telai ribassati dei robot da direzioni che le luci dell'aula non avevano mai raggiunto.
  • Riflettività del pavimento: i tappeti di gara sono spesso posati su parquet lucidati o pavimenti sintetici da palestra lucidi, creando riflessioni speculari che fanno rimbalzare l'IR ambientale direttamente all'interno dell'array di sensori.

Quando un'elevata quantità di IR ambientale colpisce il fototransistor, il sensore va in saturazione. Il ricevitore viene completamente attivato dalla stanza stessa. Di conseguenza, la lettura sul nastro nero diventa indistinguibile da quella sul vinile bianco e la logica di controllo non è più in grado di rilevare la linea.

Passo 1: Soluzioni meccaniche (schermatura e altezza da terra)

Prima di scrivere una sola riga di codice, risolvete il problema ottico a livello fisico. Il software non può estrarre un segnale se il front-end analogico è completamente saturo.

Aggiungere una schermatura opaca

La soluzione hardware più efficace in assoluto è una copertura stampata in 3D o in cartoncino nero che racchiuda l'array di sensori. La schermatura deve estendersi verso il basso il più vicino possibile al pavimento senza impigliarsi nelle giunture del tracciato — tipicamente da 2 mm a 3 mm di altezza da terra. L'interno della schermatura deve essere nero opaco (vernice opaca o nastro antiriflesso) per prevenire riflessioni interne.

Regolare l'altezza di montaggio dei sensori

I fototransistor di base hanno una distanza focale ottimale, solitamente compresa tra 2 mm e 6 mm dalla superficie. Se i sensori si trovano a 15 mm o 20 mm sopra il tappeto, il segnale di ritorno dell'emettitore segue la legge dell'inverso del quadrato e decade drasticamente, consentendo alla luce ambientale di dominare. Abbassate il supporto dei sensori in modo che i diodi si trovino a circa 3 mm - 5 mm dalla superficie.

Passo 2: Soluzioni software (calibrazione dinamica vs soglie fisse)

L'errore di programmazione più comune nelle gare di robotica studentesche è inserire nel codice valori di soglia fissi. Uno studente testa il robot, nota che il bianco restituisce 150 su un pin analogico e il nero 850, e scrive:

if (analogRead(LEFT_SENSOR) > 500) { // Segui la linea }

In palestra, la luce ambientale sposta la lettura del bianco a 600 e quella del nero a 900. La soglia fissa di 500 ora classifica l'intero tappeto come linea e il robot fallisce all'istante.

Implementare la calibrazione dinamica all'avvio

Non inserite mai nel codice soglie analogiche fisse. Scrivete invece una routine di calibrazione che venga eseguita durante i primi tre-cinque secondi dopo l'accensione o la pressione di un pulsante di avvio. Fate ruotare il robot sul posto attraverso la linea, campionando continuamente tutti i sensori per registrare i valori minimi e massimi locali effettivi.

int sensorMin = 1023;int sensorMax = 0;int threshold = 500;void calibrateSensors() {  unsigned long startTime = millis();  // Ruota sul posto per 3 secondi attraverso la linea  setMotors(150, -150);   while (millis() - startTime < 3000) {    int val = analogRead(A0);    if (val < sensorMin) sensorMin = val;    if (val > sensorMax) sensorMax = val;  }  setMotors(0, 0);  // Calcola la soglia intermedia per le condizioni attuali della stanza  threshold = (sensorMin + sensorMax) / 2;}

Questa routine ricalcola automaticamente il valore di soglia decisionale per adattarlo all'illuminazione ambientale e alla riflettività del tappeto di qualsiasi luogo in cui vi troviate a gareggiare.

Passo 3: Andare oltre le semplici soglie

Per una maggiore affidabilità nelle competizioni regionali e nazionali, prendete in considerazione l'aggiornamento della logica di rilevamento e dell'hardware:

  • Rilevamento differenziale: invece di verificare soglie assolute (sensor > threshold), valutate la differenza tra sensori adiacenti (error = leftSensor - rightSensor). La luce ambientale tende a influenzare i sensori adiacenti allo stesso modo, il che significa che il segnale di errore differenziale annulla il rumore IR ambientale di modo comune.
  • Modulazione attiva: i sensori avanzati emettono impulsi dai propri emettitori IR a una frequenza specifica (come 38 kHz) e utilizzano un filtro passa-banda sul ricevitore. Il sensore misura solo la luce che lampeggia a quella frequenza esatta, ignorando completamente la luce solare ambientale statica e l'illuminazione della palestra. Se state costruendo hardware personalizzato o acquistando kit da gara modulari nel nostro negozio di hardware per la robotica, scegliere array IR modulati o array di riflettanza dedicati (come la serie Pololu QTR) elimina la sensibilità ambientale a livello di silicio.
  • Test di preparazione alla gara: incorporate condizioni di luce variabili nelle vostre sessioni di test. Puntate la torcia di uno smartphone o una lampada da officina ad alta luminosità direttamente sul robot durante le prove per verificare che la schermatura e il codice di calibrazione reggano prima del giorno della gara.

I robot falliscono nelle gare non perché agli studenti manchino competenze di programmazione, ma perché i test di laboratorio raramente tengono conto del rumore ambientale reale. Per guide strutturate alla preparazione delle gare e supporto didattico per la robotica, esplorate le nostre risorse per mentor nella Sheen Robotics Academy.

#inseguimento-di-linea#gare-di-robotica#sensori#arduino#risoluzione-problemi

Altri post in Approfondimenti