NEMA-17 5-Axis Arduino Robot Arm
Вставка
- Опубліковано 19 гру 2021
- I designed this robot arm in SolidWorks and 3D printed the parts. It uses 1/8th microstepped NEMA-17 stepper motors with A4988 stepper drivers for the joint actuators. These are controlled by Arduino microcontrollers.
The spring at the base of the robot is a spring counterweight to reduce static loading on the arm. This leaves more motor torque available for dynamic loading and payload.
The code maps the angle of the controller arm's potentiometers to the corresponding number of steps from the home position for each respective joint. I used the Accelstepper library to handle the motor accelerations.
Since stepper motors do not have absolute encoding, I used limit switches on each joint to define the home position. The arm then runs a homing function on each startup. The limit switches combined with the incremental encoding from counting motor steps is sufficient to know the arm's position.
The first and third joints use a 5 : 1 timing belt gearbox, and the second (shoulder) joint uses a 1 : 45 worm gear reduction since it experiences the highest loads.
The gripper uses a flexure hinge combined with a pushbutton as a force sensor to apply the same gripping force to objects of different size and protect the servo from stalling (see last three photos in video).
This is exactly, what I'm aiming for! very good design.
That is definitely worth a subscription.
Thank you.
that's amazing! I love how you control the arm by mimicking the position with the controller
Thanks!
Very impressive ! Great ingenuity !
Thank you!
worm gears are an interesting for increasing the torque. good idea
Pretty cool would love a video build for this.
i liked the controller thing
Thanks!
Maan, that sound XD
Hello this is a very nice Project. GOOD JOB
Thank you!
super nice. Finding a control software for pc control is my problem on all my robot arms
2:29 grip detector? Nice!
Exactly! Otherwise, the servo is stalled whenever it grips something and risks damaging the servo.
@@ivprojects8143 oh that's a good idea. There are some force sensing mechanisms that allow for handing eggs\fragile objects...i forget the name. But a potentiometer starts turning when force is applied. Cool stuff.
amazing project! Are you considering to make a documentation of this project?
Hi very nice project I printed almost out every part missing some bearing and I can mount
But let me ask the second actuator is just glued?
Awesome work man!! Ive been dabbling in arduino stuff but its pretty new to me still. I see you said that your using A4988 stepper drivers, but what arduino shield/breakout board did you use? Given your screenshots it looks like one of the ones off amazon I'm guessing?
Thanks Andrew! Yes I'm using an Arduino CNC shield V3 from Amazon. Last I checked you can get them for a couple dollars each, and they are incredibly useful for the robotics and CNC side of Arduino (especially if you want to use GRBL).
It's an electrical crane ;)
Nice design! I am really interested how much does the spring increase the amount of the payload. Have you conducted such test?
Thank you! The spring helps quite a lot. If it's properly tuned, a spring counterweight can counteract the entire torque from the weight of the arm. I have not done a side by side test to find the exact payload increase.
Hi. Can you make a video describing how you built that special remote for the robot arm? And can you mention the different parts that will need to be bought for assembling this project (non 3d printed parts)? Thanks.
Good idea, I'll try to make a short video about the controller arm. When I have a chance I'll add a list of components in the video description.
@@ivprojects8143 thank you very much
Wow.. incredible!! But, how did you control the stepper motors very smoothly with potentiometers?? I'm very curious about it. I'm building a robotic arm. And I want to control it with a potentiometer in Arduino. But When I use the potentiometer to control my stepper motor, a shaking happens to the stepper motor. Even I can find the reason... Please help me.. :(
Where can I find the the solidworks files for this project?
This project is really impressive! I saw that the stls are posted and that you were in the process of uploading code somewhere. Have you made any progress on that? I'm working on a similar project and I would love to be able to compare implementations :)
Thanks! I just posted the code files on my GitHub page under the new "Code" folder.
Super,merci ,ou trouver les shema s'il te plaît ?😉
Hello there. That's an amazing project you have done here! I am also working on a robotic arm project. I am looking for a stable and heavy circular base with nema stepper motor. Can you share the design or CAD model of the base of your robotic arm? Thank you!
Thank you! The CAD files for this robot are posted on my Github page.
hello, how many stepper driver did you use in this progect and what model specifically?
Hi, I used A4988 drivers; one for each stepper.
How do u control many steppers at the same time. Like due to Arduino limitations we can control 1 stepper at a time. So how did u get such smooth movement.
I'm using the Accelstepper library to handle the joint accelerations. To control all the motors at once, the main loop in the code sequentially calls the "run" function for each motor. This moves each motor one step, but only if the code requests a movement given the current potentiometer readings. The code is optimized to run through the loop very quickly, which gives the motors a smooth movement.
To make the loop run faster, make sure you move things like analogRead() and digitalRead() to a separate loop that only is called every every once in a while (Using the built in millisecond timer). For instance, I'm calling the function to read the position of the controller arm potentiometers only every 20ms.
If you want to control even more stepper motors at once, or use higher microstepping values (like 1/16), you would likely need to use a microcontroller with more processing power. I believe something like a Teensy microcontroller would work well.
@@ivprojects8143 Great ❤️ thanks
@@ivprojects8143 Would it be potentially quicker to use interrupts in the loop to quickly gather the step/no-step signals then execute them all at once, or gather small groups of steps and execute them in sequence?
BTW: This is fantastic.
@@ErichHaubrich Thank you! Using interrupts might be faster; I don't know. It would be interesting to test that and find out.
Hey! Good job! Where can I find out how it's done?
I have posted .STL files for this on my GitHub page linked in the channel's "About" section.
@@ivprojects8143 thank you friend, I already saw
Really nice project- we’ll done.
Is there a chance to get the stl files and the controller’s code?
Thank you. I don't have the files posted anywhere yet, but I will try to work something out soon.
This would be awesome, I'm waiting
@@ottolatvakoski9201 I have posted the .STL files on my GitHub page linked in my channel's "About" section.
@@ivprojects8143 Thank you so much.
@@ivprojects8143 Hi - thank you for the STL files. Is there an option to ask for the Arduino's code?
helo plys code 😀
I could do this not even that hard