My preparatory-class research project (TIPE), done alone. A piezoelectric beam turns vibration into electricity, but only near its resonance frequency. I built one that moves to stay on resonance when the vibration changes.
A small linear stepper motor changes the free length of the beam, which shifts its resonance. An Arduino watches the averaged piezo voltage, moves the motor, and turns back when the voltage starts to drop. In the end it did follow the excitation frequency. To test it I needed a vibration source, so a second Arduino with an H-bridge drives a solenoid as a 0–100 Hz sine generator, pulling on a magnet at the tip of the beam.
I designed and 3D printed every part of the frame, in two versions, and checked the beam with a finite element modal analysis and a Simulink model of the harvesting circuit.