Light Robotic Arm Manual

Instruction Manual

Product Introduction

A robotic arm is a mechanical arm that consist of joints, links and actuators that represent the human. Joint is the movable components that results in motion between bones (links). The links are the rigid members connecting the joints. Actuator is the component of a machine that produce force to create motion.

A2TECH Robotic arm is designed with 4-DoF (Degrees of Freedom) that can move its base, arm 1st, arm 2nd, and gripper. This robot is aimed to teach the basic principles of robotic arm and build up interest in science and technology.

Base Servo

First Arm Servo

Second Arm Servo

Gripper Servo

Get ready for your first hands-on robotic arm assembly and programming!!

CAUTION

  1. Please be sure to read the following instruction before assembling this kit.
  2. Take necessary caution when parts with pointed edges, there is a risk of injury.
  3. Be careful when using smaller parts. Do not put them in mouth and accidentally swallow them. There is a risk of suffocation.
  4. Keep this kit out of reach from small children Better to use for 8 years and above.
  5. Please read the instructions and cautions thoroughly before use.
  6. For your safety, be sure to follow the instruction in this manual.
  7. Do not use any parts that have become damaged or deformed during use.

Item List

MaterialQuantityImage
Wood1

ATmega328P Arduino Uno
1

Small Breadboard
1

SG90 Plastic Gear Micro Servo
4

Joystick
2

4x1.5v Battery Holder
1

1.5v Battery
4

Small Screwdriver
1

Double Sided Tape
1

Electrical Cable Connector
1
Cable Tie3
Balls5

M2-15mm Screws
3

M3-6mm Screws
50

M3-10mm Screws
14

M3-12mm Screws
8

M3 Nuts
26

M2 Nuts
3

M3 Lock Nut
4

PCB Stand 25mm (Screw & Screw)
4

PCB Stand 15mm (Screw & Screw)
4

PCB Stand 10mm (Screw & Screw)
8

Male-Male Jumper Wires
20

Male-Female tall Jumper Wires
10

Wood Parts

  1. Take out all the wood parts carefully.
  2. Make sure the wood parts are not broken during the separation from its
    structure.
  3. Place it for assembly.

Reset The Motor Position

  1. Connect each motor one by one referring to the circuit below.
  1. Run the code below in Arduino IDE. You can download the code here.

Hardware Assembly

  1. Fix the microcontroller on the protoboard. Position it to be in the middle of the board.
  2. Place the protoboard and battery casing.
  3. Make sure to align the battery switch in the designated area.
  4. Using given double sided tape, paste both items on the wood base.

1.

2.

  1. Screw the servo motor plastic parts using given screwdriver.
  2. The screws needed in this step come with the servo motor.

1.

2.

  1. Assemble the arm base using 2 servo motors: Base servo and 1st Arm servo with M3-12mm, M3-10mm screws and nut.

1.

2.

3.

4.

5.

6.

7.

8.

  1. Attach the assembled arm base to the main wood base using PCB stand 25mm with M3-6mm screws.

1.

2.

  1. Assemble the 2nd Arm servo with M3-16 mm, M3-10mm screws and nut to the arm base.

1.

2.

3.

4.

  1. Use PCB Stand 15mm and M3-6mm screw to connect both arm plate.

1.

2.

  1. Screw the servo motor plastic parts using given screwdriver.

1.

2.

  1. Assemble the Gripper servo with M2-16 mm and M2 nut.
  2. Use M3 Nut and M3 lock nut to assemble the right gripper.

1.

2.

3.

4.

5.

6.

7.

8.

  1. Assembled Base servo, 1st Arm servo, 2nd Arm servo and Gripper servo on the wood base.

1.

  1. Assemble the remote-control using PCB Stand 10mm and M3-6mm screws.

1.

2.

  1. Assemble the ball holder using PCB Stand 10mm and M3-6mm screws.

1.

2.

Programming The Robot

  1. Connect each motor referring to the circuit below.
  2. Connect the battery casing wire to the breadboard using the white plastic wire connector in your kit.
  1. Run the code below in Arduino IDE. You can download the code here.
#include <Servo.h>

Servo Base_Servo;
Servo Arm_Servo_1;
Servo Arm_Servo_2;
Servo Gripper_Servo;
int Base_Servo_Angle;
int Gripper_Servo_Angle;
int Arm_Servo_1_Angle;
int Arm_Servo_2_Angle;
void setup() {
  
// Servo attachments
    Base_Servo.attach(3);
    Arm_Servo_1.attach(5);
    Arm_Servo_2.attach(6);
    Gripper_Servo.attach(9);
    
    // Initial angles for servos
    Base_Servo_Angle    = 90;
    Gripper_Servo_Angle = 90;
    Arm_Servo_1_Angle   = 90;
    Arm_Servo_2_Angle   = 90;
    
    // Set initial angles for servos
    Base_Servo.write(Base_Servo_Angle);
    Gripper_Servo.write(Gripper_Servo_Angle);
    Arm_Servo_1.write(Arm_Servo_1_Angle);
    Arm_Servo_2.write(Arm_Servo_2_Angle);
    // Begin serial communication
    Serial.begin(9600);    
}
void loop() {

    int Right_Joystick_X  = analogRead(A3);
    int Right_Joystick_Y  = analogRead(A4);
    int Left_Joystick_X   = analogRead(A1);
    int Left_Joystick_Y   = analogRead(A2);
    int ms  = 30;
    int increament = 1;
    
    Gripper_Servo.write(Gripper_Servo_Angle);
    Base_Servo.write(Base_Servo_Angle);
    Arm_Servo_1.write(Arm_Servo_1_Angle);
    Arm_Servo_2.write(Arm_Servo_2_Angle);
    
    // -----------------------------------------
    // Left joysitck codes:
    
    // Down servo Code:
    if (Left_Joystick_X < 400 && Base_Servo_Angle > 0){
        //delay(ms);
        Base_Servo_Angle = Base_Servo_Angle - increament;
        Serial.print("Left_Joystick_X: ");
        Serial.print(Left_Joystick_X);
        Serial.print("   Base_Servo_Angle: ");
        Serial.println(Base_Servo_Angle);    
    }
    else if (Left_Joystick_X > 600 && Base_Servo_Angle < 180){
        //delay(ms);
        Base_Servo_Angle = Base_Servo_Angle + increament;
        Serial.print("Left_Joystick_X: ");
        Serial.print(Left_Joystick_X);
        Serial.print("   Base_Servo_Angle: ");
        Serial.println(Base_Servo_Angle);
    }
    
    // Up servo Code:
    if (Left_Joystick_Y > 600  && Gripper_Servo_Angle < 90){
        //delay(ms);
        Gripper_Servo_Angle = Gripper_Servo_Angle + increament; 
        Serial.print("Left_Joystick_Y: ");
        Serial.print(Left_Joystick_Y);
        Serial.print("   Gripper_Servo_Angle: ");
        Serial.println(Gripper_Servo_Angle);   
    }
    else if (Left_Joystick_Y < 400  && Gripper_Servo_Angle > 0){
        //delay(ms);
        Gripper_Servo_Angle = Gripper_Servo_Angle - increament;
        Serial.print("Left_Joystick_Y: ");
        Serial.print(Left_Joystick_Y);
        Serial.print("   Gripper_Servo_Angle: ");
        Serial.println(Gripper_Servo_Angle);
    }
    
    // -----------------------------------------
    // Right joysitck codes:
    
    // Right servo Code: 
    if (Right_Joystick_X < 400 && Arm_Servo_1_Angle > 0){
        //delay(ms);
        Arm_Servo_1_Angle = Arm_Servo_1_Angle - increament;  
        Serial.print("Right_Joystick_X: ");
        Serial.print(Right_Joystick_X);
        Serial.print("   Arm_Servo_1_Angle: ");
        Serial.println(Arm_Servo_1_Angle);  
    }
    else if (Right_Joystick_X > 600 && Arm_Servo_1_Angle < 180){
        //delay(ms);
        Arm_Servo_1_Angle = Arm_Servo_1_Angle + increament;
        Serial.print("Right_Joystick_X: ");
        Serial.print(Right_Joystick_X);
        Serial.print("   Arm_Servo_1_Angle: ");
        Serial.println(Arm_Servo_1_Angle);  
    }
    
    // Left servo code:
    if (Right_Joystick_Y < 400 && Arm_Servo_2_Angle < 180){
        //delay(ms);
        Arm_Servo_2_Angle = Arm_Servo_2_Angle + increament;
        Serial.print("Right_Joystick_Y: ");
        Serial.print(Right_Joystick_Y);
        Serial.print("   Arm_Servo_2_Angle: ");
        Serial.println(Arm_Servo_2_Angle);    
    }
    else if (Right_Joystick_Y > 600 && Arm_Servo_2_Angle > 0){
        //delay(ms);
        Arm_Servo_2_Angle = Arm_Servo_2_Angle - increament;
        Serial.print("Right_Joystick_Y: ");
        Serial.print(Right_Joystick_Y);
        Serial.print("   Arm_Servo_2_Angle: ");
        Serial.println(Arm_Servo_2_Angle);
    }
}

3. Check your code output by accessing the Serial monitor in the Arduino IDE. Simply click on the icon illustrated below to open the Serial monitor.

Gallery

A2Tech Sdn Bhd 
Level 2, Block B, V01, Faculty of Engineering, Universiti Teknologi Malaysia, 81310 Skudai, Johor, Malaysia
CONTACT US
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram