Archivo de Febrero 2009

h1

El proyecto empieza a crecer.

22 Febrero 2009

Llega un momento importante en el proyecto, se está empezando a cumplir el primer objetivo del proyecto que era crear una comunidad activa desarrollando un sistema domótico. Gracias al blog he contactado con Carlos Castillo, informático de Velezuela interesado en la idea de este proyecto. Desde ahora vamos a abrir una nueva etapa en Opendomotica, vamos a estudiar cuales de los frentes va a desarrollar él y crearemos una nueva rama en el proyecto. Esto tiene buena pinta.

Decir que las ayudas son bienvenidas y que cualquiera que quiera colaborar con el proyecto puede hacerlo, entre todos podemos hacer esto grande.

También me gustaría agradecer el apoyo a Daniel Bernat. Aquí dejo su web:  http://dabergi.webs.upv.es/wordpress/

Acaban de terminar los exámenes y ahora estoy más fuerte que nunca con el proyecto. Actualmente estoy aprendiendo Perl para poder desarrollar la librería, espero que dentro de poco pueda enseñar algo.

Un saludo.

h1

Arduino (IV) Tipos de conexión

15 Febrero 2009

En época de exámenes queda poco tiempo para el proyecto, pero he sacado algún hueco para hacer un pequeño repaso por los tipos de comunicación que podemos establecer con un arduino.

Anteriormente hemos hecho un repaso por los distintos tipos de Arduino que existen y atendiendo a su clasificación vemos que la diferencia más destacable entre ellos es el método de conexión del que disponen. Por lo tanto atendiendo a el tipo de conexión nos encontramos estos tipos de comunicación entre otros:

  • USB
  • Puerto serie
  • Bluetooth
  • Ethernet
  • Zigbee

Para el proyecto que desarrollamos, vamos a utilizar el puerto serie.

h1

Arduino (III) Gama de Arduinos

8 Febrero 2009

Unas entradas atrás (http://opendomotica.wordpress.com/2009/01/18/arduino-i-porque-arduino-duemilanove/) tuve que hacer la decisión de cual de las distintos modelos de Arduino elijiría para el proyecto. Como ya dije me quedé con el Duemilanove. En la decisión nombre a los Arduino que había analizado por eso he considerado importante recopilarlos a todos en un documento poniendo una pequeña descripción junto con una foto. La he subido a la forja, aquí dejo la dirección:

http://forja.rediris.es/frs/download.php/1110/GamaArduinos.pdf

h1

Arduino (II) Empezando con Arduino.

1 Febrero 2009

Como es habitual cuando estamos aprendiendo un lenguaje de programación, compilamos nuestro primer programa como un “Hola mundo”, en esta ocasión para que Arduino me salude hice parapadear un Led. No publico su código porque está en la documentación de Arduino. Ahora voy a presentaros alguna de las funciones que me acompañarán a lo largo del proyecto, estas son las funciones para utilizar el puerto serie.

En primer lugar Arduino requiere unos requisitos necesarios, una instalación para empezar a recibir/enviar información codificada en ASCII. Esta instalación no es más que indicar el número de puerto de comunicaciones que estamos utilizando y la velocidad de transferencia en baudios (enlace). Esta instalación se hace utilizando la función Serial.begin(velocidad de transferencia en baudios).

Enviando por puerto serie

Para enviar, después de haber preparado todo para la comunicación sólo tenemos que utilizar las funciones Serial.print(VAR), para enviar por puerto serie lo que se encuentre en la variable VAR.

Aquí un ejemplo básico:

int interruptor = 0; // inturruptor conectado al pin 0
//Instalacion
void setup() {
  pinMode(interruptor, INPUT);  // pin 0 como entrada
  Serial.begin(9600);         // empieza la comunicacion a 9600bps
}
void loop() {
  if(digitalRead(interruptor) == HIGH)  // si el interruptor esta ON
  {
    Serial.print(1);                  // envia 1
  }else{
    Serial.print(0);                  // en otro caso envia 0
  }
  delay(100);                         // espera 100ms
}

Este programa enviará 1 si el interruptor esta cerrado y 0 si el interruptor está cerrado.

Recibiendo por puerto serie

Para recibir, al igual que con cualquier operación que requiera el uso del puerto serie, después de iniciar la comunicación tendremos todo listo para usarlo. Ya sólo tenemos que utilizar la función Serial.read() para leer el puerto.

Aquí un ejemplo básico:

int ledpin = 1;
//Instalacion
void setup() {
  pinMode(ledpin, OUTPUT);  // pin como salida
  Serial.begin(9600);       // empieza la comunicacion a 9600bps
}
void loop() {
  char val;
  if( Serial.available() )       // si la informacion esta lista para leer
  {
    val = Serial.read();         // leerla y guardarla en 'val'
  }
  if( val == 'A' )               // si 'A' es recibido
  {
    digitalWrite(ledpin, HIGH);  // enciende el led
  } else {
    digitalWrite(ledpin, LOW);   // en otro caso apagala
  }
  delay(100);                    // espera 100ms
}

Este programa lee el puerto serie y si recibe una A, encenderá el led en otro caso lo apagará.

Para descargar los programas aquí:

http://forja.rediris.es/frs/download.php/1091/enviandoPuertoSerie.pde

http://forja.rediris.es/frs/download.php/1092/recibiendoPuertoSerie.pde