A fitting IK algorithm allows you to tell the robot arm where (in 3D space) you want its tip to point and the robot arm figures out all the details of how much to rotate which joint by itself. I also decided to implement the Inverse Kinematics calculations by myself. Github: ESP32-MicroRobotArm Solving The IK Equations
I called it “SineStepper” and it is on Github, along with all the other code needed to run this robot arm: Whilst the clock rate of most Arduinos is set to a rather modest 16 Mhz, the ESP32 boasts a 160MHz dual-core microprocessor.Īfter this switch, I was able to finish my smooth stepper-pulse-generator library without any further problems. So I did what seemed to be the most cost-effective solution: Switch to a faster microcontroller (the ESP32). I wasn’t getting the performance I needed in order to move the steppers both smoothly and swiftly. And the double, being the more accurate float, doesn’t make matters any better. floating point operations are notorious for requiring many cycles on most Microprocessors. The function uses a mathematical series to approximate a fairly accurate value of sin(x) for any input x that gets thrown at it. But the sin() function isn’t exactly a computational lightweight. So I implemented it, obviously, by using the sin() function.
I wanted the velocity curve to be sine shaped. So I was programming a library which was supposed to produce stepper pulses in such a way that the motors started and stopped very smoothly. One goal was to make the movements as smooth as possible. But Why No Arduino?Īnother interesting thing is this: I initially tried to get this robot arm to move with an Arduino. The stepper turns from a 5-wire stepper into a 4-wire stepper. That’s because after the above-mentioned procedure to turn the stepper from unipolar to bipolar there is no more use in this wire. Note how the red wire of the stepper motors isn’t connected to anything. Basically, you just cut a connection.īut here’s a more informative blog post on how this is done.Ībove you can see the complete schematics of this project. They need to be made into bipolar steppers for the A4988 to work. But it is only after you apply a small modification to the stepper motors inner wirings that you are able to do so. So what are some of the more interesting aspects of this robot arm? The first thing that comes to mind is the way the stepper motors are driven. Arduino Explorer on Adding Computer Vision to the Arduino Delta Robot.on The Octo-Bouncer: Advanced Bouncing Patterns garden gates on Solving the Differential Equation of a Falling Raindrop.on Solving the Differential Equation of a Falling Raindrop.Craig on The Octo-Bouncer: Advanced Bouncing Patterns.Solving the Differential Equation of a Falling Raindrop.The Octo-Bouncer: Advanced Bouncing Patterns.