adafruit_l3gd20

Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - L3GD20

This is a CircuitPython driver for the Bosch L3GD20 nine degree of freedom inertial measurement unit module with sensor fusion.

  • Author(s): Michael McWethy

Implementation Notes

Hardware:

Software and Dependencies:

class adafruit_l3gd20.L3GD20(rng: int = 0, rate: int = 0)

Driver for the L3GD20 3-axis Gyroscope sensor.

Parameters:
  • rng (int) –

    a range value one of:

    • L3DS20_RANGE_250DPS

    • L3DS20_RANGE_500DPS

    • L3DS20_RANGE_2000DPS

    Defaults to L3DS20_RANGE_250DPS

  • rate (int) –

    a rate value one of

    • L3DS20_RATE_100HZ

    • L3DS20_RATE_200HZ

    • L3DS20_RATE_400HZ

    • L3DS20_RATE_800HZ

    Defaults to L3DS20_RATE_100HZ

property gyro: Tuple[float, float, float]

x, y, z angular momentum tuple floats, rescaled appropriately for range selected in rad/s

class adafruit_l3gd20.L3GD20_I2C(i2c: I2C, rng: int = 0, address: int = 107, rate: int = 0)

Driver for L3GD20 Gyroscope using I2C communications

Parameters:
  • i2c (I2C) – The I2C bus the device is connected to

  • rng (int) – range value. Defaults to 0x68

  • rate (int) – rate value. Defaults to L3DS20_RATE_100HZ

Quickstart: Importing and using the device

Here is an example of using the L3GD20_I2C class. First you will need to import the libraries to use the sensor

import board
import adafruit_l3gd20

Once this is done you can define your board.I2C object and define your sensor object

i2c = board.I2C()  # uses board.SCL and board.SDA
sensor = adafruit_l3gd20.L3GD20_I2C(i2c)

Now you have access to the gyro attribute

gyro_data = sensor.gyro
gyro_raw

Gives the raw gyro readings, in units of rad/s.

read_register(register: int) int

Returns a byte value from a register

Parameters:

register – the register to read a byte

write_register(register: int, value: int) None

Update a register with a byte value

Parameters:
  • register (int) – which device register to write

  • value – a byte to write

class adafruit_l3gd20.L3GD20_SPI(spi_busio: SPI, cs: DigitalInOut, rng: int = 0, baudrate: int = 100000, rate: int = 0)

Driver for L3GD20 Gyroscope using SPI communications

Parameters:
  • spi_busio (SPI) – The SPI bus the device is connected to

  • cs (DigitalInOut) – digital in/out to use as chip select signal

  • rng (int) – range value. Defaults to L3DS20_RANGE_250DPS.

  • baudrate – SPI baud rate. Defaults to 100000

  • rate (int) – rate value. Defaults to L3DS20_RATE_100HZ

Quickstart: Importing and using the device

Here is an example of using the L3GD20_SPI class. First you will need to import the libraries to use the sensor

import board
import adafruit_l3gd20

Once this is done you can define your board.SPI object and define your sensor object

spi = board.SPI()
sensor = adafruit_l3gd20.L3GD20_SPI(spi)

Now you have access to the gyro attribute

gyro_data = sensor.gyro
property gyro_raw: Tuple[int, int, int]

Gives the dynamic rate raw gyro readings, in units rad/s.

read_bytes(register: int, buffer: array | bytearray | memoryview | rgbmatrix.RGBMatrix | ulab.numpy.ndarray) None

Low level register stream reading over SPI, returns a list of values

Parameters:
  • register – the register to read bytes

  • buffer (bytearray) – buffer to fill with data from stream

read_register(register: int) int

Low level register reading over SPI, returns a list of values

Parameters:

register – the register to read a byte

write_register(register: int, value: int) None

Low level register writing over SPI, writes one 8-bit value

Parameters:
  • register (int) – which device register to write

  • value – a byte to write