Paso 2: Firmware
Al principio, había previsto en la programación de todos los controles servo usando un arduino y la librería servo estándar, pero luego Tropecé sobre los controladores de servo chip Mini Maestro y decidió utilizar uno de esos. Probablemente lo contrario programar movimientos de cámara lenta servo habría tomado demasiado largo. Con estos controladores puede fijar una velocidad y aceleración, enviar el valor de PWM (1/4 resolución de milisegundos) y a través de protocolo serial y espere la señal de "done". Luego envía el valor siguiente y así sucesivamente.
El robot se está trabajando en un sistema de coordenadas polares, siendo capaz de girar (ángulo) y extender/retraer (radio) el brazo. La pantalla del iPad, por el contrario, es un muy buen ejemplo de un sistema cartesiano (coordenadas x e y). ¿Cómo se llega de uno a otro?
Respuesta: matemáticas! (O geometría, si encuentras que menos intimidante ;-))
Sir Pythagoras era lo suficientemente amable para nos dejan saber cómo calcular las relaciones entre todos los ángulos en un triángulo rectángulo. Y puesto que cada triángulo arbitrario se puede dividir en 2 triángulos, combinados con algunos conocimientos de los senos/cosenos, etc. y las dimensiones del robot, esto nos da la capacidad de:
-En primer lugar transformar coordenadas x e y del iPad en ángulo y radio-valores para el brazo del robot (el ángulo va directamente al base-servo)
-A continuación la traducción del radio del sistema de coordenadas polares en valores de ángulo de los dos servos de brazo.
El hecho de que decidí desde el principio no ir 3D completo, pero sólo 2, 5D, hizo esta parte mucho más fácil, ya que lo he podido evitar cosas como cinemática inversa.
El valor de lo alto la punta del robot se desplaza sobre la superficie del iPad no es controlado y calculado como un ángulo, sino simplemente en un valor de ms (milisegundos) que se agrega a / señal de PWM de retrasos de los servos.