Ahora vamos a intentar saber en que casilla estamos, acumulando los offset al terminar cada acción y, si el offset es mayor que el tamaño de la celda, es que nos hemos movido de casilla y podemos muestrear las paredes laterales y apuntarlas.
+-----+-----+-----+-----+
| 0 | 1 2 3 |
| A | |
+ + + + +
| 5 | 6 7 8 |
| | |
+ + + + +
| 10 11 12 13 |
| |
+ + + + +
| 15 | 16 17 18 |
| | |
+ + + + +
| 20 21 22 23 |
| |
+-----+-----+-----+-----+
Esto es lo que nos sale en una primera prueba, en la que el robot va recto de 20 a 0. La A marca la posicion y orientación final del robot.
Hemos puesto unos cuantas funciones en leds.cpp
, para calcular las distancias a
la pared frontal, y también devolver la variación entre los leds laterales cuando nos falta
alguna pared de referencia para usar en el pid de motores.cpp
. Todo esto se hizo rápido para hacer esta prueba pero hay
que reescribirlo.