25
PA - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo de tempo por nós definido. Na verdade, esta é apenas uma das maneiras de utilizarmos o comando espera. A outra é associarmos a continuidade da execução do programa a uma determinada condição. Por exemplo, o robô ficará parado até que os sensores de temperatura indiquem um valor acima do especificado, ou que o botão enter venha a ser pressionado. A sintaxe desta versão do comando espera é definida como: espera condição Onde condição é uma expressão matemática cujo resultado é um valor lógico (verdadeiro ou falso), representado no LEGAL pelos valores 1 e 0. As expressões condicionais na versão 2.13 do LEGAL utilizam operadores do tipo relacional, associados aos valores lidos dos sensores. Uma operação relacional compara dois itens e fornece um valor lógico como resultado da comparação. Aqui estão os seis operadores relacionais e os seus significados: = < > <= >= <> Igual Menor que Maior que Menor ou igual a Maior ou igual a Diferente de

PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

Embed Size (px)

Citation preview

Page 1: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 1

1. Comando Espere Condicional

Como vimos anteriormente, a execução do comando espera faz com que o MC2 pareseu processamento por um intervalo de tempo por nós definido. Na verdade, esta é apenas

uma das maneiras de utilizarmos o comando espera. A outra é associarmos a continuidade

da execução do programa a uma determinada condição. Por exemplo, o robô ficará paradoaté que os sensores de temperatura indiquem um valor acima do especificado, ou que o

botão enter venha a ser pressionado.

A sintaxe desta versão do comando espera é definida como:

espera condição

Onde condição é uma expressão matemática cujo resultado é um valor lógico

(verdadeiro ou falso), representado no LEGAL pelos valores 1 e 0.

As expressões condicionais na versão 2.13 do LEGAL utilizam operadores do tipo

relacional, associados aos valores lidos dos sensores. Uma operação relacional compara

dois itens e fornece um valor lógico como resultado da comparação. Aqui estão os seisoperadores relacionais e os seus significados:

=

<

>

<=

>=

<>

Igual

Menor que

Maior que

Menor ou igual a

Maior ou igual a

Diferente de

Page 2: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 2

Utilizamos os operadores relacionais para realizar comparações entre dois valores.No LEGAL os operadores relacionais podem ser utilizados para comparar o valor de doissensores ou de um sensor com um valor numérico específico. A sintaxe de uma condição noLEGAL é definida como:

sensor operador relacional sensorou

sensor operador relacional número

O LEGAL permite que acessemos não apenas os valores lidos dos sensores externos,mas também dos sensores internos do MC2.

Você deve estar se perguntando o que são e qual a utilidade destes sensores internos.Sensores internos servem para monitorar a situação de seu robô, como por exemplo: avelocidade, a aceleração, a temperatura interna, o nível das baterias, etc. Tais informaçõessão tão importantes para que o robô tome suas decisões como as obtidas pelos sensoresexternos.

Para acessar os dados dos sensores do MC2 o LEGAL tem um conjunto deregistradores que podemos usar em nossos programas. Tais registradores contêm os valoreslidos dos sensores e dos botões do módulo.

Page 3: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 3

Os registradores do LEGAL estão definidos como:

Para usarmos estes registradores basta referência-los diretamente em nossosprogramas. Por exemplo, no programa a seguir a luz 1 é acesa permanecendo assim até

que a tecla enter do MC2 seja pressionada. Ou seja, o programa fica esperando que o

registrador bt Enter receba o valor lógico 1.

Registrador

S1

S2

S3

S4

S5

S6

S7

S8

S9

Sensor

Sensor 1

Sensor 2

Sensor 3

Sensor 4

Sensor 5

Sensor 6

Sensor 7

Sensor 8

Bateria do MC2

Bateria dos Motores

Problemas nosmotores

Botão enter doteclado do MC2

Tipo

Digital

Digital

Analógico

Analógico

Digital

Digital

Analógico

Analógico

Analógico

Analógico

Descrição

Sensor externo

Sensor externo

Sensor externo

Sensor externo

Sensor externo

Sensor externo

Sensor externo

Sensor externo

Indica o nível da bateria do MC2,valor menor que XXX são perigosos.

Indica o nível da bateria dos motores,valor menor que XXX são perigosos.Valor igual a zero tudo está bem. Valorigual a um Indica que os motores estãoconsumindo muita corrente.

Valor igual a um indica que o botãoenter está sendo pressionado.

Digital

Digital

S10

S11

Bt Enter

Page 4: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 4

# Exemplo:# Uso do comando esperecondicionalPor favor Ligue L1 Espere Bt Enter = 1 Desligue L1Obrigado

Neste outro exemplo nós instalamos um sensor de ruído no conector número 3, eprogramamos o MC2 para “reclamar” quando o nível de ruído for superior a 120.

Para testar os programas a seguir é necessário que instalar um sensorde ruído no conector S3.

# Exemplo:# Uso do comando esperecondicionalPor favor Espere s3 > 120 NãoObrigado

Podemos melhorar o programa de tal forma que o MC2 iria funcionar sem parar,“reclamando” sempre que o ruído for superior a 120. Este programa pode ser muito útil paracontrolar o nível de conversa em uma prova, o que você acha?

# Exemplo:# Monitor de ruído.Por favorRepita sempre [ Espere S3 > 120 Não ]Obrigado

Page 5: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 5

Os registradores analógicos contém valores inteiros que podem variar de 0 a255, não sendo validos valores fora deste intervalo. Já os registradores digitais

No início deste módulo foi dito que em uma condição podemos compara um sensorcom um valor numérico ou um sensor com outro sensor. No exemplo a seguir estamoscomparando os valores lidos em dois sensores de luz, acendendo as luzes do MC2 apenasquando o leitura do S4 for maior que a do S8.

Para testar o programa a seguir é necessário que instalar um sensor de luzno conector S4 e outro no conector S8.

contém os valores 0 e 1, também conhecidos como valores lógicos ou valores booleanos.

# Exemplo:# Uso do comando esperecondicionalPor favor Espere S4 > S8Obrigado

Page 6: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 6

2. Controlando Diretamente os Motores DC

Conforme foi visto nos módulos anteriores existe, no LEGAL, duas maneiras de se controlarmotores DC: uma mais fácil utilizando os comandos frente, ré, direita e esquerda e uma outramais complicada, porém mais poderosa que permite um maior controle destes motores.

A maior diferença entre os comandos que são descritos neste módulo e os que foramdescritos anteriormente está no controle individual de cada motor. Nós veremos como controlar avelocidade de cada motor individualmente permitindo, entre outras coisas, que nosso robô realizecurvas bem mais suaves do que as feitas com os comandos direita e esquerda.

O LEGAL usa duas palavras reservadas para se referir aos motores conectados ao MC2:

M1 Motor esquerdo

M2 Motor direito

Para controlar a velocidade dos motores devemos usar o comando potência, cuja sintaxeé definida como:

potência motor valor_da_potência

Onde o valor_da_potência pode variar de menos dez a mais dez, como é mostrado nafigura a seguir.

Potência dos motores e sentido de rotação dos mesmos .

Page 7: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 7

A velocidade do robô é função de três variáveis: potência do motor,peso do robô e tamanho da roda.

Com a potência igual a zero o motor está parado, com valor igual a dez o motor estáindo com potência máxima para um lado (por convenção chamamos este lado de frente)e com valor menos dez o giro é com potência máxima para o outro lado. Valores inteirosintermediário, dentro dos limites definidos, são associados a diferentes potências.

Associarmos uma potência a um motor não o coloca em movimento. Para isto énecessário executar o comando ligue (que foi utilizado anteriormente para ligar as luzesdo painel do MC2), conforme pode ser visto no programa a seguir.

Antes de continuar é importante que você monte o robô Zero,ou crie um robô equivalente, para testar os comandos que sãoensinados a seguir.

# Exemplo:# Uso do comando esperecondicionalPor favor potência M1 10 potência M2 10 ligue motoresObrigado

Se você digitou e ensinou seu robô com o programa anterior deve ter notado que aoexecutá-lo o robô não saiu do lugar e as luzes dois e cinco começaram a piscarinstantaneamente indicando fim de programa. Isto ocorreu porque não foi informado para orobô por quanto tempo ele deveria andar para frente.

Page 8: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 8

Sendo assim, ele executou seu programa tão rápido que os motores não tiveram tempode se mover. Ao término do programa o LEGAL automaticamente desliga os motores.

Para resolver este problema pasta usar o comento espere indicando a duração domovimento. No novo exemplo o robô avançara por dez segundos antes de parar.

# Exemplo:# Coloca os dois motores em potência máxima para frentepor# 10 tempos.Por favor potência M1 10 potência M2 10 ligue motores espere 10 tObrigado

No programa anterior o LEGAL está sendo responsável por desligar os motores aotérmino da espere de dez segundos, mas em muitas aplicações nós devemos assumir talresponsabilidade. Para desligar os motores devemos usar o comando desligue, que assimcomo o comando ligue, também é utilizado para controlar as luzes do painel do MC2.

No exemplo a seguir os motores funcionam por dez segundos depois são desligados;o robô executa o comportamento sim e depois faz uma curva suave para a esquerda.

# Exemplo:# O robô anda para frente por 10 tempos e depois vira para# esquerda por 3 tempos.Por favor potência M1 10 potência M2 10 ligue motores espere 10 t desligue motores sim potência M1 6 potência M2 10 ligue motores espere 3 t desligue motoresObrigado

Page 9: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 9

Note que para fazer esta curva a potência do motor esquerdo, indicado por M1, élevemente menor que a potência do motor direito. Esta diferença faz com que o robô viresuavemente para a esquerda.

Quanto maior for a diferença entre as potências dos motores, mais fechada será acurva. No programa a seguir o robô inicialmente faz uma curva suave para direita porquatro segundos e depois faz uma curva fechada girando sobre seu próprio eixo paraesquerda.

# Exemplo:# Curvas com o legalPor favor # curva suave para a direita potência M1 10 potência M2 8 ligue motores espere 10 t desligue motores

# giro para esquerda potência M1 10 potência M2 10 ligue motores espere 3 t desligue motoresObrigado

Você notou a diferença entre estas duas curvas? A primeira é suave e é umaconseqüência das diferentes potências dos motores. A segunda é um giro sobre o próprioeixo, o que acontecerá sempre que os motores girarem em direção oposta.

Page 10: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 10

Podemos usar a diferença entre as potências como uma forma decompensar as imperfeições mecânicas de nossos robôs.

Se o robô estiver, por exemplo, desviando para direita, quando deveria estar emlinha reta, podemos programar o motor direito com uma potência um pouco maior que ado motor esquerdo. Esta mudança no programa pode não resolver o problema, mas iráatenuá-lo.

Para parar um motor enquanto o outro continua em movimento devemos zerar a potência

deste. No exemplo a seguir os dois motores funcionam com potência oito por seis segundo,

depois o motor esquerdo é parado e o motor direito continua funcionando por mais quatrosegundos.

# Exemplo:# Parando um dos motoresPor favor # frente por 6 tempos potência M1 8 potência M2 8 ligue motores espere 6 t desligue motores

# giro para esquerda com M1 parado potência M1 0 potência M2 8 ligue motores espere 4 t desligue motoresObrigado

Page 11: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 11

Variando a potência dos motores podemos fazer com que nossos robôsexecutem diferentes tipos de movimentos.

Com os motores funcionando com a mesma potência o robô se moverá emlinha reta.

Devido a imprecisões mecânicas do robô ou do piso onde ele está se deslocando,é natural que ocorram pequenos desvios para um dos lados a medida que o robô sedesloca.

Se programarmos os motores para funcionarem no mesmo sentido, nas compotências diferentes, o robô fará uma curva suave na direção do motor mais lento.

Quanto menor for a diferença entre a potência dos motores mais suave será acurva, ou seja, maior será o seu raio.

Para fazermos o robô girar sobre o seu próprio eixo basta programar os motorespara funcionarem em sentido contrário, com a mesma potência.

Page 12: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 12

Se modificarmos nosso programa de tal forma que os motores, ainda quegirando em sentidos opostos, funcionem com potências diferentes, poderemosobservar que o centro da curva irá se deslocar do meio do robô para a roda quegira com menor potência. Isto ocorre até um ponto limite, que é quando um dosmotores para sua rotação, neste caso a roda associada a este motor se torna ocentro da curva.

Para melhor entender os conceitos aqui discutidos é importante quevocê escreva programas utilizando diferentes potências nos motores,procurando fazer com que seu robô execute diferentes tipos decurvas.

Page 13: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 13

3. Estrutura de decisão: se – então – senão

Para controlar eventos complexos, um robô deve ser capaz de tomar decisões,escolhendo entre as ações disponíveis a mais adequada, considerando seus objetivos e aleitura dos sensores. Estas decisões dependem do resultado de expressões lógicas, taisresultados determinam qual a próxima ação a ser tomada.

A linguagem LEGAL fornece uma estrutura de controle para tomada de decisões euma para a repetição controlada de comandos.

O comando se seleciona um entre dois comandos (ou grupo de comandos) paraexecução. A estrutura deste comando consiste da palavra reservada se em companhia daspalavras reservadas então e senão.

Tendo em vista que o comando senão é opcional, a forma mais simples da estruturacondicional é a seguinte:

se condição então [ comando ou grupo de comandos que serão executados se a condição for verdadeira ]

Se a condição for verdadeira o programa executa o comando ou comandos localizadosentre os colchetes do comando então. Se a condição for falsa, o comando se não teránenhuma ação.

No programa a seguir a luz um é acesa quando o botão enter for pressionado.

Page 14: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 14

# Exemplo:# O programa fica em loop infinito esperendo que o botão enter# seja precionado.Por favorRepita sempre[se bt enter=1então [ ligue L1 ]]Obrigado

Quando usamos o comando senão a estrutura do condicional está assim definida:

se condição então [ comando ou grupo de comandos que serão executados se a condição for verdadeira ] senão [ comando ou grupo de comandos que serão executados se a condição for falsa ]

Se a condição for verdadeira, o comando ou comandos localizados entre os colchetesdo comando então são executados e o LEGAL pula o os comandos do senão.Alternativamente, se a condição for falsa, a execução é desviada diretamente para ocomando ou comandos localizados entre os colchetes do senão.

No próximo exemplo o MC2 acende a luz um e apaga a luz dois quando o botão enterfor precionado. Invertendo o estado destas quando o botão é solto.

Page 15: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 15

# Exemplo:# Toda vez que o botão enter é precionado a Luz 1 acende,# desligando quando ele é solto.Por favorRepita sempre [ se bt enter=1 então [ ligue L1 desligue L2 ]

senão [ desligue L1 ligue L2 ] ]Obrigado

Antes de continuar conecte um sensor de luz em S3 e outro sensorde luz em S8.

As estruturas formadas com o comando se podem estar aninhadas. Em outras palavras,

toda uma estrutura de decisão, com os comandos se, então e senão, pode aparecer dentro

de um bloco de comandos então ou senão de uma outra estrutura. O “aninhamento” deestruturas se pode resultar em seqüências de decisões complexas e poderosas. Como no

exemplo, a seguir:

Page 16: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 16

# Exemplo:# Comandos condicionais aninhados.Por favorRepita sempre[se s4>s8 # Se o s4 receber mais luz que s8então [ se bt enter=1 # se botão enter está precionado então [ ligue L1 desligue L2

desligue L4 ] senão [ desligue L1 ligue L2

desligue L4 ]

senão [ desligue L1 desligue L2

ligue L4 ] ]Obrigado

Neste exemplo, a primeira decisão está baseada nos valores dos sensores S4 e S8.Se S4 for maior que S8, o programa desta a segunda condição:

• se o botão enter estiver precionado o MC2 acende a luz um e apaga a luz dois e• caso contrário o MC2 acende a luz dois e apaga a luz um.

Caso o valor de S4 for menor ou igual a S8 a luz quatro é acesa.

Page 17: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 17

4. Repetição condicional

Esta estrutura difere das demais no sentido de que só executa o conteúdo do “loop”se uma condição previamente testada for verdadeira. Após entrar no “loop”, este só seráabandonado quando a condição for falsa. Analisemos a sua forma abaixo:

enquanto condição [ comando ou grupo de comandos que serão executados enquanto a condição

for verdadeira ]

O LEGAL avalia a expressão antes de cada iteração do “loop”. A repetiçãocontinua enquanto a condição for verdadeira. Em algum ponto, a ação dentro do “loop”comuta a condição para falso, antes de uma nova iteração a expressão será avaliadanovamente; como ela resultará em falso, o “loop” não será executado. Como exemplo,considere o programa a seguir:

# Exemplo:# A luz 1 pisca enquanto o botão enter não é precionado.Por favorSimEnquanto bt enter=0[ Ligue L1 Espere 1t Desligue L1 Espere 1t]NãoObrigado

A condição que controla este “loop” em particular é o status do botão enter. Antes decada iteração, o programa testa o valor do registrador bt enter para ver se é igual a zero, ouseja se o botão enter não foi precionado. Enquanto a condição for verdadeira, o programaexecutará o “loop”. Neste exemplo, a luz um irá piscar uma vez por segundo. O programa irásair do loop quando o botão for precionado tornando a condição falsa.

Page 18: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 18

5. Coletando Dados

O MC2 pode ser programado para se transformar em um coletor de dados, tambémconhecido como “data loger”. Neste caso podemos usar o MC2 como um equipamentoindependente manipulado pelo usuário para coletar dados de uma experiência de laboratório,por exemplo, ou podemos construir e programar um robô para executar alguma tarefa edurante está coletar dados para serem analisados posteriormente.

Entre os diferentes usos do MC2, como coletor de dados, que nós daPNCA pudemos observar destacam-se:

• Uma estação metereológica desenvolvida como trabalho de conclusão de curso,por alunos e engenharia elétrica e

• Uma “caixa preta” que está sendo desenvolvida para coletar os dados de vôo deum foguete caseiro construído por um grupo de espaço modelistas, com lançamentoprevisto para julho de 2006.

Os robôs coletores de dados mais famosos da atualidade são os doisrovers de marte: o Spirit e o Opportunity, Estes valentes robôs estão funcionando

a mais de um ano e os coletados nos ajudam a entender este planeta que tanto nos fascinae serão fundamentais para o planejamento das futuras missões.

Page 19: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 19

Configurando os Sensores

A primeira etapa do processo de coleta é a configuração dos sensores que serãoutilizados. Para fazer esta configuração o LEGAL disponibiliza o comando ative, cuja sintaxeé dada a seguir:

ative sensor

Onde sensor pode ser substituído por qualquer um dos seguintes registradores:

S1, S2, S3, S4, S 5, S6, S 7 e S8.

Para configurarmos o MC2 para funcionar como um coletor de dados nosso programanecessita executar um conjunto de passos:

• Configuração dos sensores;• Configuração do tempo entre leituras;• Iniciar a coleta e• Finalizar a coleta.

Uma vez feita a coleta, poderemos analisar os dados obtidos no módulo Coletar Dadosdo LEGAL.

Page 20: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 20

É importante notar que somente é possível indicar um sensor para cada comandoative, desta forma, para aplicações onde mais de um sensor é necessário devemos usardiversos comandos ative. Como pode ser visto na listagem a seguir.

.

.

.# configura o MC2 para ler os sensores s3 e s4.

ative s3ative s4

.

.

.

Configurando o Tempo entre as Leituras

Para configurar o tempo entre as leituras devemos usar o comando intervalo, asintaxe deste comando é definida como:

Intervalo duração s

Onde duração deve ser substituída pelo intervalo, em segundo, entre dois conjuntosde leituras. No exemplo a seguir o MC2 irá fazer suas leituras a cada dois segundos.

.

.

.# configura o intervalo entre as leituras em 2 tempos.intervalo 2 t...

Supondo que os dois trechos de programas façam parte de um mesmo projeto teremosum programa onde o MC2, a cada 2 segundos, fará a leitura dos sensores S3 e S4 earmazenará os dados coletados em sua memória.

Entre os diferentes usos do MC2, como coletor de dados, que nós daPNCA pudemos observar destacam-se:

Page 21: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 21

O seu programa e os dados coletados pelo MC2 compartilham amesma região de memória. Portanto, se seu programa for muito extensosobrará pouco espaço para o armazenamento de dados.

Caso o MC2 preencha todo o espaço de memória disponível para o armazenamentode dados, ele para a coleta, sem comprometer a execução de seu programa.

Início e Fim da Coleta

Para iniciar a coleta de dados basta executar o comando coleta e para interrompê-ladevemos usar o comando Fimcoleta.

No intervalo de tempo entre este dois comando o MC2 executará a leitura e oarmazenamento dos dados lidos dos sensores.

No exemplo a seguir o MC2 fará uma leitura a cada três segundos dos sensores S3 e S4.Como o intervalo entre ativar a coleta e interrompe-la é de trinta segundos, portanto, neste programaserão feitas dez leituras.

# Exemplo:# Programa o MC2 como coletor de dados.Por favor

# configura o MC2 para ler os sensores s3 e s4. ative s3 ative s4

# configura o intervalo entre as leituras em 2 tempos. intervalo 3 t

# inicia a coleta coleta

Espere 30 t # 30 tempos de leituras

# termina a coleta. Fimcoleta

Page 22: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 22

Obrigado

É importante ter em mente que existem quatro maneiras distintas do MC2 sair domódulo de leitura:

• A primeira é usando o comando Fimcoleta;• A segunda é quando acaba a memória disponível para gravação dos dados

coletados;• A terceira é quando mudamos o MC2 para o modo de conectado e• Quando reiniciamos o MC2.

Independente da maneira utilizada para interromper a coleta, os dados coletadosestarão seguros na memória do MC2. Observe o exemplo a seguir onde o comandoFimcoleta não é utilizado.

No programa listado a seguir o MC2 é configurado para coletar os dados dos sensoress3 e s4, a coleta é feita a cada dois segundos. Antes de fazer a coleta o MC2 acende a luzL1 e fica esperendo que o usuário aperte o botão enter para iniciar a coleta.

Durante a coleta a luz L4 fica piscando. Para terminar a coleta o usuário deve sair domodo de execução precionado o botão programa/roda, caso contrário a leitura irá se repetirindefinidamente.

Exemplo de Coletor

Page 23: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 23

# Exemplo:# Programa o MC2 como coletor de dados.Por favor

# configura o MC2 para ler os sensores s3 e s4. ative s3 ative s4

# configura o intervalo entre as leituras em 2 tempos. intervalo 2 t

# espere o botão enter ser precionado. Ligue L1 espere bt enter = 1 Desligue L1

# inicia a coleta coleta

repita sempre [ Ligue L4 Espere 1 t ] Ligue L6Obrigado

Analisando os Dados Coletados

Para visualizarmos os dados coletados devemos colocar o MC2 no modo conectado,entrar no Modo Coletar Dados e configurar LEGAL com os sensores que queremos analisar,como mostra a figura a seguir.

Observe que neste exemplo podemos analisar apenas os sensores S3 e S4 cujosdados foram coletados pelo programa exemplo. Se modificarmos o programa será possívelanalisar outros sensores.

Page 24: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

kit alfa impar-1.eps

PA - 24

Tela de configuração do Coletor de Dados.

Uma vez selecionados os sensores basta clicar o botão Coletar e quando a janelade coleta aparecer, clique no botão Gráficos.

Botão para entrar no modo para traçar de gráficos.

Quando estivermos no modo gráfico clicamos na aba Receber indicando para oLEGAL nossa intenção de transferir para o computador os dados coletados pelo MC2.

Page 25: PA - 1 1. Comando Espere Condicional - 1 1. Comando Espere Condicional Como vimos anteriormente, a execução do comando espera faz com que o MC2 pare seu processamento por um intervalo

PA - 25

Os campos Tempo Entre Leituras e Total de Leituras serão automaticamentepreenchidos quando a transferência de dados ocorrer. Para iniciar a transferência bastaclicarmos no botão Iniciar Leituras.

Aba com informações sobre os dados coletados.

Botão iniciar leituras

Pronto, já podemos observar um gráfico com os dados coletados.