aio

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2022 License: Apache-2.0, Apache-2.0 Imports: 5 Imported by: 9

README

AIO

This package provides drivers for Analog Input/Output (AIO) devices. It is normally used by connecting an adaptor such as firmata that supports the needed interfaces for analog devices.

Getting Started

Installing

go get -d -u gobot.io/x/gobot/...

Hardware Support

Gobot has a extensible system for connecting to hardware devices. The following AIO devices are currently supported:

  • Analog Sensor
  • Analog Actuator
  • Grove Light Sensor
  • Grove Rotary Dial
  • Grove Sound Sensor
  • Grove Temperature Sensor
  • Temperature Sensor (supports linear and NTC thermistor in normal and inverse mode)

More drivers are coming soon...

Documentation

Overview

Package aio provides Gobot drivers for Analog Input/Output devices.

Installing:

go get -d -u gobot.io/x/gobot

For further information refer to aio README: https://github.com/hybridgroup/gobot/blob/master/platforms/aio/README.md

Index

Constants

View Source
const (
	// Error event
	Error = "error"
	// Data event
	Data = "data"
	// Value event
	Value = "value"
	// Vibration event
	Vibration = "vibration"
)

Variables

View Source
var (
	// ErrAnalogReadUnsupported is error resulting when a driver attempts to use
	// hardware capabilities which a connection does not support
	ErrAnalogReadUnsupported = errors.New("AnalogRead is not supported by this platform")
)

Functions

func AnalogActuatorLinearScaler added in v1.16.0

func AnalogActuatorLinearScaler(fromMin, fromMax float64, toMin, toMax int) func(input float64) (value int)

func AnalogSensorLinearScaler added in v1.16.0

func AnalogSensorLinearScaler(fromMin, fromMax int, toMin, toMax float64) func(input int) (value float64)

func TemperatureSensorNtcScaler added in v1.16.0

func TemperatureSensorNtcScaler(vRef uint, rOhm uint, reverse bool, ntc TemperatureSensorNtcConf) func(input int) (value float64)

Types

type AnalogActuatorDriver added in v1.16.0

type AnalogActuatorDriver struct {
	gobot.Eventer
	gobot.Commander
	// contains filtered or unexported fields
}

AnalogActuatorDriver represents an analog actuator

func NewAnalogActuatorDriver added in v1.16.0

func NewAnalogActuatorDriver(a AnalogWriter, pin string) *AnalogActuatorDriver

NewAnalogActuatorDriver returns a new AnalogActuatorDriver given by an AnalogWriter and pin. The driver supports customizable scaling from given float64 value to written int. The default scaling is 1:1. An adjustable linear scaler is provided by the driver.

Adds the following API Commands:

"Write"    - See AnalogActuator.Write
"RawWrite" - See AnalogActuator.RawWrite

func (*AnalogActuatorDriver) Connection added in v1.16.0

func (a *AnalogActuatorDriver) Connection() gobot.Connection

Connection returns the drivers Connection

func (*AnalogActuatorDriver) Halt added in v1.16.0

func (a *AnalogActuatorDriver) Halt() (err error)

Halt is for halt

func (*AnalogActuatorDriver) Name added in v1.16.0

func (a *AnalogActuatorDriver) Name() string

Name returns the drivers name

func (*AnalogActuatorDriver) Pin added in v1.16.0

func (a *AnalogActuatorDriver) Pin() string

Pin returns the drivers pin

func (*AnalogActuatorDriver) RawValue added in v1.16.0

func (a *AnalogActuatorDriver) RawValue() (val int)

RawValue returns the last written raw value

func (*AnalogActuatorDriver) RawWrite added in v1.16.0

func (a *AnalogActuatorDriver) RawWrite(val int) (err error)

RawWrite write the given raw value to the actuator

func (*AnalogActuatorDriver) SetName added in v1.16.0

func (a *AnalogActuatorDriver) SetName(n string)

SetName sets the drivers name

func (*AnalogActuatorDriver) SetScaler added in v1.16.0

func (a *AnalogActuatorDriver) SetScaler(scaler func(float64) int)

SetScaler substitute the default 1:1 return value function by a new scaling function

func (*AnalogActuatorDriver) Start added in v1.16.0

func (a *AnalogActuatorDriver) Start() (err error)

Start starts driver

func (*AnalogActuatorDriver) Value added in v1.16.0

func (a *AnalogActuatorDriver) Value() (val float64)

Value returns the last written value

func (*AnalogActuatorDriver) Write added in v1.16.0

func (a *AnalogActuatorDriver) Write(val float64) (err error)

Write writes the given value to the actuator

type AnalogReader

type AnalogReader interface {
	//gobot.Adaptor
	AnalogRead(pin string) (val int, err error)
}

AnalogReader interface represents an Adaptor which has AnalogRead capabilities

type AnalogSensorDriver

type AnalogSensorDriver struct {
	gobot.Eventer
	gobot.Commander
	// contains filtered or unexported fields
}

AnalogSensorDriver represents an Analog Sensor

func NewAnalogSensorDriver

func NewAnalogSensorDriver(a AnalogReader, pin string, v ...time.Duration) *AnalogSensorDriver

NewAnalogSensorDriver returns a new AnalogSensorDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin. The driver supports customizable scaling from read int value to returned float64. The default scaling is 1:1. An adjustable linear scaler is provided by the driver.

Optionally accepts:

time.Duration: Interval at which the AnalogSensor is polled for new information

Adds the following API Commands:

"Read"      - See AnalogDriverSensor.Read
"ReadValue" - See AnalogDriverSensor.ReadValue

func (*AnalogSensorDriver) Connection

func (a *AnalogSensorDriver) Connection() gobot.Connection

Connection returns the AnalogSensorDrivers Connection

func (*AnalogSensorDriver) Halt

func (a *AnalogSensorDriver) Halt() (err error)

Halt stops polling the analog sensor for new information

func (*AnalogSensorDriver) Name

func (a *AnalogSensorDriver) Name() string

Name returns the AnalogSensorDrivers name

func (*AnalogSensorDriver) Pin

func (a *AnalogSensorDriver) Pin() string

Pin returns the AnalogSensorDrivers pin

func (*AnalogSensorDriver) RawValue added in v1.16.0

func (a *AnalogSensorDriver) RawValue() int

RawValue returns the last read raw value from the sensor

func (*AnalogSensorDriver) Read

func (a *AnalogSensorDriver) Read() (val int, err error)

Read returns the current reading from the sensor without scaling

func (*AnalogSensorDriver) ReadValue added in v1.16.0

func (a *AnalogSensorDriver) ReadValue() (val float64, err error)

ReadValue returns the current reading from the sensor

func (*AnalogSensorDriver) SetName

func (a *AnalogSensorDriver) SetName(n string)

SetName sets the AnalogSensorDrivers name

func (*AnalogSensorDriver) SetScaler added in v1.16.0

func (a *AnalogSensorDriver) SetScaler(scaler func(int) float64)

SetScaler substitute the default 1:1 return value function by a new scaling function

func (*AnalogSensorDriver) Start

func (a *AnalogSensorDriver) Start() (err error)

Start starts the AnalogSensorDriver and reads the sensor at the given interval. Emits the Events:

Data int - Event is emitted on change and represents the current raw reading from the sensor.
Value float64 - Event is emitted on change and represents the current reading from the sensor.
Error error - Event is emitted on error reading from the sensor.

func (*AnalogSensorDriver) Value added in v1.16.0

func (a *AnalogSensorDriver) Value() float64

Value returns the last read value from the sensor

type AnalogWriter added in v1.16.0

type AnalogWriter interface {
	//gobot.Adaptor
	AnalogWrite(pin string, val int) (err error)
}

AnalogWriter interface represents an Adaptor which has AnalogWrite capabilities

type GroveLightSensorDriver

type GroveLightSensorDriver struct {
	*AnalogSensorDriver
}

GroveLightSensorDriver represents an analog light sensor with a Grove connector

func NewGroveLightSensorDriver

func NewGroveLightSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveLightSensorDriver

NewGroveLightSensorDriver returns a new GroveLightSensorDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin.

Optionally accepts:

time.Duration: Interval at which the AnalogSensor is polled for new information

Adds the following API Commands:

"Read" - See AnalogSensor.Read

type GrovePiezoVibrationSensorDriver

type GrovePiezoVibrationSensorDriver struct {
	*AnalogSensorDriver
}

GrovePiezoVibrationSensorDriver represents an analog vibration sensor with a Grove connector

func NewGrovePiezoVibrationSensorDriver

func NewGrovePiezoVibrationSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GrovePiezoVibrationSensorDriver

NewGrovePiezoVibrationSensorDriver returns a new GrovePiezoVibrationSensorDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin.

Optionally accepts:

time.Duration: Interval at which the AnalogSensor is polled for new information

Adds the following API Commands:

"Read" - See AnalogSensor.Read

type GroveRotaryDriver

type GroveRotaryDriver struct {
	*AnalogSensorDriver
}

GroveRotaryDriver represents an analog rotary dial with a Grove connector

func NewGroveRotaryDriver

func NewGroveRotaryDriver(a AnalogReader, pin string, v ...time.Duration) *GroveRotaryDriver

NewGroveRotaryDriver returns a new GroveRotaryDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin.

Optionally accepts:

time.Duration: Interval at which the AnalogSensor is polled for new information

Adds the following API Commands:

"Read" - See AnalogSensor.Read

type GroveSoundSensorDriver

type GroveSoundSensorDriver struct {
	*AnalogSensorDriver
}

GroveSoundSensorDriver represents a analog sound sensor with a Grove connector

func NewGroveSoundSensorDriver

func NewGroveSoundSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveSoundSensorDriver

NewGroveSoundSensorDriver returns a new GroveSoundSensorDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin.

Optionally accepts:

time.Duration: Interval at which the AnalogSensor is polled for new information

Adds the following API Commands:

"Read" - See AnalogSensor.Read

type GroveTemperatureSensorDriver

type GroveTemperatureSensorDriver struct {
	*TemperatureSensorDriver
}

GroveTemperatureSensorDriver represents a temperature sensor The temperature is reported in degree Celsius

func NewGroveTemperatureSensorDriver

func NewGroveTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *GroveTemperatureSensorDriver

NewGroveTemperatureSensorDriver returns a new GroveTemperatureSensorDriver with a polling interval of 10 Milliseconds given an AnalogReader and pin.

Optionally accepts:

time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off)

Adds the following API Commands:

"Read"      - See AnalogDriverSensor.Read
"ReadValue" - See AnalogDriverSensor.ReadValue

type TemperatureSensorDriver added in v1.16.0

type TemperatureSensorDriver struct {
	*AnalogSensorDriver
}

TemperatureSensorDriver represents an Analog Sensor

func NewTemperatureSensorDriver added in v1.16.0

func NewTemperatureSensorDriver(a AnalogReader, pin string, v ...time.Duration) *TemperatureSensorDriver

NewTemperatureSensorDriver is a gobot driver for analog temperature sensors with a polling interval 10 Milliseconds given an AnalogReader and pin. For further details please refer to AnalogSensorDriver. Linear scaling and NTC scaling is supported.

Optionally accepts:

time.Duration: Interval at which the sensor is polled for new information (given 0 switch the polling off)

Adds the following API Commands:

"Read"      - See AnalogDriverSensor.Read
"ReadValue" - See AnalogDriverSensor.ReadValue

func (*TemperatureSensorDriver) SetLinearScaler added in v1.16.0

func (t *TemperatureSensorDriver) SetLinearScaler(fromMin, fromMax int, toMin, toMax float64)

SetLinearScaler sets a function for linear scaling the read value. This can be applied for some silicon based PTC sensors or e.g. PT100, and in a small temperature range also for NTC.

func (*TemperatureSensorDriver) SetNtcScaler added in v1.16.0

func (t *TemperatureSensorDriver) SetNtcScaler(vRef uint, rOhm uint, reverse bool, ntc TemperatureSensorNtcConf)

SetNtcSaler sets a function for typical NTC scaling the read value. The read value is related to the voltage over the thermistor in an series connection to a resistor. If the thermistor is connected to ground, the reverse flag must be set to true. This means the voltage decreases when temperature gets higher. Currently no negative values are supported.

func (*TemperatureSensorDriver) Temperature added in v1.16.0

func (t *TemperatureSensorDriver) Temperature() (val float64)

Temperature returns the last read temperature from the sensor.

type TemperatureSensorNtcConf added in v1.16.0

type TemperatureSensorNtcConf struct {
	TC0 int     // °C
	R0  float64 // same unit as resistance of NTC (Ohm is recommended)
	B   float64 // 2000..5000K
	TC1 int     // used if B is not given, °C
	R1  float64 // used if B is not given, same unit as R0 needed
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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