Introduction

Documentation Status Build Status

A port of the python library for the MPU6050 6 Degrees of Freedom sensor to CircuitPython using the Adafruit_BusDevice library.

Dependencies

This driver depends on:

Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading the Adafruit library and driver bundle.

How to Install

This library isn’t getting deployed to pypi.org as adadruit has a created a library unbeknownst to me while I was developing this library. Use the following commands to install this library:

git clone https://github.com/2bndy5/CircuitPython_MPU6050.git
cd CircuitPython_MPU6050
python3 setup.py install

To install globally, prefix the last command with sudo.

Usage Example

Ensure you’ve connected the MPU6050 correctly by running the simple test located in the examples folder of this library. See also the Simple test section.

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

Sphinx documentation

Sphinx is used to build the documentation based on rST files and comments in the code. First, install dependencies (feel free to reuse the virtual environment from above):

python3 -m venv .env
source .env/bin/activate
pip install Sphinx sphinx-rtd-theme

Now, once you have the virtual environment activated:

cd docs
sphinx-build -E -W -b html . _build/html

This will output the documentation to docs/_build/html. Open the index.html in your browser to view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to locally verify it will pass.

Table of Contents

Simple test

Ensure your device works with this simple test.

examples/mpu6050_simpletest.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""
A simple test of the MPU6050 6D0F sensor
"""
# pylint: disable=invalid-name
import time
import board
from circuitpython_mpu6050 import MPU6050
I2C_BUS = board.I2C()
sensor = MPU6050(I2C_BUS)

while True:
    try:
        accel_x, accel_y, accel_z = sensor.acceleration
        temp = sensor.temperature
        gyro_x, gyro_y, gyro_z = sensor.gyro
        print('temp =', temp)
        print('accel =', accel_x, accel_y, accel_z)
        print('gyro =', gyro_x, gyro_y, gyro_z)
        time.sleep(2)
    except KeyboardInterrupt:
        del sensor
        break

circuitpython_mpu6050

The original code from Tijndagamer’s mpu6050 python module was ported to use the adafruit-circuitpython-busdevice library.

Authors: Dr David Martin, Martijn, Brendan Doherty

modified by Brendan Doherty

class circuitpython_mpu6050.MPU6050(i2c, address=104)[source]

A driver class for the MPU6050 6 DoF (Degrees of Freedom) sensor.

Parameters:
  • i2c (I2C) –

    The I2C bus object connected to the MPU6050.

    Note

    This object should be shared among other driver classes that use the same I2C bus (SDA & SCL pins) to connect to different I2C devices.

  • address (int) – The MPU6050’s I2C device address. In most cases this is the default of 0x68. If your scenario is different, you can specify an alternate address with this parameter.
accel_range

The range of the accelerometer to range.

acceleration

The accelerometer X, Y, Z axis values as a 3-tuple of m/s^2 values.

gyro_scale

The scale of the gyroscope.

gyro

The gyroscope X, Y, Z axis values as a 3-tuple of degrees/second values.

temperature

The temperature from the onboard temperature sensor of the MPU-6050 in degrees Celcius.

Indices and tables