Paso 10: programación
Este robot cuenta con tres diferentes tableros de microcontrolador Arduino. Los dos tableros Arduino Mega Pro ambos corren el mismo programa (más o menos) mientras que la tercera tiene un programa muy sencillo para controlar la inclinación y elevación del brazo de extensión.
Hemos optado por usar tres tablas para que, en caso de una falla en un poco de código en un brazo, los otros brazos podrían todavía función correctamente y todavía conseguir puntos para la competencia.
La característica principal del código era el control PD para el motor base. Esto permite que el brazo se mueva a su ubicación sin paradas bruscas cuando consigue allí. Los controladores de motor de Syren fueron extremadamente fáciles de enviar comandos, gracias a las librerías de dimensión ingeniería.
Dynamixel servos disponen de un control PID, por lo que todo lo que debía hacer era enviar los comandos de posición para los. Porque utilizar servos de las líneas AX, MX y RX, necesitábamos dos chips diferentes buffer. Aprendimos a usar el Arduino para controlar estos servos de Electrónica salvaje y utilizamos versiones ligeramente modificadas de sus bibliotecas (incluidas en la carpeta de código). Todo lo que se hizo para modificar estas bibliotecas para nuestro uso era cambiar el puerto serial en una biblioteca para que cada chip de memoria intermedia tenga su propio puerto serie.
Cuando empezamos a escribir el código, escribimos cada función paso a paso. Empezamos ejecutando sólo el código para el motor base, a continuación, pasamos a añadir los trozos uno por uno más abajo del brazo. Queríamos para asegurarse de que cada pedazo del código correctamente trabajado antes de que probamos cada función para reducir el riesgo de arruinar todo nuestro trabajo duro hasta ese punto.
La carpeta de código aquí incluye todas las bibliotecas necesarias para el código a compilar y los bocetos de Arduino para cada brazo.