Paso 5: Configuración y Tuning
En la construcción del robot, he desarrollado un bosquejo temporal, dedicado para cada subsistema (MPU-6050, módulo BT, protector de Motor), dividir el problema en tamaños que podría manejar. Pero incluso antes de eso, todo empezó con levantarse el corazón del sistema, la Junta de Galileo Gen 2 y funcionando.
Hay una buena "getting started" Guía en línea en el que instalar a los controladores de dispositivo Android IDE y Galileo y actualizar el FW de la Junta de Galileo.
Nota: Como el Bluetooth y el MPU-6050 módulos de 3,3 v señalización, asegúrese de pasar el puente de tensión I/O en el tablero de Galileo a los 3.3V para evitar dañar los módulos.
También sugiero que toma el tiempo para cargar una imagen de arranque en una tarjeta SD (Asegúrese de obtener la última imagen). Permite su sketch de Arduino para conservarse en Galileo a través de ciclos de alimentación de la Junta. Del lado de abajo, que aumentar el tiempo de inicio de la Junta de Galileo (tarda del orden de 1 minuto en arrancar), pero es un equilibrio merece la pena en mis ojos.
Nota: retrasó el paso de arranque desde la SD (sí, porque soy perezoso). Como resultado, tuve que atar el robot a mi PC mediante el cable USB por lo que pude descargar el bosquejo en cada ciclo de potencia. Esto era un inconveniente que dio vuelta al desastre, cuando el robot cayó en el cable USB, romper el micro conector USB en el tablero de Galileo. Ahora tienen que recurrir a cargando nuevos bocetos en la tarjeta SD en la PC del anfitrión y luego arranque Galileo de SD y el bosquejo hacia /sketch/sketch.elf a través de la consola de serie Linux y luego reiniciar Galileo... todo porque la conexión de host a través de la USB ya no es funcional. Así que guárdate de mi triste historia y considérate advertido si decides operar a tu robot con el cable USB conectado.
También jugué con varias posiciones de montaje para el MPU-6050. Empecé con él montado en el nivel de electrónica, bajo el tablero de Galileo, pero encontró moviendo al nivel motor permitido para un mejor control.
En gran medida la fase menos determinista que encontré fue determinante el derecho P, I y D valores para el controlador PID. He oído esto es un arte negro, pero ahora tenemos un mucho más saludable respeto por el proceso después de haber pasado algún tiempo en ella. Fue en esta fase del desarrollo que he añadido el registro de datos PID a la tarjeta SD, por lo que pude averiguar la contribución de cada término a la salida. Hay un número de tratamientos de sintonización manual PID online, pero encontré el mejor enfoque para ser como sigue:
· Establece la I y D términos 0
· Aumentar el término de P hasta que el robot casi puedo permanecer vertical. Con los motores elegí, que era el robot de carreras a través del suelo que se inclinan en una dirección
· Reduce algo el término de P y aumentó plazo hasta el robot puede equilibrar, pero lo hizo con oscilaciones
· Aumentado el plazo D para reducir la oscilación.
Todavía no estoy satisfecho con los resultados que he obtenido, como parecen estar que bien optimizado para el buen equilibrio y buena conducción. La búsqueda continúa...
En cuanto a la calibración del rodillo, volví y había calibrado el MPU-6050 parcialmente a través del desarrollo, después he añadido la capacidad de calibración del rodillo. Para mi sorpresa, después había calibrado el módulo del MPU-6050, no encontré los cambios de la calibración del rodillo para tener un efecto significativo.
He encontrado que ajuste la holgura Motor hecho el robot más sensible - hasta cierto punto, más allá del cual comenzó a oscilar.