Paso 9: Electrónica y Control
Utilizamos el Pololu Jrk 21v3 USB controlador de Motor con retroalimentación (JRK).-estos controladores funcionan como la electrónica de un servo de hobby, pero tienen mucho más control - usted puede configurar los parámetros PID, dirección del motor, rango etc. a través de un programa de Windows y el conector USB, y tienen varios métodos de entrada de control (señales de R/C, serie) y la retroalimentación (utiliza la tensión lineal - potenciómetro). Para el arenero original, estamos ahora usando uno de estos para el eje X y aún usando un servo modificado (de rotación continuo) de alta velocidad, alta potencia para el eje Y (el que necesita menos energía para moverse).
Antes de usar el Arduino, había conectado a los controladores JRK uno a la vez a un PC y usa la utilidad de configuración para configurar los controladores JRK.
Con los controladores JRK, el algoritmo PID puede ajustarse bastante bien así que estamos cerca, pero no tan precisa como algunas configuraciones CNC. Pero, es más de lo necesario para nuestra aplicación. Para los motores de 200 RPM utiliza en el eje X, terminamos con P = 3.5, I = 0 y D = 20. No somos expertos en esto, y tal vez pueden ajustarse mejor. Estamos utilizando el auto escalado de la entrada - el modo de entrenamiento para realizar la gama de movimiento de mapa en el completo 0-4095 gama. Esto hará que el programa de control más fácil de configurar ya que no necesitará cualquier calibración o gama constantes excepto 0 y 4095 - algo que no debemos con servomotores del proyecto anterior.
Programación del controlador y conexión Ethernet
Hay muchas opciones para configurar esto para control de Internet. Para el proyecto anterior, hemos utilizado un Ethernet Siteplayer Telnet módulo serial conectado directamente a un controlador de servo de Lynxmotion SSC-32, y el servo o JRK controlador se conecta a la SSC con el modo de comando de R/C. Se trata de una buena configuración para control de servidor web ya que necesita sólo telnet comandos (fácil en PHP) para controlar como el servidor web almacena y envía los comandos bien. Lynxmotion SSC-32 también permite que los comandos a ejecutar durante un período de tiempo (un par de segundos normalmente), por lo oblicuo mueve a trabajar bien con el tiempo - el eje más corto de la distancia más lentamente.
Para este proyecto, hemos decidido utilizar un Arduino para ejecutar los controladores JRK. Por lo tanto, necesitamos el tiempo de los comandos de posición para hacer el X y Y hachas se mueven juntos uniformemente. También podríamos haber utilizado el Arduino para manejar un Lynxmotion SSC-32, pero ya que la JRKs también comandos serie directamente, parece limpia para tener un menor sistema de tableros.
Para conectar el JRKs al Arduino, solo utilizamos el pin TX en el Arduino conectado a los pines RX en el JRKs - un simple cable de un cable Y desde el JRKs cada uno tiene una dirección de usa en los comandos, sólo pueden ser conectados al pin TX mismo. Los motores están conectados a los conectores A y B, y + 12v y Gnd a estos conectores. Asegúrese de que los controladores Arduino y JRK compartir el cable de tierra para que la TX funciona. Se utilizó una fuente de alimentación PC tuvimos 12v para los motores y 5v para el Arduino.
Aquí es el Arduino Sketch utiliza para probar mover la Mesa XY en posiciones al azar. Muestra cómo hacer el lazo de la sincronización para los controladores JRK, por lo que los movimientos diagonales será recta. Este código utiliza el reloj a la posición en cada bucle de tiempo. Por no usar demoras, estamos permitiendo que para el siguiente paso de agregar el escudo de Ethernet y corriendo Arduino como un servidor web también.
Como antes, podríamos utilizar un Ethernet a dispositivos serie como el Siteplayer Telnet para enviar comandos al Arduino, pero también podemos usar un escudo de Ethernet para ejecutar el Arduino. Las imágenes muestran esa configuración y la web simple interfaz de usuario que utiliza para la prueba. No existen PCs o servidores web - servidor web todo es Arduino + Ethernet Shield! El bosquejo para la configuración de eso está aquí. Usted tendrá que poner en su propia dirección IP, y tuvimos un port forwarding setup en nuestro firewall para que funcione.
Esa web de Arduino UI podría extenderse para permitir que varios comandos, guardarlos en un array en el Arduino y reproducir los movimientos en secuencia. Una vez que esta configuración para TeleToyland, se o hacer eso o seguir utilizando el servidor para búfer de ellos como antes.
Notas de cableado final
Al final, utilizamos un Arduino Mega para obtener el espacio de memoria adicional para amortiguar los comandos - debe existir espacio para aproximadamente 1.700 de los comandos de 4 bytes que utiliza.
Para el proyecto, tuvimos 6 colores (R, Y, G, B, blanco suave y blanco brillante) de tiras de LED - podríamos haber utilizado los multicoloras, pero estos eran fáciles de usar. Para les, utilizamos IRLB8721 N MOSFET de potencia canal de Adafruit. Son muy fácil de usar. Pin 1 va a un pin del Arduino entrada-salida, Pin 2 va para el lado de Gnd del LED y del Pin 3 va a la tierra de suministro de energía. El LED + pin va a los + 12v de alimentación.
Utilizamos dos MOSFETs más - uno para el servo que mueve la pluma hacia arriba y hacia abajo y otro para controlar un relé DPDT que desconecta los motores cuando no se utilizan. Esto lo hacemos en TeleToyland ya que hay períodos sin uso, conservando el servo motores encendidos se acortará su vida. Por lo que el código de Arduino final que utilizamos enciende ellos, hace todos los movimientos, luego apaga les.
Está sobre él. Esperamos que esto te inspira a hacer tus propia web conectado tele-robots!