Phone : +8801894-801150 Email : projects.zeronebd@gmail.com
support 24/7

#RBT154 Gesture and Bluetooth Controlled Trainable Arduino Robot Arm

Gesture and Bluetooth Controlled Trainable Arduino Robot Arm

Project Fee:Negotiable

Project Discount:0

Project Duration:One Month

About This Project:

Screen Controlled of the device is a one which can be dignified by physical programmed of human hand which is called as simple gesture. The user just necessities to apparel a gesture device which embraces a sensor. The sensor will record the movement of hand in a specific direction which will result in the movement of the robot in the respective direction. The robot and the Gesture device are connected wirelessly via Bluetooth. Gesture commands freely trainable by the user can be used for supervisory external devices with handheld wireless sensor unit, The persistence gesture acknowledgment in Computers has always been the minimization of the distance between the physical world and the digital world. Gestures can be tracked using hand activities, accelerometers and more. The controller is interfaced with sensor to manipulate the path of the hand movement, The accelerometer depends upon the gestures of hand. Through accelerometer, a passage of data signal is received and it is processed with the help of Arduino microcontroller.

 

Block Diagram:

Figure: Block Diagram of Gesture and Bluetooth Controlled Trainable Arduino Robot Arm  

Circuit Diagram:

Figure: Circuit Diagram of Gesture and Bluetooth Controlled Trainable Arduino Robot Arm

"Customization of code, circuit, hardware may be required for full project implementation."

Required Instrument:

-       Arduino Uno

-       SMPS

-       Servo Motor

-       Bluetooth Module

-       PWM Servo Controller

-       Voltage Regulator

-       6Dof Robotic Arm

সল্পমূল্যে ইলেকট্রনিক্স পার্টস কিনুন : www.zeronetechbd.com/

Used Apps:

-       KureBus(Download)

Advantages:

-        Very effectively work for product peak and place.

-        No Oil consumption.

-        The project is compact, cheap and user friendly.

-        The whole system consumes very little energy.

-        Less skill technicians is sufficient to operate.

 

Applications:

The project has a major application in

        It can be used for Industrial work.

        It can be used in factories for peak and place.

        It can be used for bomb disposal work.

N.B: Any modification of this project can be done as per your requirement. We will make the project according to your needs. Contact us with your any innovative engineering projects idea. We will help you to implement your project.

Office:

Road#04, Plot#03, Sec#6/Ka,

Mirpur-2, Dhaka-1216

(Opposite of the Mirpur Cricket Stadium

4 No. Gate.)


Facebook: fb/zeroneprojects

YouTube:YT/zeroneprojects

e-Mail :

projects.zeronebd@gmail.com

☎️Contact:

01676 99 80 99 , 01714 80 84 02


CODE

#include
#include
#include
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define MIN_PULSE_WIDTH       650
#define MAX_PULSE_WIDTH       2350
#define DEFAULT_PULSE_WIDTH   1500
#define FREQUENCY             50

void setup() {
  pwm.begin();
  pwm.setPWMFreq(FREQUENCY);
  Serial.begin(9600);
}

void loop() {
   //Read from bluetooth and write to usb serial
  if(Serial.available()>= 2 )
  {
    unsigned int servopos = Serial.read();
    unsigned int servopos1 = Serial.read();
    unsigned int realservo = (servopos1 *256) + servopos; 
    Serial.println(realservo); 
    
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    pwm.setPWM(3, 0, pulseWidth(servo1));
    Serial.println("servo 1 ON");
    delay(10);

    }
    
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
       pwm.setPWM(5, 0, pulseWidth(servo2));
      Serial.println("servo 2 On");
      delay(10);
      
    }
    
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
       pwm.setPWM(8, 0, pulseWidth(servo3));
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
       pwm.setPWM(13, 0, pulseWidth(servo4));
      Serial.println("servo 4 On");
      delay(10);
    }
    
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
       pwm.setPWM(11, 0, pulseWidth(servo5));
      Serial.println("servo 5 On");
      delay(10);
    }
    
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,90);
      pwm.setPWM(15, 0, pulseWidth(servo6));
      Serial.println("servo 6 On");
      delay(10);
    }
 
  }
  
}

int pulseWidth(int angle)
{
  int pulse_wide, analog_value;
  pulse_wide   = map(angle, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
  analog_value = int(float(pulse_wide) / 1000000 * FREQUENCY * 4096);
  return analog_value;
}