Paso 13: El programa
Me divertí mucho escribiendo este programa. Básicamente hay algunas funciones que cuidar del laberinto todo solución de proceso. La mano izquierda en la función de pared tiene la lógica para leer los sensores y navegar por el laberinto siguiendo esas reglas que describí anteriormente. Las funciones de giro están programadas de una manera para que el robot siga girando hasta que ve la linea negra en cuyo caso entonces conduce hacia adelante. También hay una función programada con una pequeña línea tras capacidades. No es PID línea siguiente, pero permiten al robot a mantener el rumbo. Esta función controla también la velocidad del robot.
La función más detallada es la de acortar el camino. Una letra es almacenada en cada cruce que indica que la dirección del robot tomó. Si la carta anterior era una "B", indicando un giro equivocado, se ejecuta la función que se acorta el camino para sustituir letras en lugar de esas secuencias de 3 letra descritas anteriormente.
Por último es una función que reproduce el camino más corto que el robot calcula cuando el robot es recogido y colocado hacia abajo sobre la línea negra. El robot puede detectar cuando se coloca hacia abajo y luego ejecuta el camino más corto calculado.
Puede descargar el código de abajo.