Info

  • Principiantes
  • Edades: 11+

 

Temas STEAM

  • Tecnología
  • Ingeniería

Introducción 

Utiliza los sensores de línea del Innobot para construir un robot capaz de seguir un camino delimitado por dos líneas negras.

Materiales

¿De qué se trata el desafío Entre Líneas?

Se construye una pista delimitada por dos líneas negras paralelas, la idea es que el Innobot recorra esta pista desde un punto de inicio a una meta entre estas 2 líneas.

1. Robot entre líneas
En esta sección aprenderás como programar un robot capaz de seguir un camino delimitado por dos líneas negras paralelas sin salirse de el.

Caso 1: Cuando el sensor J1 (Derecha) detecta rango de radiación negro.

Como la idea es no abandonar el camino delimitado y no 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 2: Cuando el sensor J2 (Izquierda) detecta rango de radiación negro.

Como la idea es no abandonar el camino delimitado y no 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

En la sección de categorías de BLOCKS, click en la categoría de Control/Lógica y seleccionar el bloque IF:

entre_lineas_01Luego traslada el bloque hasta Ciclo_Infinito:

entre_lineas_02
Paso 2

  1. Click sobre el engranaje azul.
  2. De las opciones que se despliegan, escoge el bloque de sino si y arrástralo hasta el bloque si (IF).
  3. De las opciones que se despliegan, escoge el bloque de sino y arrástralo hasta el bloque si (IF).
  4. Click sobre el engranaje azul de nuevo, para salir de la lista desplegable.

 

Paso 3

De la categoría de Control/Lógica, busca el bloque igual a:

entre_lineas_04Arrastra el bloque hasta conectarlo con el bloque IF, luego de la lista desplegable busca la opción menor o igual a.

entre_lineas_05

entre_lineas_06

Paso 4

En la sección de categorías de BLOCKS, click en la categoría de Sensores y seleccionar el bloque Leer Sensor

entre_lineas_07Traslade el bloque hasta la primera conexión del bloque menor o igual a, luego de la lista desplegable escoge el puerto del sensor donde esté conectado el Sensor de Línea, en este caso J1.

entre_lineas_08

En la sección de categorías de BLOCKS, click en la categoría de Variables y seleccionar el bloque Numero.

entre_lineas_09

Nota: Solo escribir el número.

entre_lineas_10

Realizar los mismos pasos para el sensor de línea que esta conectado en el puerto J2.

 

Paso 7

En la sección de categorías de BLOCKS, click en la categoría Motores y seleccionar el bloque Ir hacia adelante.

entre_lineas_11

Traslade el bloque hasta el bloque SINO. Cuando el robot detecte un valor de reflexión de luz mayor a 300, entonces en ambos sensores, los motores se encenderán hacia adelante.

entre_lineas_12

Paso 8

Cuando el sensor J1 (Derecha) detecte negro, entonces, el robot debe girar hacia la izquierda para no salir del camino.

 entre_lineas_13

 

Paso 9

Cuando el sensor J2 (Izquierda) detecte negro, entonces, el robot debe girar hacia la derecha para no salir del camino.

entre_lineas_14

2. Robot entre líneas mejorado
Realiza las siguientes modificaciones en el código para mejorar el funcionamiento del Innobot.

Paso 10

Realiza las siguientes mejoras en el código.

 

entre_lineas_15

1. Robot Entre Líneas
En esta sección aprenderás como programar un robot capaz de seguir un camino delimitado por dos líneas negras paralelas sin salirse de el.

Caso 1: Cuando el sensor J1 (Derecha) detecta rango de radiación negro.

Como la idea es no abandonar el camino delimitado y no 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 2: Cuando el sensor J2 (Izquierda) detecta rango de radiación negro.

Como la idea es no abandonar el camino delimitado y no 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.

void setup () {

}
void loop () {
  if (sensorRead(J1) < 300) {
    turnLeft(M2 , M1);
  } else if (sensorRead(J2) < 300) {
    turnRight(M2 , M1);
  } else {
    goForward(M1,M2);
  }
}

2. Robot Entre Líneas Mejorado
Realiza las siguientes modificaciones en el código para mejorar el funcionamiento del Innobot.

void setup () {
  motorSpeed(M1,70);
  motorSpeed(M2,70);

}
void loop () {
  if (sensorRead(J1) < 300) {
    turnLeft(M2 , M1);
    delay(50);
  } else if (sensorRead(J2) < 300) {
    turnRight(M2 , M1);
    delay(50);
  } else {
    goForward(M1,M2);
  }
}