neoivan
Usuario (Venezuela)
link: https://www.youtube.com/watch?v=j-kVFsYBi1c Aqui les dejo un video tiene subtitulos en ingles pero se entiende sin leer xD si te gusta compartelo!!!

Hola a todos este post es para explicarles como utilizar un driver de motores utilizando un Raspberry Pi 2 y codigo elaborado en Python. Tengo publicado el codigo en github.com/nepturio por si quieren copiar mis repositorios. Tambien tengo ejemplos para Arduino. A mi me gusta ser directo por lo que no les voy a dilatar la explicación Vamos directo a lo que nos interesa: materiales necesarios: Raspberry Pi 2 Model B (pueden usar las versiones anteriores sin cambian los pines en el codigo) Driver para motores Allegro A4988 Motor de paso bipolar Basicamente el codigo funciona de la siguiente manera. Se configuran los puertos a utilizar como salidas. Solamente necesitamos dos. Un puerto para enviar los pulsos al puerto Step del A4988 y otro para enviar el estado del puerto Dir (para cambiar el sentido de giro del motor) Luego lo que hacemos es enviar pulsos al puerto step y cada pulso representa un paso en el motor. Yo estoy utilizando un motor de 200 pasos como los que se utilizan en las impresoras 3D, por lo que 200 pasos representa 360 grados. Para variar la velocidad cambiamos el tiempo de cada pulso. Mientras mas cortos sean los pulsos mas rapido gira el motor. A continuacion el codigo en Python: (les recomiendo verlo en github para que vean la sangria en el codigo) https://raw.githubusercontent.com/nepturio/raspberry-pi-examples/master/a4988.py print "RPi + A4988" import RPi.GPIO as GPIO ## Import GPIO library import time ## Import 'time' library. Allows us to use 'sleep' GPIO.setwarnings(False) enable = 13 dirPin = 11 stepperPin = 12 GPIO.setmode(GPIO.BOARD) ## Use board pin numbering GPIO.setup(dirPin, GPIO.OUT) GPIO.setup(enable, GPIO.OUT) GPIO.setup(stepperPin, GPIO.OUT) GPIO.output(enable,False) def step(dir,steps): GPIO.output(dirPin,dir) time.sleep(1)## Wait for i in range(0,steps): print "Step " + str(i+1)## Print current loop GPIO.output(stepperPin,True) time.sleep(.004)## Wait GPIO.output(stepperPin,False) time.sleep(.004)## Wait print "Done" for i in range(0,5): step(True,300) time.sleep(1)## Wait step(False,300) time.sleep(1)## Wait GPIO.output(enable,True) GPIO.output(stepperPin,False) time.sleep(1)## Wait Ese codigo deben guardarlo con la extension .py por ejemplo a4988.py luego abren un terminal y escriben: sudo python a4988.py presionan enter y listo el motor girara 300 pasos en sentido horario y luego 300 en sentido antihorario si te gusto este post por favor compartelo y dale me gusta

Hola a todos este post es para explicarles como utilizar un driver de motores utilizando un Raspberry Pi 2 y codigo elaborado en Python. Tengo publicado el codigo en github.com/nepturio por si quieren copiar mis repositorios. Tambien tengo ejemplos para Arduino. A mi me gusta ser directo por lo que no les voy a dilatar la explicación Vamos directo a lo que nos interesa: materiales necesarios: Raspberry Pi 2 Model B (pueden usar las versiones anteriores sin cambian los pines en el codigo) Driver para motores Allegro A4988 Motor de paso bipolar Basicamente el codigo funciona de la siguiente manera. Se configuran los puertos a utilizar como salidas. Solamente necesitamos dos. Un puerto para enviar los pulsos al puerto Step del A4988 y otro para enviar el estado del puerto Dir (para cambiar el sentido de giro del motor) Luego lo que hacemos es enviar pulsos al puerto step y cada pulso representa un paso en el motor. Yo estoy utilizando un motor de 200 pasos como los que se utilizan en las impresoras 3D, por lo que 200 pasos representa 360 grados. Para variar la velocidad cambiamos el tiempo de cada pulso. Mientras mas cortos sean los pulsos mas rapido gira el motor. A continuacion el codigo en Python: (les recomiendo verlo en github para que vean la sangria en el codigo) https://raw.githubusercontent.com/nepturio/raspberry-pi-examples/master/a4988.py print "RPi + A4988" import RPi.GPIO as GPIO ## Import GPIO library import time ## Import 'time' library. Allows us to use 'sleep' GPIO.setwarnings(False) enable = 13 dirPin = 11 stepperPin = 12 GPIO.setmode(GPIO.BOARD) ## Use board pin numbering GPIO.setup(dirPin, GPIO.OUT) GPIO.setup(enable, GPIO.OUT) GPIO.setup(stepperPin, GPIO.OUT) GPIO.output(enable,False) def step(dir,steps): GPIO.output(dirPin,dir) time.sleep(1)## Wait for i in range(0,steps): print "Step " + str(i+1)## Print current loop GPIO.output(stepperPin,True) time.sleep(.004)## Wait GPIO.output(stepperPin,False) time.sleep(.004)## Wait print "Done" for i in range(0,5): step(True,300) time.sleep(1)## Wait step(False,300) time.sleep(1)## Wait GPIO.output(enable,True) GPIO.output(stepperPin,False) time.sleep(1)## Wait Ese codigo deben guardarlo con la extension .py por ejemplo a4988.py luego abren un terminal y escriben: sudo python a4988.py presionan enter y listo el motor girara 300 pasos en sentido horario y luego 300 en sentido antihorario si te gusto este post por favor compartelo y dale me gusta