Skip to main content

Sigue líneas

En este caso sólo vamos a utilizar de los 4 sensores quad que tiene los 2 de en medio con la instrucción

mbuild.quad_rgb_sensor.get_line_sta("middle", 1)

El valor que devuelve esta instrucción puede ser  :

  • 0 o en binario 00 que quiere decir que los dos sensores detectan blanco, por lo tanto habría que volver hacia atrás para recuperar la línea
  • 1 o en binario 01 que significa que el sensor de la derecha detecta línea pero el de la izquierda no, por lo tanto hay que girar a la derecha
  • 2 o en binario 10 que significa que el sensor de la izquierda detecta línea pero el de la derecha no, por lo tanto hay que girar a la izquierda
  • 3 o en binario 11 que quiere decir que los dos sensores detectan línea, por lo tanto todo bien, recto

El código es

import event, time, cyberpi, mbuild, mbot2

cyberpi.display.show_label("PULSA A PARA COMENZAR",16,0,20,1)
while not cyberpi.controller.is_press('a'):
        pass

while True:
    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b00:
        mbot2.backward(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b11:
        mbot2.forward(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b01:
        mbot2.turn_right(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b10:
        mbot2.turn_left(50)

Fuente Javier Quintana

El resultado es