Tutorial - Arduino %2b Simulink
-
Upload
arthur-schuler-da-igreja -
Category
Documents
-
view
2.400 -
download
1
Transcript of Tutorial - Arduino %2b Simulink
TUTORIAL ARDUINO + SIMULINK 1 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.
2
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
3
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.
4
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
2
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.
5
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
3
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
4
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
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
7
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
9