¿Los acelerómetros saben cuándo se mueven hacia arriba o hacia abajo?

8

Necesito un sensor que solo pueda colocar encima de un objeto, para contar el número de veces que el objeto se mueve hacia arriba y hacia abajo.

¿Al colocar un acelerómetro encima del objeto se lograría esto o podría seguir la transición entre moverse hacia arriba y hacia abajo?

Si no, ¿qué tipo de sensor (es) lograría esto?

---------------- EDITAR: -------------------------

Idealmente, me gustaría un sensor que pueda colocar en la parte superior del cuadro que se describe a continuación y contar las veces que sube y baja. Tiene múltiples carriles guía que evitan que se tuerza. Planeo usar un arduino como microcontrolador que hace los cálculos, solo necesito un sensor capaz de detectar el movimiento hacia arriba / abajo. Todas las sugerencias son bienvenidas. gracias.

   +    +
   +    +
   +    +
------------
|   box    | 
| moves up |
| and down |
------------
   +    +
   +    +
    
pregunta TheDudeAbides

10 respuestas

8

Creo que un acelerómetro y un arduino es una excelente manera de contar el número de veces que la caja se mueve hacia arriba y hacia abajo. Es una forma compacta, confiable y sin contacto para detectar movimiento.

Podría funcionar para un movimiento tan suave como la subida y bajada de su pecho, al respirar, acostarse, y ciertamente algo más rápido que eso.

Es posible que te salgas con un simple detector de umbrales con cierta histéresis: cuenta uno cuando la aceleración exceda de + x, luego establece el umbral en -x, hasta que cruce -x, luego establece el umbral en + x.

Si la aceleración es más suave, o si hay una vibración de fondo que no quiere contar (aunque en realidad es un movimiento hacia arriba y hacia abajo), la señal podría perderse en el ruido.
Luego, tendrá que implementar un filtro digital simple en el arduino, que en efecto "busca" el movimiento a una velocidad determinada. Esto podría ser tan simple como sumar las últimas 100 muestras de aceleración (a 100 Hz) y colocar el promedio a través del detector de umbral, o podría diseñar un filtro más elaborado.

Si planea usar un acelerómetro para cualquier cosa, pruébelo primero con su teléfono inteligente.

Busque en la tienda de aplicaciones una aplicación de monitor de acelerómetro, algo que registre el sensor en un archivo, y haga algunos experimentos. Si crea un archivo CSV, puede abrirlo en Excel y trazar gráficos, etc.

El acelerómetro en su teléfono es bastante básico y ruidoso, pero es un buen sustituto para cualquier otro acelerómetro de menos de $ 100, y podría darle una idea aproximada de lo que podría hacer un $ 1000.

Aquí hay un ejemplo de lo que he hecho con el sensor del teléfono.

¡Buena suerte! Publique sus resultados aquí (responda a su propia pregunta) si funciona para usted.

    
respondido por el tomnexus
7

En general, no. Imagina lanzar una bola directamente hacia arriba (e ignorar la resistencia del viento): una vez que se está moviendo, la única fuerza sobre ella es la gravedad, que produce una aceleración constante . No hay forma de saberlo solo por la aceleración, cuando la pelota ha alcanzado su altura máxima y comenzó a retroceder, la aceleración es la misma en todo su recorrido hasta que toca el suelo.

Si sabe que el objeto está comenzando en reposo y mide su aceleración, puede calcular su velocidad al integrar la aceleración en el tiempo. Si disminuye la velocidad, verá una aceleración negativa y la integral se pondrá a cero cuando se detenga. Luego, cuando comience a moverse nuevamente, verá un cambio en la aceleración y podrá comenzar a integrarse nuevamente. Sin embargo, esto depende en gran medida de la precisión de las mediciones y los cálculos. Si alguno de los dos está apagado un poco, el error aumentará gradualmente hasta que ya no sepa qué está sucediendo realmente.

    
respondido por el Pete Becker
5

En primer lugar, es importante comprender cómo se comporta un acelerómetro en un campo gravitatorio, como el que experimentamos aquí en la tierra. Un acelerómetro no mide la aceleración, en el sentido de que no mide el cambio de velocidad solo. Mide el cambio en la velocidad más la gravedad, lo que significa que debe tomar la medida de la gravedad si planea intentar lo que describe.

Además, la gravedad se medirá como una aceleración hacia arriba , que es algo contraintuitiva, pero tiene sentido si imaginas que un acelerómetro se construye algo como esto:

simular este circuito : esquema creado usando CircuitLab

Abusé del editor de esquemas para mostrar un cojinete de bolas suspendido en un tubo por dos resortes perfectamente amortiguados. Imagine que el acelerómetro hace su medición al decirle qué tan lejos de la posición de reposo está el rodamiento de bolas actualmente. Ahora imagine que gira este dispositivo en su extremo, y puede ver cómo el rodamiento de bolas se hunde bajo la gravedad, y cómo esto es indistinguible de la aceleración. Creo que la relatividad tiene algo que decir sobre este tema, pero de todos modos.

Entonces, si tiene un acelerómetro vertical y elimina el efecto de la gravedad, y los movimientos de su dispositivo son lo suficientemente grandes como el piso de ruido de su acelerómetro, y además los movimientos son lo suficientemente suaves como para no confundir su algoritmo - entonces podría ser posible. Hay una respuesta arriba que menciona la caída libre, lo que sería un problema, pero supongo que por su descripción, su dispositivo no estará en caída libre durante un período de tiempo. Sin embargo, esta es una conjetura.

Si realmente desea utilizar un acelerómetro, su mejor enfoque para un problema como este es registrar de alguna manera la salida del acelerómetro (prefiero emitirlo a través de SPI y grabarlo usando un analizador lógico USB) y escribir exactamente lo que hazlo (o incluso haz un video, si estás realmente interesado). Luego puedes jugar con los algoritmos fuera de línea, sin la sobrecarga de preguntarte constantemente si tu Arduino realmente está haciendo lo que crees que es.

Como han mencionado otros, otros tipos de sensores pueden ser más apropiados. Necesitaríamos más detalles sobre exactamente por qué intentas lo que intentas comentar, creo.

    
respondido por el Dave Branton
4

Si el objeto se mueve hacia arriba y hacia abajo en guías fijas, creo que la forma más fácil de contar sus movimientos sería usar un interruptor de límite que se cerraría cuando el objeto está en reposo y se abrirá cuando esté lejos de su posición de reposo.

    
respondido por el Peter Bennett
3

Cuidado, una reversión de la aceleración no significa que la caja haya girado. La caja se pone en marcha, se ve una aceleración hacia arriba. Ahora se está moviendo hacia arriba a un ritmo constante, no se ve aceleración. Se reduce a la mitad de la velocidad, se ve la aceleración a la baja. Continúa a media velocidad, no se ve aceleración. Se acelera la copia de seguridad, se ve la aceleración hacia arriba. Se detiene, ves una aceleración hacia abajo.

Usted vio arriba, abajo, arriba, abajo, pero la caja realmente solo se movió hacia arriba. Tendrá que integrarse a lo largo del tiempo y tener la precisión suficiente en su acelerómetro para descubrir cómo va realmente. ¡Observe si hay un error acumulativo, esto podría dificultar mucho este problema!

¿Has investigado usando un buscador de rango láser para medir dónde está la caja?

    
respondido por el Loren Pechtel
2

Los acelerómetros están midiendo las aceleraciones. Si el movimiento se realiza con aceleración, se detectará, dado que el acelerómetro es lo suficientemente sensible en este eje. La dirección de la aceleración se indicará mediante el signo de los valores leídos. Tenga en cuenta que cuando se miden las aceleraciones en el eje vertical, la medición estará sesgada por la constante de aceleración de la gravitación g .

    
respondido por el Eugene Sh.
2

Si no desea contacto físico (como lo proporciona un interruptor de límite o un microinterruptor típico), puede montar un imán y usar un interruptor de láminas o un interruptor de efecto Hall. O monte algo que sobresalga ligeramente y sea opaco, y viaje a través de un detector óptico (el tipo con una pequeña ranura en él).

Un acelerómetro es complicado, más caro que cualquiera de los anteriores, y por la razón explicada de manera elocuente por Pete Becker (y ahora también por Dave Branton), es poco probable que funcione.

    
respondido por el abligh
1

Aquí hay mucha información excelente, pero no he visto a nadie que sugiera un potenciómetro lineal ...

Simple, aplique voltaje y cuente cuántas veces el GPIO lee un HI. ¿El bote lineal más barato? Control deslizante de volumen de una radio antigua, ajuste de recorte de los controladores de juguetes R / C, etc.

    
respondido por el user1183325
1

Si se trata de los siguientes rieles, ¿qué hay de usar un buscador de rango ultrasónico? El arduino puede hacer los cálculos para determinar la aceleración, y será una implementación mucho más sencilla que conectar cables a algo que se mueve. Esto ciertamente funcionará mejor si la pista es recta. Aqui hay uno. enlace

    
respondido por el Dean Turner
0

Recomendaría usar dos placas metálicas finas para formar un condensador. Una placa se colocaría en la parte superior de la caja y la otra se fijaría a cierta altura de la caja. A medida que la caja se mueve hacia arriba y hacia abajo, la capacitancia (C) variará debido al cambio en la separación (d) de las placas (C = kA / d). Este cambio se puede "convertir" por medios apropiados a un cambio en el voltaje, frecuencia, etc. y luego a una forma apropiada para la interfaz del arduino (la amplificación puede ser necesaria).

    
respondido por el Guill

Lea otras preguntas en las etiquetas