
Utiliza los sensores de línea del Innobot para construir, calibrar y programar un robot seguidor de línea.
Info
- Principiantes
- Edades: 11+
Temas STEAM
- Tecnología
- Ingeniería
Materiales
- Kit de Robótica Innobot
- Pygmalion IDE
- Computador
¿Qué es un robot seguidor de línea?
Los robots seguidores de línea son robots cumplen una única misión: seguir una línea marcada en el suelo normalmente de color negro sobre un fondo blanco.
1. Calibración de Sensores
A continuación encontrarás los pasos para calibrar los sensores de línea y poder seguir la línea correctamente.
Paso 1
Para calibrar los sensores lo primero que debemos hacer es construir un programa que nos permita visualizar qué datos está midiendo cada sensor.
Sensor J1 (Sensor Derecho)
Sensor J2 (Sensor Izquierdo)
Paso 2
Se debe subir el programa a la tarjeta del Innobot en ambos casos, primero se prueba un sensor y luego otro.
Paso 3
Para visualizar la medición de un sensor se debe dar click derecho en el botón de la Consola – Serial. Adicionalmente, el robot debe estar conectado vía cable USB al computador todo el tiempo para realizar esta prueba.
Sensor J1 (Sensor Derecho)
Posiciona el robot de tal forma que el sensor J1 esté sobre la línea negra.
Sensor J2 (Sensor Izquierdo)
Posiciona el robot de tal forma que el sensor J2 esté sobre la línea negra.
Paso 4
Una vez se acceda a la Consola – Serial, el valor que detecta el sensor debe ser un valor considerablemente menor al que detecta en la superficie blanca, usualmente es un valor variable y debe estar entre 0 (mínima reflexión) y 1023 (máxima reflexión).
En este caso el valor de reflexión más alto del sensor de línea medido se acerca a 500 y por lo tanto el valor de referencia que se utilizará para dicho sensor será un poco mayor. En este caso utilizaremos como valor de referencia 600.
Esta prueba se debe hacer para cada sensor (J1 y J2), los valores de referencia pueden ser diferentes.
Paso 5
Como el valor de referencia elegido para el sensor J1 y J2 es 600, entonces ahora se procederá a crear la lógica necesaria para seguir la línea, según los casos expuestos en la primera parte del tutorial.
En el caso que ambos sensores detectan la superficie blanca, esto querrá decir que ambos sensores detectan un valor que está por encima del valor de referencia que se eligió es decir:
Sensor J1 > 600 Y Sensor J2 > 600
Si este caso se cumple, entonces el robot debe ir hacia adelante.
En este caso el sensor J1 detecta un valor por encima del valor de referencia, pero el sensor J2 detecta un valor por debajo del valor de referencia es decir detecta la línea negra:
Sensor J1 > 600 Y Sensor J2 < 600
Si este caso se cumple, entonces el robot debe girar hacia la izquierda, para no salirse del camino.
En este caso el sensor J2 detecta un valor por encima del valor de referencia, pero el sensor J1 detecta un valor por debajo del valor de referencia es decir detecta la línea negra:
Sensor J2 > 600 Y Sensor J1 < 600
Si este caso se cumple, entonces el robot debe girar hacia la derecha, para no salirse del camino.
2. Robot seguidor de línea
A continuación se construirá el código para que el Innobot pueda seguir una línea negra continua sin intersecciones.
La línea que debe seguir el robot debe diferenciarse de la superficie sobre la que fue trazada, por ejemplo: Fondo Blanco- Línea Negra, Fondo Negro – Línea Blanca.

Caso 1: Cuando el sensor J1 (Derecha) y el sensor J2 (Izquierda) detectan Blanco.
Cómo ningun sensor está detectando negro y además la línea negra pasa por la mitad entre ambos sensores de línea, entonces se deben encender ambos motores hacia adelante. Es decir ir hacia adelante.

Caso 2: Cuando el sensor J2 (Izquierda) detecta rango de radiación negro y el sensor J2 (Derecha) detecta Blanco
Como la idea es no abandonar el camino delimitado y seguir la línea, entonces se debe encender hacia adelante el motor M1 y el motor M2 hacia atrás. Es decir girar a la izquierda.

Caso 3: Cuando el sensor J1 (Derecha) detecta rango de radiación negro y el sensor J1 (Izquierda) detecta Blanco
Nuevamente, como la idea es no abandonar el camino delimitado y seguir la línea, entonces se debe encender hacia adelante el motor M2 y el motor M1 hacia atrás. Es decir girar a la derecha.

Paso 1
Traslada un bloque de si_hacer de la categoría Control/Lógica hasta el Ciclo Infinito.
Paso 2
En el bloque de si_hacer que se traslado al Ciclo Infinito, agregar dos bloques si no si y un bloque si no.
Paso 3
Ahora se trasladaran tres bloques Y desde la categoría Control/Lógica.
Paso 4
Luego se agregan seis bloques igual a desde la categoría Control/Lógica, hasta cada uno de los bloques Y, que se han trasladado en el paso anterior.
Paso 5
Ahora cambiaremos los dos primeros bloques de igual a por mayor que.
Paso 6
Ahora trasladamos dos bloques Leer Sensor desde la categoría Sensores, hasta el primer bloque si_hacer en el bloque principal Ciclo Infinito, un bloque para J1 y otro para J2.
Paso 6
Ahora trasladamos dos bloques Número desde la categoría de Variables y escribimos el valor de referencia que se encontró para cada sensor en la etapa de calibración de sensores.
Paso 7
Para el caso en que ambos sensores detectan un valor por encima del de referencia (es decir que ambos sensores leen blanco) entonces el Innobot debe ir hacia adelante.
Paso 8
Ahora cambiaremos los dos bloques del próximo condicional si_hacer por menor que y mayor que.
Paso 9
Luego agregaremos los dos bloques de Leer Sensor y Número con el respectivo valor de referencia de los sensores.
Paso 10
Como en este caso el Innobot detecta la línea negra en el sensor derecho J1, debe girar a la derecha para no salirse del camino y seguir la línea.
Paso 11
Ahora que ya hemos construido los dos primeros casos, sabemos que el tercer caso es el contrario del segundo por lo tanto el robot debe girar a la izquierda.
Paso 12
Finalmente, si no se cumplen ninguno de los casos anteriores determinaremos que el Innobot debe detenerse si encuentra un rango inferior en ambos sensores al tiempo, es decir, si ambos sensores están leyendo negro.
Paso 13
Para mayor precisión en los movimientos, te recomendamos disminuir la velocidad de ambos motores como se muestra a continuación:
1. Calibración de Sensores
A continuación encontrarás los pasos para calibrar los sensores de línea y poder seguir la línea correctamente.
Paso 1
Para calibrar los sensores lo primero que debemos hacer es construir un programa que nos permita visualizar qué datos está midiendo cada sensor.
void setup() { } void loop(){ Serial.print("J2 = "); Serial.print(sensorRead(J2)); Serial.print(" "); Serial.print("J1 = "); Serial.println(sensorRead(J1)); delay(50); }
Paso 2
Se debe cargar el programa a la tarjeta del Innobot.
Paso 3
Para visualizar la medición de un sensor se debe dar click derecho en el botón de la Monitor Serial.
Adicionalmente, el robot debe estar conectado vía cable USB al computador todo el tiempo para realizar esta prueba.
Sensor J1 (Sensor Derecho)
Posiciona el robot de tal forma que el sensor J1 esté sobre la línea negra.
Sensor J2 (Sensor Izquierdo)
Posiciona el robot de tal forma que el sensor J2 esté sobre la línea negra.
Paso 4
Una vez se acceda a la Consola – Serial, el valor que detecta el sensor debe ser un valor considerablemente menor al que detecta en la superficie blanca, usualmente es un valor variable y debe estar entre 0 (mínima reflexión) y 1023 (máxima reflexión).
En este caso el valor de reflexión más alto del sensor de línea medido se acerca a 600 y por lo tanto el valor de referencia que se utilizará para dicho sensor será un poco mayor, en este caso utilizaremos 700.
Esta prueba se debe hacer para cada sensor (J1 y J2), los valores de referencia pueden ser diferentes.
Paso 5
Como el valor de referencia elegido para el sensor J1 y J2 es 700, entonces ahora se procederá a crear la lógica necesaria para seguir la línea, según los casos expuestos en la primera parte del tutorial.
En el caso que ambos sensores detectan la superficie blanca, esto querrá decir que ambos sensores detectan un valor que está por encima del valor de referencia que se eligió es decir:
Sensor J1 > 700 Y Sensor J2 > 700
Si este caso se cumple, entonces el robot debe ir hacia adelante.
En este caso el sensor J1 detecta un valor por encima del valor de referencia, pero el sensor J2 detecta un valor por debajo del valor de referencia es decir detecta la línea negra:
Sensor J1 > 700 Y Sensor J2 < 700
Si este caso se cumple, entonces el robot debe girar hacia la izquierda, para no salirse del camino.
En este caso el sensor J2 detecta un valor por encima del valor de referencia, pero el sensor J1 detecta un valor por debajo del valor de referencia es decir detecta la línea negra:
Sensor J2 > 700 Y Sensor J1 < 700
Si este caso se cumple, entonces el robot debe girar hacia la derecha, para no salirse del camino.
2. Robot Seguidor de Línea
A continuación se construirá el código para que el Innobot pueda seguir una línea negra continua sin intersecciones.
La línea que debe seguir el robot debe diferenciarse de la superficie sobre la que fue trazada, por ejemplo: Fondo Blanco- Línea Negra, Fondo Negro – Línea Blanca.

Caso 1: Cuando el sensor J1 (Derecha) y el sensor J2 (Izquierda) detectan Blanco.
Cómo ningun sensor está detectando negro y además la línea negra pasa por la mitad entre ambos sensores de línea, entonces se deben encender ambos motores hacia adelante. Es decir ir hacia adelante.

Caso 2: Cuando el sensor J2 (Izquierda) detecta rango de radiación negro y el sensor J2 (Derecha) detecta Blanco
Como la idea es no abandonar el camino delimitado y seguir la línea, entonces se debe encender hacia adelante el motor M1 y el motor M2 hacia atrás. Es decir girar a la izquierda.

Caso 3: Cuando el sensor J1 (Derecha) detecta rango de radiación negro y el sensor J1 (Izquierda) detecta Blanco
Nuevamente, como la idea es no abandonar el camino delimitado y seguir la línea, entonces se debe encender hacia adelante el motor M2 y el motor M1 hacia atrás. Es decir girar a la derecha.

Paso 1
Construye el siguiente código en CODE.
- El primer if corresponde al caso en el que ambos sensores detectan un valor mayor al de referencia, es decir, ambos están leyendo BLANCO.
- Los dos else if, corresponden a los casos donde un sensor está leyendo un valor menor al de referencia, es decir NEGRO y el otro está leyendo BLANCO.
- El último condicional else, corresponde a una situación hipotética donde ambos sensores estén leyendo NEGRO. Este caso por ejemplo se puede dar si la pista tiene intersecciones.
void setup () { motorSpeed(M1,70); motorSpeed(M2,70); } void loop () { if (sensorRead(J1) > 600 && sensorRead(J2) > 600) { goForward(M1,M2); } else if (sensorRead(J1) < 600 && sensorRead(J2) > 600) { turnRight(M2 , M1); } else if (sensorRead(J1) > 600 && sensorRead(J2) < 600) { turnLeft(M2 , M1); } else { motorsOff(M1 , M2); } }
- Innobot, Kits de robótica, Kits Educativos, Robótica, STEM Toys
Kit de Robótica Innobot + Baterías recargables + Bluetooth
Innobot, Kits de robótica, Kits Educativos, Robótica, STEM ToysKit de Robótica Innobot + Baterías recargables + Bluetooth
Kit de robótica educativo Innobot, contiene más de 350 piezas y se pueden realizar más de 5 funcionalidades con el mismo kit. Es un kit ideal para jóvenes mayores de 11 años y adultos, y permite desarrollar habilidades en educación STEM (Ciencia, Tecnología, Ingeniería y Matemáticas) a través de la programación, la electrónica y la mecánica.
SKU: PYG0001