mirror of
https://github.com/caperren/ossm_overkill_edition.git
synced 2025-11-08 21:11:13 +00:00
81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
import machine
|
|
from machine import Pin
|
|
from time import sleep
|
|
from neopixel import NeoPixel
|
|
from motion_controller.accel_stepper import AccelStepper, DRIVER
|
|
from utime import ticks_us, sleep_us
|
|
|
|
"""CL57T(V4.0) Closed-Loop Stepper Driver
|
|
10
|
|
Figure 10: Sequence chart of control signals
|
|
Remark:
|
|
a) t1: ENA must be ahead of DIR by at least 200ms. Usually, ENA+ and ENA- are NC (not connected). See
|
|
“Connector P1 Configurations” for more information.
|
|
b) t2: DIR must be ahead of PUL effective edge by 2us to ensure correct direction;
|
|
c) t3: Pulse width not less than 1us;
|
|
d) t4: Low level width not less than 1us;
|
|
e) Duty cycle of PUL signal is recommended 50%"""
|
|
|
|
def machine_main():
|
|
# machine.freq() # get the current frequency of the CPU
|
|
# machine.freq(240000000) # set the CPU frequency to 240 MHz
|
|
|
|
thrust_step_pin = Pin("D10", Pin.OUT)
|
|
thrust_dir_pin = Pin("D9", Pin.OUT)
|
|
thrust_step_pin.value(0)
|
|
thrust_dir_pin.value(0)
|
|
|
|
def step():
|
|
thrust_step_pin.value(1)
|
|
sleep_us(1)
|
|
thrust_step_pin.value(0)
|
|
|
|
def fwd():
|
|
thrust_dir_pin.value(1)
|
|
sleep_us(2)
|
|
step()
|
|
|
|
def rev():
|
|
thrust_dir_pin.value(0)
|
|
sleep_us(2)
|
|
step()
|
|
|
|
thrust_axis = AccelStepper(fwd, rev)
|
|
thrust_axis_endstop_estop_pin = Pin("D21", Pin.IN, Pin.PULL_UP)
|
|
|
|
pin = Pin("D6", Pin.OUT) # Pin number for v1 of the above DevKitC, use pin 38 for v1.1
|
|
np = NeoPixel(pin, 3) # "1" = one RGB led on the "led bus"
|
|
for pixel in range(3):
|
|
np[pixel] = (0, 255, 0)
|
|
np.write()
|
|
|
|
thrust_steps_per_revolution = 3200
|
|
thrust_max_speed = 20 * thrust_steps_per_revolution
|
|
|
|
thrust_homing_speed = 8 * thrust_steps_per_revolution
|
|
thrust_max_acceleration = 5 * thrust_steps_per_revolution
|
|
|
|
thrust_axis.set_max_speed(thrust_max_speed)
|
|
thrust_axis.set_acceleration(thrust_max_acceleration)
|
|
thrust_axis.set_speed(thrust_homing_speed)
|
|
|
|
thrust_axis.move(-100*thrust_steps_per_revolution)
|
|
|
|
print("Homing")
|
|
while thrust_axis_endstop_estop_pin.value():
|
|
thrust_axis.run()
|
|
print(f"{thrust_axis.current_position()}:{thrust_axis.target_position()}")
|
|
print("Homed")
|
|
thrust_axis.set_current_position(0)
|
|
|
|
thrust_axis.set_max_speed(thrust_max_speed)
|
|
thrust_axis.run_to_new_position(200)
|
|
|
|
for i in range(3):
|
|
thrust_axis.run_to_new_position(5000)
|
|
thrust_axis.run_to_new_position(200)
|
|
|
|
|
|
|
|
machine_main()
|