Paso 8: Navegación brújula
El GPS funciona muy bien para proporcionar datos de localización exacta, pero la escala en que opera este proyecto es demasiado pequeña para proporcionar información precisa de la partida (el coche puede realizar un giro de 360 grados en un radio de unos 6 pies, que es más pequeña que la típica precisión del GPS).
Yo utilizó un magnetómetro digital (lo que me refiero a en el código como la "brújula" a través de la técnica que no es una brújula). La "brújula" proporciona una lectura rápida estupenda de la partida actual de vehículos.
Con nuestra ubicación actual, desde el GPS y nuestro rumbo actual de la brújula, calculamos el curso a nuestro destino y que manera de girar (izquierda/derecha) para interceptar el curso del destino.
Observe que debido a limitaciones en la capacidad del manejo de este coche RC barata, era no proporcional de dirección y no hay manera de usar la lógica PID más sofisticado. En su lugar, hice el enfoque de un hombre pobre: puse un configurable "tolerancia de partida" de +-10 grados. Decir si nuestro rumbo deseado era 180 grados, cualquier curso de 170 a 190 era aceptable para el programa (Nota: jugué con esto y afinado todo... unos 8 grados parecía funcionar mejor). Esto evitar correcciones de dirección constante en el corto plazo. En el largo plazo, el problema es autocorrectivo: el curso de"a punto" es no estático, se recalcula constantemente, así que si nuestra dirección real es fuera de la dirección de destino, a medida que continuamos avanzando una nueva rúbrica de destino se calcula y finalmente caiga fuera de la tolerancia dirección, resultando en un desvío hacia la ruta de destino.
El magnetómetro es muy sensible a interferencias eléctricas, motores originalmente que montara la brújula en un mini-protoboard tan lejos de la DC como sea posible para evitar que los principales culpables de la interferencia. Desafortunadamente, había todavía mucha interferencia, conduce a lecturas de la brújula inexactas y al azar. Que terminé tener que montar el magnetómetro en un poste sentado unos 10" sobre el coche; parecía funcionar bien.