fischertechnik Mobile Robots II Manual De Instrucciones página 66

Ocultar thumbs Ver también para Mobile Robots II:
Tabla de contenido

Publicidad

Idiomas disponibles

Idiomas disponibles

P
As diferentes predeterminações têm por objetivo reduzir o risco de o
robô ficar preso num canto.
Solução:
Pela tarefa colocada reconhecemos a necessidade de comandar o robô
em função dos sensores de bordas. Por isso dividimos a tarefa em
partes menores. Primeiro consultamos os sensores (sensores de
ligamos os motores em marcha ré. Em seguida a nossa roda de im-
pulsos deve detectar uma determinada distância. Determinamos o
comprimento da distância com a variável VAR10. Uma novidade é o
bloco de atribuição Z2 = 0. Após algumas reflexões percebemos o
seu sentido. Caso a variável de contagem não esteja valendo zero, o
mecanismo funciona somente uma única vez, pois quando Z2 tiver
atingido o valor da variável VAR10, o nosso contador de distância iria
falhar em cada trajeto subseqüente. Do ponto de vista de progra-
madores profissionais, aqui trata-se de lidar com variáveis locais e
globais. A variável local Z2 será zerada no subprograma antes de
cada uso.
64
bordas). Quando nenhum dos sensores está
ativado, o robô segue em frente. Na figura isso
é representado pelo bloco "Em_frente". Por trás
de cada um destes novos módulos esconde-se
um subprograma. O uso de subprogramas
melhora a visualização de sistemas complexos,
além disso, eles podem ser usados repetida-
mente e contribuem assim para um melhor
aproveitamento da capacidade de processamento
dos computadores. Nosso primeiro subprograma
é muito simples, e apenas inicia o
funcionamento dos motores M1 e M2. Porém
nós precisamos de mais subprogramas. O robô
deve se desviar, dependendo da situação, para a
esquerda, para a direita ou para trás. Neste
caso não será suficiente apenas acionar os
motores. É preciso programar uma certa
eqüência de movimentos. Vamos examinar mais
um subprograma. Com este subprograma o robô
deve recuar ao detectar uma borda. Para tanto
Resultado:
A chamada de subprogramas melhora a visualização dos programas.
Utilizamos variáveis para medir diversas grandezas, aqui se trata de
distâncias de trajeto. Precisamos de distâncias diferentes para que o nosso
robô também possa se "libertar" dos cantos. Se as distâncias fossem
absolutamente idênticas, poderia acontecer que o robô iria marchar para lá
e para cá ao chegar num canto, sem conseguir sair.
Ao usar variáveis devemos ficar atentos em relação à sua área de validade.
Variáveis locais, ou seja, variáveis usadas somente dentro de um
subprograma, nós zeramos antes do seu primeiro uso. Vamos constatar
também que o nosso robô precisa de um certo espaço de movimentação
para o seu correto funcionamento. O robô não saberá reagir se, durante um
movimento de desvio, encontrar novamente uma borda. Os grandes
"engenheiros" entre vocês podem tentar achar uma solução para isso.
4.3 Robô com reconhecimento de obstáculos
As bordas nós agora já sabemos reconhecer muito bem. Mas os obstáculos
comuns continuam sendo problemáticos. Precisamos modificar o princípio do
reconhecimento de bordas. Um contato de colisão vai substituir as rodas
auxiliares. Nesta ocasião refletimos também sobre uma deficiência do
detector de bordas, pois existem situações perigosas, nas quais o robô
despenca "cegamente" no abismo durante a marcha ré e sem sensores
voltados para trás. Um terceiro sensor elimina esta deficiência. Neste meio
tempo nós já nos tornamos programadores experientes. Por sorte, pois
agora a tarefa ficou mais complicada, como nos mostra uma olhada sobre o
programa.
O programa contém agora novos blocos funcionais. Incluímos em
determinadas posições do programa os módulos de ESPERA. Isto é
facilmente compreensível, pois significa somente a espera de um tempo
programado, antes da execução da próxima função do programa. Uma novi-
dade é as comparações lógicas. Até agora sempre realizamos logo uma
comparação em cada consulta ao sensor e ramificamos o nosso programa de
forma adequada. Uma comparação similar existe também na contagem de
impulsos, ou seja, a comparação com um determinado número de impulsos.
Outra novidade também é a comparação lógica com várias expressões num
módulo COMPARAÇÃO.
Tarefa 4:
O robô será montado com a relação de redução mais veloz 50:1, con-
forme descrito na instrução de montagem. O modelo deve seguir em
linha reta em frente. Ao identificar um obstáculo num dos sensores
(E3 ou E4) dianteiros, o robô pára imediatamente. Caso um obstáculo
foi detectado no lado direito, o robô recua e desvia pelo lado esquer-
do (aproximadamente 30°). No caso de um obstáculo detectado no
lado esquerdo, após recuar robô desvia para o lado direito (aproxi-
madamente 45°). O número desigual de graus dos ângulos é
necessário para que ele também consiga sair de um canto.
Caso o obstáculo seja detectado diretamente à frente, o robô deve
recuar e desviar num ângulo de 90°. Caso durante o seu retorno sur-
ja um obstáculo por trás, ele deve avançar um pouco e depois
desviar como planejado.

Publicidad

Capítulos

Tabla de contenido
loading

Tabla de contenido