This pendulum clock is not only regulated by the pendulum, but it is driven by it. A hidden magnet in the pendulum swings past a hidden coil and induces a current. This is detected and then a current pulse is fed into the coil, creating an electromagnet that repels the pendulum to keep it moving.
Others have designed and built clocks like this, but as far as I know mine is the only one using a microcontroller to fine-tune the pendulum's speed to keep accurate time.
The coil's output is filtered and fed into an MSP430 comparator, set on an interrupt to wake the microcontroller up. The microcontroller delays a bit to let the magnet swing away from the coil some for optimal push, then feeds a variable-length pulse (typically 25 mS) into the coil via an output port connected to a PNP transistor. If the pulse duration is increased, the pendulum swings farther and slows down. If decreased, the pendulum speeds up. The ratchet mechanism used to convert pendulum motion into rotary motion had to be designed to accommodate this variation in pendulum swing angle. By varying the pulse width, the clock can be sped up or slowed down about 1%. The pendulum needs to be manually adjusted, by setting the height of the bob, to within this tolerance. To facilitate that, I use a dual-color LED driven by two output ports. The LED flashes red if the pendulum is too slow, and green if it is too fast. It usually takes only a few minutes to adjust the bob.
Once the bob is set, the microcontroller can maintain accuracy. I've implemented a modified PID (proportional - integral - derivative) control system to derive the pulse width and regulate the clock. Accuracy is basically the same as the watch crystal used to drive the timer/counter.