Um projeto de grande utilidade aos adeptos de modelismo e robótica, é o que descrevemos neste artigo. Trata-se de um conversor analógico/digital para ser utilizado em sistemas de rádio controle ou mesmo sistemas controlados diretamente por fios, principalmente nos que dizem respeito ao controle de direção de dispositivos de modelismo (carros, barcos, aviões, etc) e robôs móveis.


Autor: Wagner Rambo

Área: Eletrônica / Robótica / Modelismo

Nível: Intermediário

 

Copyright WR Kits 2013 (todos os direitos reservados): Proibida reprodução total ou parcial sem prévia autorização por escrito do autor. Copyright protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998.


1 - Introdução

 

Robôs móveis autônomos como já é de nosso conhecimento, são unidades que apresentam a capacidade de executar diversas tarefas sem o auxílio de controles manuais ou programação prévia.

Contudo, para tornar a unidade robótica mais versátil, pode-se implementar um sistema rádio controlado, alternando assim os modos de operação da mesma. Para um robô móvel controlado remotamente, o controle de direção é indubitavelmente uma das partes mais críticas, sendo este geralmente implementado pelo projetista utilizando quatro chaves (tácteis normalmente abertas, por exemplo), que representam os respectivos comandos: frente, direita, esquerda, ré. Entretanto, estas chaves apresentam como principais desvantagens o desgaste natural de seus contatos mecânicos e o fato de tornarem menos ágil ao operador a alternância de direções do robô.

O conversor A/D desenvolvido pela WR Kits contorna estes problemas causados pelas chaves de contatos simples, substituindo-as por um joystick. Na Figura 1 pode-se observar um exemplo de joystick que poderá ser utilizado neste projeto. Este modelo de exemplo traz ainda como recurso uma chave táctil extra, que é acionada quando pressiona-se a pequena alavanca.

Naturalmente, há modelos de diversos tamanhos e formatos. Quaisquer tipos de joystick podem ser aplicados a este projeto.

 

d90f802376597f05385e2fedb1169c82.jpg

Figura 1: Exemplo de Joystick que pode ser empregado no controle de direção de robôs móveis.

2 – Características de um controle com joystick

 

Largamente utilizado nos controles dos primeiros vídeo games e reintroduzido nos modelos mais atuais, o joystick consiste em um dispositivo que apresenta basicamente dois potenciômetros, fixos perpendicularmente um em relação ao outro, onde uma alavanca mantida na posição central tipicamente com auxílio de molas, é movimentada para cima e para baixo movendo o eixo do primeiro potenciômetro; ou para esquerda e para direita movendo o eixo do segundo potenciômetro. Os potenciômetros utilizados em joysticks são muito semelhantes aos comumente aplicados na indústria eletrônica, com a diferença de que variam linearmente da resistência mínima (aproximadamente 0?) para a máxima (100k? tipicamente) em um curto ângulo de movimento. São construídos assim para que a alavanca utilizada no joystick não precise ser movimentada em um ângulo superior a 130° para percorrer toda faixa de resistência de seus potenciômetros. Se fossem empregados potenciômetros convencionais, cujo ângulo necessário para percorrer toda faixa de resistência é de aproximadamente 270°, não seria possível de se realizar isto com um movimento suave de alavanca.

Um joystick facilita muito mais o controle de navegação de um robô móvel dando mais agilidade à troca de direção do mesmo, apresentando ainda a vantagem de possuir um desgaste bem inferior se comparado com as chaves de contato simples. A desvantagem de um joystick é que, para aplicá-lo ao codificador de um sistema de rádio controle ou utilizá-lo no controle direto com fios da unidade comandada, o mesmo necessita de um conversor A/D justamente para converter suas grandezas analógicas (oriundas da linearidade dos potenciômetros), aos bits discretos que serão aplicados já na entrada do codificador (ou do driver quando um controle de fios for implementado).

Na Figura 2 apresentamos o diagrama em blocos básico para um transmissor de rádio controle com estas características.

f86034e9b9f45f984301ee7fb959eb6d.png

Figura 2: Diagrama em blocos básico transmissor rádio controle.

Na Figura 3, o diagrama em blocos básico para um controle idealizado com fios ligados diretamente ao driver da unidade comandada.

 

521273e38390e67ee1e903d8fcba0c5f.png

Figura 3: Diagrama em blocos básico de um controle com fios.

3 – O Circuito

Empregando-se um microcontrolador de baixo custo e facilmente encontrado no mercado nacional, mais uns poucos componentes periféricos, desenvolveu-se o circuito conversor A/D para joystick. O microcontrolador utilizado é o conhecido PIC 12F675 de 8 bits, que apresenta um conversor A/D com 4 canais (AN0 a AN3) e um oscilador interno de 4MHz com boa precisão. Existe a possibilidade de se utilizar um oscilador externo de até 20MHz com este dispositivo.

Na Figura 4, pode-se observar os pinos do PIC 12F675, fornecidos pelo datasheet do fabricante.

 

49e2332a1aee98b599136a7e7ab32d90.PNG

Figura 4: Descrição dos pinos do PIC 12F675.

Como pode-se observar, este componente apresenta alimentação VDD no pino 1, e o VSS (terra do circuito) no pino 8. Os pinos GP0, GP1, GP2, GP4 e GP5 podem ser programados tanto como entrada quanto como saída digital (observar as setas apontando para ambas as direções). O pino GP3 pode ser programado apenas como entrada digital e é também o pino de RESET do circuito integrado.

Optou-se pelo uso de um microcontrolador para implementar este circuito, a fim de simplificador o mesmo ao máximo e, principalmente, pela versatilidade que sua programação integra ao sistema visto que, com um simples ajuste no código fonte, já se pode alterar o ângulo de atuação do joystick sem que o hardware tenha de ser modificado, característica muito útil visto que há modelos diversificados de joysticks. Mas adiante no artigo explanaremos sobre o assunto.

O diagrama esquemático completo do Conversor A/D pode ser visualizado na Figura 5.

 

f9516410acfa4597a2a60c306762197c.png

Figura 5: Diagrama esquemático do Conversor A/D.

Como pode ser visto no diagrama esquemático da Figura 5, foi necessária a utilização de dois microcontroladores PIC 12F675, devido o mesmo não apresentar saídas digitais suficientes para implementar os 4 bits do controle de direção (o pino GP3 pode apenas ser programado como entrada digital, observe a seta em uma única direção na Figura 4).

De acordo com o circuito da Figura 5, os potenciômetros do joystick estão representados individualmente no diagrama, sendo que o primeiro tem seu terminal central conectado ao pino AN0 do primeiro microcontrolador; e o segundo tem o pino central conectado à mesma entrada no CI U2. Estes potenciômetros atuam como divisores de tensão, variando a tensão de alimentação da fonte de 0 a 5V, sendo esta a grandeza analógica “lida” pelo pino do PIC. Os pinos 2 e 3 (respectivamente GP5 e GP4) de ambos os CI’s foram programadas via software como saídas digitais. Os resistores R1 a R4 (todos com valor de 10k?) tem a função de manter estas saídas em nível lógico baixo, isto é, são resistores de pull-down.

Porém, quando a tensão lida pela entrada analógica AN0 aproxima-se dos 5V, a saída GP4 vai a nível high e, quando a mesma tensão aproxima-se de 0V, é a saída GP5 que vai a nível high. Esta mesma análise vale para ambos os microcontroladores utilizados. Como será visto mais a frente, a lógica principal de funcionamento deste circuito foi implementada via software.

Os diodos de uso geral D1 a D4 apresentam a importante função de fazer com que o sinal de cada saída seja totalmente independente não interferindo umas nas outras pois, dependendo do circuito codificador utilizado no rádio controle, poderiam ocorrer problemas como o funcionamento errático das funções de comando.

Os capacitores C1 e C2 atuam no desacoplamento dos microcontroladores, em outras palavras, servem como uma fonte de energia de ação rápida junto ao circuito integrado, permitindo que ele opere até que a fonte de alimentação principal possa fornecer a corrente que ele necessita, também apresentam a função de desviar ruído de alta frequência de volta para a fonte de alimentação.

 

4 – Montagem

 

Na Figura 6 apresentamos uma sugestão de lay-out para o circuito proposto, onde pode-se observar claramente a simplicidade da montagem.

 

b65cdd7fea5bab4b742da2f3777a1600.png

Figura 6: Lay-out Conversor A/D.

As trilhas de circuito impresso, que deverão ser desenhadas pelo projetista ou transferidas diretamente para a placa de fenolite (ou fibra de vidro) pelas técnicas de construção de placas (artesanal, silk screen, etc) são apresentadas na Figura 07. Todos os furos pertinentes aos componentes utilizados podem ser de 1mm. Para os furos de fixação da placa, utilize broca de 3,5mm.

 

85376128088df46e1ee7640bebf052ff.png

Figura 7: Lay-out Conversor A/D, trilhas do circuito impresso.

Na Figura 8, pode-se observar a máscara dos componentes presentes no circuito, com suas respectivas referências para melhor orientação.

 

fde0f04e4bdd63141ecc689be09eff85.png

Figura 8: Lay-out Conversor A/D, máscara dos componentes.

Deve-se tomar cuidado com o posicionamento dos microcontroladores na placa de circuito impresso (oriente-se pelos chanfros), e também para posição dos diodos. Os resistores R1 a R4 são de 1/8W e 5% de tolerância. Os capacitores C1 e C2 são de 100nF e podem ser cerâmicos ou de poliéster. Os diodos D1 a D4, são diodos comuns de sinal, sendo que qualquer equivalente pode ser utilizado (1N914, por exemplo). É aconselhável o uso de soquetes DIL (dual in line) de 8 pinos para os circuitos integrados, facilitando sua reprogramação se necessária e evitando de aquecê-los demais no momento da soldagem. Para as interconexões do circuito sempre sugerimos o uso de barra de pinos 11,2mm 180° (padrão mother board), que tornam a montagem mais profissional.

Os potenciômetros do joystick utilizado devem ser conectados nos pontos indicados da placa, observando que as entradas analógicas (AN) localizam-se na parte superior, isto é, nestes pontos que o terminal central dos potenciômetros deve ser ligado. Os terminais laterais podem ser conectados sem a preocupação de posição (explicaremos isto no tópico “Prova e Uso”). Joysticks novos já podem ser facilmente adquiridos no mercado local a preços bastante acessíveis. Mas, fica a dica que os mesmos podem ser reaproveitados de controles de vídeo game fora de uso. Outro local que o projetista pode procurar é nas empresas que trabalham na manutenção de vídeo games, que frequentemente apresentam controles velhos em sua sucata.

Para melhor visualização do projeto, apresentamos na Figura 9 a imagem em perspectiva 3D do lay-out idealizado para este circuito.

 

21d9883ec70e61f1885fbbb4522f41fa.png

Figura 9: Lay-out do Conversor A/D em perspectiva.

5 – O Programa

Partiremos da suposição de que o leitor já apresenta o conhecimento necessário para programação e gravação de microcontroladores, especialmente os da família PIC, portanto não entraremos nos pormenores sobre esta operação. Porém, o código fonte escrito para este projeto será fornecido, para que o usuário possa fazer os ajustes caso haja necessidade.

O PIC 12F675 apresenta registrador TRISIO, que tem a função de configurar um pino como entrada ou saída. Atribuindo-se “1” ao registrador, este estará configurado como entrada (INPUT) e; atribuindo-se “0”, o mesmo será saída (OUTPUT). Para configurar a inicialização dos pinos deste PIC (high ou low), utiliza-se o registrador GPIO, diferentemente de PIC’s maiores (16F628A, 18F4550, etc) que utilizam o registrador PORT para a mesma função. Na Figura 10 apresentamos o código fonte escrito para este projeto, ricamente comentado para facilitar sua compreensão. A linguagem de programação utilizada foi o C e o compilador empregado para criação do código foi o MikroC Pro For PIC, que consiste em um software livre para códigos até 2kB.

 

f05ae7236933bd2adcfb71cde492857f.png

Figura 10: Código fonte para o Conversor A/D.

Inicia-se o programa com a declaração de uma variável do tipo inteiro chamada de “leitura”, para armazenar o valor da grandeza analógica “lida” pelo pino AN0 do PIC. Já na função “main” configura-se os pinos GP4 e GP5 como digitais utilizando-se para isso o comando “ANSEL = 0x13;”. Deve-se desabilitar os comparadores A/D do PIC com o comando “CMCON = 7;”. Para configurar o bit menos significativo AN0 como pino analógico, foi utilizado o comando “adcon0 = 0b00000001;” (caso prefira o pino AN1 deve utilizar “adcon0 = 0b00000010;”, e assim por diante). Depois, no registrador TRISIO, configurou-se paulatinamente os bits utilizados em nosso hardware, GP0 como entrada; GP4 e GP5 como saída. Optou-se por iniciar todo GPIO em low com o comando “GPIO = 0;”.

Após as configurações iniciais de nosso dispositivo, entramos no loop infinito com o comando “while(1);”. Inicialmente a função ADC_Read(), recebe zero como parâmetro. Esta função está contida na biblioteca do compilador e é ela que registra os valores analógicos através de AN0. A priori, atribui-se o valor obtido na função ADC_Read(0), à nossa variável “leitura”. Em seguida criam-se dois laços de condição “if”. O primeiro diz que se o valor decimal de leitura for maior que 900, o pino GP4 estará em high. O segundo, por sua vez, diz que se o valor decimal da variável leitura for menor que 123, o pino GP5 é que estará em high. Os laços “else” complementam a condição “if”, informando que se esta condição for falsa, então o respectivo pino estará em low.

Alhures neste artigo salientamos que o usuário poderá ajustar facilmente a sensibilidade de seu joystick realizando uma simples alteração no software. Estes valores decimais de 900 e de 123 não foram obtidos por acaso. O que ocorre é que no datasheet do fabricando do PIC 12F675, no tópico “Módulo Conversor Analógico para Digital” (Analog-to-Digital Converter module) está especificado que o microcontrolador apresenta 10 bits de resolução. Isto significa que em decimal temos:

2^(10) = 1024

 

Em suma, a resolução de nosso módulo conversor A/D em decimal pode ser representada nos valores de 0 a 1023 (porque o zero também entra na contagem). Portanto, utilizou-se estes dois extremos como referência para o ajuste de nosso joystick, concluindo-se que o menor valor seria igual a 123 e o maior seria portanto 900 (1023-123=900). Vale destacar que os extremos devem ser simétricos entre si preferencialmente. Por exemplo, se o menor valor para o seu joystick for de 300, então o maior deverá ser 723 (1023-300=723), e assim sucessivamente. Os limites superior e inferior desta resolução de 1024, devem ser obtidos de forma empírica, como pode ser observado.

Compilando-se o código para gerar o arquivo “.hex” referente ao mesmo, basta gravá-lo nos dois PIC’s 12F675 utilizados (U1 e U2) com o gravador de sua preferência.

6 – Prova e Uso

Com a montagem finalizada e minuciosamente verificada para corrigir possíveis erros, pode-se alimentar o circuito utilizando para isto uma fonte de 5V, que poderá ser construída a partir de um regulador de tensão LM7805, por exemplo. Para testar o funcionamento do circuito, o leitor poderá conectar 4 LED’s comuns de 5mm com resistor de 220Ω à saída do conversor A/D, como sugere a Figura 11.

 

58e869a9438b5effdd273a1d691bd1e8.png

Figura 11: Sugestão de teste para Conversor A/D.

Atue no joystick para cima e verifique qual LED irá acender. Após mova a alavanca para baixo verificando que o primeiro LED se apaga e acenderá um segundo LED. Efetue o mesmo procedimento para as posições direita e esquerda da alavanca do joystick para observar quais LED’s irão acender. Cada posição terá apenas um respectivo LED aceso e, naturalmente quando a alavanca estiver na posição central, todos deverão estar apagados. O conversor estará funcionando perfeitamente desta forma. Conhecidas as respectivas saídas de cada posição, é só conectá-las ao codificador do rádio controle (ou driver de motores), respeitando o correto sentido de navegação (frente, ré, direita, esquerda). Alterando a ligação dos potenciômetros ao circuito, você altera a saída que a posição do joystick leva a nível alto. Isto pode ser feito caso o usuário prefira que a saída “1” seja o comando para frente, a “2” a ré, e assim por diante.

Caso ache que o joystick esteja atuando muito rápido nas saídas (com um simples movimento já leva a saída a high), altera os valores decimais no código fonte, diminuindo o limite inferior e aumentando o limite superior. Se a atuação do mesmo estiver lenta demais, basta aumentar o limite inferior e diminuir o limite superior.

Tratando-se de um circuito bem pequeno, o mesmo pode facilmente ser instalado dentro da caixa do controle utilizado.

 

7 – Lista de Materiais

 

A lista dos componentes utilizados neste projeto é apresentada na Tabela 1.

Tabela 1: Lista de Material (Componentes e outros)

Circuitos Integrados

U1 e U2: Microcontrolador PIC 12F675

Semicondutores

D1, D2, D3 e D4: diodo 1N4148

Capacitores

C1 e C2: 100nF / 63V

(disco cerâmico ou poliéster)

Resistores

R1, R2, R3 e R4: 10kΩ 1/8W 5%

Diversos

Joystick *ver texto

Barra de pinos 11,2mm (tamanhos diversos)

PCI: Placa de circuito impresso (fenolite ou fibra de vidro)

Soquetes DIL de 8 terminais para os circuitos integrados

8 – Conclusão

O circuito aqui proposto viabilizou o estudo de noções básicas de eletrônica digital, programação de microcontroladores, hardware e software, bem como os princípios de uma conversão A/D. Aproveitou-se estes elementos para o desenvolvimento de um pequeno circuito de conversão A/D, para ser implementado em sistemas rádio controlados ou com fio. Como já mencionado, a aplicação de um joystick a um sistema de navegação (controle de direção), seja de um robô móvel ou outros dispositivos, traz uma série de vantagens em se tratando de sensibilidade de controle e durabilidade dos componentes empregados. Nada impede, do usuário utilizar mais conversores como este, para outras funções da unidade comandada, que não a navegação.

 


Este projeto foi publicado, após minha devida autorização, na Revista Eletrônica Total nº 157

d8fd8274ebe4ea7408c8cf41b070f6af.jpg


© 2018 W.R.Kits - Todos os direitos reservados

Formas de Pagamento

A WRKits utiliza o sistema PayU para processamento dos pagamentos. Através do PayU você seleciona a forma de pagamento desejada. São aceitos diversos cartões de crédito com opções de parcelamento, transferência bancária on-line e boleto bancário.

O sistema PayU garante a segurança da sua compra, pois se você não receber a encomenda dentro do prazo estipulado poderá solicitar a devolução do dinheiro através do PayU. Além disso, nossa empresa não tem acesso aos seus dados de cartão de crédito, que são processados diretamente pelo PayU.

 

×

Política de Privacidade

O processamento de sua compra está totalmente assegurado pela nossa empresa, que controla todos os recursos técnicos em seus procedimentos.

Trabalhamos com intuito de garantir a total segurança dos clientes quando efetuam compras através do nosso site, a fim de que os mesmos estejam tranquilos em todas as etapas da negociação.

Utilizamos sistemas de pagamento confiáveis e totalmente versáteis, permitindo a você cliente uma compra prática, fácil e rápida.

Suas informações pessoais apenas são utilizadas para o processamento de suas compras, sendo que as mesmas jamais serão expostas a terceiros.

No caso de compra via cartão de crédito, a WRKits não terá acesso ao número do seu cartão, o processamento da compra é feito somente pelo sistema PayU que não passa esta informação à loja.

A W.R.Kits é uma empresa 100% legal, fornecendo nota fiscal para pessoa física ou jurídica.

×

Termos e Condições

Sobre seu cadastro

Para efetuar uma compra na W.R.Kits, o cliente necessita de um cadastro. O sistema da W.R.Kits garante total segurança em relação aos dados de nossos clientes. Para ser um cliente da W.R.Kits o usuário precisa ter um email válido e gerar uma senha em nosso sistema. Nosso banco de dados manterá sua senha criptografada, não havendo maneira nem mesmo de nossos funcionários recuperá-la em caso de esquecimento.

Se você esquecer sua senha, clique no botão "Esqueceu Senha?" na página de login. Após, informe seu email e clique em "Recuperar Senha" que o sistema enviará sua senha para o email solicitado. Seus dados estão totalmente assegurados em nossa loja. A caixa postal de email utilizada em seu cadastro é de sua responsabilidade.

Certifique-se de que a caixa de spam de seu email não bloqueie os emails enviados por nossa loja no momento da criação de cadastro em nosso site, no processo de finalização de compras e também todas as etapas do status de seu pedido.

No caso de compra via cartão de crédito, a WRKits não terá acesso ao número do seu cartão, o processamento da compra é feito somente pelo sistema PayU que não passa esta informação à loja.


Sobre nossos produtos

As fotografias pertinentes aos produtos do site (seja de fabricação própria ou outros fabricantes) são meramente ilustrativas. De acordo com a disponibilidade nos estoques, eventualmente poderão ser enviados componentes de outros fabricantes, porém contendo as mesmas características elétricas.

Alguns dos produtos fabricados pela W.R.Kits apresentam componentes cujos valores e identificações estão omitidos. Este fato é devido à Lei de Proteção à Propriedade Intelectual, que monopoliza a comercialização destes produtos evitando assim cópias ilegais. Vale ressaltar que a W.R.Kits também presta serviço de manutenção dos seus produtos, o que garante que os clientes não ficarão sem o apoio necessário em caso de defeito.


Sobre o envio

Somente após a confirmação do pagamento, o seu pedido será enviado. A W.R. Kits é parceira dos Correios sendo que todas as encomendas são despachadas via PAC ou SEDEX. O pacote com seus produtos será despachado tão logo o pagamento for confirmado ou no dia útil seguinte caso o mesmo seja confirmado após as 10:00 horas (horário de Brasília). Vale ressaltar que pagamentos através de boleto bancário tendem a demorar mais a serem identificados (até 72 horas), sendo que, se o cliente tiver urgência no envio, é aconselhável que efetue o pagamento através de depósito ou transferência direta PayU. Eventualmente algumas encomendas, mesmo com pagamento confirmado antes das 10:00 horas, poderão ser postadas no dia útil seguinte, dependendo das demandas de vendas.

A W.R. Kits não responsabiliza-se por inconvenientes causados pelos Correios, que na maioria das vezes cumpre os prazos estabelicidos de entrega. Em caso de extravio, o cliente deverá manifestar-se nos Correios com o objetivo de ressarcimento. Os clientes que optarem por PAC, deverão aguardar a entrega pacientemente, já que a mesma normalmente leva 3 vezes mais tempo que o SEDEX.

Para efetuar compras na W.R. Kits o cliente deverá aceitar os termos supracitados.

×

Envios e Trocas

Frete

Através da loja W.R.Kits você finaliza suas compras com facilidade e rapidez. Estamos equipados com sistema automático para cálculo de frete, de acordo com o CEP de sua localidade e a opção de envio de sua escolha. O sistema adiciona o valor do frete ao(s) produto(s) antes do fechamento de sua compra.


Devoluções

Em caso de defeito de fabricação, o cliente tem o direito de encaminhar o produto para avaliação em até 3 meses após a compra. O produto será antes avaliado por nossa equipe técnica para comprovação da existência de defeito. O frete de envio fica por conta do cliente e o de reenvio fica por conta da W.R.Kits.

Caso seja comprovado defeito por manuseio indevido, quedas, sobre-tensões, violação ou outros sinistros a garantia será perdida, e todas as despesas de envio e manutenção ficam por conta do cliente.


Falha no sistema

Se no ato da entrega, houver qualquer erro em relação aos produtos recebidos, entre em contato com a W.R.Kits imediatamente.

×