Paso 13: Código de Python para manejar los motores PAP
¿Por qué hacer esto en Python?
Es posible enviar el Grove I2C Motor Driver V1.3 un comando para ejecutar un paso a paso para un número especificado de pasos sin tener que especificar cada paso individualmente, pero esto no nos ayuda, tenemos que saber exactamente cuándo está ocurriendo cada paso y cuando una serie de pasos son completos, para que podemos activar el LED de encendido y apagado en el momento adecuado.
Si desea que las características de libre paso a paso de esta placa y es motor driver es sólo cargado con V1.2 como mina, entonces usted tendrá que actualizar el firmware como lo hice anteriormente en este Instructable.
También, apenas como Python.
Pero Python no es en tiempo real, usted no puede conducir motores con él!
Eso es cierto, y que no es cierto. Es lo suficientemente cerca para en tiempo real para este propósito. Si los tiempos de paso son ligeramente incompatibles realmente no es gran cosa. Sin embargo cuido para ejecutar los procesos en subprocesos, por lo que los motores pueden funcionar simultáneamente, y otros procesos (por ejemplo, encendiendo y apagando el LED) se manejan en hilos que no perturban el tiempo paso a paso y por lo tanto el impulso de la Asamblea de LED (que pueda causar oscilaciones).
La clase paso a paso
En Python que he creado una clase paso a paso que almacena algunas variables sobre el estado actual de los motores
- pasos: este array contiene los 8 pares de polaridad individual que conforman una rotación completa para un motor de escalonamiento de medio
- nextStep: este es el índice del próximo paso en la matriz que se utilizará
- Dirección: almacenamos la dirección que se alarga la cadena, básicamente determina si estamos caminando hacia adelante o hacia atrás a través de la matriz.
Función de inicialización del motor paso a paso instala los controladores de GroveMD. Asegúrese de utilizar la correcta dirección I2C como configurado en los conmutadores dip de la Junta.
Tomar nota de "setMotorSpeeds", que establece el PWM del controlador del motor. Para steppers el PWM siempre deben ser 255 cuando se activa o 0 cuando está deshabilitada, no afecta la velocidad, la demora entre los pasos establece.
La función step() toma un argumento que es verdadero o falso. Si el argumento es True, el motor de pasos en la dirección que se alarga la cadena.