Você está na página 1de 9

TUTORIAL ARDUINO + SIMULINK

INTRODUO
Tutorial referente integrao entre a plataforma Arduino e o ambiente Simulink do

Matlab. Com essa integrao possvel que se use o Arduino como interface de entradas
e sadas, digitais e analgicas e utilizar a biblioteca de blocos funcionais do Simulink. O
tutorial abrange o processo de instalao, construo de um projeto com variveis digitais
e leitura de um potencimetro em tempo real.

ARQUIVOS NECESSRIOS
O primeiro passo o download da interface de programao do Arduino e instalao

conforme o Tutorial: (ARDUINO+MATLAB), itens 1, 2 e 3. A ferramenta deve ser verso


018 ou superior.
Feito isso necessrio o download do pacote de suporte ao Arduino para Simulink Simulink Support Package for Arduino, tambm conhecido como Arduino Target
(http://www.mathworks.com/academia/arduino-software/arduino-simulink.html#),

para

realizar o download necessrio estar cadastrado na Mathworks (cadastro gratuito).


Vale lembra que a verso do Matlab deve ser 2010a ou superior, o kit est apenas
disponvel para Windows temporariamente.

INSTALAO
Para

exemplo

kit

arduino_sl

foi

descompactado

na

pasta

C:\ARDUINO_TARGET.
Com o Matlab aberto digita-se em seu Workspace:
>> cd c:\ARDUINO_TARGET

Caso o diretrio no esteja no lugar utilizado pelo tutorial, deve-se indic-lo no


comando anterior. Em seguida indicam-se as pastas padro do kit e as alteraes so
salvas:
>> addpath(fullfile(pwd,'arduino'),fullfile(pwd,'blocks'),fullfile(pwd,'demos'))
>> savepath
>> sl_refresh_customizations

Feito isso, deve-se indicar para o Matlab o modelo de microcontrolador utilizado na


placa do Arduino bem como o caminho do programador Java obtido na pgina do
Arduino.
ARTHUR SCHULER DA IGREJA

>> arduino.Prefs.setArduinoPath('c:\\arduino\arduino-0018')

Caso a ferramenta de programao no esteja neste caminho, deve-se corrigir o


comando anterior.
>> arduino.Prefs.setMcu('atmega328p')

Caso o microcontrolador no seja o modelo indicado, deve-se corrigir o comando


anterior. Para o presente tutorial foi utilizada a placa Duemilanove que contm o
microcontrolador modelo Atmega 328. Em seguida configura-se a porta serial padro:
>> comPorts=arduino.Prefs.searchForComPort;
>> arduino.Prefs.setComPort(comPorts{1});

Neste ponto o Arduino est pronto para ser utilizado com o Simulink.

CONFIGURANDO O ARDUINO
Para que o Simulink seja capaz de comunicar-se com o Arduino, deve ser

elaborado um projeto no Simulink indicando quais entradas e sadas sero utilizadas e


sua configurao (analgica ou digital). Para o primeiro projeto ser utilizada a sada 13
do Arduino (sada com LED na placa duemilanove) e a entrada analgica 2 para que um
potencimetro seja ligado. Esse exemplo encontra-se disponvel no kit obtido no site da
Mathworks (C:\ARDUINO_TARGET\demos\demo_arduino_serial_communication.mdl).

ARTHUR SCHULER DA IGREJA

Figura 1 Projeto a ser gravado no Arduino.

Onde:
1) Serial Read Valor recebido na porta serial do Arduino;
2) Pass Nonnegative Values Caso valor recebido seja negativo, ser atribudo 0;
3) Digital Output Valor recebido do bloco anterior enviado para Pino 13;
4) Analog Input Valor lido no Pino 2, configurado como entrada analgica;
5) Serial Write Valor recebido do bloco anterior escrito na porta serial do Arduino;
Para que o projeto seja gravado no Arduino, com a janela da Figura 1 aberta, basta
pressionar Ctrl+B. O processo leva por volta de 1 minuto e concludo quando a
seguinte mensagem aparece no Workspace do Matlab:

Figura 2 Trmino da gravao no Arduino.

CONFIGURANDO O SIMULINK
O arquivo utilizado no exemplo tambm est no diretrio demo do kit obtido, o

arquivo:
(C:\ARDUINO_TARGET\demos\demo_arduino_serial_communication_host.mdl).

ARTHUR SCHULER DA IGREJA

Figura 3 Projeto a ser utilizado no Simulink.

Uma vez aberto o projeto do Simulink, deve-se configurar corretamente a porta


serial a ser utilizada, para o presente exemplo o Arduino est conectado na porta serial 8.
Para configurar o campo (1), basta clicar 2 vezes, a seguinte mensagem deve surgir:

Figura 4 Mensagem de porta de comunicao indisponvel.

Basta confirmar em OK e em seguida selecionar a porta correta no campo


Communication Port:

Figura 5 Configurando a porta serial para o Simulink.

ARTHUR SCHULER DA IGREJA

Em seguida confirma-se em Apply e OK. O mesmo procedimento deve ser


repetido para os pontos (2) e (3) da Figura (3).
Caso aparecer a janela da Figura 6, deve-se marcar a opo No, caso contrrio
um novo bloco de comunicao ser criado e causar erro na execuo do programa.

Figura 6 Mensagem de criao de nova comunicao serial.

Neste projeto, ao posicionar a chave ON/OFF, o valor 0 ou 1 enviado para a


porta serial do computador atravs do bloco Serial Send da Figura 3. Esse valor ser
enviado de forma serial at o bloco Serial Read, localizado no projeto gravado no
Arduino Figura 1.
O contrrio feito para a leitura do valor analgico: O Arduino faz a leitura do Pino
2 e envia pelo seu bloco Serial Write da Figura 1, assim que transmitido chega at o
bloco Serial Receive do Simulink Figura 3.
O processo de comunicao fica resumido na Figura 7:

Figura 7 Resumo da comunicao entre Arduino - Simulink.


ARTHUR SCHULER DA IGREJA

6
6.1

TESTES PRTICOS
CHAVE ON/OFF
Para testar o projeto, basta pressionar Ctrl+T no projeto a ser executado no

Simulink, em seguida deve-se pressionar o boto de Reset da placa do Arduino para que
se inicie a execuo do projeto gravado no Arduino:

Figura 8 Boto Reset do Arduino.

Com o projeto em execuo, para ativar o LED da placa, basta clicar 2 vezes para
alternar o estado da chave (1):

Figura 9 Chave On/Off.

ARTHUR SCHULER DA IGREJA

6.2

LEITURA DO POTENCIMETRO
Caso seja conectado um potencimetro na entrada analgica 2, o valor pode ser

visto no Display (ponto 2 Figura 9) ou clicando 2 vezes sobre o Scope a forma de


onda do sinal analgico pode ser vista.

6.3

CONECTANDO UM INDICADOR TIPO GAUGE


Para facilitar a visualizao do projeto pode-se conectar ao dado lido na entrada

analgica do Arduino um indicador tipo Gauge. Nesta biblioteca o Simulink possui


diversos indicadores angulares, lineares e animaes de plantas como tanques,
instrumentos de aviao, dentre outros.
Para o exemplo ser conectado um indicador tipo AirSpeed. Para acessar a
biblioteca do Simulink, com o projeto da Figura 9 aberto, deve-se acessar: View/Library
Browser.
Na busca de componentes digita-se AirSpeed e adiciona-se o componente ao
projeto. Tambm deve ser adicionado um bloco de converso de tipo Data Type
Conversion conforme a Figura 10:

Figura 10 Blocos adicionados ao projeto.

O primero bloco (Data Type Conversion) necessrio, pois as operaes do


Matlab so feitas no tipo double enquanto que os dados enviados e recebidos do
Arduino so do tipo int8. Para configurar o bloco de converso de tipo basta clicar 2
vezes em cima do bloco e no parmetro Output Data Type deve ser definido como
double:

ARTHUR SCHULER DA IGREJA

Figura 11 Configurao do bloco Data Type Conversion.

Em seguida deve-se configurar o Gauge j que seu fundo de escala padro 170
enquanto que a leitura do Arduino vai de 0 at 1023 por causa da resoluo de seu
conversor A/D = 10bits. Para configurar basta clicar 2 vezes no Gauge, acessar a opo
Airspeed e configurar o parmetro AirspeedVMax para o valor 1023 confome a
Figura 12:

Figura 12 Configurao do bloco Gauge.

Confirmadas as alteraes basta iniciar a simulao para acompanhar em tempo


real no indicador o valor da varivel analgica do Pino 2 do Arduino.
ARTHUR SCHULER DA IGREJA

Figura 13 Ponteiro indicando valor da entrada analogical 2 do Arduino.

ARTHUR SCHULER DA IGREJA