PRACTICA 6: ARDUINO + SIMULINK

Transcription

PRACTICA 6: ARDUINO + SIMULINK
BENEMERITA UNIVERSIDAD
AUTONOMA DE PUEBLA
PRACTICA 6:
ARDUINO + SIMULINK
MARCO ANTONIO MARTíNEZ CASTILLO
RICARDO RENDON GONZÁLEZ
CONTROL DE PROCESOS
POR COMPUTADORA
OTOÑO 2013
PRACTICA 6:
CONTROL DE PROCESOS POR COMPUTADORA
ARDUINO + SIMULINK
Introducción
El enlace Matlab-Arduino se puede realizar de tres formas, dos específicas para Arduino y
una general utilizando el puerto serie. Simulink es una herramienta de Matlab que funciona
mediante un entorno de programación visual, las funciones están representadas por bloques, lo
que hace muy sencillo su utilización sin necesidad de emplear lenguajes complejos de
programación. Es un entorno de programación de más alto nivel de abstracción que el lenguaje
que interpreta Matlab (archivos con extensión .m). Simulink genera archivos con extensión .mdl
(de "model"). Al ejecutar un modelo implementado en simulink se genera un código en C que el
ordenador reconoce y ejecuta.
Admite el diseño y la simulación a nivel de sistema, la generación automática de código y la
prueba y verificación continua de los sistemas embebidos.
Mediante simulink se puede construir y simular modelos de sistemas físicos y sistemas de control
mediante diagramas de bloques. El
comportamiento
de
dichos
sistemas se define mediante
funciones
de
transferencia,
operaciones
matemáticas,
elementos de Matlab y señales
predefinidas de todo tipo.
Tiene una conexión directa con
Matlab, pudiendo exportar los
resultados obtenidos en simulink
para
hacer
análisis
más
exhaustivos y poder obtener
nuevos
resultados.
También
algunos bloques nos dan la
posibilidad
de
incorporar
algoritmos propios de Matlab.
Simulink ofrece la posibilidad de
conectar el modelo con hardware
para comprobar en tiempo real y
de una manera física el
funcionamiento de este.
Figura 1:Simulink Library Browser/Arduino IO Library.
En Simulink es posible crear y simular modelos mecánicos, eléctricos, electrónicos, aeronáuticos,
etc. gracias a la gran variedad de bloques (blocksets) de los que dispone. Estos conjuntos de
bloques se encuentran agrupados en la Simulink library browser, que se despliega al ejecutar
Simulink, y presenta el aspecto de la figura.
La biblioteca de ArduinoIO nos permite trabajar con arduino y simulink, es gratuita y su uso es
relativamente sencillo. Con esta biblioteca se puede establecer conexión con todos los tipos de
arduino. Está formada por los bloques que vemos en la siguiente figura.
BUAP
FCE
Página 1
PRACTICA 6:
CONTROL DE PROCESOS POR COMPUTADORA
ARDUINO + SIMULINK
Objetivo
Establecer la comunicación entre Arduino y Simulink desarrollando un modelo a bloques en el
entorno de Simulink que indique la intensidad de luz que incide en una fotorresistencia mediante
un vúmetro.
PC - MODELO
SIMULINK
FUENTE
DE LUZ
ARDUINO
FOTORESISTENCIA
VUMETRO (8 BITS)
Figura 2: Modelo a bloques del sistema.
Desarrollo
Desde la ventana de comandos de MATLAB podemos ingresar “targetinstaller” para instalar la
libreria de arduino en Simunlink. Una vez que tenemos la librería de ArduinoIO podemos seguir
con la programación de los modulos en simulink.
Primero desde la biblioteca de ArduinoIO agregamos el bloque “Arduino IO Setup” en cuyos
parámetros colocamos el puerto que estemos utilizando para enlazar con la placa arduino en
nuestro caso el Arduino Mega 2560 se en encuentra en el puerto COM2.
Vamos a leer la entrada analógica 0 para lo cual colocamos el bloque “Arduino Analog Read” y lo
configuramos para que lea del Pin 0 con un tiempo de muestreo de 0.1 segundos.
Ahora agregamos un par de ganancias que nos permitirán ajustar la intensidad máxima de luz y el
valor para PWM.
Para cada bit del vúmetro hará falta agregar un bloque de comparación (Compare To Constant)
ponderando la salida de cada bit con el valor en cada uno de estos. Así mismo la salida de cada
uno se conecta a un bloque “Arduino Digital Write”. Los pines que se definen en cada bloque
digital son del Pin 6 al Pin 13.
Agregamos un bloque “Servo Write” al que conectaremos la salida de la segunda ganancia esto
para tener un indicador de intensidad en el Pin 5.
En cada bloque de comparación se coloca el valor de:
;
BUAP
FCE
n = número de bit
Página 2
PRACTICA 6:
CONTROL DE PROCESOS POR COMPUTADORA
ARDUINO + SIMULINK
Figura 3: Modelo en Simulink.
Adicionalmente agregamos bloques de “Display” esto es solo para comprobar los valores de cada
salida mientras corre el programa.
En nuestra protoboard hemos colocado los 8 LED´s para el vúmetro y uno más que indicara el
estatus al cual conectaremos la salidad del PWM del pin 5. A la entrada analógica del pin 0
conectamos la salida del divisor de voltaje que formamos con una resistencia de 10K y la
fotorresistencia.
El valor de la primera ganancia en el modelo se ajusta con el mayor valor que tengamos al acercar
totalmente la fuente de luz al sensor y se define este como el máximo.
BUAP
FCE
Página 3
PRACTICA 6:
CONTROL DE PROCESOS POR COMPUTADORA
ARDUINO + SIMULINK
Figura 4: Fotorresistencia y LED´s conectados a arduino.
Cuando hacemos correr nuestro programa el LED de estatus se enciende en relación al valor de
PWM que coincide con la incidencia de luz que se tiene en la fotorresistencia.
Figura 5: Baja incidencia de luz.
Conforme la fuente de luz se acerca a la fotorresistencia y aumenta la incidencia de luz en esta se
encienden uno a uno los LED´s del vúmetro.
BUAP
FCE
Página 4
PRACTICA 6:
CONTROL DE PROCESOS POR COMPUTADORA
ARDUINO + SIMULINK
Figura 6: Aumento de intensidad.
Figura 7: Mayor incidencia de luz.
Conclusión
La librería de ArduionIO en simulink nos ofrece una alternativa práctica para implementar
sistemas digitales. El procesamiento de señales como vimos es práctico y se puede tener un
monitoreo en tiempo real de los valores en cada etapa del sistema. Observamos que incluso
mientras corremos el programa es posible modificar los valores de ganancia para ajustar los
máximos y mínimos.
La plataforma Arduino ayuda a los estudiantes a comprender el flujo de trabajo para el diseño de
un sistema integrado sin necesidad de utilizar la programación manual. Los estudiantes pueden
utilizar Simulink para crear algoritmos para sistemas de control y aplicaciones de robótica. Se
pueden aplicar técnicas probadas en la industria para el diseño basado en modelos y comprobar
que sus algoritmos funcionan durante la simulación.
BUAP
FCE
Página 5