I know there are several good solutions out there to control stepper motors but this part of Thor to design is mine.
The robot should be able to move like a human would, and not like a machine. This one I design from scratch.
The goal is this:
- Fluid like human like motion.
- Stepper motor accuracy, every micro-step counts!
- As fast as possible, without breaking the robot or kill the payload.
- Safety without compromise.
The initial idea is to have a count down counter for every single stepper-motor that generates the needed pulses. You set the value then go and wait until the counter reaches zero.
But this gives a big issue because the intention is to have a fluid motion of all 7 of the stepper motors. In order to do that, then I would also need to control the counter clock of each of the 7 motors individually. This may be harder to do than expected.
An alternated way is to have one byte control all 7 stepper motors step commands. Every clock pulse means that all motors move at the same pulse. (Note we may need to change that with a shift register to prevent voltage drops)
We will use a lot of memory but every stepper motor steps can be per-programmed in memory so and therefor can move at different speeds. The whole purpose of this is to have the one part that controls the motor as simple as possible.
This also separates the code that determines the positions form the actual motor control. And in addition can slow down the motor speed.
Can this be done? I have no idea, and that is why we are going to try this.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.