EV3#7: Exercicios seguidor de linha
-
Upload
ana-carneirinho -
Category
Education
-
view
1.481 -
download
8
Transcript of EV3#7: Exercicios seguidor de linha
Clube de Programação e Eletrónica
26 Lego Ev3 – Exercícios introdutórios
PROJETO LEGO MINDSTORMS EV3 5. Exercícios seguidores de linha Neste capítulo, exploraremos alguns exercícios seguidores de linha com robôs EV3.
5.1. Usando um sensor de cor, seguir a linha pela direita O programa mais simples que se pode fazer é usando um sensor de cor – modo intensidade de luz refletida - junto ao chão (como na figura ao lado) e colocar o robô de um dos lados da linha. Neste exercício, vamos colocá-lo do lado direito. Se movermos o robô para fora e para cima da linha, podemos medir a luz refletida no Port View do software do EV3 (canto inferior direito). Quando o robô se encontra fora da linha, a superfície deve ser branca e a luz refletida encontra-se perto do valor 100. Esse valor baixa muito à medida que pomos o robô sobre a linha preta. Como decidimos fazer o robô contornar a linha pela direita, quando o valor da intensidade luminosa refletida aumenta, significa que o robô se está a afastar da linha e deve rodar para a esquerda; caso o valor da intensidade luminosa refletida diminua, significa que o robô está a colocar-se sobre a linha preta e, por isso, deve rodar para a direita.
Está disponível em https://www.youtube.com/watch?v=lqU8BTAvkOg um vídeo com a demonstração dos exercícios propostos neste capítulo.
Clube de Programação e Eletrónica
27 Lego Ev3 – Exercícios introdutórios
Um programa possível para concretizar a ideia proposta é:
Resultados: O movimento revela-se pouco suave; a velocidade do robô tem de ser baixa; a capacidade de realizar ângulos apertados é reduzida.
Clube de Programação e Eletrónica
28 Lego Ev3 – Exercícios introdutórios
5.2. Usando dois sensores de cor O uso de dois sensores de cor – modo intensidade de luz refletida – instalados como se indica na figura ao lado, simplifica a programação. Os sensores têm de estar instalados de forma a que a linha que o robô deve seguir se encontre no meio dos dois. Se a deteção de luz refletida do sensor da direita for superior à deteção da luz do sensor da esquerda, o robô deve rodar para a esquerda; caso a deteção de luz refletida pelo sensor da esquerda seja superior ao valor detetado pelo sensor da esquerda, o robô deve rodar para a direita. Um programa possível para concretizar a ideia proposta é:
Resultados: O movimento é ainda pouco suave; a velocidade do robô tem de ser baixa; a capacidade de realizar ângulos apertados é reduzida. Tem a vantagem, relativamente ao programa anterior, de não ter de definir qual o lado da linha que vai ser contornado.
Clube de Programação e Eletrónica
29 Lego Ev3 – Exercícios introdutórios
5.3. Usando dois sensores de cor e suavizando o movimento O movimento do robô com dois sensores como o descrito em 5.2., pode ser suavizado se for calculada a diferença entre os valores lidos pelos dois sensores. Caso essa diferença seja muito grande, o robô deve rodar com um ângulo apertado. Caso a diferença seja pequena, o robô deve rodar com um valor de ângulo pequeno; finalmente, caso a diferença entre as medidas da luz refletida seja nula, o robô deve seguir em frente. O sentido da rotação é determinado pelo sinal da operação de subtração realizada. Um programa possível para concretizar a ideia proposta é:
Resultados: O movimento suaviza bastante relativamente aos exercícios anteriores. Tem o inconveniente de , caso perca a linha, de seguir em frente.
Clube de Programação e Eletrónica
30 Lego Ev3 – Exercícios introdutórios
5.4. Usando dois sensores de cor, suavizando o movimento e procurando a linha caso “a perca” No exercício 5.3., quando o robô “perdia a linha”, como a diferença entre as intensidades medidas pelos dois robôs era nula, o robô seguia em frente. Neste exercício, a diferença entre os valores medidos pelos sensores é calculada. Caso esse valor seja superior, em módulo, a 10, o robô é sujeito a instruções iguais às do exercício anterior. Caso esse valor seja inferior, significa que o valor lido pelos dois sensores é muito próximo. Nesse caso, os valores medidos são somados. Caso a soma seja superior a 180, significa que robô se encontra sobre a superfície branca (o valor lido pelos sensores é elevado) e deve rodar até encontrar de novo a linha; caso a soma seja inferior a 180, significa que o robô se encontra sobre a linha preta (o valor lido pelos sensores é baixo) e por isso deve seguir em frente. Um programa possível para concretizar a ideia proposta é:
Resultados: O movimento mantém-se suave. Caso o robô “perca a linha”, gira sobre si próprio até que a encontre de novo.
Clube de Programação e Eletrónica
31 Lego Ev3 – Exercícios introdutórios
5.5. Usando um sensor de cor, suavizando o movimento Este exercício baseia-se na proposta do canal de Youtube Blue Angel: https://www.youtube.com/watch?v=ODAGVeeDagk Esta proposta, que assume o robô com apenas um sensor de cor – modo intensidade de luz refletida – e que o contorno da linha será feito pelo lado direito da mesma, a velocidade de cada um dos motores é controlada individualmente. Para tal, recorre-se à diferença entre o valor lido pelo sensor e o valor que seria lido caso este estivesse sobre a parte branca da pista e à diferença entre o valor lido pelo sensor e o valor que seria lido caso este estivesse sobre a linha preta. Cada uma destas diferenças é multiplicada por um fator de 0,3 e enviada para a velocidade com que os motores da direita e da esquerda, respetivamente, se devem movimentar. O fator de 0,3 pretende reduzir a velocidade do motor (relativamente à obtida caso a diferença fosse colocada “em bruto” na velocidade de cada motor) e pode ser modificado. O programa proposto é o seguinte:
Resultados: O movimento mantém-se suave, mas menos rigoroso no seguimento da linha que o obtido no exercício 5.4.