Skip to main content

Python Package for interfacing the bluetooth IMU module for CreaTe M8 BME.

Project description

CreaTeBME

Build PyPI

Python Package for interfacing the bluetooth IMU module for CreaTe M8 BME.

Installation

To install the latest stable version simply run this in your terminal. If you are using PyCharm then you can open the terminal on the bottom left of the screen.

pip install CreaTeBME

Example

A simple example to connect to a sensor and read and print the data indefinitely. The package automatically connects to the device, so you do not have to connect to it manually.

from CreaTeBME import SensorManager

# Create a sensor manager for the given sensor names using the given callback
manager = SensorManager(['0BE6'])

# Start the sensor manager
manager.start()

while True:
    measurements = manager.get_measurements()
    for sensor, data in measurements.items():
        if len(data) > 0:
            print(sensor, data)

# Stop the sensor manager
manager.stop()

Usage

SensorManager (asyncio wrapper)

This package uses Bleak for the bluetooth communication. Bleak uses asyncio, thus this package has to use this too. To ease usage, a wrapper has been made for people not experienced with asyncio. This wrapper also automates the connection of the sensors over bluetooth.

To connect to the sensors, simply initialize a SensorManager object with the sensor names.

from CreaTeBME import SensorManager

manager = SensorManager(['A1B2', 'C3D4'])

Then start reading data from the sensors by calling the start method of the SensorManager.

manager.start()

To get the IMU measurements the `get_measurements()' method can be used. This returns the measurements received since the last time this method was called.

measurements = manager.get_measurements()

The data returned by this method is a dictionary containing a list for each sensor with the received measurements. A single measurement is a list of 6 floats. The measurements are structured like this

  • [0:2] = x,y,z of accelerometer in (g).
  • [3:5] = x,y,z of gyroscope in (deg/s).

Finally, make sure to also call the stop method when exiting your program.

manager.stop()

Manual Connection

⚠️Understanding of asyncio required⚠️

Another way of connecting IMU sensors is to manually create ImuSensor objects. This can be done by specifying the BLE device that should be connected as a sensor.

from CreaTeBME import ImuSensor

sensor = ImuSensor(device)

The device has to be a Bleak BLEDevice object that can be acquired using the discover method of BleakScanner.

from bleak import BleakScanner
from CreaTeBME import ImuSensor

async def connect():
    devices = await BleakScanner.discover(return_adv=True)
    sensor = ImuSensor(devices[0])

API reference

For the API reference look here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

createbme-1.2.3.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

CreaTeBME-1.2.3-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file createbme-1.2.3.tar.gz.

File metadata

  • Download URL: createbme-1.2.3.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for createbme-1.2.3.tar.gz
Algorithm Hash digest
SHA256 376b75857355266e0700e203fd6bc03e099ab13ec648b763ddc82892dd237b93
MD5 02c09a2dda704e30c9704d7501137456
BLAKE2b-256 e4a624cf1ec890de1c91efefc85aa9dcc1d2767397fc35a0a40c30956a14a69c

See more details on using hashes here.

File details

Details for the file CreaTeBME-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: CreaTeBME-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for CreaTeBME-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 19afb8876207bcc6ba7697a07f0498150d34189b70a0eab033afa4494507d872
MD5 051d2b28a4287a1182795a1d18fcc4fc
BLAKE2b-256 25ffafdb5234abd3c085126b5cce7b000e865d6166725fdc6ae14851bd9999cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page