This is a 1A Solenoid beating a guiro.
Solenoid is driven by a irf520 mosfet controlled by a arduino pro mini 5V 16Mhz.
Arduino is controlled via i2c by a raspberry pi connected through GPIO pins.
Raspberry Pi runs a python script dispatching received osc messages to i2c. Messages contain only velocity information as integer values.
Rhythmic patterns are programmed (live) in a DSL called Tidal (tidal.lurk.org) written in haskell. Programmed patterns emit osc messages that are sent to the raspberry pi.
The code for the OSC to i2c bridge can be found in a bitbucket repository: bitbucket.org/lmaa/solenoid