lsm6dsox

package
v0.0.0-...-7691dab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2022 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Overview

Package lsm6dsox implements a driver for the LSM6DSOX a 6 axis Inertial Measurement Unit (IMU)

Datasheet: https://www.st.com/resource/en/datasheet/lsm6dsox.pdf

Index

Constants

View Source
const (
	INT1_CTRL  = 0x0D
	INT2_CTRL  = 0x0E
	WHO_AM_I   = 0x0F
	CTRL1_XL   = 0x10 // Accelerometer control register 1 (r/w)
	CTRL2_G    = 0x11 // Gyroscope control register 2 (r/w)
	CTRL3_C    = 0x12
	CTRL4_C    = 0x13
	CTRL5_C    = 0x14
	CTRL6_C    = 0x15
	CTRL7_G    = 0x16
	CTRL8_XL   = 0x17
	CTRL9_XL   = 0x18
	CTRL10_C   = 0x19
	STATUS_REG = 0x1E
	OUT_TEMP_L = 0x20
	OUT_TEMP_H = 0x21
	OUTX_L_G   = 0x22
	OUTX_H_G   = 0x23
	OUTY_L_G   = 0x24
	OUTY_H_G   = 0x25
	OUTZ_L_G   = 0x26
	OUTZ_H_G   = 0x27
	OUTX_L_A   = 0x28
	OUTX_H_A   = 0x29
	OUTY_L_A   = 0x2A
	OUTY_H_A   = 0x2B
	OUTZ_L_A   = 0x2C
	OUTZ_H_A   = 0x2D

	ACCEL_2G  AccelRange = 0x00
	ACCEL_4G  AccelRange = 0x08
	ACCEL_8G  AccelRange = 0x0C
	ACCEL_16G AccelRange = 0x04

	ACCEL_SR_OFF  AccelSampleRate = 0x00
	ACCEL_SR_13   AccelSampleRate = 0x10
	ACCEL_SR_26   AccelSampleRate = 0x20
	ACCEL_SR_52   AccelSampleRate = 0x30
	ACCEL_SR_104  AccelSampleRate = 0x40
	ACCEL_SR_208  AccelSampleRate = 0x50
	ACCEL_SR_416  AccelSampleRate = 0x60
	ACCEL_SR_833  AccelSampleRate = 0x70
	ACCEL_SR_1666 AccelSampleRate = 0x80
	ACCEL_SR_3332 AccelSampleRate = 0x90
	ACCEL_SR_6664 AccelSampleRate = 0xA0

	GYRO_250DPS  GyroRange = 0x00
	GYRO_500DPS  GyroRange = 0x04
	GYRO_1000DPS GyroRange = 0x08
	GYRO_2000DPS GyroRange = 0x0C

	GYRO_SR_OFF  GyroSampleRate = 0x00
	GYRO_SR_13   GyroSampleRate = 0x10
	GYRO_SR_26   GyroSampleRate = 0x20
	GYRO_SR_52   GyroSampleRate = 0x30
	GYRO_SR_104  GyroSampleRate = 0x40
	GYRO_SR_208  GyroSampleRate = 0x50
	GYRO_SR_416  GyroSampleRate = 0x60
	GYRO_SR_833  GyroSampleRate = 0x70
	GYRO_SR_1666 GyroSampleRate = 0x80
	GYRO_SR_3332 GyroSampleRate = 0x90
	GYRO_SR_6664 GyroSampleRate = 0xA0
)
View Source
const Address = 0x6A

The I2C address which this device listens to.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccelRange

type AccelRange uint8

type AccelSampleRate

type AccelSampleRate uint8

type Configuration

type Configuration struct {
	AccelRange      AccelRange
	AccelSampleRate AccelSampleRate
	GyroRange       GyroRange
	GyroSampleRate  GyroSampleRate
}

Configuration for LSM6DSOX device.

type Device

type Device struct {
	Address uint16
	// contains filtered or unexported fields
}

Device wraps an I2C connection to a LSM6DSOX device.

func New

func New(bus drivers.I2C) *Device

New creates a new LSM6DSOX connection. The I2C bus must already be configured.

This function only creates the Device object, it does not touch the device.

func (*Device) Configure

func (d *Device) Configure(cfg Configuration) (err error)

Configure sets up the device for communication.

func (*Device) Connected

func (d *Device) Connected() bool

Connected returns whether a LSM6DSOX has been found. It does a "who am I" request and checks the response.

func (*Device) ReadAcceleration

func (d *Device) ReadAcceleration() (x, y, z int32, err error)

ReadAcceleration reads the current acceleration from the device and returns it in µg (micro-gravity). When one of the axes is pointing straight to Earth and the sensor is not moving the returned value will be around 1000000 or -1000000.

func (*Device) ReadRotation

func (d *Device) ReadRotation() (x, y, z int32, err error)

ReadRotation reads the current rotation from the device and returns it in µ°/s (micro-degrees/sec). This means that if you were to do a complete rotation along one axis and while doing so integrate all values over time, you would get a value close to 360000000.

func (*Device) ReadTemperature

func (d *Device) ReadTemperature() (t int32, err error)

ReadTemperature returns the temperature in celsius milli degrees (°C/1000)

type GyroRange

type GyroRange uint8

type GyroSampleRate

type GyroSampleRate uint8

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL