Tag Archives: 3D gestures

Creating a virtual touchscreen with Arduino

Maker Anatoly Kuzmenko has a passion for experimenting with his Atmel-based Arduino boards and various signal processing projects. For his latest venture, he tasked an Arduino Due (ATSAM3X8E) to interpret hand gestures into on-screen drawings.

Using four HC-SR04 ultrasonic sensors, the Arduino and a computer running Linux, Anatoly was able to transform his 3D gestures into 2D drawings. He notes that the scanning capabilities of his system reaches about three meters and the ultrasonic sensors have been modified to broadcast an analog signal at 40 kHz.


Though Kuzmenko encountered a few initial issues when testing his device, he soon found his gestures needed to be more deliberate in order for the unit to register them. For this first experiment’s purpose, the Maker’s device only could “lock in” on one object (a pen), therefore the Arduino could not identify both objects on the same sphere. Though, that is something he changed with the second iteration of the virtual touchscreen.

The second build allowed for the sensing of multiple objects in 3D space. With this build, he had to use larger objects to account for the sensors increased workload.

You can view Kuzmenko’s two build videos below, both accompanied by some sweet tunes!

1st build:

2nd build:

For a more detailed breakdown on the Maker’s Virtual touchscreen project, you can head over to his blog.

uMotio controls 3D gestures

The uMotio – which recently surfaced on Indiegogo – is an open source 3D tracking and gesture controller. The platform, equipped with Atmel’s ATmega32U4 microcontroller (MCU), can be used to control media and games or embedded in DIY projects.

“The uMotio brings a new experience to both the regular user, gamer or hacker. Whether it be on a computer, appliances, lighting or your own projects. Using hand and finger tracking you control your world,” uMotio creators Ignatius Havemann and Tom Van den Bon explained.

“The uMotio works straight out of the box, no technical experience required. Have the technical experience? Don’t worry, we have you covered. The uMotio is fully Arduino compatible and with our gesture library you will be integrating motion and gesture control into all your projects without any difficulty.”

So, how does uMotio actually work? Well, the 3D sensor technology transmits frequencies in the range of 100 kHz, which reflects a wavelength of approximately three kilometers. With electrode geometries of typically less than twenty by twenty centimeters, this Tx wavelength is much larger in comparison. As such, the magnetic component is practically zero and no wave propagation takes place.

The result?

A quasi-static electrical near field that can be used for sensing conductive objects such as the human body. Indeed, once a user enters the sensing area, the electrical field distribution becomes distorted. The field lines intercepted by the hand are shunted to ground through the conductivity of the human body itself. The proximity of the body causes a compression of the equipotential lines and shifts the receiver electrode signal levels to a lower potential which is detected by the 3D sensor technology.

“The 3D tracking and gesture sensing is done using Microchip’s 32-bit MGC3130 GestIC Technology. This gives the uMotio a 0 to 15cm detection range with a high resolution of up to 150 dpi,” said Havemann and Tom Van den Bon. “To interface with the world around it, you will find an Atmel’s ATmega32U4 8-bit AVR microcontroller operating at 3.3V. On the AVR we will load an Arduino bootloader so you can easily run your own applications on the uMotio.”

Interested in learning more? You can check out the project’s official Indiegogo page here.