You are on page 1of 11

Visando a utilizar os conhecimentos adquiridos nas disciplinas de Arquitetura de

Microprocessadores e Teoria de Comunicaes III, do Curso de Engenharia Eltrica da PUCPR,


esse projeto buscou prover uma aplicao que contemplasse os assuntos estudados ao longo
dos cursos.

Sendo assim, o objetivo desse projeto foi montar o prottipo um carrinho controlado
distncia por meio de rdio-freqncia capaz de fornecer sua velocidade instantnea para a
base controladora.
|WARM-UP|


O prottipo consiste em uma carcaa de um
carrinho equipada com dois motores CC, um mdulo de
comunicao por rdio freqncia e um sensor ptico capaz
de obter informaes para o clculo da velocidade
instantnea do veculo. O controle desses dispositivos
feito por um microcontrolador PIC16F877, o qual controla o
movimento dos motores bem como a transmisso dos
dados entre a base controladora e o carrinho.

O projeto foi divido em cinco etapas:
- Utilizao do kit RF;
- Sensor de Velocidade;
- Controle dos Motores;
- Desenvolvimento do Hardware ;
- Desenvolvimento do Software.

|DIAGRAMA DE BLOCOS|


No veculo, existem dois mdulos bsicos; um deles o de aquisio dos sinais pulsados (desenvolvido com fotodiodos e fototransistores)e clculo da velocidade para transmitir base
controladora. Outro mdulo o de controle dos motores, o qual consiste em dois sinais PWM, providos pelo PIC, e uma ponte H para cada um dos dois motores, circuito que fornece a corrente
suficiente para os motores e permite a inverso do sentido do giro.
Os dados so transmitidos de forma assncrona entre o controle e o prottipo, utilizando a interface serial do PIC e Kits de RF. No controle, ocorre a aquisio dos sinais de controle do
carrinho, vindo de quatro chaves normalmente abertas, e feito tambm o registro da velocidade em displays de sete segmentos.
|CONTROLE REMOTO|

Para a utilizao do kit RF foi projetado um controle remoto. O controle formado por duas placas fenolite, a primeira contm: 2 displays de 7 segmentos, 2 CI`s e resistores de 330
ohm, esta placa responsvel por mostrar a velocidade do carrinho. Esta placa mostrada abaixo. A Segunda placa contm: 1 PIC16F876, 1 radio receptor , 1 radio transmissor, 1 oscilador de
20MHz , 1 capacitor de 22pF e quatro botes.
O controle funciona da seguinte forma: O PIC16F876 responsvel pelo comando das aes sobre o carrinho atravs dos 4 botes: acelerar para frente, acelerar para trs, virar para
esquerda e virar para direita. Estas aes so representadas por palavra binrias que so enviadas para o carrinho atravs do radio transmissor.
O radio transmissor situado no controle responsvel por receber a informao da velocidade do carrinho , transmitir tal informao para o PIC16F876 que por sua vez transmite a
informao para o CI 4511 que faz a codificao de BCD para 7 segmentos, sendo assim possvel visualizar a velocidade do carrinho no display.







|MOTORES CC|
O hardware desenvolvido para os motores tem a funo de direcionar a rotao dos motores CC ligados ao carrinho. Ele constitudo de duas pontes-H, como as da figura abaixo, cada
qual ligada a um motor. No entanto, alguns problemas foram encontrados durante o desenrolar do projeto e solues foram adotadas. Alimentao utilizada para um perfeito funcionamento dos
motores CC era de 9 V. J a alimentao requerida para o CI 7408 era de 5 V. Para isto foi adicionado ao circuito um regulador de tenso de 5 V.Problemas relacionados polarizao dos
transistores tambm foram vistos. Para isto, foram ligados ao circuito uma combinao de resistores e transistores para conseguir polarizar corretamente os transistores BC516 e BC517. Abaixo
segue a listagem dos componentes utilizados para a montagem do driver.
R11=R13=150;
R15=R16=10K;
R12=R17=330
DIODOS 1N4007;
TRANSISTORES NPN BC517;
TRANSISTORES PNP BC516;
TRANSISTORES BC548;
CIRCUITO INTEGRADO 7408.



|SENSOR DE VELOCIDADE|
O sensor de Velocidade foi implementado com dois pares de fotodiodo (TIL32) e fototransistor (TIL78), os quais capturam sinais pulsados das rodas traseiras. Estes sinais so utilizados
para fornecer a freqncia angular a partir da qual calculada a velocidade de cada roda, fornecendo um valor intermedirio como instantnea do veculo
|SOFTWARE|
/* Prototipo.c */

#include<pic.h>
#include "usart.h"
typedef struct{
char dir1,dir2,dc2,dc1;
}dado;

void FormataDados(char sData, dado *Data)
{
Data->dir1=sData&3;
Data->dir2=(sData>>2)&3;
Data->dc2=(sData>>4)&3;
Data->dc1=(sData>>6)&3;
}


#define M1T RA0
#define M1F RA1
#define M2T RA2
#define M2F RA3
void Protocolo(char sData,dado *Data);
void FormataDados(char sData,dado *Data);
void iniciaPWM(void);
void setDir(char dir1, char dir2);
void setDuty(int dutyc01,int dutyc02);

void main(void)
{
unsigned char sData;
dado cData;
init_comms();
INTCON=0;
PORTA=0;
ADCON1=ADCON1|0x06;
TRISA=0;
TRISC=0xF0;
TRISB=0x00;
CCP1CON=0;
CCP2CON=0;
iniciaPWM();
while(1){
sData=getch();
if(sData==0xAA)
RC0=1;
else
RC0=0;
PORTB=sData;
FormataDados(sData,&cData);
setDir(cData.dir1,cData.dir2);
setDuty(cData.dc1,cData.dc2);
CCP1CON=12;
CCP2CON=12;
T2CON=T2CON|7;
while(!PIR1);
PIR1=0;
}}
void setDuty(int dutyc01,int dutyc02){
if(dutyc01==0)
CCPR1L=0x00;
else if(dutyc01==1)
CCPR1L=0xFA;
else if(dutyc01==2)
void putch(unsigned char byte)
{
while(!TXIF);
TXREG = byte;
}

unsigned char getch() {
while(!RCIF);
return RCREG;
}

/*usart.h*/
#ifndef _SERIAL_H_
#define _SERIAL_H_

#define BAUD 9600
#define FOSC 20000000L

#define AUX ((int)(FOSC/(16UL * BAUD) -1))

#define RX_PIN TRISC7
#define TX_PIN TRISC6

#define init_comms()
RX_PIN = 1;
TX_PIN = 1;
SPBRG = AUX;
RCSTA = (0x90);
TXSTA = (0x20)

void putch(unsigned char);
unsigned char getch(void);

#endif


/*Controle.c*/
#include <pic.h>
#include "usart.h"

CCPR1L=0x80;
else if(dutyc01==3)
CCPR1L=0xFF;
if(dutyc02==0)
CCPR2L=0x00;
else if(dutyc02==1)
CCPR2L=0xFA;
else if(dutyc02==2)
CCPR2L=0x80;
else if(dutyc02==3)
CCPR2L=0xFF;
}
void iniciaPWM(void){
T2CON=2;
TMR2=0;
PR2=0xFF;
CCPR1L=0x00;
CCPR2L=0x00;
INTCON=0;
PIE1=0;
CCP1CON=12;
CCP2CON=12;
T2CON=7;
while(!PIR1);
PIR1=0;
}
void setDir(char dir1, char dir2)
{
if(dir1==0x00){
M1F=0;
M1T=1;
M2F=1;
M2T=1;
}else if(dir1==0x01){
M2F=0;
M2T=1;
M1F=1;
M1T=1;
}else if(dir1==0x02){
M1F=0;
M1T=1;
M2F=0;
M2T=1;
}else if(dir2==0x00){
M1F=1;
M1T=0;
M2F=1;
void main(void){
unsigned char frt,trs,tData;
PORTA=0;
ADCON1=ADCON1|0x06;
TRISA=0;
TRISB=0xFF;
INTCON=0;
init_comms();
frt=0;
trs=0;

while(1){
tData=0;
if(RB7==1){
frt++;
if(frt==1)
tData=tData|0x40;
else if(frt==2)
tData=tData|0x80;
else if(frt==3)
tData=tData|0xC0;

}else if(RB6==1){
trs++;
if(trs==1)
tData=tData|0x10;
else if(trs==2)
tData=tData|0x20;
else if(trs==3)
tData=tData|0x30;
}
if(RB5==1){
if(RB7==1)
tData=tData|0x00;
else if(RB6==1)
tData=tData|0x03;
else
tData=tData|0x02;
}
if(RB4==1){
if(RB7==1)
tData=tData|0x01;
else if(RB6==1)
tData=tData|0x07;
else
tData=tData|0x0B;
}
M2T=1;
}else if(dir2==0x01){
M2F=1;
M2T=0;
M1F=1;
M1T=1;
}else if(dir2==0x02){
M1F=1;
M1T=0;
M2F=1;
M2T=0;
}
}
putch(tData);
if(trs==3)
trs=0;
if(frt==3)
frt=0;
}
}



|DIFICULDADES|
A maior dificuldade encontrada no projeto foi o desenvolvimento do hardware, principalmente da placa do driver, formada basicamente por duas pontes H ( uma para cada motor DC) e um
CI 7408. Inicialmente os valores dos resistores da ponte H foram calculados para uma alimentao de +5V, mas com essa alimentao os motores no possuam torque suficiente para
movimentar o carrinho. Ento foi necessrio aumentar a alimentao da placa, regulando a tenso em 5V para o CI 7408 e o PIC e colocando amplificadores nas sadas digitais. Outro ponto
importante foi a utilizao de um cristal oscilador de 20Mhz, com o qual o PIC no funcionava. O problema foi identificado na gravao do microcontrolador, que apesar de estar sendo utilizado
um cristal, a configurao do endereo 2007h para no a XT, para cristais, mas sim HS, pois com 20MHz o PIC opera em modo de alta velocidade.
|RESULTADO FINAL|



|LISTA de MATERIAIS| | |FONTES de CONSULTA|
Motores CC
Carrinho
Microcontrolador PIC
Display de 7 segmentos
KIT RF
TIL 32 e TIL 78
Transistores BC516, BC517, BC548
Placas de Fenolite
Resistores
Capacitores
Software de programao gratuito (PICCLITE)
Software de Cad gratuito (Eagle)


MILLMAN, Jacob; HALKIAS, Christos C. Eletrnica: dispositivos e circuitos. So Paulo: Makron
Books, 1981. 2 v.
Site da Cadsoft (Eagle): www.cadsoft.de
Site da Microchip: www.microchip.com
Site da National: www.national.com
Site de Referncia: www.symphony.com.br/roboclube/projetos.html

You might also like