-- VirgilioMattoli? - 02 Aug 2004

Optical Displacement Sensor

I have investigated the possibility of using the optical devices for measuring displacement, on board of climbing robot. I mainly investigated the optical chip that are common used inside optical mouse. The chips are composed by a lo resolution CCD module (typically 16X16 pixels) integrated with a DSP engine, that elaborates acquired images ad high frame rate (typically in the order of 1000 - 2000 frame per second) in order to evaluate the displacement.

The main producer (the only?) of this kind of devices is Agilent. Agilent produces 4-5 different types of chips, all working on the same principle. They change just in type of interface and performance. The device that I have analysed in detail is the ADNS2051 (the datasheet is attached as ADNS2051.pdf:).

This devices can be interfaced in two ways: by a two channel quadrature encoder like output or by a half duplex SPI connection. I realised a little hardware interface to evaluate the performance using both interfaces. This hardware is just a microcontroller (PIC18F2320? ) that is interfaced to the chip ADNS2051 through both SPI and quadrature encoder interfaces. The microcontroller is connected by RS 232 to a PC with a dedicated software developed in order to evaluate the performance of the device. I have obtained the ADNS2051 devices with the necessary optical parts (lens and LED) by an hold Logitech optical mouse. I removed some electronic connection between the ADNS2051 and the previous mouse electronic (mainly the SPI pins and 5 V power line for the chip and the LED). I connected the SPI, the quadrature encoder to the new microcontroller hardware; I also powered the ADNS2051 and the LED directly by the new microprocessor board.


Picture of the system.

The hardware schematics(OpticalSensorV1.0.ppt: ), firmware code for microcontroller(OpticalInterfaceFirmware.zip: ) and PC Program(OptoInterfacePCProgram.zip: ) with source code(OptoIntefaceSoftwareSourceV1.1.zip: ) are provided.


Using SPI interface instead the simple quadrature output interface is possible access directly to the registers of the ADNS2051 and is possible have more information than the only displacement. In the registers there were information about:

  • Product and revision information
  • Motion (if there is motion, overflows and faults information …)
  • X displacement and Y displacement,
  • Surface quality (measure of the number of features visible by the sensor in
the current frame; it is an important parameters to understand if the sensor is in contact with the surface)
  • Average and maximum value of pixels (surface information)
  • Information about electronic shutter opening time
  • It is possible read and set value of the frame acquisition rate and set some parameters like resolution (up to 800 count per inch), LED operational mode and other functionality parameters.
  • It is also possible download acquired frames (but at low rate)

For a possible use as displacement sensor in the climbing robot some consideration about its features can be done

Useful features:

  • Good measurement of displacement (up to 30 micron of resolution)
  • Good reproducibility (error less than0,5 %)
  • Able to give some information about the surface and the continuity of contact with that (can be used also a “detachment” sensor)

Weak points:

  • The sensor must be in good contact with the surface
  • The surface must be enough smooth
  • The sensor is no able to detect rotation

This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback