You are on page 1of 17

UNIVERSIDAD SANTIAGO DE CALI

FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

VIII. CONTROL USANDO SIMULINK Y ARDUINO


Los entornos de Diseo de Sistemas de Control Asistido por
Ordenador

(CACSD)

estn

experimentando

notables

cambios

durante los ltimos aos. Estos avances afectan a las distintas


fases de diseo de los sistemas de control como pueden ser el
modelado, la identificacin y la validacin de estos modelos, as
como a la posterior fase de diseo del controlador propiamente
dicho.

Figura No. 1

Este trabajo describe una herramienta cuyo principal objetivo


consiste en la integracin en un nico entorno de un conjunto de
funciones que permiten el control por realimentacin de estados
para sistemas SISO. Es decir, cubren la ltima fase de las
comentadas anteriormente, y supone que el modelo del sistema ya
ha sido obtenido por algn mtodo.
Existen numerosas y bien conocidas razones para utilizar este tipo
de control, como pueden ser su implantacin industrial, robustez,
facilidad de empleo, etc.

99

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Ahora utilizaremos el microcontrolador Arduino y Matlab (Simulink)


para hacer un control real del sistema.
EL MICROCONTROLADOR ARDUINO
En estas clases siguientes intentaremos una forma de acercarnos al
diseo y desarrollo de proyectos basados en Arduino. Dado que
tenemos

los

conocimientos

adecuados

programacin, para hacerlo fcil,

en

electrnica

he pensado en que nos

centremos en los aspectos ms bsicos de las caractersticas y la


programacin de Arduino.
Otro de los objetivos de estas guas es organizar un poco la gran
cantidad de informacin que sobre este tema existente en la red.
Para ello casi toda la informacin se ha obtenido a travs de la
fuente http://www.arduino.cc o de manuales basados en ella pero
algo ms estructurados.
Por ltimo, las clases estn pensadas como soporte para la
realizacin de nuestro proyecto final que es el control de un sistema
real.
Qu es ARDUINO?
Arduino es una plataforma de prototipos
electrnica de

cdigo

abierto

(open-

source) basada en hardware y software


flexibles y fciles de usar. Est pensado
para artistas, diseadores, como hobby
y para cualquiera interesado en crear
objetos o entornos interactivos.
100

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Arduino puede sentir el entorno mediante la recepcin de entradas


desde una variedad de sensores y puede afectar a su alrededor
mediante el control de luces, motores y otros artefactos. El
microcontrolador de la placa se programa usando el Arduino
Programming

Language

(basado

en

Wiring1)

el

Arduino

Development Environment (basado en Processing2). Los proyectos


de Arduino pueden ser autnomos o se pueden comunicar con
software en ejecucin en un ordenador, en nuestro caso Matlab y
Simulink.
Existen muchos otros microcontroladores y adems plataformas
microcontroladoras disponibles para computacin fsica. Parallax
Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, y
muchas

otras

ofertas

de

funcionalidad

similar.

Todas

estas

herramientas toman los desordenados detalles de la programacin


de microcontrolador y la encierran en un paquete fcil de usar.
Arduino

tambin

simplifica

el

proceso

de

trabajo

con

microcontroladores, pero ofrece algunas ventajas para profesores,


estudiantes y aficionados interesados sobre otros sistemas:

Barato

Multiplataforma

Entorno de programacin simple y claro

Cdigo abierto y software extensible

Cdigo abierto y hardware extensible

Hay mltiples versiones de la placa Arduino. La mayora usan el


ATmega168 de Atmel, mientras que las placas ms antiguas usan el

101

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

ATmega8. En nuestro caso nos dedicaremos exclusivamente al


trabajo con Arduino Uno.
Arduino

Uno

es

una

tarjeta

basada

en

el

microcontrolador

ATmega328 (datasheet). Tiene 14 entradas/salidas digitales, de las


cuales 6 pueden ser utilizadas como salidas PWM, 6 entradas
anlogas, un cristal oscilador de 16Mhz, conexin USB, conector de
alimentacin, conector ICSP y botn de reset. Contiene todo lo
necesario para hacer funcionar al microcontrolador, simplemente se
conecta al PC con un cable USB o se alimenta con una fuente
AC/DC o una batera de 9VDC.
La nueva Arduino UNO. Adicional a todas las caractersticas de su
predecesora

Arduino

Duemilanove,

UNO

ahora

utiliza

un

microcontrolador ATMega8U2 en vez del chip FTDI. Esto permite


mayores velocidades de transmisin por su puerto USB y no
requiere drivers para Linux o MAC (archivo inf es necesario para
Windows) adems ahora cuenta con la capacidad de ser reconocido
por el PC como un teclado, mouse, joystick, etc.

INSTALACION DEL SOFTWARE ARDUINO


Esta seccin explica como instalar el software Arduino en un
computador que ejecute Windows.

Estos son los pasos para

instalar los controladores o drivers de Arduino UNO.

Lo primero que debemos hacer es descargar el entorno de


desarrollo y los drivers del Arduino, lo puedes bajar de la pgina
http://arduino.cc/es/Main/Software.

102

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Conecta la board y espera a que windows inicie el proceso de


instalacin, despus de unos minutos este fallar.

Haz Click en Menu Inicio, posiciona el mouse en equipo y presiona


click derecho, eligiendo la opcin de propiedades.

Ahora elije la opcin de administrador de dispositivos, mira debajo


de los puertos (COM & LPT) o en otros dispositivos, debe aparecer
Arduino UNO.

Da Click derecho en "Arduino UNO " y elije la opcin de actualizar


software del controlador.

Despus elije la opcin buscar software de controlador en el


equipo y selecciona la carpeta donde descargaste Arduino UNO o
superior.

Busca la carpeta drivers y seleccinala (slo la carpeta drivers no


la FTDI QUE SE ENCUENTRA INTERNA), sigue la instalacin de
manera normal.

Ahora ya est listo el PC para trabajar con la board Arduino UNO.

INICIANDONOS EN ARDUINO:
Esquema:

En la figura, podemos observar resaltadas las partes que es


necesario conocer para el correcto conexionado de la tarjeta.
103

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

1.

Lnea

de

comunicaciones

pines

no

se

usan.

Entradas/salidas digitales pines del 2 al 13.


2. Botn reset de la tarjeta (Permite el re-inicio de la misma).
3. Lnea de Entradas analgicas (De la A0 a la A5).
4. Lnea de alimentacin. En estos pines podemos encontrar Vin,
GND, 5V, 3.3V y reset.
5. Plug de alimentacin de la tarjeta (Para voltajes entre 7 a 12
volts mximo).
6. Regulador de voltaje.
7. Conector USB.
Una vez instalado el paquete programa con sus drivers, en
Windows

7,

vamos

ejecutar

la

aplicacin

despus

seleccionaremos el tipo de placa que tenemos y el puerto COM por


el que se van a enviar los datos, para ello hacemos doble click
sobre el fichero con nombre arduino y se abrir la aplicacin. Nos
encontraremos con una ventana como la mostrada en la figura
siguiente.
Como se puede ver, en la parte
superior hay una serie de mens, si
pinchamos en tools podemos ver
que

tenemos

disponibles

las

opciones "Board" y "Serial Port", en


board seleccionamos nuestro tipo
de placa y en serial port el puerto
de

comunicaciones

donde

104

se

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

encuentra nuestro

Arduino,

puedes comprobar cmo se ha

instalado si buscas en el Administrador de Dispositivos de Windows


en la pestaa "Puertos (COM yLPT)" el dispositivo con nombre "USB
Serial Port (COMx)".
Ahora nos podramos preguntar el por qu de que se llame "USB
serial Port" y por qu transferir archivos por puerto COM si nuestro
Arduino est conectado por USB, la respuesta es fcil, el Arduino en
realidad se comunica por puerto COM y en su placa lo que tiene es
un convertidor de puerto Serie a USB para que as podamos usarlo
por USB que es mucho ms cmodo y est ms extendido que el
COM.
Una vez que tenemos nuestro
Arduino

conectado

configurado podemos cargar


un programa de ejemplo para
comprobar su funcionamiento,
en el paquete que nos hemos
descargado tenemos una serie
de

ejemplo

que

podemos

subir.
Para esto pulsamos en el botn File -> Examples -> 1.Basics ->
Blink con esto cargamos un pequeo cdigo que har que un led
conectado a la salida 13 se encienda y se apague con una
frecuencia de un segundo. Ejecute el programa con el diodo ya
conectado como se muestra en la figura.

105

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Como eso es muy sencillo y poco atractivo, lo podemos modificar


ligeramente para que cuando el led del terminal 13 este encendido,
el del terminal 12 este apagado y justo lo contrario as conseguimos
que parpadee uno si y uno no, copie, analice y ejecute el cdigo
siguiente:
void setup() {
pinMode(13, OUTPUT); // Inicializa pin 13 como salida
pinMode(12, OUTPUT); // Inicializa pin 12 como salida
}
void loop() {
digitalWrite(13, HIGH); // LED on
digitalWrite(12, LOW); // LED off
delay(1000);
// Tiempo de espera
digitalWrite(13, LOW); // LED off
digitalWrite(12, HIGH); // LED on
delay(1000);
// Tiempo de espera
}

Realizando algunos arreglos en las lneas podemos hacer un


semforo o jugar con una combinacin de LEDs. Intente montando
un circuito como el de la figura.

106

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

TRABAJANDO CON EL HARDWARE DE ARDUINO


En este tema les muestro cmo aadir soporte hardware Arduino
con el producto Simulink de Matlab. Una vez completado este
proceso, se pueden ejecutar modelos de Simulink en su hardware
Arduino.
El proceso de instalacin agrega los siguientes elementos a su
computador.
Herramientas de desarrollo de software, tales como el
software de Arduino.
Una librera de bloques de Simulink para configurar y
acceder a los sensores, actuadores, y a las interfaces de
comunicacin de Arduino.
Demos

para

empezar

aprender

acerca

de

las

caractersticas especficas de Simulink y Arduino.


Para instalar Arduino siga los siguientes pasos: (debe estar
conectado a internet)
Abra en Simulink un documento nuevo.
Selecciones Tools, y luego Run on Target Hardware >
Install/Update Support Package.
La velocidad de instalacin depende de su conexin a internet.
Despus de unos segundos se le presenta:

107

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Seleccione internet y presione siguiente. Ahora se presenta:

Seleccione la tarjeta a instalar, en nuestro caso Arduino Uno y


presione siguiente. Ahora tenemos:
108

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Al presionar Install se presenta un displays de carga de Arduino.

Despus de una espera aparecer

Presiono Finish y listo. Ya podemos usar Arduino.


109

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

En las libreras de Simulink debe aparecer un nuevo men de


bloques con el nombre Simulink Support Package for Arduino
Hardware.
Para instalar las otras libreras, le solicito que descarge los
programas

ArduinoIO

Arduino_Simulink

de

la

pgina

www.javalmu.wikispaces.com y los instale en una carpeta ubicada


en

c:

con

los

nombres

ArduinoIO

arduino_simulink

repectivamente.
Abrimos Matlab y en el promt escribimos:
>> cd c:\arduino_simulink
>>addpath(fullfile(pwd,'arduino'),fullfile(pwd,'blocks'),fullfile(pwd,'d
emos'))
>>savepath
Las instrucciones anteriores son para cargar a simulink el Arduino
Target y para cargar el Arduino IO Library escribimos
>> cd c:\arduinoIO
>> addpath(fullfile(pwd,'examples'),fullfile(pwd,'simulink'))
>>savepath
Cierre Matlab y vulvalo a abrir. Al abrir SIMULINK deben aparecer
en las libreras:
Arduino IO Library
110

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Arduino Target
Simulink Support Package for Arduino Hardware

ARDUINO COMO GENERADOR DE DATOS DESDE SIMULINK


Ahora solamente queda conectar la tarjeta Arduino UNO, como si
fuera una tarjeta de interface o de transferencia de datos, con
MATLAB, sigamos los siguientes pasos:

1. Asumiendo que ya tiene instalado el IDE ARDUINO, abra desde


este entorno, el archivo adiosrv.pde que est dentro de la
carpeta adiosrv, que a su vez est dentro de la carpeta pde ,
una de las que se descomprimi.
2. Cargue en la tarjeta, este programa. Este sketch, contiene el
cdigo necesario para que la tarjeta Arduino escuche los
comandos

ejecutados

desde

Matlab,

ejecute

instrucciones,

interacte con dispositivos conectados a la tarjeta y transfiera


datos desde sensores y dispositivos, hacia Matlab.
3. Una

vez

cargado

el

programa

en

la

tarjeta

Arduino,

es

recomendable cerrar el IDE ARDUINO, para que Matlab pueda


acceder al puerto serial que se abre cuando se conecta la tarjeta.

Bien, ahora realicemos una prctica en la cual deseamos enviar un


escaln de 1 voltio a travs del pin 9 de la tarjeta Arduino.
Montemos en Simulink los siguientes bloques:

111

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Los bloques Arduino IO setup y Real-Time Pacer deben


presentarse siempre porque son los que permiten direccionamiento
con la tarjeta y el manejo en tiempo real. Note que el bloque
Arduino IO debe tener el puerto al cual esta asignada la tarjeta.
Al escaln se le asigna una ganancia 55 para que se pueda generar
1 voltio a la salida del pin 9.
Coloque un LED entre el pin 9 y tierra y ejecute el programa.
Usted puede manejar el tiempo del escaln.

112

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

ARDUINO COMO GENERADOR DE DATOS HACIA SIMULINK


Uno de los ejemplos ms bsicos consiste en leer datos de un
sensor conectado al Arduino y transmitirlos al PC mediante
comunicacin serie y visualizarlo en el osciloscopio de Simulink.
El objetivo ser pues leer una seal analgica de dos (extensible
fcilmente a ms) sensores (en este caso potencimetros) y
transmitirla a Matlab (simulink), a fin de poder trabajar con ella.
En primer lugar, vamos a preparar
el

Arduino.

Conectamos

los

potencimetros entre los pines de


+5V y Gnd (neutro) y sus pines
centrales

(que

por

tanto

presentarn un voltaje entre +5V y


0V) a las entradas analgicas A0 y
A1 del Arduino, como se muestra a
la derecha.
Por supuesto, cualquier otro sensor analgico sirve exactamente
igual para este ejemplo.
Veamos ahora como leemos informacin de voltaje real desde los
potencimetros a travs de la tarjeta Arduino y visualizarlo en el
osciloscopio de Simulink. Montemos en Simulink los siguientes
bloques:

113

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Ahora se han utilizado los bloques

Analog Read para lectura de

datos analgicos y un bloque de ganancia

, esta ganancia

debe aparecer para convertir la salida en Simulink a como si fuera


real.

EJERCICIO No. 1
Diseemos un circuito con 5 LEDs, conectados a las salidas de 9 a
13 y con 4 modos de operacin manejados entre Arduino y
Simulink tal que:
Modo 1: Todos los LEDs apagados
114

UNIVERSIDAD SANTIAGO DE CALI


FACULTAD INGENIERIAS
PROGRAMA DE INGENIERIA ELECTRONICA
CONTROLES II
Profesor: MSc. JAVIER A. MURILLO M.

Modo 2: Todos los LEDs encendidos


Modo 3: LEDs parpadenado a la misma frecuencia variada por un
potencimetro.
Modo 4: LEDs parpadeando uno tras otro con velocidad variable por
un potencimetro.
El usuario puede seleccionar el modo mediante un interruptor.

Selector
de modo
Variador de
frecuencia

Protoboard

115

You might also like