Documentation ¶
Overview ¶
Package i2c provides Gobot drivers for i2c devices.
Installing:
go get -d -u gobot.io/x/gobot/v2
For further information refer to i2c README: https://github.com/hybridgroup/gobot/blob/master/drivers/i2c/README.md
Index ¶
- Constants
- Variables
- func NewConnection(bus gobot.I2cSystemDevicer, address int) (connection *i2cConnection)
- func PCF8591ParseModeChan(description string) (*pcf8591ModeChan, error)
- func WithADS1x15BestGainForVoltage(voltage float64) func(Config)
- func WithADS1x15ChannelBestGainForVoltage(channel int, voltage float64) func(Config)
- func WithADS1x15ChannelDataRate(channel int, val int) func(Config)
- func WithADS1x15ChannelGain(channel int, val int) func(Config)
- func WithADS1x15DataRate(val int) func(Config)
- func WithADS1x15Gain(val int) func(Config)
- func WithADS1x15WaitSingleCycle() func(Config)
- func WithADXL345DataOutputRate(val ADXL345RateConfig) func(Config)
- func WithADXL345FullScaleRange(val ADXL345FsRangeConfig) func(Config)
- func WithADXL345LowPowerMode(val bool) func(Config)
- func WithAddress(address int) func(Config)
- func WithBME280HumidityOversampling(val BME280HumidityOversampling) func(Config)
- func WithBME280IIRFilter(val BMP280IIRFilter) func(Config)
- func WithBME280PressureOversampling(val BMP280PressureOversampling) func(Config)
- func WithBME280TemperatureOversampling(val BMP280TemperatureOversampling) func(Config)
- func WithBMP180OversamplingMode(val BMP180OversamplingMode) func(Config)
- func WithBMP280IIRFilter(val BMP280IIRFilter) func(Config)
- func WithBMP280PressureOversampling(val BMP280PressureOversampling) func(Config)
- func WithBMP280TemperatureOversampling(val BMP280TemperatureOversampling) func(Config)
- func WithBMP388IIRFilter(val BMP388IIRFilter) func(Config)
- func WithBus(bus int) func(Config)
- func WithCCS811MeasMode(mode CCS811DriveMode) func(Config)
- func WithCCS811NTCResistance(val uint32) func(Config)
- func WithHMC5883LApplyBias(val int) func(Config)
- func WithHMC5883LDataOutputRate(val int) func(Config)
- func WithHMC5883LGain(val int) func(Config)
- func WithHMC5883LSamplesAveraged(val int) func(Config)
- func WithL3GD20HFullScaleRange(val L3GD20HScale) func(Config)
- func WithMCP23017AutoIODirOff(val uint8) func(Config)
- func WithMCP23017Bank(val uint8) func(Config)
- func WithMCP23017Disslw(val uint8) func(Config)
- func WithMCP23017ForceRefresh(val uint8) func(Config)
- func WithMCP23017Haen(val uint8) func(Config)
- func WithMCP23017Intpol(val uint8) func(Config)
- func WithMCP23017Mirror(val uint8) func(Config)
- func WithMCP23017Odr(val uint8) func(Config)
- func WithMCP23017Seqop(val uint8) func(Config)
- func WithMPU6050AccelFullScaleRange(val MPU6050AccelFsConfig) func(Config)
- func WithMPU6050ClockSource(val MPU6050Pwr1ClockConfig) func(Config)
- func WithMPU6050DigitalFilter(val MPU6050DlpfConfig) func(Config)
- func WithMPU6050FrameSync(val MPU6050FrameSyncConfig) func(Config)
- func WithMPU6050Gravity(val float64) func(Config)
- func WithMPU6050GyroFullScaleRange(val MPU6050GyroFsConfig) func(Config)
- func WithPCF8583Mode(mode PCF8583Control) func(Config)
- func WithPCF8591ForceRefresh(val uint8) func(Config)
- func WithPCF8591With400kbitStabilization(additionalReadWrite, additionalRead int) func(Config)
- func WithSSD1306DisplayHeight(val int) func(Config)
- func WithSSD1306DisplayWidth(val int) func(Config)
- func WithSSD1306ExternalVCC(val bool) func(Config)
- func WithTH02FastMode(val int) func(Config)
- func WithTSL2561AutoGain(c Config)
- func WithTSL2561Gain16X(c Config)
- func WithTSL2561Gain1X(c Config)
- func WithTSL2561IntegrationTime101MS(c Config)
- func WithTSL2561IntegrationTime13MS(c Config)
- func WithTSL2561IntegrationTime402MS(c Config)
- func WithYL40InputScaler(pin YL40Pin, scaler func(input int) (value float64)) func(Config)
- func WithYL40Interval(pin YL40Pin, val time.Duration) func(Config)
- func WithYL40OutputScaler(scaler func(input float64) (value int)) func(Config)
- type ADS1x15Driver
- func (d *ADS1x15Driver) AnalogRead(pin string) (value int, err error)
- func (d *ADS1x15Driver) Read(channel int, gain int, dataRate int) (value float64, err error)
- func (d *ADS1x15Driver) ReadDifference(diff int, gain int, dataRate int) (value float64, err error)
- func (d *ADS1x15Driver) ReadDifferenceWithDefaults(diff int) (value float64, err error)
- func (d *ADS1x15Driver) ReadWithDefaults(channel int) (value float64, err error)
- type ADXL345Driver
- func (d *ADXL345Driver) RawXYZ() (int16, int16, int16, error)
- func (d *ADXL345Driver) SetRange(fullScaleRange ADXL345FsRangeConfig) (err error)
- func (d *ADXL345Driver) SetRate(rate ADXL345RateConfig) (err error)
- func (d *ADXL345Driver) UseLowPower(lowPower bool) (err error)
- func (d *ADXL345Driver) XYZ() (float64, float64, float64, error)
- type ADXL345FsRangeConfig
- type ADXL345RateConfig
- type Adafruit1109Driver
- func (d *Adafruit1109Driver) Connect() error
- func (d *Adafruit1109Driver) Connection() gobot.Connection
- func (d *Adafruit1109Driver) DigitalRead(id string) (int, error)
- func (d *Adafruit1109Driver) DigitalWrite(id string, val byte) error
- func (d *Adafruit1109Driver) DownButton() (uint8, error)
- func (d *Adafruit1109Driver) Finalize() error
- func (d *Adafruit1109Driver) Halt() error
- func (d *Adafruit1109Driver) LeftButton() (uint8, error)
- func (d *Adafruit1109Driver) Name() string
- func (d *Adafruit1109Driver) RightButton() (uint8, error)
- func (d *Adafruit1109Driver) SelectButton() (uint8, error)
- func (d *Adafruit1109Driver) SetName(n string)
- func (d *Adafruit1109Driver) SetRGB(r, g, b bool) error
- func (d *Adafruit1109Driver) Start() error
- func (d *Adafruit1109Driver) UpButton() (uint8, error)
- type AdafruitDirection
- type AdafruitMotorHatDriver
- func (a *AdafruitMotorHatDriver) Connection() gobot.Connection
- func (a *AdafruitMotorHatDriver) Halt() (err error)
- func (a *AdafruitMotorHatDriver) Name() string
- func (a *AdafruitMotorHatDriver) RunDCMotor(dcMotor int, dir AdafruitDirection) (err error)
- func (a *AdafruitMotorHatDriver) SetDCMotorSpeed(dcMotor int, speed int32) (err error)
- func (a *AdafruitMotorHatDriver) SetMotorHatAddress(addr int) (err error)
- func (a *AdafruitMotorHatDriver) SetName(n string)
- func (a *AdafruitMotorHatDriver) SetServoHatAddress(addr int) (err error)
- func (a *AdafruitMotorHatDriver) SetServoMotorFreq(freq float64) (err error)
- func (a *AdafruitMotorHatDriver) SetServoMotorPulse(channel byte, on, off int32) (err error)
- func (a *AdafruitMotorHatDriver) SetStepperMotorSpeed(stepperMotor int, rpm int) (err error)
- func (a *AdafruitMotorHatDriver) Start() (err error)
- func (a *AdafruitMotorHatDriver) Step(motor, steps int, dir AdafruitDirection, style AdafruitStepStyle) (err error)
- type AdafruitStepStyle
- type BH1750Driver
- type BME280Driver
- type BME280HumidityOversampling
- type BMP180Driver
- type BMP180OversamplingMode
- type BMP280Driver
- type BMP280IIRFilter
- type BMP280PressureOversampling
- type BMP280TemperatureOversampling
- type BMP388Accuracy
- type BMP388Driver
- type BMP388IIRFilter
- type BlinkMDriver
- type CCS811DriveMode
- type CCS811Driver
- func (d *CCS811Driver) DisableExternalInterrupt() error
- func (d *CCS811Driver) EnableExternalInterrupt() error
- func (d *CCS811Driver) GetFirmwareAppVersion() (uint16, error)
- func (d *CCS811Driver) GetFirmwareBootVersion() (uint16, error)
- func (d *CCS811Driver) GetGasData() (uint16, uint16, error)
- func (d *CCS811Driver) GetHardwareVersion() (uint8, error)
- func (d *CCS811Driver) GetStatus() (*CCS811Status, error)
- func (d *CCS811Driver) GetTemperature() (float32, error)
- func (d *CCS811Driver) HasData() (bool, error)
- type CCS811MeasMode
- type CCS811Status
- type Config
- type Connection
- type Connector
- type DRV2605LDriver
- func (d *DRV2605LDriver) GetPauseWaveform(delayTime10MS uint8) (pauseID uint8)
- func (d *DRV2605LDriver) Go() (err error)
- func (d *DRV2605LDriver) SelectLibrary(library uint8) (err error)
- func (d *DRV2605LDriver) SetMode(newMode DRV2605Mode) (err error)
- func (d *DRV2605LDriver) SetSequence(waveforms []uint8) (err error)
- func (d *DRV2605LDriver) SetStandbyMode(standby bool) (err error)
- type DRV2605Mode
- type DisplayBuffer
- type Driver
- type GenericDriver
- func (d *GenericDriver) Read(data []byte) error
- func (d *GenericDriver) ReadBlockData(reg uint8, data []byte) error
- func (d *GenericDriver) ReadByte() (byte, error)
- func (d *GenericDriver) ReadByteData(reg uint8) (byte, error)
- func (d *GenericDriver) ReadData(reg uint8, data []byte) error
- func (d *GenericDriver) ReadWordData(reg uint8) (uint16, error)
- func (d *GenericDriver) Write(data []byte) error
- func (d *GenericDriver) WriteBlockData(reg uint8, data []byte) error
- func (d *GenericDriver) WriteByte(val byte) error
- func (d *GenericDriver) WriteByteData(reg uint8, val byte) error
- func (d *GenericDriver) WriteData(reg uint8, data []byte) error
- func (d *GenericDriver) WriteWordData(reg uint8, val uint16) error
- type GroveAccelerometerDriver
- type GroveLcdDriver
- type GrovePiDriver
- func (d *GrovePiDriver) AnalogRead(pin string) (value int, err error)
- func (d *GrovePiDriver) AnalogWrite(pin string, val int) error
- func (d *GrovePiDriver) Connect() error
- func (d *GrovePiDriver) DHTRead(pin string, sensorType byte, duration int) (temp float32, hum float32, err error)
- func (d *GrovePiDriver) DigitalRead(pin string) (int, error)
- func (d *GrovePiDriver) DigitalWrite(pin string, val byte) error
- func (d *GrovePiDriver) Finalize() error
- func (d *GrovePiDriver) FirmwareVersionRead() (string, error)
- func (d *GrovePiDriver) SetPinMode(pin byte, mode string) error
- func (d *GrovePiDriver) UltrasonicRead(pin string, duration int) (int, error)
- type HMC5883LDriver
- type HMC6352Driver
- type INA3221Channel
- type INA3221Driver
- func (i *INA3221Driver) GetBusVoltage(channel INA3221Channel) (float64, error)
- func (i *INA3221Driver) GetCurrent(channel INA3221Channel) (float64, error)
- func (i *INA3221Driver) GetLoadVoltage(channel INA3221Channel) (float64, error)
- func (i *INA3221Driver) GetShuntVoltage(channel INA3221Channel) (float64, error)
- 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(lr bool) error
- func (h *JHD1313M1Driver) SetCustomChar(pos int, charMap [8]byte) error
- func (h *JHD1313M1Driver) SetName(n string)
- func (h *JHD1313M1Driver) SetPosition(pos int) (err error)
- func (h *JHD1313M1Driver) SetRGB(r, g, b int) error
- func (h *JHD1313M1Driver) Start() (err error)
- func (h *JHD1313M1Driver) Write(message string) error
- type L3GD20HDriver
- type L3GD20HScale
- type LIDARLiteDriver
- type MCP23017Driver
- func (m *MCP23017Driver) ReadGPIO(pin uint8, portStr string) (val uint8, err error)
- func (m *MCP23017Driver) SetGPIOPolarity(pin uint8, portStr string, val uint8) (err error)
- func (m *MCP23017Driver) SetPinMode(pin uint8, portStr string, val uint8) (err error)
- func (m *MCP23017Driver) SetPullUp(pin uint8, portStr string, val uint8) error
- func (m *MCP23017Driver) WriteGPIO(pin uint8, portStr string, val uint8) (err error)
- type MFRC522Driver
- type MMA7660Driver
- type MPL115A2Driver
- type MPU6050AccelFsConfig
- type MPU6050DlpfConfig
- type MPU6050Driver
- type MPU6050FrameSyncConfig
- type MPU6050GyroFsConfig
- type MPU6050Pwr1ClockConfig
- type MPU6050ThreeDData
- type PCA9501Driver
- type PCA953xDriver
- func (d *PCA953xDriver) ReadDutyCyclePercent(idx uint8) (float32, error)
- func (d *PCA953xDriver) ReadFrequency(idx uint8) (float32, error)
- func (d *PCA953xDriver) ReadGPIO(idx uint8) (uint8, error)
- func (d *PCA953xDriver) ReadPeriod(idx uint8) (float32, error)
- func (d *PCA953xDriver) SetLED(idx uint8, mode PCA953xGPIOMode) error
- func (d *PCA953xDriver) WriteDutyCyclePercent(idx uint8, valPercent float32) error
- func (d *PCA953xDriver) WriteFrequency(idx uint8, valHz float32) error
- func (d *PCA953xDriver) WriteGPIO(idx uint8, val uint8) error
- func (d *PCA953xDriver) WritePeriod(idx uint8, valSec float32) error
- type PCA953xGPIOMode
- type PCA9685Driver
- func (p *PCA9685Driver) PwmWrite(pin string, val byte) (err error)
- func (p *PCA9685Driver) ServoWrite(pin string, val byte) (err error)
- func (p *PCA9685Driver) SetAllPWM(on uint16, off uint16) (err error)
- func (p *PCA9685Driver) SetPWM(channel int, on uint16, off uint16) (err error)
- func (p *PCA9685Driver) SetPWMFreq(freq float32) error
- type PCF8583Control
- type PCF8583Driver
- func (d *PCF8583Driver) ReadCounter() (val int32, err error)
- func (d *PCF8583Driver) ReadRAM(address uint8) (val uint8, err error)
- func (d *PCF8583Driver) ReadTime() (val time.Time, err error)
- func (d *PCF8583Driver) WriteCounter(val int32) error
- func (d *PCF8583Driver) WriteRAM(address uint8, val uint8) error
- func (d *PCF8583Driver) WriteTime(val time.Time) error
- type PCF8591Channel
- type PCF8591Driver
- type SHT2xDriver
- type SHT3xDriver
- func (s *SHT3xDriver) Accuracy() byte
- func (s *SHT3xDriver) Heater() (status bool, err error)
- func (s *SHT3xDriver) Sample() (temp float32, rh float32, err error)
- func (s *SHT3xDriver) SerialNumber() (sn uint32, err error)
- func (s *SHT3xDriver) SetAccuracy(a byte) (err error)
- func (s *SHT3xDriver) SetHeater(enabled bool) (err error)
- type SSD1306Driver
- func (s *SSD1306Driver) Clear()
- func (s *SSD1306Driver) Display() (err error)
- func (s *SSD1306Driver) Init() (err error)
- func (s *SSD1306Driver) Off() (err error)
- func (s *SSD1306Driver) On() (err error)
- func (s *SSD1306Driver) Reset() (err error)
- func (s *SSD1306Driver) Set(x, y, c int)
- func (s *SSD1306Driver) SetContrast(contrast byte) (err error)
- func (s *SSD1306Driver) ShowImage(img image.Image) (err error)
- type SSD1306Init
- type TH02Driver
- func (s *TH02Driver) Accuracy() byte
- func (s *TH02Driver) FastMode() (bool, error)
- func (s *TH02Driver) Heater() (bool, error)
- func (s *TH02Driver) Sample() (temperature float32, relhumidity float32, _ error)
- func (s *TH02Driver) SerialNumber() (uint8, error)
- func (s *TH02Driver) SetAccuracy(a byte)
- func (s *TH02Driver) SetHeater(state bool) error
- type TSL2561Driver
- type TSL2561Gain
- type TSL2561IntegrationTime
- type WiichuckDriver
- type YL40Driver
- func (y *YL40Driver) AIN2() (val float64, err error)
- func (y *YL40Driver) AOUT() (val float64, err error)
- func (y *YL40Driver) Brightness() (val float64, err error)
- func (y *YL40Driver) Halt() (err error)
- func (y *YL40Driver) Potentiometer() (val float64, err error)
- func (y *YL40Driver) Read(pin YL40Pin) (val float64, err error)
- func (y *YL40Driver) ReadAIN2() (val float64, err error)
- func (y *YL40Driver) ReadBrightness() (val float64, err error)
- func (y *YL40Driver) ReadPotentiometer() (val float64, err error)
- func (y *YL40Driver) ReadTemperature() (val float64, err error)
- func (y *YL40Driver) Start() (err error)
- func (y *YL40Driver) Temperature() (val float64, err error)
- func (y *YL40Driver) Value(pin YL40Pin) (val float64, err error)
- func (y *YL40Driver) Write(val float64) (err error)
- type YL40Pin
Constants ¶
const ( ADXL345Rate_100mHZ ADXL345RateConfig = 0x00 // 0.10 Hz ADXL345Rate_200mHZ ADXL345RateConfig = 0x01 // 0.20 Hz ADXL345Rate_390mHZ ADXL345RateConfig = 0x02 // 0.39 Hz ADXL345Rate_780mHZ ADXL345RateConfig = 0x03 // 0.78 Hz ADXL345Rate_1560mHZ ADXL345RateConfig = 0x04 // 1.56 Hz ADXL345Rate_3130mHZ ADXL345RateConfig = 0x05 // 3.13 Hz ADXL345Rate_6250mHZ ADXL345RateConfig = 0x06 // 6.25 Hz ADXL345Rate_12500mHZ ADXL345RateConfig = 0x07 // 12.5 Hz ADXL345Rate_25HZ ADXL345RateConfig = 0x08 // 25 Hz ADXL345Rate_50HZ ADXL345RateConfig = 0x09 // 50 Hz ADXL345Rate_100HZ ADXL345RateConfig = 0x0A // 100 Hz ADXL345Rate_200HZ ADXL345RateConfig = 0x0B // 200 Hz ADXL345Rate_400HZ ADXL345RateConfig = 0x0C // 400 Hz ADXL345Rate_800HZ ADXL345RateConfig = 0x0D // 800 Hz ADXL345Rate_1600HZ ADXL345RateConfig = 0x0E // 1600 Hz ADXL345Rate_3200HZ ADXL345RateConfig = 0x0F // 3200 Hz ADXL345FsRange_2G ADXL345FsRangeConfig = 0x00 // +-2 g ADXL345FsRange_4G ADXL345FsRangeConfig = 0x01 // +-4 g ADXL345FsRange_8G ADXL345FsRangeConfig = 0x02 // +-8 g ADXL345FsRange_16G ADXL345FsRangeConfig = 0x03 // +-16 g) )
const ( BH1750_POWER_DOWN = 0x00 BH1750_POWER_ON = 0x01 BH1750_RESET = 0x07 BH1750_CONTINUOUS_HIGH_RES_MODE = 0x10 BH1750_CONTINUOUS_HIGH_RES_MODE_2 = 0x11 BH1750_CONTINUOUS_LOW_RES_MODE = 0x13 BH1750_ONE_TIME_HIGH_RES_MODE = 0x20 BH1750_ONE_TIME_HIGH_RES_MODE_2 = 0x21 BH1750_ONE_TIME_LOW_RES_MODE = 0x23 )
const ( // bits 2, 3, 4 of control register (will be shifted on write) BMP280CtrlPressNoMeasurement BMP280PressureOversampling = 0x00 // no measurement (value will be 0x08 0x00 0x00) BMP280CtrlPressOversampling1 BMP280PressureOversampling = 0x01 // resolution 16 bit BMP280CtrlPressOversampling2 BMP280PressureOversampling = 0x02 // resolution 17 bit BMP280CtrlPressOversampling4 BMP280PressureOversampling = 0x03 // resolution 18 bit BMP280CtrlPressOversampling8 BMP280PressureOversampling = 0x04 // resolution 19 bit BMP280CtrlPressOversampling16 BMP280PressureOversampling = 0x05 // resolution 20 bit (same as 0x06, 0x07) // bits 5, 6, 7 of control register (will be shifted on write) BMP280CtrlTempNoMeasurement BMP280TemperatureOversampling = 0x00 // no measurement (value will be 0x08 0x00 0x00) BMP280CtrlTempOversampling1 BMP280TemperatureOversampling = 0x01 // resolution 16 bit BMP280CtrlTempOversampling2 BMP280TemperatureOversampling = 0x02 // resolution 17 bit BMP280CtrlTempOversampling4 BMP280TemperatureOversampling = 0x03 // resolution 18 bit BMP280CtrlTempOversampling8 BMP280TemperatureOversampling = 0x04 // resolution 19 bit BMP280CtrlTempOversampling16 BMP280TemperatureOversampling = 0x05 // resolution 20 bit // bits 5, 6, 7 of config register BMP280ConfFilterOff BMP280IIRFilter = 0x00 BMP280ConfFilter2 BMP280IIRFilter = 0x01 BMP280ConfFilter4 BMP280IIRFilter = 0x02 BMP280ConfFilter8 BMP280IIRFilter = 0x03 BMP280ConfFilter16 BMP280IIRFilter = 0x04 )
const ( // BusNotInitialized is the initial value for a bus BusNotInitialized = -1 // AddressNotInitialized is the initial value for an address AddressNotInitialized = -1 )
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 ( MPU6050General_Dlpf260Hz MPU6050DlpfConfig = 0x00 MPU6050General_Dlpf184Hz MPU6050DlpfConfig = 0x01 MPU6050General_Dlpf94Hz MPU6050DlpfConfig = 0x02 MPU6050General_Dlpf44Hz MPU6050DlpfConfig = 0x03 MPU6050General_Dlpf21Hz MPU6050DlpfConfig = 0x04 MPU6050General_Dlpf10Hz MPU6050DlpfConfig = 0x05 MPU6050General_Dlpf5Hz MPU6050DlpfConfig = 0x06 MPU6050General_FrameSyncDisabled MPU6050FrameSyncConfig = 0x00 MPU6050General_FrameSyncTemp MPU6050FrameSyncConfig = 0x01 MPU6050General_FrameSyncGyroX MPU6050FrameSyncConfig = 0x02 MPU6050General_FrameSyncGyroY MPU6050FrameSyncConfig = 0x03 MPU6050General_FrameSyncGyroZ MPU6050FrameSyncConfig = 0x04 MPU6050General_FrameSyncAccelX MPU6050FrameSyncConfig = 0x05 MPU6050General_FrameSyncAccelY MPU6050FrameSyncConfig = 0x06 MPU6050General_FrameSyncAccelZ MPU6050FrameSyncConfig = 0x07 MPU6050Gyro_FsSel250dps MPU6050GyroFsConfig = 0x00 // +/- 250 °/s MPU6050Gyro_FsSel500dps MPU6050GyroFsConfig = 0x01 // +/- 500 °/s MPU6050Gyro_FsSel1000dps MPU6050GyroFsConfig = 0x02 // +/- 1000 °/s MPU6050Gyro_FsSel2000dps MPU6050GyroFsConfig = 0x03 // +/- 2000 °/s MPU6050Accel_AFsSel2g MPU6050AccelFsConfig = 0x00 // +/- 2 g MPU6050Accel_AFsSel4g MPU6050AccelFsConfig = 0x01 // +/- 4 g MPU6050Accel_AFsSel8g MPU6050AccelFsConfig = 0x02 // +/- 8 g MPU6050Accel_AFsSel16g MPU6050AccelFsConfig = 0x03 // +/- 16 g MPU6050Pwr1_ClockIntern8G MPU6050Pwr1ClockConfig = 0x00 // internal 8GHz MPU6050Pwr1_ClockPllXGyro MPU6050Pwr1ClockConfig = 0x01 // PLL with X axis gyroscope reference MPU6050Pwr1_ClockPllYGyro MPU6050Pwr1ClockConfig = 0x02 // PLL with Y axis gyroscope reference MPU6050Pwr1_ClockPllZGyro MPU6050Pwr1ClockConfig = 0x03 // PLL with Z axis gyroscope reference MPU6050Pwr1_ClockPllExt32K MPU6050Pwr1ClockConfig = 0x04 // PLL with external 32.768kHz reference MPU6050Pwr1_ClockPllExt19M MPU6050Pwr1ClockConfig = 0x05 // PLL with external 19.2MHz reference MPU6050Pwr1_ClockStop MPU6050Pwr1ClockConfig = 0x07 // Stops the clock and keeps the timing generator in reset )
const ( PCA9685_MODE1 = 0x00 PCA9685_MODE2 = 0x01 PCA9685_PRESCALE = 0xFE PCA9685_SUBADR1 = 0x02 PCA9685_SUBADR2 = 0x03 PCA9685_SUBADR3 = 0x04 PCA9685_LED0_ON_L = 0x06 PCA9685_LED0_ON_H = 0x07 PCA9685_LED0_OFF_L = 0x08 PCA9685_LED0_OFF_H = 0x09 PCA9685_ALLLED_ON_L = 0xFA PCA9685_ALLLED_ON_H = 0xFB PCA9685_ALLLED_OFF_L = 0xFC PCA9685_ALLLED_OFF_H = 0xFD PCA9685_RESTART = 0x80 PCA9685_SLEEP = 0x10 PCA9685_ALLCALL = 0x01 PCA9685_INVRT = 0x10 PCA9685_OUTDRV = 0x04 )
const ( // SHT2xAccuracyLow is the faster, but lower accuracy sample setting // 0/1 = 8bit RH, 12bit Temp SHT2xAccuracyLow = byte(0x01) // SHT2xAccuracyMedium is the medium accuracy and speed sample setting // 1/0 = 10bit RH, 13bit Temp SHT2xAccuracyMedium = byte(0x80) // SHT2xAccuracyHigh is the high accuracy and slowest sample setting // 0/0 = 12bit RH, 14bit Temp // Power on default is 0/0 SHT2xAccuracyHigh = byte(0x00) // SHT2xTriggerTempMeasureHold is the command for measureing temperature in hold master mode SHT2xTriggerTempMeasureHold = 0xe3 // SHT2xTriggerHumdMeasureHold is the command for measureing humidity in hold master mode SHT2xTriggerHumdMeasureHold = 0xe5 // SHT2xTriggerTempMeasureNohold is the command for measureing humidity in no hold master mode SHT2xTriggerTempMeasureNohold = 0xf3 // SHT2xTriggerHumdMeasureNohold is the command for measureing humidity in no hold master mode SHT2xTriggerHumdMeasureNohold = 0xf5 // SHT2xWriteUserReg is the command for writing user register SHT2xWriteUserReg = 0xe6 // SHT2xReadUserReg is the command for reading user register SHT2xReadUserReg = 0xe7 // SHT2xReadUserReg is the command for reading user register SHT2xSoftReset = 0xfe )
const ( TH02HighAccuracy = 0 //High Accuracy (T: 14 bit, H: 12 bit), normal (35 ms) TH02LowAccuracy = 1 //Lower Accuracy (T: 13 bit, H: 11 bit), fast (18 ms) )
Accuracy constants for the TH02 devices (deprecated, use WithFastMode() instead)
const ( // TSL2561AddressLow - the address of the device when address pin is low TSL2561AddressLow = 0x29 // TSL2561AddressFloat - the address of the device when address pin is floating TSL2561AddressFloat = 0x39 // TSL2561AddressHigh - the address of the device when address pin is high TSL2561AddressHigh = 0x49 )
const ( // Joystick event when the Wiichuck joystick is moved Joystick = "joystick" // C event when the Wiichuck "C" button is pressed C = "c" // Z event when the Wiichuck "C" button is pressed Z = "z" )
const (
ADXL345AddressPullUp = 0x1D // can be used by WithAddress()
)
ADXL345 supports 2 addresses, which can be changed by the address pin, there is no internal pull-up/down resistor! pin to GND: 0x53, pin to VDD: 0x1D
const (
// Error event
Error = "error"
)
const SHT3xAccuracyHigh = 0x00
SHT3xAccuracyHigh is the high accuracy and slowest sample setting
const SHT3xAccuracyLow = 0x16
SHT3xAccuracyLow is the faster, but lower accuracy sample setting
const SHT3xAccuracyMedium = 0x0b
SHT3xAccuracyMedium is the medium accuracy and speed sample setting
const SHT3xAddressA = 0x44
SHT3xAddressA is the default address of device
const SHT3xAddressB = 0x45
SHT3xAddressB is the optional address of device
Variables ¶
var ( // ErrNotEnoughBytes is used when the count of read bytes was too small ErrNotEnoughBytes = fmt.Errorf("Not enough bytes read") // ErrNotReady is used when the device is not ready ErrNotReady = fmt.Errorf("Device is not ready") )
var ( ErrInvalidAccuracy = errors.New("Invalid accuracy") ErrInvalidCrc = errors.New("Invalid crc") ErrInvalidTemp = errors.New("Invalid temperature units") )
var CustomLCDChars = map[string][8]byte{
"é": {130, 132, 142, 145, 159, 144, 142, 128},
"è": {136, 132, 142, 145, 159, 144, 142, 128},
"ê": {132, 138, 142, 145, 159, 144, 142, 128},
"à": {136, 134, 128, 142, 145, 147, 141, 128},
"â": {132, 138, 128, 142, 145, 147, 141, 128},
"á": {2, 4, 14, 1, 15, 17, 15, 0},
"î": {132, 138, 128, 140, 132, 132, 142, 128},
"í": {2, 4, 12, 4, 4, 4, 14, 0},
"û": {132, 138, 128, 145, 145, 147, 141, 128},
"ù": {136, 134, 128, 145, 145, 147, 141, 128},
"ñ": {14, 0, 22, 25, 17, 17, 17, 0},
"ó": {2, 4, 14, 17, 17, 17, 14, 0},
"heart": {0, 10, 31, 31, 31, 14, 4, 0},
"smiley": {0, 0, 10, 0, 0, 17, 14, 0},
"frowney": {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
Functions ¶
func NewConnection ¶ added in v1.2.0
func NewConnection(bus gobot.I2cSystemDevicer, address int) (connection *i2cConnection)
NewConnection creates and returns a new connection to a specific i2c device on a bus and address.
func PCF8591ParseModeChan ¶ added in v1.16.0
PCF8591ParseModeChan is used to get a working combination between mode (single, mixed, 2 differential, 3 differential) and the related channel to read from, parsed from the given description string.
func WithADS1x15BestGainForVoltage ¶
WithADS1x15BestGainForVoltage option sets the ADS1x15Driver best gain for all channels.
func WithADS1x15ChannelBestGainForVoltage ¶
WithADS1x15ChannelBestGainForVoltage option sets the ADS1x15Driver best gain for one channel.
func WithADS1x15ChannelDataRate ¶
WithADS1x15ChannelDataRate option sets the ADS1x15Driver data rate for one channel. Valid gain settings are any of the DR values in SPS.
func WithADS1x15ChannelGain ¶
WithADS1x15ChannelGain option sets the ADS1x15Driver gain for one channel. Valid gain settings are any of the PGA values (0..7).
func WithADS1x15DataRate ¶ added in v1.5.0
WithADS1x15DataRate option sets the ADS1x15Driver data rate for all channels. Valid gain settings are any of the DR values in SPS.
func WithADS1x15Gain ¶ added in v1.5.0
WithADS1x15Gain option sets the ADS1x15Driver gain for all channels. Valid gain settings are any of the PGA values (0..7).
func WithADS1x15WaitSingleCycle ¶
func WithADS1x15WaitSingleCycle() func(Config)
WithADS1x15WaitSingleCycle option sets the ADS1x15Driver to wait only a single cycle for conversion. According to the specification, chapter "Output Data Rate and Conversion Time", the device normally finishes the conversion within one cycle (after wake up). The cycle time depends on configured data rate and will be calculated. For unknown reasons some devices do not work with this setting. So the default behavior for single shot mode is to wait for a conversion is finished by reading the configuration register bit 15. Activating this option will switch off this behavior and will possibly create faster response. But, if multiple inputs are used and some inputs calculates the same result, most likely the device is not working with this option.
func WithADXL345DataOutputRate ¶
func WithADXL345DataOutputRate(val ADXL345RateConfig) func(Config)
WithADXL345DataOutputRate option sets the data output rate. Valid settings are of type "ADXL345RateConfig"
func WithADXL345FullScaleRange ¶
func WithADXL345FullScaleRange(val ADXL345FsRangeConfig) func(Config)
WithADXL345FullScaleRange option sets the full scale range. Valid settings are of type "ADXL345FsRangeConfig"
func WithADXL345LowPowerMode ¶
WithADXL345LowPowerMode option modifies the low power mode.
func WithAddress ¶ added in v1.2.0
WithAddress sets which address to use as a optional param.
func WithBME280HumidityOversampling ¶
func WithBME280HumidityOversampling(val BME280HumidityOversampling) func(Config)
WithBME280HumidityOversampling option sets the oversampling for humidity. Valid settings are of type "BME280HumidityOversampling"
func WithBME280IIRFilter ¶
func WithBME280IIRFilter(val BMP280IIRFilter) func(Config)
WithBME280IIRFilter option sets the count of IIR filter coefficients. Valid settings are of type "BMP280IIRFilter"
func WithBME280PressureOversampling ¶
func WithBME280PressureOversampling(val BMP280PressureOversampling) func(Config)
WithBME280PressureOversampling option sets the oversampling for pressure. Valid settings are of type "BMP280PressureOversampling"
func WithBME280TemperatureOversampling ¶
func WithBME280TemperatureOversampling(val BMP280TemperatureOversampling) func(Config)
WithBME280TemperatureOversampling option sets oversampling for temperature. Valid settings are of type "BMP280TemperatureOversampling"
func WithBMP180OversamplingMode ¶
func WithBMP180OversamplingMode(val BMP180OversamplingMode) func(Config)
WithBMP180oversampling option sets oversampling mode. Valid settings are of type "BMP180OversamplingMode"
func WithBMP280IIRFilter ¶
func WithBMP280IIRFilter(val BMP280IIRFilter) func(Config)
WithBMP280IIRFilter option sets the count of IIR filter coefficients. Valid settings are of type "BMP280IIRFilter"
func WithBMP280PressureOversampling ¶
func WithBMP280PressureOversampling(val BMP280PressureOversampling) func(Config)
WithBMP280PressureOversampling option sets the oversampling for pressure. Valid settings are of type "BMP280PressureOversampling"
func WithBMP280TemperatureOversampling ¶
func WithBMP280TemperatureOversampling(val BMP280TemperatureOversampling) func(Config)
WithBMP280TemperatureOversampling option sets oversampling for temperature. Valid settings are of type "BMP280TemperatureOversampling"
func WithBMP388IIRFilter ¶
func WithBMP388IIRFilter(val BMP388IIRFilter) func(Config)
WithBMP388IIRFilter option sets count of IIR filter coefficients. Valid settings are of type "BMP388IIRFilter"
func WithCCS811MeasMode ¶ added in v1.13.0
func WithCCS811MeasMode(mode CCS811DriveMode) func(Config)
WithCCS811MeasMode sets the sampling rate of the device
func WithCCS811NTCResistance ¶ added in v1.13.0
WithCCS811NTCResistance sets reistor value used in the temperature calculations. This resistor must be placed between pin 4 and pin 8 of the chip
func WithHMC5883LApplyBias ¶
WithHMC5883LApplyBias option sets to apply a measurement bias. Valid settings are -1 (negative bias), 0 (normal), 1 (positive bias).
func WithHMC5883LDataOutputRate ¶
WithHMC5883LDataOutputRate option sets the data output rate in mHz. Valid settings are 750, 1500, 3000, 7500, 15000, 30000, 75000.
func WithHMC5883LGain ¶
WithHMC5883LGain option sets the gain. Valid settings are 1370, 1090, 820, 660, 440, 390, 330 230 in 1/Gauss.
func WithHMC5883LSamplesAveraged ¶
WithHMC5883LSamplesAveraged option sets the number of samples averaged per measurement. Valid settings are 1, 2, 4, 8.
func WithL3GD20HFullScaleRange ¶
func WithL3GD20HFullScaleRange(val L3GD20HScale) func(Config)
WithL3GD20HFullScaleRange option sets the full scale range for the gyroscope. Valid settings are of type "L3GD20HScale"
func WithMCP23017AutoIODirOff ¶ added in v1.16.0
WithMCP23017AutoIODirOff option modifies the MCP23017Driver autoIODirOff option Set IO direction at each read or write operation ensures the correct direction, which is the the default setting. Most hardware is configured statically, so this can avoided by setting the direction using SetPinMode(), e.g. in the start up sequence. If this way is taken, the automatic set of direction at each call can be safely deactivated with this flag (set to true, 1). This will speedup each WriteGPIO by 50% and each ReadGPIO by 60%.
func WithMCP23017Bank ¶ added in v1.2.0
WithMCP23017Bank option sets the MCP23017Driver bank option
func WithMCP23017Disslw ¶ added in v1.2.0
WithMCP23017Disslw option sets the MCP23017Driver disslw option
func WithMCP23017ForceRefresh ¶ added in v1.16.0
WithMCP23017ForceWrite option modifies the MCP23017Driver forceRefresh option Setting to true (1) will force refresh operation to register, although there is no change. Normally this is not needed, so default is off (0). When there is something flaky, there is a small chance to stabilize by setting this flag to true. However, setting this flag to true slows down each IO operation up to 100%.
func WithMCP23017Haen ¶ added in v1.2.0
WithMCP23017Haen option sets the MCP23017Driver haen option This feature is only available for MCP23S17, because address pins are always enabled on the MCP23017.
func WithMCP23017Intpol ¶ added in v1.2.0
WithMCP23017Intpol option sets the MCP23017Driver intpol option
func WithMCP23017Mirror ¶ added in v1.2.0
WithMCP23017Mirror option sets the MCP23017Driver mirror option
func WithMCP23017Odr ¶ added in v1.2.0
WithMCP23017Odr option sets the MCP23017Driver odr option
func WithMCP23017Seqop ¶ added in v1.2.0
WithMCP23017Seqop option sets the MCP23017Driver seqop option
func WithMPU6050AccelFullScaleRange ¶
func WithMPU6050AccelFullScaleRange(val MPU6050AccelFsConfig) func(Config)
WithMPU6050AccelFullScaleRange option sets the full scale range for the accelerometer. Valid settings are of type "MPU6050AccelFsConfig"
func WithMPU6050ClockSource ¶
func WithMPU6050ClockSource(val MPU6050Pwr1ClockConfig) func(Config)
WithMPU6050ClockSource option sets the clock source. Valid settings are of type "MPU6050Pwr1ClockConfig"
func WithMPU6050DigitalFilter ¶
func WithMPU6050DigitalFilter(val MPU6050DlpfConfig) func(Config)
WithMPU6050DigitalFilter option sets the digital low pass filter bandwidth frequency. Valid settings are of type "MPU6050DlpfConfig"
func WithMPU6050FrameSync ¶
func WithMPU6050FrameSync(val MPU6050FrameSyncConfig) func(Config)
WithMPU6050FrameSync option sets the external frame synchronization. Valid settings are of type "MPU6050FrameSyncConfig"
func WithMPU6050Gravity ¶
WithMPU6050Gravity option sets the gravity in [m/s²/g]. Useful settings are "1.0" (to use unit "g") or a value between 9.834 (pole) and 9.764 (equator)
func WithMPU6050GyroFullScaleRange ¶
func WithMPU6050GyroFullScaleRange(val MPU6050GyroFsConfig) func(Config)
WithMPU6050GyroFullScaleRange option sets the full scale range for the gyroscope. Valid settings are of type "MPU6050GyroFsConfig"
func WithPCF8583Mode ¶
func WithPCF8583Mode(mode PCF8583Control) func(Config)
WithPCF8583Mode is used to change the mode between 32.678kHz clock, 50Hz clock, event counter Valid settings are of type "PCF8583Control"
func WithPCF8591ForceRefresh ¶ added in v1.16.0
WithPCF8591ForceWrite option modifies the PCF8591Driver forceRefresh option Setting to true (1) will force refresh operation to register, although there is no change. Normally this is not needed, so default is off (0). When there is something flaky, there is a small chance to stabilize by setting this flag to true. However, setting this flag to true slows down each IO operation up to 100%.
func WithPCF8591With400kbitStabilization ¶ added in v1.16.0
WithPCF8591With400kbitStabilisation option sets the PCF8591 additionalReadWrite and additionalRead value
func WithSSD1306DisplayHeight ¶ added in v1.13.0
WithSSD1306DisplayHeight option sets the SSD1306Driver DisplayHeight option.
func WithSSD1306DisplayWidth ¶ added in v1.13.0
WithSSD1306DisplayWidth option sets the SSD1306Driver DisplayWidth option.
func WithSSD1306ExternalVCC ¶ added in v1.13.0
WithSSD1306ExternalVCC option sets the SSD1306Driver ExternalVCC option.
func WithTH02FastMode ¶
WithTH02FastMode option sets the fast mode (leads to lower accuracy). Valid settings are <=0 (off), >0 (on).
func WithTSL2561AutoGain ¶ added in v1.3.0
func WithTSL2561AutoGain(c Config)
WithTSL2561AutoGain option turns on TSL2561Driver auto gain
func WithTSL2561Gain16X ¶ added in v1.3.0
func WithTSL2561Gain16X(c Config)
WithTSL2561Gain16X option sets the TSL2561Driver gain to 16X
func WithTSL2561Gain1X ¶ added in v1.3.0
func WithTSL2561Gain1X(c Config)
WithTSL2561Gain1X option sets the TSL2561Driver gain to 1X
func WithTSL2561IntegrationTime101MS ¶ added in v1.3.0
func WithTSL2561IntegrationTime101MS(c Config)
WithTSL2561IntegrationTime101MS option sets the TSL2561Driver integration time to 101ms
func WithTSL2561IntegrationTime13MS ¶ added in v1.3.0
func WithTSL2561IntegrationTime13MS(c Config)
WithTSL2561IntegrationTime13MS option sets the TSL2561Driver integration time to 13ms
func WithTSL2561IntegrationTime402MS ¶ added in v1.3.0
func WithTSL2561IntegrationTime402MS(c Config)
WithTSL2561IntegrationTime402MS option sets the TSL2561Driver integration time to 402ms
func WithYL40InputScaler ¶ added in v1.16.0
WithYL40InputScaler option sets the input scaler of given input pin in YL40 driver
func WithYL40Interval ¶ added in v1.16.0
WithYL40Interval option sets the interval for refresh of given pin in YL40 driver
func WithYL40OutputScaler ¶ added in v1.16.0
WithYL40OutputScaler option sets the output scaler in YL40 driver
Types ¶
type ADS1x15Driver ¶ added in v1.5.0
type ADS1x15Driver struct { *Driver // contains filtered or unexported fields }
ADS1x15Driver is the Gobot driver for the ADS1015/ADS1115 ADC datasheet: https://www.ti.com/lit/gpn/ads1115
reference implementations: * https://github.com/adafruit/Adafruit_Python_ADS1x15 * https://github.com/Wh1teRabbitHU/ADS1115-Driver
func NewADS1015Driver ¶ added in v1.5.0
func NewADS1015Driver(a Connector, options ...func(Config)) *ADS1x15Driver
NewADS1015Driver creates a new driver for the ADS1015 (12-bit ADC)
func NewADS1115Driver ¶ added in v1.5.0
func NewADS1115Driver(a Connector, options ...func(Config)) *ADS1x15Driver
NewADS1115Driver creates a new driver for the ADS1115 (16-bit ADC)
func (*ADS1x15Driver) AnalogRead ¶ added in v1.5.0
func (d *ADS1x15Driver) AnalogRead(pin string) (value int, err error)
AnalogRead returns value from analog reading of specified pin using the default values.
func (*ADS1x15Driver) Read ¶ added in v1.5.0
Read reads the voltage at the specified channel (between 0 and 3). The result is in V.
func (*ADS1x15Driver) ReadDifference ¶ added in v1.5.0
ReadDifference reads the difference in V between 2 inputs. diff can be: * 0: Channel 0 - channel 1 * 1: Channel 0 - channel 3 * 2: Channel 1 - channel 3 * 3: Channel 2 - channel 3
func (*ADS1x15Driver) ReadDifferenceWithDefaults ¶ added in v1.5.0
func (d *ADS1x15Driver) ReadDifferenceWithDefaults(diff int) (value float64, err error)
ReadDifferenceWithDefaults reads the difference in V between 2 inputs. It uses the default gain and data rate diff can be: * 0: Channel 0 - channel 1 * 1: Channel 0 - channel 3 * 2: Channel 1 - channel 3 * 3: Channel 2 - channel 3
func (*ADS1x15Driver) ReadWithDefaults ¶ added in v1.5.0
func (d *ADS1x15Driver) ReadWithDefaults(channel int) (value float64, err error)
ReadWithDefaults reads the voltage at the specified channel (between 0 and 3). Default values are used for the gain and data rate. The result is in V.
type ADXL345Driver ¶ added in v1.9.0
type ADXL345Driver struct { *Driver // contains filtered or unexported fields }
ADXL345Driver is the gobot driver for the digital accelerometer ADXL345
Datasheet EN: http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL345.pdf Datasheet JP: http://www.analog.com/media/jp/technical-documentation/data-sheets/ADXL345_jp.pdf
Ported from the Arduino driver https://github.com/jakalada/Arduino-ADXL345
func NewADXL345Driver ¶ added in v1.9.0
func NewADXL345Driver(c Connector, options ...func(Config)) *ADXL345Driver
NewADXL345Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*ADXL345Driver) RawXYZ ¶ added in v1.9.0
func (d *ADXL345Driver) RawXYZ() (int16, int16, int16, error)
XYZ returns the raw x,y and z axis
func (*ADXL345Driver) SetRange ¶ added in v1.9.0
func (d *ADXL345Driver) SetRange(fullScaleRange ADXL345FsRangeConfig) (err error)
SetRange change the current range of the sensor immediately
func (*ADXL345Driver) SetRate ¶ added in v1.9.0
func (d *ADXL345Driver) SetRate(rate ADXL345RateConfig) (err error)
SetRate change the current rate of the sensor immediately
func (*ADXL345Driver) UseLowPower ¶ added in v1.9.0
func (d *ADXL345Driver) UseLowPower(lowPower bool) (err error)
UseLowPower change the current rate of the sensor
type ADXL345FsRangeConfig ¶
type ADXL345FsRangeConfig uint8
type ADXL345RateConfig ¶
type ADXL345RateConfig uint8
type Adafruit1109Driver ¶ added in v1.16.0
type Adafruit1109Driver struct { *MCP23017Driver *gpio.HD44780Driver // contains filtered or unexported fields }
Adafruit1109Driver is a driver for the 2x16 LCD display with RGB backlit and 5 keys from adafruit, designed for Pi. The display is driven by the HD44780, and all is connected by i2c port expander MCP23017. https://www.adafruit.com/product/1109
Have to implement DigitalWriter, DigitalReader interface
func NewAdafruit1109Driver ¶ added in v1.16.0
func NewAdafruit1109Driver(a Connector, options ...func(Config)) *Adafruit1109Driver
NewAdafruit1109Driver creates is a new driver for the 2x16 LCD display with RGB backlit and 5 keys.
Because HD44780 and MCP23017 are already implemented in gobot, we creates a wrapper for using existing implementation. So, for the documentation of the parameters, have a look at this drivers.
Tests are done with a Tinkerboard.
func (*Adafruit1109Driver) Connect ¶ added in v1.16.0
func (d *Adafruit1109Driver) Connect() error
Connect implements the adaptor.Connector interface. Haven't found any adaptor which implements this with more content.
func (*Adafruit1109Driver) Connection ¶ added in v1.16.0
func (d *Adafruit1109Driver) Connection() gobot.Connection
Connection implements the gobot.Device interface.
func (*Adafruit1109Driver) DigitalRead ¶ added in v1.16.0
func (d *Adafruit1109Driver) DigitalRead(id string) (int, error)
DigitalRead implements the DigitalReader interface This is called by HD44780 driver to read one gpio input. We redirect the call to the i2c driver MCP23017. The given id is the same as defined in dataPins and has the syntax "<port>_<pin>".
func (*Adafruit1109Driver) DigitalWrite ¶ added in v1.16.0
func (d *Adafruit1109Driver) DigitalWrite(id string, val byte) error
DigitalWrite implements the DigitalWriter interface This is called by HD44780 driver to set one gpio output. We redirect the call to the i2c driver MCP23017. The given id is the same as defined in dataPins and has the syntax "<port>_<pin>".
func (*Adafruit1109Driver) DownButton ¶ added in v1.16.0
func (d *Adafruit1109Driver) DownButton() (uint8, error)
DownButton reads the state of the "down" button (1=pressed).
func (*Adafruit1109Driver) Finalize ¶ added in v1.16.0
func (d *Adafruit1109Driver) Finalize() error
Finalize implements the adaptor.Connector interface. Haven't found any adaptor which implements this with more content.
func (*Adafruit1109Driver) Halt ¶ added in v1.16.0
func (d *Adafruit1109Driver) Halt() error
Halt implements the gobot.Device interface.
func (*Adafruit1109Driver) LeftButton ¶ added in v1.16.0
func (d *Adafruit1109Driver) LeftButton() (uint8, error)
LeftButton reads the state of the "left" button (1=pressed).
func (*Adafruit1109Driver) Name ¶ added in v1.16.0
func (d *Adafruit1109Driver) Name() string
Name implements the gobot.Device interface
func (*Adafruit1109Driver) RightButton ¶ added in v1.16.0
func (d *Adafruit1109Driver) RightButton() (uint8, error)
RightButton reads the state of the "right" button (1=pressed).
func (*Adafruit1109Driver) SelectButton ¶ added in v1.16.0
func (d *Adafruit1109Driver) SelectButton() (uint8, error)
SelectButton reads the state of the "select" button (1=pressed).
func (*Adafruit1109Driver) SetName ¶ added in v1.16.0
func (d *Adafruit1109Driver) SetName(n string)
SetName implements the gobot.Device interface.
func (*Adafruit1109Driver) SetRGB ¶ added in v1.16.0
func (d *Adafruit1109Driver) SetRGB(r, g, b bool) error
SetRGB sets the Red Green Blue value of backlit. The MCP23017 variant don't support PWM and have inverted logic
func (*Adafruit1109Driver) Start ¶ added in v1.16.0
func (d *Adafruit1109Driver) Start() error
Start implements the gobot.Device interface.
func (*Adafruit1109Driver) UpButton ¶ added in v1.16.0
func (d *Adafruit1109Driver) UpButton() (uint8, error)
UpButton reads the state of the "up" button (1=pressed).
type AdafruitDirection ¶
type AdafruitDirection int
AdafruitDirection declares a type for specification of the motor direction
const ( AdafruitForward AdafruitDirection = iota // 0 AdafruitBackward // 1 AdafruitRelease // 2 )
type AdafruitMotorHatDriver ¶
type AdafruitMotorHatDriver struct { Config gobot.Commander // contains filtered or unexported fields }
AdafruitMotorHatDriver is a driver for the DC+Stepper Motor HAT from Adafruit. The HAT is a Raspberry Pi add-on that can drive up to 4 DC or 2 Stepper motors with full PWM speed control. It has a dedicated PWM driver chip onboard to control both motor direction and speed over I2C.
func NewAdafruitMotorHatDriver ¶
func NewAdafruitMotorHatDriver(conn Connector, options ...func(Config)) *AdafruitMotorHatDriver
NewAdafruitMotorHatDriver initializes the internal DCMotor and StepperMotor types. Again the Adafruit Motor Hat supports up to four DC motors and up to two stepper motors. Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*AdafruitMotorHatDriver) Connection ¶
func (a *AdafruitMotorHatDriver) Connection() gobot.Connection
Connection identifies the particular adapter object
func (*AdafruitMotorHatDriver) Halt ¶
func (a *AdafruitMotorHatDriver) Halt() (err error)
Halt returns true if devices is halted successfully
func (*AdafruitMotorHatDriver) Name ¶
func (a *AdafruitMotorHatDriver) Name() string
Name identifies this driver object
func (*AdafruitMotorHatDriver) RunDCMotor ¶
func (a *AdafruitMotorHatDriver) RunDCMotor(dcMotor int, dir AdafruitDirection) (err error)
RunDCMotor will set the appropriate pins to run the specified DC motor for the given direction
func (*AdafruitMotorHatDriver) SetDCMotorSpeed ¶
func (a *AdafruitMotorHatDriver) SetDCMotorSpeed(dcMotor int, speed int32) (err error)
SetDCMotorSpeed will set the appropriate pins to run the specified DC motor for the given speed.
func (*AdafruitMotorHatDriver) SetMotorHatAddress ¶
func (a *AdafruitMotorHatDriver) SetMotorHatAddress(addr int) (err error)
SetMotorHatAddress sets the I2C address for the DC and Stepper Motor HAT. This addressing flexibility empowers "stacking" the HATs.
func (*AdafruitMotorHatDriver) SetName ¶
func (a *AdafruitMotorHatDriver) SetName(n string)
SetName sets nae for driver
func (*AdafruitMotorHatDriver) SetServoHatAddress ¶
func (a *AdafruitMotorHatDriver) SetServoHatAddress(addr int) (err error)
SetServoHatAddress sets the I2C address for the PWM-Servo Motor HAT. This addressing flexibility empowers "stacking" the HATs.
func (*AdafruitMotorHatDriver) SetServoMotorFreq ¶
func (a *AdafruitMotorHatDriver) SetServoMotorFreq(freq float64) (err error)
SetServoMotorFreq sets the frequency for the currently addressed PWM Servo HAT.
func (*AdafruitMotorHatDriver) SetServoMotorPulse ¶
func (a *AdafruitMotorHatDriver) SetServoMotorPulse(channel byte, on, off int32) (err error)
SetServoMotorPulse is a convenience function to specify the 'tick' value, between 0-4095, when the signal will turn on, and when it will turn off.
func (*AdafruitMotorHatDriver) SetStepperMotorSpeed ¶
func (a *AdafruitMotorHatDriver) SetStepperMotorSpeed(stepperMotor int, rpm int) (err error)
SetStepperMotorSpeed sets the seconds-per-step for the given Stepper Motor.
func (*AdafruitMotorHatDriver) Start ¶
func (a *AdafruitMotorHatDriver) Start() (err error)
Start initializes both I2C-addressable Adafruit Motor HAT drivers
func (*AdafruitMotorHatDriver) Step ¶
func (a *AdafruitMotorHatDriver) Step(motor, steps int, dir AdafruitDirection, style AdafruitStepStyle) (err error)
Step will rotate the stepper motor the given number of steps, in the given direction and step style.
type AdafruitStepStyle ¶
type AdafruitStepStyle int
AdafruitStepStyle declares a type for specification of the stepper motor rotation
const ( AdafruitSingle AdafruitStepStyle = iota // 0 AdafruitDouble // 1 AdafruitInterleave // 2 AdafruitMicrostep // 3 )
type BH1750Driver ¶ added in v1.9.0
type BH1750Driver struct { *Driver // contains filtered or unexported fields }
BH1750Driver is a driver for the BH1750 digital Ambient Light Sensor IC for I²C bus interface.
func NewBH1750Driver ¶ added in v1.9.0
func NewBH1750Driver(c Connector, options ...func(Config)) *BH1750Driver
NewBH1750Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BH1750Driver) Lux ¶ added in v1.9.0
func (h *BH1750Driver) Lux() (lux int, err error)
Lux returns the adjusted value from the bh1750
func (*BH1750Driver) RawSensorData ¶ added in v1.9.0
func (h *BH1750Driver) RawSensorData() (level int, err error)
RawSensorData returns the raw value from the bh1750
type BME280Driver ¶ added in v1.4.0
type BME280Driver struct { *BMP280Driver // contains filtered or unexported fields }
BME280Driver is a driver for the BME280 temperature/humidity sensor. It implements all of the same functions as the BMP280Driver, but also adds the Humidity() function by reading the BME280's humidity sensor. For details on the BMP280Driver please see:
https://godoc.org/gobot.io/x/gobot/v2/drivers/i2c#BMP280Driver
func NewBME280Driver ¶ added in v1.4.0
func NewBME280Driver(c Connector, options ...func(Config)) *BME280Driver
NewBME280Driver creates a new driver with specified i2c interface. Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BME280Driver) Humidity ¶ added in v1.4.0
func (d *BME280Driver) Humidity() (humidity float32, err error)
Humidity returns the current humidity in percentage of relative humidity
type BME280HumidityOversampling ¶
type BME280HumidityOversampling uint8
const ( // bits 0, 1, 3 of control humidity register BME280CtrlHumidityNoMeasurement BME280HumidityOversampling = 0x00 // no measurement (value will be 0x08 0x00 0x00) BME280CtrlHumidityOversampling1 BME280HumidityOversampling = 0x01 BME280CtrlHumidityOversampling2 BME280HumidityOversampling = 0x02 BME280CtrlHumidityOversampling4 BME280HumidityOversampling = 0x03 BME280CtrlHumidityOversampling8 BME280HumidityOversampling = 0x04 BME280CtrlHumidityOversampling16 BME280HumidityOversampling = 0x05 // same as 0x06, 0x07 )
type BMP180Driver ¶ added in v1.1.0
type BMP180Driver struct { *Driver // contains filtered or unexported fields }
BMP180Driver is the gobot driver for the Bosch pressure and temperature sensor BMP180. Device datasheet: https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf
func NewBMP180Driver ¶ added in v1.1.0
func NewBMP180Driver(c Connector, options ...func(Config)) *BMP180Driver
NewBMP180Driver creates a new driver with the i2c interface for the BMP180 device. Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BMP180Driver) Pressure ¶ added in v1.1.0
func (d *BMP180Driver) Pressure() (pressure float32, err error)
Pressure returns the current pressure, in pascals.
func (*BMP180Driver) Temperature ¶ added in v1.1.0
func (d *BMP180Driver) Temperature() (temp float32, err error)
Temperature returns the current temperature, in celsius degrees.
type BMP180OversamplingMode ¶ added in v1.1.0
type BMP180OversamplingMode uint
BMP180OversamplingMode is the oversampling ratio of the pressure measurement.
const ( // BMP180UltraLowPower is the lowest oversampling mode of the pressure measurement. BMP180UltraLowPower BMP180OversamplingMode = iota // BMP180Standard is the standard oversampling mode of the pressure measurement. BMP180Standard // BMP180HighResolution is a high oversampling mode of the pressure measurement. BMP180HighResolution // BMP180UltraHighResolution is the highest oversampling mode of the pressure measurement. BMP180UltraHighResolution )
type BMP280Driver ¶ added in v1.4.0
type BMP280Driver struct { *Driver // contains filtered or unexported fields }
BMP280Driver is a driver for the BMP280 temperature/pressure sensor
func NewBMP280Driver ¶ added in v1.4.0
func NewBMP280Driver(c Connector, options ...func(Config)) *BMP280Driver
NewBMP280Driver creates a new driver with specified i2c interface. Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BMP280Driver) Altitude ¶ added in v1.4.0
func (d *BMP280Driver) Altitude() (alt float32, err error)
Altitude returns the current altitude in meters based on the current barometric pressure and estimated pressure at sea level. Calculation is based on code from Adafruit BME280 library
https://github.com/adafruit/Adafruit_BME280_Library
func (*BMP280Driver) Pressure ¶ added in v1.4.0
func (d *BMP280Driver) Pressure() (press float32, err error)
Pressure returns the current barometric pressure, in Pa
func (*BMP280Driver) Temperature ¶ added in v1.4.0
func (d *BMP280Driver) Temperature() (temp float32, err error)
Temperature returns the current temperature, in celsius degrees.
type BMP280IIRFilter ¶
type BMP280IIRFilter uint8
type BMP280PressureOversampling ¶
type BMP280PressureOversampling uint8
type BMP280TemperatureOversampling ¶
type BMP280TemperatureOversampling uint8
type BMP388Accuracy ¶ added in v1.15.0
type BMP388Accuracy uint8
BMP388Accuracy accuracy type
const ( // oversampling rate, a single value is used (could be different for pressure and temperature) BMP388AccuracyUltraLow BMP388Accuracy = 0 // x1 sample BMP388AccuracyLow BMP388Accuracy = 1 // x2 samples BMP388AccuracyStandard BMP388Accuracy = 2 // x4 samples BMP388AccuracyHigh BMP388Accuracy = 3 // x8 samples BMP388AccuracyUltraHigh BMP388Accuracy = 4 // x16 samples BMP388AccuracyHighest BMP388Accuracy = 5 // x32 samples )
type BMP388Driver ¶ added in v1.15.0
type BMP388Driver struct { *Driver // contains filtered or unexported fields }
BMP388Driver is a driver for the BMP388 temperature/pressure sensor
func NewBMP388Driver ¶ added in v1.15.0
func NewBMP388Driver(c Connector, options ...func(Config)) *BMP388Driver
NewBMP388Driver creates a new driver with specified i2c interface. Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BMP388Driver) Altitude ¶ added in v1.15.0
func (d *BMP388Driver) Altitude(accuracy BMP388Accuracy) (alt float32, err error)
Altitude returns the current altitude in meters based on the current barometric pressure and estimated pressure at sea level. https://www.weather.gov/media/epz/wxcalc/pressureAltitude.pdf
func (*BMP388Driver) Pressure ¶ added in v1.15.0
func (d *BMP388Driver) Pressure(accuracy BMP388Accuracy) (press float32, err error)
Pressure returns the current barometric pressure, in Pa
func (*BMP388Driver) Temperature ¶ added in v1.15.0
func (d *BMP388Driver) Temperature(accuracy BMP388Accuracy) (temp float32, err error)
Temperature returns the current temperature, in celsius degrees.
type BMP388IIRFilter ¶
type BMP388IIRFilter uint8
type BlinkMDriver ¶
type BlinkMDriver struct {
*Driver
}
BlinkMDriver is a Gobot Driver for a BlinkM LED
func NewBlinkMDriver ¶
func NewBlinkMDriver(c Connector, options ...func(Config)) *BlinkMDriver
NewBlinkMDriver creates a new BlinkMDriver.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*BlinkMDriver) Color ¶
func (b *BlinkMDriver) Color() (color []byte, err error)
Color returns an array with current rgb color
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
type CCS811DriveMode ¶ added in v1.13.0
type CCS811DriveMode uint8
CCS811DriveMode type
const ( CCS811DriveModeIdle CCS811DriveMode = 0x00 CCS811DriveMode1Sec CCS811DriveMode = 0x01 CCS811DriveMode10Sec CCS811DriveMode = 0x02 CCS811DriveMode60Sec CCS811DriveMode = 0x03 CCS811DriveMode250MS CCS811DriveMode = 0x04 )
Operating modes which dictate how often measurements are being made. If 0x00 is used as an operating mode, measurements will be disabled
type CCS811Driver ¶ added in v1.13.0
type CCS811Driver struct { *Driver // contains filtered or unexported fields }
CCS811Driver is the Gobot driver for the CCS811 (air quality sensor) Adafruit breakout board
func NewCCS811Driver ¶ added in v1.13.0
func NewCCS811Driver(c Connector, options ...func(Config)) *CCS811Driver
NewCCS811Driver creates a new driver for the CCS811 (air quality sensor)
func (*CCS811Driver) DisableExternalInterrupt ¶ added in v1.13.0
func (d *CCS811Driver) DisableExternalInterrupt() error
DisableExternalInterrupt disables the external output hardware interrupt pin 3.
func (*CCS811Driver) EnableExternalInterrupt ¶ added in v1.13.0
func (d *CCS811Driver) EnableExternalInterrupt() error
EnableExternalInterrupt enables the external output hardware interrupt pin 3.
func (*CCS811Driver) GetFirmwareAppVersion ¶ added in v1.13.0
func (d *CCS811Driver) GetFirmwareAppVersion() (uint16, error)
GetFirmwareAppVersion returns the app code version
func (*CCS811Driver) GetFirmwareBootVersion ¶ added in v1.13.0
func (d *CCS811Driver) GetFirmwareBootVersion() (uint16, error)
GetFirmwareBootVersion returns the bootloader version
func (*CCS811Driver) GetGasData ¶ added in v1.13.0
func (d *CCS811Driver) GetGasData() (uint16, uint16, error)
GetGasData returns the data for the gas sensor. eco2 is returned in ppm and tvoc is returned in ppb
func (*CCS811Driver) GetHardwareVersion ¶ added in v1.13.0
func (d *CCS811Driver) GetHardwareVersion() (uint8, error)
GetHardwareVersion returns the hardware version of the device in the form of 0x1X
func (*CCS811Driver) GetStatus ¶ added in v1.13.0
func (d *CCS811Driver) GetStatus() (*CCS811Status, error)
GetStatus returns the current status of the device
func (*CCS811Driver) GetTemperature ¶ added in v1.13.0
func (d *CCS811Driver) GetTemperature() (float32, error)
GetTemperature returns the device temperature in celcius. If you do not have an NTC resistor installed, this function should not be called
func (*CCS811Driver) HasData ¶ added in v1.13.0
func (d *CCS811Driver) HasData() (bool, error)
HasData returns true if the device has not errored and temperature/gas data is available
type CCS811MeasMode ¶ added in v1.13.0
type CCS811MeasMode struct {
// contains filtered or unexported fields
}
CCS811MeasMode represents the current measurement configuration. The following definitions were taken from the bit fields of the ccs811RegMeasMode defined in https://ams.com/documents/20143/36005/CCS811_DS000459_6-00.pdf/c7091525-c7e5-37ac-eedb-b6c6828b0dcf#page=16
func NewCCS811MeasMode ¶ added in v1.13.0
func NewCCS811MeasMode() *CCS811MeasMode
NewCCS811MeasMode returns a new instance of the package ccs811 measurement mode configuration. This represents the desired initial state of the measurement mode register.
func (*CCS811MeasMode) GetMeasMode ¶ added in v1.13.0
func (mm *CCS811MeasMode) GetMeasMode() byte
GetMeasMode returns the measurement mode
type CCS811Status ¶ added in v1.13.0
type CCS811Status struct { //There is some sort of error on the i2c bus or there is an error with the internal sensor HasError byte //A new data sample is ready in ccs811RegAlgResultData DataReady byte //Valid application firmware loaded AppValid byte //Firmware is in application mode. CCS811 is ready to take sensor measurements FwMode byte }
CCS811Status represents the current status of the device defined by the ccs811RegStatus. The following definitions were taken from https://ams.com/documents/20143/36005/CCS811_DS000459_6-00.pdf/c7091525-c7e5-37ac-eedb-b6c6828b0dcf#page=15
func NewCCS811Status ¶ added in v1.13.0
func NewCCS811Status(data uint8) *CCS811Status
NewCCS811Status returns a new instance of the package ccs811 status definition
type Config ¶ added in v1.2.0
type Config interface { // SetBus sets which bus to use SetBus(bus int) // GetBusOrDefault gets which bus to use GetBusOrDefault(def int) int // SetAddress sets which address to use SetAddress(address int) // GetAddressOrDefault gets which address to use GetAddressOrDefault(def int) int }
Config is the interface to set and get I2C device related parameters.
type Connection ¶ added in v1.2.0
type Connection gobot.I2cOperations
Connection is a connection to an I2C device with a specified address on a specific bus. Used as an alternative to the I2c interface. Implements I2cOperations to talk to the device, wrapping the calls in SetAddress to always target the specified device. Provided by an Adaptor by implementing the I2cConnector interface.
type Connector ¶ added in v1.2.0
type Connector interface { // GetI2cConnection creates and returns a connection to device at the specified address // and bus. Bus numbering starts at index 0, the range of valid buses is // platform specific. GetI2cConnection(address int, busNr int) (device Connection, err error) // DefaultI2cBus returns the default I2C bus index DefaultI2cBus() int }
Connector lets adaptors (platforms) provide the interface for Drivers to get access to the I2C buses on platforms that support I2C. The "I2C" specifier is part of the name to differentiate to SPI at platform level.
type DRV2605LDriver ¶ added in v1.3.0
type DRV2605LDriver struct {
*Driver
}
DRV2605LDriver is the gobot driver for the TI/Adafruit DRV2605L Haptic Controller
Device datasheet: http://www.ti.com/lit/ds/symlink/drv2605l.pdf
Inspired by the Adafruit Python driver by Sean Mealin.
Basic use:
haptic := i2c.NewDRV2605Driver(adaptor) haptic.SetSequence([]byte{1, 13}) haptic.Go()
func NewDRV2605LDriver ¶ added in v1.3.0
func NewDRV2605LDriver(c Connector, options ...func(Config)) *DRV2605LDriver
NewDRV2605LDriver creates a new driver for the DRV2605L device.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*DRV2605LDriver) GetPauseWaveform ¶ added in v1.3.0
func (d *DRV2605LDriver) GetPauseWaveform(delayTime10MS uint8) (pauseID uint8)
GetPauseWaveform returns a special waveform ID used in SetSequence() to encode pauses between waveforms. Time is specified in tens of milliseconds ranging from 0ms (delayTime10MS = 0) to 1270ms (delayTime10MS = 127). Times out of range are clipped to fit.
func (*DRV2605LDriver) Go ¶ added in v1.3.0
func (d *DRV2605LDriver) Go() (err error)
Go plays the current sequence of waveforms.
func (*DRV2605LDriver) SelectLibrary ¶ added in v1.3.0
func (d *DRV2605LDriver) SelectLibrary(library uint8) (err error)
SelectLibrary selects which waveform library to play from, 1-7. See datasheet for more info.
func (*DRV2605LDriver) SetMode ¶ added in v1.3.0
func (d *DRV2605LDriver) SetMode(newMode DRV2605Mode) (err error)
SetMode sets the device in one of the eight modes as described in the datasheet. Defaults to mode 0, internal trig.
func (*DRV2605LDriver) SetSequence ¶ added in v1.3.0
func (d *DRV2605LDriver) SetSequence(waveforms []uint8) (err error)
SetSequence sets the sequence of waveforms to be played by the sequencer, specified by waveform id as described in the datasheet. The sequencer can play at most 8 waveforms in sequence, longer sequences will be truncated. A waveform id of zero marks the end of the sequence. Pauses can be encoded using GetPauseWaveform().
func (*DRV2605LDriver) SetStandbyMode ¶ added in v1.3.0
func (d *DRV2605LDriver) SetStandbyMode(standby bool) (err error)
SetStandbyMode controls device low power mode
type DRV2605Mode ¶ added in v1.3.0
type DRV2605Mode uint8
DRV2605Mode - operating mode
const ( DRV2605ModeIntTrig DRV2605Mode = 0x00 DRV2605ModeExtTrigEdge DRV2605Mode = 0x01 DRV2605ModeExtTrigLvl DRV2605Mode = 0x02 DRV2605ModePWMAnalog DRV2605Mode = 0x03 DRV2605ModeAudioVibe DRV2605Mode = 0x04 DRV2605ModeRealtime DRV2605Mode = 0x05 DRV2605ModeDiagnose DRV2605Mode = 0x06 DRV2605ModeAutocal DRV2605Mode = 0x07 )
Operating modes, for use in SetMode()
type DisplayBuffer ¶ added in v1.4.0
type DisplayBuffer struct {
// contains filtered or unexported fields
}
DisplayBuffer represents the display buffer intermediate memory.
func NewDisplayBuffer ¶ added in v1.4.0
func NewDisplayBuffer(width, height, pageSize int) *DisplayBuffer
NewDisplayBuffer creates a new DisplayBuffer.
func (*DisplayBuffer) Clear ¶ added in v1.4.0
func (d *DisplayBuffer) Clear()
Clear the contents of the display buffer.
func (*DisplayBuffer) Set ¶ added in v1.4.0
func (d *DisplayBuffer) Set(buf []byte)
Set sets the display buffer with the given buffer.
func (*DisplayBuffer) SetPixel ¶ added in v1.13.0
func (d *DisplayBuffer) SetPixel(x, y, c int)
SetPixel sets the x, y pixel with c color.
func (*DisplayBuffer) Size ¶ added in v1.4.0
func (d *DisplayBuffer) Size() int
Size returns the memory size of the display buffer.
type Driver ¶
type Driver struct { Config gobot.Commander // contains filtered or unexported fields }
Driver implements the interface gobot.Driver.
func (*Driver) Connection ¶
func (d *Driver) Connection() gobot.Connection
Connection returns the connection of the i2c device.
func (*Driver) Read ¶
Read implements a simple read mechanism from the given register of an i2c device.
type GenericDriver ¶
type GenericDriver struct {
*Driver
}
GenericDriver implements the interface gobot.Driver.
func NewGenericDriver ¶
func NewGenericDriver(c Connector, name string, address int, options ...func(Config)) *GenericDriver
NewGenericDriver creates a new generic i2c gobot driver, which just forwards all connection functions.
func (*GenericDriver) Read ¶
func (d *GenericDriver) Read(data []byte) error
Read fills the given buffer with reads of an i2c device.
func (*GenericDriver) ReadBlockData ¶
func (d *GenericDriver) ReadBlockData(reg uint8, data []byte) error
ReadBlockData fills the given buffer with reads starting from the given register of an i2c device.
func (*GenericDriver) ReadByte ¶
func (d *GenericDriver) ReadByte() (byte, error)
ReadByte reads a byte from the current register of an i2c device.
func (*GenericDriver) ReadByteData ¶
func (d *GenericDriver) ReadByteData(reg uint8) (byte, error)
ReadByteData reads a byte from the given register of an i2c device.
func (*GenericDriver) ReadData ¶
func (d *GenericDriver) ReadData(reg uint8, data []byte) error
ReadData fills the given buffer with reads from the given register of an i2c device. It uses plain read to prevent ReadBlockData(), which is sometimes not supported by adaptor.
func (*GenericDriver) ReadWordData ¶
func (d *GenericDriver) ReadWordData(reg uint8) (uint16, error)
ReadWordData reads a 16 bit value starting from the given register of an i2c device.
func (*GenericDriver) Write ¶
func (d *GenericDriver) Write(data []byte) error
Write writes the given buffer to the i2c device.
func (*GenericDriver) WriteBlockData ¶
func (d *GenericDriver) WriteBlockData(reg uint8, data []byte) error
WriteBlockData writes the given buffer to the given register of an i2c device.
func (*GenericDriver) WriteByte ¶
func (d *GenericDriver) WriteByte(val byte) error
WriteByte writes one byte to the i2c device.
func (*GenericDriver) WriteByteData ¶
func (d *GenericDriver) WriteByteData(reg uint8, val byte) error
WriteByteData writes the given byte value to the given register of an i2c device.
func (*GenericDriver) WriteData ¶
func (d *GenericDriver) WriteData(reg uint8, data []byte) error
WriteData writes the given buffer to the given register of an i2c device. It uses plain write to prevent WriteBlockData(), which is sometimes not supported by adaptor.
func (*GenericDriver) WriteWordData ¶
func (d *GenericDriver) WriteWordData(reg uint8, val uint16) error
WriteWordData writes the given 16 bit value to the given register of an i2c device.
type GroveAccelerometerDriver ¶
type GroveAccelerometerDriver struct {
*MMA7660Driver
}
GroveAccelerometerDriver is a driver for the MMA7660 accelerometer
func NewGroveAccelerometerDriver ¶
func NewGroveAccelerometerDriver(a Connector, options ...func(Config)) *GroveAccelerometerDriver
NewGroveAccelerometerDriver creates a new driver with specified i2c interface Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
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 Connector, options ...func(Config)) *GroveLcdDriver
NewGroveLcdDriver creates a new driver with specified i2c interface. Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
type GrovePiDriver ¶ added in v1.12.0
type GrovePiDriver struct { *Driver // contains filtered or unexported fields }
GrovePiDriver is a driver for the GrovePi+ for I²C bus interface. https://www.dexterindustries.com/grovepi/
To use this driver with the GrovePi, it must be running the firmware >= 1.4.0 and and the system version >=3. https://github.com/DexterInd/GrovePi/blob/master/README.md
func NewGrovePiDriver ¶ added in v1.12.0
func NewGrovePiDriver(c Connector, options ...func(Config)) *GrovePiDriver
NewGrovePiDriver creates a new driver with specified i2c interface Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*GrovePiDriver) AnalogRead ¶ added in v1.12.0
func (d *GrovePiDriver) AnalogRead(pin string) (value int, err error)
AnalogRead returns value from analog pin implementing the AnalogReader interface.
func (*GrovePiDriver) AnalogWrite ¶
func (d *GrovePiDriver) AnalogWrite(pin string, val int) error
AnalogWrite writes PWM aka analog to the GrovePi analog pin implementing the AnalogWriter interface.
func (*GrovePiDriver) Connect ¶ added in v1.12.0
func (d *GrovePiDriver) Connect() error
Connect is here to implement the Adaptor interface.
func (*GrovePiDriver) DHTRead ¶
func (d *GrovePiDriver) DHTRead(pin string, sensorType byte, duration int) (temp float32, hum float32, err error)
DHTRead performs a read temperature and humidity sensors with duration >=2 millisecond. DHT11 (blue): sensorType=0 DHT22 (white): sensorTyp=1
func (*GrovePiDriver) DigitalRead ¶ added in v1.12.0
func (d *GrovePiDriver) DigitalRead(pin string) (int, error)
DigitalRead performs a read on a digital pin.
func (*GrovePiDriver) DigitalWrite ¶ added in v1.12.0
func (d *GrovePiDriver) DigitalWrite(pin string, val byte) error
DigitalWrite writes a value to a specific digital pin implementing the DigitalWriter interface.
func (*GrovePiDriver) Finalize ¶ added in v1.12.0
func (d *GrovePiDriver) Finalize() error
Finalize is here to implement the Adaptor interface.
func (*GrovePiDriver) FirmwareVersionRead ¶
func (d *GrovePiDriver) FirmwareVersionRead() (string, error)
FirmwareVersionRead returns the GrovePi firmware version.
func (*GrovePiDriver) SetPinMode ¶
func (d *GrovePiDriver) SetPinMode(pin byte, mode string) error
SetPinMode sets the pin mode to input or output.
func (*GrovePiDriver) UltrasonicRead ¶ added in v1.15.0
func (d *GrovePiDriver) UltrasonicRead(pin string, duration int) (int, error)
UltrasonicRead performs a read on an ultrasonic pin with duration >=2 millisecond.
type HMC5883LDriver ¶
type HMC5883LDriver struct { *Driver // contains filtered or unexported fields }
HMC5883LDriver is a Gobot Driver for a HMC5883 I2C 3 axis digital compass.
This driver was tested with Tinkerboard & Digispark adaptor and a HMC5883L breakout board GY-273, available from various distributors.
datasheet: http://www.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf
reference implementations: * https://github.com/gvalkov/micropython-esp8266-hmc5883l * https://github.com/adafruit/Adafruit_HMC5883_Unified
func NewHMC5883LDriver ¶
func NewHMC5883LDriver(c Connector, options ...func(Config)) *HMC5883LDriver
NewHMC5883LDriver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver i2c.WithHMC5883LSamplesAveraged(int) i2c.WithHMC5883LDataOutputRate(int) i2c.WithHMC5883LMeasurementFlow(int) i2c.WithHMC5883LGain(int)
func (*HMC5883LDriver) Heading ¶
func (h *HMC5883LDriver) Heading() (heading float64, err error)
Heading returns the current heading in radians
type HMC6352Driver ¶
type HMC6352Driver struct {
*Driver
}
HMC6352Driver is a Driver for a HMC6352 digital compass
func NewHMC6352Driver ¶
func NewHMC6352Driver(c Connector, options ...func(Config)) *HMC6352Driver
NewHMC6352Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*HMC6352Driver) Heading ¶
func (h *HMC6352Driver) Heading() (heading uint16, err error)
Heading returns the current heading
type INA3221Channel ¶ added in v1.5.0
type INA3221Channel uint8
INA3221Channel type that defines which INA3221 channel to read from.
const ( INA3221Channel1 INA3221Channel = 1 INA3221Channel2 INA3221Channel = 2 INA3221Channel3 INA3221Channel = 3 )
type INA3221Driver ¶ added in v1.5.0
type INA3221Driver struct { *Driver // contains filtered or unexported fields }
INA3221Driver is a driver for the INA3221 three-channel current and bus voltage monitoring device.
func NewINA3221Driver ¶ added in v1.5.0
func NewINA3221Driver(c Connector, options ...func(Config)) *INA3221Driver
NewINA3221Driver creates a new driver with the specified i2c interface. Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*INA3221Driver) GetBusVoltage ¶ added in v1.5.0
func (i *INA3221Driver) GetBusVoltage(channel INA3221Channel) (float64, error)
GetBusVoltage gets the bus voltage in Volts
func (*INA3221Driver) GetCurrent ¶ added in v1.5.0
func (i *INA3221Driver) GetCurrent(channel INA3221Channel) (float64, error)
GetCurrent gets the current value in mA, taking into account the config settings and current LSB
func (*INA3221Driver) GetLoadVoltage ¶ added in v1.5.0
func (i *INA3221Driver) GetLoadVoltage(channel INA3221Channel) (float64, error)
GetLoadVoltage gets the load voltage in mV
func (*INA3221Driver) GetShuntVoltage ¶ added in v1.5.0
func (i *INA3221Driver) GetShuntVoltage(channel INA3221Channel) (float64, error)
GetShuntVoltage Gets the shunt voltage in mV
type JHD1313M1Driver ¶
type JHD1313M1Driver struct { Config gobot.Commander // 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 Connector, options ...func(Config)) *JHD1313M1Driver
NewJHD1313M1Driver creates a new driver with specified i2c interface. Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver
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(lr bool) error
Scroll sets the scrolling direction for the display, either left to right, or right to left.
func (*JHD1313M1Driver) SetCustomChar ¶
func (h *JHD1313M1Driver) SetCustomChar(pos int, charMap [8]byte) error
SetCustomChar 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) SetName ¶
func (h *JHD1313M1Driver) SetName(n string)
SetName sets the name for the JHD1313M1 Driver.
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() (err 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 L3GD20HDriver ¶ added in v1.1.0
type L3GD20HDriver struct { *Driver // contains filtered or unexported fields }
L3GD20HDriver is the gobot driver for the Adafruit Triple-Axis Gyroscope L3GD20H. Device datasheet: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00036465.pdf
func NewL3GD20HDriver ¶ added in v1.1.0
func NewL3GD20HDriver(c Connector, options ...func(Config)) *L3GD20HDriver
NewL3GD20HDriver creates a new Gobot driver for the L3GD20H I2C Triple-Axis Gyroscope.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*L3GD20HDriver) FullScaleRange ¶
func (d *L3GD20HDriver) FullScaleRange() (uint8, error)
FullScaleRange returns the full scale range of the device.
func (*L3GD20HDriver) Scale ¶ added in v1.1.0
func (d *L3GD20HDriver) Scale() L3GD20HScale
Scale returns the full scale range (deprecated, use FullScaleRange() instead).
func (*L3GD20HDriver) SetScale ¶ added in v1.1.0
func (d *L3GD20HDriver) SetScale(s L3GD20HScale)
SetScale sets the full scale range of the device (deprecated, use WithL3GD20HFullScaleRange() instead).
type L3GD20HScale ¶ added in v1.1.0
type L3GD20HScale byte
L3GD20HScale is for configurable full scale range.
const ( // L3GD20HScale250dps is the +/-250 degrees-per-second full scale range (+/-245 from datasheet, but can hold around +/-286). L3GD20HScale250dps L3GD20HScale = 0x00 // L3GD20HScale500dps is the +/-500 degrees-per-second full scale range. L3GD20HScale500dps L3GD20HScale = 0x10 // L3GD20HScale2001dps is the +/-2000 degrees-per-second full scale range by using 0x20 setting. L3GD20HScale2001dps L3GD20HScale = 0x20 // L3GD20HScale2000dps is the +/-2000 degrees-per-second full scale range. L3GD20HScale2000dps L3GD20HScale = 0x30 )
type LIDARLiteDriver ¶
type LIDARLiteDriver struct {
*Driver
}
LIDARLiteDriver is the Gobot driver for the LIDARLite I2C LIDAR device.
func NewLIDARLiteDriver ¶
func NewLIDARLiteDriver(c Connector, options ...func(Config)) *LIDARLiteDriver
NewLIDARLiteDriver creates a new driver for the LIDARLite I2C LIDAR device.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*LIDARLiteDriver) Distance ¶
func (h *LIDARLiteDriver) Distance() (distance int, err error)
Distance returns the current distance in cm
type MCP23017Driver ¶
type MCP23017Driver struct { *Driver gobot.Eventer // contains filtered or unexported fields }
MCP23017Driver contains the driver configuration parameters.
func NewMCP23017Driver ¶
func NewMCP23017Driver(c Connector, options ...func(Config)) *MCP23017Driver
NewMCP23017Driver creates a new Gobot Driver to the MCP23017 i2c port expander. Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver i2c.WithMCP23017Bank(int): MCP23017 bank to use with this driver i2c.WithMCP23017Mirror(int): MCP23017 mirror to use with this driver i2c.WithMCP23017Seqop(int): MCP23017 seqop to use with this driver i2c.WithMCP23017Disslw(int): MCP23017 disslw to use with this driver i2c.WithMCP23017Haen(int): MCP23017 haen to use with this driver i2c.WithMCP23017Odr(int): MCP23017 odr to use with this driver i2c.WithMCP23017Intpol(int): MCP23017 intpol to use with this driver
func (*MCP23017Driver) ReadGPIO ¶
func (m *MCP23017Driver) ReadGPIO(pin uint8, portStr string) (val uint8, 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, portStr string, val uint8) (err error)
SetGPIOPolarity will change a given pin's polarity immediately, based on the value: val = 1 opposite logic state of the input pin. val = 0 same logic state of the input pin.
func (*MCP23017Driver) SetPinMode ¶
func (m *MCP23017Driver) SetPinMode(pin uint8, portStr string, val uint8) (err error)
SetPinMode set pin mode of a given pin immediately, based on the value: val = 0 output val = 1 input
type MFRC522Driver ¶
type MFRC522Driver struct { *Driver *mfrc522.MFRC522Common }
MFRC522Driver is a wrapper for i2c bus usage. Please refer to the mfrc522.MFRC522Common package for implementation details.
func NewMFRC522Driver ¶
func NewMFRC522Driver(c Connector, options ...func(Config)) *MFRC522Driver
NewMFRC522Driver creates a new Gobot Driver for MFRC522 RFID with i2c connection
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
type MMA7660Driver ¶
type MMA7660Driver struct {
*Driver
}
func NewMMA7660Driver ¶
func NewMMA7660Driver(c Connector, options ...func(Config)) *MMA7660Driver
NewMMA7660Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*MMA7660Driver) Acceleration ¶
func (d *MMA7660Driver) Acceleration(x, y, z float64) (ax, ay, az float64)
Acceleration returns the acceleration of the provided x, y, z
type MPL115A2Driver ¶
type MPL115A2Driver struct { *Driver gobot.Eventer // contains filtered or unexported fields }
MPL115A2Driver is a Gobot Driver for the MPL115A2 I2C digital pressure/temperature sensor. datasheet: https://www.nxp.com/docs/en/data-sheet/MPL115A2.pdf
reference implementations: * https://github.com/adafruit/Adafruit_MPL115A2
func NewMPL115A2Driver ¶
func NewMPL115A2Driver(c Connector, options ...func(Config)) *MPL115A2Driver
NewMPL115A2Driver creates a new Gobot Driver for an MPL115A2 I2C Pressure/Temperature sensor.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*MPL115A2Driver) Pressure ¶
func (d *MPL115A2Driver) Pressure() (p float32, err error)
Pressure fetches the latest data from the MPL115A2, and returns the pressure in kPa
func (*MPL115A2Driver) Temperature ¶
func (d *MPL115A2Driver) Temperature() (t float32, err error)
Temperature fetches the latest data from the MPL115A2, and returns the temperature in °C
type MPU6050AccelFsConfig ¶
type MPU6050AccelFsConfig uint8
type MPU6050DlpfConfig ¶
type MPU6050DlpfConfig uint8
type MPU6050Driver ¶
type MPU6050Driver struct { *Driver Accelerometer MPU6050ThreeDData Gyroscope MPU6050ThreeDData Temperature float64 // contains filtered or unexported fields }
MPU6050Driver is a Gobot Driver for an MPU6050 I2C Accelerometer/Gyroscope/Temperature sensor.
This driver was tested with Tinkerboard & Digispark adaptor and a MPU6050 breakout board GY-521, available from various distributors.
reference implementations: * https://github.com/adafruit/Adafruit_CircuitPython_MPU6050 * https://github.com/ElectronicCats/mpu6050
func NewMPU6050Driver ¶
func NewMPU6050Driver(a Connector, options ...func(Config)) *MPU6050Driver
NewMPU6050Driver creates a new Gobot Driver for an MPU6050 I2C Accelerometer/Gyroscope/Temperature sensor.
Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*MPU6050Driver) GetData ¶ added in v1.2.0
func (m *MPU6050Driver) GetData() (err error)
GetData fetches the latest data from the MPU6050
type MPU6050FrameSyncConfig ¶
type MPU6050FrameSyncConfig uint8
type MPU6050GyroFsConfig ¶
type MPU6050GyroFsConfig uint8
type MPU6050Pwr1ClockConfig ¶
type MPU6050Pwr1ClockConfig uint8
type MPU6050ThreeDData ¶
type PCA9501Driver ¶
type PCA9501Driver struct { *Driver // contains filtered or unexported fields }
PCA9501Driver is a Gobot Driver for the PCA9501 8-bit GPIO & 2-kbit EEPROM with 6 address program pins. 2-kbit EEPROM has 256 byte, means addresses between 0x00-0xFF
please refer to data sheet: https://www.nxp.com/docs/en/data-sheet/PCA9501.pdf
PCA9501 is the replacement for PCF8574, so this driver should also work for PCF8574 except EEPROM calls
func NewPCA9501Driver ¶
func NewPCA9501Driver(a Connector, options ...func(Config)) *PCA9501Driver
NewPCA9501Driver creates a new driver with specified i2c interface Params:
a Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*PCA9501Driver) ReadEEPROM ¶
func (p *PCA9501Driver) ReadEEPROM(address uint8) (uint8, error)
ReadEEPROM reads a value from a given address (0x00-0xFF) Note: only this sequence for memory read is supported: "STARTW-DATA1-STARTR-DATA2-STOP" DATA1: EEPROM address, DATA2: read value
func (*PCA9501Driver) ReadGPIO ¶
func (p *PCA9501Driver) ReadGPIO(pin uint8) (uint8, error)
ReadGPIO reads a value from a given gpio pin (0-7)
func (*PCA9501Driver) WriteEEPROM ¶
func (p *PCA9501Driver) WriteEEPROM(address uint8, val uint8) error
WriteEEPROM writes a value to a given address in memory (0x00-0xFF)
type PCA953xDriver ¶
type PCA953xDriver struct {
*Driver
}
PCA953xDriver is a Gobot Driver for LED Dimmer PCA9530 (2-bit), PCA9533 (4-bit), PCA9531 (8-bit), PCA9532 (16-bit) Although this is designed for LED's it can be used as a GPIO (read, write, pwm). The names of the public functions reflect this.
please refer to data sheet: https://www.nxp.com/docs/en/data-sheet/PCA9533.pdf
Address range: * PCA9530 0x60-0x61 (96-97 dec) * PCA9531 0x60-0x67 (96-103 dec) * PCA9532 0x60-0x67 (96-103 dec) * PCA9533/1 0x62 (98 dec) * PCA9533/2 0x63 (99 dec)
each new command must start by setting the register and the AI flag 0 0 0 AI | 0 R2 R1 R0 AI=1 means auto incrementing for R0-R2, which enable reading/writing all registers sequentially when AI=1 and reading, then R!=0 this means: do not start with reading input register, writing input register is recognized but has no effect => when AI=1 in general start with R>0
func NewPCA953xDriver ¶
func NewPCA953xDriver(c Connector, options ...func(Config)) *PCA953xDriver
NewPCA953xDriver creates a new driver with specified i2c interface Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*PCA953xDriver) ReadDutyCyclePercent ¶
func (d *PCA953xDriver) ReadDutyCyclePercent(idx uint8) (float32, error)
ReadDutyCyclePercent get the PWM duty cycle in percent of the given index (0,1)
func (*PCA953xDriver) ReadFrequency ¶
func (d *PCA953xDriver) ReadFrequency(idx uint8) (float32, error)
ReadFrequency read the frequency prescaler in Hz of the given index (0,1)
func (*PCA953xDriver) ReadGPIO ¶
func (d *PCA953xDriver) ReadGPIO(idx uint8) (uint8, error)
ReadGPIO reads a gpio input (index 0-7) to a value
func (*PCA953xDriver) ReadPeriod ¶
func (d *PCA953xDriver) ReadPeriod(idx uint8) (float32, error)
ReadPeriod reads the frequency prescaler in seconds of the given index (0,1)
func (*PCA953xDriver) SetLED ¶
func (d *PCA953xDriver) SetLED(idx uint8, mode PCA953xGPIOMode) error
SetLED sets the mode (LED off, on, PWM0, PWM1) for the LED output (index 0-7)
func (*PCA953xDriver) WriteDutyCyclePercent ¶
func (d *PCA953xDriver) WriteDutyCyclePercent(idx uint8, valPercent float32) error
WriteDutyCyclePercent set the PWM duty cycle of the given index (0,1) with the given value in percent
func (*PCA953xDriver) WriteFrequency ¶
func (d *PCA953xDriver) WriteFrequency(idx uint8, valHz float32) error
WriteFrequency set the content of the frequency prescaler of the given index (0,1) with the given value in Hz
func (*PCA953xDriver) WriteGPIO ¶
func (d *PCA953xDriver) WriteGPIO(idx uint8, val uint8) error
WriteGPIO writes a value to a gpio output (index 0-7)
func (*PCA953xDriver) WritePeriod ¶
func (d *PCA953xDriver) WritePeriod(idx uint8, valSec float32) error
WritePeriod set the content of the frequency prescaler of the given index (0,1) with the given value in seconds
type PCA953xGPIOMode ¶
type PCA953xGPIOMode uint8
PCA953xGPIOMode is used to set the mode while write GPIO
const ( // PCA953xModeHighImpedance set the GPIO to high (LED off) PCA953xModeHighImpedance PCA953xGPIOMode = 0x00 // PCA953xModeLowImpedance set the GPIO to low (LED on) PCA953xModeLowImpedance PCA953xGPIOMode = 0x01 // PCA953xModePwm0 set the GPIO to PWM (PWM0 & PSC0) PCA953xModePwm0 PCA953xGPIOMode = 0x02 // PCA953xModePwm1 set the GPIO to PWM (PWM1 & PSC1) PCA953xModePwm1 PCA953xGPIOMode = 0x03 )
type PCA9685Driver ¶ added in v1.6.1
type PCA9685Driver struct {
*Driver
}
PCA9685Driver is a Gobot Driver for the PCA9685 16-channel 12-bit PWM/Servo controller.
For example, here is the Adafruit board that uses this chip: https://www.adafruit.com/product/815
func NewPCA9685Driver ¶ added in v1.6.1
func NewPCA9685Driver(c Connector, options ...func(Config)) *PCA9685Driver
NewPCA9685Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*PCA9685Driver) PwmWrite ¶ added in v1.6.1
func (p *PCA9685Driver) PwmWrite(pin string, val byte) (err error)
PwmWrite writes a PWM signal to the specified channel aka "pin". Value values are from 0-255, to conform to the PwmWriter interface. If you need finer control, please look at SetPWM().
func (*PCA9685Driver) ServoWrite ¶ added in v1.6.1
func (p *PCA9685Driver) ServoWrite(pin string, val byte) (err error)
ServoWrite writes a servo signal to the specified channel aka "pin". Valid values are from 0-180, to conform to the ServoWriter interface. If you need finer control, please look at SetPWM().
func (*PCA9685Driver) SetAllPWM ¶ added in v1.13.0
func (p *PCA9685Driver) SetAllPWM(on uint16, off uint16) (err error)
SetAllPWM sets all channels to a pwm value from 0-4095. Params:
on uint16 - the time to start the pulse off uint16 - the time to stop the pulse
Most typically you set "on" to a zero value, and then set "off" to your desired duty.
func (*PCA9685Driver) SetPWM ¶ added in v1.6.1
func (p *PCA9685Driver) SetPWM(channel int, on uint16, off uint16) (err error)
SetPWM sets a specific channel to a pwm value from 0-4095. Params:
channel int - the channel to send the pulse on uint16 - the time to start the pulse off uint16 - the time to stop the pulse
Most typically you set "on" to a zero value, and then set "off" to your desired duty.
func (*PCA9685Driver) SetPWMFreq ¶ added in v1.6.1
func (p *PCA9685Driver) SetPWMFreq(freq float32) error
SetPWMFreq sets the PWM frequency in Hz
type PCF8583Control ¶
type PCF8583Control uint8
PCF8583Control is used to specify control and status register content
const ( PCF8583CtrlModeClock50 PCF8583Control = 0x10 // clock mode with 50 Hz PCF8583CtrlModeCounter PCF8583Control = 0x20 // event counter mode PCF8583CtrlModeTest PCF8583Control = 0x30 // test mode )
type PCF8583Driver ¶
type PCF8583Driver struct { *Driver // contains filtered or unexported fields }
PCF8583Driver is a Gobot Driver for the PCF8583 clock and calendar chip & 240 x 8-bit bit RAM with 1 address program pin. please refer to data sheet: https://www.nxp.com/docs/en/data-sheet/PCF8583.pdf
0 1 0 1 0 0 0 A0|rd Lowest bit (rd) is mapped to switch between write(0)/read(1), it is not part of the "real" address.
PCF8583 is mainly compatible to PCF8593, so this driver should also work for PCF8593 except RAM calls ¶
This driver was tested with Tinkerboard.
func NewPCF8583Driver ¶
func NewPCF8583Driver(c Connector, options ...func(Config)) *PCF8583Driver
NewPCF8583Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver i2c.WithPCF8583Mode(PCF8583Control): mode of this driver
func (*PCF8583Driver) ReadCounter ¶
func (d *PCF8583Driver) ReadCounter() (val int32, err error)
ReadCounter reads the counter registers
func (*PCF8583Driver) ReadRAM ¶
func (d *PCF8583Driver) ReadRAM(address uint8) (val uint8, err error)
ReadRAM reads a value from a given address (0x00-0xFF)
func (*PCF8583Driver) ReadTime ¶
func (d *PCF8583Driver) ReadTime() (val time.Time, err error)
ReadTime reads the clock and returns the value
func (*PCF8583Driver) WriteCounter ¶
func (d *PCF8583Driver) WriteCounter(val int32) error
WriteCounter writes the counter registers
type PCF8591Channel ¶ added in v1.16.0
type PCF8591Channel uint8
type PCF8591Driver ¶ added in v1.16.0
type PCF8591Driver struct { *Driver LastRead [][]byte // for debugging purposes // contains filtered or unexported fields }
PCF8591Driver is a Gobot Driver for the PCF8591 8-bit 4xA/D & 1xD/A converter with i2c (100 kHz) and 3 address pins. The analog inputs can be used as differential inputs in different ways.
All values are linear scaled to 3.3V by default. This can be changed, see example "tinkerboard_pcf8591.go".
Address specification: 1 0 0 1 A2 A1 A0|rd Lowest bit (rd) is mapped to switch between write(0)/read(1), it is not part of the "real" address.
Example: A1,A2=1, others are 0 Address mask => 1001110|1 => real 7-bit address mask 0100 1110 = 0x4E
For example, here is the Adafruit board that uses this chip: https://www.adafruit.com/product/4648
This driver was tested with Tinkerboard and the YL-40 driver.
func NewPCF8591Driver ¶ added in v1.16.0
func NewPCF8591Driver(c Connector, options ...func(Config)) *PCF8591Driver
NewPCF8591Driver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver i2c.WithPCF8591With400kbitStabilization(uint8, uint8): stabilize read in 400 kbit mode
func (*PCF8591Driver) AnalogOutputState ¶ added in v1.16.0
func (p *PCF8591Driver) AnalogOutputState(state bool) error
AnalogOutputState enables or disables the analog output Please note that in case of using the internal oscillator and the auto increment mode the output should not switched off. Otherwise conversion errors could occur.
func (*PCF8591Driver) AnalogRead ¶ added in v1.16.0
func (p *PCF8591Driver) AnalogRead(description string) (value int, err error)
AnalogRead returns value from analog reading of given input description
Vlsb = (Vref-Vagnd)/256, value = (Van+ - Van-)/Vlsb, Van-=Vagnd for single mode
The first read contains the last converted value (usually the last read). After the channel was switched this means the value of the previous read channel. After power on, the first byte read will be 80h, because the read is one cycle behind.
Important note for 440 kbit mode: With a bus speed of 100 kBit/sec, the ADC conversion has ~80 us + ACK (time to transfer the previous value). This time is the limit for A-D conversion (datasheet 90 us). An i2c bus extender (LTC4311) don't fix it (it seems rather the opposite).
This leads to following behavior:
- the control byte is not written correctly
- the transition process takes an additional cycle, very often
- some circuits takes one cycle longer transition time in addition
- reading more than one byte by Read([]byte), e.g. to calculate an average, is not sufficient, because some missing integration steps in each conversion (each byte value is a little bit lower than expected)
So, for default, we drop the first three bytes to get the right value.
func (*PCF8591Driver) AnalogWrite ¶ added in v1.16.0
func (p *PCF8591Driver) AnalogWrite(pin string, value int) (err error)
AnalogWrite writes the given value to the analog output (DAC) Vlsb = (Vref-Vagnd)/256, Vaout = Vagnd+Vlsb*value implements the aio.AnalogWriter interface, pin is unused here
type SHT2xDriver ¶ added in v1.15.0
SHT2xDriver is a Driver for a SHT2x humidity and temperature sensor
func NewSHT2xDriver ¶ added in v1.15.0
func NewSHT2xDriver(c Connector, options ...func(Config)) *SHT2xDriver
NewSHT2xDriver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*SHT2xDriver) Accuracy ¶ added in v1.15.0
func (d *SHT2xDriver) Accuracy() byte
func (*SHT2xDriver) Humidity ¶ added in v1.15.0
func (d *SHT2xDriver) Humidity() (humidity float32, err error)
Humidity returns the current humidity in percentage of relative humidity
func (*SHT2xDriver) Reset ¶ added in v1.15.0
func (d *SHT2xDriver) Reset() (err error)
Reset does a software reset of the device
func (*SHT2xDriver) SetAccuracy ¶ added in v1.15.0
func (d *SHT2xDriver) SetAccuracy(acc byte) (err error)
SetAccuracy sets the accuracy of the sampling
func (*SHT2xDriver) Temperature ¶ added in v1.15.0
func (d *SHT2xDriver) Temperature() (temp float32, err error)
Temperature returns the current temperature, in celsius degrees.
type SHT3xDriver ¶ added in v1.1.0
SHT3xDriver is a Driver for a SHT3x humidity and temperature sensor
func NewSHT3xDriver ¶ added in v1.1.0
func NewSHT3xDriver(c Connector, options ...func(Config)) *SHT3xDriver
NewSHT3xDriver creates a new driver with specified i2c interface Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*SHT3xDriver) Accuracy ¶ added in v1.1.0
func (s *SHT3xDriver) Accuracy() byte
Accuracy returns the accuracy of the sampling
func (*SHT3xDriver) Heater ¶ added in v1.1.0
func (s *SHT3xDriver) Heater() (status bool, err error)
Heater returns true if the heater is enabled
func (*SHT3xDriver) Sample ¶ added in v1.1.0
func (s *SHT3xDriver) Sample() (temp float32, rh float32, err error)
Sample returns the temperature in celsius and relative humidity for one sample
func (*SHT3xDriver) SerialNumber ¶ added in v1.1.0
func (s *SHT3xDriver) SerialNumber() (sn uint32, err error)
SerialNumber returns the serial number of the chip
func (*SHT3xDriver) SetAccuracy ¶ added in v1.1.0
func (s *SHT3xDriver) SetAccuracy(a byte) (err error)
SetAccuracy sets the accuracy of the sampling
func (*SHT3xDriver) SetHeater ¶ added in v1.1.0
func (s *SHT3xDriver) SetHeater(enabled bool) (err error)
SetHeater enables or disables the heater on the device
type SSD1306Driver ¶ added in v1.4.0
type SSD1306Driver struct { *Driver // contains filtered or unexported fields }
SSD1306Driver is a Gobot Driver for a SSD1306 Display.
func NewSSD1306Driver ¶ added in v1.4.0
func NewSSD1306Driver(c Connector, options ...func(Config)) *SSD1306Driver
NewSSD1306Driver creates a new SSD1306Driver.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
WithBus(int): bus to use with this driver WithAddress(int): address to use with this driver WithSSD1306DisplayWidth(int): width of display (defaults to 128) WithSSD1306DisplayHeight(int): height of display (defaults to 64) WithSSD1306ExternalVCC: set true when using an external OLED supply (defaults to false)
func (*SSD1306Driver) Clear ¶ added in v1.4.0
func (s *SSD1306Driver) Clear()
Clear clears the display buffer.
func (*SSD1306Driver) Display ¶ added in v1.4.0
func (s *SSD1306Driver) Display() (err error)
Display sends the memory buffer to the display.
func (*SSD1306Driver) Init ¶ added in v1.4.0
func (s *SSD1306Driver) Init() (err error)
Init initializes the ssd1306 display.
func (*SSD1306Driver) Off ¶ added in v1.4.0
func (s *SSD1306Driver) Off() (err error)
Off turns off the display.
func (*SSD1306Driver) On ¶ added in v1.4.0
func (s *SSD1306Driver) On() (err error)
On turns on the display.
func (*SSD1306Driver) Reset ¶ added in v1.4.0
func (s *SSD1306Driver) Reset() (err error)
Reset clears display.
func (*SSD1306Driver) Set ¶ added in v1.4.0
func (s *SSD1306Driver) Set(x, y, c int)
Set sets a pixel in the buffer.
func (*SSD1306Driver) SetContrast ¶ added in v1.4.0
func (s *SSD1306Driver) SetContrast(contrast byte) (err error)
SetContrast sets the display contrast.
type SSD1306Init ¶ added in v1.13.0
type SSD1306Init struct {
// contains filtered or unexported fields
}
SSD1306Init contains the initialization settings for the ssd1306 display.
func (*SSD1306Init) GetSequence ¶ added in v1.13.0
func (i *SSD1306Init) GetSequence() []byte
GetSequence returns the initialization sequence for the ssd1306 display.
type TH02Driver ¶ added in v1.13.0
TH02Driver is a Driver for a TH02 humidity and temperature sensor
func NewTH02Driver ¶ added in v1.13.0
func NewTH02Driver(a Connector, options ...func(Config)) *TH02Driver
NewTH02Driver creates a new driver with specified i2c interface. Defaults to:
- Using high accuracy (lower speed) measurements cycles.
- Emitting values in "C". If you want F, set Units to "F"
Params:
conn Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*TH02Driver) Accuracy ¶ added in v1.13.0
func (s *TH02Driver) Accuracy() byte
Accuracy returns the accuracy of the sampling (deprecated, use FastMode() instead)
func (*TH02Driver) FastMode ¶
func (s *TH02Driver) FastMode() (bool, error)
FastMode returns true if the fast mode is enabled in the device
func (*TH02Driver) Heater ¶ added in v1.13.0
func (s *TH02Driver) Heater() (bool, error)
Heater returns true if the heater is enabled in the device
func (*TH02Driver) Sample ¶ added in v1.13.0
func (s *TH02Driver) Sample() (temperature float32, relhumidity float32, _ error)
Sample returns the temperature in celsius and relative humidity for one sample
func (*TH02Driver) SerialNumber ¶ added in v1.13.0
func (s *TH02Driver) SerialNumber() (uint8, error)
SerialNumber returns the serial number of the chip
func (*TH02Driver) SetAccuracy ¶ added in v1.13.0
func (s *TH02Driver) SetAccuracy(a byte)
SetAccuracy sets the accuracy of the sampling. (deprecated, use WithFastMode() instead) It will only be used on the next measurement request. Invalid value will use the default of High
func (*TH02Driver) SetHeater ¶
func (s *TH02Driver) SetHeater(state bool) error
SetHeater sets the heater of the device to the given state.
type TSL2561Driver ¶ added in v1.3.0
type TSL2561Driver struct { *Driver // contains filtered or unexported fields }
TSL2561Driver is the gobot driver for the Adafruit Digital Luminosity/Lux/Light Sensor
Datasheet: http://www.adafruit.com/datasheets/TSL2561.pdf
Ported from the Adafruit driver at https://github.com/adafruit/Adafruit_TSL2561 by K. Townsend
func NewTSL2561Driver ¶ added in v1.3.0
func NewTSL2561Driver(c Connector, options ...func(Config)) *TSL2561Driver
NewTSL2561Driver creates a new driver for the TSL2561 device.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver i2c.WithTSL2561Gain1X: sets the gain to 1X i2c.WithTSL2561Gain16X: sets the gain to 16X i2c.WithTSL2561AutoGain: turns on auto gain i2c.WithTSL2561IntegrationTime13MS: sets integration time to 13ms i2c.WithTSL2561IntegrationTime101MS: sets integration time to 101ms i2c.WithTSL2561IntegrationTime402MS: sets integration time to 402ms
func (*TSL2561Driver) CalculateLux ¶ added in v1.3.0
func (d *TSL2561Driver) CalculateLux(broadband uint16, ir uint16) (lux uint32)
CalculateLux converts raw sensor values to the standard SI Lux equivalent. Returns 65536 if the sensor is saturated.
func (*TSL2561Driver) GetLuminocity ¶ added in v1.3.0
func (d *TSL2561Driver) GetLuminocity() (broadband uint16, ir uint16, err error)
GetLuminocity gets the broadband and IR only values from the TSL2561, adjusting gain if auto-gain is enabled
func (*TSL2561Driver) SetGain ¶ added in v1.3.0
func (d *TSL2561Driver) SetGain(gain TSL2561Gain) error
SetGain adjusts the TSL2561 gain (sensitivity to light)
func (*TSL2561Driver) SetIntegrationTime ¶ added in v1.3.0
func (d *TSL2561Driver) SetIntegrationTime(time TSL2561IntegrationTime) error
SetIntegrationTime sets integrations time for the TSL2561
type TSL2561Gain ¶ added in v1.3.0
type TSL2561Gain int
TSL2561Gain is the type of all valid gain settings
const ( // TSL2561Gain1X gain == 1x TSL2561Gain1X TSL2561Gain = 0x00 // No gain // TSL2561Gain16X gain == 16x TSL2561Gain16X = 0x10 // 16x gain )
type TSL2561IntegrationTime ¶ added in v1.3.0
type TSL2561IntegrationTime int
TSL2561IntegrationTime is the type of all valid integration time settings
const ( // TSL2561IntegrationTime13MS integration time 13ms TSL2561IntegrationTime13MS TSL2561IntegrationTime = iota // 13.7ms // TSL2561IntegrationTime101MS integration time 101ms TSL2561IntegrationTime101MS // 101ms // TSL2561IntegrationTime402MS integration time 402ms TSL2561IntegrationTime402MS // 402ms )
type WiichuckDriver ¶
type WiichuckDriver struct { *Driver gobot.Eventer // contains filtered or unexported fields }
WiichuckDriver contains the attributes for the i2c driver
func NewWiichuckDriver ¶
func NewWiichuckDriver(c Connector, options ...func(Config)) *WiichuckDriver
NewWiichuckDriver creates a WiichuckDriver with specified i2c interface.
Params:
c Connector - the Adaptor to use with this Driver
Optional params:
i2c.WithBus(int): bus to use with this driver i2c.WithAddress(int): address to use with this driver
func (*WiichuckDriver) Joystick ¶ added in v1.4.0
func (w *WiichuckDriver) Joystick() map[string]float64
Joystick returns the current value for the joystick
type YL40Driver ¶ added in v1.16.0
type YL40Driver struct { *PCF8591Driver // contains filtered or unexported fields }
YL40Driver is a Gobot i2c bus driver for the YL-40 module with light dependent resistor (LDR), thermistor (NTC) and an potentiometer, one additional analog input and one analog output with an connected LED. The module is based on PCF8591 with 4xADC, 1xDAC. For detailed documentation refer to PCF8591Driver.
All values are linear scaled to 3.3V by default. This can be changed, see example "tinkerboard_yl40.go".
This driver was tested with Tinkerboard and this board with temperature & brightness sensor: https://www.makershop.de/download/YL_40_yl40.pdf
func NewYL40Driver ¶ added in v1.16.0
func NewYL40Driver(a Connector, options ...func(Config)) *YL40Driver
NewYL40Driver creates a new driver with specified i2c interface Params:
conn Connector - the Adaptor to use with this Driver
Optional parameters:
refer to PCF8591Driver for i2c specific options refer to TemperatureSensorDriver for temperature sensor specific options refer to AnalogSensorDriver for analog input specific options refer to AnalogActuatorDriver for analog output specific options
func (*YL40Driver) AIN2 ¶ added in v1.16.0
func (y *YL40Driver) AIN2() (val float64, err error)
AIN2 returns the last read analog input value of the driver
func (*YL40Driver) AOUT ¶ added in v1.16.0
func (y *YL40Driver) AOUT() (val float64, err error)
AOUT returns the last written value of the driver
func (*YL40Driver) Brightness ¶ added in v1.16.0
func (y *YL40Driver) Brightness() (val float64, err error)
Brightness returns the last read brightness of the driver
func (*YL40Driver) Halt ¶ added in v1.16.0
func (y *YL40Driver) Halt() (err error)
Halt stops the driver
func (*YL40Driver) Potentiometer ¶ added in v1.16.0
func (y *YL40Driver) Potentiometer() (val float64, err error)
Potentiometer returns the last read potentiometer value of the driver
func (*YL40Driver) Read ¶ added in v1.16.0
func (y *YL40Driver) Read(pin YL40Pin) (val float64, err error)
Read returns the current reading from the given pin of the driver For the analog output pin the last written value is returned
func (*YL40Driver) ReadAIN2 ¶ added in v1.16.0
func (y *YL40Driver) ReadAIN2() (val float64, err error)
ReadAIN2 returns the current reading from analog input pin 2 pin of the driver
func (*YL40Driver) ReadBrightness ¶ added in v1.16.0
func (y *YL40Driver) ReadBrightness() (val float64, err error)
ReadBrightness returns the current reading from brightness pin of the driver
func (*YL40Driver) ReadPotentiometer ¶ added in v1.16.0
func (y *YL40Driver) ReadPotentiometer() (val float64, err error)
ReadPotentiometer returns the current reading from potentiometer pin of the driver
func (*YL40Driver) ReadTemperature ¶ added in v1.16.0
func (y *YL40Driver) ReadTemperature() (val float64, err error)
ReadTemperature returns the current reading from temperature pin of the driver
func (*YL40Driver) Start ¶ added in v1.16.0
func (y *YL40Driver) Start() (err error)
Start initializes the driver
func (*YL40Driver) Temperature ¶ added in v1.16.0
func (y *YL40Driver) Temperature() (val float64, err error)
Temperature returns the last read temperature of the driver
func (*YL40Driver) Value ¶ added in v1.16.0
func (y *YL40Driver) Value(pin YL40Pin) (val float64, err error)
Value returns the last read or written value from the given pin of the driver
func (*YL40Driver) Write ¶ added in v1.16.0
func (y *YL40Driver) Write(val float64) (err error)
Write writes the given value to the analog output
type YL40Pin ¶ added in v1.16.0
type YL40Pin string
YL40Pin wraps the underlying string type for type safety
const ( // YL40Bri for brightness sensor, high brightness - low raw value, scaled to 0..1000 (high brightness - high value) YL40Bri YL40Pin = "brightness" // YL40Temp for temperature sensor, high temperature - low raw value, scaled to °C YL40Temp YL40Pin = "temperature" // YL40AIN2 is wired to AOUT, scaled to voltage 3.3V YL40AIN2 YL40Pin = "analog input AIN2" // YL40Poti is adjustable resistor, turn clockwise will lower the raw value, scaled to -100..+100% (clockwise) YL40Poti YL40Pin = "potentiometer" // YL40AOUT is the analog output YL40AOUT YL40Pin = "analog output" )
Source Files ¶
- adafruit1109_driver.go
- adafruit_driver.go
- ads1x15_driver.go
- adxl345_driver.go
- bh1750_driver.go
- blinkm_driver.go
- bme280_driver.go
- bmp180_driver.go
- bmp280_driver.go
- bmp388_driver.go
- ccs811_driver.go
- doc.go
- drv2605l_driver.go
- generic_driver.go
- grove_drivers.go
- grovepi_driver.go
- hmc5883l_driver.go
- hmc6352_driver.go
- i2c_config.go
- i2c_connection.go
- i2c_driver.go
- ina3221_driver.go
- jhd1313m1_driver.go
- l3gd20h_driver.go
- lidarlite_driver.go
- mcp23017_driver.go
- mfrc522_driver.go
- mma7660_driver.go
- mpl115a2_driver.go
- mpu6050_driver.go
- pca9501_driver.go
- pca953x_driver.go
- pca9685_driver.go
- pcf8583_driver.go
- pcf8591_driver.go
- sht2x_driver.go
- sht3x_driver.go
- ssd1306_driver.go
- th02_driver.go
- tsl2561_driver.go
- wiichuck_driver.go
- yl40_driver.go