Identifica qué cara de un cubo está arriba

Tengo un dispositivo cuya forma es un cubo y necesito identificar en tiempo real qué cara está hacia arriba.

Mi solución actual (aún no implementada) es usar un giroscopio para obtener una variación angular, pero puedo ver 2 problemas:

  • ¿Qué cara está arriba cuando el cubo está "encendido"?
  • No podemos asumir que cada variación de 90° cambiará la cara de pie. Si es una variación en el eje Z del "mundo", la cara sigue siendo la misma. Pero el eje Z del "mundo" no es igual al eje Z del giroscopio.

¿Hay alguna manera de lograr esto?

¿No necesitarías un acelerómetro de 3 ejes?
¿O 6 sensores de inclinación estilo bola de metal?
@Wouter, ¿realmente existe tal cosa? No pude encontrarlo.
¿Interruptores de mercurio?
@Sherby por ejemplo www.mouser.com RBS040110

Respuestas (1)

Un giroscopio no le dirá nada útil, al menos no el tipo de giroscopio electrónico que puede pagar. Parece que lo que quieres es un acelerómetro. Uno para cada eje te permite encontrar el vector de aceleración completo, que será solo la gravedad cuando el cubo esté quieto. Hay unidades con tres acelerómetros, cada uno ortogonal, integrados en un solo dispositivo. Busque "acelerómetro de 3 ejes" .

Si el cubo está siendo empujado, el vector de aceleración no apuntará exactamente hacia arriba, pero en su mayoría lo hará. A menos que alguien esté golpeando deliberadamente esta cosa o lanzándola, el vector de aceleración apuntará hacia arriba lo suficientemente bien. Incluso puede detectar el caso en vuelo, ya que el vector de aceleración será cero entonces.

¿No sería potencialmente útil un giroscopio, si también se usa un acelerómetro para compensar la deriva de inercia?
Acordado. Pondría un IC de movimiento de 6 ejes allí. Por supuesto, usaría el acelerómetro para los datos básicos como dijo Olin, pero el giroscopio sin duda ayudaría en el procesamiento de la señal para situaciones en las que el cubo está cayendo o incluso para compensar la deriva como dijo.
Estoy de acuerdo. Un acelerómetro de 3 ejes es el camino a seguir. Solo como referencia, Atmel tiene algunos complementos de kit de desarrollo muy asequibles con aceleradores, giroscopios y magentómetros ( atmel.com/products/microcontrollers/avr/sensors_xplain.aspx ). No tengo afiliación con Atmel... solo pensé que estas eran soluciones relativamente asequibles relevantes para la pregunta.
@Phil: Los giroscopios electrónicos pequeños y baratos detectan inherentemente la velocidad de giro en lugar de la posición como lo hacen los giroscopios mecánicos. Tienes que integrar eso para obtener la posición angular, que acumula errores rápidamente. Después de unos segundos, la posición es prácticamente inútil. Si el OP realmente necesita saberlo incluso durante perturbaciones breves, entonces los giroscopios podrían ayudar. De lo contrario, la aceleración de 1 g debido a la gravedad es mayor de lo que normalmente experimenta. No trabajaré perfectamente en una montaña rusa, pero ¿eso realmente importa?
@OlinLathrop Estoy de acuerdo, depende de los requisitos de la aplicación. Sin embargo, eso es diferente, luego decir "un giroscopio no te dirá nada útil".
Como no tengo un acelerómetro en este momento, escribí una aplicación de Android usando el acelerómetro de mi teléfono inteligente para probar. ¡Y funcionó!