Per seguire un percorso, inteso come linea nera su sfondo bianco, mBot usa i due sensori a infrarossi posizionati frontalmente e rivolti verso il basso. Quando la radiazione infrarossa, emessa dal trasmettitore, arriva su un fondo bianco, viene riflessa e il sensore è in grado di rilevarla. Se invece colpisce la linea nera, viene assorbita e il sensore non rileva nulla.
I sensori sono due e le possibili combinazioni sono quattro, a cui corrispondono quattro codici (da 1 a 4) restituiti dal sensore inseguimento di linea. Attenzione che, come nel caso del sensore a ultrasuoni, anche ora occorre selezionare la porta corretta (seguendo il cavo piatto che esce dal sensore a infrarossi e andando a vedere in quale porta è collegato).
Queste le combinazioni:
Sensore 1 Sensore 2 Codice Nero Nero 0 Nero Bianco 1 Bianco Nero 2 Bianco Bianco 3
Queste le azioni che il robot dovrà fare a seconda del codice che ritorna il sensore a infrarossi:
- se entrambi i sensori sono sulla linea, significa che siamo sul percorso e si può andare avanti così
- se il sensore di sinistra (il sensore 1) è sulla linea e quello di destra (il sensore 2) è sulla superficie bianca, significa che mBot sta andando troppo a destra, quindi occorre girare a sinistra
- se il sensore di sinistra (il sensore 1) è sulla superficie bianca e quello di destra (il sensore 2) è sulla linea, significa che mBot sta andando troppo a sinistra, quindi occorre girare a destra
- se entrambi i sensori sono sulla supeficie bianca, significa che siamo usciti dal percorso e mBot deve tornare indietro
Il codice che le realizza è il seguente. Anche in questo caso, come per il sensore a ultrasuoni, la prima da cosa da fare è definire una variabile in cui andremo a memorizzare il codice di ritorno del comando sensore inseguimento di linea: nel codice è stata chiamata sensore.
Nel codice potete notare che è stata definita un’altra variabile, chiamata velocità, che è possibile settare all’inizio e automaticamente viene impostata per tutti i movimenti. L’utilità di questa variabile la vedrete nel codice successivo a questo.
Per modificare il modo in cui il robot fa le curve, si può agire sui due motori separatamente: M1 è il motore di sinistra, M2 quello di destra. A seconda della curva (a destra o a sinistra) si andrà a rallentare il motore corrispondente. Questo perché un valore positivo di velocità per M1 lo fa girare in senso orario, M2 in senso antiorario. Quindi un valore di velocità minore per M1, lo fa girare in senso orario meno velocemente di quanto ruoti in senso antiorario, e quindi il robot gira a sinistra. Se non agite sui motori (ma lasciate gira a sinistra e gira a destra) le curve in avanti vengono effettuate riducendo la velocità di rotazione della ruota interna a un quinto della velocità nominale, come riportato nell’esempio seguente.