Robô PIC
Aproveitando o chassi do Robô
IR (Infra Vermelho),
criei o robô PIC. Trata-se um robô bem simples. Suas características
aproximam-se muito do ADR-1:
andar sempre a frente, desviando dos obstáculos ao tocá-los.
Toda a parte mecânica foi desenvolvida em plástico,
aproveitado de "pranchetas" compradas em papelaria. Uma outra novidade
é o reaproveitamento de caixas de redução retiradas de brinquedos
baratos (cada carrinho custou R$5,00). A placa drive utilizada no Robô
IR foi substituida por relés. Este tipo de controle é mais simples e o
arranjo dado permite utilizar a placa para "outros fins" como:
- controle para casa inteligente
- central de segurança (alarme)
- e outras
Clique para ampliar
O
"cérebro" do Robô PIC é um
microcontrolador PIC16F84A da Microchip.
O programa foi desenvolvido em ASSEMBLY. Tudo muito simples e
funcional.
COMO FUNCIONA O ROBÔ
Meu
pequeno robô PIC utiliza relés para controlar dois
pequenos motores para sua movimentação e duas chaves
como bumper’s
(sensores de contato) para realizar o desvio
dos obstáculos. A lógica é bem simples e foi
escolhida por facilitar o entendimento da aplicação do
microcontrolador PIC como “cérebro” de um pequeno robô ( o primeiro
utilizando um microcontrolador PIC e Linguagem Assembly).
O
robô sempre se move para frente. Ao encontrar um obstáculo
ele realiza um desvio, primeiro retrocedendo para ter espaço
para o movimento e depois realizando um desvio para o lado contrário
ao toque (chave). Tudo bem simples, mas bastante funcional.
O CIRCUITO
Na
figura abaixo você tem o circuito elétrico da placa de controle
do Robô PIC. É possível
ver o PIC16F84A como “cérebro” do circuito e ligado
a este, duas pequenas chaves (S2 e S1), utilizadas como sensores de
contatos, além de quatro relés (RL1 a RL4) que realizam
o controle sobre os motores.
Os
relés RL1 e RL2 executam o “ligar/desligar” dos
motores do robô. Os relés RL3 e RL4 realizam a
inversão da polaridade da alimentação dos motores, permitindo
assim a reversão dos mesmos.
Para
a alimentação do circuito optei por dois conjuntos de
pilhas independentes, um para o microcontrolador e outro para os
motores, para isolar o máximo possível o circuito dos motores,
evitando possíveis interferências geradas pelos mesmos.
O diodo
D1, presente no
circuito, abaixa a tensão de alimentação das quatro pilhas de
6VDC para 5,3VDc aproximadamente (uma queda de 0,7V), pois o
microcontrolador PIC trabalha com uma tensão de alimentação de 5DC +/-
10%.
DICAS PARA MONTAGEM Eu
projetei e montei este robô há alguns anos e na época eu utiliza outros
programas, que não uso mais, para realizar desenhos de lay-out
e circuitos eletrônicos. Hoje uso Eagle/Linux. Tudo o que restou foram
algumas imagens, mas que creio, irão ajudar. Caso você se interesse em
montar este robô, poderá usar o lay-out que desenvolvi como referência
ou ainda, fazer o seu próprio. O uso do desenho abaixo também é
possível. Porém devo alertar que o mesmo esta totalmente fora de
escala. Para utilizá-lo, você terá de imprimir uma cópia e colocar um
PIC sobre a mesma. A partir dai é só recalcular a escala e imprimir
novamente até obter o tamanho desejado. Sobre
a conexão dos relés aos motores, a figura abaixo mostra em detalhes
como fiz isso. Espero que esta ajude também na compreenção do esquema
elétrico.
O PROGRAMA
Na
figura abaixo é possível ver o fluxograma do programa e acompanhando o
código
fonte do mesmo será possível entender seu funcionamento. O
programa foi extensamente comentado para facilitar a sua compreensão.
O
programa inicia as diretrizes de pré-compilação
e suas variáveis. Em seguida o microcontrolador é
configurado (direção dos pinos, interrupções,
etc). Na rotina “LOOP” o programa realiza a leitura dos bumper's.
Se qualquer um deles for pressionado, a variável de controle é alterada
e em seguida será inserida na parte mais significativa da
porta B. Esta variável
de controle é que determina qual a direção será
tomada pelo robô. A tabela abaixo descreve como isso é feito.
Tabela -
Valores possíveis para a variável de controle
Valor
binário na porta B
|
Efeito
nos motores
|
Direção
do robô
|
0011XXXX
|
Motores
M1 e M2 ligados.
|
Para
frente
|
1111XXXX
|
Motores
M1 e M2 ligados invertidos
|
Para
trás
|
1101XXXX
|
Motor
M1 ligado invertido, motor M2 desligado
|
Deslocamento
para trás, à esquerda
|
1110XXXX
|
Motor
M1 desligado, motor M2 ligado invertido
|
Deslocamento
para trás, à direita
|
XX00XXXX
|
Motores
M1 e M2 desligados
|
Robô
Parado
|
Obs.:
O “X” na tabela representa "valor irrelevante" (tanto faz se “0” ou
“1”).
Assim,
quando um bumper for pressionado o robô pode realizar o
movimento necessário.
DONWLOADS:
-
Circuito elétrico - Lay-out do circuito impresso (versão original - Setembro/2003) - Esquema para conexão dos relés - Programa
LISTA DE MATERIAIS:
Semicondutores
CI1 –
PIC16F84A-04/P Microchip
D1, D2, D3, D4, D5 – 1N4001 – diodo retificador
Q1, Q2, Q3, Q4 – BC548 – Transistor NPN
Resistores
R1 –
330R (laranja, laranja, marrom)
R2, R3 – 4,7 k (amarelo, violeta, vermelho)
R4, R5, R6, R7 – 1 k (marrom, preto, vermelho)
Capacitores
C1 –
100nF – cerâmico
C2, C3 – 33pF – cerâmico
Diversos
S1 –
Chave liga/desliga “H-H” dupla
S2, S3 – chave tipo “push-button” Normalmente Aberta (veja texto)
XTAL1 – Cristal de 4 MHz
RL1, RL2, RL3, RL4 – relé com bobina de 6V Metaltex A1RC1 ou
equivalente (veja texto)
M1, M2 – Motores DC para até 6V com caixa de redução (veja texto)
1 – suporte para 4 pilhas pequenas
1 – suporte para 4 pilhas médias
4 - conectores parafusáveis para três fios cada tipo “borneira”
Fios para ligação, placa de circuito impresso, parafusos para fixação,
solda, , etc
|
|
Este
projeto foi publicado, com minha autorização, na Revista Mecatrônica Fácil nº 13 de Novembro/Dezembro de 2003.
Especificações:
- Cérebro - PIC16F84A - 4MHz - Motores - 2 caixas de redução retiradas de brinquedos baratos. - Sensores - duas chaves (bumpers) para colisão - Alimentação- 4 pilhas (6V) para os motores e 4 pilhas (6V) p/ o PIC - Chassi - plástico - Programa - Assembler
|
|