Raspberry Pi Gesture Control

Many smartphones are capable of gesture control, where the phone can sense movement of the owner’s hands near it and respond accordingly. Now you can add the same features to the versatile credit card sized single board computer, the Raspberry Pi or RBPi. The features are provided by the Microchip 3D Gesture Controller, the MGC3130 GestIC and a 3D Touchpad.

The hardware you will need for implementing the gesture control is the MGC3130 Hillstar Development Kit, a 5V, 1.2A power supply with a microUSB connector and an RBPi Model B, preferably V2. Initially, you will need access to a PC for parameterization and for flashing the firmware on the MGC3130. After the flashing is over, the MGC3130 can communicate directly with the RBPi via the GesturePort available of the tiny MGC3130 board on the Hillstar dev kit. The Hillstar board needs signals EIO1, EIO2, EIO3, EIO6 and EIO7, which the RBPi supplies via its GPIO connector.

3D gesture sensing and control applications require capacitive sensing, which the MGC3130 handles aptly. You can either power the Hillstar board from the USB charger, or let the RBPi power it up directly. Once connected, the MGC3130 senses the North-South and East-West hand flicks. The EIOx pins flag the gestures sensed to the RBPi, which then acts on them according to actions already assigned.

The GestIC controller has Aurea, a free graphic shell working around it. Aurea allows parameterization of several planes of different sizes and configuration. These planes make up the capacitive sensing pad and you can calibrate and configure them with good precision. For programming, you will require the Raspbian OS Debian Wheezy – version January 2014, Python – version 2.7.3, RPI.GPIO – version 0.5.4, Tkinter and Leafpad. All the above software are already included in the Raspbian OS. To demonstrate the functioning of the gesture controller, you can use the python code for the game “2048” – 2048_with_Gesture_Port_Demo.py.

The software package for the MGC3130 contains all the relevant system software and its documentation. The package, provided by Microchip, contains the PC software Aurea, the GestIC Library binary file, the GestIC Parameterization files, CDC driver for Windows and the relevant documentation. You can use the Software Development Kit, also from Microchip, for integrating the MGC3130 into a software environment, as it includes a C-reference code for the GestIC API, a precompiled library for the Windows operating system. It also includes a demo application (the game “2048”) that uses the GestIC API interface on the Hillside Development Kit.

The Hillstar Development Kit provides a reference electrode of 95×60 cm for the touchpad. This consists of one Transmit and a set of five Receive electrodes – one each for north, east, south, west and center positions. These electrodes are placed in two different layers. To shield the Transmit electrode from external influences, it has a ground layer just underneath.

The five Receive electrodes include the four frame electrodes and one center electrode. The frame electrode names follow from their cardinal directions, that is, north, east, south and west. The maximum sensing area is defined by the dimensions of the four Receive frame electrodes. The center electrode is positioned to get a similar input signal level as received by the four frame electrodes.