Motes: 12, Ultimando los detalles del driver para integrar el mote en el X4 de Digi

 

No publico el fotolito de la placa, porque aprovechando que he hecho la lista de materiales he cambiado el formato del pulsador y alguna “cosilla” más, cambios sin importancia que no afectan al circuito del mote, solo espero que faciliten su montaje.

Entretanto estaba finalizando el driver que nos va a permitir integrarlo en en entorno IDia.

Este mismo ejercicio ya lo hice y expliqué en un post anterior ( Midiendo la energía: 21 Integrando con el X4) por lo que me ahorraré bastantes detalles, basicamente lo que he hecho es modificar el driver de Digi para su sensor de temperatura luz y humedad con la finalidad de adaptarlo a nuestro mote.

Nuestro mote funciona a baterías, por lo que tenemos que tener claro en todo momento si la tensión de la batería es correcta, para poder cambiarla antes de que se agote, es un tema que me ha costado un poco…. Entre los comandos de la radio Xbee hay uno que sirve para recoger la tensión con la que se alimenta al Xbee, el comando es “V%”, la respuesta es un número proporcional a la tensión con la que se alimenta la radio, al que hay que hacer una pequeña transformación para convertir en mVoltios. Como no vamos a interrogar al mote activamente necesitaríamos que nos lo enviara junto con las lecturas de los puertos analógicos. Hay otro comando “V+” que sirve para establecer el “Supply voltage high threshold (V+):” este es el valor por debajo del cual se incluirá la lectura de la batería en el paquete que incluye la lectura de los puertos, eso nos permitirá ahorrarnos dos bytes por paquete si la batería no está agotada. Vaya tontería! dirán algunas personas, para que queremos ahorrarnos dos bytes… en un tema de muy bajo consumo es importante, de todas formas podemos dar la posibilidad a cualquiera de enviar siempre la lectura, simplemente poniendo este valor por encima de la tensión de alimentación.

Voltímetro analógico

No hay demasiada información (o yo no la he encontrado) sobre el tema, por lo que, ya que me estaba inspirando en el driver de Digi, he hecho lo mismo con el tema de la medición de la batería. Nada que ver, el driver de Digi lee un puerto digital (11) para determinar si la tensión de la batería es corecta o no. Despues de hacer una pensada sobre el tema lo he entendido. El sensor de Digi utiliza tres baterías y un regulador a 3,6V, resultaría absurdo medir la tensión en la radio, porque está regulada y siempre sería de 3,6V. También resulta absurdo medir la tensión en la batería con uno de los puertos analógicos digitales, tendríamos que hacer un divisor resistivo, que consumiría corriente incluso cuando el mote estuviera durmiendo. La solución por la que se ha inclinado Digi es utilizar un regulador que incorpora una salida de “power good” y leerla por un puerto digital. Eso explica el motivo por el que podemos analizar una señal discreta en un puerto digital, el dispositivo únicamente dará indicaciones de si la tensión es correcta o no.

En nuestro caso no existe el regulador, por lo que la tensión de la radio es exactamente la de las baterías que lo alimentan, por lo que lo que hemos hecho es configurar los dos parámetros mencionados en la parte superior de este artículo para que, junto con los valores de las entradas nos envíe la lectura de tensión de alimentación cuando esté en una zona peligrosa. No ha sido del todo fácil, ya que la única documentación que hay sobre el tema solo indica que se pasa en el bit número 7 de la máscara analógica. ejecutando el SW en modo de depuración he podido ver que a ese bit se le llama AD7, lo que me ha permitido recogerla y meterla en una propiedad (Esta frase es el resumen de un buen rato de investigación).

En todo caso lo tenemos todo, el mote, el driver, …en próximos posts vemos como lo montamos todo.

Deja un comentario