This ATmega16-based project implements and demonstrates an interface which supports up to 3 moderately precise non-contact XY sensors, 3 low resolution rotational sensors, and 9 switches using a simple protocol on a single communications channel. It was developed primarily to provide low cost and easily implemented sensors for homebrew robotics projects. The project is equipped with RS-232 for the communications link to the other MCU host.
The sensors which the interface controls are components in one to three inexpensive optical scroll mice. The mice are wired directly to the AVR, so the interface consists of no external components. Each mouse has 3 switches, a scroll wheel, and an optical XY sensor. A typical use envisioned for this interface might have the mouse (or its extracted innards) in a stationary mounting, with some external surface passing in front of its optics to provide the relative motion which is detected and reported. The positional sensor interface project is designed by Chuck Baird.
Project Detail and Documentation