Você está na página 1de 6

Clube de Programação e Eletrónica

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

11
Lego Ev3 – Exercícios introdutórios
Clube de Programação e Eletrónica
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.

12
Lego Ev3 – Exercícios introdutórios
Clube de Programação e Eletrónica

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 – Retorna o valor do estado do sensor de toque. O estado será Verdade (True) se o
State sensor de toque estiver premido; caso contrário, será Falso (False).

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

13
Lego Ev3 – Exercícios introdutórios
Clube de Programação e Eletrónica

2.2. Programando com o sensor de toque

2.2.1. Reagir quando o sensor de toque é acionado

Blocos usados:

Iniciar Mover a Esperar Loop Som


direção

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:

14
Lego Ev3 – Exercícios introdutórios
Clube de Programação e Eletrónica

2.2.2. Simular um cachorrinho


Blocos usados: Objetivo:
Iniciar 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:

Mover a
direção

Som

Loop

Switch

15
Lego Ev3 – Exercícios introdutórios
Clube de Programação e Eletrónica

2.2.3. Testando a função Bumped


Blocos usados:

Iniciar Mover Mover Esperar Loop


a tanque
direção

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:

16
Lego Ev3 – Exercícios introdutórios

Você também pode gostar