Archivo de diciembre 2007

 
navidad-2007.JPG
 
 
¡¡¡ Feliz Navidad y feliz nuevo año 2008 ;-) !!!
 
 

Comments No Hay Comentarios »

Hoy voy a hablar un poco de Zigbee desde un punto totalmente práctico. Hay mucha gente que sabe lo que es Zigbee, incluso un poco a nivel teórico, pero muchos tienen una idea un tanto difusa de cómo llevarlo a la práctica. Voy a poner un par de artículos de este tema en dos entregas y espero que quien tenga actualmente dudas o simplemente no tenga claro cómo llevarlo a la práctica, tras la lectura, tenga totalmente claro qué hacer para montar un sistema Zigbee.

Como digo es totalmente práctico, si no sabes lo que es Zigbee te aconsejo que leas unos articulillos teóricos que puse ya hace tiempo en el blog sobre Zigbee y luego continues la lectura a partir de aquí.

Voy a utilizar un kit de desarrollo de Zigbee de MaxStream (distribuido en España por Matrix). Los módulos que vienen en este Kit de desarrollo son módulos llamados XBee Serie2 (con la serie 2 podemos hacer redes mesh, con la serie 1 no. Ya veremos en otra ocasión cuando elegir Xbee serie1 y cuando Xbee serie2, pero te avanzo que para trabajar con Zigbee necesitas la serie 2).

Os pongo un pequeño vídeo (que he hecho de forma rápida) con lo que viene en un kit de desarrollo Zigbee de Maxstream, pues ésto es mejor verlo que leerlo ;-) :
 
 
 

 
 

Creo que la mejor forma de entender cómo utilizar estos módulos Zigbee va a ser a través del método pregunta / respuesta. Ahí van:
 
 
1.- Estoy pensando en hacer una aplicación RF y barajo usar Zigbee, pero me han dicho que es muy complicado, ¿es así?
 
En absoluto. La verdad es que es bastante sencillo utilizando los módulos de Maxstream. Toda la complejidad de las tramas Zigbee recae sobre el módulo. Tú, simplemente enviando unos comandos AT vía serie puedes crear complejas redes zigbee y comunicar tus equipos a través de ellas (me atrevería a decir que casi sin saber de Zigbee). Personalmente hace ya mucho tiempo probé un kit de desarrollo Zigbee de Chipcon. Utilizar aquello sí que era complicado :-( ,  nada que ver con esto, palabra.
 

2.- ¿Qué alcance tienen estos modulitos?
 
Pues como siempre depende. Dependerá de si utilizas un módulo con antena chip integrada, o con antena dipolo integrada o con conector UFL para antena externa, de si tienes obstáculos o no, de si está pegado al suelo o a cierta altura (fresnel), … Como máximo, en un entorno urbano con obstáculos pueden llegar hasta unos 40m, y 120m si no hay obstáculos, pero como digo, depende de muchas variables, como con cualquier dispositivo RF.
 

3.- Bueno, ya he visto el kit desarrollo en el vídeo, muy bonito, pero ¿cómo me comunico con estos módulos?
 

Pues la forma de comunicarte con estos modulitos es a través de una comunicación serie por una uart. Puedes comunicarte de dos maneras, con comandos AT (modo transparente) o modo API (modo no transparente). Este modo de funcionamiento se configura con un parámetro de configuración.
 
 
4.- ¿Y qué diferencia hay entre el modo de funcionamiento por comandos AT y API?
 

En modo Comandos AT (transparente) puedes configurar el módulo a través de simples comandos AT. Ejemplo, imaginemos que queremos enviar datos desde nuestro módulo Zigbee A a un módulo Zigbee B con dirección X.  En modo transparente, enviamos el comando +++ por el puerto serie del módulo A y el módulo saldrá de modo datos para entrar en modo comandos. Establecemos entonces un parámetro con la dirección destino X del módulo B y salimos del modo comandos al modo datos. A partir de entonces, todos los datos que enviemos por el puerto serie del módulo A saldrán por el puerto serie del módulo B.

El modo API es algo más complicado. No existe el modo datos y modo comandos. Se utiliza un protocolo, es decir, nos comunicamos con los módulos mediante unas tramas con su cabecera, datos, final de trama, … es decir, con un protocolo.
 
 
5.- Entonces, si el modo API es más complicado ¿para qué sirve?
 

Con el modo API tendremos más control. Es decir, si enviamos una trama de A a B y ésta no llega, obtendremos un código de error. Si necesitamos enviar datos a distintos equipos de la red (distintas direcciones destino), si utilizamos el modo Comandos AT, tendremos que estar continuamente saliendo a modo comandos, cambiar la dirección destino, volver a modo datos y enviar los datos, así continuamente. Muy lento. En modo API la dirección destino forma parte de la trama, por lo que es mucho más rápido comunicarnos con varios equipos.
 
 
6.- ¿Todos los módulos son iguales? Es decir, en el vídeo has dicho que hay 5 módulos Zigbee, pero no si son Coordinadores, Routers o End devices ¿son distintos equipos o se pueden configurar para que actúen de un modo u otro?

El kit lo componen 1 Coordinador y 4 Routers / End devices. La diferencia hay que verla desde el punto de vista del firmware. El firmware del módulo que hace de Coordinador es distinto al firmware de los Routers o de los End devices. El fimware de los módulos Routers o End devices sí que es el mismo.

 
 7.- Y si el firmware de un Router y de un End device es el mismo, ¿cómo puedo hacer que un módulo se comporte de una manera u otra?

Pues con un parámetro de configuración. Si configuras al módulo para bajo consumo, esto es, para que duerma y se despierte cada X segundos, el módulo se convierte automáticamente en End device, en cambio si siempre está online, el módulo actúa como Router.
 

8.- ¿Y en base a qué decido configurar un equipo como Router o como End device?

Si tus equipos van a funcionar con pilas, y quieres que te duren, deberás configurarlos como End device, de esa manera los equipos pueden trabajar en modo Sleep (bajo consumo). Si algunos de tus equipos pueden obtener la alimentación de la red, configúralos como Routers.
 

9.- Hay una cosa que no entiendo. Si configuro un módulo como End device, es decir, si lo configuro para que entre en modo sleep y me quiero comunicar con él desde otro dispositivo de la red Zigbee, si está durmiendo, no va a hacer caso a las tramas que le envíe, ¿no?
 

Un End device siempre está asociado a un Router (o a un Coordinador, pero recordemos que tras iniciar la red se comporta como un Router). Un End device no hace nada mientras está durmiendo, pero cuando despierta hace un polling al Router al cual está asociado para saber si hay algo para él. Y es que los Routers almacenan temporalmente en una tabla interna las tramas que le llegan a sus dispositivos asociados, de esa manera cuando un End device asociado a un determinado Router despierta y le pregunta si hay algo para él, el Router le enviará las tramas que tenga almacenadas para él.
 

10.- He oido que en una red Zigbee es necesario un coordinador. Si por un motivo se estropea o se apaga, ¿se cae la red zigbee?
 
No. El Coordinador sólo es necesario en el arranque de la red zigbee. En el arranque de la red se encarga de seleccionar qué canal RF utilizar de los 17 disponibles (mirando en el espacio radioeléctrico en qué canal hay menor densidad de energía y por tanto menos interferencias) y se encarga de escoger el PANID (identificador) de la red. Cuando ya ha hecho esta tarea se comporta igual que un Router.
 

11.- Pero yo no quiero que escoja de manera aleatória un PANID. ¿Se puede fijar uno?
 

Efectivamente, puedes fijar uno. Si no lo especificas escogerá uno al azar.
 
 
12.- Claro, si fijo un PANID evitaré que un determinado dispositivo Zigbee en vez de conectarse a mi red se conecte a otra red Zigbee vecina ¿es así?
 
Sí. Si configuras todos los equipos con un parámetro PANID determinado evitarás que tu equipo se conecte a otra red cercana con un PANID distinto. Si no especificas un PANID, al encender un equipo, ya sea un Router o un End device, se conectaría a la primera red Zigbee que encuentre.
 

13.- Yo no quiero que puedan asociarse a mi red más dispositivos una vez formada. ¿Puedo evitarlo?
 
Sí. Hay un comando que puedes enviar a los módulos que hacen de Routers con el cual puedes definir un tiempo en el cual permites asociaciones a la red. Pasado ese tiempo la red “se cierra”.
 

14.- ¿Y luego ya no podrá asociar nunca más dispositivos a mi red?
 

No, a menos que modifiques ese parámetro del Router al cual quieres asociarlo.
 

15.- Y si se cae o se estropea un Coordinador de red y queremos adjuntar a la red un nuevo dispositivo ¿no podremos, verdad?, pues es el Coordinador quien da las direcciones de red a los nuevos dispositivos que se quieran adjuntar.
 
No es el Coordinador quien da las direcciones de red, sino los Routers. Es decir, si se cae el Coordinador sí se podrá adjuntar un equipo a la red sin problemas.
 

16.- En una red Zigbee, si quiero comunicar un dispositivo A con un dispositivo B, yo no me tengo que preocupar de la ruta ¿no? Creo que es la propia red quien se encarga de buscar la ruta óptima. ¿Es el Coordinador quien se encarga de esto?
 
Que no :-) . El Coordinador sólo se encarga de lo que pone en el punto 10).  De encontrar la ruta óptima se encargan los Routers. Efectivamente tú no te tienes que preocupar de indicar la ruta, se encarga la propia red.
 
 
 
 
Bueno, espero que os haya resultado interesante, otro día continúo (que hoy es nochebuena y hay que ir a comprar para la cena ;-) ).

Más adelante veremos algunas cuestiones más que me quedan pendientes y la aplicación X-CTU de Maxstream, que es como una especie de entrenador, similar a los entrenadores que habéis visto en blogElectronica de Siemens o de Coronis, así podréis ver de forma práctica cómo funcionan estos dispositivos.
 

Comments 74 Comentarios »

¿Alguien recuerda alquellos tiempos del Moviline de Telefónica? Aquellos móviles enormes que pocas personas tenían, de hecho yo nunca tuve uno pues era demasiado pequeño en aquella época, pero sí recuerdo a un tío mío hablando desde el coche. Parecía increíble entonces. Desgraciadamente, aquellos móviles de primera generación analógicos (1G) conocidos también como TACS (Total Access Communications System) los cuales operaban en la banda de 900MHz, tenían unas bajísimas prestaciones y no era posible enviar datos, sólo voz. Además en cada país habían distintos sistemas lo que imposibilitaba el roaming.

moviline.jpg

Para solventar estos problemas nació un sistema común, el denominado sistema de segunda generación (2G), el que todos conocemos hoy en día por GSM (Global System for Mobile Communications). Qué voy a contar del éxito de esta tecnología que alguien no sepa. Ha sido una auténtica revolución en los últimos años. Sin embargo, como todo, esta tecnología también tiene sus limitaciones, sobre todo en lo referente a transmisiones de datos. Con GSM podemos transmitir datos sí, (comunicaciones CSD), pero a velocidades muy pequeñas de 9600bps.

Esta necesidad hizo aparecer hace ya algunos años una evolución del sistema GSM, el conocido sistema GPRS (General Packet Radio System), también conocido como 2.5G, que fue introducida en Europa y EEUU en el 2001 (Japón pasó directamente del 2G a 3G).  Supongo que una de las razones de que se impusiera 2.5G es que se pudo aprovechar gran parte de la infrastructura GMS ya instalada. A diferencia de GSM con GPRS se pueden utilizar un número simultáneo de slots con lo cual se pueden conseguir velocidades, en la práctica, de unos 80kbps en el mejor de los casos. Esto para muchas aplicaciones es más que suficiente (sistemas de telemetría, telecontrol, alarmas, …) , pero para otras muchas no lo es, como por ejemplo, aplicaciones multimédia, como aplicaciones de vídeo o el simple hecho de navegar por la Red de forma ágil.

gsm.jpg

Y es que los tiempos cambian. Antes las necesidades que teníamos eran las de hablar y las de enviar mensajitos SMS. Ahora queremos realizar videoconferencias con nuestros teléfonos, queremos navegar por Internet con nuestro portátil en el aeropuerto mientras esperamos el avión, mientras viajamos en el tren, … y queremos que vaya rápido. Es por ello que nació la tecnología UMTS (Universal Mobile Telecommunication System). Con UMTS se pueden conseguir altas velocidades de hasta 2Mbps de descarga.

3g.jpg

¿Qué diferencias hay entre GSM y UMTS?

El sistema GSM funciona por TDMA, es decir, se divide el tiempo en slots y a cada usuario se le asigna un slot, es decir, un espacio de tiempo por el que se puede transmitir los datos. Por lo tanto se comparte cada canal por un número determinado de usuarios.

El sistema UMTS es un sistema (WCDMA) acceso múltiple por división de código de banda ancha. En este sistema no hay slots temporales como en GPRS. Todos los usuarios transmiten a la vez por el canal, pero las señales de cada usuario están codificadas con un código único de tal forma, que pese a que podemos pensar que se forma una “señal indescifrable” al utilizar las mismas frecuencias a la vez, no es así, pues la estación base es capaz de decodificar y volver a separar perfectamente cada una de las comunicaciones recibidas de los distintos usuarios. Esto, evidentemente, implica un aprovechamiento mucho más alto del canal, al no compartirlo en tiempo.

 

gsm-umts.JPG

 

También UMTS permite a los operadores utilizar diferentes formas de tarificación, ancho de banda asimétrico en download y upload, configuración de calidad de servicio (QoS) etc etc.

UMTS define 4 categorías de calidad de servicio (QoS):

Conversacional: para llamadas de voz y videoconferencias. Importantísimo tener los mínimo retrasos en la comunicación.

Streaming: La fluctuación del retraso debe ser baja. Pensada para descarga de vídeos de Internet. Una vez llenado el buffer inicial, deberíamos poder ver una transmisión sin  cortes ni pausas.

Interactiva. No deben de haber grandes retardos, pero sí, en extremo, hay que asegurar la integridad de los datos. Este es el típico caso de la navegación web.

Background:  Los retardos no son importantes pero al igual que el caso anterior, es fundamental la integridad de los datos. Típica aplicación, el correo electrónico.

Espero que os haya resultado de interés. Otro día hablaré en detalle, y de forma práctica, de cómo utilizar los modems 3G de Siemens ;-)

 

Comments No Hay Comentarios »

Hoy Sábado vamos a retomar un post que puse ya hace algún tiempo, cuando hablé de las wavecard de Coronis, unos pequeños módulos ideales para integrar en nuestros circuitos para realizar comunicaciones RF en la banda de 868MHz (25mw) y 869MHz (500mW) por su bajísimo consumo, su largo alcance (1Km 25mW y 4Km 500mW), y su sencillez de uso (gestionables con un sencillo protocolo a través de una uart).

Para ello voy a utilizar un kit de desarrollo de Coronis. Este kit incorpora 2 waveports. Un waveport no es más que una wavecard con caja (con conectividad rs232 o USB). De esta manera resulta muy sencillo evaluar una wavecard y realizar pruebas de transmisión con un PC o dos PC. En este caso voy a untilizar un único PC con 2 puertos serie. Conectaré un waveport a cada uno de ellos.
 
 

Este es un kit de desarrollo de Coronis:  

   

  
Vamos a ver un vídeo de cómo realizar una transmisión de datos utilizando estos dispositivos. Para ello, en lugar de utilizar un hyperterminal, utilizaremos un software entrenador realizado por Matrix Electrónica para sus clientes, similar al entrenador de Siemens, con el que nos será mucho más sencillo probar los equipos y entender su funcionamiento. Haz clic en el siguiente vídeo:
 

wavecard-video.JPG
 
 

Bueno, espero que os haya resultado interesante. A ver si dento de poco puedo poner un post similar con un kit de desarrollo de Zigbee. ;-)

Comments 14 Comentarios »

Hoy voy a hablar un poquito de los leds de potencia. Sí, hoy toca teoría :-) … Y es que es importante. Estos leds de potencia (llamados normalmente power leds) substituirán en el corto plazo cualquier bombilla incandescente de las que conocemos hoy en día. De hecho ya hay algunos países como Francia o Suiza en los que en poco tiempo, por ley, todas las bombillas incandescentes deberán ser substituidas por led. Y es que la eficiencia energética de las lámparas led, así como la durabilidad no tiene comparación.

lamparas-led.jpg

Bueno, vamos a ver una serie de definiciones relacionadas con power leds. Están extraídas del catálogo de un fabricante, en concreto del catálogo de QLT (distribuidos en España por Matrix), un estupendo catálogo que además de dar información de sus productos tiene una parte teórica introductoria que está muy bien para adentrarse en este (hasta ahora) desconocido mundo de la iluminación led.
 

¿Qué es un LED?
Pues un led es un dispositivo semi-conductor que produce luz cuando circula corriente a través de una unión PN con unas caracteristicas adecuadas. Concretamente un led es un diodo que cuando se alcaza cierto umbral de tensión (< 5V) produce normalmente luz monocromática (es decir, de un color muy puro). Este color depende de la composición química del LED.
 

¿Cómo se alimenta un power led? (componente de las lámparas led)
Pues los leds de potencia se alimentan con una corriente constante, y la tensión varía dependiendo del color del LED, de la temperatura y de la tolerancia de fabricación del propio LED. Básicamente el papel del alimentador es proporcionar y controlar con precisión la corriente en el circuito, pues una corriente demasiado elevada puede destruir los led mientras que una corriente demasiado baja produce un rendimiento luminoso muy pobre. Utilizar una corriente adecuada (es decir, la fuente de alimentación adecuada) asegura la máxima luminosidad y máxima longevidad de los leds de potencia. Como comentábamos antes, se utilizan fuentes de corriente, por lo que todos los LED deben conectarse en serie
 

¿Y cuanto dura un led de potencia?
Pues la duración de vida depende de dos factores importantes: la temperatura de funcionamiento y la corriente de alimentación. Los power leds también se calientan, no son como los leds convencionales que estamos acostumbrados a ver en nuestros circuitos. Por ello la pequeña cantidad de calor generado por los led (o las lámparas led) se disipa por medio de un radiador de aluminio al que están soldados. Si no se usa un disipador y tenemos un funcionamiento en condiciones limites o falta una circulación de aire que impida una disipación suficiente del calor, puede provocar una elevación nociva de la temperatura, que como comentábamos en el párrafo anterior, recortaría fuertemente la vida de los led. Los limites de temperatura de los LED de potencia son relativamente bajos, entre 85 y 100°C medidos sobre el cuerpo del LED.
 

Si, eso está muy bien … ¿pero cuanto duran?
Pues depende del modelo, pero los power led duran del orden de unas 50.000 horas
 

¿Y se puede regular la luminosidad como hacemos con un dimmer?
Por supuesto que sí. Los alimentadores de leds de potencia, como se comentaba anteriormente, deben tener una salida de corriente constante pues de esta manera se asegura una larga vida a estos componentes. Por otro lado los power led tienen un umbral fijo de operación (tensión de conducción de la union PN del diodo) y por ello la regulación tiene que hacerse por PWM (Pulse Width Modulation, modulación de anchura de pulsos)

lampara-led.jpg

 ¿Cómo es el haz de luz que emiten los leds de potencia que están en una lámpara led?
Debido a la estructura del led-chip, la emisión es omnidireccional, por ello para concentrar la luz del haz se coloca durante la fase de fabricación una lente de plástico que proporciona un ángulo de 120°. De todas maneras esto también es posible regularlo, pues hay además lentes suplementarias que permiten una mayor concentración del haz: haz estrecho (8º-12°), haz intermedio (25º-30°), haz amplio (40º-45°).
  

Espero que encontréis de interés este post aquellos que desconocíais este tipo de dispositivos  ;-)

Comments 10 Comentarios »

Por fin este Sábado he tenido un poquito de tiempo y os puedo poner la tercera y última entrega de la aplicación que prometí a principios de mes y que acabo de terminar. Lo que ha cambiado es lo que dije en la segunda entrega. En esta ocasión la posición GPS no se envía a un número que tengamos grabado en el fichero JAD. Ahora en el fichero JAD sólo tendremos el PIN de la tarjeta SIM por si hace falta.

java.jpg

Entonces, ¿qué es lo nuevo?

Pues ahora si desde un móvil cualquiera se envía un SMS con un texto, el módem MTX65+G va a decodificar el SMS entrante, obteniendo por un lado el nº de teléfono del teléfono que ha enviado el SMS y por otro lado el texto del SMS. Entonces, si se recibe un texto con la palabra:

posicion

el modem coge la posición actual GPS y la envía por SMS al nº de teléfono que envió el SMS.

abrir

el modem activa (pone a “1″) la salida GPIO 0 del módem, con lo que podríamos activar un relé, por ejemplo.

cerrar

el modem desactiva (pone a “0″) la salida GPIO 0 del módem, con lo que podríamos desactivar un relé.

Principalmente se han añadido los métodos al proyecto:
 

int cambiarGPIO(int numGPIO, int valor)

mediante el cual podemos cambiar el estado de una GPIO poniendola a “1″ o “0″. En el ejemplo sólo vamos a utilizar la GPIO número 0.

SMS leerSMS(int posicionDeMemoria)

mediante el cual decodificamos un SMS entrante obteniendo dentro de una clase SMS por un lado el número de teléfono que ha enviado el SMS y por otro lado el texto del mensaje.
 

Quedaría una cosa que no voy a hacer, eso ya os lo dejo a vosotros. Y es que estaría bien que cuando se procese un SMS entrante, después de ser procesado se elimine de la memoria del módem, pues de lo contrario llegará un momento que se llene la memoria del modem de SMSs (como ocurre con cualquier móvil) y no se podrán recibir más. Para ello no habría más que crear otro método que se llamara por ejemplo “borrarSMS” y utilizar el comando AT+cmgd para borrar el SMS una vez procesado. Muy muy fácil.
 
 
Os pongo esta tercera y última entrega aquí.
 
 
Recordar que todo este programa vale tanto para el módulo Siemens XT65 como para el MTX65+G. Para quien le interese estos módems son distribuidos en España por Matrix Electronica
 
 
Espero que os haya gustado y hayáis encontrado de interés estos tres últimos artículos, y que pueda ayudar a aquellos que dáis los primeros pasos con los modems de Siemens ;-)

Comments 125 Comentarios »