SpanglefishDMS Consulting | sitemap | log in

Java I2C Robotic Arm


The Project

To add I2C devices so that a robotic arm can be controlled remotely.

Initial Stages

Basic control was easy using one of the many motor controllers. After trying several, the L298N was chosen for its versatility.
The L298N will drive stepper motors and standard motors. It can drive motors up to 35 volts and has a motor speed option using Pulse Width Modulation. By modifying the circuit board slightly, DC Current Monitoring can be installed.

The L298Ns are connected to the I2C bus using an MCP23017.

The first problem was trying to stop the motor hitting the maximum movement. Micro switches were considered but were difficult to fit. Measuring the motor current and watching for the stall current was tried.
A INA219B board was used for this.
This was unsuccessful because of the widely varing loads on most of the motors which had to raise and lower the arm. The only place where the current sensing worked was the jaws.

The next requirement was a range finder to sense objects. The SRF02 Ultra sonic range finder was the first choise. It supported I2C and had a small footprint.
Tests quickly reveiled that it was not very sensative and therefore no suitable.





The HC-SR04 was the next choice. This sensor has much better
rangeing but it does not support I2C.
The solution involves an Arduino !

This is how far the project has got.

What Next

The implementation of the HC-SR04 sensor is looking possible.
It is likely to involve two range finders
Sensing the arm movement is very important.
The next attempt will use variable resistors and an I2C A2D device.
The motors also need speed control that will use PWM of the LN298N.


Ships and Harbours Image Library