|OBJETIVO|

  Visando a utilizar os conhecimentos adquiridos nas disciplinas de Arquitetura de Microprocessadores e Teoria de Comunicações III, do Curso de Engenharia Elétrica da PUCPR, esse projeto buscou prover uma aplicação que contemplasse os assuntos estudados ao longo dos cursos.

 

 Sendo assim, o objetivo desse projeto foi montar o protótipo um carrinho controlado à distância – por meio de rádio-freqüência – capaz de fornecer sua velocidade instantânea para a base controladora.
 |WARM-UP|
Esta é: A Fera!  

O protótipo consiste em uma carcaça de um carrinho equipada com dois motores CC, um módulo de comunicação por rádio freqüência e um sensor óptico capaz de obter informações para o cálculo da velocidade instantânea do veículo. O controle desses dispositivos é feito por um microcontrolador PIC16F877, o qual controla o movimento dos motores bem como a transmissão dos dados entre a base controladora e o carrinho.

  O projeto foi divido em cinco etapas:

        - Utilização do kit RF;

        - Sensor de Velocidade;

        - Controle dos Motores;

        - Desenvolvimento do Hardware ;

        - Desenvolvimento do Software.

|DIAGRAMA DE BLOCOS|


        No veículo, existem dois módulos básicos; um deles é o de aquisição dos sinais pulsados (desenvolvido com fotodiodos e fototransistores)e cálculo da velocidade para transmitir à base controladora. Outro módulo é 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 inversão do sentido do giro. 

        Os dados são transmitidos de forma assíncrona entre o controle e o protótipo, utilizando a interface serial do PIC e Kits de RF. No controle, ocorre a aquisição dos sinais de controle do carrinho, vindo de quatro chaves normalmente abertas, e é feito também o registro da velocidade em displays de sete segmentos.

|CONTROLE REMOTO|

 

Para a utilização do kit RF foi projetado um controle remoto. O controle é formado por duas placas fenolite, a primeira contém: 2 displays de 7 segmentos, 2 CI`s e resistores de 330 ohm, esta placa é responsável por mostrar a velocidade do carrinho. Esta placa é mostrada abaixo.  A Segunda placa contém: 1 PIC16F876, 1 radio receptor , 1 radio transmissor, 1 oscilador de 20MHz , 1 capacitor de 22pF e quatro botões.

O controle funciona da seguinte forma:  O PIC16F876 é responsável pelo comando das ações sobre o carrinho através dos 4 botões: acelerar para frente, acelerar para trás, virar para esquerda e virar para direita. Estas ações são representadas por palavra binárias que são  enviadas para o carrinho através do radio transmissor.

O radio transmissor situado no controle é responsável por receber a informação da velocidade do carrinho , transmitir tal informação para o PIC16F876 que por sua vez transmite a informação para o CI 4511 que faz a codificação de BCD para 7 segmentos, sendo assim possível visualizar a velocidade do carrinho no display.



|MOTORES CC|

O hardware desenvolvido para os motores tem a função de direcionar a rotação dos motores CC ligados ao carrinho. Ele é constituído 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 soluções foram adotadas. Alimentação utilizada para um perfeito funcionamento dos motores CC era de 9 V. Já a alimentação requerida para o CI 7408 era de 5 V. Para isto foi adicionado ao circuito um regulador de tensão de 5 V.Problemas relacionados à polarização dos transistores também foram vistos. Para isto, foram ligados ao circuito uma combinação 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 são utilizados para fornecer a freqüência angular a partir da qual é calculada a velocidade de cada roda, fornecendo um valor intermediário como instantânea do veículo
 |SOFTWARE|
/* Prototipo.c */


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

#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)
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;
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;
}

  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;
}

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"

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;
}
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 alimentação de +5V, mas com essa alimentação os motores não possuíam torque suficiente para movimentar o carrinho. Então foi necessário aumentar a alimentação da placa, regulando a tensão em 5V para o CI 7408 e o PIC e colocando amplificadores nas saídas digitais. Outro ponto importante foi a utilização de um cristal oscilador de 20Mhz, com o qual o PIC não funcionava. O problema foi identificado na gravação do microcontrolador, que apesar de estar sendo utilizado um cristal, a configuração do endereço 2007h para não é 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 programação gratuito (PICCLITE)

  • Software de Cad gratuito (Eagle)

 

 

 MILLMAN, Jacob; HALKIAS, Christos C. Eletrônica: dispositivos e circuitos. São 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 Referência: www.symphony.com.br/roboclube/projetos.html

|(Futuros) ENGENHEIROS|

   

EQUIPE: João Felipe Martins
              Marcelino Costa
              Marlon Ostroski

ORIENTADORES:  Prof. Altair Olivo Santin
                          Prof. Marcelo Pellenz

CURSO: Engenharia Elétrica - Telecomunicações (7º Período)

INSTITUIÇÃO: Pontifícia Universidade Católica do Paraná
          
            

                                 

  mrl © 2005