Estoy escribiendo esta respuesta con la suposición de que el lector tiene un conocimiento básico sobre el microcontrolador, la programación, el robot simple seguidor de línea.
Si el laberinto está arreglado (es decir, este es el laberinto que el seguidor de línea encontrará cada vez), estos consejos pueden ser útiles:
1. Puede codificar la ruta en la que debe seguir el seguidor de línea. En este caso, el camino más corto (y más fácil) sería ir recto y girar a la izquierda para llegar al final.
2. Para esto necesitas encontrar los nodos. Los nodos son el punto en el que se cruzan dos o tres líneas. En el caso anterior, el seguidor de línea (LF en adelante) debe girar a la izquierda en el segundo nodo.
Si el laberinto no es siempre el mismo y es aleatorio en cualquier momento, existen tres posibilidades para llegar al final del laberinto.
1. Siempre se fue
2. Siempre correcto
3. Siempre derecho
He aprendido que siempre abandoné el algoritmo de este documento: página en pololu.com
En cada caso puedes priorizar tus turnos. Por ejemplo, en la lógica ‘Siempre a la izquierda’, la primera prioridad se da al giro a la izquierda. Puedes elegir la segunda prioridad según tu laberinto. Si elige el laberinto anterior, elegiría la segunda prioridad como giro a la derecha (teniendo en cuenta las líneas extendidas en el borde). Lo mismo ocurre con las otras dos lógicas.
Aparte de la lógica de la mano izquierda y la derecha, supongo que ninguna otra técnica será eficiente para resolver el laberinto.
- ¿Qué motiva el problema de k-satisfacción en la informática teórica?
- ¿Puedo ingresar una máquina Turing en otra máquina Turing? Si es así, ¿cómo? Y si no, ¿por qué?
- En matemáticas y ciencias de la computación, ¿cuál es / hay una diferencia entre las funciones calculables y computables?
- ¿Cuál es el significado de bucket = Math.abs (x.hashCode () * p)% tablesize en Java?
- ¿Qué es una explicación intuitiva de P = NP?
En cuanto a su pregunta sobre el número de sensores a elegir. El número óptimo de sensor que elegiría es cinco dispuestos de la siguiente manera.
Numeraré los sensores de la siguiente manera para explicar en detalle:
Se utilizan 2 y 3 sensores para seguir la línea recta. Los números 1 y 4 se utilizan para detectar el nodo. Si el número 1 aparece en una línea negra, se detecta el nodo izquierdo. Si 4 aparece en una línea negra, se detecta el nodo derecho. El sensor número 5 es multipropósito y se coloca un poco por delante para un propósito.
1. Se utiliza para seguir la línea recta.
2. Se utiliza para girar a la derecha o izquierda.
Estas son las pocas posibilidades que encontrará al resolver el laberinto con la disposición del sensor mencionada anteriormente.
1. Para la siguiente línea recta:
El sensor debe estar en la disposición que se muestra arriba. Se supone que está utilizando dos motores que tienen rpm prácticamente diferentes. Si es así, el LF no puede seguir la línea recta. Tomaría un pequeño giro a la izquierda o derecha dependiendo del motor que se mueva lentamente. Entonces, si el LF se mueve poco a la izquierda, la disposición del sensor sería:
Tenga en cuenta que el sensor 5 llegó a la superficie blanca y el sensor 3 llegó a una superficie negra. Ahora debe girar a la derecha para devolver el sensor 5 a negro y el sensor 3 a blanco. Ahora, a partir de la explicación anterior, puede recrear un escenario si el LF gira poco a la derecha mientras se mueve en línea recta.
El sensor 5 también se utiliza para girar a la derecha o izquierda o en U extrema. (El giro en U no es más que dos giros extremos a la derecha o izquierda). Digamos que desea girar a la derecha en un nodo. Ahora, si el LF encuentra un nodo derecho, la disposición del sensor sería así:
El nodo derecho se detecta cuando los sensores 3 y 4 se vuelven negros. Ahora, para girar a la derecha, solo tiene que girar a la derecha hasta que el sensor 5 aparezca en una línea negra. No tiene que controlar otro sensor. Solo el número 5 es suficiente.
Dejo el resto (giro a la izquierda y giro en U) a los lectores pensando.
PD: Perdón por mi pobre habilidad de dibujo.