CondorBoard-Android

 Sistema de Control Domótico sobre CondorBoard - Android 

= Integrantes =

= Descripción =

En los últimos años la electrónica de consumo se ha centrado en aplicaciones domóticas. Estas aplicaciones facilitan la interacción de las personas con su medio (hogar, trabajo, estudio, etc) a través de interfaces tecnológicas versátiles. El aumento constante en el numero de dispositivos electrónicos (celulares, tablets, computadores, etc), cada vez menos costosos y con mayor capacidad de procesamiento, ha permitido el desarrollo creciente de este tipo de aplicaciones.

En este proyecto se diseña un sistema domótico que permita el control de variables en el hogar. Entre las variables a controlar se encuentra el acceso de personas y la luminosidad. Adicionalmente el sistema permite visualizar el estado actual de algunas variables no controlados como la temperatura.

Los dispositivos tecnologicos utilizados en el proyecto son: La plataforma de desarrollo CondorBoard con Linux Embebido y un dispositivo móvil con soporte para el Sistema Operativo Android. La comunicación entre los componentes se realizara mediante el estandar Bluetooth, a traves de un modulo conversor Serial-Bluetooth de referencia Sparkfun BlueSMiRF basado en el integrado RN-42 de la empresa ROVING.

CondorBoard: Linux Embebido



 * Señales de entrada del sistema (INPUT)
 * "Instrucciones del Usuario": A travez de una interfaz escrita del programa el usuario podrá seleccionar entre algunas opciones de configuración del modulo RN-42 predefinidas o el enviar datos o cerrar el programa.


 * Señales de Salida (OUTPUT)
 * Configuración y Comunicación:Por medio del modulo bluetooth se puede iniciar una comunicación con otro dispositivo o se realizara correctamente la configuración de algunos parametros del modulo.

General



 * Entradas
 * Vin: Señal de Voltaje.


 * Salidas
 * Visualización LCD

Específico



 * Entradas
 * AT91C_ADC_CH0: Canal 0 ADC, Lectura de Voltaje


 * Salidas
 * AT91C_PIN_PB(10): Pin PB10 Condorboard hacia Pin RS (Register Select) LCD.
 * AT91C_PIN_PB(22): Pin PB22 Condorboard hacia Pin E  (Enable) LCD.
 * AT91C_PIN_PB(24): Pin PB24 Condorboard hacia Pin D4 (Data 4) LCD.
 * AT91C_PIN_PB(26): Pin PB24 Condorboard hacia Pin D5 (Data 5) LCD.
 * AT91C_PIN_PB(28): Pin PB24 Condorboard hacia Pin D6 (Data 6) LCD.
 * AT91C_PIN_PB(24): Pin PB24 Condorboard hacia Pin D7 (Data 7) LCD.

Algoritmo de Solución



 * Inicio: Encendido de la Tarjeta
 * Inicialización ADC-LCD:
 * Configuración ADC:
 * No HW Trigger
 * 8-bits de resolucion
 * Modo Normal
 * Prescaler Deafault
 * Canal 0 Habilitado
 * Configuración LCD:
 * Modo 4-bits
 * Solo Escritura
 * Cursor _
 * Escritura Mensajes de Introducción: Se escriben los mensajes iniciales en el LCD.
 * Iniciar Conversion ADC: Se inicia la conversión ADC. Una vez esta halla terminado, se guarda el valor obtenido para su procesamiento.
 * Obtener Unidades-Decenas-Centenas: A partir del valor obtenido en el estado anterior, se obtienen los digitos correspondientes a las unidades, decenas y centenas. Este proceso se realiza a través del algoritmo conocido como división por restas sucesivas (programado en SW), dado que el micro-controlador no soporta la división aritmética.
 * Escribir Unidades-Decenas-Centenas: Se escriben los valores respectivos de cada variable en las posiciones predefinidas.
 * Comparación Valor ADC: Se compara el valor almacenado del ADC, con rangos predefinidos dentro del código (16 rangos: uno por cada columna del LCD)
 * Actualización Barra de Estado: De acuerdo al rango obtenido para el valor del ADC, se actualiza la barra de estado. (Se escriben cuadros llenos, o se escriben cuadros vacíos según el caso.)

Se repite el algoritmo desde Iniciar Conversion ADC.

Este algoritmo es el utilizado en el Proyecto Original, para el proyecto mejorado con librerias, no es necesario realizar el paso de Obtener Unidades-Decenas-Centenas, dado que este se implemento dentro de la libreria LCD.

= Materiales =

Dispositivos Hardware

 * Tarjeta de Desarrollo CondorBoard V1.5
 * Datasheet AT91SAM9XE
 * Modulo Bluetooth RN-42
 * Datasheet

Herramientas Software

 * Compilador Cruzado para distribución de linux Agnstrong

= Código fuente =

Proyecto Mejorado (Con Librerias)

 * Archivos Programación
 * dataflash_condorboard.bin ([[Media:dataflash_condorboard.bin|Download]])


 * Archivos Fuente (Todos ([[Media:Libreria_LCD+Ejemplo.zip|Download]]))
 * Librería LCD
 * lcd.h (header)
 * lcd.c (Para la descripción de las funciones ver este archivo)
 * Programa Ejemplo con Libreria
 * condorboard.c

Para la inclusión de la libreria dentro del Proyecto es necesario realizar los siguientes pasos:

1. Incluir el header de la libreria (lcd.h) en el proyecto principal y dentro de la carpeta include.

2. Incluir el archivo fuente de la libreria (lcd.c) dentro de la carpeta drivers.

3. Modificar el makefile así: ([[Media:Makefile.txt|Download]])

= Vídeos y fotos de demostración =


 * Conexión CondorBoard -- LCD


 * Montaje Realizado

kAjNHbuGgrA
 * Demo

= Resultados =

El proyecto propuesto se realizó satisfactoriamente. Se cumplió el objetivo propuesto en la descripción. Adicionalmente se portó la librería lcd, utilizada como referencia, a la CondorBoard en su totalidad.

Trabajos futuros

 * Estudiar el manejo de las interrupciones para realizar una implementación con posibilidad de selección entre los distintos canales del ADC.
 * Portar por completo la libreria del LCD, utilizada como referencia, hacia la Tarjeta de desarrollo CondorBoard. [Done]

= Bibliografía =


 * AT91SAM9XE Datasheet - ATMEL Descargar