Práctica 3.03

ROBOT QUE SIGUE LÍNEAS

La tercera evaluación la hemos dedicado a desarrollar una forma de hacer que un choche se mueva de manera autónoma siguiendo una línea.
¿Cómo lo hemos hecho?

        -Conseguir que el robot sepa cuándo moverse:

Para esto empleamos un sensor de infrarrojos (véase en la imagen inferior). 
Se basa en un sistema de emisión/recepción de radiación lumínica, y gracias él es capaz de distinguir los colores, lo que nos servirá para que el robot pueda determinar si delante suyo hay una línea negra o un espacio en blanco.

           -Conseguir que el robot se mueva.

Utilizamos un controlador de motor modelo L298N (imagen inferior). Cuenta con varios componentes:


Jumper regulador: conecta dos pines entre sí.

Vin: Energía a la tarjeta arduino


GND: (Ground) Toma de tierra,

Salidas para los motores A y B: proporcionan la energía necesaria para hacer mover los motores.

Pines ENA y ENB: Pines con jumper que encienden o apagan los motores y regulan la salida 0-255 para la velocidad.

Pines IN1, IN2, IN3 e IN4: Controlan el sentido de giro de cada motor (IN1 e IN2, motor A; IN3 e IN4, motor B) de la siguiente manera:

  para motor A






  para motor B



  para el sentido de moviento del coche (dos motores a la vez)



             -Programación del código:

El código se programó utilizando bitbloq.
Para simular los componentes, conectamos leds en la tarjeta arduino, que funcionaban como los pines ENA, ENB e IN1-4 y usamos el componente sensor infrarrojo para hacer del mismo.

El primer paso era declarar las variables y las funciones: avanzar, retroceder, girar a la izda, a la dcha y parar.

     VARIABLE VELOCIDAD: Elegimos un valor numérico (ej, 150)

     VARIABLE SENSOR DERECHA: Le aportamos un valor numérico que será especificado en el bucle principal.

     VARIABLE SENSOR IZQUIERDA: Le aportamos un valor numérico que será especificado en el bucle principal.




     FUNCIÓN AVANZAR:
Para que sea posible, las dos ruedas deben girar hacia adelante. Para ello encendemos IN1 e IN3, apagamos IN2 e IN4.

Además, proporcionamos a los pines ENA y ENB (5 y 6) el valor velocidad. Esto debemos hacerlo en todas las funciones menos en "PARAR"

    FUNCIÓN RETROCEDER: 
Debe suceder exactamente lo contrario a en la función "AVANZAR": Las dos ruedas giran hacia atrás, por to que IN1 e IN3 apagado, IN2 e IN4 encendidos. 

    FUNCIÓN GIRAR DERECHA:
La rueda derecha debe retroceder y la izquierda avanzar. Encendemos IN1 e IN4, apagamos 2 y 3




    FUNCIÓN  GIRAR IZQUIERDA: 
Realizamos lo contrario a la función derecha

    FUNCIÓN PARAR:
Para que no se mueva ninguna rueda, apagamos todos los leDS.  





Ahora comenzaríamos a programar los bloques:
Vamos a igualar la variable sensor izquierda a lo que detecte el sensor izquierdo, y hacemos lo mismo con la derecha.

Ahora indicamos que cuando lo leído por los dos sensores sea mayor que 0 (es decir, hay línea) se ejecute la función "AVANZAR"

Cuando lo leído en la dcha sea mayor que en la izda (la línea gira hacia la dcha) se ejecute la función "GIRAR DERECHA"

En cambio, si lo leído en la izda supera a lo leído en la dcha (línea continúa por la izquierda) se ejecuta la función "GIRAR IZQUIERDA"

Y si los sensores izdo y dcho igualan los dos a 0 (el coche se ha salido de la línea), se para el coche ejecutando la función "PARAR"










Comentarios

Entradas populares de este blog

Redes informáticas :)

Sensor de luz: VERSIÓN 1.0

CÓDIGO 2 (recuperar línea)