Paso 5: Motores y controladores (prueba con Python básico)
Tipos y fuentes de motores paso a paso
Si no estás familiarizado con motores paso a paso, os recomiendo la lectura de algunas presentaciones en línea, este instructable y este artículo de Adafruit es realmente agradable y claro.
Había salvado mi motores de impresoras viejas y un eléctrico typerwriter, escáneres suelen ser también una buena fuente, las impresoras láser no son.
Paso a paso bipolar
Si el motor tiene 4 cables es un motor bipolar y podemos usarlo. Mida la resistencia entre cada uno de los cuatro cables, usted encontrará dos pares, son las bobinas.
Unipolar
Si el motor tiene 6 cables que representan los extremos y centro de las dos bobinas. Medida entre todas las combinaciones de los seis cables, habrá 4 pares de baja resistencia (bobinas de media) y dos de dos veces eso (bobinas completo). Queremos usar las dos bobinas completas en serie, así que busque los dos pares de resistencia más grande.
Conexiones de
Como se indicó en el paso anterior, si se alimenta externamente las juntas motor, asegúrese de quitar jumper J4 de la tarjeta de conductor del I2C.
Conectar las bobinas a la Junta de motores, puede utilizar 4 pines o los terminales de dos tornillos, están conectados directamente entre sí.
Si está usando mi código, una bobina atraviesa M1 + M1 y el otro va a través de M2 + M2-. Si está utilizando controladores de Grove luego que, por alguna extraña razón, una bobina va a M1 + M2 + y el otro va a M2 / M2-.
Límites de voltaje corriente
Leyendo la Wiki de Grove o la hoja de datos del L298N que he adjuntado nos dice que el chip de puente h tiene un límite de corriente de 2A por canal y una gama de voltaje de entrada entre 6-15V
La resistencia de las bobinas determina cuanta corriente puede fluir a través de los motores.
Corriente = voltaje/resistencia
Inicialmente traté de algunos motores de 60 ohmios a 12V (0.2A), pero que no estaban produciendo suficiente esfuerzo de torsión. Luego logré encontrar algunos motores 4,8 ohmios, 12V habría dibujado 2.5A que era demasiado continuo actual, por lo que reduje la alimentación en los motores a 5V dando por resultado una 1A cómodo dibujar con par decente.
También necesita asegurarse de que la fuente de alimentación que utiliza para alimentar las placas motor puede manejar pico de ambos motor corriente simultáneamente.
Refrigeración
El chip L298N puede calentarse bastante al operar cerca de sus límites actuales, por lo que colocar un disipador de calor es una buena idea. Tenía algunos fans rescatados de electrónica antigua, así que solía ellos keeep el cool controladores de motor.
Motores PAP con resistencias muy bajas (como el < motores de 10 ohmios) son conducidos con limitación de corriente de circuitos (llamados "choppers"), por lo que se calientan bastante en este modo de corriente continua, pero mina sobrevivió, su kilometraje puede variar.
Configurar direcciones de los conductores del motor
Establecer las direcciones en los controladores de motor (debe ser diferentes). Puse mi según las descripciones en el wiki y eligió '0x0a' y '0x0f'
Más notas
- Usted debe ser capaz de ejecutar el comando "i2cdetect -y - r 6" desde la terminal de Edison para ver los dispositivos I2C conectados, pero encontré algunos bugs cuando intenté que puede o no puede fijarse el momento en que leas esto.
- Asegúrese de que tiene las últimas bibliotecas MRAA instaladas (he seguido esta guía)
- Sólo 100khz es compatible I2C es compatible con los controladores de Motor de I2C Grove (esto no es un problema para nuestro proyecto, podría ser un problema al intentar usar junto con otros módulos.
- El módulo no proporciona cualquier telemetría o estado - sólo acepta comandos I2C para sus diversas operaciones. Por esta razón no utilizo las funciones de paso a paso libre, ya no habría saber cuándo terminaron los pasos.
Documentos de la biblioteca de Software útil
Referencia de la clase GroveMD
Página de Intel en Grove I2C Motor Driver (código de ejemplos, pero no para steppers)
Software de prueba: Fragmentos de Python
Es la forma más fácil de probar estos fragmentos de código:
- Inicie la sesión con SSH mediante masilla
- Introduzca el comando "test.py vi" para crear un nuevo archivo llamado "test.py" y abrirlo para su edición con el texteditor "vi"
- Pulse "i" para entrar en modo de inserción
- seleccionar y copiar el fragmento de código en su PC
- Haga clic derecho en la ventana SSH para pegar el código
- Pulse escape
- tipo ": wq" para escribir y dejar de fumar (o ": q!" para salir sin guardar los cambios)
- Ejecute el script con el comando "python test.py"
Manual paso a paso
Este fragmento de código es un poco un truco feo, pero funciona para probar motores paso a paso de la Edison vía Python. Simplemente camina a través de cuatro pasos, cambiar manualmente la polaridad de las bobinas. No está utilizando las funciones de paso libre. Se trata de cómo terminé haciendo al final, pero aumentó el número de pasos para ocho (medio paso).
Gratis ejecuta paso a paso
Este es un ejemplo de cómo utilizar las funciones de paso a paso funcionamiento libre. Hay algunas cosas para
- Las bobinas no están conectadas "en un M2 sobre M1" como uno podría esperar.
- La velocidad es "al revés", es más como una demora entre los pasos (y 0 no es todavía muy rápido)
- El paso a paso se ejecuta en segundo plano como se había prometido, pero cuando el python script paradas, algo interrumpe (por lo tanto mi "presione cualquier tecla para continuar...").