Skip to content

8-La Pista Cifrata (Robot Segui-Linea) 🏁 ​

Obiettivo: Comprendere il principio della riflessione della luce, leggere i valori digitali dei sensori di tracciamento e programmare un algoritmo di correzione della traiettoria per seguire un percorso nero su fondo bianco.

Fase 1: Brainstorming e Teoria 🧠 ​

  • Domanda alla classe: "Come fanno i treni a seguire i binari senza uno sterzo? E se il nostro robot dovesse seguire una linea disegnata a terra senza avere dei binari fisici?"
  • Il Segreto Γ¨ sotto il cofano: Chiedi ai ragazzi di capovolgere l'auto (spenta). Sotto troveranno i "Line tracking sensors". Spiega che funzionano emettendo luce infrarossa e leggendo il riflesso:
    • Il colore BIANCO riflette la luce. Il sensore legge "0" (Falso/Strada libera).
    • Il colore NERO assorbe la luce. Il sensore non riceve il riflesso e legge "1" (Vero/Linea trovata).
  • L'Hardware: Il robot usa un componente chiamato "Voltage comparator" per trasformare questi riflessi in segnali digitali perfetti (0 o 1) per la nostra microbit.

Fase 2: Progettazione dello Pseudocodice πŸ“ ​

  • Cosa facciamo se entrambi i sensori leggono BIANCO (0)? -> La linea Γ¨ in mezzo, andiamo DRITTI!
  • Cosa facciamo se il sensore SINISTRO legge NERO (1)? -> Stiamo uscendo fuori strada a destra! Dobbiamo curvare a SINISTRA per rimettere la linea al centro.
  • Cosa facciamo se il sensore DESTRO legge NERO (1)? -> Curviamo a DESTRA.
  • E se entrambi leggono NERO (1)? -> Siamo arrivati a un incrocio o alla fine della pista. STOP.

Fase 3: Scrittura del Codice πŸ’» ​

SezioneBloccoIstruzione e Funzione Pedagogica
VariablesMake VariableCrea value. Insegna che i dati sensoriali vanno sempre "salvati" in un contenitore prima di usarli.
BasicforeverIl ciclo continuo di lettura.
Variablesset...toset value to (Line Tracking)
Logicif / else if / elseCreiamo un blocco con 4 condizioni totali (cliccando sul +).
LogicCondizione 1if (value = 1) then Siamo al centro.
MiniCarmotor...motor = All Direction = Forward speed = 60 (VelocitΓ  moderata per non perdere la linea).
LogicCondizione 2else if (value=2) then Il sensore sinistro tocca il nero.
MiniCarmotor...motor = All Direction = Turn_Left speed = 60 (Correzione a sinistra).
LogicCondizione 3else if (value=3) then
MiniCarmotor...motor = All Direction = Turn_Right speed = 60 (Correzione a destra).
LogicCondizione 4else (che equivale a entrambi Neri).
MiniCarmotor...motor = All Direction = Forward speed = 0 (STOP).

Fase 4: Collaudo e "Tuning" πŸ”§ ​

  • Il Tracciato: Preparate a terra un percorso usando del nastro isolante nero (deve essere largo almeno 1.5 cm) su un pavimento chiaro o cartelloni bianchi. Fate curve dolci all'inizio!
  • Debugging Attivo:
    • Il robot "perde" la linea nelle curve: Va troppo veloce! Ridurre la speed a 40 o 50.
    • Il robot va a scatti e "sbanda" continuamente: È l'effetto ping-pong dell'algoritmo base. Chiedi loro di provare a usare Turn_Left con una velocitΓ  piΓΉ bassa (es. 40) per rendere la correzione meno brusca.
  • Codice per seguire i valori del LineTracking: Scrivere il codice per seguire i valori del LineTracking.