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 (http://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: https://bitbucket.org/lmaa/solenoid