Acelerometro y Giroscopio

Hola necesito diseñar un control de tal forma que pueda emular al mando del Wii.
Eh leido los datos que me entrega un acelerometro y un giroscopio y por ahora solo he podido
rotar figuras (usando una interfaz grafica) con respecto al eje X,Y.

Lo que necesito es que al desplazar el control (sin rotarlo) sobre el eje X,Y,Z me de una señal.

Con que dispositivo puedo hacerlo?? se puede hacer con una combinacion entre el acelerometro y el giroscopio?
 
Pues mira puedes usar los dos con el acelerometro de 3 ejes tienes tres grados de libertad ahora q por si solo el acelerometro es muy sensible a ruidos y te detecta aceleracion estatica tambien si quieres que te responda mejor entonces agregale el gyro para que sea estable al acelerometro le tendrias que poner un filtro pasa bajas digital, al gyro lo tendrias que integrar y despues aplicarle un filtro pasa altas digital y al final solo lo sumas lo que seria el filtro complementario, no se q tanta exactitud y control quieres
 
gracias por tu respuesta, entiendo lo que me dices, pero lo que yo necesito es desplazar un dispositivo en linea recta (sin realizar ningun tipo de giro ) y me mande una señal. No he podido hacerlo con el acelerometro tampoco con el giroscopio, pero he leido que el control del wii tiene un acelerometro y si realiza esa funcion. Gracias, saludos
 
La imagen A son los movimientos que he podido realizar y eso es util para mi. Pero necesito realizar los movimientos de la imagen B. Se pude lograr con un acelerometeo y giroscopio?? como le hago?? Sino se puede alguien conoce otro dispositivo???

esta es la IMAGEN del los movimientos que necesito
 

Adjuntos

  • acel-giro.JPG
    acel-giro.JPG
    34.6 KB · Visitas: 136
Última edición:
Leiste mi post #2? con un acelerometro podes. El giroscopo te da estabilidad al movimiento como mas aplomado. Para sensar/controlar que cosa estas buscando?
 
Hola mauxx5. teóricamente sería complicado medir el desplazamiento con un acelerometro y/o con un giroscopio, ya que el primero mide la variación de velocidad con respecto a una unidad de tiempo, y el segundo se basa en cambios en la velocidad angular.
Si únicamente requieres medir desplazamiento, sin que sea muy preciso, te sugeriría que te bases principalmente en 2 medidas (con un acelerometro), una cuando inicias el movimiento y la otra cuando acaba, lo cual generaría una aceleración "positiva" y otra "negativa", en la positiva miras cual fue la magnitud e inicias un contador y de acuerdo a esta calculas una velocidad, cuando detectes una aceleracion negativa paras el contador, ya teniendo velocidad y tiempo puedes calcular una distancia aproximada.
Espero sea de ayuda. Saludos
 
Yo pude hacer un medidor de distancia y velocidad con un acelerometro. Lo unico que tienes que hacer es una interrupción cada un tiemto t constante, dentro de la interrupción haces la lectura del acelerometro y de esta forma puedes calcular la integral de la aceleracion en el tiempo como una integral de Riemann y a si calcular la velocidad y si vuelves a hacer lo mismo con los datos de la velocidad te da el desplazamiento.
Cuantas mas interrupciones por segundo mejor por que de esta manera el valor de t disminuye lo que hace una aproximación mas exacta.
 
Perdí el programa que hice hace un tiempo, tal vez el fin de semana pueda hacerlo de nuevo.
Por lo que recuerdo hice una interrupción cada 1 ms app. y dentro de la interrupción leía el valor del acelerometro con un ADC de 14 bits y lo transformaba a m/s^2 por que el adsl335 entrega mV/g luego en el programa principal tenia una función para que cuando uno apretara un botón mandara v=0 y d=0 para que la velocidad y distancia inicial sea igual a cero, en la interrupción tenia una variable v += t*a (t=tiempo de la interrupción, a= aceleración) de esta forma calculo el área de la aceleración con respecto al tiempo que es lo mismo que la velocidad y si vuelvo a repetir el mismo procedimiento con la velocidad puedo calcular el desplazamiento.

Espero que se entienda mas la idea, cuando tenga tiempo pongo el programa nuevo.
 
muchas gracias de nuevo la idea la entendi voy a comenzar a realizar el programa. Yo tambien tengo el adxl335. De cualquier forma espero puedas subir tu programa.
 
aqui tienes un ejemplo de un programa para un acelerometro con un freescale mcf51qe128

espero te sirva
saludos
 

Adjuntos

  • DEMOQE_Accelerometer_Ex_S08.rar
    586.1 KB · Visitas: 242
Con este programa se puede tener una aproximación de la velocidad y distancia recorrida con un acelerómetro.
Es importante que en alguna parte del programa se reinicie la velocidad a 0 para que la distancia no se vea afectada cuando uno está quieto ya que los errores de lectura de la aceleración se van acumulando de forma indefinida en la variable de la velocidad afectando de esta forma a la distancia.
Hay que tener en cuenta que la inclinación del acelerómetro va a afectar la medida de la distancia y velocidad por lo que es ideal compensarla con algún sensor externo ya que cuando se está acelerando en una pendiente es imposible separar la lectura de la gravedad a la de la aceleración del objeto.
Si uno quiere mayor precisión debe poner un operacional al acelerómetro para hacerlo mas sensible a mínimos cambios, aumentar la resolución del adc, poner un sensor externo para compensar la pendiente de por donde se mueva el objeto y sería ideal que el micro tenga una entrada para igualar a 0 la velocidad cuando el objeto este inmóvil.
 

Adjuntos

  • ccc.rar
    959 bytes · Visitas: 251
hola mauxx,

Si aun estas desarrollando el proyecto, te comento que puedes usar un nunchako de la Wii que tiene un acelerometro de 3 ejes y vale menos de 5€ puesto en casa.

Y el metodo de leer los datos esta mas que implementado en la red, pues se usa para muchas aplicaciones entre ellas los quadricopteros.

Saludos.
 
una pregunta en esta instruccion:

set_adc_channel( 0 );
v=read_adc(); //leo el voltage del acelerometro/2


dices que lees el voltaje del acelerometro. Físicamente cual seria esa entrada? o que pin del acelerometro es el que va a la AN0 del microcontrolador???

GRACIAS

hola una pregunta en esta instruccion:

set_adc_channel( 0 );
v=read_adc(); //leo el voltage del acelerometro/2


dices que lees el voltaje del acelerometro. Físicamente cual seria esa entrada? o que pin del acelerometro es el que va a la AN0 del microcontrolador???

GRACIAS



Con este programa se puede tener una aproximación de la velocidad y distancia recorrida con un acelerómetro.
Es importante que en alguna parte del programa se reinicie la velocidad a 0 para que la distancia no se vea afectada cuando uno está quieto ya que los errores de lectura de la aceleración se van acumulando de forma indefinida en la variable de la velocidad afectando de esta forma a la distancia.
Hay que tener en cuenta que la inclinación del acelerómetro va a afectar la medida de la distancia y velocidad por lo que es ideal compensarla con algún sensor externo ya que cuando se está acelerando en una pendiente es imposible separar la lectura de la gravedad a la de la aceleración del objeto.
Si uno quiere mayor precisión debe poner un operacional al acelerómetro para hacerlo mas sensible a mínimos cambios, aumentar la resolución del adc, poner un sensor externo para compensar la pendiente de por donde se mueva el objeto y sería ideal que el micro tenga una entrada para igualar a 0 la velocidad cuando el objeto este inmóvil.
 
Última edición:
El canal 0 del ADC va conectado a un divisor de tensión formado por dos resistencias iguales de precisión que van conectadas entre Vcc y Gnd, de esta forma puedo saber con qué voltaje exactamente se está alimentando el acelerómetro, esto es muy importante ya que el acelerómetro entrega un voltaje a la salida de Vo= Vcc/2+Vcc*G/10.

Perdón por tardar con la respuesta pero no me había dado cuenta de tu pregunta.
 
Última edición:
Los aceerometros son muy "nerviosos" por lo que es recomendale ponerles a la salida un amplificador operacional configurado como seguidor de linea para estabilizarlo un poco, tambien es interesante que la misma alimentacion del acelerometro este conectada con el voltaje de referencia del ADC ya que generalmente los acelerometros son radiometricos. Como te han comentado antes para obtener el desplaamiento del acelerometro has de resolver la integral doble de la aceleracion respecto el tiempo. Pero has de saber que ademas de registrar la aceleracion del movimiento tambien esta sometido a la aceleracion de la gravedad, por lo que todas las medidas obtenidas se ven desvirtauadas por este efecto.
 
Atrás
Arriba