The Bitcraze Flow Breakout Board
Optical Flow
Optical Flow
The most common example of optical flow is probably a computer mouse. Turning the mouse over you’ll see a strong light that’s used to illuminate the surface so that a camera can clearly see the surface. When running, the camera will identify features in the surface below it and track their motion between frames. As you move the mouse to the left, features will move to the right.
The Flow breakout board, which is built around the Pixart PMW3901 optical flow tracking sensor and the ST VL53L0x ranging sensor, measures motion in three dimensions.
The idea behind the Flow breakout board was conceived after we created the Flow deck, which is an expansion deck used by our Crazyflie 2.0 drone to enable autonomous flight. The Flow deck is attached under the Crazyflie 2.0 and gives the drone the ability to understand when it’s moving in any direction — basically enabling it to be programmed to fly in a pre-scripted flight path.
When we saw the sensor in action, we realized that this functionality could be used for so much more — why not make a breakout board that could be connected to a microcontroller? So, we developed the Flow breakout and made it compatible with Arduino.
Getting Started
It’s easy to get started with the Flow breakout board — just follow the getting started guide to see how to hook it up to an Arduino and measure motion. The guide will walk you through the process of getting sensor values from the Flow breakout board using an Arduino Uno. The process should be applicable to any Arduino-compatible board with I2C and SPI support.
Touchless Mouse Using the Flow Breakout
To demonstrate the Flow breakout board in action, we created a Hackster project that describes how to make a touchless mouse using the Flow breakout.
The idea is that we can detect the proximity of a hand with the ranging sensor contained in the Flow Breakout and detect how the hand is moving via the optical flow sensor. The flow sensor is very similar to an optical mouse sensor, so we are simply inverting the concept to move the environment (the hand) instead of moving the flow sensor against a table. By using an Arduino Leonardo, our hack is recognized as a regular mouse by any computer.
We believe the Flow breakout will be a great tool for people that are interested in learning more about how optical flow works. With the board, it is possible to create applications such as motion tracking of a robot, counting people entering a room, or gesture tracking.
We are the creators of the Crazyflie quadcopter, the flying open source development platform.