{"id":746,"date":"2011-01-30T02:24:50","date_gmt":"2011-01-30T01:24:50","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=746"},"modified":"2011-01-30T02:24:50","modified_gmt":"2011-01-30T01:24:50","slug":"motes-12-ultimando-los-detalles-del-driver-para-integrar-el-mote-en-el-x4-de-digi","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=746","title":{"rendered":"Motes: 12, Ultimando los detalles del driver para integrar el mote en el X4 de Digi"},"content":{"rendered":"<div class=\"mceTemp mceIEcenter\">\u00a0<\/div>\n<p>No publico el fotolito de la placa, porque aprovechando que he hecho la lista de materiales he cambiado el formato del pulsador y alguna \u00abcosilla\u00bb m\u00e1s, cambios sin importancia que no afectan al circuito del mote, solo espero que faciliten su montaje.<\/p>\n<p>Entretanto estaba finalizando el driver que nos va a permitir integrarlo en en entorno IDia.<\/p>\n<p>Este mismo ejercicio ya lo hice y expliqu\u00e9 en un post anterior (<a href=\"http:\/\/www.zigbe.net\/?p=616\"> Midiendo la energ\u00eda: 21 Integrando con el X4<\/a>) por lo que me ahorrar\u00e9 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.<\/p>\n<p>Nuestro mote funciona a bater\u00edas, por lo que tenemos que tener claro en todo momento si la tensi\u00f3n de la bater\u00eda es correcta, para poder cambiarla antes de que se agote, es un tema que me ha costado un poco&#8230;. Entre los comandos de la radio Xbee hay uno que sirve para recoger la tensi\u00f3n con la que se alimenta al Xbee, el comando\u00a0es \u00abV%\u00bb, la respuesta es un n\u00famero proporcional a la tensi\u00f3n con la que se alimenta la radio, al que hay que hacer una peque\u00f1a transformaci\u00f3n para convertir en mVoltios. Como no vamos a interrogar al mote activamente necesitar\u00edamos que nos lo enviara junto con las lecturas de los puertos anal\u00f3gicos. Hay otro comando \u00abV+\u00bb que sirve para establecer el \u00abSupply voltage high threshold (V+):\u00bb este es el valor por debajo del cual se incluir\u00e1 la lectura de la bater\u00eda en el paquete que incluye la lectura de los puertos, eso nos permitir\u00e1 ahorrarnos dos bytes por paquete si la bater\u00eda no est\u00e1 agotada. Vaya tonter\u00eda! dir\u00e1n algunas personas, para que queremos ahorrarnos dos bytes&#8230; 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\u00f3n de alimentaci\u00f3n.<\/p>\n<div id=\"attachment_747\" style=\"width: 649px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/01\/Voltimetro.gif\"><img aria-describedby=\"caption-attachment-747\" loading=\"lazy\" class=\"size-full wp-image-747\" title=\"Voltimetro\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2011\/01\/Voltimetro.gif\" alt=\"\" width=\"639\" height=\"448\" \/><\/a><p id=\"caption-attachment-747\" class=\"wp-caption-text\">Volt\u00edmetro anal\u00f3gico<\/p><\/div>\n<p>No hay demasiada informaci\u00f3n (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\u00f3n de la bater\u00eda. Nada que ver, el driver de Digi lee un puerto digital (11) para determinar si la tensi\u00f3n de la bater\u00eda es corecta o no. Despues de hacer una pensada sobre el tema lo he entendido. El sensor de Digi utiliza tres bater\u00edas y un regulador a 3,6V, resultar\u00eda absurdo medir la tensi\u00f3n en la radio, porque est\u00e1 regulada y siempre ser\u00eda de 3,6V. Tambi\u00e9n resulta absurdo medir la tensi\u00f3n en la bater\u00eda con uno de los puertos anal\u00f3gicos digitales, tendr\u00edamos que hacer un divisor resistivo, que consumir\u00eda corriente incluso cuando el mote estuviera durmiendo. La soluci\u00f3n por la que se ha inclinado Digi es utilizar un regulador que incorpora una salida de \u00abpower good\u00bb y leerla por un puerto digital. Eso explica el motivo por el que podemos analizar una se\u00f1al discreta en un puerto digital, el dispositivo \u00fanicamente dar\u00e1 indicaciones de si la tensi\u00f3n es correcta o no.<\/p>\n<p>En nuestro caso no existe el regulador, por lo que la tensi\u00f3n de la radio es exactamente la de las bater\u00edas que lo alimentan, por lo que lo que hemos hecho es configurar los dos par\u00e1metros mencionados en la parte superior de este art\u00edculo para que, junto con los valores de las entradas nos env\u00ede la lectura de tensi\u00f3n de alimentaci\u00f3n cuando est\u00e9 en una zona peligrosa. No ha sido del todo f\u00e1cil, ya que la \u00fanica documentaci\u00f3n que hay sobre el tema solo indica que se pasa en el bit n\u00famero 7 de la m\u00e1scara anal\u00f3gica. ejecutando el SW en modo de depuraci\u00f3n 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\u00f3n).<\/p>\n<p>En todo caso lo tenemos todo, el mote, el driver, &#8230;en pr\u00f3ximos posts vemos como lo montamos todo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 No publico el fotolito de la placa, porque aprovechando que he hecho la lista de materiales he cambiado el formato del pulsador y alguna \u00abcosilla\u00bb m\u00e1s, cambios sin importancia que no afectan al circuito del mote, solo espero que&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=746\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[16,2,9,10],"tags":[56,62,80,99,101,109,110,111,173,183,197],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/746"}],"collection":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=746"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/746\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}