Motion Processing For Mobile Devices Using Embedded Sensors
- Details Hits: 5974
Description
This project consists of two applications: one developed for an Android based mobile phone and one which is to be installed on a computer. It allows the user to make use of its phone as a PC mouse by moving it in the air. The ‘mouse’ performs basic functions as right click, left click, scroll and drag.
Prerequisites
- Android mobile phone with gyroscope and accelerometer v.2.3+
- WiFi
- Phone and PC in the same local network
Project Overview
We use two types of sensors embedded in the mobile device: the accelerometer and the gyroscope. The Android application handles the processing of information acquired from these sensors, and then sends the resulting data to the computer via wireless. The computer runs a server application written in Java which receives data from the phone and then uses it to actually move the mouse pointer accordingly.
The PC Application
It is written in Java and it communicates with the Android application by the means of UDP sockets. It performs the movement of the pointer using the Robot class from Java.
The Android Application
Processing the movement of the phone consists of several steps: data acquisition, data filtering for noise and applying the movement algorithm. On one hand, these have involved working with the Android SDK development platform and, on the other, the understanding and Java implementation of complementary filters, weighted filters, the strap-down algorithm, Euler angles and the Verlet integration method.
Future Developments
There are several improvements that can be made to this project which are related mainly to the mathematical and physical aspects of the project: the automatic calibration of sensors, replacing the integration method with a superior one, like Runge-Kutta, using quaternions instead of Euler angles to solve the gimbal lock problem.