Skip to content

ansynchonious driver of stepper motor via step/dir driver

License

Notifications You must be signed in to change notification settings

pidou46/ustepper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ustepper

micropython asynchronious driver for stepper motor via step/dir driver

This code is splitted in to steps:

1/ schedule a mouvement given a steps quantity, speed set point in Hz (steps/s) and acceleration steps/second square

2/ run the scheduled mouvement

Scheduling:

The aim of this step is to compute a time table of the mouvement, this time table will be used later by Running function to actualy make the motor mouvement.

Here it is a graphic plot of a very short mouvement time table:

Mouvemet profile 01

The acceleration parameter is not a real angular acceleration expressed in rad/s^2. It's aquind of progressive change in speed rate. It's based on change in microstepping setting at constant time intervals

Running:

The step pin of the driver is feeded at constant speed using the mcu's hardware PWM. A Timer is used to stop the movement at the theorical position based on time spent. The experiments I have made prouve that delay of the Timer is quite small and consitant at 1_ms, so it can be compensated.

Optionaly, the microsteping capacity of the driver is used to implement:

  • speed ramp up (acceleration)
  • smooth mouvement
  • higher precision

Testing: testing is made with:

  • esp32 and esp8266, should work also with stm32 since (micropython/micropython#5254)
  • micropython firmware (official)
  • drv8825 driver (should also work with other step/dir drivers like A4988)
  • 2 x phases (four wires) stepper motor

About

ansynchonious driver of stepper motor via step/dir driver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages