Autor Tema: Uso acelerometro como sensor de posicion  (Leído 28281 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TitoBlade

  • PIC10
  • *
  • Mensajes: 26
Uso acelerometro como sensor de posicion
« en: 07 de Febrero de 2008, 02:53:21 »
Muy buenas la duda que les propongo es la siguiente:
Tengo un proyecto pendiente en el cual tengo que medir la posición de una bicicleta, he decidido usar el acelerometro ADXL202 (usandolo como detector de posicion,con los ejes y demas), tengo ahora que ahora interpretar el ciclo duty con el PIC, el cual estoy viendo que es atraves del PWM. Sin embargo no llego a entender que es lo que tengo que hacer. He buscado en microchip pero no lo entiendo. La duda especificamente es como programo el PIC para que interprete el sensor,tengo pensado hacerlo en lenguaje ensamblador.
No se si la pregunta es muy basica pues he leido en algun post de aqui que se trata de un modulo simple.

Muchas gracias de antemano pues ya he realizado alguna pregunta y me estan sirviendo de gran ayuda para avanzar en la programacion del PIC.

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Uso acelerometro como sensor de posicion
« Respuesta #1 en: 07 de Febrero de 2008, 07:17:42 »
Sin embargo no llego a entender que es lo que tengo que hacer. He buscado en microchip pero no lo entiendo. La duda

TitoBlade, si vos no entendes que es lo que tenes que hacer, menos nosotros. No me queda claro que es lo que queres detectar con el acelerometro, la "inclinacion" de la bicicleta, o su posicion dentro de una pista por ejemplo (calculando velocidades).

Seria bueno que agregaras mas datos como que microcontrolador pensas usar, el lenguaje que vas a usar para programar y que postees lo que tenes hecho del programa y vemos entre todos en que te has trabado.

Cual fue el determinante de usar ese acelerometro? Estas seguro que es el mas indicado, por lo que vi en su datasheet varia el ciclo de trabajo respecto a la aceleracion, es del 50% para 0g. Los acelerometros de freescale por ejemplo son mas sencillos de utilizar me parece, te entregan una señal de tension que varia proporcionalmente con la aceleracion y simplemente tomando este valor con el adc del micro ya tenes el dato. Te recomiendo que lo veas y que uses el buscador del foro que hay otros post sobre los dos tipos de acelerometros.

Suerte con tu proyecto y anda posteando tus avances asi podemos ayudarte.

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: Uso acelerometro como sensor de posicion
« Respuesta #2 en: 07 de Febrero de 2008, 11:55:59 »
podes configurar la interrupcion de la entrada RB0 para que se active por el flanco acendente. A este pin le conectas la señal PWM que te entrega el sensor.

Entonces vos cada ves que se activa la interrupción es cuando empieza el cihlo del PWM, el periodo lo conoces, sino medís el tiempo entre dos interrupciones, con esto solo hace falta medir el tiempo que esta en alto la señal de PWM y calculas el valor del ducty del PWM.

Por ejemplo si vos tenes una interrupción cada 10 mili segundos ( por decir algo), o sea uqe el periodo del pwm es 10 mili seg, entonces si a los 5 mili seg la señal pasa de estar en 1 a estar en cero, queire decir que el ducty esta al 50%, si lo hace a los 2.5 esta el 25% y asi obtendrás el valor del ducty.

Para medir ese tiempo solo vasta utilizar un timer interno del pic, por decir algo el Timer1, vos sabes caca cuanto tiempo se incrementa y en el momento que detectas la interrupción lo pones a cero, y con mirar el valor de este timer en el momento que la señal pasa Low calculas el tiempo.

Ahora a sentarse a programar, es fasil de hacer eso en assembler como vos pensas hacer.

Saludos

Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: Uso acelerometro como sensor de posicion
« Respuesta #3 en: 07 de Febrero de 2008, 11:58:35 »
Cual fue el determinante de usar ese acelerometro? Estas seguro que es el mas indicado, por lo que vi en su datasheet varia el ciclo de trabajo respecto a la aceleracion, es del 50% para 0g. Los acelerometros de freescale por ejemplo son mas sencillos de utilizar me parece, te entregan una señal de tension que varia proporcionalmente con la aceleracion y simplemente tomando este valor con el adc del micro ya tenes el dato. Te recomiendo que lo veas y que uses el buscador del foro que hay otros post sobre los dos tipos de acelerometros.

Lo bueno de usar ese tipo de sensor en ralación a uno que entrega una tensión analogica es que es ams inmune al ruido, si tenes el sensor un tanto lejos del ADC es mejor utilizar uno de ese tipo.


Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Uso acelerometro como sensor de posicion
« Respuesta #4 en: 07 de Febrero de 2008, 12:03:25 »
Buen punto a tener en cuenta a la hora de seleccionar el acelerometro. Gracias por la acotacion Esteca

Desconectado TitoBlade

  • PIC10
  • *
  • Mensajes: 26
Re: Uso acelerometro como sensor de posicion
« Respuesta #5 en: 07 de Febrero de 2008, 14:14:44 »
Muchisimas gracias por contestar,voy a ponerme con lo que me dices Esteca55. Si me surge alguna duda ya os digo.


Desconectado TitoBlade

  • PIC10
  • *
  • Mensajes: 26
Re: Uso acelerometro como sensor de posicion
« Respuesta #6 en: 10 de Febrero de 2008, 17:30:55 »
Muy wenas, vuelvo a remitiros a vosotros. He estado leyendo el datsheet de mi sensor ADXL202, entiendo como es la señal perfectmanete. La cosa es la hora de configurar mi PIC 16c74. No entiendo como debo configurar para que reciba el pulso, siento molestaros con algo tan simple, pero si me podeis decir algun simple ejemplo me vendria muy bien.
Lo que entiendo, conecto la salida del sensor a la entrada RB0 del PIC, ahora deberia configurar lso registros necesarios para que se active la interrupción al flanco ascendente, con lo que activaría el temporizador para contar el pulso. Ahora deberia reconfigurar para que detecte el flanco descendente parando el temporizador y asi conociendo la anchura del pulso positivo.

Gracias y un saludo.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Uso acelerometro como sensor de posicion
« Respuesta #7 en: 10 de Febrero de 2008, 17:34:20 »
¿qué lenguaje de programación quieres utilizar TITO?

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Uso acelerometro como sensor de posicion
« Respuesta #8 en: 10 de Febrero de 2008, 18:38:18 »
se puede utilizar el acelerómetro como sensor de posición? y reemplazar calvez a un encoder, en robotica?

Guietre? con el pcb que te hiciste para el acelerometro de freescale, utilizaste el circuito qeu propone para observar las variaciones de los ejes??
.

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Uso acelerometro como sensor de posicion
« Respuesta #9 en: 11 de Febrero de 2008, 00:13:52 »
Afirmativamente, se puede usar el acelerometro como sensor de posicion, de hecho es uno de los usos que propone el fabricante en la presentacion del producto. Por ejemplo lo usan como scroll en las Palm si te fijas en el video de presentación del producto cuando inclinas la palm es como si movieras el scroll.

En este video de las pruebas que hice con el acelerometro se ve como varia la tension al girar el protoboard. No creo que tengas la misma definición que en un encoder pero lo podes usar para detectar posicion perfectamente.  http://www.todopic.com.ar/foros/index.php?topic=19613.20

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Uso acelerometro como sensor de posicion
« Respuesta #10 en: 11 de Febrero de 2008, 00:28:37 »
Creo que estáis confundiendo los términos. El acelerómetro lo que puede medir son inclinaciones o movimientos acelerados o desacelerados, pero no movimientos constantes. Por lo tanto no se puede utilizar como un encoder para determinar la posición de un objeto en un espacio tridimensional/bidimensional.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Uso acelerometro como sensor de posicion
« Respuesta #11 en: 11 de Febrero de 2008, 00:40:48 »
Jesús, creo que si es posible utilizar el acelerometro para detectar la posicion relativa de un objeto, en esta nota de aplicación del acelerometro, el fabricante presenta un algoritmo de posicionamiento utilizando integrales dobles y simples, aunque el objeto no este en movimiento, la aceleración de la gravedad siempre  esta presente y afectando los tres ejes dependiendo el valor de cada eje podes tener una idea de la posicion relativa del objeto. Pero reitero, no creo que sea como para reemplazar a un encoder.
« Última modificación: 11 de Febrero de 2008, 01:07:10 por El_Guitre »

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Uso acelerometro como sensor de posicion
« Respuesta #12 en: 11 de Febrero de 2008, 00:47:18 »
 :shock: integrales triples? uuyy y eso con un micro 16f se puede hacer?

dentro aplicaciones en sus hojas de datos, al menos en el de freescale, dice que se lo puede utilizar en robótica, esto puede referirse en cierta forma a la posición?

en movimientos acelerados, la tensión varía y despues veulve a la normal, cierto? y que hay de los movimientos lentos, existe alguna variación?

Guietre, el esquema qeu utilizaste en tus videos, es el qeu propone la hoja de datos??
.

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Uso acelerometro como sensor de posicion
« Respuesta #13 en: 11 de Febrero de 2008, 00:58:11 »
Perdon, integrales dobles y simples quise poner, ya edito el post anterior. Siguiendo con el tema, la nota de aplicacion dice lo siguiente (intentando traducir al español):

... lo primero para entender este algoritmo es una revisión matemática sobre  la integración. La aceleracion es la rata de cambio de la velocidad de un objeto. Al mismo tiempo, la velocidad es la rata de cambio de la posicion de este mismo objeto. En otras palabras, la velocidad es la derivada de la posicion y la aceleracion es la derivada de la velocidad, entonces: Como la integración es lo opuesto a la derivada, si conocemos la aceleracion de un objeto, podemos obtener su posicion si aplicamos una integral doble (asumiendo condiciones iniciales cero)...

Si Cryn lo único que necesitas para conectarlo son las resistencias en serie y los capacitores en paralelo a la salida de cada eje.
y el algoritmo esta planteado para un micro de 8 bits asi que calculo que se puede hacer sin problemas, tengo que leer toda la nota de aplicación,,, eso va a ser mañana seguramente.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Uso acelerometro como sensor de posicion
« Respuesta #14 en: 11 de Febrero de 2008, 00:59:13 »
Jesús, creo que si es posible utilizar el acelerometro para detectar la posicion relativa de un objeto, en esta nota de aplicación del acelerometro, el fabricante presenta un algoritmo de posicionamiento utilizando integrales dobles y triples, aunque el objeto no este en movimiento, la aceleración de la gravedad siempre  esta presente y afectando los tres ejes dependiendo el valor de cada eje podes tener una idea de la posicion relativa del objeto. Pero reitero, no creo que sea como para reemplazar a un encoder.

Es cierto hasta cierto punto (valga la redundancia), si el objeto alcanza una posición con un movimiento acelerado, si será posible determinar su posición, si conocemos la posición inicial respecto a un sistema de referencia. Aplicando la conocida fórmula:

S=S_{0}+V_{0}*t+1/2*a*t^{2}

Pero si el objeto se mueve con velocidad uniforme no podremos determinar su posición solo con saber la aceleración ya que está es cero.

Por cierto las integrales son simples y dobles para obtener la velocidad y el espacio por integración de la aceleración y de la velocidad respectivamente.

Un saludo

Edito: Te adelantaste con tu post, jejejejejeje
« Última modificación: 11 de Febrero de 2008, 01:01:40 por jfh900 »
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús


 

anything