Introduction: Remote Controlled Smart Robotic Arm

About: I'm an enthusiast of robotics :)

The aim of this project was to build a simple robotic arm that can be remotely controlled. This robotic arm will be attached to my mobile robot. In addition, this design has been equipped with an OLED display that gives information about the current control and a few infrared sensors to detect objects around the manipulator.

Step 1: Electronic Parts and Materials

Since it was my first design of the robotic arm, I wanted to simplify it as much as possible. The mechanical design is very simple, I've just used a piece of plastic bracket, rotating platform, three servos and gripper.

Parts needed in this project:

  1. Arduino DUE x1
  2. TB6612FNG Dual Motor Driver Carrier x1
  3. HC-05 bluetooth module or similar x1
  4. DFROBOT Hexa Base Rotate Kit x1
  5. LF 20MG 20 KG Digital Servo x3
  6. I2C OLED display module (0.96 Inch) x1
  7. Step-Down Voltage Regulator (5V or 6V) x1
  8. Makeblock robot gripper x1
  9. IR Sensor (Sharp GP2Y0A21) x3
  10. Pan/Tilt Kit x1

Materials:

  1. Plastic angle bracket (L-shaped - 200x300x2.5 mm) x1
    • piece with a length of 13 cm x1
    • piece with a length of 10 cm x1
  2. Nuts and bolts
    • M2 10 mm x6
    • M3 40 mm x4
    • M3 10 mm x5
  3. A piece of white furniture board attached to the base of robotic arm (450x300 mm)

Step 2: Assembling the Robotic Arm

Assembling of robotic arm is quite easy. All steps are shown in the photos above. The order of the main operations is as follows:

  1. Screw the servo to the DFROBOT Hexa Base
  2. Attach the bearings (ring under the base)
  3. Screw the Pan/Tilt kit to the base
  4. Screw the plastic bracket (with a length of 13 cm) to the Pan/Tilt arm and then attach the servo to this arm using 40 mm M3 screws
  5. In order to fasten the gripper to the Elbow use aluminum motor bracket (black L-type) and a piece of plastic bracket (L-shaped with a length of 10 cm)
  6. Screw the OLED display to the Hexa Base using M2 screws and then attach Infrared Sensors as described in the next step
  7. Attach the base of robotic arm to the white furniture board

Step 3: Connection of IR Sensors

To get a partial autonomy of action of my robotic arm I've decided to equip it with infrared sensors for detecting objects around the manipulator. For this purpose, I used three analog distance sensors Sharp GP2Y0A21Y with a maximum range of 80 cm. In order to reduce the number of power supply cables all sensors have been wired on a single circuit board. This board has been additionally equipped with two filter capacitors (ceramic 100 nF and electrolytic 470 uF) connected in parallel to the power supply. The side sensors have been attached to the base through small metal furniture brackets. Front sensor has been bolted to the Pan/Tilt chassis using M3 screws and piece of plastic bracket. All IR sensors are arranged symmetrically (at 90 degrees).

Step 4: Connection of Electronic Components

The main controller in this electronic system is Arduino DUE. I've chosen DUE because of its large memory (512 Kb Flash, 96 Kb Sram) and compatibility with 3.3V voltage (bluetooth, OLED display). However, if you have an Arduino Mega 2560 you can use it in this project instead of DUE. For remote control of the robotic arm I used a popular bluetooth module HC-05. To be able to control the gripper I used the DC motor driver TB6612FNG. Digital servos can be powered from an external power supply or LiPo battery through a step-down voltage converter (giving the output voltage of 5 or 6V). Servos are controlled directly from the Arduino DUE (outputs: 3,5,6).

All connections of electronic modules are the following:

  1. DUE -> HC-05
    • Tx1 (18) - Rx
    • Rx1 (19) - Tx
    • GND - GND
    • 3.3V - VCC
  2. DUE -> OLED 128x64
    • Scl (21) - Scl
    • Sda (20) - Sda
    • GND - GND
    • 3.3V - VCC
  3. DUE -> Analog Distance Sensors (GP2Y0A21YK)
    • A0 - Right Sensor
    • A1 - Front Sensor
    • A2 - Left Sensor
  4. DUE -> TB6612FNG Motor Driver
    • 11 - PWMA
    • 12 - AIN1
    • 13 - AIN2
    • 3.3V - VCC (logic voltage)
    • GND - GND
    • 5V (or 6V) from battery - VMOT
  5. DUE -> Digital Servos
    • 3 - Signal Base
    • 5 - Signal Shoulder
    • 6 - Signal Elbow
    • GND - GND
    • 5V (or 6V) from battery - VCC

Step 5: Arduino DUE Code

The full code for this project is available at GitHub. Before compiling and uploading the sample program, make sure that you have chosen DUE as the target platform as shown above (Arduino IDE -> Tools -> Board -> Arduino DUE Programming Port).

Step 6: Android Control App

I've developed an Android app that allows you to control robotic arm via bluetooth. You can download my app for free from Google Play - Smart Robotic Arm. It works with both smartphones and tablets.

As it has already been mentioned this robotic arm can operate in two modes:

  • manual
  • automatic

By default, the manipulator is set to manual mode. In this mode you can control each pivot axle independently by sliders and buttons in Android app. In automatic mode (after tapping "AUTO" button), the robotic arm automatically moves to the position of the detected object and preparing for its grasping.

How to use Smart Robotic Arm App:

  • tap the upper right corner of the screen (3 vertical dots)
  • select the tab "Connect"tap on the "HC-05" tab and after a while you should see the message "Connected to HC-05"
  • after connecting, you can control your Robotic Arm
  • if you don't see your bluetooth device tap "Scan for devices" button
  • on the first use of your bluetooth module please remember to pair it with your smartphone by entering the default code given in bluetooth module specification (e.g. for HC-05 the default code is "1234")

If you would like to see my other projects related to robotics please visit:

Automation Contest 2016

Participated in the
Automation Contest 2016