# Gesture Control Car Using Mpu6050 and Arduino

12,539

10

45

here is a hand controller gesture control car, made by using mpu6050 and arduino. I use rf module for wireless connection.

### Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

## Step 1: THINGS REQUIRED :

•1.arduino uno

•2.micro Arduino

•3.mpu6050(accelomitter)

•4.motor driver

•5.2 dc motor

•6.robotics chassis

•7. Arduino cable

•8.one hand glapse

•9. motor driver

•10. LiPo Battery

•11. 9V battery

12.USB cable

## Step 2: Connection:-

•1.connection for rf transmitter:-

•GND = GND

•DATA = 12

•VCC = 5V

•2.connection for mpu6050:-

•VCC = 3.3/5v

•GND = GND

•SCL = A3

•SDA = A2

•INT = 7

•mpu6050 need 3.5V voltage.but we can give it 5V voltage.i give here 3.5V voltage to mpu6050 because in micro arduino there

•are two voltage pin first is 5V and another one is 3.3V.rf reciever have to need 5V.so i use 5V pin for rf transmitter.and

•mpu6050 can run 3.5V.

•GND = GND

•DATA = 12

•VCC = 5V

•4.connection for motor driver:-

•motor one:-

•int enA = 11

•int in1 = 7

•int in2 = 6

•motor two:-

•int enB = 3

•int in3 = 5

•int in4 = 4

## Step 3: Working Principal:-

1.mpu6050:-

MPU-6050 Triple Axis Accelerometer and Gyro Breakout Board.it read three angles.we can give them name X, Y, and Z, here we

use here only two angles. here we use Y and Z.Y for forward and Z for left, right.

this part of code read the angle.

•mpu-6050
reads the angles in radian, this "* 180/M_PI" make it in degree.

## Step 4: ​•Rf Transmitter:-

•Rf

transmitter:-

Mpu6050 read the angles. then I make one “if” loop and make a condition.in then make two buffer.one buffer sends condition for forward. and in the second one, I send the angle, for control the speed by the angle. this part of code sends the message. And I map the angle.

the receiver receives the message in the buffer. Again I make a condition on the first buffer for forward. And the second one I use for control the speed. And I again map it. This part of the code is doing this work. and for the speed control, I use the second buffer and, the angles mapped (0,9), I map speed in (50,255). you can see all things in code.

## Step 6: Let's Run the Car:-

• now the time has come to run the robot.make sure that all connection is correct. now connect your glapse's micro arduino to your computer. open the serial monitor, now you can see angles reading.now send any input from the transmitter to the receiver. now your robot is ready for a run.

## Step 7:

if you fill difficulty in those codes. you can use these code. I make these because I fill you will difficulty fill in the transmitter code. so I make these easy code. and you won't need to follow 6th step. just connect the power the transmitter's Arduino and your robot is in your control.

Participated in the
Arduino Contest 2017

Participated in the
Remote Control Contest 2017

## 45 Discussions

The transmitter code is not working. I have downloaded & used the same libraries as you have but still so many errors are there.Please solve this problem quickly

4 replies

the second code is not working its always showing error even after including the respective libraries
these are the error messages shown
Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Arduino/Genuino Uno"
C:\Users\ASBN Sudhir\Desktop\motion_transmitter\motion_transmitter.ino: In function 'void setup()':
motion_transmitter:39:14: error: 'class MPU6050' has no member named 'begin'
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
^
motion_transmitter:39:20: error: 'MPU6050_SCALE_2000DPS' was not declared in this scope
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
^
motion_transmitter:39:43: error: 'MPU6050_RANGE_2G' was not declared in this scope
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
^
C:\Users\ASBN Sudhir\Desktop\motion_transmitter\motion_transmitter.ino: In function 'void loop()':
motion_transmitter:49:3: error: 'Vector' was not declared in this scope
^
motion_transmitter:52:23: error: 'normAccel' was not declared in this scope
int pitch = -(atan2(normAccel.XAxis, sqrt(normAccel.YAxis*normAccel.YAxis + normAccel.ZAxis*normAccel.ZAxis))*180.0)/M_PI;
^
Multiple libraries were found for "VirtualWire.h"
Used: C:\Users\ASBN Sudhir\Documents\Arduino\libraries\VirtualWire
Not used: C:\Users\ASBN Sudhir\Documents\Arduino\libraries\Updated-Arduino-VirtualWire-Library-master
Multiple libraries were found for "MPU6050.h"
Used: C:\Users\ASBN Sudhir\Documents\Arduino\libraries\MPU6050
Not used: C:\Users\ASBN Sudhir\Documents\Arduino\libraries\Arduino-MPU6050-master
exit status 1
'class MPU6050' has no member named 'begin'
"Show verbose output during compilation"
option enabled in File -> Preferences.

it's mean you have "VirtualWire.h" two different libraries. delete one of them.

Would you please send by email Transmitter & reciever codes with Ada fruit motor shield instead of Motor Driver & 433 mHz RF To
Hassouna@yazeed@yahoo.com

2 replies

MPU6050 not working
I checked wiring ,power and everything

I think you just have to check the pins meaning in ada fruit motor shield... And connect them with Arduino....

Why cant we directly connect the MPU6050 to RF transmitter part?

Can i use 9v battery to power up the motor driver instead of LiPo?

I'm using uno with motornshield that control 4 motors and receiver in car
and nano with mpu6050 with transmitter.
what changes should I make in the code?
can you help me with the code? I will be very grateful.Thanks in advance :)