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=0, rate=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

gyro

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

class adafruit_l3gd20.L3GD20_I2C(i2c, rng=0, address=107, rate=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)

Returns a byte value from a register

Parameters:register – the register to read a byte
write_register(register, value)

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, cs, rng=0, baudrate=100000, rate=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
gyro_raw

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

read_bytes(register, buffer)

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)

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

Parameters:register – the register to read a byte
write_register(register, value)

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

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