What is MPU-6050 ?
MPU-6050 is Digital Motion Processor (DMP) Sensor
This sensor have 6 DOF sensing capability, which means it gives 6-axis output like acceleration output for 3 axis as well as Gyroscope value of 3 axis.
This sensor is widely used in where balancing are required like Self balancing robots, drone, quadcopter, 3D simulation
In this tutorial, I will give you a basic introduction to the MPU 6050, demonstrate how it can be interfaced to an Arduino, and show you how to make a 3D simulation model using the data from your Arduino MPU 6050.
- MPU-6050 Sensor
- Arduino board (i used Arduino UNO)
- Jumper wires
How Does it Work?
IMU sensors usually consist of two or more parts. Listing them by priority, they are the accelerometer, gyroscope, magnetometer, and altimeter. The MPU 6050 is a 6 DOF (Degrees of Freedom) or a six-axis IMU sensor, which means that it gives six values as output. Three values from the accelerometer and three from the gyroscope. The MPU 6050 is a sensor based on MEMS (Micro Electro Mechanical Systems) technology. Both the accelerometer and the gyroscope are embedded inside a single chip. This chip uses I2C (Inter-Integrated Circuit) protocol for communication.
Connecting the Arduino & MPU 6050
The MPU 6050 communicates with the Arduino through the I2C protocol. The MPU 6050 is connected to Arduino as shown in the following diagram. If your MPU 6050 module has a 5V pin, then you can connect it to your Arduino’s 5V pin. If not, you will have to connect it to the 3.3V pin. Next, the GND of the Arduino is connected to the GND of the MPU 6050.
The program we will be running here, also takes advantage of the Arduino’s interrupt pin. Connect your Arduino’s digital pin 2 (interrupt pin 0) to the pin labeled as INT on the MPU 6050. Next, we need to set up the I2C lines. To do this, connect the pin labeled SDA on the MPU 6050 to the Arduino’s analog pin 4 (SDA) and the pin labeled as SCL on the MPU 6050 to the Arduino’s analog pin 5 (SCL). That’s it, you have finished wiring up the Arduino MPU 6050!
Uploading the Code to Arduino and taking RAW Data from MPU-6050
First of all download MPU-6050 supporting library & code
To add library in Arduino
- Launch Arduino IDE software
- Go to sketch tab > Include library > Add .Zip library
- Locate the zip file of library and click on Open
- It’s done library are added
To load code go to
File > Example > MPU6050 > MPU6050_DMP6
Before uploading the code must check the right COM PORT & Board is selected from.
Tools > Board
Tools > Port
Click on Upload so code get upload to arduino now open Serial monitor (CTRL+SHIFT+M)
Set baud rate at 115200
Teapot 3D Simulation Demo using Processing platform
To visualize the 3D model in processing, first, you have to upload the Arduino code for MPU 6050 (MPU6050_DMP6). Before doing that, you need to comment the line in the Arduino MPU6050_DMP6 code which says:
#define OUTPUT_READABLE_YAWPITCHROLL by //#define OUTPUT_READABLE_YAWPITCHROLL.
And uncomment the line which says:
//#define OUTPUT_TEAPOT by #define OUTPUT_TEAPOT.
then upload the code to Arduino
You can now close Arduino software (not compulsory)
As you download Toxiclib library unzip it copy that two folders and past at
now the libraries are installed
open the TeaPot code in processing Click on RUN now you can see a 3D plan in screen
The Pitch, yaw & roll can control by moving the sensor in different axis.
For windows users, you need to comment the line that says:
String portName = “/dev/ttyUSB1”; by //String portName = “/dev/ttyUSB1”;.
And uncomment the line that says:
//String portName = “COM4”; by String portName = “COM4”;.
And replace “COM4” with the COM port where your Arduino is connected (check this by going intoArduinoo and Tools –> Serial Port).