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.

Plot con pyqt4 y qwt5 primera parte

Python es un lenguaje de programación interpretado muy fácil de aprender y de utilizar, con una gran cantidad de módulos que nos permiten hacer casi cualquier cosa.
En este ejemplo, se muestra como crear una interfaz grafica sencilla hecha en Qt en conjunto con la librería qwt para hacer un grafico de una onda senoidal que podamos manipular. Elegí qwt sobre matplotlib, por que para graficas en tiempo real, es mucho mas rapida la libreria qwt que matplotlib.

Lo que debe hacer la grafica es lo siguiente:

    Dibujar una onda seno y una onda coseno.
    Tener limites el eje X de [0,100] y en el eje Y de [-100,100].

Este ejemplo es de referencia para futuros proyectos.

Por comodidad hice la plantilla en qt designer, utilizando un widget vertical layout como contenedor de la gráfica. Para que el código creado en qt designer pueda ser usado en python, se utiliza pyuic que viene incluido en el paquete PyQt. Con esta línea

pyuic4 -o nombredelarchivodesalida.py nombredelarchivo.ui

el archivo con extension ui es el que se crea en qt designer y se obtiene un archivo de salida que puede ser utilizado en python.

La plantilla de la ventana es la siguiente:

Le quite el tool bar y el status bar. El cuadro rojo es del vertical layout donde se inserta el grafico.
Para poder utilizar la interfaz hecha en qt designer, la importamos como si fuera un modulo:

  1. from Ui_ejemploqwt_ui import Ui_MainWindow

Primero creamos el marco donde se dibujarán todos los elementos que incluyamos en la gráfica, esta clase se llama qwtplot. Esto se hace con la siguiente función:

  1. def createPlot(self, color):
  2.     #en esta parte se crea el plot que seria todo el marco y los numeros "el cascaron"
  3.     plot = Qwt.QwtPlot()
  4.     plot.setCanvasBackground(QtGui.QColor("black"))
  5.     plot.setAxisTitle(Qwt.QwtPlot.xBottom, 'X Axis')
  6.     plot.setAxisTitle(Qwt.QwtPlot.yLeft, 'Y Axis')
  7.     plot.setAxisScale(Qwt.QwtPlot.xBottom, 0, 100)
  8.     plot.setAxisScale(Qwt.QwtPlot.yLeft, -100, 100,10)
  9.     plot.setAxisAutoScale(Qwt.QwtPlot.xBottom)

Corremos el programa y obtenemos la siguiente ventana:

Plot con pyqt4 y qwt5 Segunda parte

En esta segunda parte las funciones que se añadirán a la grafica son las siguientes:

    Una línea (marker) que corte el gráfico por el centro, Y= 0
    Un indicador de coordenadas.
    Marcar cada punto en la grafica en el que se hace clic.
    Además de crear una línea horizontal donde se haga clic que “corte” la grafica.
Para crear el indicador de coordenadas se utiliza la clase QwtPlotPicker. La estructura general de este objeto es la siguiente:
  1. QwtPlotPicker (int xAxis,
  2. int yAxis,
  3. int selectionFlags,
  4. RubberBand rubberBand,
  5. DisplayMode trackerMode,
  6. QwtPlotCanvas *)
Donde:
xAxis: Es el eje de donde toma el valor mostrado con respecto al eje X. El plot puede tener dos ejes X, uno a la izquierda y otro a la derecha. En es elemento se indica de donde se tomará el valor de referencia.
yAxis: Tiene la misma función que xAxis pero tomando el eje Y como referencia.
selectionFlags: Puede seleccionarse entre PointSelection que devuelve un valor tipo QPoint o RectSelection que devuelve un valor tipo QRect.
Rubberband: Establece la forma de las líneas que indican el punto a seleccionar. Puede ser, una cruz que muestra lar coordenadas X y Y, una línea horizontal que solo muestra las coordenadas del eje X, una línea vertical que solo muestra las coordenadas del eje Y, sin líneas, una elipse, y un rectángulo. Estos dos últimos modos, solo se pueden utilizar con el tipo RectSelection.
DisplayMode: Puede ser siempre visible, visible cuando solo cuando se haga clic o invisible.
QwtPlotCanvas: Es el objeto tipo plot al que se le va a insertar el selector (picker).
En el siguiente ejemplo se creará un selector que indique las coordenadas X y Y, que sea visible solo cuando se haga clic en el plot, con el color de texto en blanco, y color de las líneas en color magenta.
  1. picker = Qwt.QwtPlotPicker(Qwt.QwtPlot.xBottom,
  2.         Qwt.QwtPlot.yLeft,
  3.         Qwt.QwtPicker.PointSelection,
  4.         Qwt.QwtPlotPicker.CrossRubberBand,
  5.         Qwt.QwtPicker.ActiveOnly,
  6.     plot.canvas())
  7.     picker.setTrackerPen(Qt.QPen(Qt.Qt.white)) #text color
  8.     picker.setRubberBandPen(Qt.QPen(Qt.Qt.magenta))
Cuando ejecutamos el programa, al hacer clic en cualquier punto del plot obtenemos lo siguiente:
Ahora crearemos una línea horizontal que corta el gráfico por la mitad, esto se hace con un objeto qwtMarker. Solo necesitamos indicar las coordenadas de la línea, si es horizontal o vertical, y el color. Esto se hace de la siguiente manera:

Enlace multipunto con nanostation2

El proyecto

Nos pidieron realizar un un enlace multipunto en una empacadora con una distancia entre dispositivos menor a 1 Km. La configuración requerida es de un equipo en modo Acces Point y tres equipos en modo Bridge.
Un compañero ya había tenido la oportunidad de trabajar con estos equipos y nos hizo una valoración positiva tanto en facilidad de configuración, uso, instalación y relación calidad/precio.

Los dispositivos


Adquirimos cuatro equipos. En cada caja se incluye lo siguiente:
  • 1 equipo Nanostation.
  • 2 correas de plástico.
  • 1 inyector POE.
  • 1 adaptador de AC.
Con tres opciones de montaje, en un poste, en la pared, o en una ventana.



Configuracion

Cada Nanostation viene con un firmware integrado llamado AirOS. Se tiene acceso al software AirOS mediante el navegador . La dirección IP de estos dispositivos es la http://192.168.1.20 con una mascara de red 255.255.255.0. Al introducir la dirección en el navegador nos pide el nombre de usuario y contraseña que son :
User: ubnt
Password: ubnt
Y entramos a la pagina de configuración :

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.



Microchip samples

Estaba en busca de un DSP que fuera barato , que se pudiera conseguir en Mexico y que fuera compatible con el "Master Prog", pero no lo pude encontrar, solo habia en paginas de fuera de mexico, y ni siquieran tenian stock asi que me decidi por pedir un chip de muestra directamente de la pagina de microchip.

El proceso fue muy facil, primero me registré en la pagina de Microchip.com. La cuenta de correo electronico debe ser de una empresa o de una escuela, yo utilize la de la empresa, despues busque el DSP que necesitaba y pedi una muestra, ademas de un PIC18F4550 para pruebas con el puerto USB. Pedí dos de cada uno.

Me pidieron que indicara para que proyecto los iba a utilizar, cual era mi profesion y cuando iba a empezar la produccion, despues puse todos mis datos personales y tambien por que distribuidor queria que me los mandaran. Habia distribuidores de Mexico, pero elegi Microchip direct, que los manda desde Thailandia. Me cobraron US$7.00 por el manejo a mi tarjeta de credito e hice el checkout.

Me mandaron un mail de confirmacion avisandome del pedido:

Dear mi nombre,

The Microchip Samples web site has received your Sample Order on 3/29/2010 at 4:02 PM United States Arizona Time.

Your Order number is: 692085.

Processing Fee Invoice:
Payment Type - Visa
Bill To:
Mi nombre
Mi direccion
Item -- Amount:
Samples Processing Fee -- 7.50 (USD)

The items in your order are as follows:

Sample Item - Quantity Requested

DSPIC33FJ12MC202-I/SP - 2
PIC18F4550-I/P - 2

We are in the process of scheduling your order for shipment and anticipate this to be completed shortly. According to the preferences you have selected in your profile, you will receive e-mail notifications about the status of your order including acknowledgement messages and shipping information.

Note: In some countries samples ship to the local Microchip representative location first and then will be delivered to the shipping destination.

Sincerely, The Microchip Samples Team.

Me mandaron otro mail informandome que el DSP habia sido enviado:

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: