Esta é a segunda versão do Robô Inteligente. Nesta versão, o projeto foi todo revisado e um novo microcontrolador foi aplicado.

Nota: A primeira versão encontra-se no site. Esta é de uma Eletrônica Total de 2010.

 

A proposta

Ao encontrar um obstáculo o robô para, move o sensor 90° à esquerda e mede a distância de algum possível obstáculo. Depois ele faz uma outra medida, desta vez à direita. Após isso, o robô calcula a maior distância entre as duas medidas e segue nesta direção. Caso ambas as medidas sejam iguais, o desvio será sempre feito à esquerda. Veja a figura 1.

 


| Clique na imagem para ampliar |

 

O robô utiliza um sonar como sensor de distância, um buzzer e um LED nos efeitos sonoros e visuais, respectivamente. E como "cérebro" para esta versão foi utilizado o Ame Basic 2k, da Arne Robotics (www.arnerobotics.com.br). O chassi, na nova versão, foi também alterado. Este novo chassi foi construído sobre uma plataforma de acrílico. Os motores utilizados para a tração também são diferentes dos anteriores, mas ainda seguem a mesma concepção: trata-se de dois motores DC com caixa de redução.

Além disso, um LCD serial foi aplicado à nova versão. A função deste LCD é demonstrar as medidas tomadas pelo sensor, permitindo ao operador do robô acompanhar de forma efetiva seu próximo desvio.

 

 


| Clique na imagem para ampliar |

 

 

Apesar de um tanto diferente da versão 1 em sua aparência, esta nova versão é bastante parecida com a anterior. Desta forma, se você montou a primeira versão e quer experimentar esta, não encontrará muitas dificuldades na adaptação das novas partes mecânicas.

 

O CIRCUITO

Na figura 2 é demonstrado o circuito elétrico do robô. O cérebro do mesmo é o microcontrolador embedded Ame Basic 2k. Neste microcontrolador foram ligados um sonar, um servo de aeromodelo S-3003 FUTABA, um driver para motores L293D, um LED, um LCD serial e um buzzer.

O circuito integrado Cl2 (L293D) pode controlar motores com tensão de trabalho de até 36 V sob uma corrente máxima de 0,6 A (600 mA). Os diodos D1 a D8, ajudam a proteger as saídas do L293D.

O diodo D9 é muito importante para o circuito e sua função é limitar a tensão de alimentação de 6 V (4 pilhas) para um valor próximo a 5 V (5,3 VDC aproximadamente), devido a queda de tensão de 0,7 V. É importante dizer que o Arne Basic 2k não opera com tensões maiores que 5,5 V quando usado o pino +5V como entrada. A omissão deste componente (D9), ou mesmo a troca deste por outro qualquer poderá provocar a queima do microcontrolador! Também não é possível utilizar um número maior de pilhas ou mesmo baterias com tensão maior que 6 V. Preste bastante atenção a este quesito!

O resistor R1 e o LED formam o efeito visual do robô. Foi utilizado no protótipo um LED vermelho redondo de 5mm de diâmetro (LED comum). Existem outros tipos no mercado, como os de alto brilho e mesmo com outros tamanhos. Não é recomendado alterar o tipo do LED caso você não saiba calcular a corrente final do mesmo. Em alguns casos ela pode ser bem maior do que o microcontrolador pode suportar em seu pino de I/O (no caso, até 25 mA por pino em modo dreno). O conjunto foi calculado para ficar dentro desta faixa, com uma margem bem folgada.

O resistor R2, juntamente com o transistor 01 e o buzzer fazem parte do conjunto "efeito sonoro". 0, pode ser substituído por outros transistores NPN de uso geral como o BC548, BC549 ou mesmo o BC337. O buzzer é do tipo continuo, ou seja, este possui um oscilador interno.

O LCD é do tipo serial, desenvolvido pela Ame Robotics. O sonar utilizado no protótipo foi adquirido junto a Tato Equipamentos Eletrônicos (www.tato.ind.br). Ele tem excelente performance e baixo custo e pode ainda ser colocado em muitos outros projetos. O servo SRV1 é um S-3003 da FUTABA, como dito anteriormente, utilizado em aeromodelos e pode ser adquirido em lojas especializadas em modelismo. A sua substituição por qualquer outro servo compatível com a linha FUTABA também é possível (sugestão: CS-61 HOBBICO).

Os motores M1 e M2 são motores redutores (motores com caixa de redução). Os mesmos podem ser adquiridos no mercado especializado, aproveitados de brinquedos fora de uso, ou ainda adaptados de servos para posicionamento de antenas parabólicas, como feito na primeira versão. Estes servos podem ser adquiridos novos ou usados em lojas que comercializam e/ou prestam manutenção neste tipo de antena.

Os capacitores C1, C2 e C3 são filtros. A chave S, permite ligar e desligar o robô. A alimentação do sistema é fornecida por quatro pilhas pequenas ou médias, e a escolha por uma ou outra depende do tempo de operação desejado e, claro, do tamanho do chassi do seu robô. O uso de pilhas alcalinas no robô é altamente indicado, uma vez que as mesmas têm tempo de operação superior às pilhas comuns.

Não é recomendável o uso de pilhas recarregáveis de NiCad. Geralmente estas pilhas têm tensão de descarga menor (em torno de 1.2 V) que as pilhas secas comuns (1.5 V). Estas pilhas completamente carregadas apresentarão uma tensão de 1.4 V e juntas (4 delas) somarão apenas 4,8 V. Como há um diodo em série com o circuito, este provocará uma queda de 0.7 V e a tensão apresentada ao microcontrolador será menor que o mínimo tolerado pelo mesmo (4,5 V).

 

Montagem Eletrônica

Na figura 3 é dado o desenho do lay-out para o circuito impresso. Você também poderá desenhar sua própria placa a partir do desenho do circuito elétrico fornecido, ou ainda usar uma placa do tipo padrão para a montagem eletrônica. A escolha é livre.

 


| Clique na imagem para ampliar |

 

 

Aconselho o uso de um soquete para CI1 e Cl2. No caso de Cl1 um soquete de barra com 20 pinos é o mais recomendável. Caso você não o encontre em sua região, um suporte para Cl com 40 pinos poderá ser utilizado (apenas uma metade). Para ligar o servo você poderá utilizar uma "barra de pinos" com três segmentos, ou mesmo soldar diretamente os fios do servo na placa (não muito recomendado). O LED pode ser soldado diretamente na placa ou pode-se usar um par de fios para colocar o LED em um ponto mais visível do robô. O mesmo procedimento é recomendado para o buzzer.

Como dito anteriormente, o buzzer utilizado no robô é do tipo com oscilador interno. Outros buzzers do tipo empregados em cartões de natal, por exemplo, sem oscilador interno não servirão neste projeto. Para saber se um buzzer tem ou não oscilador interno, basta ligá-lo em um conjunto de quatro pilhas (6 VDC), respeitando a polaridade indicada pelo mesmo. Se este emitir um som contínuo, é porque tem oscilador interno, mas se o mesmo não emitir som algum é sinal que não possui oscilador interno. A figura 4 nos mostra como realizar este teste.

 


| Clique na imagem para ampliar |

 

 

Na aplicação do LCD à placa é recomendável o uso de uma barra de pinos, também com três segmentos. Caso você não disponha desta, poderá soldar os fios do LCD diretamente a placa.

Tenha bastante atenção ao fazê-lo para evitar a inversão da polaridade que poderia ser fatal para o equipamento. A mesma sugestão é válida para o sonar. Tenha muita atenção ao soldar os diodos D1 a D8 e o diodo D9. Eles são polarizados e qualquer inversão pode ser fatal para o circuito. Repare também que D1 a D8 são diodos de sinal 1N4148 e o diodo D9 é do tipo retificador 1 N4001. Procure não os trocar!

O capacitor C9 é polarizado. Tenha cuidado ao soldá-lo. Os capacitores C1 e C2 são do tipo cerâmico e não possuem polaridade, e assim não há risco de inversão neste caso.

O transistor Q1, também é polarizado e sua inversão poderá fazer com que o buzzer não funcione. O próprio buzzer é polarizado. Procure ligá-lo da seguinte maneira: o positivo do buzzer no 6 VDC e seu negativo no coletor de Q1.

A gravação do Ame Basic 2k é feita com o cabo fornecido com o mesmo.

A ligação dos motores pode ser feita através de um terminal do tipo "parafusável", ou ainda soldando os fios diretamente na placa.

 

Obs.: Não é preciso dizer que, após o término de qualquer montagem eletrônica, é importante fazer uma verificação de todas as conexões, posições dos componentes (principalmente os polarizados), buscar por possíveis soldas frias ou irregulares e, no caso de você mesmo ter feito sua placa, verifique se não existem trilhas faltando, em curto ou qualquer ligação errada. É necessária alguma paciência ao se "verificar" uma placa. É melhor perder um pouco de tempo agora, do que ver tudo virar fumaça ao ligar o circuito.

 

Montagem Mecânica

Na figura 5 você pode ver o esquema da montagem desta versão. O principal material utilizado na construção do chassi foi um pedaço de acrílico vermelho com 16 cm de diâmetro.

O servo e a placa foram presos ao chassi com parafusos de 5 cm de comprimento e 3 mm de diâmetro. Porcas e arruelas também fazem parte do conjunto. Já os motores foram presos ao chassi com fita dupla face. O LCD foi preso ao chassi através de hastes feitas com tubos de cobre e pedaços de plástico. O buzzer e o suporte de pilhas foram fixados também com o auxílio de fita dupla face.

 


| Clique na imagem para ampliar |

 

 

O sonar (sensor) foi preso à alavanca (tipo estrela) do servo com o uso de "cola quente". O uso deste tipo de adesivo garante boa aderência e também que o mesmo possa ser reaproveitado em projetos futuros, uma vez que é bem simples a remoção deste tipo de adesivo. A "roda boba" que dá o apoio ao robô foi feita com uma bola de tênis de mesa e arame de 1,5 mm de espessura.

 

O PROGRAMA

O programa está disponível na seção downloads do site da revista e inclusive no site do autor. Ele foi desenvolvido com a Linguagem BASIC, utilizando o compilador BASCOM-AVR. O compilador, na versão demo, pode ser obtido gratuitamente no site da empresa MCS Electronics (www.mcse-lec.com). A versão demo compilará tranquilamente o código disponibilizado e também poderá ser utilizada para fazer outros programas para o Arne Basic 2k, já que a mesma é free até 4 kB de programa.

O funcionamento do programa está descrito no fluxograma apresentado na figura 6. Ele inicia as variáveis e define as direções dos pinos de I/O. Logo a seguir, o servo é "centralizado" (sonar apontado para frente) e os motores são desligados (robô parado). Um laço é iniciado sempre verificando o valor obtido pelo sonar, movendo o robô à frente, centralizando o servo e trocando o estado do LED (isso permite que o mesmo pisque). Além disso, o LCD apresentará a mensagem.

Quando um obstáculo é detectado, o robô para imediatamente. Nesta função, o robô gira o servo à esquerda, tira uma medida do sonar, gira o servo à direita e tira uma outra medida. Estas duas medidas são guardadas em variáveis diferentes. Isso é feito para que o programa possa calcular qual delas é a maior. Esta lógica permite que o programa tome uma decisão: se o desvio deve ser à esquerda ou à direita. Caso ambas as distâncias sejam iguais, o robô desviará sempre a esquerda. Durante o desvio, o LED será apagado, o buzzer ligado e o LCD apresentará as "medidas" feitas à direita e à esquerda.

É importante entender que as informações apresentadas no LCD não dizem respeito a exatamente uma medida em milímetros, centímetros ou mesmo metros. Os valores nada mais são que o tamanho do pulso enviado pelo sonar, em múltiplos de 10 ps. Quanto menor o valor, mais próximo temos um obstáculo, e quanto maior for o valor, maior será a distância entre o robô e um possível obstáculo, ou ainda, que nenhum obstáculo pode ser detectado pelo sonar.

Percebe-se que a lógica implementada é bem simples, mas permite muitas modificações e ampliações. Uma delas seria aumentar o número de medidas com um menor grau de distância entre as mesmas, permitindo ao robô desvios mais "sutis". Com o atual microcontrolador isso é totalmente possível, uma vez que a área de programa do mesmo é bem maior que a área de programa do microcontrolador usado na primeira versão.

 


| Clique na imagem para ampliar |

 

 

Teste e uso

Antes do uso, o robô deve ser ajustado. Insira as pilhas e ligue-o. Você notará que após ligá-lo ele não se move imediatamente. Esse "tempo" de inatividade de aproximadamente 3 segundos foi inserido no programa para permitir que o usuário se afastasse do robô, mas isso pode ser alterado se necessário.

Após o tempo de inatividade, o robô coloca-se em movimento sempre à frente e com o sonar voltado para frente. Caso isso não esteja correto, basta reposicionar a alavanca na parte superior do servo de maneira que o sensor aponte sempre à frente. Caso esta operação não ajuste corretamente a direção do servo/sensor, modifique os valores das variáveis "esquerda", "direita" e "centro" no programa até obter as posições desejadas.

Observe se ambos os motores giram na mesma direção. Caso um (ou os dois) pareça se mover para trás, inverta os fios do motor que estiver girando ao contrário. Caso o robô pareça desviar para o lado contrário, inverta as ligações do motor "esquerdo" com o "direito".

Após os ajustes do robô, já é possível utilizá-lo. Você perceberá que ele terá um bom efeito com paredes e superfícies lisas. Pernas de cadeira, superfícies irregulares (como as almofadas da sala) e outras, às vezes não são "percebidas" pelo robô. Um outro detalhe importante é que se a superfície a ser detectada tiver um ângulo em relação ao sensor (sonar), o robô às vezes também não perceberá o obstáculo. Estas limitações estão intimamente ligadas ao modo de funcionamento de um sonar. Veja a figura 7.

 


| Clique na imagem para ampliar |

 

 

Conclusão

Este "novo" robô, criado a partir de uma versão anterior, pode em um primeiro momento parecer "mais do mesmo". Mas se entendermos que o atual microcontrolador oferece mais