Después de una buena temporada de duro trabajo, por fin está disponible la versión 0.5.0 de Domino. Esta versión es la que acumula la mayor cantidad de cambios respecto a su predecesora, ya que se han realizado importantes cambios de raíz. Gracias a estos cambios conseguimos sacar el máximo partido al espacio disponible en Flash y a la escasa memoria RAM de Duemilanove y Uno. También hemos recortado algunas décimas de segundo a los tiempos de reacción de los enlaces, e introducimos algunas funcionalidades que muy pronto se convertirán en imprescindibles, tal como veréis a continuación.
Para aquellos quienes no lo conozcáis aún, Domino es un software que convierte Arduino en una plataforma de automatización optimizada para aplicaciones domóticas. Podéis encontrar más información en la propia página del proyecto, o en el manual de referencia.
Una gestión muy cuidadosa de los recursos nos ha permitido rebajar el tamaño del sketch para que por lo menos las funciones más importantes quepan en Arduino Uno. Esto lo hemos conseguido empleando funciones de bajo nivel que permiten usar las cadenas de texto almacenadas en Flash, reduciendo la cantidad de RAM usada. Por otro lado, ha sido necesario dividir el código en distintos módulos, ofreciendo la posibilidad de elegir solamente aquellos que consideremos necesarios para la función que vamos a dar a nuestro Domino. En el SVN del proyecto OpenDomo ya es posible descargar el módulo principal para actualizar vuestros Arduinos Uno y Duemilanove.
Aunque no esté totalmente implantado en esta versión, se avecina un cambio importante. En la versión más ligera de Domino dejarán de funcionar los comandos "save" y "load", que como sabéis guardan la información desde la RAM hacia la EEPROM para garantizar la persistencia y viceversa. En lugar de ello, para facilitar el aprendizaje para usuarios más noveles y ahorrar espacio en RAM, la configuración se operará directamente desde su almacenaje permanente. Sí se mantendrá esta funcionalidad en la versión para plataformas Mega y superiores.
Entre muchas otras mejoras, se ha corregido la gestión de rangos de los puertos analógicos de entrada, que habían presentado algunos problemas en las últimas versiones. También se han mejorado los enlaces, consiguiendo tiempos de respuesta casi inapreciables.
El principal cambio visible en esta función es, sin duda, un soporte de red completo y versátil, al que pronto dedicaremos algún que otro artículo.
También salta a la vista una nueva gestión de ADCs mucho más precisa y con la posibilidad de aplicar conversiones numéricas directamente sobre la lectura del valor. De este modo, la lectura de las magnitudes puede hacerse directamente, dejando obsoleto el incómodo mecanismo de traducción de valores de la interfaz de OpenDomo.
La siguiente novedad será muy bien recibida por aquellos usuarios de perfil más técnico que hayan sufrido las complicaciones de montar circuitos usando electrónica industrial o PLCs, y consiste en la posibilidad de realizar operaciones (por ahora lógicas y aritméticas) entre puertos en tiempo real. A primera vista puede no parecer una necesidad vital, pero aquellos que queráis realizar un automatismo que se base en más de una entrada seguramente necesitaréis recurrir a estos mecanismos.
A pesar de todas las novedades y mejoras, esta no es más que la versión 0.5.0 de Domino, y por tanto queda mucho camino que recorrer. Durante los próximos días lo seguiremos mejorando y publicaremos las correspondientes revisiones. Nuestra prioridad será la integración máxima con OpenDomo, que según nuestra planificación debería materializarse con la publicación de las versiones 0.8.8 de OpenDomo y 0.6.0 de Domino, ambas previstas para principios de verano.
Comments
Nuevas funcionalidades
Ante todo felicidades y gracias por esta nueva versión.
Me gustaría saber como puedo acceder a la documentación para el uso de las nuevas funcionalidades, sobre todo las operaciones aritméticas y lógicas.
Tienes toda la razón
La documentación correspondiente se publicará en el manual de referencia, dentro de la sección Comandos de Domino, pero aún no la he podido actualizar por falta de tiempo. Antes del fin de semana la pondré al día!
Disculpa el retraso! Vaya semana de locura!! :)
Probando la nueva version ^^
Hola, estoy probando la nueva versión (me lo acabo de copiar y pegar). Y al compilar me da este error:
domino:1458: error: stray '\' in program
domino.cpp: In function 'byte groupPorts(char*, char*)':
domino:1458: error: 'ufffd' was not declared in this scope
domino:1458: error: expected `)' before 'port2_id'
Lo cual al mirar el código, se ve que se coló algo que sobra:
byte groupPorts(char* port1, char* port2){
byte i;
byte port1_id = getPortId(port1);
byte port2_id = getPortId(port2);
short pos;
char buffer[16];
if (port1_id < 0 ||Â port2_id < 0) return 101;
for(i=ANALOGPORTS+DIGITALPORTS;i<TOTALPORTS;i++){
pos = EMPORTSOFFSET + i * EMPORTSLOT;
if (eeprom_get_byte(pos + 18) > 30 && eeprom_get_byte(pos + 18) < 200) {
eeprom_set_byte(pos + 16,port1_id);
eeprom_set_byte(pos + 17,port2_id);
eeprom_set_byte(pos + 18,INS_INCREASE);
ports[i].type = 'a'; //Enable the virtual port
writef(output, flstrn(strfmt_lnk,buffer,16),
INFO, bname, port1,port2,ports[i].type);
return true;
}
}
return 501;
Acabo de eliminar lo destacado del código y ya me compila a la perfección.
Ahora probaré la nueva versión, y muchas gracias por todo.
Que raro!
Lo he comprobado un par de veces, y no aparece ese byte en el código:
http://code.google.com/p/opendomo/source/browse/trunk/opendomo-control/a...
Tal vez se trate de algún problema con el SVN de GoogleCode (no sería la primera vez).
Pues si, ahora lo volví a
Pues si, ahora lo volví a mirar y sale bien.
De todas formas sigo sin ver en grados la temperatura, pero ahora si me carga valores más variados. Voy a ver si consigo instalar desde cero la ultima versión de opendomo y vuelvo a iniciar todo el proceso. Porqué también sigo con el problema de que no me actualiza los valores de los puertos. Ya que tengo en el 3 digital un relé, linkado al puerto 5 con el pulsador. Y esto me funciona perfecto. Apago y enciendo con cada pulsación, o tambien puedo apagar o encender desde opendomo. Pero si enciendo desde opendomo y apago desde el pulsador, al volver a cargar la página de los controladores me sale como si estuviese encendido y estoy seguro que eso hace unos días me funcionaba bien. Así que no se que pude tocar. (aun no tuve tiempo de leer las novedades y ultimas respuestas por si ya fue solucionado).
Edito: Justo acabo de mirar en los manuales de paso a paso, y ya tengo la temperatura en grados. Muchas gracias por ponerlo tan fácil para torpes como yo.
Próximo update de odcontrol
El problema de refresco lo tiengo bastante claro. La razón es porqué determinados eventos no se notifican al controlador de OpenDomo, y por tanto no consta el valor real hasta que se ejecuta el refresco automático (lo que sucede cada 10 segundos, normalmente). Si durante este tiempo se ha producido un cambio, aunque refresques la página no lo verás.
Esto se debe, muy posiblemente, a un minúsculo cambio de sintaxis que se ha producido con el salto de versión, y para el que el driver odcontrol_domino no ha sido adaptado. Tan pronto como salga la próxima versión de odcontrol el problema quedará definitivamente saldado.
Por cierto, muchas gracias por tu feedback; esto es lo que nos ayuda más para mejorar OpenDomo!
version
No se si lo volveré a tener mal bajado, pero por curiosidad puse "ver" para saber la versión. Y me salen bastantes carácteres raros despues de poner la versión.
I:ÿÿÿÿÿ.versn 0.5.0 [óü÷ö7ÛûN\
wîøõÇGÒç#³ãÿ=¿÷üïÿvöwúÿÕÍÚ}«<î÷^jÿÛ¿þ÷ó~Zn}»µïk9é.ÃÿónjlMÏóß±Iv.߯_u§õåù°Ñøõ~éØöýËùüÕ³Ûméúfǽó¯«×3eäúwõ|ßý¶s¿³»öÝe?Ö_âózíúÌþQ>Ýãg)ºþ
ôS׫¾«ÿßGï?Þ¯k~kWö÷æøÎù׿¼õÏÜÕíÿmn5[÷Þ{{9×{÷óOË®ïëý}ûï5ÿï{Þ»ôþõrîvç½ös~wê«ÍúO&ãþúþój9¾^no§¯ýYÇwvù²_÷_çQûܼÿõ¯pïúÌ?íß®DïíîGO~ÆdÔùì_î~÷õ¶~¾ÿÜ÷Ò?cýõ>_j1½wÈÿ»-Þ«ûíMÝþi~þÿjkßnk}ÿ¾wóÿomýýÔíýµÿ:¾w¼í
üï«Úÿö¾÷ɦϽÿÝùÁÒÿûæk_Ñ®®sN¿q·BõÙýý÷?ìæ¯ºü~m«Ööáúÿ]sÿ·²ÃÛéW^öß;úsÝÍ^_;¹¿ô;û¦ì_Ô̶Þ~ïoÞ)®]ù¼ïϹ÷?_zi¿îÿg÷ù{¿YH¬öï²6¾ØoÏüßuÿî·ïñþíîéÿ[ü?Oÿ®¶{÷ëë~¾/z<øo_ûÄÚ¿·¹þKÚÓËé9ï÷õóö¸ÿTû«î+ûÛýÎÞk¦=óöwÓÿ|ÏþÜ8êr¸åÿóì÷©½ç¯VÞ$OÙçòùqËVÖØÿúë÷ÏÿzOÉËÕéï¦;ý_Îû×¾ýôì¼Ü¢ÏÐüsNçÛíÏáíÿ»ó©º©ÿ¶
I:ÿÿÿÿÿ.bdate Apr 13 2011 Íüî¯={ºÎúÅ¥ßÿÏáa]ÿuÛ×ßÛþ)qSÿæùõ"ò¸{£úùÏ·ñþ®W=zgWZÿ÷ßÿ×ù`ÏÿïêyÉ»òÍïö*ê?¼ÝlrÏýIûñóÏKäç9ê½ï|ó^Ý¿õéíï7<ízýsÿ _ý¶õ¯}9ÿͪMfѾ·ýÞ¿ÿ:s÷½ÿ>»û¦oë}yûÊ*½åý{ßéßîÓ}ë~ûѶû-ü¬æ·þç{Ú_ºÿûµèïû]Ðïgõ¬íµý2²ýýM=ÿÙ¥±ÿØvëÛß+l·µÿ9ؼ{üýÅÝÄþ³ýUöxþ¯êÿïÅþ~õ[{å ½Ñc-þ¡ÎÜ[óü÷ö7ÛûN\
wîøõÇGÒç#³ãÿ=¿÷üïÿvöwúÿÕÍÚ}«<î÷^jÿÛ¿þ÷ó~Zn}»µïk9é.ÃÿónjlMÏóß±Iv.߯_u§õåù°Ñøõ~éØöýËùüÕ³Ûméúfǽó¯«×3eäúwõ|ßý¶s¿³»öÝe?Ö_âózíúÌþQ>Ýãg)ºþ
ôS׫¾«ÿßGï?Þ¯k~kWö÷æøÎù׿¼õÏÜÕíÿmn5[÷Þ{{9×{÷óOË®ïëý}ûï5ÿï{Þ»ôþõrîvç½ös~wê«ÍúO&ãþúþój9¾^no§¯ýYÇwvù²_÷_çQûܼÿõ¯pïúÌ?íß®DïíîGO~ÆdÔùì_î~÷õ¶~¾ÿÜ÷Ò?cýõ>_j1½wÈÿ»-Þ«ûíMÝþi~þÿjkßnk}ÿ¾wóÿomýýÔíýµÿ:¾w¼í
üï«Úÿö¾÷ɦϽÿÝùÁÒÿûæk_Ñ®®sN¿q·BõÙýý÷?ìæ¯ºü~m«Ööáúÿ]sÿ·²ÃÛéW^öß;úsÝÍ^_;¹¿ô;û¦ì_Ô̶Þ~ïoÞ)®]ù¼ïϹ÷?_zi¿îÿg÷ù{¿YH¬öï²6¾ØoÏüßuÿî·ïñþíîéÿ[ü?Oÿ®¶{÷ëë~¾/z<øo_ûÄÚ¿·¹þKÚÓËé9ï÷õóö¸ÿTû«î+ûÛýÎÞk¦=óöwÓÿ|ÏþÜ8êr¸åÿóì÷©½ç¯VÞ$OÙçòùqËVÖØÿúë÷ÏÿzOÉËÕéï¦;ý_Îû×¾ýôì¼Ü¢ÏÐüsNçÛíÏáíÿ»ó©º©ÿ¶
I:ÿÿÿÿÿ.build 00:38:23 ïÅþ~õ[{å ½Ñc-þ¡ÎÜ[óü÷ö7ÛûN\
wîøõÇGÒç#³ãÿ=¿÷üïÿvöwúÿÕÍÚ}«<î÷^jÿÛ¿þ÷ó~Zn}»µïk9é.ÃÿónjlMÏóß±Iv.߯_u§õåù°Ñøõ~éØöýËùüÕ³Ûméúfǽó¯«×3eäúwõ|ßý¶s¿³»öÝe?Ö_âózíúÌþQ>Ýãg)ºþ
ôS׫¾«ÿßGï?Þ¯k~kWö÷æøÎù׿¼õÏÜÕíÿmn5[÷Þ{{9×{÷óOË®ïëý}ûï5ÿï{Þ»ôþõrîvç½ös~wê«ÍúO&ãþúþój9¾^no§¯ýYÇwvù²_÷_çQûܼÿõ¯pïúÌ?íß®DïíîGO~ÆdÔùì_î~÷õ¶~¾ÿÜ÷Ò?cýõ>_j1½wÈÿ»-Þ«ûíMÝþi~þÿjkßnk}ÿ¾wóÿomýýÔíýµÿ:¾w¼í
üï«Úÿö¾÷ɦϽÿÝùÁÒÿûæk_Ñ®®sN¿q·BõÙýý÷?ìæ¯ºü~m«Ööáúÿ]sÿ·²ÃÛéW^öß;úsÝÍ^_;¹¿ô;û¦ì_Ô̶Þ~ïoÞ)®]ù¼ïϹ÷?_zi¿îÿg÷ù{¿YH¬öï²6¾ØoÏüßuÿî·ïñþíîéÿ[ü?Oÿ®¶{÷ëë~¾/z<øo_ûÄÚ¿·¹þKÚÓËé9ï÷õóö¸ÿTû«î+ûÛýÎÞk¦=óöwÓÿ|ÏþÜ8êr¸åÿóì÷©½ç¯VÞ$OÙçòùqËVÖØÿúë÷ÏÿzOÉËÕéï¦;ý_Îû×¾ýôì¼Ü¢ÏÐüsNçÛíÏáíÿ»ó©º©ÿ¶
Eso parece
En primer lugar, debes asignar un nombre a la placa (snm board, por ejemplo), pero esto tiene pinta de desbordamiento. Si estás usando el Ethernet shield puede darse por algún problema en la gestión de memoria, pero si solamente usas Arduino posiblemente haya algún error en el código binario.
Por cierto, pronto publicaremos la versión 0.5.1 con algunas pequeñas correcciones y alguna que otra interesante funcionalidad.
Me siguen saliendo
Me siguen saliendo, incluso después de ponerle nombre a la placa y guardar. Pero de todas formas funciona a la perfección. Ayer por la noche estuve trasteando con los sensores. Probé el de temperatura siguiendo el manual y me funciona bien para lo que sería de encender la calefacción o el aire. Aunque estaría bien poder establecer los avisos de temperatura baja y alta desde opendomo. Aunque ahora que escribo esto acabo de recordar que hay x ahí un script para control del clima. Voy a buscarlo y a ver si me entero de como va y donde se debe guardar.
Y el sensor de luz también lo probé, para que cuando le tapo la luz encienda otro led.
Muchas gracias por responder siempre tan rápido y estáis haciendo un gran trabajo con todo esto. Espero poder ayudar un poco cuando me vaya enterando de más cosas.
Vaya!
Pues lo del sensor de luz no estaría mal. Avísanos si grabas algún video que lo enlazaremos desde la web.
Si, tienes un manual de ejemplo, y solamente tienes que cambiar los rangos de aviso para adaptarlo a tus necesidades.