Solução:
Resultado:
A complexidade dos programas vai aumentando. Nós tentamos compensar o
aumento da dificuldade através da aplicação de melhores técnicas de
programação. E os subprogramas demonstraram ser um ótimo recurso. Como
uma nova estrutura de controle reconhecemos as comparações lógicas com
subseqüente ramificação do programa. Mas nós reconhecemos também que
para as novas propriedades, ou uma melhor realização dos experimentos já
conhecidos, é necessário um número cada vez maior de sensores.
4.4 O identificador de luz
Até o momento deixamos o robô reagir mais passivamente aos sinais
ambientais. Agora queremos que o robô saia ativamente em busca de
sinais. O kit possui dois fototransistores, que usaremos como identificadores
de luz. Cada sensor age sobre um dos motores, e com isso será possível
realizar um "acompanhamento de feixe de luz".
O programa consiste de duas partes. Uma parte contém a busca por uma
fonte de luz e na outra parte é realizado o acompanhamento ou o
direcionamento à fonte de luz. É claro que nós vamos utilizar de novo as
possibilidades da técnica de subprogramas. Após ligar será ativado o
subprograma BUSCA_LUZ. Vamos sair deste subprograma somente quando
for encontrada uma fonte de luz.
O programa principal procura guiar o robô em direção à fonte de luz.
Sempre que a direção do robô se desviar muito da linha ideal, um dos
sensores de luz não receberá mais um sinal da fonte de luz. Em seguida, o
respectivo motor será parado por um instante, até que os dois sensores
reconheçam de novo a fonte de luz. Disto resulta a atribuição de tarefas.
Tarefa 5:
Nós montamos o modelo identificador de luz com a relação de
redução mais lenta 100: 1. Programe primeiro a função "busca_luz"
(preferencialmente como um subprograma) Com isso o robô gira, no
mínimo, por 360° em um sentido. Depois ele gira, no mínimo, por
360° no sentido contrário. Quando durante a busca por luz é
encontrada uma fonte de luz, o robô pára. Se após as duas voltas
completadas nenhuma luz foi encontrada, a busca por luz será
interrompida e o programa encerrado.
Quando a busca por luz é bem sucedida, o modelo deve
movimentar-se em direção à fonte de luz. Quando a fonte de luz se
movimenta para a esquerda ou para a direita, o robô segue estes
movimentos da luz. Quando ele perde o contato com a fonte de luz,
começa novamente o programa de busca por luz. Experimente, se
você consegue atrair o robô com uma lanterna e dirigir o mesmo
através de um percurso de obstáculos.
P
65