No se si les es de utilidad pero en mi proyecto del año pasado diseñe uno el cual logro de manera increíble abarcar toda la habitación... el programa consiste en tomar la habitación como un cuadro el cual no conocemos las dimensiones pero si podemos detectar lo que hay al alrededor por lo que con forme avance, un factor a tomar en cuenta es el del movimiento ya que luego de cierta cantidad de tiempo desplazándose al frente o hacia atras habrá recorrido su propio tamaño
Aqui el programa... o parte de el... solo la deducción del movimiento
short adelante,atras,derecha,izquierda,
moverse,dato,tiempo;
void movimiento()
{
if(moverse==0) PORTB=0;
else if(moverse==1)PORTB=0xA0; // adelante
else if(moverse==2)PORTB=0x50; // atras
else if(moverse==3)PORTB=0x60; // derecha doble
else if(moverse==4)PORTB=0x90; // izquierda doble
else if(moverse==5)PORTB=0x80; // izquierda simple
else if(moverse==6)PORTB=0x10; // izquierda simple
}
void Cruze_derecha()
{
moverse=2;movimiento();delay_ms(1000); // Fijo
moverse=2;movimiento();delay_ms(1000); // 5 6
moverse=2;movimiento();delay_ms(1000); // 4 3
moverse=1;movimiento();delay_ms(1000); // Fijo
}
void Cruze_izquierda()
{
moverse=2;movimiento();delay_ms(1000); // Fijo
moverse=2;movimiento();delay_ms(1000); // 4 3
moverse=2;movimiento();delay_ms(1000); // 5 6
moverse=1;movimiento();delay_ms(1000); // Fijo
}
void main()
{
TRISA=0;
TRISB=0;
TRISC=0xFF;
ANSEL=0;
ANSELH=0;
PORTB=0;
Delay_ms(10);
while(1)
{
moverse=PORTC;
movimiento();
delay_ms(500);
}
}
Solo déjenme hallar el programa entero y lo subo junto con las fotos...