You are on page 1of 4

One ring project.

An air mouse universal remote controller

1 INTRODUCTION
One ring project is started since 8 - 2014. The project aims to help people get more
easy to connect and control hi tech things in your house with one device only.
Touching the device to connect, and making a gesture to control your device are
two simplest steps to bring you to the new era of technology.
One day you have a presentation. You will need an air mouse can click, move next
and back, play a video or handle a problem in your presentation without moving
forward and backward between your computer and your place. Your finger is your
pointer, your gestures are your commands. These things give you an option to
liberate you from mouse stuffs. Or when you are in a car, you need to answer a call,
make a call to your favorite person, play a music, or open a navigation system, all
your needs is simple click and make gesture. Your life will be better, more
convenient than ever.

2 FIRMWARE DESCRIPTION
In this part, we will discuss about the technology behind the ring: Firmware and its
algorithm.
The system of the ring can be describe as the picture below:

MCU with RF
module inside

6 axis
acceleromet
er
gyroscope.

2.1
SENSOR

Touch
senso
r

AXIS ACCELEROMETER AND GYROSCOPE

This sensor called MPU 6050 with can provide two types of data: raw data ,
Calculated data( quaternion , Euler vector) from an inside processor called Digital
Motion Processor DMP .
In order to control mouse: raw data will be used to navigate the location of the
mouse pointer, because of the low latency of reading raw data.
In order to record a gesture, data from DMP will be used to analyze because its
require quaternion data which is not be affects when you are not wearing the ring
100% in the center.
2.1.1 Quaternions and spatial rotation.
When you first click your ring before making a gesture, current quaternion will be
recorded to calculate the rotation vector matrix to original vector (1,0,0) a vector
point ( can be also (0,1,0); (0,0,1) depend on the position of the sensor).
Rotation

Original vector

Current vector

Next, new vector will be rotated base on the rotation matrix

Rotation

Current

Rotated

Rotated

A point in 2d
space

Next, rotated vector will be converted to a point in 2D space.

This point on 2D space will be used to draw an image to record gesture


2.1.2 Raw data
Raw data uses only 2 of 3 axes of gyroscope.
New vertical position = current position + Gyroscope channel Z raw data
New horizontal position = current position + Gyroscope channel X raw data
Because the movement pointer was feedback directly by your eyes (you can see the
present position of the pointer) so there is no need to use quaternion data to control
the air mouse.

3 GESTURE RECOGNITION
Currently, the gesture recognition can record 6 gestures:
1)
2)
3)
4)
5)
6)

Up
Down
Anti-clockwise
Clockwise
Next
Back

The current algorithm is very simple. It detects two dimension of the image
(height and wide ) and original point to detect 4 gesture : Up, down, next, back.
For clockwise and anti-clockwise detection, we need to add more parameter: the
movement vector of the original vector to detect the anti-clockwise and
clockwise detection
Limits of this algorithm:

Hard to develop more gestures: It was limited by the power of MCU ,as
well as lack of parameter to detect the gestures
Limited in wide angle gesture: Because the pointer is converted from 3d to
2d space. Which means you will get an error when you finger move too
much, outside of the 2d space. You can have a look at the picture below

Height =+

Advances of this algorithm:

Simple, easy to use, easy to remember.


Low error.

You might also like