Successfully reported this slideshow.

Robotics - Arduino-Based Four Legged Robot


Published on

Robotics Proposal: Arduino-Based Four-Legged Robot by Elago's Group.

Published in: Technology, Business
  • Be the first to comment

Robotics - Arduino-Based Four Legged Robot

  1. 1. 1 ARDUINO BASED FOUR LEGGED ROBOT I. DESCRIPTION This project is an Arduino four-based legged robot. Its name is FIER. The development of this project was headed by Andrew Wright. FIER is a servo motor-based robot. Normally servo motor-based robots require a specialized controller board designed for the purpose and there are a few around. This robot has a spider-like appearance but only had four legs. They built FIER by using balsa wood as the body structure. Unlike other robots with a metal-structure, this robot was made as light weight as possible. In order to make the robot cheap but working, the developers used the cheapest servos since they have a low torque. In the robot’s functions, it can do basic movements such as standing up in slow and fast motion, walking, waving, and stretching. II. MATERIALS Tools : Sharp knife Solder Iron Drill and 1/8 Bit Hot Glue Gun and Sticks Wood Glue Table Saw (Optional)
  2. 2. 2 5v 1A Power Supply (Optional) Supplies: Item Type Quantity Part No. Servo 12 Servo_TPro-SG90 Balsa Wood Dow (36” x ¾”) 1 Rectangle (36” x 6”x ½”) 1 Wood Dow (12” x 1/8”) 1 Arduino Uno 1 PWM Driver 12+ PWM 1 TLC5940 Resistors 4.7K Ohm, Though hole 14 1K Ohm, Though hole 1 10K Ohm, Though hole 1 Capacitor 10uF 1 Header Male 12 538-42375-1856 ProtoBoard Plated 1 589-8200-4565 Battery (Optional) 6 volts, 5000mAh 1 Accelerometer 3-Axis 1 (Optional) III. CIRCUIT DIAGRAM When the schematic was originally designed there were many different features, but for simplicity Wright redesigned the schematic for the main goal of having a walking robot. He would recommend if we have enough money, add the accelerometer. The accelerometer would be a very useful sensor to help the robot balance itself. As marked in the schematic there is a 5 - 6 volt source. This is the main source for all the servos and with so many servos they can pull quite a bit current. Make sure to only use a source that can handle 1A or more, like listed on the Equipment and Supplies list, a battery or a power supply. DO NOT use a 5v
  3. 3. 3 source on the Arduino to power the servo, only use the arduino source to power the PWM driver. Sample PWM Driver To put all the components together he would suggest to use a protoboard and to solder them all together. Since he was doing this project for class, he had a PCB outsourced to Advanced Circuits. Advanced Circuits is a great company to get your boards made for a great price. Circuit Diagram by Andrew Wright
  4. 4. 4 Circuit Diagram (Detailed View)
  5. 5. 5 Circuit Diagram (Detailed View)
  6. 6. 6 IV. STEPS 1. Make a prototype of the robot you will develop, including its measurements and angles. 2. Create a list of the materials of the robot as its parts. Then gather it all. The main material for FIER is the balsa wood. 3. Create the body using balsa wood. 4. Make FIER’s legs. Use your prototype as a guide in order to assemble the robot’s legs properly.
  7. 7. 7 One detail Wright pointed out is the pivot point. As you can see in the illustration, there is a pin underneath the servo to strengthen the leg, and to avoid the weight on the servo axle. This is where you will be needing the 1/8 drill bit and 1/8 dowel. As for the belly of the robot, it’s just a rectangle with notches on the corners to hold the servos. This is FIER’s leg look like. 5. Use wood glue to attach the balsa pieces together. You can also coat the balsa wood with wood glue to strengthen it. 6. Use hot glue to attach the servos to the balsa wood. 7. Install the wirings to its proper pin number according to your circuit diagram. Also install the batteries and switch. Use the right battery voltage to avoid circuit blow. 8. Connecting the servo motors. The most complicated task is connecting the servo motor header connectors to the sensor shield board – not because it’s difficult but simply because there are so many and they have to go in the right location. 9. Connect wires to the terminal block. 10. Install FIER’s source code and test its functionality.
  8. 8. 8 FIER with servo motors and wires connected to the circuit board V. DEFINITION OF TERMS Here are some terms used in creating this project: NAME IMAGE DEFINITION Accelerometer An accelerometer is a device that measures the vibration, or acceleration of motion of a structure. Battery An electric battery is a device consisting of one or more electrochemical cells that convert stored chemical energy into electrical energy.
  9. 9. 9 Capacitor A capacitor is a passive two-terminal electrical component used to store electrostatically in an electric field. PWM (Pulse-Width Modulation) Driver Having the technique for getting analog results with digital means. ProtoBoard Popularly known as breadboard, is usually a construction base for prototyping of electrons. Resistor Resistor is an electrical component that reduces the electric current. The resistor's ability to reduce the current is called resistance and is measured in units of ohms.
  10. 10. 10 VI. PROJECT COST Equipments: Tool PRICE Sharp Knife 75.00 Solder Iron Drill and 1/8 bit Hot Glue Gun and Sticks 60.00 Wood Glue 50.00 Table Saw (Optional) 5v 1A Power Supply (Optional) Supplies: Item Type Part # QTY Price Total Price Servo Servo_TPro- 12 $2.77 $33.24 Servo Motor A type of motor used in applications that require precise positioning. Servomotors provide a high amount of holding torque to maintain their position accurately. Wire Single flexible stand or rod of metal that is used to bear mechanical loads or electricity and telecommunications signals.
  11. 11. 11 SG90 Balsa Wood Dow (36" x 3/4") 1 $4.04 $4.04 Rectangle (36" x 6" x 1/2") 1 $7.48 $7.48 Wood Dow (12" x 1/8") 1 $1.00 $1.00 Arduino Uno 1 $29.95 $29.95 PWM Driver 12+ PWM TLC5940 1 $3.69 $3.69 Resistors 4.7K Ohm, Though hole 14 $0.05 $0.70 1K Ohm, Though hole 1 $0.05 $0.05 10K Ohm, Though hole 1 $0.05 $0.05 Capacitor 10uF 1 $0.09 $0.09 Header Male 538-42375- 1856 12 $0.11 $1.27 ProtoBoard Plated 589-8200- 4565 1 $19.67 $19.67 Total Cost $101.23 Battery (Optional) 6 volts, 5000mAh 73P- SC5000-5-M 1 $16.64 $16.64 Accelerometer (Optional) 3-Axis ADXL345 1 $27.95 $27.95 Total Cost $145.82
  12. 12. 12 VII. PROGRAM CODE FIER WAVING #include <avr/interrupt.h> #include "Tlc5940.h" #include "tlc_servos.h" void setup() { // PWM Driver Setup tlc_initServos(); // Note: this will drop the PWM freqency down to 50Hz. } void loop() { set(); stand(); stance(); for(;;) wave(); } void wave() { tlc_setServo(4, 100); tlc_setServo(7, 100); tlc_setServo(10, 80); for(int i = 135; i < 150; i++){ tlc_setServo(0, i); Tlc.update(); delay(20); } for(int j = 150; j > 120; j--){ tlc_setServo(0, j); Tlc.update(); delay(20); } for(int k = 120; k < 135; k++){ tlc_setServo(0, k); Tlc.update(); delay(20); } } void stance() { tlc_setServo(5, 115); tlc_setServo(8, 65); tlc_setServo(4, 100); tlc_setServo(7, 100); tlc_setServo(10, 80); Tlc.update(); delay(30);
  13. 13. 13 for(int i = 0; i < 45; i++){ tlc_setServo(0, i); tlc_setServo(1, 90+i); Tlc.update(); delay(20); } tlc_setServo(2, 70); Tlc.update(); delay(20); for(int j = 0; j < 90; j++){ tlc_setServo(0, 45+j); Tlc.update(); delay(20); } tlc_setServo(2, 80); Tlc.update(); delay(20); } //Stand void stand() { int ia = 90; int ib = 90; int ja = 90; int jb = 90; /*tlc_setServo(2, 90); tlc_setServo(5, 90); tlc_setServo(8, 90); tlc_setServo(11, 90);*/ while(ia <= 175){ ib++; tlc_setServo(1, ib); tlc_setServo(10, ib); ia = ia + 2; tlc_setServo(3, ia); tlc_setServo(6, ia); jb--; tlc_setServo(4, jb); tlc_setServo(7, jb); ja = ja - 2; tlc_setServo(0, ja); tlc_setServo(9, ja); Tlc.update(); delay(50); } while(ib >= 90){ ib--; tlc_setServo(4, ib); tlc_setServo(7, ib); jb++; tlc_setServo(1, jb); tlc_setServo(10, jb);
  14. 14. 14 Tlc.update(); delay(50); } } void set() { int angle = 90; tlc_setServo(0, angle); tlc_setServo(1, angle); tlc_setServo(2, angle); tlc_setServo(3, angle); tlc_setServo(4, angle); tlc_setServo(5, angle); tlc_setServo(6, angle); tlc_setServo(7, angle); tlc_setServo(8, angle); tlc_setServo(9, angle); tlc_setServo(10, angle); tlc_setServo(11, angle); tlc_setServo(12, angle); tlc_setServo(13, angle); tlc_setServo(14, angle); tlc_setServo(15, angle); } VIII. VIDEOS FIER MECHANICS FINISHED - FIER TRYING TO WALK- FIER WAVING - FIER STRETCHING - FIER STANDING UP (FASTER) - FIER STANDING UP - FIER FIRST MOTION -