This is a LED stroboscope whose frequency and duty cycle are adjustable and displayed on a LCD
The heart of the stroboscope is a MSP430G2452 microcontroller which handles the blinking of the LED, the LCD display (HD77480 compatible) and decodes the data from the navigation wheel. The stroboscope is powered through an USB plug which is a widely spread 5V source (computers, USB battery, charger, ...). The frequency of the strobe is produced by the timer of the microcontroller which is itself driven by the msp430's internal RC oscillator. As no crystal is used, one should not expect a very accurate frequency from this strobe which, according to some tests I made, should be around 1% accurate, which is not so bad...
The LCD is a MC1602X-SYL display (datasheet) scavenged from an old server lying in an electronic recycle bin. It has two lines of 16 characters which is more than enough to display the frequency of the stroboscope.
This wheel comes from an old computer mouse. I cut out the part of the PCB containing the buttons and I directly connected them to the microcontroller. The wheel il connected to a rotary encoder consisting of two switches S1 and S2 a little bit shifted. You can know the rotation direction by figuring out which switch closes first. In the firmware, an interrupt is triggered when S1 closes and at this moment, the microcontroller checks the state on S2. Depending of this state it can deduce the rotation direction of the wheel.
Unfortunately the reality turned out to be much more complicated. Both switches are very noisy and bouncy, hence the firmware has to be more elaborate to sort out real transitions from bounces or noise. In its current state it is quite usable but there are still a few glitches remaining.
29/04/2013 : According to advices in comments, I finally used this method for reading the wheel status, now it works flawlessly !
A stroboscope is extremely useful to watch fast and cyclic movements : rotating machines, vibrations, ...
The following video shows how we can watch the vibration of the membrane of a speaker oscillating at a frequency of approximately 50Hz. When the stroboscope blinks at the same frequency as the oscillations of the membrane, it lights the latter each time at the same place of its vibration cycle and the membrane looks still.
On the other hand, when the frequency of the stroboscope is slightly higher, each light pulse lights the membrane a little bit earlier in its cycle than the previous pulse, the movement of the membrane is slowed down (and reversed, even if in this precise case of a sinusoidal oscillation there is no difference with the actual direction). The bigger the difference between the frequencies of the stroboscope and the membrane, the faster the apparent oscillation frequency of the membrane.