martes, 25 de noviembre de 2014

Los principios de la domótica

Con el fin de explicar como trabajar con arduino y para ver rápidamente ejemplos prácticos voy a disponer de un ejemplo con el que, con un poco de maña, podremos encender las luces o cualquier cosa desde nuestro ordenador.

Lo primero será ver un ejemplo básico, algo tan sencillo como encender un led en arduino es más importante de lo que parece.

/*
  Parpadeo
  Enciende un led por 1 segundo, lo apaga por otro y así repetidamente.
 
  Éste código de ejemplo es de dominio público
 */
 
// Vamos a colocar un led en el pin 11
// Pero puede estar colocado en cualquier salida digital de arduino
int led = 11;

// Setup es la rutina que se inicia una vez que pulsamos el botón reset de la placa
void setup() {                
  // Inicialización de las variables
  pinMode(led, OUTPUT);     // Con output definimos el pin de led como uno de salida
}

// Loop es la rutina que se ejecuta en bucle continuamente.
void loop() {
  digitalWrite(led, HIGH);   // Encendemos el led
  delay(1000);               // La placa espera 1000ms (1s), por lo que el led permanecerá encendido
  digitalWrite(led, LOW);    // Apagamos el led
  delay(1000);               // Esperamos por otro segundo
}

Me he tomado la molestia de traducirlo y cambiar el pin del led, puesto que en el ejemplo original usan el pin 13, que es (además de un pin más) un led integrado en la propia placa. Para evitar confusiones he colocado el led en el pin 11.

Las fotos de este tipo estarán tomadas con el móvil y en una placa quemada.
Se siente, las cosas que funcionan están bien puestas y no voy a desmontarlas xD


El ejemplo, como se ve, es bastante sencillo. Lo único que hace es encender y apagar continuamente un led pero, ¿y si en vez de ser un led fuese una bombilla? Además, nos podemos comunicar con arduino por bluetooth, ethernet o puerto serie, entonces ¿y si en vez de ser un parpadeo constante, le decimos nosotros mismos cuando encender o apagar?

Para la primera interrogante hay una respuesta muy sencilla: un relé de 5v.

El funcionamiento de un relé es como un interruptor, pero controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un contacto que permite abrir o cerrar otros circuitos eléctricos independientes.

Hay otras formas obtener nuestro "interruptor digital", pero con esta tenemos la ventaja de que nuestro circuito no se va a quemar con la tensión ya que se trata de un circuito independiente. También tenemos la desventaja que, por el funcionamiento interno del relé (la bobina o el electroimán), vamos a tener un ligero retardo en las acciones, pero teniendo en cuenta que si encendemos y apagamos rápidamente una luz podemos fundirla, esta latencia no es importante a mi parecer puesto que los tiempos de encendido-apagado siempre van a ser mayores.

Entonces, dicho esto, ¿cómo cambia nuestro circuito?

Los relés tienen 3 entradas por parte de arduino para controlarlo (VCC, GND, IN), así que conectaríamos de ésta forma: VCC=5V, GND=GND e IN=pin 11 (o cualquier otro pin digital, el que hayamos indicado en el programa).

En cuanto a las conexiones de la parte del relé, bastaría conectarlo como si fuese un interruptor de toda la vida, es decir, un cable paralelo que vaya del enchufe al aparato eléctrico (bombilla o lo que sea) y de uno de los paralelos, cortarlo y conectarlo al relé. Como veo que soy horrible explicando las cosas, mejor hacer un pequeño dibujo ilustrativo.

Con esto, nuestro programa ya sería capaz de encender luces de verdad, abrir una persiana o encender cualquier otro aparato eléctrico sin problemas. Pero seguiría dependiendo de lo que estuviese programado a priori.

Para solucionar esto, nuestro programa debe ser más complejo y es cuando se trata de echarle imaginación dependiendo de lo que estemos interesados en hacer. Pensaba mostrar como hacerlo en ésta misma entrada, pero prefiero hacer entradas más cortas y centradas en un solo objetivo. En cuanto pueda: reconocimiento de instrucciones en arduino mediante serial.

miércoles, 19 de noviembre de 2014

Sobre arduino

No se me ocurre mejor forma para empezar que retomar la primera entrada del cuaderno de bitácora cuando empecé todo éste proyecto porque... por algún lado había que empezar.

Antes de la llegada de la famosa Raspberry Pi se hablaba mucho sobre Arduino pero, ¿qué es?

Arduino sigue las reglas de Wiring. Es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas con un entorno de desarrollo que implementa el lenguaje de programación Processing.

Esta plataforma nos permite poder hacer todo tipo de proyectos sin tener que adquirir una licencia. Es bastante sencilla de programar y sus tutoriales se extienden por toda la red de redes, así que nos vendrá muy bien para empezar con algo entre las manos.

Otro punto a favor de esta plataforma son sus diferentes versiones para los diferentes usos que les queráis dar o el presupuesto económico que tengáis.
Podréis encontrar todas las versiones en su web (os la pongo en inglés puesto que la versión española no está actualizada)

Yo personalmente, escogí la Mega2560 puesto que su memoria, sram y número de pines me convenía para un proyecto en expansión.

Pero, ¿que es eso del lenguaje Processing?

Vamos por partes,
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital.

Es con Processing donde sacamos el potencial del Wiring:
El wiring es una plataforma de prototipado electrónico de hardware libre compuesta por un lenguaje de programación, un entorno de desarrollo integrado (IDE) y un microcontrolador.

Y así es como trabaja arduino, programando procesing en el IDE. Con el uso veremos que es bastante intuitivo y, con la ayuda que nos proporciona Arduino en su propia web, seremos capaces de dar nuestros primeros pasos:



Creo que con éste empiece podremos ir paso a paso entendiendo el proyecto Riatla. Para la próxima entrada daré algunos ejemplos básicos con los que veréis que la domótica no es tan complicada como parece.

sábado, 15 de noviembre de 2014

Presentación

Presentación y excusas:

Soy AltairMikoto, álter ego de Kevin Revuelta, y os encontráis es el blog del Sistema Riatla, mi servidor.

La mayoría no me conoceréis, los que sí, veréis que aquí estamos (otra vez) tratando de empezar de cero. La excusa: mi escasa velocidad de subida a Internet y por ello la imposibilidad de crear un blog adecuado con medias de calidad en mi servidor casero. Solución: un blog externo al servidor, con los servicios adecuados y la ventaja de no estar sujeto a las caídas y fallos de meterle mano cuando no quiere.



Futuro incierto y pensamientos alocados:

Como siempre está el gran interrogante: ¿Para qué demonios voy a usar el blog? Ante todo hay que dejar claro que este será el blog del Sistema Riatla, por lo que trataré de ceñirme sólo a la creación del sistema, cosas relacionadas y de interés. Y así, de esta forma, tratar de documentar un poco todo el sistema.


Os pido encarecidamente paciencia para las publicaciones, nunca he sido muy dado a ellas y suponen un esfuerzo y consumo de tiempo del que a veces no dispongo.


Y con esto me despido por el momento, tened un buen día y gracias por leerme. Pronto empezaré a publicar.