Handgesture Controlled Robot With Robotic Arm

by mysqo in Circuits > Robots

101481 Views, 606 Favorites, 0 Comments

Handgesture Controlled Robot With Robotic Arm

SAM_0275.JPG
Hand gesture controlled robot with robotic arm

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!

Parts Needed

Base Model

20130904_110328.jpg
RobotBase.png
20130904_150132.jpg
20140118_182743.jpg

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.

Downloads

Flex Sensors

flex sensor 1 pice.png
20140118_182348.jpg
20140114_212943.jpg
20140118_185318.jpg
20140118_200404.jpg
20140118_221546.jpg

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.

Setting Up the Xbee

20131016_213947.jpg
xbee_test.jpg

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

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

Robot_diagram_updated.png
SAM_0242.JPG
SAM_0243.JPG
SAM_0255.JPG
SAM_0244.JPG
SAM_0254.JPG
SAM_0268.JPG

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

2nd Arduino: Connecting Flex Sensors, Button, Led

coordinator.png
SAM_0272.JPG

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

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.

Demo

Hand gesture controlled robot with robot arm

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