Paso 9: Control de movimiento: 100 vatios DC servo controlador de motor $120 o $30 + algunos codificación.
He elegido para controlar el iris de la burbuja CNC con un servomotor de DC. Servomotores DC son mucho mayor rendimiento que los motores paso a paso de consumo de energía equivalente: más rápido, más fuerte, más preciso y sobre todo, capaces de mantener exactitud a pesar de las obstrucciones. Un servomotor de DC es un motor de corriente continua que tiene alguna forma de detectar su posición, particularmente un codificador óptico de cuadratura, unido al eje. Una compara de controlador donde está donde debe estar y ajusta el par del motor según sea necesario para llevarla a la posición deseada, usando un algoritmo llamado "Proporcional, Integral, derivado de" control o "control P.I.D.". Son más complejas de configurar y controlar tanto porque hay más conexiones de alambre a - típicamente cuatro cables adicionales (alimentación, tierra, canal A, canal B, conecte el codificador) y porque un microprocesador dedicado necesita constantemente monitorea y regula el par del motor, dependiendo de él se coloque. Me lo han hecho anteriormente y publicará bajo un techo un procedimiento detallado para construir su propio para cerca de $30. ($20 por un arduino o teensy 3.1 microcontrolador ejecuta un script de arduinoy $10 para un módulo de amplificador LMD18200 puente H y utilizando el código abierto biblioteca de codificador y PID biblioteca.) También es un gran producto comercial que simplifica con servomotores DC enormemente, lo que le permite hablar a la unidad como haría para un controlador de motor paso a paso: con pulsos de paso y dirección. He elegido usar este controlador, la unidad GeckoDrive G320X. Después de una instalación inicial de una sola vez, la unidad es tan fácil de usar como cualquier controlador de motor paso a paso.
Aquí hay un video de ella abriendo el diafragma de la burbuja a velocidad ridícula .
Suave aceleración y velocidad máxima de paso con la biblioteca de AccelStepper
La biblioteca de AccelStepper es una biblioteca gratuita y de código abierto para arduino compatible con microcontroladores para el rápido cálculo y sincronización de las secuencias de paso alcanzar perfiles de suave aceleración y velocidad trapezoidal. Es útil para motores paso a paso y servomotores que se manda en pasos discretos, como con el Geckodrive usado aquí. Me pareció que en un Arduino Uno corriendo a 16MHz, la tasa de paso máximo aproximadamente 1.2 Khz. Esto es insuficiente velocidad de un servomotor que, efectivamente, como 2048 pasos por revolución (esto es determinado por la resolución del codificador óptico conectado al motor servo). Así, con el Arduino uno, la velocidad máxima en este caso sería cerca de 30 rpm. Para aumentar la velocidad de los pasos con el código de accelstepper, he actualizado a 3.1 Teensy microcontrolador, que se ejecuta en 72MHz y puede ser overclockeado a 96MHz. Registra la biblioteca de AccelStepper producir secuencias de paso suavemente tiempo hasta más de 10 Khz o velocidad de aproximadamente 300 rpm que es más que suficiente para esta aplicación (ver vídeos).