The GY-521 module is a breakout board for the MPU-6050 sensor, which contains a 3-axis accelerometer and a 3-axis gyroscope. The module can measure linear acceleration, angular velocity, and orientation of an object. It can also perform complex calculations using the Digital Motion Processor (DMP) inside the sensor, such as sensor fusion and gesture recognition.
The GY-521 module can be interfaced with Arduino and other microcontrollers using the I2C protocol. The module has a voltage range of 3.3V to 5V and has a low dropout voltage regulator on board. The module has four pins: VCC, GND, SCL, and SDA. The SCL and SDA pins are used for data transfer and clock synchronization with the I2C master device.
The GY-521 module has several features that make it suitable for various applications, such as:
Accelerometer ranges: Â2, Â4, Â8, Â16g
Gyroscope ranges: Â 250, 500, 1000, 2000 Â/s
Temperature sensor range: -40 to +85C
9-axis MotionFusion DMP
To use the GY-521 module, you need to download the datasheet[^1^] [^2^] [^3^] and the Arduino library[^4^]. The datasheet provides detailed information about the sensor specifications, registers, modes, and functions. The Arduino library simplifies the communication with the sensor and provides various examples of how to read and process the sensor data.
Some of the applications that you can create with the GY-521 module are:
Motion-enabled game and application framework
Location based services, points of interest
Handset and portable gaming
Motion-based game controllers
Wearable sensors for health, fitness and sports
The GY-521 module is a versatile and powerful sensor that can enhance your projects with motion sensing capabilities. You can find more information and tutorials on how to use it online.
How to Connect the GY-521 Module to Arduino
To connect the GY-521 module to Arduino, you need to use four jumper wires and a breadboard. The wiring layout is as follows:
Connect the VCC pin of the module to the 5V pin of the Arduino.
Connect the GND pin of the module to the GND pin of the Arduino.
Connect the SCL pin of the module to the SCL pin of the Arduino. If your Arduino does not have a dedicated SCL pin, you can use A5 for Arduino Uno, Nano, and Ethernet, 21 for Arduino Mega2560, or 3 for Arduino Leonardo.
Connect the SDA pin of the module to the SDA pin of the Arduino. If your Arduino does not have a dedicated SDA pin, you can use A4 for Arduino Uno, Nano, and Ethernet, 20 for Arduino Mega2560, or 2 for Arduino Leonardo.
You can refer to this schematic[^1^] or this video[^2^] for more details on how to wire the GY-521 module to Arduino.
How to Read and Process the Sensor Data from the GY-521 Module
To read and process the sensor data from the GY-521 module, you need to install a library that can communicate with the MPU-6050 sensor using the I2C protocol. One such library is the I2Cdevlib by Jeff Rowberg, which provides many examples of how to use the MPU-6050 sensor with Arduino. You can download and install this library from this link: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050.
After installing the library, you can open one of the examples from File > Examples > MPU6050 > Examples. For instance, you can open the MPU6050_raw example, which reads and prints out the raw values of acceleration, angular velocity, and temperature from the sensor. You can upload this example to your Arduino and open the serial monitor to see the output.
The raw values are 16-bit integers that represent how much force is applied to each axis of acceleration (X, Y, Z) and how fast each axis of rotation (X, Y, Z) is spinning. The units of these values depend on the range settings of the sensor. For example, if you set the accelerometer range to Â2g, then each unit corresponds to 2/32768 g (about 0.000061 g). Similarly, if you set the gyroscope range to Â250 Â/s, then each unit corresponds to 250/32768 Â/s (about 0.0076 Â/s).
To convert these raw values into more meaningful units, such as meters per second squared (m/s^2) for acceleration and degrees per second (Â/s) for angular velocity, you need to multiply them by a scaling factor. The scaling factor depends on the range settings of the sensor and can be found in the datasheet[^1^] [^2^] [^3^]. For example, if you use Â2g for acceleration and Â250 Â/s for angular velocity, then you need to multiply each raw value by 0.000061 and 0.0076 respectively.
You can also use other examples from the library that perform more advanced calculations using the DMP inside the sensor. For example, you can open the MPU6050_DMP6 example, which uses sensor fusion algorithms to calculate and print out the orientation (yaw, pitch, roll) of the sensor in degrees. You can also use this example to visualize the orientation on a 3D model using Processing. 0efd9a6b88