Butialo: Ejemplo 5 - Seguidor de líneas con eventos, utilizando dos sensores de grises - Código
De Proyecto Butiá
Revisión del 12:09 15 oct 2012 de Leticiavp (Discusión | contribuciones)
local COLOR_NEGRO = 35000
local MOTOR_VEL = 500
local MOTOR_GIRO_VEL = 500
local NEGRO_IZQUIERDO, NEGRO_DERECHO, NEGRO_AMBOS, BLANCO = 0, 1, 2, 3
local negro_izquierda
local negro_derecha
local function avanzar()
Motors.setvel2mtr(0, MOTOR_VEL, 0, MOTOR_VEL)
end
local function detener()
Motors.setvel2mtr(0, 0, 0, 0)
end
local function es_negro(valor)
return (valor > COLOR_NEGRO)
end
local function girar_derecha()
Motors.setvel2mtr(0,MOTOR_GIRO_VEL,0,0)
end
local function girar_izquierda()
Motors.setvel2mtr(0,0,0,MOTOR_GIRO_VEL)
end
local function obtener_estado()
negro_izquierda = es_negro(Grey_1.getValue())
negro_derecha = es_negro(Grey_2.getValue())
if (negro_izquierda and negro_derecha) then
return NEGRO_AMBOS
elseif (negro_izquierda) then
return NEGRO_IZQUIERDO
elseif (negro_derecha) then
return NEGRO_DERECHA
else
return BLANCO
end
end
events.add(obtener_estado, '==', NEGRO_IZQUIERDO, girar_izquierda)
events.add(obtener_estado, '==', NEGRO_DERECHO, girar_derecha)
events.add(obtener_estado, '==', NEGRO_AMBOS, avanzar)
events.add(obtener_estado, '==', BLANCO, detener)
events.go()