|
|
@@ -5,6 +5,26 @@ from robot_control.src.utils.config import ConfigParser
|
|
|
import asyncio
|
|
|
import time
|
|
|
import sys
|
|
|
+import pigpio
|
|
|
+
|
|
|
+# Initialize pigpio directly for stepper controlpython -m playgrounds.mag_to_feeder_moving_sequence
|
|
|
+pi = pigpio.pi()
|
|
|
+if not pi.connected:
|
|
|
+ print("Failed to connect to pigpio daemon")
|
|
|
+ sys.exit(1)
|
|
|
+
|
|
|
+# Stepper pins (BCM)
|
|
|
+DIR_PIN = 11
|
|
|
+STEP_PIN = 9
|
|
|
+EN_PIN = 10
|
|
|
+
|
|
|
+# Set up pins
|
|
|
+pi.set_mode(DIR_PIN, pigpio.OUTPUT)
|
|
|
+pi.set_mode(STEP_PIN, pigpio.OUTPUT)
|
|
|
+pi.set_mode(EN_PIN, pigpio.OUTPUT)
|
|
|
+
|
|
|
+# Enable motor driver (LOW = enabled)
|
|
|
+pi.write(EN_PIN, 0)
|
|
|
|
|
|
# Assign two servo pins (update as needed)
|
|
|
SERVO_PINS = {1: 6, 2: 13} # Example: GPIO6 and GPIO13
|
|
|
@@ -35,14 +55,14 @@ def move_servo(servo_number, angle, speed):
|
|
|
print(f"Error moving servo: {e}")
|
|
|
return False
|
|
|
|
|
|
-def move_stepper(pos_mm, rot_deg, speed=7): # Increased default from 100 to 300 mm/min
|
|
|
+def move_stepper(pos_mm, rot_deg, speed): # Increased default from 100 to 300 mm/min
|
|
|
"""Move stepper motor using mag distributor"""
|
|
|
print(f"M {pos_mm} {rot_deg} {speed if speed else ''} - Moving stepper to position {pos_mm}mm, rotation {rot_deg}° at {speed} mm/min")
|
|
|
try:
|
|
|
if speed is not None:
|
|
|
# Convert speed to step delay if needed
|
|
|
step_delay = mag_dist._speed_to_step_delay(speed)
|
|
|
- mag_dist.move_mag_distributor_at_pos(pos_mm, rot_deg, step_delay)
|
|
|
+ mag_dist.move_mag_distributor_at_pos(pos_mm, rot_deg, 1000, step_delay)
|
|
|
else:
|
|
|
mag_dist.move_mag_distributor_at_pos(pos_mm, rot_deg)
|
|
|
print("Stepper move complete.")
|
|
|
@@ -71,10 +91,10 @@ def execute_sequence():
|
|
|
commands = [
|
|
|
("S", 1, 60, 1000), # S 1 40 1000
|
|
|
("H",), # Homing sequence
|
|
|
- ("M", 298, 0, 10), # M -223 0 200 (increased speed from 100 to 200)
|
|
|
- ("S", 1, 5, 250), # S 1 0 250
|
|
|
+ ("M", 298, 60, 700), # M -223 0 200 (increased speed from 100 to 200)
|
|
|
+ ("S", 1, 5, 200), # S 1 0 250
|
|
|
("S", 1, 60, 250), # S 1 40 250
|
|
|
- ("M", 46, 0, 10), # M -46 0 150 (increased speed from 100 to 150)
|
|
|
+ ("M", 46, 60, 700), # M -46 0 150 (increased speed from 100 to 150)
|
|
|
("S", 2, 15, 500), # S 2 35 250
|
|
|
("S", 1, 153, 200), # S 1 153 200
|
|
|
("S", 2, 88, 500), # S 2 90 1000
|
|
|
@@ -145,6 +165,9 @@ def main():
|
|
|
finally:
|
|
|
# Cleanup
|
|
|
try:
|
|
|
+ # Disable motor driver
|
|
|
+ pi.write(EN_PIN, 1)
|
|
|
+ pi.stop()
|
|
|
gpio.cleanup()
|
|
|
print("GPIO cleanup completed.")
|
|
|
except:
|