Introduction¶
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.
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.
- i2c (I2C) –