Hola Juan,
Ese programa que pones está creado para mBot, por lo que con esos parámetros podría no funcionarte, de hecho no creo que te funcione.
Siempre teniendo en cuenta que funciona con mBot, si nos fijamos únicamente en la rutina sigue líneas sin fijarnos en la que evita obstáculos, lo que hace el programa es:
- Establece una velocidad de 230 en la variable "moveSpeed".
- Establece cuanto se ha salido de la linea por derecha o izquierda con la variable "lineDirIndex". Mientras vaya por la línea será 10, conforme se va saliendo por la derecha va restando 1 hasta llegar a "1" como máximo. Si lo hace por la izquierda va sumando 1 hasta llegar a "20" como máximo. Realmente luego solo tiene en cuenta si es mayor o menor de 10, no cuanta cantidad.
- Únicamente cuando los dos sensores de infrarrojos del sensor sigue líneas han perdido la linea toma una decisión de giro. Si "lineDirIndex=10" retrocede a velocidad 230, si es menor de 10 gira a la izquierda con velocidad -moveSpeed/10, moveSpeed, es decir el motor de la izquierda -23 y el de la derecha 230, y si "lineDirIndex" es mayor de 10 gira hacia la derecha de la misma manera.
La ventaja es que mediante la variable "moveSpeed" puedes establecer la velocidad a la que quieres que funcione el robot, pero la otra variable no se aprovecha demasiado.
Corregir por giro brusco sólo cuando ya se ha perdido la línea completamente no parece muy buena idea, aunque se supone que les ha dado buen resultado. Puedes probar y nos dices.
Saludos,
Dani S.
Hola Juan,
Ese programa que pones está creado para mBot, por lo que con esos parámetros podría no funcionarte, de hecho no creo que te funcione.
Siempre teniendo en cuenta que funciona con mBot, si nos fijamos únicamente en la rutina sigue líneas sin fijarnos en la que evita obstáculos, lo que hace el programa es:
- Establece una velocidad de 230 en la variable "moveSpeed".
- Establece cuanto se ha salido de la linea por derecha o izquierda con la variable "lineDirIndex". Mientras vaya por la línea será 10, conforme se va saliendo por la derecha va restando 1 hasta llegar a "1" como máximo. Si lo hace por la izquierda va sumando 1 hasta llegar a "20" como máximo. Realmente luego solo tiene en cuenta si es mayor o menor de 10, no cuanta cantidad.
- Únicamente cuando los dos sensores de infrarrojos del sensor sigue líneas han perdido la linea toma una decisión de giro. Si "lineDirIndex=10" retrocede a velocidad 230, si es menor de 10 gira a la izquierda con velocidad -moveSpeed/10, moveSpeed, es decir el motor de la izquierda -23 y el de la derecha 230, y si "lineDirIndex" es mayor de 10 gira hacia la derecha de la misma manera.
La ventaja es que mediante la variable "moveSpeed" puedes establecer la velocidad a la que quieres que funcione el robot, pero la otra variable no se aprovecha demasiado.
Corregir por giro brusco sólo cuando ya se ha perdido la línea completamente no parece muy buena idea, aunque se supone que les ha dado buen resultado. Puedes probar y nos dices.
Saludos,
Dani S.