Detect motion of close-up surfaces with this Breakout Garden compatible optical navigation breakout - great for floor tracking for ground dwelling robots!
The PAA5100JE sensor is used in robot vacuum cleaners and uses a low-resolution camera and some clever algorithms to detect motion of surfaces. This sensor has a super close range of 15-35mm so it's suitable for use with a variety of different surfaces. If you're looking for a similar sensor with a bigger range (for attaching to something like a drone) check out our PMW3901 breakout.
You can use this breakout completely solder-free with any Breakout Garden with an SPI slot, for ease of prototyping.
Features
PAA5100JE-Q optical tracking sensor (datasheet)
Two white LEDs on-board for illumination
Frame rate: 242 FPS (frames per second)
Range: 15-35mm
Field of view: 42°
Maximum speed: 1.14 meters per second (with sensor 25mm away from surface)
6mA typical current draw
SPI interface
3.3V or 5V compatible
Reverse polarity protection
Compatible with Arduino
Compatible with Raspberry Pi (Python library)
Compatible with Raspberry Pi Pico (C++/MicroPython libraries)
Mechanical drawing
Schematic
Software We've adapted our PWM3901 Python library to work with this sensor as well. It makes reading the x/y motion values and their magnitude really straightforward. Use the following line at the beginning of your code to make sure it's set up correctly:
from pmw3901 import PAA5100
Connecting to your Raspberry Pi
If you're not using a Breakout Garden, this is how to connect your Near Optical Flow Sensor Breakout up to your Raspberry Pi.
Our library is set up to use the front SPI slot by default: BCM 7 for CS, BCM 11 for SCK, BCM 10 for MOSI, BCM 9 for MISO, and BCM 19 for the INT pin.
Here's which pins to connect between your Near Optical Flow Sensor Breakout and your Pi's GPIO (note that it's BCM pin numbering):
3-5V to any 5V or 3V pin
CS to BCM 7
SCK to BCM 11
MOSI to BCM 10
MISO to BCM 9
INT to BCM 19
GND to any ground pin
You can of course use other pins but you'll have to change them accordingly when you instantiate the sensor in your code.
Notes
Measurements: approx 24mm x 24.5mm x 5mm (L x W x H, including components)