Paso 7: Software
Ahora viene una parte dura y divertida y sin fin. No tengo el software hecho para mi satisfacción todavía, pero aquí van algunas sugerencias (0x67, 0xE4, 0 x 20):
- Uso de clases de C++ para abstraernos de los motores y los sensores (por ejemplo, una función de 'drive' que lleva un acelerador y girar el parámetro)
- Leer de la hoja de datos en la IMU muchas muchas veces. Leer más (luego una vez más)
- Usa las matemáticas en si declaraciones y máquinas de estado esto ayuda a prevenir su robot conseguir pegado en un 'estado'. En definitiva cosas: evitación de la colisión debe agregarse en el sentido en lugar de lo anular totalmente.
- Mantener las cosas modulares
- Cosas separadas en archivos separados. Actualmente estoy en la marca de 13 archivo para este robot. Evita el desplazamiento sin fin.
- Escriba un programador para mantener las cosas funcionando.
- Separar la lectura real del sensor de su algoritmo de control averiguar qué hacer con él.
- Usted no necesita actualizar más de 10hz tasa. Un servo actualiza cada 15ms - 6 veces un segundo!
- Tire a la basura el IDE de Arduino. No permite gestión de archivo apropiado. Aquí estoy usando UECIDE, pero no soy feliz que con él. Idealmente utilizo Eclipse pero no pude conseguirlo para subir a la Junta.
- Utilizar un sistema de control de versiones como git o svn. Resolverá usted una gran cantidad de problemas si decides deshacer algo.
La pieza más importante del Consejo:
CÓDIGO TODO LO BUENO EMPIEZA EN UN PEDAZO DE PAPEL
Garabatos hacia abajo con una pluma de buena-ol en el papel de bueno-ol. Dibujar gráficas de cómo esperas movimiento ser. Dibujar diagramas de flujo de datos. Diseño de interacciones entre partes del código. Si debe hacerlo en un equipo, utilice un archivo de texto plano y el tipo de razonamiento y de API antes de implementar realmente nada.