Introduction: Handgesture Controlled Robot With Robotic Arm

About: Dream like you'll live forever and live like you'll die tomorrow

With this robot, you control everything with your hand, even the robotic arm!

The hand gestures can be programmed differently.

Long range with Xbee communcation!

Step 1: Parts Needed

Step 2: Base Model

I made a simple drawing in SolidWorks and then went to a local ironmongery to get the plate bended.

Structure

On the base plate under the plexiplate is were the two DC motor will be placed. Over that will the 12v battery holder and the H-bridge fit. And on the top level will the Arduino be mounted. In the middle of the plate will the robotic arm be placed.

The drawing model is included.

Step 3: Flex Sensors

Every flex sensor is soldered according to the first schematic, with a 22K Ohm resistor. There is a good tutorial for how to read from this and how it works here: http://bildr.org/2012/11/flex-sensor-arduino/

The first thing to do is to test each of the flexsensors and write down the values when its bent and unbent.

To be sure that the flexsensors dont breake at the end when its bent, I took an old plastic card I had from some random store, and made small rectagular parts of it and placed it at the end of the flexsensors. After the soldering, take some electric tape and wire around each cable to prevent short circut, and after that just put over some shrinking cables to make it nicer.

Step 4: Setting Up the Xbee

Im not going to get into details how to set up the Xbee, but the first thing you need to do is configure the Xbee's and upload the latest firmware. How to do it, here is a tutorial: http://examples.digi.com/get-started/configuring-x...

After the configuration is done, here is a simple communiation tutorial: http://www.interactiondesign.se/wiki/xbee:remote_b...

Step 5: 1st Arduino: Connecting Power-supply,H-bridge,servos,DC-motors and Robot-arm

The power supply on the robot will have a 12v battery pack. This will both drive the Arduino and the two DC motors and the servos, a regulator is needed to bring down the 12 volts from the battery to 5v which is required for the servos. The H-bridge, SN754410NE is soldered according to the circut diagram on a regular PCB board. The switch is soldered and conntected to the battery.

The DC-motors can be mounted by taking some metal piece and bend them around the motors and then attach them to the base plate with some screws(picture).

I know the picture is quite messy so just to clear everything up, the connections goes as follows:

Arduino pins

Digital pin nr.5 -> signal to Servo 1

nr.6 -> signal to Servo 2

nr.7 -> h-bridge pin.2

nr.8 -> h-bridge pin.7

nr.9 -> h-brigde pin.10

nr.10 -> h-bridge pin.15

5V pin from arduino -> h-bridge pin.1, pin.9

IMPORTANT! Make sure to connect all ground from all things togheter so they share the same gorund (Arduino,H-brigde,Servos,Battery and regulator). This can be done by cut out a small PCB board and connect all ground cabels to that board.


SN754410NE pins

Pin 1 and pin 9 -> 5V arduino

Pin 2 -> Digital pin 7 on Arduino

Pin 3 -> DC Motor 1 +

Pin 4,5,12,13 -> Ground

Pin 6 -> DC Motor 1 -

Pin 7 -> Digital pin 8 on Arduino

Pin 8 -> 12 V battery +

Pin 10 -> Digital pin 9 on Arduino

Pin 11 -> DC Motor 2 +

Pin 14 -> DC Motor 2 -

Pin 15 -> Digital pin 10 on Arduino

The datasheet for SN754410NE can be found here: http://www.ti.com/lit/ds/symlink/sn754410.pdf

Servo

Servo 1 signal line -> Digital pin 6 on Arduino

Servo 2 signal line -> Digital pin 7 on Arduino

Battery

Connect positive 12v to both Arduino and to the H-bridge pin nr.9 and to the regulator

Datasheet for the regulator can be found here: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Com...

Step 6: 2nd Arduino: Connecting Flex Sensors, Button, Led

The second Arduino will be mounted on the hand. Simply mounted with some velcrotape, the battery pack is also mounted with velcro tape under the hand.

Everything is hooked up according to my schematic. A button is connected to the arduino to later control if we want to control the robot arm or the motors on the robot. The led will indicate which one we is controlling.

Led on = robot arm mode, Led off = motor mode

Step 7: Code

The coordinator is the one wich will recive all commands from the hand, therefore that code is called "Coordinator".

The router is the one which will send all commands to the coordinator, and therefore that code is namned "Router".

To switch between controlling the motors and the robot arm, the button on the hand is pressed once.

I have tried to comment the main parts in the code.

The commands for driving forward, backward ect. can be programmed differently according to your own choices. Total combinations with four flexsensors is 16, and we only need four. So there is plenty of combinations to choose between.

The commands I used:

Motor commands

Forward: All fingers closed

Backward: Only thumb bent

Left: Thumb and pinky bent

Right: Thumb middle finger and pinky bent.

Robot arm commands

Tilt down: All fingers closed

Tilt up: Only thumb bent

Gripper open: Thumb and pinky bent

Gripper close: Thumb middle finger and pinky bent.

Step 8: Demo

The purpose of pick up a beer was unfortunately not workable. The diameter was too big for the gripper :(

Remote Control Contest

Participated in the
Remote Control Contest