Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lefuturiste/bmi160-i2c
WIP lib to communicate with the BMI160 accel/gyro sensor with the raspberry pi i2c in python
https://github.com/lefuturiste/bmi160-i2c
Last synced: 4 days ago
JSON representation
WIP lib to communicate with the BMI160 accel/gyro sensor with the raspberry pi i2c in python
- Host: GitHub
- URL: https://github.com/lefuturiste/bmi160-i2c
- Owner: lefuturiste
- License: mit
- Created: 2020-06-21T15:03:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-09-18T10:13:20.000Z (about 2 years ago)
- Last Synced: 2024-10-07T02:07:17.328Z (about 1 month ago)
- Language: Python
- Size: 72.3 KB
- Stars: 19
- Watchers: 3
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BMI160-i2c
I2C library to use the Inertial Mesurment Unit BMI160. Heavily inspired on @serioeseGmbH code [serioeseGmbH/BMI160](https://github.com/serioeseGmbH/BMI160), in fact I just adapted his code.
This library was tested successfully on a Raspberry Pi 3 B
## Installation
The package is [available on pypi.org](https://pypi.org/project/BMI160-i2c).
You can install this package using this command
`python3 -m pip install BMI160-i2c`
**This library require [smbus](https://github.com/kplindegaard/smbus2)**
Install smbus2 using the following command:
`python3 -m pip install smbus2`
## Usage
Wire the breakout board with these lines : GND, 3V3, SAO (to GND), SDA, SCL
Make sure that the device is available at `0x68` or `0x69` i2c address by running this command:
`i2cdetect -y 1`
Example : A little python script to fetch all 6 values from the sensor :
```python
from time import sleep
from BMI160_i2c import Driverprint('Trying to initialize the sensor...')
sensor = Driver(0x68) # change address if needed
print('Initialization done')while True:
data = sensor.getMotion6()
# fetch all gyro and acclerometer values
print({
'gx': data[0],
'gy': data[1],
'gz': data[2],
'ax': data[3],
'ay': data[4],
'az': data[5]
})
sleep(0.1)
```## Documentation
There is so many method available to do whatever you want to do with a sensor of this kind.
Look at all the methods available [here](https://github.com/lefuturiste/BMI160-i2c/blob/master/BMI160_i2c/__init__.py).
## Credits & Related links
- [hanyazou/BMI160-Arduino](https://github.com/hanyazou/BMI160-Arduino/)
- [serioeseGmbH/BMI160](https://github.com/serioeseGmbH/BMI160)
- [IMU BMI160 Bosch product page](https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi160.html)
- [BMI160 Datasheet](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi160-ds000.pdf)
- [smbus2 docs](https://smbus2.readthedocs.io/en/latest/)## Contributions
Feel free to open a issue or a pull request I will be happy to answer any questions or help you with this library.
You can also use these alternative methods to contact me:
- Email: [[email protected]](mailto:[email protected])
- Mastodon: [[email protected]](https://mstdn.io/@lefuturiste)
- Discord: `lefuturiste#5297`## Maintenance
- Increment the version used in `setup.py`
- Build the package: `python3 setup.py sdist bdist_wheel`
- Publish the package: `python3 -m twine upload dist/*`
- Enter `__token__` for the username
- Enter `pypi-{....}` for the password
- And tada!