Paso 3: El acelerómetro
Explicación detallada
Objetivo de acelerómetro era reconocer un apretón de manos que sería activar el GPS en el paso siguiente.
Sin embargo, reconocer que un apretón de manos no es tan simple como reconocer un simple movimiento lineal necesaria involucrar el uso de los 3 ejes. Hice algunas investigaciones y se dio cuenta de que había muy pocos recursos disponibles para las bibliotecas actuales del gesto. Sólo encontramos 2 bien pulido que se llama Wiigee y uWave.
Wiigee era problemática, ya que fue diseñado para reconocer gestos de un WiiRemote y habría sido demasiado difícil al puerto en el sensor del acelerómetro en el Edison dado el período de tiempo muy limitado durante la competición.
uWave por otra parte parece ser la solución perfecta ya que era una biblioteca escrita por Zhen Wang, un Googler actual para su tesis de pregrado o posgrado y se podía utilizar en cualquier acelerómetro en general. Una breve explicación de cómo funciona:
-Hay dos modos que el usuario puede utilizar en la biblioteca:
1. los primeros registros un gesto predefinido por el usuario en un registro de archivo utilizando los valores de aceleración cruda
2. el segundo intentará ver si cualquier gesto que el usuario coincide con el registro de uno. El segundo paso es, en definitiva, el más complejo como lo hace una serie de pasos:
r. paso 1 pero en vez de escribir en un archivo, sólo registra en una matriz
b. utilizar el quantization, convierte los valores de aceleración análoga materia prima en los digitales
c. compara estos valores al gesto predefinido original usando un algoritmo llamado tiempo dinámico warping (DTW).
d. basado en las comparaciones, reconoce el gesto como lo suficientemente precisa como para parecerse a la original grabado o no.
En definitiva, intentamos importar uWave a nuestro sensor pero hubo algunos errores desconocidos posiblemente debido a la biblioteca c de uWave incorrectamente convertir nuestro programa de C++ que tenía la biblioteca de nuestros sensores. Terminamos tratando de simplificar el código en uWave para importar a nuestro código pero quedó sin tiempo/quantization y DTW algoritmos bastante complejos. Tengo siempre el código problemático había en dos versiones, la primera estaba tratando de importar la biblioteca uWave y la versión 2 intentó escribir una versión simplificada de él (junto con el uso de una pantalla de lcd sensor de botón para propósitos de depuración).
Aquí está el sitio web de Wang con la biblioteca uWave para cualquiera interesado así y la página de wikipedia sobre algoritmo DTW en específico:
uWave biblioteca: http://zhen-wang.appspot.com/rice/projects_uWave...