27 November 2017
Flick, from Pi Supply, is a series of add-ons for the Raspberry Pi that you can use to detect taps, touches and finger movements. There are three devices in the series:
- The Flick HAT for Raspberry Pi sits on the GPIO pins of a full-size Pi. It's about 6.5cm by 5.5cm
- The Flick Zero for Raspberry Pi Zero sits on the GPIO pins of a Pi Zero. It's about 6.5cm by 3cm. You can also use the main Flick HAT on the Pi Zero, but the Flick Zero matches the Pi Zero's board size.
- The Flick Large connects to the Pi's GPIO pins using wires. It's about 15cm by 10.5cm, so you would typically put it on the desk or mount it on a wall.
The board can be used to detect touches, taps and double taps. The ability to detect taps in five positions (north, south, east, west, centre) means it can be used as a simple five-button interface. It can also detect airwheel gestures (spinning your finger above the board) and the finger position above the board, including height. In my experience, the device can detect heights of up to about 7cm or 8cm above the board. Height detection still works through the case (there's a set of cases available to compliment the device), although the contact gestures (tap and touch) don't work when the device is in the case.
The Flick can also be used to detect flick gestures (hence the name!), swiping across the board from top to bottom or left to right (or in the other directions). This seems to work at a slightly lower height than the maximum height for finger position detection, based on my setup.
There are lots of potential applications for the Flick. The swiping gesture lends itself well to scrolling through options, and the airwheel could be used as a control for volume or similar parameters. The Pi Zero form factor could be used to make a remote control for a robot or other device. The first thing anyone thinks of is probably a theremin, but that remains a cool project and the Flick could be a nice way to add one discreetly to an existing object. Robot projects could use Flick to add the ability to detect touch. One of the endearing things about the commercial Pepper robot is that it responds when you stroke its head, and that kind of feature could be easily implemented using the Flick.
The most promising format is the Flick Large, because it could give you greater freedom for expressive movements, and so open up new creative possibilities. There's lots of potential in creating robot control panels by putting a decorated sheet of paper in front of the Flick Large, indicating where the virtual controls are for tapping or hovering over. If it works through your desk, the Flick Large could be used to add an invisible touch interface to your furniture. Pi Supply has thought of this and designed a case that enables it to be mounted under the desk in this way.
A Python API is in development, and this will be a big help. The flick-demo program is good for testing the Flick and provides some hackable code, but a few "hello world" examples and a documented API would make it more accessible and easier to build into projects. Here's my "hello world" program for position detection, based on stripping down the flick-demo program:
x_pos, y_pos, z_pos = 0, 0, 0
def move(x, y, z):
global x_pos, y_pos, z_pos
x_pos = x
y_pos = y
z_pos = z
If you're looking to add gesture controls to your projects, or are interested in innovative new interfaces, Flick can be a great addition to your Raspberry Pi. Find out more about the Flick family at the Pi Supply website here. Thanks to Aaron, Francesco and John at Pi Supply for their help with this review.