John Graham-Cumming (JGC), author of The Geek Atlas, wrote in to let us know about a fun conversion he did with a cheap optical mouse:
For a small robot project I’m working on I needed a way to measure the robot’s progress across the floor. There are various possibilities, such as: use stepper motors (expensive and am recycling some old continuous run servos), add an encoder to the wheels (would need to go buy some parts for that), or use the optical sensor for a mouse.
I had a really old PS/2 optical mouse lying around which contains an MCS-12085 optical sensor that has a rather simple serial interface suitable for connection to a microcontroller. Inside there are two separate areas of components. On the right in the picture above is the PS/2 interface chips and four nice extras that I desoldered for later use (three microswitches and a quadrature encoder)…
This is a great example of repurposing something that might otherwise go to a landfill; and to top it off, JGC has posted some code you can use as an Arduino interface to the optical mouse sensor. Read all about his conversion at his blog.