mbot: misión sigue líneas

El mBot dispone de dos motores independientes: M1 es el motor izquierdo y M2 es el motor derecho.

mbot

El algoritmo que utilizaremos para implementar este programa es el siguiente:

  1. Si el sensor sigue-líneas devuelve el valor 0: ambos módulos (izquierdo y derecho) del sensor se encuentran sobre la línea negra. El vehículo se encuentra sobre la línea y entonces ambos motores (M1 y M2) deben avanzar hacia delante con velocidad 100.
  2. Si el sensor sigue-líneas devuelve el valor 1: el módulo derecho del sensor se encuentra fuera de la línea y entonces el vehículo debe girar a la izquierda para tratar de meterse en la línea.  Para girar a la izquierda el motor izquierdo M1 se detiene (velocidad=0) mientra el motor derecho M2 avanza hacia delante con velocidad 100.
  3. Si el sensor sigue-líneas devuelve el valor 2: el módulo izquierdo del sensor se encuentra fuera de la línea y entonces el vehículo debe girar a la derecha para tratar de recuperar la línea. Para girar a la derecha el motor izquierdo M1 avanza hacia delante con velocidad 100 mientra el motor derecho M2 se detiene (velocidad=0).
  4. Si el sensor sigue-líneas devuelve el valor 3: ambos módulos del sensor se encuentran fuera de la línea. Si hemos partido de una posición inicial o anterior en la cual el mbot estaba sobre la línea negra, esto significa que ha perdido la línea y por tanto retroceder hacia atrás puede permitir recuperarla. Para que el vehículo retroceda hacia atrás ambos motores (M1 y M2) se mueven hacia atrás con velocidad 100.

mbot

Algoritmo de seguimiento de líneas mejorado:

En este desafío se propone mejorar el rendimiento de seguimiento de la línea por parte del mBot. Para ello adoptaremos el criterio “optimista”: mientras no pierda contacto con la línea negra (valor del sensor igual a 0, 1 u 2) seguiremos avanzando hacia delante. Por otra parte cuando pierda el contacto total con la línea negra (valor del sensor igual a 3) entonces se decide afinar el tipo de movimiento a realizar en función de la desviación acumulada. Recuerda que en el ejemplo anterior cuando el sensor devolvía el valor 3 entonces se programaba simplemente un retroceso hacia atrás. Para guardar la desviación acumulada utilizaremos una variable desviacionAcumulada. 

mbot

Reglas

  1. Si el ValorSensorLinea=0 entonces Avanzar y desviacionAcumulada = 10. El valor 10 de la variable desviacionAcumulada indicará que NO se ha producido desviación ni a derecha ni a izquierda.
  2. Si el ValorSensorLinea=1 entonces Avanzar y Si desviacionAcumulada es mayor que 1 entonces restar 1. El valor inferior a 10 de la desviacionAcumulada indicará que se ha producido una desviación a la derecha del móvil respecto a la línea.
  3. Si el ValorSensorLinea=2 entonces Avanzar y Si desviacionAcumulada es menor que 20 entonces sumar 1. El valor superior a 10 de la desviacionAcumulada informará que se ha registrado una desviación a la izquierda del móvil respecto a la línea.
  4. Si el ValorSensorLinea=3 (se ha perdido contacto pleno con la línea) entonces …
    • Si desviacionAcumulada es igual a 10 entonces Retroceder. No se ha producido ninguna desviación por lo que se puede recuperar la línea volviendo para atrás.
    • Si desviacionAcumulada es menor que 10 entonces Girar Izquierda. Se registra desviación a la derecha del móvil por lo que se puede resolver girando a la izquierda.
    • Si desviacionAcumulada es mayor que 10 entonces Girar Derecha. Se ha detectado desviación a la izquierda del móvil y se puede solucionar girando a la derecha.

mbot

Ahora veamos algunos de los vídeos de nuestros chic@s.

Siguelíneas de Álvaro

Siguelíneas de Sara

Deja un comentario

Tu email nunca se publicará.