6
Clube de Programação e Eletrónica 11 Lego Ev3 Exercícios introdutórios PROJETO LEGO MINDSTORMS EV3 2. O sensor de toque O Sensor de toque O sensor de toque deteta quando o botão que se encontra à superfície do sensor de toque é pressionado. É possível usar este sendor para detetar, por exemplo, quando o robô bate em alguma coisa. Este sensor pode também ser usado para, sendo pressionado pelo dedo do utilizador, induzir uma ação. O sensor de toque tanto indica que está pressionado, como que não está pressionado. Não consegue medir durante quanto tempo está o sensor pressionado ou com quanta força foi feita a pressão. A saída do sensor de toque é uma variável lógica Verdade / Falso (True /False). À posição do sensor de toque chama-se estado do sensor e é Verdade (True) se estiver pressionado, e Falso (False) se não estiver pressionado. O sensor de toque também pode rastrear se o botão foi premido e libertado em ações anteriores. Chama-se a esta função Bumped e é útil para determinar se o sensor tinha sido pressionado num momento anterior ao da ação que está a decorrer. O sensor de toque pode fornecer os seguintes dados: Dados Tipo Notas Estado Lógico Verdade se o botão for premido; de contrário, Falso Premido Lógico Verdade se o botão for premido; de contrário, Falso Libertado Lógico Falso se o botão for premido; de contrário, Verdade Bumped Lógico Verdade se o botão for premido e libertado no passado; para que ocorra um novo Bumped, é necessário que o botão volte a ser premido e libertado de novo

EV3#4: Exercicios com o sensor de toque

Embed Size (px)

Citation preview

Page 1: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

11 Lego Ev3 – Exercícios introdutórios

PROJETO LEGO MINDSTORMS EV3 2. O sensor de toque O Sensor de toque

O sensor de toque deteta quando o botão que se encontra à superfície do sensor de toque é pressionado. É possível usar este sendor para detetar, por exemplo, quando o robô bate em alguma coisa. Este sensor pode também ser usado para, sendo pressionado pelo dedo do utilizador, induzir uma ação. O sensor de toque tanto indica que está pressionado, como que não está pressionado. Não consegue medir durante quanto tempo está o sensor pressionado ou com quanta força foi feita a pressão. A saída do sensor de toque é uma variável lógica Verdade / Falso (True /False). À posição do sensor de toque chama-se estado do sensor e é Verdade (True) se estiver pressionado, e Falso (False) se não estiver pressionado. O sensor de toque também pode rastrear se o botão foi premido e libertado em ações anteriores. Chama-se a esta função Bumped e é útil para

determinar se o sensor tinha sido pressionado num momento anterior ao da ação que está a decorrer. O sensor de toque pode fornecer os seguintes dados:

Dados Tipo Notas Estado Lógico Verdade se o botão for premido; de contrário, Falso Premido Lógico Verdade se o botão for premido; de contrário, Falso Libertado Lógico Falso se o botão for premido; de contrário, Verdade Bumped Lógico Verdade se o botão for premido e libertado no passado; para que ocorra um novo Bumped, é necessário que o botão volte a ser

premido e libertado de novo

Page 2: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

12 Lego Ev3 – Exercícios introdutórios

A função Bumped Para além de detetar se o botão está ou não premido, o sensor de toque também guarda a informação se o sensor já foi, em momentos anteriores, premido e libertado. A esta função chama-se Bumped. Esta função permite usar de forma simples o sensor de toque como um interruptor de pressão. Caso o sensor de toque indique que ocorreu um Bumped, não o voltará a fazer até que o sensor de toque seja de novo pressionado e libertado, o que facilita a realização de um programa que faça corresponder a cada toque uma ação determinada. A tabela seguinte mostra um exemplo onde um sensor de toque é premido e libertado por duas vezes. O programa vai testando o estado da função Bumped ao longo de oito passos. Passo Ação Premido Libertado Bumped 1 O botão inicia sem estar premido Falso Verdade Falso 2 O botão é pressionado Verdade Falso Falso 3 O botão é libertado Falso Verdade Verdade 4 O botão continua sem estar premido e o programa testa o sensor de toque novamente Falso Verdade Falso 5 O botão é premido uma segunda vez Verdade Falso Falso 6 O botão é mantido premido e o programa volta a testar o sensor de toque Verdade Falso Falso 7 O botão é libertado Falso Verdade Verdade 8 O botão continua sem ser pressionado e o programa volta a testar o sensor de toque Falso Verdade Falso

Notar que quando o botão é mantido premido, o sensor de toque continuará a indicar Premido cada vez que o programa o testar. No entanto, assim que o botão for libertado, o sensor só indicará Bumped na primeira vez que o programa efetuar o teste ao sensor. Para que volte a ocorrer um Bumped é necessário que se volte a premir e a largar o botão de pressão.

Page 3: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

13 Lego Ev3 – Exercícios introdutórios

2. O bloco de programação do sensor de toque

1. Seleção da porta onde está ligado o sensor (Port seletor) 2. Seleção do modo de funcionamento (Mode selector) 3. Entradas (Inputs) 4. Saídas (Outputs)

Parâmetros configuráveis: 1. Seleção do modo de funcionamento:

Modo Função Bloco

Measure – State Retorna o valor do estado do sensor de toque. O estado será Verdade (True) se o sensor de toque estiver premido; caso contrário, será Falso (False).

Compare - State Neste modo, pode escolher-se o qual o estado (State) que se pretende testar no sensor de toque (Liberto – Released, premido – Pressed ou Bumped). O valor de Compare Result será o valor do estado do modo selecionado. O estado do sensor será indicado na saída Measured Value.

Page 4: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

14 Lego Ev3 – Exercícios introdutórios

2.2. Programando com o sensor de toque 2.2.1. Reagir quando o sensor de toque é acionado Blocos usados:

Iniciar

Mover a direção

Esperar

Loop

Som

Objetivo: Criar um programa que faça o robô parar quando toca o com sensor de toque num obstáculo, fazer o som “Uh-oh”, curvar para trás e seguir depois uma trajetória reta até encontrar um obstáculo de novo. Solução possível:

Page 5: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

15 Lego Ev3 – Exercícios introdutórios

2.2.2. Simular um cachorrinho Blocos usados: Objetivo: Criar um programa que faça o robô aproximar-se de alguém quando essa pessoa se afasta, afastar-se quando essa pessoa se aproxima e parar quando é acionado o sensor de toque (simulando uma festinha). Enquanto está parado, o robô deve ladrar. Solução possível:

Iniciar

Mover a direção

Som

Loop

Switch

Page 6: EV3#4: Exercicios com o sensor de toque

Clube de Programação e Eletrónica

16 Lego Ev3 – Exercícios introdutórios

2.2.3. Testando a função Bumped Blocos usados:

Iniciar

Mover a direção

Mover tanque

Esperar

Loop

Objetivo: Criar um programa que faça o robô assumir três trajetórias diferentes (neste caso, andar em frente, virar para a direita, virar para a esquerda) cada vez que o botão de pressão for premido e largado. Solução possível: