BUeno e aqui mi proble estoy trabajando con un lego NXT v 1.0 y lo estoy programando con el BricxCC mi problema epieza al intentar manejar una matriz para poder que esta recorra un lugar plano la matriz es en 2 dimencione queiro que el robot pueda explorara el lugar primero y que al mismo tiempo valla dando los limites de la matriz para que depues este sepa en donde estan los obstaculos y pueda acer los siguientes infinitos recorridos mucho mas rapido y sin tropesarse infinitamente con los mismos obtaculos ademas de uqe aligual que el robot scooba pueda saber endonde esta el cargador.
me han dicho que aga un recorrido al estilo prueba y error sin definir matrices, pero este me debuelbe alprimer problea nosolo se tropesara con los mismos obstaculos sino que tambien se demorara mucho en encontrar el cargador si es que lo encuentra antes de que sele acabe la bateria,
YouTube - Cleanmate QQ-2 - dokowanie
la intensión es que el robot diga algo asi
task main() {
SetSensorLight(IN_1);
SetSensorTouch(IN_2);
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
Off(OUT_AB);
con esto encontraria un aesquina apartir de aqui
entoncs empesaria con algo como empieze a contar cuanto tiempo duro el recorrido entre un obstaculo y otro vallamemorizando los datos convierta los tiempos entre obstaculo y obstaculo los convierta en unidades y genere la matris entre alto y ancho la programacion de exploracion seria asi
//repetición
while(Sensor(IN_2) == 0)
{
//primera línea de barrido
if (Sensor(IN_2) == 0)
{ while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, 50);
OnFwd(OUT_B, -50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, 50);
OnFwd(OUT_B, -50);
Wait(1000);
}
else
{ Off(OUT_AB);
}
// segunda línea de barrido
if (Sensor(IN_2) == 0)
{
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
}
else
{ Off(OUT_AB);
}
}
Off(OUT_AB);
} esta exploracion esta con un sensor de luz y otro de tacto lo he modificado con uno de tacto y otro de ultrosonido los motivos no necesito especificarlo como la exploracion se salto ciertos lugares para eso es la matriz cono son cuadros este completaria los lugares in "explorados" descubiertos en la matriz en obstaculos por verificar si son obstaculos o son lugares in explorados y agragarlos a la matriz. esto se haria una ves para repetirlo infinitamente. no se que usar si puertos paralelos oque... para eso pido ayuda calquier idea me ayudaria mucho
me han dicho que aga un recorrido al estilo prueba y error sin definir matrices, pero este me debuelbe alprimer problea nosolo se tropesara con los mismos obstaculos sino que tambien se demorara mucho en encontrar el cargador si es que lo encuentra antes de que sele acabe la bateria,
YouTube - Cleanmate QQ-2 - dokowanie
la intensión es que el robot diga algo asi
task main() {
SetSensorLight(IN_1);
SetSensorTouch(IN_2);
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
Off(OUT_AB);
con esto encontraria un aesquina apartir de aqui
entoncs empesaria con algo como empieze a contar cuanto tiempo duro el recorrido entre un obstaculo y otro vallamemorizando los datos convierta los tiempos entre obstaculo y obstaculo los convierta en unidades y genere la matris entre alto y ancho la programacion de exploracion seria asi
//repetición
while(Sensor(IN_2) == 0)
{
//primera línea de barrido
if (Sensor(IN_2) == 0)
{ while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, 50);
OnFwd(OUT_B, -50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, 50);
OnFwd(OUT_B, -50);
Wait(1000);
}
else
{ Off(OUT_AB);
}
// segunda línea de barrido
if (Sensor(IN_2) == 0)
{
while (Sensor(IN_1) > 35)
{
OnFwd(OUT_AB, 50);
}
Off(OUT_AB);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
OnFwd(OUT_AB, 50);
Wait(800);
OnFwd(OUT_A, -50);
OnFwd(OUT_B, 50);
Wait(1000);
}
else
{ Off(OUT_AB);
}
}
Off(OUT_AB);
} esta exploracion esta con un sensor de luz y otro de tacto lo he modificado con uno de tacto y otro de ultrosonido los motivos no necesito especificarlo como la exploracion se salto ciertos lugares para eso es la matriz cono son cuadros este completaria los lugares in "explorados" descubiertos en la matriz en obstaculos por verificar si son obstaculos o son lugares in explorados y agragarlos a la matriz. esto se haria una ves para repetirlo infinitamente. no se que usar si puertos paralelos oque... para eso pido ayuda calquier idea me ayudaria mucho