Requisitos:
- Decodificador DTMF
- Cabo de áudio de 3,5 mm (para conectar o celular ao módulo DTMF)
- AT89S52
- 7805
- Motores CC engrenados
- Bateria (10-12v)
- Cristal de 11,0592 MHz
- L293D IC (driver do motor)
- Roda para motores
Fig. 1: Imagem mostrando a parte traseira do robô operado móvel baseado em microcontrolador 8051
Fig. 2: Imagem mostrando a vista superior do robô operado móvel baseado em microcontrolador 8051
Fig. 3: Imagem mostrando a parte frontal do robô operado móvel baseado em microcontrolador 8051
Fig. 4: Imagem mostrando a vista lateral do robô operado móvel baseado em microcontrolador 8051
Descrição:
O controle móvel é feito principalmente com decodificador DTMF. DTMF significa Dual Tone Multi Frequency. Este módulo pode receber até 4 bits de dados por vez (ou seja, 0-15 valores decimais).
O DTMF precisa de duas plataformas móveis, uma para enviar instruções e outra para recebê-las.
Este módulo contém um IC que decodifica os sinais recebidos e os converte em dados de 4 bits.
Ao pressionar os botões do teclado, é feita uma conexão que gera dois tons ao mesmo tempo.
Fig. 5: Imagem mostrando mapeamento de teclas de frequências DTMF para um teclado numérico
gerar os tons 1336 Hz e 697 Hz. Claro, o tom 697 é o mesmo para ambos os dígitos, mas são necessários dois tons para quando você pressiona o dígito 1 no teclado, você gera os tons 1209 Hz e 697 Hz. Pressionar o dígito 2 irá
faça um dígito e o equipamento de decodificação sabe a diferença entre os 1209 Hz que completariam o dígito
1 e 1336 Hz que completa o dígito 2.
Esta tabela mostra a saída de dados de 4 bits (bit a bit) do módulo decodificador DTMF de acordo com o botão pressionado:
Fig. 6: Tabela listando frequências e respectivas saídas digitais utilizadas em DTMF
Neste projeto usei apenas 5 chaves; eles são:
2 (para movimento para frente)
4 (para mover para a esquerda) 5 (para parar o bot) 6 (para mover para a direita)
8 (para movimento para trás)
Um módulo DTMF específico consiste em pinos de sinal (sinais de entrada do celular via conector de 3,5 mm), 4 pinos (D0, D1, D2, D3) para transmissão de dados de 4 bits e um pino DV que fica alto em cada decodificação de dados bem-sucedida.
Neste projeto meus pinos DTMF de 4 bits estão conectados à PORT2 do MC (1.e. pino P2 ^ 0, 1, 2, 3).
As entradas L293D estão conectadas aos pinos P1 ^ 1,2,3,4 respectivamente.
O L293D nos ajudará a acionar perfeitamente os motoredutores CC.
Na parte de codificação usei um arquivo de cabeçalho definido pelo usuário L293D.h para controlar L293D de acordo com as entradas DTMF.
Código fonte do projeto
### Coding (MAIN): #include#include void main { P2=0xff; stop ; while(1) { if(P2==0xf2) { forward ; while(P2==0xf2); } if(P2==0xf4) { left ; while(P2==0xf4); } if(P2==0xf5) { stop ; while(P2==0xf5); } if(P2==0xf6) { right ; while(P2==0xf6); } if(P2==0xf8) { backward ; while(P2==0xf8); } } } Coding (L293D): sbit MRp=P1^4; sbit MRn=P1^3; sbit MLp=P1^2; sbit MLn=P1^1; void forward { MRp=1; MRn=0; MLp=1; MLn=0; } void backward { MRp=0; MRn=1; MLp=0; MLn=1; } void left { MRp=1; MRn=0; MLp=0; MLn=1; } void right { MRp=0; MRn=1; MLp=1; MLn=0; } void stop { MRp=0; MRn=0; MLp=0; MLn=0; } ###
Diagramas de circuito
Diagrama de Circuito-8051-Robô Operado Móvel Baseado em Microcontrolador |