Я довольно новичок в 3D-печати, так как мне нужно управлять шаговым двигателем для осей X, Y и Z. У меня есть два шаговых двигателя и микрошаговый драйвер (CW-5045) и, конечно, Raspberry pi 3 с платой расширения.
Я хочу, чтобы ось Z переместилась для 3D-принтера, нажав на нужныйкнопка. Кнопки предназначены для данной позиции для перемещения оси Z вверх и вниз. Я думал, что у меня 2-3 кнопки, которые должны перемещать 25 микрослоев, 50 микрослоев и 100 микрослоев. (Я не уверен, является ли это микрослоем или микрометрами).
Код, упомянутый ниже, был тем, который я пробовал, но шаговый двигатель издает какой-то шум, но я не видел никакого движения вось.
Я пробовал с этим справочником: настройка двигателя биполярного привода leadshine DM860 на Raspberry Pi
Я знаю, что могу использовать внешние контроллеры принтера, такие как Octoprint и другие, ноПроект находится на начальной стадии, так как у меня нет всего оборудования. Поэтому я хотел начать с шагового двигателя.
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
CW = 1 # Clockwise Rotation
CCW = 0 # Counterclockwise Rotation
SPR = 200 # Steps per Revolution (360 / 1.8)
GPIO.setup(21,GPIO.OUT)
GPIO.setup(20,GPIO.OUT)
GPIO.output(21,False)
microStep = 0
step_count = SPR
delay = .0208
GPIO.output(20, GPIO.HIGH)
while True:
for x in range(step_count):
GPIO.output(20, GPIO.HIGH)
sleep(delay)
GPIO.output(20, GPIO.LOW)
sleep(delay)
sleep(.5)
GPIO.output(20, GPIO.LOW)
for x in range(step_count):
GPIO.output(20, GPIO.HIGH)
sleep(delay)
GPIO.output(20, GPIO.LOW)
sleep(delay)
microStep = microStep + 1
print(microStep)
GPIO.cleanup()
Я думаю, что мне не хватает контроля скорости двигателя. Я хотел бы точно управлять двигателем с шагом в несколько шагов, задавая желаемое позиционное значение, а не только двигатель, работающий сверху вниз.