Paso 3: Plex Bot, codificación
Todo el código está alojado en GitHub.
Creo que es la parte más interesante de crear el robot. He visto mucho código de arduino para robots. La mayoría del código es muy estúpido. No me refiero a esto de una manera media para el código o el creador; el código no es muy versátil. Puedo conectar 10 servos directamente a mi microcontrolador y bang el comando a ellos de la manera más directa posible. Esta manera de hacer las cosas es buena porque es sencillo. Es fácil de entender lo que está pasando en y fácil de usar.
Arduino está basado en C++ que significa objetos son inherentes a la lengua. Objetos hacen un programa mejor utilizar. En lugar de colocar el servo y llama a que cada vez que quiero mover una articulación crear objetos que hacen mucho más.
La clase que controla servos es rServo para servo robot. Esto declara que el servo. También se encarga de mover el servo en posiciones diferentes. La clase también tiene limitaciones en cuánto se dejó el servo mueve. Por ejemplo, el tobillo tiene un rango de -15 a 25. Se trata de un límite físico a la gama del servo y es también software restringido para evitar daños en el robot. La clase también encarga de una compensación para los servos. El cuerno no es siempre a 90 grados donde queremos estar. Este ajuste en el software permite que el robot sea perfectamente recto a pesar de que en el centro del servo no sería. Una última característica de la clase que no utilicé nunca era el momento. Cada servo tiene un min y tiempo de pulso máximo que se puede cambiar. Esto sería utilizado solamente si hubo un servo del oddball que necesitan un valor diferente de lo normal.
Control de cada servo en su propia sería un dolor. Por esta razón existe la clase de pierna. Crea objetos rServo 5 y es el encargado de mover esa pierna y asignación de compensaciones. Esto permite una matriz de 5 al servo y que se traduce en movimiento de los 5 servos. Cada pata sabe también si es la pierna derecha o izquierda. Esto es importante porque los valores de algunos servos necesitan espejarse. El código para que las piernas se ve algo como esto:
Pierna derecha = pierna (rLegAddress, true);
Right.leg({0,10,15,0,0});