Obtener movimientos de la mano registrados y enviados a un arduino

Quiero controlar un servomotor conectado a un arduino a través de movimientos de manos. Recién estoy comenzando el proyecto y mi idea es colocar un par de acelerómetros en cada dedo y luego enviar esos datos al arduino a través de Xbee. En primer lugar, ¿es este el enfoque correcto para hacer esto, o hay sensores listos para usar que puedo envolver alrededor de mi mano y enviar datos al arduino? En segundo lugar, no sé cómo conectar un emisor Xbee a cada acelerómetro de mi mano. ¿Es así como generalmente se hace? ¿Kinect incluso usa acelerómetros? O es algún otro tipo de sensor. ¿Cuál sería el enfoque correcto para este proyecto?

Necesitamos saber más sobre este gesto. ¿Puede ser bastante específico, porque esto, sorprendentemente, tendrá un gran impacto en diferentes implementaciones? Por ejemplo, ¿necesita saber la coordenada X de la mano del usuario, o solo necesita saber si la mano está aproximadamente a la izquierda o aproximadamente a la derecha, o necesita saber que el usuario de repente movió la mano hacia la izquierda o hacia la derecha? , ¿o algo mas?
Solo necesito saber si el usuario movió repentinamente la mano hacia la izquierda o hacia la derecha, hacia arriba o hacia abajo.
En ese caso, puede colocar un acelerómetro en la mano del usuario y simplemente observar la amplitud de la aceleración. Si es alto, entonces el usuario está haciendo un movimiento repentino. El signo de la lectura te indica si el movimiento es hacia la izquierda o hacia la derecha.
sí. Eso suena como lo que quiero

Respuestas (1)

¡Hay muchas preguntas incrustadas allí! Intentemos descomprimirlos:

  1. El Kinect en realidad no tiene nada conectado con el usuario. Funciona enviando una cuadrícula de puntos infrarrojos y midiendo qué tan deformada está la cuadrícula con una cámara con un filtro IR. Tiene mucha resolución para ciertas aplicaciones, pero no funciona cuando los objetos están muy cerca del Kinect, y tampoco puede medir nada que esté ocluido (es decir, si hay algo en el camino no se puede saber). lo que sucede detrás).
  2. Obtener las posiciones de los dedos y las manos es muy difícil. Puede colocar un acelerómetro en cada dedo y poner uno en la palma de la mano, pero interpretar lo que significan esas posiciones del acelerómetro será complicado en tiempo real. Además de eso, ¡será muy caro! Puedes ver algunas ideas anteriores en el seguimiento manual con el súper colorido guante MIT , aquí hay alguien usando el kinect , y aquí está el seguimiento de los dedos con el wiimote . Ahora tenga en cuenta que todos estos usan una computadora para retroceder la información de un sensor a las posiciones de las manos, y es probable que tenga que hacer algo similar, a menos que tenga requisitos más modestos para el seguimiento de las manos.
  3. No intente diseñar el componente inalámbrico hasta que tenga un buen método para obtener las posiciones de las manos. Muchos de los requisitos para el seguimiento de su mano cambiarán los requisitos para la conexión inalámbrica: ¿con qué frecuencia desea conocer las posiciones de las manos? ¿Cuánto detalle necesita sobre la posición de la mano? Una vez que los sepa, puede buscar y ver qué soluciones inalámbricas existen e implementar algo. Por ejemplo: si usó acelerómetros de 3 ejes (no digo que sea una buena idea, pero si lo hizo), uno por dedo, con una lectura ADC de 10 bits en el resultado de cada dedo: esto da 3 ejes * 5 dedos * 10 bits = 150 bits por actualización. Eso significa que si solo usó un solo zigbee que se ejecuta a 115200 bits por segundo, puede tener 768 actualizaciones por segundo (suponiendo que no haya sobrecarga, lo cual no es realista). ¡Pero el punto es que poner 5 zigbees sería una exageración total! Solo pon una radio. Y de manera similar, cualquier solución que elija debe diseñarse después de saber lo que necesita.

¡Espero que ayude!

En este momento, mis necesidades son solo para sentir el movimiento del eje X. Estaba pensando en usar sensores Flex en lugar de acelerómetros ya que el objetivo es solo mostrar que puedo controlar el servo desde mi mano y la interpretación de los datos es mucho más fácil. Con solo un acelerómetro en el eje X, ¿crees que será fácil sentir si muevo la mano hacia la derecha o hacia la izquierda?
¿Derecha o izquierda con respecto a qué? ¿Por qué no simplemente poner una palanca en su dispositivo? ¿Necesitas que esto sea libre de contacto por algún motivo? Si lo hace, lo mejor que puede hacer es hacer algo como el enlace de wiimote que le di y simplemente hacer que el usuario sostenga un LED infrarrojo. Eso le dará la posición x e y de una mano (o cualquier cosa que sostenga la baliza IR). Alternativamente, simplemente use un wiimote y haga que su proyecto tenga un conjunto de LED IR espaciados uniformemente en el proyecto. Hay muchas bibliotecas para obtener datos de un wiimote y son baratas y le darán información posicional completa (x, y, z y orientación)
Un gesto a la derecha requeriría que el servo gire a la derecha y uno a la izquierda haría que gire a la izquierda. Quiero que no tenga contacto ya que estoy experimentando con la comunicación inalámbrica usando getsures. No necesito la posición x e y. Solo si el usuario ha movido repentinamente la mano hacia la derecha o hacia la izquierda.