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:
সল্পমূল্যে ইলেকট্রনিক্স পার্টস কিনুন : www.zeronetechbd.com/
Used
Apps:
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 |
#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;
}