Moway Laberinto
En este documento vamos a explicar paso por paso el funcionamiento de nuestro programa con el que programamos al robot Moway para que saliera del laberinto.
Elprograma empieza con estas tres primeras instrucciones:
// Se configura el microcontrolador para cotrolar los motores
MOT_CONFIG();
// Se configura el microcontrolador para cotrolar los sensoresy los actuadores
SEN_CONFIG();
// Pausa de 2 segundos
Delay10KTCYx(200);
A continuación se abre el bucle que abarca a todas las instrucciones que configuran el movimiento del robot.
Primerbloque de código:
//Avanza al 80% de velocidad durante 100ms
MOT_STR(80, FWD,TIME,1);
//Se encuentra un obstáculo delante
if (SEN_OBS_ANALOG(OBS_CENTER_R) >90 &&SEN_OBS_ANALOG(OBS_CENTER_L)>90){
//Gira siempre en primer lugar a la derecha un 8% de la vuelta al 40% de la velocidad
MOT_ROT(40, FWD, WHEEL, RIGHT, ANGLE, 8) ;
while(!MOT_END){};
//Da unpoquito marcha atrás para evitar quedarse encajado (15 mm) al 80% de velocidad
MOT_STR(80, BACK,DISTANCE,15);
while(!MOT_END){};
//Gira a la derecha un 8% de la vuelta al 40% de lavelocidad
MOT_ROT(40, FWD, WHEEL, RIGHT, ANGLE, 8) ;
while(!MOT_END){};
//Enciende la luz de freno para alertarnos que está evitando un obstáculo delantero
LED_BRAKE_ON();while(!MOT_END){};
//Si detecta obstáculo en el central izquierdo, tiene que seguir girando a la derecha
if (SEN_OBS_ANALOG(OBS_CENTER_L)){
//Primero 15 mm marcha atrás para no encajarseMOT_STR(80, BACK,DISTANCE,15);
while(!MOT_END){};
//Gira a la derecha un 8% de la vuelta al 40% de la velocidad
MOT_ROT(40, FWD, WHEEL, RIGHT, ANGLE, 8) ;while(!MOT_END){};
//Si detecta obstáculo en el central izquierdo, tiene que seguir girando a la derecha
if (SEN_OBS_ANALOG(OBS_CENTER_L)){
//Primero 15 mm marcha atrás para no encajarse...
Regístrate para leer el documento completo.