Os robôs autômatos são excelentes para o estudo de inteligência artificial. Porém, um robô que pode ter suas ações controladas sempre desperta o interesse de todos. Nesta edição, propomos a montagem de um pequeno robô que pode ser controlado através de um controle remoto padrão para TVs, VCRs e DVDs.
Márcio José Soares
https://www.arnerobotics.com.br/
Nota: O artigo é de uma Mecatrônica Fácil de julho de 2003
O Robô IR (como o chamaremos) é um robô que obedece a sinais infravermelhos. Para este projeto, optamos em utilizar um controle remoto de TV do tipo universal, que é facilmente obtido no mercado e até mesmo em barracas de "ambulantes" próximos aos centros eletrônicos. Seu custo é extremamente baixo, e assim o leitor poderá também aprender sobre como decodificar esse tipo de sinal (controle IR).
Na figura 1 mostramos um exemplo de controle remoto IR universal. O leitor não precisa se ater exatamente a este modelo, pois qualquer um que seja universal serve. Esses controles universais foram projetados para substituir os vários controles que às vezes somos obrigados a ter em uma sala: um controle para a TV, outro para o vídeo, outro para o DVD, etc.

Para isso os controles universais são capazes de trabalhar com os vários padrões existentes no mercado. O padrão escolhido para este projeto foi o padrão Sony®. A escolha deve-se a vários fatores, mas o principal é o modo de operação e decodificação, que é bem mais simples que o C5 Phillips®.
Na figura 2 temos a sequência de pulsos gerados pelo controle remoto para o padrão Sony®. Basicamente, ela consiste de um pulso de "start bit" (bit de "inicialização") com duração de 2200 µs (2200 x 10-6) seguido de 15 bits de dados. Todos os bits com nível lógico "1" têm 1100 µs de duração. Já os bits com nível lógico "0" têm 550 µs de duração. Após a sequência ter sido enviada, um tempo de 23 ms é dado para o envio da próxima sequência; caso algum botão ainda esteja pressionado. O leitor deve notar que devido a velocidade dos pulsos, durante um simples toque em qualquer botão, várias sequências iguais (referentes ao botão pressionado) são enviadas.
A sequência de 15 bits é o que nos interessa para a decodificação. Contudo, nem todos os bits serão utilizados, pois alguns deles trazem apenas a informação sobre qual equipamento será comandado (TV, VCR, DVD etc).
Utilizamos para este projeto o já conhecido microcontrolador "Embedded" Basic Step1. Infelizmente o Basic Step1 não é tão rápido para permanecer ao mesmo tempo em um "loop" de operação qualquer e testar todos os bits, pois ele não possui interrupções. Porém, existe uma maneira para se contornar isso. Testamos a presença do primeiro bit com nível lógico baixo enviado logo após o "start bit". Recebido esse bit, temporizamos 20 ms. Dessa maneira dispensamos toda a primeira sequência de bits e colocamos o Basic Step1 no aguardo da próxima sequência. Pronto, agora o Basic Step1 está esperando o próximo "trem" de pulsos e com velocidade suficiente para receber todos os bits de informação. Agora a largura dos sete primeiros bits é alocada em 7 variáveis diferentes. Os oito pulsos restantes são ignorados. Após a recepção, é feita a montagem dos bits em um byte que será decodificado e interpretado.
Na figura 3, o leitor tem a visão do controle remoto adotado com os "botões" que serão decodificados pelo Robô IR e os valores obtidos em "b0" para cada comando.
O leitor deve notar que alguns controles remotos universais oferecem a programação de vários tipos de aparelhos Sony®. No entanto, não deve se preocupar. Mais à frente, ainda neste artigo quando tratarmos da programação do Step1, vamos ajudá-lo a determinar quais os valores de operação para cada tecla escolhida.
Compreendido o funcionamento do controle remoto e sua decodificação, podemos passar para a descrição do funcionamento e montagem do Robô IR.
O CIRCUITO
O circuito elétrico do Robô IR pode ser visto na figura 4. Para esta montagem optamos por utilizar a "Placa Drive para motor DC" (figura 5), um projeto presente nesta revista. Assim, o leitor poderá executar uma montagem mais enxuta. A placa proposta poderá ser reaproveitada em uma série de outros projetos e maiores informações sobre a mesma devem ser obtidas no referido artigo, nesta edição.
Na figura 4, a placa foi representada apenas com suas entradas e saídas, facilitando muito o entendimento do circuito.
O Basic Step1 realiza todo o trabalho de decodificação do sinal e então passa os comandos para a "placa drive", que se encarrega do trabalho de controle dos motores. A alimentação para o Basic Step1 é obtida através da "placa drive".
O leitor deve ter notado a presença de um receptor IR do tipo comercial e aparentemente desconhecido. Em nosso protótipo utilizamos o modelo 27J434 da Phillips (figura 6), obtido em uma oficina de manutenção de televisores e aparelhos eletrodomésticos. Estas lojas estão presentes na maioria dos bairros e o componente foi comprado pelo autor por R$ 8,00 (oito reais), após o mesmo ser retirado de um vídeo utilizado para desmanche e reaproveitamento de peças na oficina. Lembramos que não é necessário obter exatamente o modelo em questão (qualquer modelo, de outras marcas, com operação similar poderá ser utilizado neste projeto).

O SENSOR IR
Para muitos, o sensor pode parecer o componente mais difícil de se conseguir no mercado, mas não é. Como já foi dito, ele pode ser obtido em oficinas de manutenção. Muitas delas, inclusive, podem encomendar a peça, caso o leitor não queira utilizar uma retirada da sucata.
Para adquirir um sensor IR em uma oficina, o leitor deverá solicitar um sensor que trabalhe com 5 volts na sua alimentação e emita sinais já amplificados e devidamente "quadrados". Geralmente, eles possuem apenas três pinos (alimentação, terra e sinal). Peça maiores detalhes ao técnico, pois ao retirar o componente da placa ele pode facilmente identificar qual pino recebe "alimentação", qual é ligado ao "terra" e qual deles é o "sinal". Um outro ponto importante é o "descanso" do sinal. O sensor IR utilizado em nosso protótipo, quando não tem sinal algum a ser decodificado, mantém o pino de sinal em nível lógico alto (+5 V). É interessante que o leitor verifique esta condição ao adquirir seu sensor IR.
MONTAGEM ELETRÔNICA
Para montar o circuito, o leitor poderá usar uma placa do tipo padrão ou utilizar o "lay-out" oferecido na figura 7.
A placa de controle foi montada pensando em projetos futuros. Ela permite gravar o Basic Step1 e uma melhor "interface" de seus pinos através de uma barra de pinos extra e/ou do terminal de "parafusos". Assim, podemos utilizar esta placa em vários outros projetos que necessitem de um Basic Step 1. E o leitor poderá ainda, se achar interessante, acrescentar uma pequena matriz de contatos (pront-o-board) à placa, facilitando ainda mais a interface com futuros projetos. Entretanto, isto não é obrigatório e a escolha desta opção deve ser feita levando em conta as necessidades de cada um. Na figura 8 o leitor tem o exemplo da placa de controle montada em uma placa do tipo padrão.
Importante: Para a montagem da "Placa Drive" o leitor deverá recorrer ao respectivo artigo, nesta edição.
O suporte para o Basic Step 1 pode ser improvisado a partir de urna das metades de um suporte para Cl de 28 pinos. A outra metade também pode ser aproveitada na placa para ligações externas a um "pront-o-board", por exemplo. Os terminais tipo "barra de pinos", soldados na placa, servirão para conexão com servos, sensores etc., e são ligados aos pinos de 1/0 do Basic Step"' (P0 a P7). O botão usado é do tipo "normalmente aberto", mini, para um "reset” na placa.
MONTAGEM MECÂNICA
A montagem mecânica, assim como a eletrônica também oferece um reaproveitamento dos componentes. A ideia é preparar um chassi que possa ser utilizado em outros projetos, bastando para isso alterar apenas o "cérebro" ou unidade de controle do "robô" proposto.
Em nossa montagem (protótipo) visando demonstrar como diminuir ainda mais os custos de uma montagem, utilizamos caixas de redução retiradas de brinquedos baratos, adquiridos em lojas de "um real" e similares. O autor pagou R$ 6,00 (seis reais) por cada brinquedo! (figura 9).

É necessário que o leitor selecione o "brinquedo" que deseja usar antes de pensar em montar o chassi. O mais importante é que esse brinquedo seja do tipo "anda para a frente e só". Existem vários carrinhos baratos (muito baratos) que fazem isso. De posse de um desses brinquedos basta retirar a caixa de redução, ignorando fios ou qualquer parte elétrica/eletrônica que possa existir. Uma outra coisa importante sobre as caixas de redução retiradas de brinquedos diz respeito aos seus eixos. Geralmente, elas possuem um eixo com duas rodas (uma de cada lado). Precisamos apenas das rodas de um único lado (o lado externo). Corte um dos lados do eixo, preferencialmente aquele que tiver o menor apoio da caixa, normalmente aquele que tem a maior distância entre a roda e a caixa.
Na figura 10 temos um "lay-out" para o chassi, que poderá ser utilizado como exemplo. Ele é composto de sete peças. Dependendo da caixa de redução a ser empregada, algumas peças poderão ser ignoradas. Na montagem do seu protótipo, o autor utilizou "pranchetas plásticas" adquiridas em papelarias. Um exemplo pode ser visto na figura 11. Elas possuem boa resistência, são baratas (em média R$ 5,00) e para nosso protótipo foram usadas as cores, azul e transparente.
Para a montagem do protótipo, para a caixa de redução selecionada, as peças "C", "D" e "E" do "lay-out" podem ser ignoradas. Utilizamos apenas das peças "A", "B”, "F" e "G".
O leitor que preferir pode adquirir suas caixas de redução na Saber Marketing Direto (www.sabermarketing.corn.br) (figura 12). Caso deseje optar por este tipo de caixa, as peças "C", "D" e "E" do "lay-out" são necessárias.


Para prender as caixas de redução ao chassi o leitor poderá utilizar parafusos, cola quente, cinta plástica, fita dupla face, etc. Tudo depende do tipo da caixa de redução adotada. A caixa selecionada para nosso protótipo foi presa utilizando parafusos e espaçadores iguais aos usados para fixar placas de computadores, mas poderiam ser utilizados, no lugar destes pequenos pedaços de tubo de caneta, por exemplo. Observe a figura 13.

Um outro ponto, ainda referente à caixa de redução aplicada ao nosso protótipo é que a mesma possui "tração nas quatro rodas" (duas rodas para cada lado). Sendo assim, aproveitamos apenas um dos lados e conseguimos o equilíbrio do conjunto sem o uso da terceira roda. Caso a caixa que o leitor tenha em mãos não possua duas rodas de cada lado, será necessária uma terceira roda de apoio. Essa roda também é conhecida como "roda boba" e pode ser adquirida em casas de parafusos e ferragens ou em casas para materiais de construção. A mesma também pode ser confeccionada pelo leitor. Na figura 14 damos um exemplo de um robô desenvolvido aqui na Revista e que utilizou a terceira roda.
A "placa drive" foi fixada no chassi como é demonstrado na figura 15. Para isso utilizamos pequenos espaçadores. Eles também podem ser feitos a partir de pequenos pedaços de um tubo de caneta e, nesse caso, todos os pedaços devem ser iguais e ter em média 1 cm de comprimento. Os dois suportes de pilha foram fixados com cola quente à base na sua parte de baixo, próximo às caixas de redução. Porém, materiais como fita dupla-face, parafusos ou outros disponíveis também podem ser empregados. Os dois suportes foram ligados em série para obtermos 12 V para a "placa drive". A figura 16 exemplifica esse tipo de ligação. Este é o momento para ligar todos os fios presentes na base do robô (fio da alimentação das pilhas e motores) à "placa drive".

Fixamos a placa de controle à base superior do chassi (figura 17) com parafusos e espaçadores, feitos com tubo de caneta. O suporte "U" do receptor IR (peça "F") foi preso a base superior do chassi com um parafuso (figura 18). Parafusamos a peça "G" ao suporte "U" (figura 19) e fixamos o receptor IR à peça "G" com fita-dupla face, mas qualquer outro adesivo poderá ser utilizado. O posicionamento do sensor é importante, pois deve estar direcionado para a parte de trás do chassi e mantendo sua entrada desobstruída.

Neste momento devemos interligar os fios da placa de controle (terminal de parafusos) à "placa drive" (terminal de parafusos). Para isso utilize fios maleáveis. Oriente-se pelo esquema da placa de controle e da "placa drive". Cuidado para não inverter a alimentação de 5V IDC vinda da placa drive na placa de controle. Isso danificaria irremediavelmente o Basic Step 1.
Para prender a base superior na inferior usamos quatro parafusos compridos (um para cada canto da base). É importante manter uma distância mínima entre as bases de 5 cm. Assim, evitamos encostar nos transistores (radiadores de calor) a base superior assim como criamos uma folga para a ventilação, item muito importante!
As figuras 20 e 21 mostram, respectivamente, a folga necessária e o conjunto parafuso/arruelas/porca adotado para segurar a base superior.


TESTE E USO
Antes de proceder a qualquer teste, é bom conhecer um pouco mais seu controle remoto. Programe-o de acordo com o manual para operar com TV e vídeos padrão Sony®. Ligue o receptor IR ao pino PO do BS1, conforme demonstrado na figura 22. Esta etapa deverá ser feita em sua bancada utilizando a placa Step Lab ou uma matriz de contatos (pront-o-board).

Programe o Basic Step1 com o código-fonte disponível no site da revista (www.mecatronicafacil.corn.br). Este é o código de operação do robô. Desmarque a linha com o comando "debug b0; b1" e habilite a tela de "debug" do compilador STEP. Ligue o conjunto e analise os dados enviados em B0 para as teclas selecionadas para o controle. Caso estes sejam diferentes dos demonstrados na figura 3, o leitor terá de alterá-los manualmente no código-fonte. Lembre-se de remarcar a linha debug novamente, como comentário após todas as verificações, para reprogramar o Basic Step para operação no Robô IR.
Após uma verificação completa das ligações, dos dados emitidos pelo controle remoto e do programa, é hora do teste final. Insira o Step e as pilhas nos seus respectivos suportes. Para programar o Basic Step 1 na placa, utilize o cabo adaptador sugerido na figura 23. Ligue a chave S1. O robô deverá ficar parado, pois na sua "inicialização" os motores não entram em operação. Pressione a tecla que comanda o movimento para frente e em seguida todas as que são reconhecidas como comandos válidos. A velocidade do motor pode ser modificada na "placa drive".
AJUDA COM PROBLEMAS
Abaixo, listamos alguns pontos observados em nosso laboratório e que, com certeza, ajudarão na busca de problemas:
O robô não realiza nenhum dos comandos especificados. Não funciona.
Possíveis soluções:
- O robô pode não estar decodificando o controle. Verifique se isto está ocorrendo, conforme já explicado.
- Levante o robô e veja se os motores giram. Verifique se a velocidade não está baixa demais. Isso pode fazer com que o motor não gire. Realize alguns testes com rotação no máximo.
- Observe todas as ligações da placa de controle para a placa drive.
- Verifique se as caixas de redução não estão "presas". Muitas caixas podem prender e isso pode aquecer os transistores da placa drive, levando-os a queima. Cuidado.
Durante o teste do receptor IR, o comando debug não envia nada, ou o valor é sempre o mesmo.
Possíveis soluções:
- O receptor IR selecionado pode não estar funcionando corretamente. A troca do mesmo será necessária.
- As ligações do receptor IR podem estar trocadas, verifique se os pinos de alimentação, terra e sinal estão ligados corretamente.
- As ligações entre o receptor e o Basic Step 1 podem não estar corretas. Confirme-as.
- O circuito de teste pode não estar funcionando adequadamente. Cheque as ligações.
O robô só funciona suspenso do chão. Ao colocá-lo no chão, ele para.
Possíveis soluções:
- As pilhas podem estar fracas ou não ser de boa qualidade. Troque as pilhas por pilhas alcalinas, preferencialmente.
- O motor pode estar drenando muita corrente, e a corrente fornecida pelas pilhas pode não ser adequada. Troque por pilhas médias (ou grandes) e realize novos testes.
- Excesso de peso. Dependendo do motor e da redução, o conjunto não pode ficar pesado. Verifique os excessos na estrutura.
O robô funciona, mas não respeita os comandos dados, está tudo trocado
Possíveis soluções:
- Os motores podem estar invertidos, troque os polos de apenas um e verifique o comportamento. Troque os fios até obter o comportamento desejado.
- Os comandos no programa podem estar trocados, verifique-os e altere-os seguindo as orientações dadas.
- Observe se as ligações entre placa de controle e placa drive estão corretas. Inverta a posição dos motores 1 e 2, se necessário.
Todos os testes acima só podem ser considerados válidos se todas as etapas da montagem foram feitas com cuidado e, principalmente, se todos os testes sugeridos no artigo da "placa drive" foram feitos com sucesso. É ponto fundamental que a placa seja testada antes mesmo da montagem do robô.

CONCLUSÃO
Através desta montagem o leitor aprendeu que é possível aproveitar muitos componentes alternativos (presentes em nosso dia-a-dia) na montagem de um pequeno robô. Também aprendeu que é possível desenvolver circuitos eletrônicos "genéricos" que podem ser utilizados em vários projetos, sem a necessidade de alterações. Nas próximas edições traremos mais um projeto, empregando as peças do Robô IR. Até lá e boa montagem!




























