I made an Arduino game around the MPU-6050 sensor (6DOF = gyro+accelerometer) and an OLED display:

  • tilt the sensor to move the ball around
  • do not touch the borders
  • try to catch as many squares as possible within 1 minute


I’m using the GY-521 module with the MPU-6050 sensor, that talks I2C. Getting useful data out of this sensor is not straightforward, but i found a library that makes this very simple; actually it’s not implemented as a library but rather an example sketch that works without any setup. As far as i understand, the challenge is to keep track of pitch and roll based on the gyro, which only outputs relative changes, and needs to be corrected by the acceleromter that has gravity as reference.

My sketch below includes 2 functions: the game, if D7 is connected to GND; and a basic gyro test program that shows the pitch and roll values, shows them in an XY grid, and changes the buzzer pitch according to distance from origin.


For the OLED i use the excellent U8G library which allows many fonts and fast graphics.

I include a basic wiring diagram here.


And here is my sketch, you will need to include 2 files in your sketch folder I2C and Kalman.h, they come with the MPU-6050 example mentioned above:
Somehow WordPress goes ‘oops page not found’ when i try to save this post with my sketch, so i have put it on pastebin, or full zip file gyro-game-v3

Arduino gyro game (with MPU6050)

3 thoughts on “Arduino gyro game (with MPU6050)

  • Pingback:Pong and Gyro Game Box (Arduino) – Cassiopeia Ltd

  • 12/03/2019 at 05:52

    Hi. I would really like to build this project but i get an error when compiling:
    On line 115
    i2cWrite was not declared i this scope

    Could you please help me out here?

    • 23/03/2019 at 14:13

      hi sorry, that pastebin is missing 2 tabs, i have added a link to a zip file on the blog post now


Leave a Reply

Your email address will not be published. Required fields are marked *