Mostrando entradas con la etiqueta sparkfun. Mostrar todas las entradas
Mostrando entradas con la etiqueta sparkfun. Mostrar todas las entradas

Prueba del acelerómetro BMA180 con PIC y PyQwt

En este ejemplo se tomarán como base los ejemplos anteriores. Así que, tendremos tres gráficas indicando las aceleraciones en tiempo real con su respectivo valor numérico, pero además, un indicador de interrupción y un termómetro.
Comenzaremos con la breakout board de Sparkfun. Esta placa tiene todos los pines del BMA180 separados y dos capacitores como filtros.

Descripción de los pines

VDD: Alimentación del sensor.
GND: Conexión a tierra.
INT: Salida Digital. Indica si un evento de interrupción ha ocurrido. Lógica positiva.
CS: Entrada digital.Chip select. Corresponde al pin CSB. Cuando este pin esta a 0V, se activa la funcionalidad SPI.
SCK: Entrada digital. Entrada de la señal de reloj.
SDO: Entrada/salida digital. Salida SPI o configuración de la dirección I2C.
SDI: Entrada/salida digital. Entrada SPI o datos seriales I2C.
VIO: Entrada de alimentación digital. Corresponde al pin VDDIO. La interfaz serial con el microcontrolador puede manejar voltajes diferentes que la alimentación del sensor. Por ejemplo, el sensor pude ser alimentado a 2.0V y la interfaz serie puede trabajar a 3.6V.

Prueba del acelerómetro MMA7260 con PIC y PyQwt II

En esta ocasión me basaré en la clase QwtDial para crear algo parecido a un indicador de actitud.
De la guía de usuario de qwt:
“La clase QwtDial proporciona un control de intervalo redondeado.
QwtDial esta diseñado para ser una clase base para los indicadores (dial) como velocímetros, brújulas, relojes:
Un dial contiene una escala y una aguja indicando el valor actual del dual. Dependiendo del Modo uno de ellos es fijo y el otro esta rotando…”
De la descripción anterior podemos sacar la conclusión de que un dial se compone de dos elementos básicos: una escala y una aguja. Estos elementos se dibujan “a mano”, es decir, las líneas que componen el dial, los números, las figuras, los colores. No se puede escoger directamente que indicador queremos, sino que tenemos que dibujarlo. Esto es algo complicado pues hay que tener los conceptos básicos de geometría presentes y dominarlos.
La otra opción es tomar las clases de los ejemplos incluidos y ajustarlas a nuestras necesidades, que es lo que hice en este caso. Copié a un archivo clases.py las clases que necesitaba para el indicador de actitud (el tercer indicador de la imagen anterior) que son:
EnumList: Función que es llamada dentro de las clases necesarias.
AttitudeIndicator: Esta clase dibuja el círculo y las escalas del indicador.
AttitudeIndicatorNeedle: Esta clase dibuja la aguja central, que para el indicador de actitud, es un triangulo rojo.

El acelerómetro digital BMA180

El acelerómetro digital de tres ejes BMA180 es producido por Bosch y se puede conseguir en Sparkfun. Puede medir aceleraciones tanto dinámicas como estáticas con una gran precisión. Debido a sus tres ejes perpendiculares da la posición absoluta en un campo de gravedad. Este sensor es un arreglo de dos chips. Un ASIC evalúa los tres canales de salida del elemento sensor micromecánico que funciona de acuerdo al principio de capacitancia diferencial.
El BMA180 proporciona una salida digital completa de 14 bits por medio de la interfaz SPI o I2C. Con el comando apropiado se puede elegir entre el rango completo de aceleraciones que va de 1g hasta 16g. Un filtro de segundo orden Butterworth que va desde los 10Hz hasta los 600Hz es incluido, que proporciona un pre-acondicionamiento de la señal medida. La resolución típica a 2g es de 0.5mg y una precisión por debajo de los 0.25° en aplicaciones de medida de la inclinación.  El consumo de corriente típico es de 650μA a 2.4V en el modo estándar. Además, el sensor puede ser puesto en modo de bajo consumo, donde informa al sistema hosts de un cambio en la aceleración por medio del pin de interrupción. Esta función puede ser utilizada para despertar (wake-up) al sistema host, del modo sleep.

Prueba del acelerómetro MMA7260 con PIC y PyQwt

En la entrada anterior  se mostraron las características y el funcionamiento de este sensor. Ahora utilizaré la librería gráfica PyQwt para mostrar las mediciones que serán convertidas de analógico a digital mediante el PIC12F510 y serán transmitidas a una PC a través del estándar RS-232.

PIC12F510

El PIC12F510 es un microcontrolador producido por Microchip Technology. Este chip es de la familia Baseline y sus características mas importantes son:
    Encapsulado de 8 pines.     Oscilador interno de precisión de 4/8 Mhz.     3 canales ADC de 8 bits.     Es un microcontrolador de 8 bits.     Bajo consumo de corriente: 100 mA en modo Sleep.     ICSP.     El rango de voltaje es de 2.2V a  5.5V.     Cuenta con un timer de 8 bits.
Este microcontrolador a pesar de ser de bajo costo, cumple con lo necesario para realizar este ejemplo con sus tres ADC de 8 bits.
La programación de este uControlador fue hecha en CCS y es muy sencilla, se puede dividir en tres pasos: Configuración del microcontrolador, Adquisición de datos y envío de datos a la PC. El programa completo se muestra a continuación:
mainp12510accel.h

El acelerómetro analógico MMA7260

Introducción

Un acelerómetro, es un dispositivo electrónico, en el que su señal de salida, es dependiente de la aceleración a la que ha sido sometido.

El acelerómetro MMA7260 de Freescale Semiconductors tiene las siguientes características:

  • Mide la aceleración en tres ejes.
  • Sensibilidad configurable (1.5g/2g/4g/6g)
  • Bajo consumo de corriente: 500 uA.
  • Modo sleep: 3uA.
  • Alta sensibilidad (800 mV/g @ 1.5g)
  • Bajo voltaje de operación: 2.2V – 3.6V.

Y se utiliza típicamente en:

  • Discos duros de reproductores MP3: Detección de caída libre.
  • Laptops.
  • Celulares.
  • En brújulas electrónicas para compensar la inclinación.
  • En juegos: para detectar la inclinación y el movimiento.

Su bajo consumo de corriente lo hace ideal para trabajar en aplicaciones donde su fuente de alimentación principal son baterías.

El conversor Serial-USB con chip FTDI232

Para comunicar una computadora con un microcontrolador, utilizaba el puerto serie del microcontrolador y un max232, asi obtenia una comuncacion serial sincrona.

Sin embargo, en los ultimos años, los puertos seriales de las PC han ido desapareciendo, y en las computadoras portatiles es practicamente imposible encontrarlos. Por esta razon busqué otras formas de comunicacion entre la PC y el microcontrolador, encontrando que el estandar USB, es el mas utilizado, relativamente facil de implementar y economico.

Existen dos formas de añadir esta funcionalidad a los microcontroladores:
  1. Chips convertidores de Serial a USB.
  2. Con microcontroladores con el estandar USB integrado.
En esta ocasion elegí el chip de FTDI por que necesitaba una plataforma que me permita un desarrollo rapido de los proyectos, ademas de que lo puedo conseguir en México, es utilizado en muchos proyectos tanto amateurs como profesionales, es barato, y existen muchas variantes de circuitos convertidores ya hechos que se venden comercialmente, como lo es el que esta a la venta en la pagina de Sparkfun.
La placa FTDI Basic Breakout de Sparkfun incluye los pines DTR, RX, TX, CTS y GND del estandar RS232. Se conecta a la computadora por medio de un cable con conector mini USB. El microcontrolador solo necesita los pines RX yTX de la placa, ademas de la conexion a tierra. Una vez hechas todas las conexiones solo hace falta instalar el driver de la pagina de FTDI y listo, las comunicaciones se pueden hacer por medio del Hyper terminal de Windows.



Primer pedido a Sparkfun

Estuve meses pensando en como desarrollar algunos proyectos y necesitaba tiendas donde vendieran componentes electronicos. De las tiendas que encontre Sparkfun fue la que me gustó mas por las siguientes razones:

  • Su pagina web tiene un diseño sencillo y limpio.
  • El feedback en la mayoria de sus productos es muy positivo.
  • Tiene foro.
  • Puedes pagar con tarjeta de credito o Paypal.
  • Tiene muchas placas diseñadas por ellos mismos o por sus compradores, asi no tenemos que preocuparnos por los empaquetados QFN.
  • Cuenta con distribuidores en Mexico.
Despues de pasar horas viendo todos los productos, cree una cuenta y llene mi orden que quedo lista para el Free day, pero fue en vano, ese dia no pude ni entrar a su pagina web.

Tiempo despues pedi una tarjeta de credito y todo estuvo listo para pedir las cosas, ahora si las podia pedir el dia y la hora en la que quisiera, o eso pensé.

Cada vez que estaba listo para pedir las cosas, una de ellas quedaba fuera de stock, asi me paso cuatro veces, hasta que logre pedir todo. Despues de hacer el checkout de la lista, pasaron tres dias hasta que mi orden cambio de estado a shipping. Pero nuevamente quedo fuera de stock uno de los items que pedi, no entiendo porque, pues cuando hice el checkout si estaba en stock. Parece que no mueven el contador del producto hasta que hacen el envio, y si el producto esta escaso, se acaba antes de que te lo puedan mandar. El cargo a mi tarjeta de credito si fue instantaneo.

El paquete tardó tres dias en llegar, como estaba estipulado en la forma de envio "international priority" de FEDEX, me cobraron MX$402.00 por costos de manejo. El pago fue hecho al repartidor y en efectivo.

Lo que pedí y quedó fuera de stock, fue un servo. Se genero otra orden en estado pendiente. No vi por ningun lado donde cancerla o modificarla, asi que supongo que no se puede. Cuando llegaron nuevas unidades del servo, se volvio a repetir el proceso de empaquetado y envio, el estado de la orden cambió y mi paquete fue enviado de la misma forma que el el anterior, yo no tuve que hacer nada ni me cobraron nada, ni siquiera la aduana. Parece que todos los costos fueron cubiertos desde el primer cobro.

Todo llego en un gran carton y dentro estaban las cosas envueltas en un papel café para amortiguar los golpes, los circuitos integrados y las piezas pequeñas estaban dentro de una caja roja con el log de sparkfun, cada pieza estaba dentro de una bolsa de plastico. Tambien enviaron hojas con todas las piezas que habian sido mandadas. Aqui algunas fotos: