*Ana Silvia Avalos Ibarra No. De Control: M1313073
Instituto Tecnolgico de la Laguna
Maestra en Ciencias en Ingeniera Elctrica
Instrumentacin Electrnica
Redes Neuronales
Proyecto Final
Profesor: Martn Vzquez Rueda
Inteligencia Artificial
TORREN COAHUILA A 26 DE MAYO DE 2014.
I. Introduccin
Redes Neuronales
Una red neuronal artificial es una estructura compuesta de un
nmero de unidades interconectadas (neuronas artificiales). Cada
unidad posee una caracterstica de entrada/salida e implementa una
computacin local o funcin. La salida de cualquier unidad est
determinada por su caracterstica de entrada/salida, su interconexin
con otras unidades, y (posiblemente) de sus entradas externas. Sin
embargo es posible un trabajo a mano, la red desarrolla usualmente
una funcionalidad general a travs de una o ms formas de
entrenamiento.
El cerebro humano contiene ms de 100 billones de elementos de
procesos llamados neuronas, que se comunican a travs de conexiones
llamadas sinapsis. Cada neurona eta compuesta por tres partes
fundamentales: el cuerpo, dendritas y axn. El cuerpo en su capa
externa tiene la capacidad nica de generar impulsos nerviosos. Las
dendritas que son como las ramas que salen del cuerpo, poseen
algunas conexiones sinpticas en donde se reciben seales que
generalmente vienen de otros axones. El axn se encarga de activar o
inhibir otras neuronas las cuales a su vez son activadas por
cientos o miles de otras neuronas.
El funcionamiento de una neurona artificial est basado en este
diseo. Bsicamente consiste en aplicar un conjunto de entradas, cada
una representando la salida de otra neurona, o una entrada del
medio externo, realizar una suma ponderada con estos valores y
filtrar este valor como una funcin.
Figura 1.- Red Neuronal con tres entradas
,
Backpropagation
Backpropagation es un algoritmo de aprendizaje supervisado que
se usa para entrenar redes neuronales artificiales. El algoritmo
emplea un ciclo propagacin adaptacin de dos fases. Una vez que se
ha aplicado un patrn a la entrada de la red como estmulo, este se
propaga desde la primera capa a travs de las capas superiores de la
red, hasta generar una salida. La seal de salida se compara con la
salida deseada y se calcula una seal de error para cada una de las
salidas. Las salidas de error se propagan hacia atrs, partiendo de
la capa de salida, hacia todas las neuronas de la capa oculta que
contribuyen directamente a la salida. Sin embargo las neuronas de
la capa oculta solo reciben una fraccin de la seal total del error,
basndose aproximadamente en la contribucin relativa que haya
aportado cada neurona a la salida original. Este proceso se repite,
capa por capa, hasta que todas las neuronas de la red hayan
recibido una seal de error que describa su contribucin relativa al
error total. La importancia de este proceso consiste en que, a
medida que se entrena la red, las neuronas de las capas intermedias
se organizan a s mismas de tal modo que las distintas neuronas
aprenden a reconocer distintas caractersticas del espacio total de
entrada. Despus del entrenamiento, cuando se les presente un patrn
arbitrario de entrada que contenga ruido o que est incompleto, las
neuronas de la capa oculta de la red respondern con una salida
activa si la nueva entrada contiene un patrn que se asemeje a
aquella caracterstica que las neuronas individuales hayan aprendido
a reconocer durante su entrenamiento.
Estructura de la Red
Figura 2.- Estructura de la Red Backpropagation
Puede notarse que esta red de tres capas equivale a tener tres
redes tipo Perceptrn en cascada; la salida de la primera red, es la
entrada a la segunda y la salida de la segunda red es la entrada a
la tercera. Cada capa puede tener diferente nmero de neuronas, e
incluso distinta funcin de transferencia.
II. Software Utilizado
Matlab
Es una herramienta de software matemtico que ofrece unentorno de
desarrollo integrado(IDE) con un lenguaje de programacin propio
(lenguaje M) y servicio de especie. Est disponible para las
plataformasUnix,Windows,Mac OS XyGNU/Linux.
Entre sus prestaciones bsicas se hallan: la manipulacin
dematrices, la representacin de datos y funciones, la implementacin
dealgoritmos, la creacin de interfaces de usuario (GUI) y la
comunicacin con programas en otros lenguajesy con otros
dispositivoshardware. El paquete MATLAB dispone de dos herramientas
adicionales que expanden sus prestaciones, a saber, Simulink
(plataforma de simulacin multidominio) y GUIDE (editor de
interfaces de usuario - GUI). Adems, se pueden ampliar las
capacidades de MATLAB con lascajas de herramientas (toolboxes); y
las de Simulink con lospaquetes de bloques(blocksets).
Es unsoftwaremuy usado en universidades y centros de
investigacin y desarrollo. En los ltimos aos ha aumentado el nmero
de prestaciones, como la de programar directamenteprocesadores
digitales de sealo crear cdigoVHDL.
Figura 3.- Logo de Matlab
LabVIEW
Es una plataforma y entorno de desarrollo para disearsistemas,
con un lenguaje deprogramacinvisual grfico. Recomendado para
sistemas hardware y software de pruebas, control y diseo, simulado
o real y embebido, pues acelera la productividad. El lenguaje que
usa se llamalenguaje G, donde la G simboliza que es lenguaje
Grfico.
Los programas desarrollados con LabVIEW se llaman Instrumentos
Virtuales, o VIs, y su origen provena del control de instrumentos,
aunque hoy en da se ha expandido ampliamente no slo al control de
todo tipo de electrnica (Instrumentacin electrnica) sino tambin a
su programacin embebida, comunicaciones, matemticas, etc. Un lema
tradicional de LabVIEW es:"La potencia est en elSoftware", que con
la aparicin de los sistemasmultincleose ha hecho an ms potente.
LabVIEW consigue combinarse con todo tipo de software y hardware,
tanto del propio fabricante -tarjetas de adquisicin de datos, PAC,
Visin, instrumentos y otroHardware- como de otros fabricantes.
Figura 4.- Logo de LabVIEW
Arduino
Es una plataforma dehardware libre, basada en unaplacacon
unmicrocontroladory unentorno de desarrollo, diseada para facilitar
el uso de la electrnica en proyectos multidisciplinares.
Elhardwareconsiste en una placa con un microcontroladorAtmel
AVRy puertos deentrada/salida.Los microcontroladores ms usados son
elAtmega168,Atmega328,Atmega1280,ATmega8por su sencillez y bajo
coste que permiten el desarrollo de mltiples diseos. Por otro lado
el software consiste en un entorno de desarrollo que implementa
ellenguaje de programacinProcessing/Wiring y elcargador de
arranqueque es ejecutado en la placa.4
Arduino se puede utilizar para desarrollar objetos interactivos
autnomos o puede ser conectado a software tal comoAdobe
Flash,Processing,Max/MSP,Pure Data). Las placas se pueden montar a
mano o adquirirse. Elentorno de desarrollo integradolibre se puede
descargar gratuitamente.
Arduino puede tomar informacin del entorno a travs de sus
entradas analgicas y digitales, y controlar luces, motores y otros
actuadores. El microcontrolador en la placa Arduino se programa
mediante el lenguaje de programacin Arduino (basado en Wiring) y el
entorno de desarrollo Arduino (basado en Processing). Los proyectos
hechos con Arduino pueden ejecutarse sin necesidad de conectar a un
computador.
Figura 4.- Logo de Arduino
Mdulo NI LabVIEW MathScript RT
Este software permite trabajar en LabVIEW como si se estuviera
en el entorno de Matlab.
Caractersticas
Principio del formulario
Final del formulario
Despliega archivos .m personalizados a hardware en tiempo
real
Puede reutilizar varios scripts creados con el software The
MathWorks, Inc. MATLAB y otros
Desarrolla archivos .m con una interfaz interactiva de lnea de
comando
Integre scripts en aplicaciones de LabVIEW usando el Nodo
MathScript.
Figura 5.- Mathscript
III. Arquitectura del Programa
Panel de Control
Figura 6.- Panel frontal con indicadores para las
resistencias
IV. Complementos Utilizados
Sensores Utilizados
Fotorresistencias
Unafotorresistenciaes uncomponente electrnicocuya resistencia
vara en funcin de la luz.
Un fotorresistor est hecho de unsemiconductorde alta
resistencia, si la luz que incide en el dispositivo es de
altafrecuencia, losfotonesson absorbidos por las elasticidades del
semiconductordando a loselectronesla suficiente energa para saltar
labanda de conduccin. El electrn libre que resulta, y su hueco
asociado, conducen la electricidad, de tal modo que disminuye
laresistencia. Los valores tpicos varan entre 1 M, o ms, en la
oscuridad y 100 con luz brillante.
Figura 7.- Fotorresistencia
Integrado Utilizado para acoplar los motores
El integradoL293Dincluye cuatro circuitos para manejar cargas de
potencia media, en especial pequeos motores y cargas inductivas,
con la capacidad de controlar corriente hasta 600 ma en cada
circuito y una tensin entre 4,5 v a 36 v.
Figura 8.- Controlador L293D
V. Plataforma de LabVIEW
Modulo de Matlab en LabView
En el mdulo de Matlab Script se declar lo que ser la red
neuronal, para esta red utilizo el algoritmo para redes de tipo
backpropagation, y tengo siete entradas y siete salidas.
Figura 9.- Matlab Script
Inicio y cierre de la comunicacin
Mediante estos bloques se inicia y cierra la comunicacin con
arduino, todo programa necesita llevarlos, en ello se declara el
puerto que se utilizar, y la tarjeta, as como la velocidad de
transmisin de datos y el tipo de comunicacin.
Figura 10.- Inicio y Cierre de la Comunicacin
Esquema de los Sensores
Figura 11.- Esquema de los Sensores
Conexin de los Sensores
En las siguientes imgenes se esquematiza la conexin de los
sensores, tal como se muestra a continuacin ese bloque representa
al pin anlogo de la arduino al que va conectado, su voltaje de
alimentacin y la intensidad de luz que esta recibiendo la
fotoresistencia (con valores entre un rango del 1-100).
Figura 12.- VI para Fotoceldas
Figura 13.- Caso DelanteroFigura 14.- Caso Trasero
Figura 15.- Caso DerechaFigura 16.- Caso Izquierda
Figura 17.- Caso Adelante RpidoFigura 18.- Caso Atrs Rpido
Esquema de comparaciones entre los sensores
Figura 19.- Esquema de Comparaciones
Mdulo de Matlab Script que ejecuta las salidas.
En el primer mdulo de Matlab script se entrena la red neuronal,
en este dependiendo de la salida que se este obteniendo de los
valores de los sensores se ejecuta el caso reconocido.
Figura 20.- Mdulo MatLab Script
Conexin de los Motores
En la siguiente imagen especifico a que pines de mi arduino
conect los motores, estos los configuro como salidas y utilizo 8
porque usare 4 motores de directa, y cada uno utiliza dos para
cambiar el sentido del giro.
Figura 21.- Conexin de Los motores
Caso 1
Para el caso 1 energizo los motores de la manera a continuacin
presentada, cada caso tiene una manera diferente.
Caso 2
Caso 3
Caso 4
Caso 5
Caso 6
Caso 7
Vinculacin de LabView a Matlab.
Figura 22.- Plataforma de MatLab
1
1
13