View
623
Download
7
Category
Preview:
Citation preview
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
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.
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.
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:
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
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:
Recommended