RobotResto: Restoring a 4 Axis Arm

Using new technology to bring an old 4 axis DC robotic arm back to life

Similar projects worth following
I will be restoring an old 4 axis robot arm. I am essentially going to use whatever I can to make this robot move again. The fun thing about this project is that there are no restrictions on how complicated and wacky I can make the hardware. Prepare for some excessive circuit design!

Robot Electrical

  • Potentiometers (acting as position sensor) 0 - 300 ohms
  • Motor Current 0.2A and 1A stall

  • Moving the arm with some PID DC motor control

    reiner schmidt07/12/2016 at 18:17 0 comments

    Before we start trying to build controllers for this arm we need to make sure that the logic of the design is sound. We are going to do some simple "bread-boarding" to get this arm moving. We wont be using any actual breadboard just a motor driver and an STM32 Nucleo controller (stm32f0).

    The Bammer motor driver was released last week and we decided to use this driver to move the robot. The Bammer drive is designed for high power motors but it can also be used for smaller motors with high efficiency. We followed some basic steps to control this arm from the Bammer board.

    • Connect the Direction, PWM, and Enable pin from the Bammer to a controller (we used an STM32 but really you can use most controllers)
    • Connect appropriate power to the motor driver (12V DC)
    • Connect the Potentiometer to the ADC (A0) pin
    • Write a program to look at the ADC values and move the motor towards the setpoint. This can be done with an if loop or you can use a PID loop for more responsive and smother control.

    From this experiment we learned that there is a bit of backlash in the robot arm system. Some of this error is in the spur gear drives and some is in the fastening of the drive to the arm. It would be very difficult to remove this backlash in hardware so we can hopefully remove it in software. We also learned that the gear drives are quite noisy, nothing we can do about that.

    The above video uses the code featured below. We use a very simple real-time operating system to manage different tasks to control the robot. The program was made with Mbed which is an online IDE. All of the libraries are built in and the below code will run without any background work required (other than wiring of course).

  • Moving some joints, thank goodness they still work

    reiner schmidt06/11/2016 at 00:25 1 comment

    A Friday evening isn't always the best time to throw a little extra working into resorting this old robot but I couldn't wait to see it move so I had to spend a couple hours messing around with it before signing off for the weekend.

    To design a new controller we need to know something about the motors. At the moment all we know is that they are 12V and DC, other than that there is no information. Really all I need to build the controller now is the output of the potentiometers and the current usage of the motors. I suspect that it will be less than an amp each, the motors arnt that big.

    To test the motors I am going to power them manually and run the power through a Fluke meter and record the max current. The max current with a stalled joint was about 500mA, so it looks like the motor driving is a job for a DRV8801 chip!

    Testing the potentiometers shows that they are continuous rotation pots (cool), and have a range of 0 - 300 Ohms. The next step is going to be creating a method of connection for potentiometer/encoders.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates