Você está na página 1de 9

TUTORIAL ARDUINO + SIMULINK 1 INTRODUO Tutorial referente integrao entre a plataforma Arduino e o ambiente Simulink do Matlab.

b. 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#), 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. para

INSTALAO Para o exemplo o 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 1

>> 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 5

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 8

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

ARTHUR SCHULER DA IGREJA

Você também pode gostar