Bien aquí empiezo un FAQ que iré actualizando con los problemas que suele presentar nuestro querido NXT (Son casos muy sencillos para principiantes).
- Cuestión: Se inicia el robot y a los pocos segundos da un error.
- Solución: Dentro de bucle no puedes hacer un mostrar por pantalla con un string, ya que esto devora la memoria de nuestro Lejos, deberás crear una variable estática antes del main declarando el string que quieres mostrar. Ej.: static String name = "Cortocircuito";
- Cuestión: Cuando escribo algo, no sale por pantalla.
- Solución: Siempre que imprimáis por pantalla algo debéis poner un LCD.refresh(); si no lo hacéis no saldrá nunca nada por pantalla
- Cuestión: Cuando saco por pantalla datos constantemente con un bucle, no cambian.
- Solución: Cuando tengas un bucle para sacar algo por pantalla como la distancia que devuelve los ultrasonidos y que no salgan números sin sentido, debes poner LCD.clear(); sino o no cambiara el dato por pantalla o saldrá algo fuera de lugar.
- Cuestión: Cuando el robot avanza o retrocede se va desviando.
- Solución: Esto viene porque dentro de un bucle tendras llamando a la instruccion forward o backward constantemente y eso produce un desfase entre las ruedas, para solucionarlo, lo mejor es poner:
if (!Motor.A.isForward())
{
Motor.A.forward();
Motor.C.forward();
}
{
Motor.A.forward();
Motor.C.forward();
}
De esta forma a no ser que haya dejado de ir recto, no hara que el motor llame
constantemente a la funcion avanzar.
0 comentarios:
Publicar un comentario