Tengo un acelerómetro ADXL203 de dispositivos analógicos en una placa de prueba y quería usar esto para medir la inclinación de algunos equipos a una frecuencia razonablemente alta (20-30 Hz). Lo estoy conectando a un registrador campbells cr3000 para hacer la detección. ¿Alguien tiene instrucciones sobre cómo interpretar las salidas del sensor? Gracias
accelerometer
inclination
Troy Jensen
fuente
fuente
Respuestas:
Tengo varias cosas que decir aquí, y algunas de ellas implican estar de acuerdo con pingswept y algunas con penjuin.
cr3000
El muestreo cr3000 a 16 bits y 100 Hz va a tomar muestras un poco lentas para que pueda eliminar fácilmente el ruido de sus datos, pero con una precisión significativamente mayor será utilizable. Dudo que pueda obtener 13 o 14 bits de precisión sin algunos algoritmos de filtrado bastante buenos. Los acelerómetros me han enseñado que la vibración es el demonio, los malditos fonones.
Condensador de salida
Debe asegurarse de hacer lo que dice la hoja de datos y lo que dice la teoría de la señal. Para citar la hoja de datos:
Esto significa que debe elegir un condensador para mantener su frecuencia por debajo de 50Hz. Si lo coloca sobre esto, puede obtener alias, y el alias hace que el ruido de vibración sea un demonio con el que firmó un acuerdo. Indican cómo calcular los niveles de ruido del dispositivo, y en un ancho de banda de 50Hz, un ruido pico a pico de .006 * La gravedad ni siquiera se notará si tiene esto en un dispositivo con vibraciones.
Interpretando datos
Esto es probablemente lo que más le interesa y es relativamente fácil de hacer. Debe marcar el momento en que el dispositivo está en punto muerto, esto es cuando está plano y lo tiene relativamente quieto. Déle uno o dos segundos en este punto, y luego puede tomar la mediana de estos datos para determinar el voltaje no-G. Luego puede usar esto como un punto con el que compara el dispositivo. Ahora, desde este punto, puedo citar directamente la hoja de datos:
Por lo tanto, simplemente puede usar esta aproximación si no va a inclinar demasiado, pero necesitará usar la geometría si planea inclinar en ambas direcciones y en ángulos que no son extremadamente pequeños.
Si vas a ir más grande, incluso tienen las ecuaciones enunciadas como:
Por lo que puedo decir, su dispositivo da un cambio de 1V por 1G de aceleración colocado en él. Si ha realizado la fase de calibración, entonces debería ser capaz de tomar mediciones, restar el desplazamiento y tener la cantidad de G que se está experimentando.
Deje de leer aquí a menos que tenga problemas o desee obtener más información para mejorar el enfoque.
Agregué un poco más de hablar sobre otros enfoques y métodos para mejorar su enfoque para sistemas que cambian rápidamente o sistemas donde va a programar el dispositivo haciendo las muestras.
Frecuencia de muestreo
Debe tomar muestras significativamente más rápido que la velocidad a la que su dispositivo cambia las direcciones en las que acelera, ya que debe medir la orientación 20-30 veces por segundo. necesita poder medir lo suficientemente rápido como para filtrar el ruido de vibración y la aceleración debido a otros efectos, que he encontrado que son bastante grandes cuando trabajo con un acelerómetro.
Acelerómetro de 3 ejes
En segundo lugar, si tiene un acelerómetro de tres ejes, puede reconocer con bastante facilidad cuándo un eje está perdiendo parte de la aceleración debido a la gravedad (es decir, cuando el eje z tiene una caída de magnitud de 2 m / s ^ 2, sabe que el La ganancia que viste en el otro eje es la gravedad). Esto seguirá siendo complicado, pero en general habrá una adición de aceleración que le dará la velocidad necesaria para cambiar su orientación y luego un cambio en la aceleración debido al cambio de orientación, lo que a menudo le permite reconocer la orientación.
Problemas con 2 ejes
Esto será, como dijo Penjuin, casi imposible con un acelerómetro de 2 ejes y, en el mejor de los casos, incompleto si tiene un sistema que puede tener 20-30 orientaciones diferentes por segundo, o si necesita tener una medida exacta de orientación en todo el tiempo. Estoy seguro de que un estudiante de maestría podría escribir una tesis bastante buena sobre esto, o un Doctorado podría escribir una disertación sobre cómo mejorar este algoritmo.
Ruido de vibración
Para agregar más, si puede colocar su dispositivo encima de algo que lo mantendrá estáticamente bloqueado al movimiento de su dispositivo, pero amortigua la vibración, obtendrá números mucho mejores y no necesitará tanto filtrado de software. Se puede colocar un relleno de espuma simple entre el acelerómetro y su dispositivo, y si es digital, esto no debería aumentar el ruido eléctrico y ayudar a absorber algo de ruido de vibración. Esto solo debe hacerse si ve problemas con el ruido de vibración.
Acelerómetro digital
Sugeriría un acelerómetro digital al que pueda usar SPI para conectarse. Los datos se pueden sincronizar a una velocidad muy muy alta y puede trabajar en segundo plano ya que su SPI realiza el trabajo constante de cargar el siguiente conjunto de valores. Necesitará tener un buen microcontrolador si se va a hacer digitalmente. Si me puede dar mejores detalles sobre lo que quiere hacer, puedo darle mejores comentarios. Si desea una advertencia basada en la detección de inclinación, debería ser muy fácil de hacer con todos los analógicos, pero si desea medir la posición y el ángulo del equipo durante la operación, prepárese para un poco de trabajo.
Avíseme si hay algo que pueda agregar para que esta respuesta sea más clara o aplicable a lo que estaba buscando.
fuente
He escrito y reescrito esta respuesta varias veces con muchas ideas matemáticas locas, pero honestamente no creo que esto se pueda hacer con precisión. Puedes hacer algunas matemáticas vectoriales, pero ¿y si:
Si bien estoy seguro de que hay una solución alternativa para hacer este tipo de cosas, no estoy seguro de que valga la pena; Los acelerómetros simplemente no están diseñados para esta tarea (al menos que yo sepa). Para lo que está tratando de lograr, sugeriría un enfoque giroscópico utilizando cualquiera de estos , todos los cuales serían bastante resistentes a todos los problemas anteriores.
fuente
Si entiendo la hoja de datos correctamente, la salida para cada eje variará entre 1.5 V y 3.5 V a medida que se incline alrededor del eje. Cuando el dispositivo está plano (ignorando el error de alineación del paquete de ± 1 grado), ambas salidas deben leer 2.5 V.
Si solo necesita medir la inclinación en una dirección, puede tomar el arco de la desviación de 2.5 V para obtener el ángulo en radianes y luego convertirlo a grados. Si el dispositivo puede inclinarse en cualquier dirección, puede calcular los dos ángulos y luego calcular el ángulo compuesto a partir de ellos.
Para ser explícito: ángulo alrededor de un eje = (180 / π) * arcsin (Vout - 2.5)
Para obtener una buena respuesta de frecuencia, necesitará condensadores de salida pequeños, Cx y Cy. De la nota a pie de página 6 en la p. 3 de la hoja de datos, parece que 0.02 uF le daría un ancho de banda de 250 Hz, que probablemente sea el adecuado para su frecuencia de muestreo. Tal vez podría subir hasta 0.1 uF, limitando el ancho de banda a 50 Hz, pero sus señales comenzarán a atenuarse.
fuente
Estoy agregando una segunda respuesta, porque mi otra es grande, y es posible que solo desee simple.
La tapa del filtro debe ser de 0.10 uF o mayor para mantenerlo por debajo de su tasa de alias (50Hz). Debe dar una fase de calibración de un par de segundos con el dispositivo sentado a nivel con toda la aceleración de gravedad en la dirección Z, esto es para determinar su punto G cero.
El voltaje que mide para su punto G cero, probablemente será diferente para la dirección X e Y, no representa nada. Simplemente tome el voltaje que obtenga y reste eso de él. Este voltaje, con compensación restada, es el número de Gs que está obteniendo en esa dirección.
Toma el arco y obtendrás tu ángulo en esa dirección.
Esto ignora el ruido y otras aceleraciones. prepárese para que el NaN sea un resultado si lo tiene completamente inclinado y hay algún ruido.
fuente
Para obtener cualquier ángulo, debe medir la aceleración de la gravedad en ambas direcciones X e Y. reste el voltaje medio (2.5V) para que cero sea "sin aceleración".
Ahora puedes encontrar el ángulo con arcsin (y / x). Pero eso es molesto de usar, debido a la división, y porque el signo es ambiguo, así que lo que realmente quieres es la función C atan2 (y, x). atan2 () obtiene el signo correcto para todos los 360 grados.
Fuera de tema, ya que no está utilizando un micro: si está buscando atan2 () para usar en un microcontrolador, hay un generador atan2 () en mi sitio web: http://vivara.net/cgi-bin/ cordic.cgi
fuente