Documentation ¶
Overview ¶
Package i2c provides Gobot drivers for i2c devices.
Installing:
go get github.com/hybridgroup/gobot/platforms/i2c
For further information refer to i2c README: https://github.com/hybridgroup/gobot/blob/master/platforms/i2c/README.md
Index ¶
- Constants
- Variables
- type BlinkMDriver
- func (b *BlinkMDriver) Color() (color []byte, err error)
- func (b *BlinkMDriver) Connection() gobot.Connection
- func (b *BlinkMDriver) Fade(red byte, green byte, blue byte) (err error)
- func (b *BlinkMDriver) FirmwareVersion() (version string, err error)
- func (b *BlinkMDriver) Halt() (errs []error)
- func (b *BlinkMDriver) Name() string
- func (b *BlinkMDriver) Rgb(red byte, green byte, blue byte) (err error)
- func (b *BlinkMDriver) Start() (errs []error)
- type GroveAccelerometerDriver
- type GroveLcdDriver
- type HMC6352Driver
- type I2c
- type I2cReader
- type I2cStarter
- type I2cWriter
- type JHD1313M1Driver
- func (h *JHD1313M1Driver) Clear() error
- func (h *JHD1313M1Driver) Connection() gobot.Connection
- func (h *JHD1313M1Driver) Halt() []error
- func (h *JHD1313M1Driver) Home() error
- func (h *JHD1313M1Driver) Name() string
- func (h *JHD1313M1Driver) Scroll(leftToRight bool) error
- func (h *JHD1313M1Driver) SetCustomChar(pos int, charMap [8]byte) error
- func (h *JHD1313M1Driver) SetPosition(pos int) (err error)
- func (h *JHD1313M1Driver) SetRGB(r, g, b int) error
- func (h *JHD1313M1Driver) Start() []error
- func (h *JHD1313M1Driver) Write(message string) error
- type LIDARLiteDriver
- type MCP23017Config
- type MCP23017Driver
- func (m *MCP23017Driver) Connection() gobot.Connection
- func (m *MCP23017Driver) Halt() (err []error)
- func (m *MCP23017Driver) Name() string
- func (m *MCP23017Driver) ReadGPIO(pin float64, portStr string) (val bool, err error)
- func (m *MCP23017Driver) SetGPIOPolarity(pin uint8, val byte, portStr string) (err error)
- func (m *MCP23017Driver) SetPullUp(pin uint8, val byte, portStr string) error
- func (m *MCP23017Driver) Start() (errs []error)
- func (m *MCP23017Driver) WriteGPIO(pin float64, val float64, portStr string) (err error)
- type MMA7660Driver
- func (h *MMA7660Driver) Acceleration(x, y, z float64) (ax, ay, az float64)
- func (h *MMA7660Driver) Connection() gobot.Connection
- func (h *MMA7660Driver) Halt() (errs []error)
- func (h *MMA7660Driver) Name() string
- func (h *MMA7660Driver) Start() (errs []error)
- func (h *MMA7660Driver) XYZ() (x float64, y float64, z float64, err error)
- type MPL115A2Driver
- type MPU6050Driver
- type ThreeDData
- type WiichuckDriver
Constants ¶
const ( Error = "error" Joystick = "joystick" C = "c" Z = "z" )
const ( REG_RED = 0x04 REG_GREEN = 0x03 REG_BLUE = 0x02 LCD_CLEARDISPLAY = 0x01 LCD_RETURNHOME = 0x02 LCD_ENTRYMODESET = 0x04 LCD_DISPLAYCONTROL = 0x08 LCD_CURSORSHIFT = 0x10 LCD_FUNCTIONSET = 0x20 LCD_SETCGRAMADDR = 0x40 LCD_SETDDRAMADDR = 0x80 LCD_ENTRYRIGHT = 0x00 LCD_ENTRYLEFT = 0x02 LCD_ENTRYSHIFTINCREMENT = 0x01 LCD_ENTRYSHIFTDECREMENT = 0x00 LCD_DISPLAYON = 0x04 LCD_DISPLAYOFF = 0x00 LCD_CURSORON = 0x02 LCD_CURSOROFF = 0x00 LCD_BLINKON = 0x01 LCD_BLINKOFF = 0x00 LCD_DISPLAYMOVE = 0x08 LCD_CURSORMOVE = 0x00 LCD_MOVERIGHT = 0x04 LCD_MOVELEFT = 0x00 LCD_2LINE = 0x08 LCD_CMD = 0x80 LCD_DATA = 0x40 LCD_2NDLINEOFFSET = 0x40 )
const ( MMA7660_X = 0x00 MMA7660_Y = 0x01 MMA7660_Z = 0x02 MMA7660_TILT = 0x03 MMA7660_SRST = 0x04 MMA7660_SPCNT = 0x05 MMA7660_INTSU = 0x06 MMA7660_MODE = 0x07 MMA7660_STAND_BY = 0x00 MMA7660_ACTIVE = 0x01 MMA7660_SR = 0x08 MMA7660_AUTO_SLEEP_120 = 0x00 MMA7660_AUTO_SLEEP_64 = 0x01 MMA7660_AUTO_SLEEP_32 = 0x02 MMA7660_AUTO_SLEEP_16 = 0x03 MMA7660_AUTO_SLEEP_8 = 0x04 MMA7660_AUTO_SLEEP_4 = 0x05 MMA7660_AUTO_SLEEP_2 = 0x06 MMA7660_AUTO_SLEEP_1 = 0x07 MMA7660_PDET = 0x09 MMA7660_PD = 0x0A )
const MPL115A2_REGISTER_A0_COEFF_LSB = 0x05
const MPL115A2_REGISTER_A0_COEFF_MSB = 0x04
const MPL115A2_REGISTER_B1_COEFF_LSB = 0x07
const MPL115A2_REGISTER_B1_COEFF_MSB = 0x06
const MPL115A2_REGISTER_B2_COEFF_LSB = 0x09
const MPL115A2_REGISTER_B2_COEFF_MSB = 0x08
const MPL115A2_REGISTER_C12_COEFF_LSB = 0x0B
const MPL115A2_REGISTER_C12_COEFF_MSB = 0x0A
const MPL115A2_REGISTER_PRESSURE_LSB = 0x01
const MPL115A2_REGISTER_PRESSURE_MSB = 0x00
const MPL115A2_REGISTER_STARTCONVERSION = 0x12
const MPL115A2_REGISTER_TEMP_LSB = 0x03
const MPL115A2_REGISTER_TEMP_MSB = 0x02
const MPU6050_ACCEL_FS_2 = 0x00
const MPU6050_ACONFIG_AFS_SEL_BIT = 4
const MPU6050_ACONFIG_AFS_SEL_LENGTH = 2
const MPU6050_CLOCK_PLL_XGYRO = 0x01
const MPU6050_GCONFIG_FS_SEL_BIT = 4
const MPU6050_GCONFIG_FS_SEL_LENGTH = 2
const MPU6050_GYRO_FS_250 = 0x00
const MPU6050_PWR1_CLKSEL_BIT = 2
const MPU6050_PWR1_CLKSEL_LENGTH = 3
const MPU6050_PWR1_ENABLE_BIT = 0
const MPU6050_PWR1_SLEEP_BIT = 6
const MPU6050_RA_ACCEL_CONFIG = 0x1C
const MPU6050_RA_ACCEL_XOUT_H = 0x3B
const MPU6050_RA_GYRO_CONFIG = 0x1B
const MPU6050_RA_PWR_MGMT_1 = 0x6B
Variables ¶
var ( ErrEncryptedBytes = errors.New("Encrypted bytes") ErrNotEnoughBytes = errors.New("Not enough bytes read") ErrNotReady = errors.New("Device is not ready") ErrInvalidPosition = errors.New("Invalid position value") )
var CustomLCDChars = map[string][8]byte{ "é": [8]byte{130, 132, 142, 145, 159, 144, 142, 128}, "è": [8]byte{136, 132, 142, 145, 159, 144, 142, 128}, "ê": [8]byte{132, 138, 142, 145, 159, 144, 142, 128}, "à": [8]byte{136, 134, 128, 142, 145, 147, 141, 128}, "â": [8]byte{132, 138, 128, 142, 145, 147, 141, 128}, "á": [8]byte{2, 4, 14, 1, 15, 17, 15, 0}, "î": [8]byte{132, 138, 128, 140, 132, 132, 142, 128}, "í": [8]byte{2, 4, 12, 4, 4, 4, 14, 0}, "û": [8]byte{132, 138, 128, 145, 145, 147, 141, 128}, "ù": [8]byte{136, 134, 128, 145, 145, 147, 141, 128}, "ñ": [8]byte{14, 0, 22, 25, 17, 17, 17, 0}, "ó": [8]byte{2, 4, 14, 17, 17, 17, 14, 0}, "heart": [8]byte{0, 10, 31, 31, 31, 14, 4, 0}, "smiley": [8]byte{0, 0, 10, 0, 0, 17, 14, 0}, "frowney": [8]byte{0, 0, 10, 0, 0, 0, 14, 17}, }
CustomLCDChars is a map of CGRAM characters that can be loaded into a LCD screen to display custom characters. Some LCD screens such as the Grove screen (jhd1313m1) isn't loaded with latin 1 characters. It's up to the developer to load the set up to 8 custom characters and update the input text so the character is swapped by a byte reflecting the position of the custom character to use. See SetCustomChar
var (
Debug = true // Set this to true to see debugging information
)
Functions ¶
This section is empty.
Types ¶
type BlinkMDriver ¶
func NewBlinkMDriver ¶
func NewBlinkMDriver(a I2c, name string) *BlinkMDriver
NewBlinkMDriver creates a new BlinkMDriver with specified name.
Adds the following API commands:
Rgb - sets RGB color Fade - fades the RGB color FirmwareVersion - returns the version of the current Frimware Color - returns the color of the LED.
func (*BlinkMDriver) Color ¶
func (b *BlinkMDriver) Color() (color []byte, err error)
Color returns an array with current rgb color
func (*BlinkMDriver) Connection ¶
func (b *BlinkMDriver) Connection() gobot.Connection
func (*BlinkMDriver) Fade ¶
func (b *BlinkMDriver) Fade(red byte, green byte, blue byte) (err error)
Fade removes color using r,g,b params
func (*BlinkMDriver) FirmwareVersion ¶
func (b *BlinkMDriver) FirmwareVersion() (version string, err error)
FirmwareVersion returns version with MAYOR.minor format
func (*BlinkMDriver) Halt ¶
func (b *BlinkMDriver) Halt() (errs []error)
Halt returns true if device is halted successfully
func (*BlinkMDriver) Name ¶
func (b *BlinkMDriver) Name() string
type GroveAccelerometerDriver ¶
type GroveAccelerometerDriver struct {
*MMA7660Driver
}
func NewGroveAccelerometerDriver ¶
func NewGroveAccelerometerDriver(a I2c, name string) *GroveAccelerometerDriver
NewGroveAccelerometerDriver creates a new driver with specified name and i2c interface
type GroveLcdDriver ¶
type GroveLcdDriver struct {
*JHD1313M1Driver
}
GroveLcdDriver is a driver for the Jhd1313m1 LCD display which has two i2c addreses, one belongs to a controller and the other controls solely the backlight. This module was tested with the Seed Grove LCD RGB Backlight v2.0 display which requires 5V to operate. http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight
func NewGroveLcdDriver ¶
func NewGroveLcdDriver(a I2c, name string) *GroveLcdDriver
NewGroveLcdDriver creates a new driver with specified name and i2c interface.
type HMC6352Driver ¶
type HMC6352Driver struct {
// contains filtered or unexported fields
}
func NewHMC6352Driver ¶
func NewHMC6352Driver(a I2c, name string) *HMC6352Driver
NewHMC6352Driver creates a new driver with specified name and i2c interface
func (*HMC6352Driver) Connection ¶
func (h *HMC6352Driver) Connection() gobot.Connection
func (*HMC6352Driver) Halt ¶
func (h *HMC6352Driver) Halt() (errs []error)
Halt returns true if devices is halted successfully
func (*HMC6352Driver) Heading ¶
func (h *HMC6352Driver) Heading() (heading uint16, err error)
Heading returns the current heading
func (*HMC6352Driver) Name ¶
func (h *HMC6352Driver) Name() string
func (*HMC6352Driver) Start ¶
func (h *HMC6352Driver) Start() (errs []error)
Start initialized the hmc6352
type I2cStarter ¶
type JHD1313M1Driver ¶
type JHD1313M1Driver struct {
// contains filtered or unexported fields
}
JHD1313M1Driver is a driver for the Jhd1313m1 LCD display which has two i2c addreses, one belongs to a controller and the other controls solely the backlight. This module was tested with the Seed Grove LCD RGB Backlight v2.0 display which requires 5V to operate. http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight
func NewJHD1313M1Driver ¶
func NewJHD1313M1Driver(a I2c, name string) *JHD1313M1Driver
NewJHD1313M1Driver creates a new driver with specified name and i2c interface.
func (*JHD1313M1Driver) Clear ¶
func (h *JHD1313M1Driver) Clear() error
Clear clears the text on the lCD display.
func (*JHD1313M1Driver) Connection ¶
func (h *JHD1313M1Driver) Connection() gobot.Connection
Connection returns the driver connection to the device.
func (*JHD1313M1Driver) Home ¶
func (h *JHD1313M1Driver) Home() error
Home sets the cursor to the origin position on the display.
func (*JHD1313M1Driver) Name ¶
func (h *JHD1313M1Driver) Name() string
Name returns the name the JHD1313M1 Driver was given when created.
func (*JHD1313M1Driver) Scroll ¶
func (h *JHD1313M1Driver) Scroll(leftToRight bool) error
func (*JHD1313M1Driver) SetCustomChar ¶
func (h *JHD1313M1Driver) SetCustomChar(pos int, charMap [8]byte) error
CustomChar sets one of the 8 CGRAM locations with a custom character. The custom character can be used by writing a byte of value 0 to 7. When you are using LCD as 5x8 dots in function set then you can define a total of 8 user defined patterns (1 Byte for each row and 8 rows for each pattern). Use http://www.8051projects.net/lcd-interfacing/lcd-custom-character.php to create your own characters. To use a custom character, write byte value of the custom character position as a string after having setup the custom character.
func (*JHD1313M1Driver) SetPosition ¶
func (h *JHD1313M1Driver) SetPosition(pos int) (err error)
SetPosition sets the cursor and the data display to pos. 0..15 are the positions in the first display line. 16..32 are the positions in the second display line.
func (*JHD1313M1Driver) SetRGB ¶
func (h *JHD1313M1Driver) SetRGB(r, g, b int) error
SetRGB sets the Red Green Blue value of backlit.
func (*JHD1313M1Driver) Start ¶
func (h *JHD1313M1Driver) Start() []error
Start starts the backlit and the screen and initializes the states.
func (*JHD1313M1Driver) Write ¶
func (h *JHD1313M1Driver) Write(message string) error
Write displays the passed message on the screen.
type LIDARLiteDriver ¶
type LIDARLiteDriver struct {
// contains filtered or unexported fields
}
func NewLIDARLiteDriver ¶
func NewLIDARLiteDriver(a I2c, name string) *LIDARLiteDriver
NewLIDARLiteDriver creates a new driver with specified name and i2c interface
func (*LIDARLiteDriver) Connection ¶
func (h *LIDARLiteDriver) Connection() gobot.Connection
func (*LIDARLiteDriver) Distance ¶
func (h *LIDARLiteDriver) Distance() (distance int, err error)
Distance returns the current distance in cm
func (*LIDARLiteDriver) Halt ¶
func (h *LIDARLiteDriver) Halt() (errs []error)
Halt returns true if devices is halted successfully
func (*LIDARLiteDriver) Name ¶
func (h *LIDARLiteDriver) Name() string
func (*LIDARLiteDriver) Start ¶
func (h *LIDARLiteDriver) Start() (errs []error)
Start initialized the LIDAR
type MCP23017Config ¶
type MCP23017Config struct { Bank uint8 Mirror uint8 Seqop uint8 Disslw uint8 Haen uint8 Odr uint8 Intpol uint8 }
MCP23017Config contains the device configuration settings to be loaded at startup.
type MCP23017Driver ¶
type MCP23017Driver struct { gobot.Commander gobot.Eventer // contains filtered or unexported fields }
MCP23107Driver contains the driver configuration parameters.
func NewMCP23017Driver ¶
func NewMCP23017Driver(a I2c, name string, conf MCP23017Config, deviceAddress int, v ...time.Duration) *MCP23017Driver
NewMCP23017Driver creates a new driver with specified name and i2c interface.
func (*MCP23017Driver) Connection ¶
func (m *MCP23017Driver) Connection() gobot.Connection
func (*MCP23017Driver) Halt ¶
func (m *MCP23017Driver) Halt() (err []error)
func (*MCP23017Driver) Name ¶
func (m *MCP23017Driver) Name() string
func (*MCP23017Driver) ReadGPIO ¶
func (m *MCP23017Driver) ReadGPIO(pin float64, portStr string) (val bool, err error)
ReadGPIO reads a value from a given gpio pin (0-7) and a port (A or B).
func (*MCP23017Driver) SetGPIOPolarity ¶
func (m *MCP23017Driver) SetGPIOPolarity(pin uint8, val byte, portStr string) (err error)
SetGPIOPolarity will change a given pin's polarity based on the value: val = 1 opposite logic state of the input pin. val = 0 same logic state of the input pin.
func (*MCP23017Driver) SetPullUp ¶
func (m *MCP23017Driver) SetPullUp(pin uint8, val byte, portStr string) error
SetPullUp sets the pull up state of a given pin based on the value: val = 1 pull up enabled. val = 0 pull up disabled.
func (*MCP23017Driver) Start ¶
func (m *MCP23017Driver) Start() (errs []error)
Start writes initialization bytes and reads.
type MMA7660Driver ¶
type MMA7660Driver struct {
// contains filtered or unexported fields
}
func NewMMA7660Driver ¶
func NewMMA7660Driver(a I2c, name string) *MMA7660Driver
NewMMA7660Driver creates a new driver with specified name and i2c interface
func (*MMA7660Driver) Acceleration ¶
func (h *MMA7660Driver) Acceleration(x, y, z float64) (ax, ay, az float64)
Acceleration returns the acceleration of the provided x, y, z
func (*MMA7660Driver) Connection ¶
func (h *MMA7660Driver) Connection() gobot.Connection
func (*MMA7660Driver) Halt ¶
func (h *MMA7660Driver) Halt() (errs []error)
Halt returns true if devices is halted successfully
func (*MMA7660Driver) Name ¶
func (h *MMA7660Driver) Name() string
func (*MMA7660Driver) Start ¶
func (h *MMA7660Driver) Start() (errs []error)
Start initialized the mma7660
type MPL115A2Driver ¶
type MPL115A2Driver struct { gobot.Eventer A0 float32 B1 float32 B2 float32 C12 float32 Pressure float32 Temperature float32 // contains filtered or unexported fields }
func NewMPL115A2Driver ¶
func NewMPL115A2Driver(a I2c, name string, v ...time.Duration) *MPL115A2Driver
NewMPL115A2Driver creates a new driver with specified name and i2c interface
func (*MPL115A2Driver) Connection ¶
func (h *MPL115A2Driver) Connection() gobot.Connection
func (*MPL115A2Driver) Halt ¶
func (h *MPL115A2Driver) Halt() (err []error)
Halt returns true if devices is halted successfully
func (*MPL115A2Driver) Name ¶
func (h *MPL115A2Driver) Name() string
func (*MPL115A2Driver) Start ¶
func (h *MPL115A2Driver) Start() (errs []error)
Start writes initialization bytes and reads from adaptor using specified interval to accelerometer andtemperature data
type MPU6050Driver ¶
type MPU6050Driver struct { Accelerometer ThreeDData Gyroscope ThreeDData Temperature int16 gobot.Eventer // contains filtered or unexported fields }
func NewMPU6050Driver ¶
func NewMPU6050Driver(a I2c, name string, v ...time.Duration) *MPU6050Driver
NewMPU6050Driver creates a new driver with specified name and i2c interface
func (*MPU6050Driver) Connection ¶
func (h *MPU6050Driver) Connection() gobot.Connection
func (*MPU6050Driver) Halt ¶
func (h *MPU6050Driver) Halt() (errs []error)
Halt returns true if devices is halted successfully
func (*MPU6050Driver) Name ¶
func (h *MPU6050Driver) Name() string
func (*MPU6050Driver) Start ¶
func (h *MPU6050Driver) Start() (errs []error)
Start writes initialization bytes and reads from adaptor using specified interval to accelerometer andtemperature data
type ThreeDData ¶
type WiichuckDriver ¶
func NewWiichuckDriver ¶
func NewWiichuckDriver(a I2c, name string, v ...time.Duration) *WiichuckDriver
NewWiichuckDriver creates a WiichuckDriver with specified i2c interface and name.
It adds the following events:
"z"- Gets triggered every interval amount of time if the z button is pressed "c" - Gets triggered every interval amount of time if the c button is pressed "joystick" - Gets triggered every "interval" amount of time if a joystick event occured, you can access values x, y "error" - Gets triggered whenever the WiichuckDriver encounters an error
func (*WiichuckDriver) Connection ¶
func (w *WiichuckDriver) Connection() gobot.Connection
func (*WiichuckDriver) Halt ¶
func (w *WiichuckDriver) Halt() (errs []error)
Halt returns true if driver is halted successfully
func (*WiichuckDriver) Name ¶
func (w *WiichuckDriver) Name() string
func (*WiichuckDriver) Start ¶
func (w *WiichuckDriver) Start() (errs []error)
Start initilizes i2c and reads from adaptor using specified interval to update with new value