Robô LuzBô

O “Luzbô” é capaz de seguir a “luz” emitida por uma lanterna, permitindo assim o controle do seu movimento para frente, direita ou esquerda. A montagem deste robô é simples e agradará tanto os leitores iniciantes como também os “avançados”. O cérebro deste robô é o versátil Basic Step 1.

Veja algumas imagens do meu protótipo. Clique para ampliar.








Veja um vídeo do robô em ação!





O CONCEITO

O “Luzbô” possui dois “LDR’s” (resistores dependentes de luz) para “medir” a intensidade luminosa de ambos os lados (voltados para frente) do robô. Um LDR opera da seguinte maneira: exposto a alguma luminosidade sua resistência cai, sempre de acordo com a intensidade luminosa recebida, e quando a luminosidade cai sua resistência ôhmica aumenta.


Ambos os LDR’s são posicionados a frente no robô, voltados para baixo. Assim a luz captada será sempre a refletida no chão, emitida por uma lanterna (controle), e não a ambiente (lâmpadas que iluminam o local).

Ao “iluminarmos” um dos lados do robô, o LDR instalado neste lado recebe a luz refletida diminuindo sua resistência ôhmica. Assim o nível lógico no pino de I/O do Basic Step é alterado. Este nível, quando o LDR não recebe luz mantêm-se sempre no estado “1” (Vcc), devido ao trimpot. Quando o LDR capta a “luz” refletida, o nível lógico é alterado, passando ao estado “0” (GND) devido à baixa resistência presente no LDR.

O microcontrolador pode assim, através do programa, perceber a “mudança” nos estados dos pinos de entrada onde os LDR’s estão ligados e realizar os movimentos desejados. Ao iluminar a frente do robô, de maneira que ambos os LDR’s captem esta “luz”, o robô se moverá à frente. Ao iluminar apenas um dos lados, de maneira que apenas um LDR capte a luz e o outro não, o robô executará um movimento de busca com o motor no lado contrário ao LDR que estiver recebendo a luz refletida.





O CIRCUITO

Apesar de ter utilizado em meu protótipo um microcontrolador Basic Step 1 com canais analógicos (CI1) no controle do robô, preferi adotar uma configuração que não utilizasse tais canais. Assim, aqueles que possuem Basic Step’s mais antigos (sem a presença dos canais analógicos) poderão também experimentar esta montagem.

CI2 (L293D) é um drive de quatro canais tipo push-pull. A diferença básica entre este componente e o L293 (sem sufixo D) é a presença de diodos internos. Aconselho o uso da versão “D” nesta montagem já que a mesma não prevê o uso de diodos externos.

O diodo D1 ajuda na queda de tensão necessária para o microcontrolador. A alimentação do circuito é feita por quatro pilhas que ligadas em série “somam” um total de 6VDC (1,5V x 4). Porém o microcontrolador requer uma tensão máxima de 5VDC +/- 10% no pino 5 (entrada para 5VDC). Assim, ao ligarmos um diodo em série com a alimentação de 6VDC, este proporcionará uma queda de tensão de 0,7V aproximadamente, mantendo a tensão de alimentação nos níveis adequados ao microcontrolador.

Os capacitores C1, C2 e C3 formam os filtros necessários para a operação de CI1 e CI2. Os resistores R3 a R6 são resistores limitadores e ajudam a proteger CI1.

O conjunto R1, R2, D2 e Q1 forma uma “alegoria” visual para o robô. Q1 age como um drive de corrente e tensão para CI1. Adotamos esta configuração, pois assim o LED a ser utilizado poderá ter um consumo de corrente superior a 20 mA, que é máxima corrente admitida por pino de I/O do Basic Step.

O LCD é do tipo serial, comercializado pela Tato Equipamentos Eletrônicos. Este display é opcional no projeto. Ele permite verificar o estado atual de cada um dos LDR’s, durante a operação do robô. Se você tem alguma experiência na programação do Basic Step poderá alterar o programa, inserindo outras mensagens que ache relevante.

Os motores adotados são da fabricante Motron, modelo MRN710-35. Porém, o uso de outros motores como as retirados de brinquedos fora de uso, ou mesmo adquiridos especificamente para este fim poderão ser utilizados.




MONTAGEM ELÉTRICA

Na figura abaixo é dado o lay-out para confecção da placa de circuito impresso utilizado em meu protótipo. Você poderá também realizar a montagem em uma placa padrão ou mesmo matriz de contato.


Tenha cuidado ao soldar os componentes polarizados como capacitores eletrolíticos, diodos, LED’s, transistores, CI’s e outros. Qualquer inversão pode ser fatal para o componente e fazer com que o circuito não funcione. Tenha atenção durante a montagem. Use a figura como referência para sua montagem.

Lembre-se de utilizar soquetes para os CI’s. Ao montar o microcontrolador utilize a metade de um soquete para CI de 28 pinos. Evite soldar o microcontrolador a placa, pois o mesmo poderá ser utilizado em muitas outras montagens, apenas alterando o programa interno no mesmo.

Os LDR’s não são componentes polarizados. Apenas recomendo que os mesmos não sejam soldados junto à placa. Mantenha os terminais dos mesmos “compridos”. Assim será possível voltá-los para baixo, para a detecção da luz refletida no chão.

O LED utilizado em meu protótipo tem 10 mm de diâmetro e em muitas lojas também é conhecido como “LEDÃO”. Você também poderá utilizar outros LED’s que desejar como um LED azul, branco ou qualquer outro. Apenas tenha em mente que a corrente IC do transistor Q1 é de 500 mA máximos. Seja qual for o LED adotado, a corrente de trabalho do mesmo não deve ultrapassar essa corrente.

Na placa temos o conector CN1. Ele foi inserido para facilitar a gravação do robô, na própria placa. Para isso você deverá construir um cabo conforme a figura abaixo.


Os conectores “parafusáveis” adotados em meu protótipo podem ser ignorados e neste caso os fios do suporte de pilhas (alimentação) e dos motores deverão ser soldados diretamente na placa.

A chave S1 pode ser soldada diretamente na placa, ou pode-se também utilizar fios para a sua instalação no chassi. Aconselho que o “lay-out” para o chassi seja idealizado antes da ligação de S1 à placa.

O suporte de pilhas a ser adotado dependerá exclusivamente do tamanho das mesmas. Pilhas pequenas do tipo “AA”, médias ou grandes (tipo “D”) podem ser utilizadas.

Os trimpot’s de 100 kOhm podem ser do tipo vertical com dois terminais ou mesmo horizontal com três terminais. Em meu protótipo adotei o do tipo vertical com dois terminais.




MONTAGEM MECÂNICA

O chassi do “Luzbô” foi construído em madeira com as seguintes dimensões: 180 mm de comprimento e 110 mm de largura. Sua configuração é clássica, com um motor de cada lado e uma roda “boba” de apoio na parte traseira. O uso de outros materiais como plástico, ou alumínio ou ainda um outro qualquer, é livre.

Como “adorno” para meu chassi, utilizei uma embalagem plástica destas que muitas industrias utilizam para embalar seus produtos. A aplicação deste “complemento” é opcional, mas bastante interessante já que você está ajudando com a reciclagem de algo que iria para o lixo.

Dica: Pilhas, chuveiros, ventoinhas de computadores, cartuchos de impressoras , e muitos outros produtos são embalados dessa forma. Ao comprar um produto qualquer, se puder, guarde a embalagem para usá-la posteriormente em seus robôs. As formas mais inusitadas podem ser obtidas com o uso das mesmas.


Caso você vá utilizar as caixas de redução que eu usei em meu protótipo, chamo a sua atenção para o fato do eixo de transmissão da mesma não ser posicionado de forma centralizada. Esse detalhe pode ser contornado com o posicionamento das mesmas sob o robô, criando um eixo imaginário para que estes fiquem em uma linha única (centralizados).

As rodas utilizadas em meu protótipo foram “extraídas” de um carrinho de plástico. Acrescentei um elástico com 5 mm de largura (que pode ser adquirido em qualquer papelaria) para melhorar a aderência do robô ao chão. Este elástico foi colado à roda com “cianocrilato” (adesivo tipo instantâneo). A montagem da placa no chassi deve ser feita de maneira que os LDR’s fiquem na frente do robô, voltados para baixo.




O PROGRAMA

Na figura abaixo você tem o fluxograma do programa de controle do robô “Luzbô”. O programa encontra-se disponível no final deste artigo site para download.

O programa foi ricamente comentado para facilitar a sua compreensão. Você notará que existem duas versões para o mesmo programa. Uma versão foi desenvolvida para ser executada em Basic Step’s com firmware 2.6 ou superior (versões do Basic Step 1 com cinco canais AD’s) e uma outra para ser executada em versões com firmware inferior a 2.6 (versões sem canal AD).

Nota: É importante você “leia” atentamente os comentários no inicio de cada programa por mim fornecido, pois eles trazem informações importantes sobre o tipo e a versão do microcontrolador, o tipo e versão do compilador, além de outras informações importantes. Muitos são os que têm encontrado problemas ao usar meus programas, simplesmente por não darem a devida atenção a estas linhas. Leia antes de usar, sempre!!!!

Observando o fluxograma e o programa (é aconselhável fazer o download do mesmo e abri-lo no compilador indicado, antes de prosseguir com a leitura das linhas a seguir) fica fácil compreender seu funcionamento.

O programa inicia algumas variáveis e configura os pinos de I/O. Em seguida o nome do robô será mostrado no display. Após isto o programa passa a analisar as entradas onde os LDR’s estão ligados. Primeiro P1 e depois P2. Se a entrada P1 informar um valor lógico igual a “1” (Vcc) o microcontrolador considera que o LDR não está recebendo luz e “anota” isto em uma variável. Caso contrário, a informação é trocada na variável. Logo em seguida o microcontrolador analisa a porta P2. A mesma operação realizada anteriormente é feita, e uma outra variável recebe o estado do pino de I/O.

A presença ou não de luz em ambos os LDR’s é informada no display. O uso deste, como dito anteriormente é opcional. Porém seu uso poderá ajudar a regular o robô. Caso você não disponha do LCD serial ou não queira utilizar um neste projeto, poderá visualizar os dados enviados pelo microcontrolador em um PC com o auxílio de um cabo a ser montado, de acordo com a figura abaixo. Monte o cabo proposto na figura e ligue-o a um PC em um canal RS-232l livre. Não serve se o mesmo já estiver sendo utilizado! Com o auxílio de um programa terminal como o Hiper Terminal do Windows, por exemplo, é possível ver os dados passados pelo microcontrolador ao display. Lembre-se apenas de configurar o programa terminal com velocidade igual a 2400 bps, 8 bits de dados, 1 stop bit, sem paridade e nenhum controle de fluxo.

Após marcar as duas variáveis e informar a situação dos LDR’s no LCD, o programa realiza a analise das variáveis já descritas. Se ambos os LDR’s estiverem recebendo a luz refletida no chão, o robô se moverá para frente. Se apenas um dos LDR’s receber luz, o robô se moverá para o lado do LDR que esta recebendo luz no intuito de equilibrar o sistema (ambos os LDR com luz). Neste momento apenas um dos motores é colocado em movimento. Caso nenhum dos LDR’s receba luz, o robô se manterá parado até que um facho de luz seja colocado à frente do robô.

O programa também inverte o estado da porta P3, onde está ligado o transistor Q1. Assim o mesmo é levado ao corte e a saturação a cada ciclo (leitura dos LDR’s). Assim pode-se observar o “piscar” do LED (efeito visual do robô).

Obs.: O iniciante no mundo dos microcontroladores notará que o estudo do esquema elétrico em conjunto com o programa proporcionarão a máxima compreensão do funcionamento geral do projeto. Procure, sempre que possível, estudar o circuito e o programa juntos. Um auxiliará na compreensão do outro.




TESTE E USO

Sempre recomendo que ao final de cada montagem seja feita uma “verificação” de tudo. Isso é de suma importância. Não tenha pressa em colocar “a coisa” funcionando. Um erro não observado pode comprometer um componente qualquer. Verifique tudo com muito cuidado e atenção. Desenho da placa, soldas, posição dos componentes, polaridades, etc. É melhor perder alguns minutos em uma simples verificação do que ganhar uma bela dor de cabeça!

Grave o programa no microcontrolador, insira as pilhas no suporte e ligue o robô (S1). Caso você tenha utilizado o LCD poderá ver o nome do robô escrito no mesmo. Em seguida o LED começará a piscar. Dependendo da quantidade de luz recebida nos LDR’s (que devem estar voltados para baixo) um ou outro, ou ainda ambos os motores poderão girar. Ajuste P1 e P2 para que os motores fiquem parados. Este ajuste deve ser feito com o robô no chão e este também pode variar de acordo com cada piso (cor e nível de reflexão de cada um).

Com uma lanterna, aponte o facho de luz da mesma para o chão à frente de um dos LDR’s e observe a reação do robô. Se o mesmo se movimentar a frente é sinal que ambos os LDR’s estão recebendo luz. Neste caso, afaste um pouco os LDR’s e/ou aponte-os um pouco para fora. Se mesmo assim o problema persistir, observe se sua lanterna não tem um facho de luz muito largo. As melhores lanternas para o controle do “Luzbô” são justamente as que possuem o facho mais estreito e mais dirigido.

Caso o movimento seja justamente para o lado do LDR que está “percebendo” a luz, o movimento está correto. Caso contrário, troque as ligações de M1 e M2 na placa. Faça o mesmo com o outro lado do robô. Retoque o ajuste em P1 e P2 para obter a melhor sensibilidade nos LDR’s em relação ao facho de sua lanterna e ao tipo de piso. Aponte o facho a frente do robô, posicionando bem no meio. O robô deverá andar a frente.

Se os movimentos estiverem corretos, seu robô estará pronto para uso. Lembre-se que dependendo da quantidade de luz presentes no ambiente e também do tipo de piso onde o robô será demonstrado, um novo ajuste em P1 e P2 pode se fazer necessário.




CONCLUSÃO

A montagem proposta neste artigo é bem simples. Procurarei sempre que possível trazer outras montagens que possam contemplar os vários “níveis” em que se encontram aqueles que têm prestigiado este site. Espero assim ajudar o “iniciante” como também o “avançado”. E lembre-se que estou sempre aberto a criticas e sugestões! Boa montagem e até a próxima!




DOWNLOADS:

- Circuito do robô LuzBô
- Lay-out do circuito impresso (desenhdo do lado inferior - invertido)
- Programa de controle do robô LuzBô para Basic Step - compilador 0.9.25.0 (firmware inferior a 2.6)
- Programa de controle do robô LuzBô para Basic Step - compilador 1.0.0.0 ou sup. (firmware 2.6 ou sup.)
- Lista de materiais






Este projeto foi publicado, com minha autorização, na Revista Mecatrônica Fácil nº 20 de janeiro/fevereiro de 2004.

Especificações:

- Cérebro - Basic Step 1
- Motores - dois motores Motron MRN 710-35
- Sensores - 2 LDR's
- Alimentação- 4 pilhas pequenas (6V)
- Chassi - madeira
- Programa - TBasic Tato (Basic Step)


Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.