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