Planet

Avanzando con la nueva versión de la librería

Para hacer mas fácil la configuración de los elementos X-10 que se vayan a utilizar con Arduino esta nueva versión de la libreria 1.3 no necesita una posterior configuracion. Dado que tenemos 13 salidas digitales estas salidas se corresponden con los elementos del 1 al 14 (el 0 queda reservado para funciones especiales de configuracion). [...]

Roadmap

El proyecto quedó de la siguiente manera: ahora mismo puedes coger un Arduino instalarle las librerias de OpenDomotica, instalar Mister House junto con las librerías de Arduino, añadir los elementos X-10 que controlarán los arduinos y configurar Arduino con los mismos parámetros de la configuración con Mister House. Esto que para las personas que trabajan [...]

Continuación del proyecto

Después de casi 2 años de inactividad retomo el proyecto. Para retomar el proyecto por donde lo dejamos mis ideas generales son: Portar las librerías a la plataforma Pinguino (www.piguino.cc) por si alguien no la conoce. Utilizar Zigbee para crear una red mesh domótica. Paquete domótico listo para usar. El salto de la plataforma Arduino [...]

Usar interrupciones con Arduino.

Me he enterado de que en Arduino habían incluido el uso de interrupciones de una forma bastante sencilla.
Arduino, tiene dos fuentes de interrupciones externas, los pines 2 y 3. Eso quiere decir que al producirse un evento(configurable) en alguno de estos pines, se interrumpirá al Atmega y se ejecutará el código asociado a esa interrupción.
Para declarar una interrupción lo haremos en el cuerpo del setup, de la siguiente forma:
/* attachInterrupt(A, B, C)
* A   can be either 0 or 1 for interrupts on pin 2 or 3.
*
* B   Name of a function you want to execute while
* in interrupt A.
*
* C   Trigger mode of the interrupt pin. can be:
*             LOW        a low level trigger
*             CHANGE     a change in level trigger
*             RISING     a rising edge of a level trigger
*             FALLING    a falling edge of a level trigger
*
* In all but the IDLE sleep modes only LOW can be used.
*/
Por ejemplo,
attachInterrupt(0, ArCanInterrupt, FALLING);
El primer parámetro define el uso de la interrupción 0, la que está en el Pin 2. Cuando en el Pin 2 se detecta un flanco de bajada(3º parámetro), es decir, pasa de 1 a 0, entonces ejecutará el código que definamos en ArCanInterrupt().
Por ejemplo,
void ArCanInterrupt()
{
//Almacenamos el mensaje en el buffer_rx
ArCan.get_message_rx_buffer()
}
En las próxima versión de la librería estará incluido el uso de interrupciones.
Consejo: El código que se ejecuta en una interrupción debe ser lo más rápido posible.

Interrupciones!

El mcp2515, el CanController que monta ArCan, tiene un buffer interno con capacidad para alojar 2 mensajes CAN, si nuestro programa fuera muy lento en ir recogiendo esos mensajes, llegaría un punto en el que empezaríamos a perderlos. Así que solo tenemos dos alternativas, hacer programas muy rápidos, que no siempre será posible, o usar interrupciones.
¿Qué es eso de interrupciones? Una interrupción, como su propio nombre indica, significa eso, interrumpir, sacar al micro de lo que está haciendo y obligarle a atender un evento nuevo, es decir, a procesar la interrupción. Una vez que ha terminado, volverá al punto en el que estaba antes de producirse dicha interrupción como si no hubiese pasado nada.
¿Qué mejora aporta el uso de interrupciones en ArCan? Antes, si llegaban mensajes muy rápidos era posible perder algunos, sin embargo, con el uso de interrupciones lo que podemos hacer es que siempre que llegue un mensaje lo almacenamos en un buffer, así no dejamos que se sature el buffer interno del mcp2515, y cuando podamos los iremos procesando. De esta forma es prácticamente imposible que perdamos información.
Voy a estudiar la forma de usarlas con ArCan… en breve os daré noticias, estad atentos!

Librería v1.10

Estoy retomando el proyecto, una vez más… y estoy reescribiendo el código de la librería. Me estoy basando en la v1.10 que había publicado hace bastante tiempo.
He estado navegando por mi propio blog y veo que en su momento subí está versión de la librería, mencionando solo la mejora para elegir la velocidad del bus, pero esta no es la única modificación que tiene implementada, la 1.10 tiene cambios sustanciales, no solo es el hecho de poder elegir la velocidad, esta librería tiene la estructura para trabajar usando interrupciones, en lugar de un polling al pin 9, ArCan_INT.
Esta versión es beta y no está probada correctamente por lo que desaconsejo su uso, la mejor opción es basarse en la versión 1.00, que está bastante probada y funciona.
Durante los próximos días estaré trabajando sobre el código de ArCan, podéis seguir los cambios a través de la página del proyecto alojada en Sourceforge, además, por su puesto, desde el blog, donde os mantendré informado.
Un saludo y perdonar las molestias.

II Hackaton

Solo he tardado 2 años y medio en publicar la segunda entrada del blog. Y es en honor a la segunda edición del Hackaton. Si alguien pasa por aquí: ¡saludos!

de vuelta al buen camino ya por fin

Después de esta dos años trabajando y de sacarme las asignaturas que me quedaban a “tronpicones” y con muchos litros de café en el cuerpo.
Ya por fin solo me queda el PFC para ser ingeniero.
así que el proyecto va ha experimentar un cambio radical.
Un saludo.
 
NO HAY EN EL MUNDO PEOR BANCARROTA QUE LA DEL HOMBRE QUE HA PERDIDO EL ENTUSIASMO.
Eugenio d’Ors Rovira

LaTeX para la documentación

Para evitar acabar sin documentación o terminar escribiéndola en jornadas marathonianas al final del proyecto cuando todo este programado y acabado; me he propuesto ir creándola en las mismas dosis que voy avanzando en la programación. Para ello lo primero que me he propuesto ha sido aprender un poco de LaTeX. Luego he cogido la documentación de los proyecto de fin de carrera de danigm y edulix,  para hacerme una idea y crearme mi propia base. Les doy las gracias desde aquí por su trabajo.
Por ahora esa pequeña base está hecha y he escrito una minucia en la parte introductoria. A medida que vaya creando partes interesantes también las bloguearé aquí de manera que este más accesibles para todo el mundo; pero eso ya lo dejamos para otros posts.
Hasta la próxima.

Meshias en un Proyecto de Fin de Carrera

Meshias desde hace un tiempo, aproximadamente desde Marzo del año pasado, ya cumple con las funciones básicas de descubrir rutas y responder. Aún no envía mensajes de error, ni tampoco sabemos si cumple escrupulosamente el RFC. Pero aún así es útil, de hecho le ha servido a Juan Sebastián Medina Martínez para su Proyecto de Fin de Carrera, alumno de I.T. Telecomunicaciones, esp. en Telemática, de la Universidad de Jaén. Desde aquí darle la enhorabuena por su sobresaliente en el proyecto. Utilizó Meshias como parte de su proyecto, en el que realizó muchas pruebas, que además nos sirvieron a nosotros para depurar algunos fallos.
Muchas gracias por tu colaboración, esperamos que haya sido útil y hayas disfrutado usándolo.

Distribuir contenido