Elección del microcontrolador 10






descargar 58.24 Kb.
títuloElección del microcontrolador 10
fecha de publicación30.09.2015
tamaño58.24 Kb.
tipoLección
m.exam-10.com > medicina > Lección
c:\users\rafgomgar\downloads\pic001.gif

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA

IntelliRoom: Domótica

Realizado por:

Rafael Gómez García

Para la obtención del título de

INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN

Dirigido por:

Daniel Cagigas Muñiz

Pablo Íñigo Blasco

Realizado en el departamento de arquitectura y tecnología de computadores (ATC)

Convocatoria de Junio, Curso 2010-2011

Contenido


En relación a la asignatura: Proyecto fin de carrera 3

¿Cómo surgió la idea? 3

¿Qué se pretende con IntelliRoom? 3

Objetivos que pretendía con el proyecto 3

Habilidades o conocimientos adquiridos con el proyecto 3

Agradecimientos 5

Introducción a IntelliRoom 5

Requisitos de IntelliRoom 5

Requisitos Software 5

Requisitos Hardware 5

Objetivos del proyecto 6

Arquitectura Lógica Básica 6

Presentación 6

Lógica de negocio 7

Datos 7

Arquitectura Hardware 9

Hardware: control de luz y eléctrico 9

Planteamiento de hardware para circuitos de control de iluminación y eléctrico. 9

Elección del microcontrolador 10

Requisitos 10

PIC 16F1828 / 16D1824 11

Arduino 13

Programa para control de luz 14

Aislamiento de Arduino con LEDs 14

Esquemáticos 15

Protocolo de envío de mensajes: 16

Para concluir 17

Control de dispositivos electrónicos 17

Módulo Arduino 18

Objetivos 18

Casos de usos relevantes 18

Creación de conexión Serial 18

Procesamiento de un mensaje 18

Diagrama de diseño 19

Módulo Voice 19

Introducción 20

SAPI 20

Objetivos 20

Casos de uso relevantes 21

Sintetizar 21

Añadir gramática 21

Línea de proceso de Reconocimiento 21

Diagrama Diseño 21

Módulo Media 21

WMP SDK 21

Objetivos 21

Casos de usos relevantes 22

Cargar librería de música 22

Diagrama de diseño 22

Módulo Camera 22

OpenCV / EmguCV 22

Objetivos 22

Casos de usos relevantes 23

Diagrama de diseño 23


En relación a la asignatura: Proyecto fin de carrera


[INTRODUCCION DEL APARTADO]

¿Cómo surgió la idea?



¿Qué se pretende con IntelliRoom?



Objetivos que pretendía con el proyecto


  • Conocer la plataforma .NET, en concreto conocer más a fondo el lenguaje C#

  • Utilizar librerías como SAPI y OpenCV para el tratamiento de Imagen/sonido

  • Microcontroladores / Electronica


Habilidades o conocimientos adquiridos con el proyecto


  • En relación con la plataforma .NET

    • El conocimiento con cierta profundad en lenguaje C#

      • Reflexión

      • Linq

      • Threads

      • Peticiones HTML

      • Parseado de XML

      • Serialización

      • Comunicación por puerto serie

      • Suscripción y creación de eventos

      • Manejo de monitores

      • Utilización de librerías externas/Wrappers

      • Internacionalización del sistema

    • Visual studio 2010

      • Uso de su potente debugger y nuevas características como puede ser IntelliTrace

      • Generación de diagramas de UML con .NET

  • Tratamiento de imagen y sonido

  • Arduino

    • Utilización de la plataforma

    • Conocimientos básicos de cómo está construida su placa

    • Desarrollo en su lenguaje Processing/Wiring:

      • Sintaxis básica

      • Utilización de interrupciones

      • Librerías externas

  • Microcontroladores

    • He entrado de manera discreta en el mundo de los microcontroladores de la empresa Microchip, conociendo un poco su estructura interna, características y funcionamiento.

    • Me he adentrado en el mundo de los grandes datasheets y he conseguido encontrar respuestas a las preguntas que se me formulaban

  • Electrónica

    • Uso de componentes básicos en la práctica

      • Resistencias

      • Transistores

      • Relés

      • Diodos

      • Reguladores de tensión

      • LEDs

      • Fuentes de alimentación

      • Placas de prototipo

  • Otros conocimientos

    • XML

    • Habilidad de encontrarte ante un problema y solucionarlo haciendo búsquedas por google o por la documentación de .NET, OpenCV, SAPI…

Agradecimientos


Por ultimo decir que mi labor no podría haber sido concluida sin la ayuda de Manuel Caballero, Pablo Íñigo Blasco, Victor…. y otros compañeros del club .NET

Introducción a IntelliRoom


IntelliRoom es un proyecto de fin de carrera realizado por Rafael Gómez estudiante de la escuela técnica superior de ingeniería informática (ETSII) en la universidad de Sevilla. IntelliRoom es un proyecto de domótica cuya idea principal es la de disponer de ciertas características que sean administradas por un ordenador principal (de uso general) que procese la información recibida por los sensores (micrófonos, cámaras…) y que la redistribuya a los periféricos (control de luz, altavoces…).

Requisitos de IntelliRoom



Requisitos Software


Para la ejecución de este proyecto se requiere tener instalado:

Para instalar el código en Arduino necesitaras compilar el código escrito en Processing/Wiring y traducirlo a uno entendible por ATMega328 y programarlo, esta tarea es muy sencilla si usamos el IDE de Arduino que podrá ser fácilmente descargarlo/instalado en la siguiente dirección: http://arduino.cc/en/

Requisitos Hardware


Ordenador capaz de soportar Windows Vista

Periféricos: (Hay que ser muy específico???????)

  • Placa Arduino

  • Micrófono

  • Cámara web

Componentes:

  • LED RGB

  • 3 Transistores NPN 2n2222

  • 3 Resistencias 1KOhm

Objetivos del proyecto


  • Interactuación máquina-usuario por reconocimiento de voz y por línea de comandos.

  • Control de color e iluminación del espacio.

  • Medición de luz y sensor de movimiento.

  • Administrador de dispositivos eléctricos.

  • Control ambiental de música o sonidos.

  • Funciones varias como: alarmas, situación climatológica…


Arquitectura Lógica Básica


He dividido la arquitectura lógica en tres niveles básicos siguiendo la estructura básica de programación por capas, quedando así: capa de presentación, capa de lógica de negocio y capa de datos, vamos a hacer una breve descripción de los apartados del proyecto.

Presentación


Es el encargado de presentar el sistema al usuario por medio de la interfaz que ofrece la interfaz de la lógica de negocio. Tiene dos módulos: GUI y Console:

  • Console: Es un intérprete de consola que interpreta comandos, veremos más adelante que tipos de comandos pueden ser ejecutados y como se ejecutan.

  • GUI: Una versión grafica que haga lo mismo que la versión de Console pero más amena para los usuarios. Podría hacerse en WindowsForm o Windows Presentation Fundation (WPF)

  • Además de estas dos alternativas podríamos publicar un servicio web para que consumiera también información del sistema.


Lógica de negocio


Es el punto central de la aplicación, que consta de dos grandes partes: nuestro motor de la aplicación (IntelliRoom) y módulos ampliables que incrementan la funcionalidad (Voice, Media, Camera…)

  • IntelliRoom:

  • Voice: Es en grandes rasgos una abstracción de la API de Microsoft SAPI (Speech API) su principal objetivo es la interpretación de ordenes usuario-maquina mediante comandos de voz y la sintonización de texto plano.

  • Media: Modulo encargado de reproducción de la biblioteca de música que tenga el usuario en la maquina principal, la librería que usamos por debajo WMPLib permite, sincronización con la biblioteca contenida en la aplicación Windows Media Player, enlaces remotos, carpetas compartidas en red…

  • Camera: Es el módulo de procesamiento de imágenes, por debajo usa Emgu CV, un wrapper de OpenCV.

  • Arduino: Modulo de envío de órdenes a la plataforma Arduino, contiene la funcionalidad de ambientación de la habitación por colores y encendido/apagado de electrodomésticos.

  • Util: Es un módulo que contiene funcionalidad variada como puede ser captura de información de clima, alarmas…

Datos


La tercera capa de la aplicación es la encargada de gestionar la información persistente (configuración y tratamiento de XML).

c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\diagrama por capas.jpg

Arquitectura Hardware


[DIAGRAMAS DE DESPLIEGUE]

[Porque esta decisión]

Hardware: control de luz y eléctrico

Planteamiento de hardware para circuitos de control de iluminación y eléctrico.


En primera instancia explicaremos el proceso que experimente hasta encontrar la solución al problema de ambientar una habitación con LEDs de colores.

Buscando información sobre los LEDs, como funcionaban, de que tipo los había (tipo de luminancia, colores, potencia) y al poco concluí que necesitaba un LED RGB o 3 LEDs emparejados a 3 (que básicamente es de lo que está constituido un LED RGB), vi varios modelos y finalmente compré este modelo.

c:\users\rafgomgar\downloads\sku_11304_1.jpg c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\led (1).jpg

La pregunta instantánea que surge es ¿Cómo consigo conectar un dispositivo que requiere una entrada analógica para la regulación del voltaje si lo que voy a tener es un circuito formado por un microcontrolador. La respuesta se llama PWM (Pulse-Width Modulation) o lo que es lo mismo “modulación por ancho de pulsos”

Formalizando un poco el concepto el PWM o modulación por ancho de pulsos es una técnica en la que modificamos el ciclo de trabajo, o duty cycle, de una señal periódica para controlar la cantidad de energía que se envía a una carga.

El ciclo de trabajo o duty cycle es la relación de tiempo que permanece la onda periódica (supongamos cuadrada) en valores positivos, veamos unos ejemplos de valores de ciclo de trabajo:

c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\pwm-duty cycle.png

De esta manera concluimos, muy intuitivamente, que el cálculo del duty cycle es:



Las aplicaciones del PWM son variadas: comunicaciones, efectos de sonido, amplificación, regulación de voltaje… Nosotros lo usaremos como regulador de voltaje que le llega al LED. Con esto ya hemos conseguido la manera de regular la potencia con la que los diodos emitirán su luminosidad. [¿¿?¿?¿].

Elección del microcontrolador

Requisitos


Además, al ser RGB necesitare que el microcontrolador que seleccionemos para el proyecto tenga como mínimo 3 canales PWM para cada uno de los canales de colores.

Después de tener más o menos claro lo que necesitábamos para la parte de electrónica, era el momento de decidirse por un microcontrolador del mercado. Para encontrarlo primero definí lo que quería para no partir de búsquedas muy complejas. Aquí dejo la lista de las características mínimas que buscaba:

  • 3 PWM: para las componentes R G B del LED

  • 8 bits: Puesto que 28 valores para la componente roja, 28 para la verde y 28 para la azul hacían un total de más de 16 millones de colores posibles, en concreto 16.777.216 colores, no necesitaba tantísima precisión así que nos quedamos con 8 bits.

  • Al menos 5 o 6 salidas lógicas para la conexión de al menos 5 enchufes

  • Comunicación serie y otros patillajes.

  • Económico


PIC 16F1828 / 16D1824


Después de una semanas de búsquedas y por recomendación de un compañero me decante por dos microcontroladores relativamente nuevos de la empresa Microchips, el PIC 16F1828 para el apartado de iluminación y el PIC 16F1824 para el apartado de control eléctrico.

Ambos microcontroladores son iguales en características, solo se diferencia en el hecho de que el patillado de 16F1828 está menos multiplexado que el del 16F1824, como podemos ver en las figuras a continuación:





Estos microcontroladores cumplían y superaban las características de la lista, tenían 4 + 2 timers para hacer PWM: 4 timers y 2 de ellos con salidas clonadas, 8 bits, salidas lógicas de sobra y un precio no superior a los 80 céntimos.

Tan pronto como me decante por este modelo me puse a trabajar en la configuración del patillaje, llegando a la siguiente configuración:


c:\users\rafgomgar\desktop\pfc\lampara\microcontrolador entradas y salidas.png



  • VDD y VSS: Alimentación.

  • OSC1, OSC2: Cristal de cuarzo.

  • MCLR/VPP, ICSPDAT, ICSPCLK: Programación.

  • CCP1 al 4: PWMs.

  • TX, RX: Interfaz con puerto serie.

  • SDI, SDO, SCK, INT y uno de los terminales libres: Interfaz con el transceptor por radio. El INT se conectaría al IRQ del transceptor, de forma que cuando haya datos para procesar se avise al microcontrolador y los pueda leer.

  • DACOUT: Salida del DAC, podría servir para emitir sonidos, por ejemplo si perdemos la conexión por radio.

Ahora solo nos quedaba entrar en la programación del microcontrolador, me instale el IDE de Microchip que ¡daba soporte parcial a los micros!, y ya empezaron los problemas. Nadie había creado un compilador en C para estos micros, puesto que eran bastante nuevos, y puesto que el IDE no daba casi soporte me vi en la necesidad de buscar alternativas, utilizamos durante un tiempo un simulador para PICs, y nos pusimos manos a la obra. Escribimos el código en ensamblador necesario para comunicarnos con el microcontrolador y en el momento de querer hacer pruebas llegamos a otro problema, ¿Cómo programamos el microcontrolador? Los programadores eran bastante caros para 2 o 3 usos que le íbamos a hacer y en los departamentos no había ninguno para productos de Microchips así que decidimos hacernos uno nuestro.

Un compañero de la universidad me ayudo a buscar información y diseñó el posible programador, es más, la finalidad del trabajo era que fuera un programador universal, dejo el esquemático:

c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\programador.png

Al final entre problemas decidí que era mucho más costoso utilizar un microcontrolador que requería de programadores que eran caros o difíciles de fabricar, además, mi formación en electrónica no era tan buena como para a día de hoy asegurar que este programador funcionaría, por lo que cambie la trayectoria del proyecto dirigiéndome a Ardunio.

Arduino


Arduino es una plataforma de hardware libre basada en una placa con un microcontrolador, en mi caso el ATMega328, y un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring (aunque es posible utilizar otros muchos lenguajes). Processing/Wiring tiene una sintaxis muy amena que permite, en pocas horas, desarrollar proyectos completos.

Características de Arduino:

  • 14 pines digitales configurables a entrada o salida.

  • Puertos series Rx y Tx.

  • 2 Pines para interrupciones externas.

  • 6 PWM con 8 bits de resolución.

  • Pines de comunicación.

  • 6 entradas analógicas.

  • Otras características

Después de lo antes comentado, aunque el precio de Arduino asciende a unos 25 euros, sale bastante rentable puesto que ya tenemos a nuestra disposición una placa con funcionalidad para que el microcontrolador pueda ser programado y un microcontrolador con un bootloader ya instalado y un sistema bastante completo en lo que a funcionalidad se respecta. Además sería posible en un futuro, adquirir otros ATMega328, programarlos en la placa para, posteriormente, ponerlo en otra placa diseñada por nosotros. En SparkFun se puede adquirir el ATMega328 con el bootloader por menos de 4 euros.

Programa para control de luz


Con Arduino en nuestras manos y el IDE instalado procedemos a ver el código del programa para el control de luz y la explicación del mismo.

[PONER CODIGO Arduino v1] ¿¿?¿?PSEUDO CODIGO???¿¿?¿

El código es muy sencillo [EXPLICACION DEL CODIGO]

Aislamiento de Arduino con LEDs


Ya tenemos en nuestro poder el código y un módulo programado en C# para enviar mensajes a Arduino, ya solo nos queda un detalle: La cinta de LED tiene 54 LEDs (18 por cada color) con el consumo siguiente:

Componente R (Roja): 100 mA a 12 V

Componente G (Verde): 87 mA a 12 V

Componente B (Azul): 80 mA a 12 V

Haciendo un total de 240 mA a 12 V

Arduino ofrece 40 mA por PWM a 5 V, evidentemente no podemos conectarlo directamente:

  1. Porque muy posiblemente terminara quemándose el microcontrolador

  2. En caso de no hacerlo no le llegaría suficiente voltaje a los LEDs

Para solucionarlo seleccionamos una fuente alternativa al circuito que ofrecía 9 Voltios a 300 mA, 3 transistores NPN modelo 2n2222 para aislar el circuito y 3 resistencias de 1KΩ (posiblemente cambiadas en un futuro)

[HABLAR SOBRE EL TRANSISTOR??]

Esquemáticos


Quedando el esquema en la placa de prototipo de la siguiente manera:

c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\prototipo lampara.jpg

Y el esquema electrónico de esta manera:

c:\users\rafgomgar\desktop\pfc\documentacion\documentacion\esquematico lampara.jpg

Protocolo de envío de mensajes:


Para el envío de información hemos usado algo cómodo pero en cierto modo ineficiente, le enviamos al Arduino por puerto serie una cadena de caracteres, por lo que por cada carácter le llega 8 bits, de momento vamos a trabajar con este protocolo.
Formato general

La conexión entre la aplicación general y Arduino se hace de la siguiente manera:

Se hace el envío de una cadena que tiene la siguiente estructura:

[FUNCION] [Arg1] [Arg2]… [Argn]
Modo directo

Nombre función -> DIRECT

R -> Valor color Rojo, en tamaño byte

G-> Valor color Verde, en tamaño byte

B-> Valor color Blue, en tamaño byte
Comportamiento: Cambia de color directamente al color establecido por valores RGB

Ejemplo: DIRECT 123 220 1 -> R=123, G=220, B=1
Modo degradado

Nombre función -> DEGRADED

R -> Valor color Rojo

G-> Valor color Verde

B-> Valor color Blue

Time -> Número de milisegundos que estará degradando
Comportamiento: Cambia de color gradualmente en un tiempo de [Time] milisegundos

Ejemplo: DEGRADED 255 0 0 10000-> Tarda 10000 milisegundos (10 segundos) en cambiar a color rojo

Modo aleatorio

Nombre función -> RANDOM

RandomMode -> 0 = desactivar RandomMode

1 = activar RandomMode

TimeRandom -> Tiempo, en milisegundos que hay entre el paso de un color a otro
Comportamiento: Cambia de color gradual y aleatoriamente en un tiempo fijado de milisegundos
Ejemplo: RANDOM 1 1000-> Activamos la función aleatoria para que cambie de color cada 1000 milisegundos.

Para concluir


Creador de la librería “Mesages”

ayuda minolo??

esquemáticos realizados con Fritzing.??

Control de dispositivos electrónicos


El control de dispositivos eléctricos del hogar es otro de los apartados de IntelliRoom. En un comienzo íbamos a usar un PIC de Microchips para aislar el problema de iluminación y conexión de dispositivos, pero finalmente, al utilizar el ATMega328 tenemos muchos pines a nuestra disposición decidimos finalmente que fuera una placa Arduino la encargada de solucionar ambas necesidades.

Para ello teníamos que hacer algunos cambios en el código, ya que anteriormente solo utilizábamos Arduino para una sola finalidad.

En aspectos cuantitativos introducimos la nueva funcionalidad, el conectado y desconectado de dispositivos eléctricos. Pero en aspectos cualitativos teníamos que hacer un sistema que, en el caso de encontrarse haciendo un proceso de degradación (un proceso que ocupa la potencia de cálculo de Arduino) y en ese instante llegara una nueva orden del tipo “enciende el dispositivo 1” o “degrada a este otro color en t tiempo” fuera capaz de gestionarla.

¿Cómo hacemos esto? Muy sencillo generando una interrupción por cada mensaje que llegue por puerto serie. En ese instante Arduino trata el nuevo comando y posteriormente continuaría con el procesamiento de un posible degradado.

PSEUDOCODIGO NUEVO

¿COMPONENTES?

[Relés]

¿CIRCUITOS?

Nuevos diagramas control dispositivo

¿ORDENES?

Conjunto de nuevas ordenes

Trabajo final de Arduino

Código final

Esquemático finales (XBee??, fuente….)

Módulo Arduino


El módulo Arduino es el encargado, como su nombre indica, de controlar todo lo referente a Arduino, en dos aspectos:

  1. Comunicación con la placa Arduino

  2. Sistema de mensajería que modele los comandos que, posteriormente procese Arduino

Objetivos


Los objetivos que cumple este módulo son:

  • Tener un sistema de comunicación por puerto serie óptimo para nuestro problema y obviando detalles de configuración como pueden ser, COM al que va dirigido, cantidad de baudios por segundo, tratamiento de fallos en envío de mensajes o manera en la que se envían los datos.

  • Modelar el conjunto de funciones que hemos implementado en Arduino para que puedan ser tratadas desde IntelliRoom

Casos de usos relevantes

Creación de conexión Serial


Miramos los puertos COM disponibles

Preguntamos cual es el nuestro

Definimos velocidad a ¿¿?¿?¿ y salto de carro a ¿?¿?

Procesamiento de un mensaje


Creamos objeto Serial

Enviamos un mensaje

Llega a Arduino

Arduino procesa el mensaje

Diagrama de diseño


c:\users\rafgomgar\desktop\serial diagram.jpg

Módulo Voice



Introducción


El módulo Voice es el modulo encargado de satisfacer el objetivo de interfaz usuario-maquina por medio de la voz. Por un lado utilizaremos reconocimiento del habla para interpretar las funciones que el usuario le da al sistema y por otro, en caso de que sea necesario, un sintetizador para que el sistema informe al sistema.

El módulo Voice además implementa un patrón fachada para facilitar futuros cambios en la librería, en la actualidad el sistema utiliza SAPI (Speech API) que funciona bastante bien para el reconocimiento, aunque de momento los paquetes gratuitos de Microsoft para el SDK no contemplan el Español como posible idioma para la sintetización. Como solución a este problema podríamos instalar Loquendo o bien en un futuro utilizar Google como sintetización, pudiendo crear un sistema bastante interesante con multitud de idiomas (aunque la pega seria que necesitaríamos siempre tener internet)

SAPI


SAPI o Speech Application Programming Interface es una API para el desarrollo de técnicas de sintetización y reconocimiento de voz para aplicaciones desarrolladas en Windows. Históricamente podemos diferenciar etapas del producto, la que nosotros usaremos en el desarrollo es la 5.x que no permite ¿¿?¿retro compatibilidad?¿?¿? con las versiones de la 1 a la 4 pero una de sus novedades fue soporte para .NET desde el framework 3.0.

SAPI se divide en 3 grandes partes

Reconocimiento

Objetivos


Crear un conjunto de clases que modele el reconocimiento y sintetización en el mismo momento.

Que sea capaz de gestionar normas sintácticas y gramaticales así como la posibilidad de cambiar la sensibilidad con la que decide si una muestra escuchada pertenece a un patrón definido.

Casos de uso relevantes

Sintetizar

Añadir gramática

Línea de proceso de Reconocimiento



Diagrama Diseño


[TODO!!]


Módulo Media


El módulo Media es el encargado de satisfacer todo el conjunto de problemas relacionados con reproducción de sonidos/música y control de los mismos, para ello utilizaremos el SKD de Windows Media Player, que se integra perfectamente con el mismo, dándonos por defecto funcionalidades tan interesantes como “reproducción de archivos en la nube”, “búsquedas por su biblioteca de medios”, “soporte para un montón de formatos de audio”

WMP SDK


WMP SDK o Windows Media Player Software Developer Kit

Objetivos


  • Análisis de la biblioteca de música del usuario.

  • Reproducción de canciones de la biblioteca definidas por filtros como pueden ser “canciones del artista Dire Straits”.

  • Control de la reproducción.

  • Información de esos archivos.

Casos de usos relevantes

Cargar librería de música

Diagrama de diseño



Módulo Camera


[INTRODUCCION]

OpenCV / EmguCV


OpenCV o (Open Computer Vision) es una biblioteca libre de tratamiento de imagen, desarrollada originalmente por Intel en 1999. OpenCV es multiplataforma (Linux, Mac y Windows), muy eficiente (desarrollada en C y C++) y contiene más de 500 funciones de tratamiento de imagen. Por lo que OpenCV satisface todas nuestras posibles necesidades.

Solo tenemos un problema, como hemos comentado OpenCV está desarrollado en C y C++ entonces... ¿Cómo podemos utilizar esta biblioteca en nuestro proyecto desarrollado en .NET? [HABLAR DE COMO ESTA HECHO .NET PARA EL INTERPRETADO DE CODIGO C y C++]. Por lo que concluimos que podemos ejecutar código C y C++ en la plataforma .NET gracias a sus funciones nativas. Y aquí es donde entra en juego EmguCV

EmguCV es un wrapper para .NET de la librería OpenCV. Este wrapper es compatible con lenguajes como C#, VisualBasic, VisualC++, IronPython… incluso puede ser compilado en mono para ser ejecutado en entornos Linux o Mac OSX.

EmguCV aun siendo un wrapper tiene a sus espaldas OpenCV que es una librería con una extensísima bibliografías. En mi caso, para conocer conceptos básicos, utilice las siguientes referencias:

Para los conceptos básicos los apuntes de la asignatura procesamientos de imagen documental.

Para la ampliación de conceptos utilice el libro: “Tratamiento digital de imágenes” escrito por Rafael C. González, editiorial “Addison-Wesley”

Para el uso de la librería OpenCV el libro: “Learning OpenCV” de Gary Bradski y Adrian Kaehler, editorial “O’Reilly”

Y por último los ejemplos que incluyen tras su instalación EmguCV y búsquedas en internet.

Objetivos


Los objetivos de este módulo son:

  • Reconocimiento facial

  • Detector de movimiento

  • Detector de iluminación

  • Guardado de imágenes en local o en servidores

  • Gestor y captura de cámaras web instalas en el ordenador


Casos de usos relevantes



Diagrama de diseño


ANEXOS??

REFERENCIAS WIKIPEDIA???

BIBLIOGRAFIA UTILIZADA???

Añadir el documento a tu blog o sitio web

similar:

Elección del microcontrolador 10 iconElección correcta del ab

Elección del microcontrolador 10 iconElección del color

Elección del microcontrolador 10 iconElección del tema 4

Elección del microcontrolador 10 iconElección del tinte

Elección del microcontrolador 10 iconElección del tratamiento

Elección del microcontrolador 10 iconElección del Arma

Elección del microcontrolador 10 iconElección del fumigante

Elección del microcontrolador 10 iconElección del control y justificación del placebo, sesgos y factores...

Elección del microcontrolador 10 iconElección del tipo de losa

Elección del microcontrolador 10 iconElección del tipo de diseño






© 2015
contactos
m.exam-10.com