I have built a circuit using arduino to suppress vibration in a piezo element. My inspiration for this was the DIY scanning tunneling microscope design of John Alexander in . Because of the simple analog control and lack of suspension in the mechanics, I had my doubts about the efficacy of his schematic for atom-scale imaging. Piezoelectric material tends to have some complicated nonlinear vibration noise effects that must be adequately compensated for in any decent scanning probe.
So I decided to put to the test recent developments in multiresolution PID control . Isolating the high-frequency, transient vibration modes with a Daubechies wavelet transform, I was able to separate the error signal from the piezo element into modes that could be adjusted...intuitively speaking, high frequency portions are this way adjusted more rapidly, while low frequency vibrations are suppressed more slowly, since you don't want the latter to overshoot and develop into permanent oscillations.
I used an arduino board to transform the error signal into a control signal, fed the control signal into an analog inverter, and then fed the result back through the piezo buzzer. The result was near-complete cancellation which was resilient in the face of noise and even cancelled an external time-varying voltage difference applied to the buzzer.
Attached is a picture of my breadboard with the inverter circuit and piezo buzzer. Also attached is the code I used for the wavelet PID (PWM port 2 is output to inverter, ADC port 5 is input error)
 Parvez, S.; Zhiqiang Gao, "A wavelet-based multiresolution PID controller," Industry Applications, IEEE Transactions on , vol.41, no.2, pp.537,543, March-April 2005.