Introducción
Como hemos mencionado en el previous post >En el mundo de la automatización industrial, los motores paso a paso se utilizan habitualmente para hacer funcionar cintas transportadoras o impresoras 3D, entre otros.
¡En este post, vamos a mostrarte cómo ejecutar código Python para hacer funcionar tu motor paso a paso con la automatización de Raspberry Pi!
Requisitos
- Raspberry Pi PLC Controller
- Fuente de Alimentación
- Microstep Driver
- Motor paso a paso
- O bien SSH oconexión HDMI al PLC basado en Raspberry Pi.
Librería Python RPI.GPIO
Una vez que el driver Microstep y el motor paso a paso están bien conectados al PLC de la Raspberry Pi, vamos a proceder a hacer funcionar el motor paso a paso.
Así que, en primer lugar, vamos a configurar los pines ya que el motor paso a paso requiere una forma de transmitir una señal PWM al PLC de la Raspberry Pi industrial.
import RPi.GPIO as GPIO
from time import sleep
# Pin 10 from Raspberry Pi: Uart RX
DIR = 10
# Pin 8 from Raspberry Pi: Uart TX
STEP = 8
# 0 or 1 to set the sense of rotation: clockwise or counterclockwise.
CW = 1
CCW = 0
# Setup pin layout on PI
GPIO.setmode(GPIO.BOARD)
# Setup the GPIO mode of each pin
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
Señal PWM
Para configurar mejor el motor paso a paso, debes saber cuál es la potencia de tu motor, ya que si tu configuración está en 1 micropaso, entonces se necesitarán 200 pasos para hacer una revolución completa.
Por lo tanto, en el código Python de abajo, haremos lo siguiente:
1. Poner el primer sentido de giro.
2. Establece un tiempo para dormir para dejar un tiempo para cambiar la dirección.
3. Ejecuta los pasos que necesite tu microcontrolador. Y pon el pin TX en LOW. Ponlo a reposar con la velocidad para que el motor funcione. Pon el pin TX a LOW. Ponlo a reposar con la velocidad para que el motor funcione.
4. Establece un tiempo para dormir para dejar un tiempo para cambiar la dirección de nuevo.
5. Por último, repite el paso 3 con el sentido contrario a las agujas del reloj.
GPIO.output(DIR, CW)
try:
while True:
sleep(1.0)
GPIO.output(DIR,CW)
for x in range(200):
GPIO.output(STEP,GPIO.HIGH)
sleep(.005)
GPIO.output(STEP,GPIO.LOW)
sleep(.005)
sleep(1.0)
GPIO.output(DIR,CCW)
for x in range(200):
GPIO.output(STEP,GPIO.HIGH)
sleep(.005)
GPIO.output(STEP,GPIO.LOW)
sleep(.005)
except KeyboardInterrupt:
print("cleanup")
GPIO.cleanup(
Código completo
Ahora, copia todo el código de abajo, pégalo en un archivo, ejecútalo en tu PLC industrial Raspberry Pi y ¡haz que tu motor paso a paso funcione!
import RPi.GPIO as GPIO
from time import sleep
DIR = 10
STEP = 8
CW = 1
CCW = 0
GPIO.setmode(GPIO.BOARD)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.output(DIR, CW)
try:
while True:
sleep(1.0)
GPIO.output(DIR,CW)
for x in range(200):
GPIO.output(STEP,GPIO.HIGH)
sleep(.005)
GPIO.output(STEP,GPIO.LOW)
sleep(.005)
sleep(1.0)
GPIO.output(DIR,CCW)
for x in range(200):
GPIO.output(STEP,GPIO.HIGH)
sleep(.005)
GPIO.output(STEP,GPIO.LOW)
sleep(.005)
except KeyboardInterrupt:
print("cleanup")
GPIO.cleanup()
Ahora, ¿te gustaría hacer un Dashboard Node-RED para tu PLC de código abierto Raspberry Pi para arrancar y parar mejor el motor paso a paso?
Cómo hacer funcionar un motor paso a paso con Raspberry PLC