Moving the arm with some PID DC motor control

A project log for RobotResto: Restoring a 4 Axis Arm

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

reiner-schmidtreiner schmidt 07/12/2016 at 18:170 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.

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