miércoles, 5 de septiembre de 2007

Código NXC de robot siguelineas I

Por si a alguien le puede ayudar en sus inicios de programación, voy a poner los códigos fuentes de mis robots siguelineas programados en NXC.

Empezaremos por el más simple, en el que el robot tiene una deriva conocida hacia un lado y en cuanto superamos el margen de luz marcado sabemos que nos hemos salido de la línea y giramos en el sentido contrario parando un motor en modo float (sin bloquearlo).

#include "NXCDefs.h"
#define MARGEN 50
//programa para seguir una línea con un solo sensor de luz
//el robot genera caída hacia la derecha, y en cuanto se sale de la línea
//gira a la izquierda para recueperarla. Con esto sólo puede girar en un sentido.
int d;

task main()
{
ClearScreen();
SetSensorLight(IN_3);


OnFwd(OUT_B,40);
OnFwd(OUT_C,50);

while (true)
{
NumOut (1,1,1,Sensor(IN_3));

if (Sensor(IN_3) > MARGEN)
{
NumOut (1,1,1,Sensor(IN_3));
Float(OUT_C);
until(Sensor(IN_3) <= MARGEN) NumOut (1,20,1,Sensor(IN_3));
OnFwd(OUT_B,40);
OnFwd(OUT_C,50);
}
}
}

El video con el resultado:

1 comentario:

Anónimo dijo...

¡¡Genial!!
Es una excelente demostración de código NXC (para mí es una pesadilla usar este tipo de lenguaje, prefiero JAVA XD)
Gracias por compartir tus conocimientos.