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).

КОМЕНТАРІ • 59

  • @qnaman
    @qnaman 3 дні тому

    This is exactly, what I'm aiming for! very good design.

  • @StephenBoyd21
    @StephenBoyd21 2 роки тому +4

    That is definitely worth a subscription.

  • @juhotuho10
    @juhotuho10 2 роки тому +5

    that's amazing! I love how you control the arm by mimicking the position with the controller

  • @PhG1961
    @PhG1961 2 роки тому +2

    Very impressive ! Great ingenuity !

  • @antonwinter630
    @antonwinter630 2 роки тому +2

    worm gears are an interesting for increasing the torque. good idea

  • @terryphan7451
    @terryphan7451 2 роки тому +4

    Pretty cool would love a video build for this.

  • @rexizs6767
    @rexizs6767 2 роки тому +1

    i liked the controller thing

  • @jsonslim
    @jsonslim 2 роки тому +2

    Maan, that sound XD

  • @andysbastelwerkstatt7299
    @andysbastelwerkstatt7299 2 роки тому +1

    Hello this is a very nice Project. GOOD JOB

  • @stevemarsh4257
    @stevemarsh4257 2 роки тому +1

    super nice. Finding a control software for pc control is my problem on all my robot arms

  • @TheRainHarvester
    @TheRainHarvester 2 роки тому +2

    2:29 grip detector? Nice!

    • @ivprojects8143
      @ivprojects8143  2 роки тому

      Exactly! Otherwise, the servo is stalled whenever it grips something and risks damaging the servo.

    • @TheRainHarvester
      @TheRainHarvester 2 роки тому +1

      @@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.

  • @bryantedu6471
    @bryantedu6471 Рік тому

    amazing project! Are you considering to make a documentation of this project?

  • @Electrical-M
    @Electrical-M Рік тому

    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?

  • @andrewlackey5520
    @andrewlackey5520 2 роки тому +1

    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?

    • @ivprojects8143
      @ivprojects8143  2 роки тому +3

      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).

  • @poco9964
    @poco9964 2 роки тому +1

    It's an electrical crane ;)

  • @piotrsaapa4526
    @piotrsaapa4526 2 роки тому +1

    Nice design! I am really interested how much does the spring increase the amount of the payload. Have you conducted such test?

    • @ivprojects8143
      @ivprojects8143  2 роки тому +2

      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.

  • @omkr0122
    @omkr0122 2 роки тому +1

    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.

    • @ivprojects8143
      @ivprojects8143  2 роки тому +1

      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.

    • @omkr0122
      @omkr0122 2 роки тому

      @@ivprojects8143 thank you very much

  • @seojinjeong5225
    @seojinjeong5225 4 місяці тому

    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.. :(

  • @tattiestbook8417
    @tattiestbook8417 9 місяців тому +1

    Where can I find the the solidworks files for this project?

  • @parkerbradshaw4122
    @parkerbradshaw4122 2 роки тому +1

    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 :)

    • @ivprojects8143
      @ivprojects8143  2 роки тому +4

      Thanks! I just posted the code files on my GitHub page under the new "Code" folder.

    • @liomars8087
      @liomars8087 Рік тому

      Super,merci ,ou trouver les shema s'il te plaît ?😉

  • @fahminrahman3543
    @fahminrahman3543 Рік тому +1

    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!

    • @ivprojects8143
      @ivprojects8143  Рік тому

      Thank you! The CAD files for this robot are posted on my Github page.

  • @jasonjunio388
    @jasonjunio388 5 місяців тому +1

    hello, how many stepper driver did you use in this progect and what model specifically?

    • @ivprojects8143
      @ivprojects8143  5 місяців тому

      Hi, I used A4988 drivers; one for each stepper.

  • @vp.8181
    @vp.8181 2 роки тому +1

    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.

    • @ivprojects8143
      @ivprojects8143  2 роки тому +6

      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.

    • @vp.8181
      @vp.8181 2 роки тому

      @@ivprojects8143 Great ❤️ thanks

    • @ErichHaubrich
      @ErichHaubrich 2 роки тому

      @@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?

    • @ErichHaubrich
      @ErichHaubrich 2 роки тому

      BTW: This is fantastic.

    • @ivprojects8143
      @ivprojects8143  2 роки тому

      @@ErichHaubrich Thank you! Using interrupts might be faster; I don't know. It would be interesting to test that and find out.

  • @AlexFixSpb
    @AlexFixSpb 2 роки тому +1

    Hey! Good job! Where can I find out how it's done?

    • @ivprojects8143
      @ivprojects8143  2 роки тому

      I have posted .STL files for this on my GitHub page linked in the channel's "About" section.

    • @AlexFixSpb
      @AlexFixSpb 2 роки тому +1

      @@ivprojects8143 thank you friend, I already saw

  • @eyalfriedman5972
    @eyalfriedman5972 2 роки тому +2

    Really nice project- we’ll done.
    Is there a chance to get the stl files and the controller’s code?

    • @ivprojects8143
      @ivprojects8143  2 роки тому +3

      Thank you. I don't have the files posted anywhere yet, but I will try to work something out soon.

    • @ottolatvakoski9201
      @ottolatvakoski9201 2 роки тому

      This would be awesome, I'm waiting

    • @ivprojects8143
      @ivprojects8143  2 роки тому +3

      @@ottolatvakoski9201 I have posted the .STL files on my GitHub page linked in my channel's "About" section.

    • @eyalfriedman5972
      @eyalfriedman5972 2 роки тому

      @@ivprojects8143 Thank you so much.

    • @eyalfriedman5972
      @eyalfriedman5972 2 роки тому +1

      @@ivprojects8143 Hi - thank you for the STL files. Is there an option to ask for the Arduino's code?

  • @brunocadilak26
    @brunocadilak26 29 днів тому

    helo plys code 😀

  • @user-mk3ir2pk5o
    @user-mk3ir2pk5o Рік тому

    I could do this not even that hard