Arduino Support for Automate¶
Introduction¶
This extension provides interface to Arduino devices via pyFirmata library.
Example application¶
This example application sets up couple of analog and digital Arduino Sensors and Actuators.
It also introduces Servo actuator with ConstantTimeActuator
,
which functions such a way that if value of a1
changes, the value of servo
will change smoothly
within given time interval.
from automate import *
class MySystem(System):
a1 = ArduinoAnalogSensor(dev=0, pin=0)
d12 = ArduinoDigitalSensor(dev=0, pin=12)
d13 = ArduinoDigitalActuator(dev=0, pin=13) # LED on Arduino board
servo = ArduinoServoActuator(min_pulse=200,
max_pulse=8000,
dev=0,
pin=3,
default=50,
slave=True)
interp = ConstantTimeActuator(change_time=2.,
change_frequency=20.,
slave_actuator=servo)
prog = Program(
on_update=Run(Log("Value: %s", Value(a1)),
SetStatus(d13, d12),
SetStatus(interp, Value(180) * Value(a1)))
)
my_arduino = ArduinoService(
arduino_devs=["/dev/ttyUSB0"],
arduino_dev_types=["Arduino"],
arduino_dev_sampling=[500])
s = MySystem(services=[my_arduino, WebService()])
Class definitions¶
Service¶
-
class
automate.extensions.arduino.
ArduinoService
[source]¶ Service that provides interface to Arduino devices via pyFirmata library.
-
arduino_devs
= None¶ Arduino devices to use, as a list
-
arduino_dev_types
= None¶ Arduino device board types, as a list of strings. Choices are defined by pyFirmata board class names, i.e. allowed values are “Arduino”, “ArduinoMega”, “ArduinoDue”.
-
arduino_dev_sampling
= None¶ Arduino device sampling rates, as a list (in milliseconds).
-
Sensors¶
-
class
automate.extensions.arduino.
AbstractArduinoSensor
(*args, **kwargs)[source]¶ Abstract base class for Arduino sensors
-
dev
= None¶ Arduino device number (specify, if more than 1 devices configured in ArduinoService)
-
pin
= None¶ Arduino pin number
-
Actuators¶
-
class
automate.extensions.arduino.
AbstractArduinoActuator
(*args, **kwargs)[source]¶ Abstract base class for Arduino actuators
-
dev
= None¶ Arduino device number (specify, if more than 1 devices configured in ArduinoService)
-
pin
= None¶ Arduino pin number
-
-
class
automate.extensions.arduino.
ArduinoDigitalActuator
(*args, **kwargs)[source]¶ Boolean-valued actuator object for digital Arduino output pins
-
class
automate.extensions.arduino.
ArduinoPWMActuator
(*args, **kwargs)[source]¶ Float-valued actuator object for Arduino output pins that can be configured in PWM mode Status is float between 0.0 and 1.0.
-
class
automate.extensions.arduino.
ArduinoServoActuator
(*args, **kwargs)[source]¶ Float-valued actuator object for Arduino output pins that can be configured in Servo mode Status is servo angle (0-360).
-
min_pulse
= None¶ Minimum pulse time (in microseconds)
-
max_pulse
= None¶ Maximum pulse time (in microseconds)
-