Modulo acelerómetro MMA7361

Este modulo en su interior tiene el integrado MMA7631 el cual es un acelerómetro analógico de 3 ejes (x,y,z) el cual soporta una fuerza máxima de hasta 6g.
Es un dispositivo capacitivo, que posee compensación bajo temperatura y auto seteo.
Posee un sensor de caída libre el cual podría ser útil para dispositivos que requieran realizar una tarea si esto ocurriera (por ejemplo los discos rígidos de la marca IBM poseen este dispositivo para sacar rápidamente los cabezales del disco si este llegara a caer al piso, de esta forma no generan roses y no se pierde información).
Lo que podría interesarnos son sus tres salidas análogas que serán de 800mV/g.
Realmente tiene muchas mas especificaciones pero las dejare para que lean el datasheet si les interesa.
En este circuito lo que se hizo fue simplemente polarizarlo para que pueda funcionar, al tratarse de un dispositivo de interfase análoga (sin protocolos de datos) es posible hacerlo funcionar tanto con un microcontrolador como con electrónica discreta.
La tensión de alimentación va desde los 2,2V a los 3,6V. En este caso al tratarse de un modulo es posible alimentarlo con 5V ya que posee su regulador de 3V3 el cual también nos provee una salida de esa tensión.

En el circuito podemos ver el pin SL con un pull-up a 3V3 este es el pin de Sleep el cual se activa de forma negada por ende si no tiene esa resistencia o bien esta a gnd el integrado pasara a sleep y no nos enviara nada en sus salidas.
Luego el pin GS o selección de G este es un habilitador de los sensores x, y , z. Este hay que habilitarlo a nivel bajo, y luego restan los pines de alimentación y masa.

Y aquí les dejare un video de cómo funciona este modulo junto a un servo de modalismo, el mismo se acopla al servo mediante un timer 555, el timer genera pulsos PWM que hacen girar hacia los dos sentidos al servo en función del ancho del pulso y el acelerómetro genera una tensión continua que esta acoplada al circuito RC del timer para ser montada en su ancho de pulso, es decir al variar la tensión de salida del acelerómetro varia el ancho del pulso del 555 el cual varia el giro del servo.
 
De esta forma se puede ver una aplicación simple sin microcontrolador.
video

15 comentarios:

  1. Nos podria facilitar el codigo y el montaje
    gracias

    ResponderEliminar
    Respuestas
    1. Hola como estas? ya he actualizado el post con el circuito que se muestra en el video, te comento que no posee código ya que no utiliza micro-controlador, es netamente análogo!
      Saludos.!

      Eliminar
  2. Saludos Sebastian, buenisimo el diagrama, estaba buscando hacer eso mismo, un sensor de posicion y acoplarlo a un servo pero sin procesador ni arduino (ya que no se nada de eso) y fue una suerte encontrar este blog que me dio toda la informacion, porque con arduino encontre pòr todos lados pero, como te comente yo cero de eso, muchas gracias!.

    ResponderEliminar
    Respuestas
    1. Buenísimo Marcelo, me alegra que te sea de utilidad, este circuito lo arme para testear el modulo cuando lo compre y ya que estaba, lo subí al blog porque era funcional.
      Cualquier duda que tengas avisa!
      Saludos!

      Eliminar
    2. Bueno, espero no ser muy molesto, pero te consulto:, mi idea era hacerlo (seguramente deba modificar el circuito para mayor sensibilidad) para obtener una especie de "giroscopo" para un modelo radiocontrol -como los que se utilizan en helicópteros rc- para estabilizar el aparatejo en el aire ó al menos para que sea un poco mas manejable, por lo que veo en tu video funciona y muy bien, pero creo que en mi caso tendre que hacerlo algo mas preciso, para que detecte pequeños ángulos de inclinación y pueda coregir la posición...se que debe ser algo complejo pero la idea es experimentar y aprender...(obviamente cualquier idea es mas que bienvenida...)
      Saludos!.

      Eliminar
    3. Hola, no molestas, para que la respuesta sea mas dinámica y mas precisa lo que hay que ver es la variación en el 555, ya que es el que controla el servo en este caso, el MMA modifica rápidamente la señal pero el 555 esta algo limitado ya que sinceramente no he controlado del todo la frecuencia PWM para ese servo en cuestión. Lo ideal es tener la frecuencia PWM correspondiente para el servo y de ahí una variación mas dinámica en el ancho de pulso, que depende del valor del potenciometro del 555 también.
      Es algo para probar hasta encontrarle el punto indicado.
      Saludos.

      Eliminar
    4. Bueno, espero no ser muy molesto, pero te consulto:, mi idea era hacerlo (seguramente deba modificar el circuito para mayor sensibilidad) para obtener una especie de "giroscopo" para un modelo radiocontrol -como los que se utilizan en helicópteros rc- para estabilizar el aparatejo en el aire ó al menos para que sea un poco mas manejable, por lo que veo en tu video funciona y muy bien, pero creo que en mi caso tendre que hacerlo algo mas preciso, para que detecte pequeños ángulos de inclinación y pueda coregir la posición...se que debe ser algo complejo pero la idea es experimentar y aprender...(obviamente cualquier idea es mas que bienvenida...)
      Saludos!.

      Eliminar
    5. Perdón Sebastian, se me duplico el comentario anterior, voy a experimentar y a tener muy en cuenta tus sugerencias, cualquier resultado, bueno-malo en las pruebas te lo voy a comunicar, otra vez muchas gracias por tu amabilidad.
      Saludos!.

      Eliminar
    6. No hay problema!, dale cualquier cosa avisame! asi vemos como va el proyecto!
      Saludos.!

      Eliminar
  3. Un saludo Sebastián. He leido esta publicación y visto el vídeo porque estoy interesado en hacer un soporte giratorio para una cámara que irá en una motocicleta.
    Si no es molestia tengo 2 preguntas, una es ¿donde colocas la resistencia variable que aparece en el vídeo? va muy bien para centrar el servo.
    La otra es, ¿servirá ese acelerómetro a pesar de las fuerzas inerciales de la motocicleta?
    Un saludo y gracias por compartir tus conocimientos.

    ResponderEliminar
    Respuestas
    1. Buen día, la resistencia variables es la que esta conectada en el pin 7 del 555 y los dos extremos uno a una resistencia de 470 y el otro a un diodo 1N4148.
      La verdad es que la reacción no es tan rápida en este circuito, tal vez tengas que realizar algo mas complejo para aprovechar el rendimiento del acelerometro, pero este tampoco es de los mejores. Es cuestion de probarlo en un protoboard como lo probé yo, y simular con la mano el movimiento. También hay que tener en cuenta que el servo que use yo es muyyy económico y tiende a vibrar un poco, lo he probado con otro de marca futaba y el resultado era mejor. Por eso digo que tendrías que probarlo.
      Saludos!

      Eliminar
    2. Ok, gracias. La verdad es que necesito una reacción similar, no muy rápida, para que no resulte sensible a las vibraciones. Ya me hice con un servo de buena calidad y metálico para soportar las vibraciones y de ser necesario introduciria también un giróscopo regulable.
      Después de enviar el mensaje me di cuenta cual era la resistencia variable...
      Un saludo y gracias de nuevo por el artículo.

      Eliminar
    3. Bueno, entonces fíjate si te sirve este montaje ya que no necesitas una respuesta muy rápida, tal vez te sirva!.
      Saludos!

      Eliminar
  4. Hola que tal, tengo una duda con el modulo del acelerómetro, aun que solo se mueve en una sola dirección( en nuestro caso horizontalmente ) tenemos que utilizar los otros ejes y, z del modulo o solo podemos utilizar el x ?
    saludos

    ResponderEliminar
    Respuestas
    1. Hola, podes utilizar los tres ejes, en este caso lo mostré con uno solo pero si replicas el circuito por 3, podes poner 3 servos con sus 3 555 y estos conectados al acelerometro sin problemas. Depende del eje que te interese usar, pero podes usar los tres de forma simultanea.
      Saludos.!

      Eliminar