DISCIPLINA LÓGICA DE PROGRAMAÇÃO
Tutorial sobre Lógica de Programação com o LabVIEW
Número 1
ANDRÉA ZOTOVICI
CARLOS EDUARDO DANTAS DE MENEZES
Objetivos
Este material foi escrito com o objetivo de orientar o uso da ferramenta LabVIEW no processo de aprendizagem de lógica de programação.
Num primeiro momento, o aluno aprenderá a modelar sequencias de comandos, usando entradas e saídas de dados, bem como as funções pré-definidas no LabVIEW.
Em seguida, modelará tanto estruturas de decisão quanto de repetição; por fim, o aluno será apresentado a vetores ou arrays de uma dimensão.
Em todas as situações examinaremos a correspondência da representação em fluxogramas com a representação gráfica do LabVIEW.
Orientações práticas
Este material fará referências a exercícios presentes no livro eletrônico “Curso Básico de Lógica de Programação”, de Paulo Sérgio de Moraes (Unicamp - Centro de Computação – DSC). Este pode ser baixado pela internet e também está disponível num CD distribuído pelos professores da disciplina LOGPROG; é, portanto, importante a impressão tanto do livro eletrônico quanto deste material para o acompanhamento das aulas de laboratório.
Construindo nosso primeiro algoritmo
Nosso primeiro desafio é entender a representação de algoritmos na forma de fluxogramas. Leia o capítulo 3 do livro eletrônico “Curso Básico de Lógica de Programação”. A seguinte tabela resume a simbologia básica (página 12):
Símbolo Função
TERMINAL
Indica o INÍCIO ou FIM de um processamento
Exemplo: Início do algoritmo
Símbolo Função
PROCESSAMENTO
Processamento em geral
Exemplo: Cálculo de dois números
ENTRADA DE DADO MANUAL
Indica entrada de dados através do Teclado
Exemplo: Digite a nota da prova 1
EXIBIR
Mostra informações ou resultados Exemplo: Mostre o resultado do cálculo
Agora construiremos nosso primeiro algoritmo, que acha a soma de dois números:
Figura 1 Primeiro fluxograma
Para resolver esta expressão, precisamos de: a) Componentes para interação com o usuário
• Selecione, na janela de diálogo Controls - opção Modern (Figura 2), o botão Numeric.
Figura 2 Janela de Diálogo Controls
Figura 3 Janela de Controles Numéricos
• Para construir a interface do usuário, selecione dois controles numéricos, um para cada operando (X e Y); e um indicador numérico, para o resultado. Selecione um componente, clique no controle numérico e posicione o mouse sobre a janela Front Panel. Sobre a janela Front Panel, é exibido o contorno do componente, como ilustra a Figura 4, para que tenhamos noção da sua posição. Logo que a posição do componente for selecionada, basta clicar o botão esquerdo do mouse.
Figura 4 Posicionando componente
Contorno do controle numérico controles numéricos (entradas de dados) indicadores numéricos (saídas de dados)
• Ao posicionarmos os controles na janela Front Panel, a legenda do campo fica com o fundo preto, o que indica que pode ser alterada. Assim, altere a legenda de cada controle e indicador para o mesmo texto da Figura 5.
Figura 5 Interface do usuário completa
DICA: Para deixar as duas janelas – painel frontal e diagrama de blocos – lado-a-lado, o que
facilita o trabalho, tecle <CTRL>+ t.
b) Função de Programação Numérica
• Para incluir a função soma, posicione o ponteiro do mouse na janela Block Diagram e clique o botão direito do mouse. Isso abrirá a janela de diálogo Functions, ilustrada pela Figura 6.
• Na opção Programming, selecione o botão Numeric. Na janela de funções numéricas, selecione a função soma (add), como ilustra a Figura 7.
Figura 7 Funções numéricas
• Posicione a função entre os controles (entradas) e o indicador (saída), como ilustra a Figura 8.
Figura 8 Inclusão da função numérica no diagrama de blocos
• Quando se posiciona o mouse sobre o símbolo da função soma (Figura 9), à direita são mostrados pontos vermelhos para ligar aos controles que fornecem os valores x e y, respectivamente, à função. À esquerda é mostrado o ponto vermelho do resultado, que deve ser ligado ao indicador de resultado. Ligue o primeiro número que será digitado à entrada X, o segundo à entrada Y e o resultado ao indicador.
Figura 9 Ligação de um controle (Entrada X) com função de soma
DICA: Se for realizada alguma associação inválida, como por exemplo, ligar um resultado a uma
entrada, essa associação é indicada como na Figura 10. Para remover as associações inválidas, pressione as teclas <CTRL>+ b.
Figura 10 Associação inválida
• Após ligar os controles às entradas do somador e a sua saída ao indicador, seu primeiro algoritmo está pronto. Ele pode ser executado de duas formas:
Entrada de um valor X Entrada de um valor Y Resultado de X+Y Resultado para o indicador Associação inválida
clique em executar ou RUN, representado pelo símbolo . O LabView executará o modelo e voltará para o modo de edição.
2 a . Forma: Clique em executar continuamente ou RUN CONTINUOUSLY, representado pelo símbolo , e altere os valores quantas vezes quiser. Neste modo de execução, quando digitar um valor em algum controle, pressione enter para atualizar o cálculo. Para finalizar clique em abortar ou ABORT EXECUTION, o botão vermelho.
Figura 11 Execução de um algoritmo em labVIEW
• Agora salve seu exercício (Menu FILE, opção SAVE AS).
Exercícios
1) Resolva os 3 exercícios da página 14 de livro eletrônico “Curso Básico de Lógica de Programação”, contudo, não faça apenas os fluxogramas, mas implemente-os em LabVIEW.
2) Aplique os passos acima para os exercícios seguintes (faça também os fluxogramas):
a) x – y b) x * y c) x / y d) x2 + y Executa Executa Continuamente Aborta Pausa
Para resolver este último exercício (2d), como ilustra a Figura 12, adicione:
• dois controles, um para X e outro para Y;
• função numérica Square, para a potenciação de X;
• função numérica Add, para somar o resultado da potenciação com Y;
• um indicador para mostrar o resultado.
Figura 12 Diagrama de blocos do exercício 1.5
e) x + y2
f) x mod y (Usar a função numérica Quotient & Remainder: ). Pergunta: o que faz esta operação chamada mod (também conhecida como módulo ou resto da divisão inteira)?
3) Criar fluxogramas e algoritmos em labVIEW para os problemas:
a) Considere que o valor dos dois menores lados (a, b) de um triângulo retângulo são conhecidos e deseja-se calcular o maior lado (c), a hipotenusa.
Função para potenciação Função para soma Controles Indicador
distância (d) até a origem do sistema de coordenadas e do ângulo da reta OP em relação ao eixo X, como mostra a Figura 13.
Figura 13 Cálculo da coordenada x para o ponto P
DICA: Para utilizar funções trigonométricas, selecione Functions – Mathematics – Elementary &
Special Functions – Trigonometric. Na função cos(x), x deve estar em radianos, portanto multiplique o ângulo em graus que for digitado pela constante 0,0174. Tente explicar de onde veio esta constante.
c) Conversão de quilômetro(km) para milha terrestre(mi). Uma milha equivale a 1609m, ou seja, 1,609 km.
d) Conversão de pé (ft) para metro (m), sendo que 1 ft = 0,3048 m
e) Conversão de polegada (in) para metro (m), sendo que 1 in = 0,0254 m
f) Calcule o rendimento de uma aplicação financeira, a partir da entrada do valor da aplicação e do seu rendimento (em %).
g) Calcule a conversão de ângulos em graus para radianos (use a regra de três abaixo):
180º π
4) Resolver os exercícios a seguir, usando tipos variados de componentes para entrada e saída. Preste atenção no tipo de dado que cada componente utiliza, conforme os comentários abaixo:
Na Figura 14, podemos observar alguns tipos de dados:
• -Número real (DBL), por exemplo, 2.35487, 3.14159, etc.
• -Valor booleano (TF – True or False), por exemplo, verdadeiro ou falso. • -Cadeia de caracteres (abc), por exemplo, “LOGPROG”, “PALMEIRAS”, etc. • -Número inteiro (I32 – 32 bits de capacidade), por exemplo, 7, -15, 472, etc.
Figura 14: Componentes e o tipo de dado correspondente
a) Faça um VI que possua um Vertical Toggle Switch e um LED. O Vertical Toggle representa uma chave que liga e desliga um LED. Quando o estiver para baixo, a luz do LED estará apagada; e quando o estiver para cima, a luz do LED estará acesa:
Figura 15: Componentes para Interface do Usuário com Tipo Booleano
• Posicione os componentes no Painel Frontal. Una a saída do Vertical Toggle com a entrada do Round LED. E em seguida execute. Mude a posição da chave para ver o LED ligar e desligar.
b) Conversão de temperatura em graus Celsius (C) para Kelvin (K). Dica : K = C + 273,15
Para resolver este exercício:
• Selecione na janela de diálogo Controls, as opções Classic-Classic Numeric, os componentes Numeric Control e Thermometer (Figura 16). Numeric Control é um controle, isto é, possibilita a entrada de dados. Thermometer é um indicador, isto é, possibilita a saída de dados. Adicione um componente Numeric Control com a constante 273,15. Para definir um Numeric Control como constante, selecione o componente na janela Diagrama de Blocos, clique o botão direito do mouse, selecione a opção Change Constant e digite 273,15, como é ilustrado na Figura 17.
Figura 16: Controle numérico e indicador tipo termômetro
Figura 17: Alterando um controle para constante
Figura 18: Operação de adição
• Posicione na janela de Diagrama de Blocos e ligue à função os controles de entrada e o indicador de saída, como ilustra a Figura 19.
Figura 19: Diagrama de Blocos do algoritmo para converter graus Celsius em Kelvin
c) Conversão de temperatura em Fahrenheit (F) para Celsius (C). Dica : C = (F – 32)/1,8
d) Conversão de temperatura em Kelvin (K) para Celsius ( C). Dica : C = K – 273,15
5) Ao resolver o exercício a seguir, repare como é implementado facilmente no LabView. O
LabView pode tratar facilmente estruturas de dados mais complexas, como amostras de voz; o
microfone captura o som e o LabVIEW digitaliza-o. O alto-falante reproduz o sinal e o
Waveform Chart funciona como um osciloscópio, mostrando a forma de onda do sinal
amostrado.
a) Componente da interface do usuário: Classic – Classic Graph – WaveformChart. b) Funções:
Entrada: Programming – Graphics & Sound – Sound – Input - Aquire
Saída: Programming – Graphics & Sound – Sound – Output – Play Waveform
Figura 20: Captura de Voz
Detalhe: Um microfone e fone de ouvido/caixa de som poderá ser providenciado pelo professor,
visto que estes acessórios não ficam normalmente à disposição de todos.
6) Resolva cada item do exercício 2 utilizando o bloco Expression Node. Esta representa uma maneira alternativa de resolver alguns exercícios, utilizando um bloco para escrever uma expressão completa. A Figura 21 ilustra um exercício com o bloco Expression Node (nó para expressões), o qual permite usarmos funções matemáticas nos processamentos realizados.