Você está na página 1de 64

Centro Universitrio do Sul de Minas UNIS-MG

Bacharelado em Cincia da Computao

SISTEMA DE POSICIONAMENTO MICROCONTROLADO UTILIZANDO COMUNICAO SERIAL

Jos Eduardo Silva Gomes

Janildo Dimas Borges Lucas Nogueira Paiva Thoms Santos Silva Piedade

Varginha 2008

Centro Universitrio do Sul de Minas UNIS-MG

Bacharelado em Cincia da Computao

SISTEMA DE POSICIONAMENTO MICROCONTROLADO UTILIZANDO COMUNICAO SERIAL

Projeto de

Concluso de

Curso

apresentado ao programa do curso de Bacharelado em Cincia da Computao do Centro Universitrio do Sul de Minas, como requisito parcial para a obteno do ttulo de Bacharel em Cincia da

Computao

Varginha 2008 FOLHA DE APROVAO

Janildo Dimas Borges Lucas Nogueira Paiva Thoms Santos Silva Piedade

SISTEMA DE POSICIONAMENTO MICROCONTROLADO UTILIZANDO COMUNICAO SERIAL

Monografia apresentada ao curso de Cincia da Computao do Centro Universitrio do Sul de Minas UNIS/MG, como pr-requisito para obteno do grau de bacharel pela Banca Examinadora composta pelos membros:

( ) Aprovado ( ) Reprovado

Data

_________________________________________________________ Prof Especialista Jos Eduardo Silva Gomes _________________________________________________________ Prof. Especialista Agnus Azevedo Horta _________________________________________________________ Prof. Especialista Lzaro Eduardo da Silva

OBS.: 3

Dedicamos em especial as nossas famlias que nos ajudaram durante toda essa jornada, aos

nossos professores e coordenadores pelos ensinamentos e orientaes passadas no decorrer do curso.

AGRADECIMENTOS
Em primeiro lugar, agradecemos a Deus, pela beno da inteligncia, sade, amizade e principalmente por jamais ter nos deixados sozinhos na procura dos nossos sonhos. Um agradecimento muito especial as nossas famlias pelo apoio, incentivo e compreenso na realizao deste trabalho. Nosso profundo agradecimento ao Prof. Jos Eduardo por esta oportunidade e acima de tudo pela pacincia e ateno que teve para conosco ao longo destes anos. Agradecemos a colaborao de nosso amigo e companheiro de trabalho William Cruz de Oliveira, por sua colaborao durante o projeto. E finalmente, aos nossos amigos e professores que, de forma direta ou indireta, contriburam para a realizao desse projeto.

LISTA DE FIGURAS
FIGURA 1 Demonstrao da tcnica de Pipeline...................................................15 FIGURA 2 Exemplo de microcontroladores PIC.....................................................16 FIGURA 3 Diagrama em blocos da ALU ................................................................17 FIGURA 4 Registrador de STATUS .......................................................................17 FIGURA 5 Esquema Genrico de um Portal de Entrada/Sada .............................21 FIGURA 6 Montagem de um oscilador RC externo................................................23 FIGURA 7 Conexo de um cristal oscilador a entrada de clock do PIC16.............24 FIGURA 8 Descrio dos pinos do PIC16F628......................................................25 FIGURA 9 Diagrama em blocos do PIC16F628 .....................................................27 FIGURA 10 Interface MPLAB IDE..........................................................................29 FIGURA 11 Abertura de Projeto no MPLAB IDE....................................................29 FIGURA 12 Placa de Gravao de MCU ICD2. .....................................................30 FIGURA 13 Transmisso de um sinal serial assncrono ........................................31 FIGURA 14 Pinagem conector DB9. ......................................................................32 FIGURA 15 Comunicao entre as aplicaes e o sistema operacional. ..............34 FIGURA 16 Ambiente de programao do Visual Studio 2008 ..............................35 FIGURA 17 Micro cmera ......................................................................................36 FIGURA 18 Converso de tenso MAX232 ...........................................................37 FIGURA 19 Esquema de Pinagem do MAX232 .....................................................37 FIGURA 20 ULN2803 estrutura fsica e disposio dos pinos. ..............................38 FIGURA 21 Exemplos de motores de passo..........................................................39 FIGURA 22 Dispositivo de Captura de TV e Vdeo. ...............................................40 FIGURA 23 Interligao dos componentes do sistema..........................................42 FIGURA 24 Montagem real do sistema..................................................................43 FIGURA 25 Software Controle Serial .....................................................................44 FIGURA 26 Configurao do componente SerialPort ............................................44 FIGURA 27 Status do boto SERIAL ON/OFF.......................................................45 FIGURA 28 Status do boto HABILITAR / DESABILITAR VDEO .........................45 FIGURA 29 Status do boto GRAVAR...................................................................45 FIGURA 30 Status dos botes de direcionamento.................................................46 FIGURA 31 Cabo serial com conectores DB9 macho............................................47 FIGURA 32 Cabo conversor USB / Serial ..............................................................47 FIGURA 33 Criao de uma interface serial. .........................................................48 FIGURA 34 Configurao da Porta ........................................................................48 FIGURA 35 Configurao do nmero da porta ......................................................49 FIGURA 37 Fonte de alimentao externa.............................................................50 FIGURA 38 Comunicao serial RS232 ................................................................50 FIGURA 39 Circuito eltrico MAX232 ....................................................................51 FIGURA 40 Circuito eltrico PIC 16F628 ...............................................................52 FIGURA 41 Circuito eltrico ULN2803 ...................................................................53 FIGURA 42 Cdigo fonte inicial do PIC..................................................................53 FIGURA 43 Tela Principal do InterVdeo e o seu menu de configuraes..............55 FIGURA 44 Tela de configurao de entrada de vdeo..........................................55 FIGURA 45 Kit de captura e transmisso de imagem sem fio ...............................56 FIGURA 46 Prottipo posicionador ........................................................................57 FIGURA 47 Dimenses do Motor de Passo ...........................................................57 FIGURA 48 Interligao das bobinas do motor ......................................................58 6

LISTA DE TABELAS
TABELA 1 Descrio Pinagem MCU .....................................................................26 TABELA 2 Pinagem RS-232C DB9........................................................................32 TABELA 3 Especificaes do ULN2803.................................................................38 TABELA 4 Seqncia de acionamento das bobinas ..............................................58

SUMRIO
RESUMO...................................................................................................................10 I - INTRODUO ......................................................................................................11 1.1 Objetivos........................................................................................................11 1.1.1 Objetivos gerais......................................................................................11 1.1.2 Objetivos especficos .............................................................................11 1.2 Justificativa ...................................................................................................12 1.3 Organizao do Trabalho .............................................................................12 II MICROCONTROLADORES................................................................................13 2.1 Origem ..........................................................................................................13 2.2 Microcontrolador PIC ....................................................................................14 2.2.1 Definio ................................................................................................14 2.2.2 Arquitetura..............................................................................................14 2.2.3 Famlias PIC...........................................................................................15 2.2.3.1 Sub - Famlias..................................................................................16 2.2.4 Estrutura Interna.....................................................................................17 2.2.4.1 ULA (Unidade Lgica Aritmtica) ou ALU........................................17 2.2.4.2 Registradores ..................................................................................18 2.2.4.3 Memrias .........................................................................................18 2.2.4.3.1 Memria de Programa ..............................................................19 2.2.4.3.2 Memria de Dados....................................................................19 2.2.4.4 Pilha ou Stack..................................................................................20 2.2.4.5 Contador de Programa ou PC .........................................................20 2.2.4.6 Interfaces de Entrada e Sada ou I/O Ports .....................................20 2.2.4.7 Temporizadores TMR0 / Contador de 8 bits ....................................22 2.2.4.8 Barramento de Dados......................................................................22 2.2.4.9 Barramento de Endereo.................................................................22 2.2.4.10 Osciladores....................................................................................22 2.2.4.11 USART (Interface Serial Universal Sncrona / Assncrona) ...........24 2.3 PIC16F628 (utilizado no projeto) ..................................................................24 2.3.1 Descrio dos Pinos...............................................................................25 2.4 Programao do Microcontrolador................................................................27 2.4.1 ICSP (Programao serial no circuito) ...................................................27 2.4.2 Linguagem de Programao Assembly..................................................27 2.4.3 Linguagem de Programao C...............................................................28 2.4.4 MPLAB IDE (Integrated Development Environment)..............................28 2.4.5 - Compiladores ..........................................................................................30 2.4.5.1 Placa gravadora para microcontroladores PIC ................................30 III COMUNICAO SERIAL ..................................................................................31 3.1 Comunicao Serial Assncrona...................................................................31 3.2 Comunicao Serial Sncrona ......................................................................31 3.3 Estrutura da Comunicao Serial do Microcomputador................................31 IV O SOFTWARE...................................................................................................33 4.1 Paradigmas de Linguagens de Programao...............................................33 4.2 Plataforma Framework .NET ........................................................................33 4.3 Visual Studio.................................................................................................34 4.4 Linguagem de Programao C# ...................................................................35 V O HARDWARE ...................................................................................................36 5.1 Micro cmera com receptor ..........................................................................36 8

5.2 Interface de entrada MAX232 .......................................................................37 5.3 Interface de sada ULN2803 .........................................................................38 5.4 Motor de passo .............................................................................................39 5.5 Dispositivo de captura de TV e vdeo ...........................................................40 VI ATIVIDADES DESENVOLVIDAS ......................................................................42 6.1 Desenvolvimento do Prottipo ......................................................................42 6.2 Comparativo Sistema Convencional e Microcontrolado................................43 6.3 O Software Controle Serial ........................................................................44 6.3.1 - Monitorao ............................................................................................45 6.3.2 Posicionador ..........................................................................................46 6.3.2.1 Lgica de Funcionamento ...............................................................46 6.3.3 Status do Sistema ..................................................................................46 6.3.4 Velocidade .............................................................................................46 6.4 Instalao do cabo USB/Serial .....................................................................47 6.5 Placa de controle principal............................................................................49 6.5.1 Entrada serial RS232 .............................................................................50 6.5.2 - MAX232 ..................................................................................................51 6.5.3 PIC 16F628 ............................................................................................52 6.5.4 ULN2803 ................................................................................................52 6.5.5 - Software do PIC ......................................................................................53 6.6 Instalao do dispositivo de captura de vdeo ..............................................54 6.7 Instalao da micro-cmera..........................................................................56 6.8 Montagem do Prottipo de um Posicionador ................................................56 VII CONCLUSO ...................................................................................................59 VIII DIFICULDADES ENCONTRADAS ..................................................................60 IX TRABALHOS FUTUROS ...................................................................................61 X - REFERNCIAS BIBLIOGRFICAS ....................................................................62 XI ANEXO ..............................................................................................................64 Anexo 1: Esquema eltrico e eletrnico do projeto................................................64

RESUMO
Com o avano da micro-tecnologia e o aumento da capacidade de processamento dos microcontroladores, a sua utilizao tem se tornado maior a cada dia, estando presente em diversos setores do ramo industrial e tecnolgico, criando novos conceitos de produtos e diferentes modos de interao com os mesmos. Neste contexto, a utilizao dos diversos tipos de interfaces de comunicao existentes nos microcomputadores, como interface serial, paralela e USB conectadas aos microcontroladores podem se revelar uma excelente opo para o desenvolvimento de sistemas de controle de dispositivos ou acionadores eletromecnicos, oferecendo um custo razovel alinhado a um grande poder de processamento e controle. Na tentativa de se desenvolver um sistema microcontrolado utilizando a interface serial como meio de comunicao entre o microcontrolador e o microcomputador construiu-se uma aplicao que pudesse representar bem este tipo de abordagem. Esta aplicao consiste em controlar um prottipo de um posicionador de antenas, para isto deve-se efetuar o controle de dois motores que realizam os movimentos horizontais e verticais, a fim de, posicionar a antena na direo correta. Esta aplicao conta tambm com uma micro-cmera sem fio fixada na ponta do posicionador tendo a funo de mostrar ao usurio para onde a antena est sendo apontada.

10

I - INTRODUO
Sistemas de controle e automao sempre fascinaram o homem, desde as suas tcnicas mais rudimentares de construo, at os dias atuais. Antes mesmo do surgimento das vlvulas eletrnicas, transistores, circuitos integrados, microprocessadores e microcontroladores o homem busca uma maneira de controlar uma mquina de forma mais precisa, segura, rpida e fcil (PEREIRA 2004). Com o intuito de estudar e experimentar novas maneiras de controle e automao foi aplicado o conhecimento das reas de informtica, eletrnica e eletromecnica na construo de um sistema microcontrolado, chegando-se ao desenvolvimento de um prottipo de um posicionador de antenas. Este prottipo ter como interface de controle um software que envia os comandos solicitados pelo usurio para a porta serial do microcomputador. Ligado porta serial est o microcontrolador que recebe o sinal enviado pelo software atuando os dois motores (horizontal e vertical) do posicionador, de acordo com o comando executado pelo usurio. Conectada plataforma do posicionador est uma micro cmera no qual mostra para onde o posicionador est sendo direcionado. Sua imagem pode ser vista por uma janela de visualizao do software. O controle deste posicionador utilizando este meio de comunicao s foi possvel, devido o alto nvel de desenvolvimento dos microcontroladores, pois eles so capazes de receber e interpretar um comando e logo em seguida o execut-lo conforme a sua programao. Sendo muito teis no desenvolvimento deste tipo de aplicao e em muitas outras no qual necessitam de processamento independente dos microcomputadores. Um sistema de controle ou um dispositivo qualquer utilizando um microcontrolador pode ser muito eficiente e vivel, tanto para pequenas tarefas, quanto para situaes onde se necessita de um pequeno e limitado poder de processamento e resposta, sendo nestas ocasies economicamente ou espacialmente invivel a instalao de um microcomputador para a realizao de tais tarefas.

1.1 Objetivos
1.1.1 Objetivos gerais
O desenvolvimento de um sistema de posicionamento horizontal e vertical microcontrolado conectado a um microcomputador utilizando comunicao serial, no qual poder ser utilizado para diversas aplicaes, mas em especial para o alinhamento de antenas em enlace de microondas para a transmisso de udio e vdeo.

1.1.2 Objetivos especficos


Levantar bibliografia sobre microcontroladores; Levantar bibliografia sobre comunicao serial; Levantar bibliografia sobre interfaces e entrada e sada; Estabelecer conexo entre o software e as portas seriais; Desenvolver um software como interface de controle do sistema desenvolvido;

11

Implementar circuitos eletrnicos para a comunicao entre o software e o microcontrolador; Montar um prottipo de um posicionador de antena como um exemplo de aplicao.

1.2 Justificativa
Os sistemas de posicionamento de antenas mais comuns so desenvolvidos utilizando circuitos eletrnicos ligados a um conjunto de chaves liga/desliga ou joysticks para o controle da direo (horizontal ou vertical) do posicionador. Dentro do conjunto de posicionamento ficam apenas os motores, engrenagens e chaves de fim de curso. Conectados a ele esto os cabos que o interligam com o mdulo de controle. Este sistema tem como desvantagem o espao ocupado pelo caixa ou gabinete do sistema de controle, o desgaste natural dos circuitos e chaves e o grande volume de fios que o interligam. O sistema de posicionamento microcontrolado utilizando uma interface serial pode ser uma boa opo para quem no dispe de espao para a instalao do controlador eletrnico com os seus cabos de conexo. Pois o mdulo de controle eletrnico substitudo por um software responsvel por enviar comandos atravs da porta serial do microcomputador, no qual sero recebidos por um microcontrolador, que pode ser instalado dentro do prprio posicionador. Conectado a uma interface de sada, o microcontrolador aciona os dois motores do sistema. Assim so necessrios apenas quatros fios para o seu funcionamento, sendo dois para a comunicao serial e dois para a alimentao do conjunto. Este projeto tem o propsito de verificar o quanto este sistema microcontrolado vivel para esta aplicao. Buscando novas formas de controles de dispositivos atravs de softwares dedicados.

1.3 Organizao do Trabalho


Este projeto apresentado em 10 captulos. O captulo 1 aborda os motivos do desenvolvimento de uma aplicao microcontrolada, mostrando o propsito da criao de um prottipo de um posicionador e explicitando a utilizao dos microcontroladores. A apresentao do referencial terico, demonstrando os componentes eletrnicos e dispositivos utilizados no projeto, juntamente com as suas especificaes esto nos captulos 2, 3, 4 e 5. O captulo 6 apresenta as atividades desenvolvidas, com a representao do sistema e a descrio de suas caractersticas e configuraes. O captulo 7 traz a Concluso do projeto. O captulo 8 apresenta a Dificuldades Encontradas durante o seu desenvolvimento. O captulo 9 aborda os Trabalhos Futuros. O captulo 10 apresenta a Bibliografia.

12

II MICROCONTROLADORES
2.1 Origem
De acordo com Pereira (2004), os sistemas com microprocessadores so resultantes de uma busca incessante do homem, pela construo de mquinas programveis e automticas. A comear pelas primeiras mquinas programveis, os teares (para a produo de tecidos), estas possuam um sistema binrio primitivo, onde eram programadas por meio de cartes perfurados, formando uma seqncia de trabalho da mquina. Aps os teares, surgiram as primeiras mquinas de calcular mecnicas e posteriormente as eletromecnicas. A princpio no so consideradas como autnticos dispositivos programveis, mas constituem um importante degrau para o desenvolvimento dos primeiros computadores eletrnicos. Um dos primeiros computadores eletrnicos foi o ENIAC, que utilizava em torno de 18.000 vlvulas eletrnicas, pesava cerca de 30 toneladas e consumia aproximadamente 150KW (o consumo era equivalente a 40 chuveiros residenciais). Um grande passo foi dado com o surgimento do transistor, tornando a construo dos computadores menos dispendiosa, diminuindo o seu tamanho e consumo, aumentando a sua velocidade e poder de processamento. Estes computadores, ainda eram grandes para os nossos padres atuais, pois eram construdos com base em CIs digitais discretos e transistores. No final dos anos 60, os grandes fabricantes de semicondutores comearam a desenvolver dispositivos integrados, que pudessem ser programados para executar uma seqncia qualquer de instrues, ou seja, um programa. A partir da, foi desenvolvido o i4004, um microprocessador de quatro bits desenvolvido pela Intel em 1969, que dispunha de 46 instrues, clock de 740KHZ e formado por mais de 2000 transistores. Aps o i4004, surgiu o i4040, possuindo o dobro da capacidade de endereamento de memria (8 k) e 60 instrues. Tempo depois, a Intel lanou o i8008 com oito bits, 16 k de capacidade de memria, 48 instrues e clock chegando a 800KHZ. Este foi o precursor da famlia mais importante na histria dos microprocessadores: o Intel 8080A, o primeiro a implementar um barramento de endereo de 16 bits (64k de memria), clock de 3MHZ e 78 instrues (PEREIRA, 2004). Com base na arquitetura do 8080 surgiram diversas famlias de MPUs (acrnimo ingls para Micro Processor Unit, ou Unidade de Microprocessador), como: 8085, 8086 (utilizado nos primeiros PCs da IBM em 1980), o Z80 da Zilog e outras. Surgiram tambm neste perodo, as famlias como 6800 da Motorola, o 6502 da Mostek (utilizado no Apple II) dentre outros. No entanto, os microprocessadores so dispositivos que necessitam de outros componentes externos para o seu funcionamento. Alguns como: memria RAM, responsvel pelo armazenamento de dados e variveis, memria ROM, responsvel pelo armazenamento do programa, CIs geradores de pulso de clock, endereamento, dentre outros. Visando desenvolver um dispositivo simples, que tivessem todos estes dispositivos integrados em um nico chip, os fabricantes de processadores desenvolveram os primeiros MCUs (Micro Controle Unit ou Unidade de Microcontolador) na dcada de 80. Tais caractersticas tornam mais

13

simples o projeto de dispositivos inteligentes, pois os MCUs raramente necessitam de componentes externos para funcionar, diminuindo o custo e o seu tamanho. Os primeiros microcontroladores implementavam a tecnologia do 8080, como, por exemplo, o 8048 e posteriormente o 8051, todos da Intel. De acordo com Martins (2005), existem no mercado diversos tipos de microcontroladores, sendo o 8051 o mais popular. A ATMEL possui uma enorme famlia de componentes com as mesmas caractersticas do 8051, alguns at com as mesmas pinagens dos registradores; outros com pinagens diferentes, mas com o mesmo conjunto de instrues, com clock de 4MHZ at aproximadamente 10MHZ. A DALLAS Semicondutors tem um microcontrolador de alta performance, de at 90MHZ, compatvel com 8051. Por fim, vem a Microchip Technology Inc. com os microcontroladores da srie PIC que se tornaram muito populares, graas disseminao de uma ferramenta de auxilio a construo de programas o MPLAB IDE.

2.2 Microcontrolador PIC


Entre os vrios modelos de microcontroladores existentes no mercado, o escolhido para ser utilizado no projeto foi o microcontrolador PIC (acrnimo ingls Peripherical Interface Controller ou Controlador de Interface Perifrica), cujo fabricante a empresa norte americana Microchip Technology Inc., com sede na cidade de Chandler, uma das principais cidades do Estado do Arizona, situado ao sudoeste dos EUA. Esta escolha se deu em funo de sua popularidade entre os programadores, desenvolvedores e pelo grande nmero de materiais didticos e acadmicos relacionados ao tema.

2.2.1 Definio
Os microcontroladores PIC so uma famlia de microcontroladores, que processam dados de 8 bits e de 16 bits, mais recentemente 32, com extensa variedade de modelos e perifricos internos, com arquitetura Harvard e conjunto de instrues RISC (Reduced Instruction Set Computer ou Conjunto de Instrues Reduzidas), com recursos de programao por Memria flash, EEPROM e OTP. Os microcontroladores PIC tm famlias com ncleos de processamento de 12 bits, 14 bits e 16 bits e trabalham em velocidades de 0kHz (ou DC) a 48MHz, usando ciclo de instruo mnimo de 4 perodos de clock, o que permite uma velocidade de no mximo 10 MIPS (Milhes de Instrues por Segundo). H o reconhecimento de interrupes tanto externas como de perifricos internos. Funcionam com tenses de alimentao de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP,etc) (WIKIPDIA, 2008).

2.2.2 Arquitetura
A arquitetura utilizada na construo do MCUs PIC chamada de Arquitetura Harvard. Sua principal caracterstica ter a memria de programa separada da memria de dados e acessada por um barramento independente.

14

Conforme Adriano (2008), existe tambm a arquitetura von-Neumann, onde tanto as memrias de dados quanto a de programa, so acessadas usando-se um mesmo barramento de dados. Nesta arquitetura no h limitaes complexidade das instrues, os sistemas geralmente tm conjuntos de instrues complexos, o que equivale a dizer que possuem um grande nmero de instrues e cada instruo realiza uma grande seqncia de aes (instrues complexas), gastando tempos (quantidade de ciclos de execuo) diferentes para serem executadas. Processadores deste tipo so chamados CISC (Complex Instruction Set CPU ou CPU com Set de Instrues Complexo). Na arquitetura Harvard a leitura de instrues e de alguns tipos de operandos podem ser feitas ao mesmo tempo em que as instrues so executadas. Isso significa que o sistema fica o tempo todo executando instrues, o que acarreta um significativo ganho de velocidade. Enquanto uma instruo executada, a seguinte esta sendo lida. Esse processo conhecido como pipeling (canalizao) e ilustrado pela figura 1.0 descrita abaixo:

FIGURA 1 Demonstrao da tcnica de Pipeline (Fonte: Microchip, 2002)

Com esta configurao o barramento de programa no necessita ter o mesmo tamanho do barramento de dados. Assim, em uma nica palavra da memria de programa pode conter operandos e operadores, o que permite carregar toda a instruo em um nico ciclo de leitura de memria.

2.2.3 Famlias PIC


Como os microcontroladores podem ter diferentes configuraes de montagem, a diviso dos mesmos em Famlias ou Linhas foi realizada para agrupar os MCUs que tm vrios componentes, com tamanhos e recursos iguais. Sendo que o cdigo desenvolvido para um componente de uma determinada famlia compatvel com os demais componentes da mesma famlia, exceto por algumas pequenas alteraes, que se referem principalmente aos perifricos. Cada famlia tem o seu prprio conjunto de instrues. Assim, para um mesmo fabricante, as famlias guardam uma semelhana entre si, apesar de no serem exatamente iguais. A Microchip disponibiliza as seguintes famlias de microcontroladores: PIC10; PIC12; PIC14; PIC16; PIC17;

15

PIC18; PIC24F / PIC24H; dsPIC30 / dsPIC33; PIC32;

As Famlias mais utilizadas so as PIC12, PIC16 e PIC18. Tanto a linha PIC18 quanto a linha PIC16 so compostas por microcontroladores com de oito bits para o endereamento e barramento de dados. J o endereamento e barramento de programa da linha PIC18 contam com dois bits a mais, que a linha PIC16. Fazendo uma comparao, a linha PIC16 tem instrues de 14bits e um conjunto de 35 instrues, com o aumento para 16bits na linha PIC18 o conjunto passa a executar de 75 a 83 instrues, dependendo modelo do MCU (ADRIANO, 2008). A figura 2 mostra a grande diversidade de modelos e tamanhos:

FIGURA 2 Exemplo de microcontroladores PIC A famlia PIC24F / PIC24H composta por componente de 16bits e a mais recente. J a linha dsPIC30/dsPIC33 traz controladores hbridos de 16bits. No final de 2007 foi lanada tambm a famlia PIC32, composta por componentes de 32bits.

2.2.3.1 Sub - Famlias


Devido a grande variedade de opes de dispositivos dentro de uma mesma famlia, foram criadas a sub-famlias. Os seus componentes se diferenciam em quantidade de memria RAM, quantidade de memria EEPROM de dados (alguns modelos nem possuem), quantidade de memria Flash de programa, nmero de pinos (18, 28, 40,...), freqncia de clock e perifricos. Dentre os principais perifricos podemos citar os timers, conversores A/D, comparadores analgicos, mdulos USART (Universal Serial Assncrona RX e TX ou Porta de comunicao serial assncrona de RX e TX), mdulos MSSP (I2C e SPI mster), mdulos CCP (Captura Comparao PWM), etc (ADRIANO, 2008).

16

2.2.4 Estrutura Interna 2.2.4.1 ULA (Unidade Lgica Aritmtica) ou ALU


Conforme Adriano (2008), a ULA do PIC18 realiza operaes de soma, subtrao, deslocamento e operaes lgicas. Estas operaes tm operadores e resultados de 8bits. A ULA trabalha com dois registros: o registro W, tambm chamado de WREG est sempre envolvido nas operaes matemticas, podendo ser um dos operandos e/ou o destino do resultado, o registro STATUS informa os resultados notveis das operaes matemticas atravs de flags (conforme figura 3). A figura 3 apresenta o diagrama em blocos da ALU:

FIGURA 3 Diagrama em blocos da ALU (Fonte: Adriano, 2008)

A seguir mostrado na figura 4 o registro STATUS bem como a interpretao dos bits de flags:

FIGURA 4 Registrador de STATUS

Sendo: N: Negativo, indica quando o resultado de uma operao for positivo ou negativo; OV: Overflow, indica a ocorrncia de overflow na execuo de uma operao;

17

Z: Indica a ocorrncia de zero no resultado de uma operao da ALU; DC: Carry / Borrow, indica o transporte do quarto para o quinto bit; C: Carry / Borrow, indica o transporte para o oitavo bit;

2.2.4.2 Registradores
Segundo Pereira (2004), a memria RAM armazena registradores de propsito em geral denominados GPR (Geral Purpose Register ou Registradores de Propsito Geral) e registradores de funes especficas denominados SFR (Special Function Register ou Registradores de Funes Especiais). Os registradores de finalidade geral podem ser usados para qualquer propsito, ficando a cargo do programador o controle e uso dos mesmos. Alguns registradores tm uma funo especfica e cada bit (ou um conjunto de bits) controla algum recurso ou modo de operao do microcontrolador. Desta forma, o acesso aos registradores feito a partir do seu endereo de localizao da memria RAM. Os registradores SFR e GPR costumam receber como nomenclatura a letra f, devido ser referenciado pela Microchip como file registers ou registradores de arquivos.

Outro aspecto importante sobre a arquitetura dos registradores nos PICs que a forma de implementao das instrues limita o endereamento a um mximo de sete bits ou 128 registradores. Para contornar esta limitao, a Microchip implementou tambm na memria RAM a filosofia de paginao, criando bancos de memria, cada um com 128 posies. (PEREIRA, 2004)

Desta forma possvel o acesso ao um conjunto maior de registradores atravs dos diferentes bancos. Porm devido a sua montagem um registrado f no pode ser copiado diretamente para outro registrador f. Para solucionar este problema foi criado o registrador W, que no est mapeado na memria RAM, no qual serve como ponte para a troca de contedo entre os registradores f. Dentre os registradores SFR, podemos citar: STATUS: utilizado para seleo dos bancos de memria, para o armazenamento de flags matemticos e de estado da CPU; INTCON: utilizado para o controle de interrupes; OPTION_REG: utilizado para configurar o funcionamento de alguns perifricos internos do PIC; PORTx: utilizado como leitura ou escrita de informaes nos pinos externos do PIC; TRISx: utilizado como controle da direo de funcionamento de cada pino da porta, o classificando como entrada ou sada.

2.2.4.3 Memrias
Devido arquitetura de montagem dos MCUs PIC, as suas memrias de programa e dados so mapeadas separadamente.

18

2.2.4.3.1 Memria de Programa


De acordo com Pereira (2004), a memria para armazenamento de programas nos PICs das sries (famlias) 12, 14 e 16 interna, isto , est embutida na pastilha, porm alguns dispositivos das sries 17 e 18 podem funcionar com memrias de programa externas. Existem quatro tecnologias tpicas de implementao de memria de programa: ROM do tipo mscara: Chips pr-programados de fbrica. Estes so os dispositivos que possuem o menor custo unitrio, porm em grande escala. Tem o sufixo CR como identificao; OTP: So chips fabricados com memria de programa do tipo ROM, no podendo ser apagados e so identificados pelo sufixo C; EPROM: So memrias regravveis, podendo ser apagadas atravs da emisso de luz ultravioleta por sua janela de acesso. Identificadas pelo sufixo JW para os dispositivos com encapsulamento do tipo DIP (Dual In Line Package) e pelo sufixo CL para os dispositivos com encapsulamento do tipo PLCC (Plastic Leaded Chip Carrier Encapsulamento Plstico com Contatos); Flash: Este tipo de memria permite um mnimo de 1000 ciclos de gravao e apagamento. Os dispositivos FHASH so identificados pelo sufixo F.

A capacidade mxima de memria da srie 16 de 8kword (8Kbytes ou 8192 posies de memria). No entanto, devido limitaes imposta pela estrutura das instrues RISC dos PICs, a memria de programa dividida em blocos ou pginas, cada uma com 2kword ou 2048 posies de memria (PEREIRA, 2004). A memria de programa mapeada de forma que cada endereo tenha 8bits ou 1byte. Porm, as instrues armazenadas na memria de programa tm 16 ou 32bits. Assim cada instruo ocupa dois endereos de memria e o PC (Program Counter ou Contador de Programa) ao ser executado incrementa de dois em dois endereos e o pelo fato do barramento de instruo conter 16bits a leitura dos dois endereos simultnea, formando assim uma instruo de 16bits para um nico acesso (instrues curtas) e 32bits para dois acessos (instrues longas).

2.2.4.3.2 Memria de Dados


De acordo com Martins (2005), os microcontroladores PIC possuem uma memria RAM que tem a funo de guardar todos os valores de dados das variveis e de registradores utilizados pelo programa, sendo uma memria voltil (ao ser desligado, o seu contedo automaticamente apagado). Na linha PIC16, esta memria tem um barramento de endereamento 8 bits e armazena dados de at 8 bits e algumas famlias de MCUs PIC dispem de uma memria EEPROM que pode tambm ser utilizada pelo usurio para guardar dados. A arquitetura do PIC18 prev 12bits para endereamento de memria de dados, o que permite trabalhar com at 4096 endereos de memria, divididos em registros de uso geral e registro de funo especial. O seu endereo formado ento por 8bits que so fornecidos pelas as instrues

19

que o manipulam (exceto MOVFF) e os outros 4bits so fornecidos pelo registro de seleo de dados (BSR) (ADRIANO, 2008).

2.2.4.4 Pilha ou Stack


Na famlia PIC18, a pilha um espao de memria de 31posies de 21bits, no estando mapeada nem na memria RAM quanto na FLASH. Tratando-se de uma pilha circular, ou seja, o trigsimo segundo endereo gravado, sobrescreve o primeiro, sinalizando estouro de pilha. Segundo Martins (2005), ela pode ser definida como uma estrutura de memria especial usada na execuo de rotinas e instruo. Para a linha PIC16, a mesma apresenta 8 posies com 13bits de largura, tendo a funo de armazenar de armazenar os endereos de retorno de funes e/ou sub-rotinas que so chamadas de programa principal, bem como guardar o valor do contador de programa quando ocorre um salto do programa principal para um endereo de um subprograma a ser executado. A rea de memria da pilha no faz parte da memria de programa, nem da memria de dados, alm de no poder ser lida ou escrita diretamente. A operao de empilhamento ocorre quando uma sub-rotina que utiliza a instruo CALL executada ou uma interrupo reconhecida, fazendo com que o contador de programa seja inteiramente empilhado na pilha. Para a linha PIC18, o ponteiro da pilha chamado de Stack Pointer, sendo acessvel atravs do registro STKPTR, o que no acontece na arquitetura PIC16. Alm do endereo do topo da pilha, onde fica armazenado o ltimo endereo de retorno guardado, h tambm bits que sinalizam o estado pilha.

2.2.4.5 Contador de Programa ou PC


O contador de programa (PC Programa Counter) o responsvel pelo controle da seqncia de execuo das instrues do PIC. O registrador PC aponta sempre para a prxima instruo a ser executada pela CPU, desta forma, se deseja alterar o fluxo do programa, devemos alterar o contedo do PC (PEREIRA, 2004). Na srie PIC16, o contador de programa trabalha com 13bits de largura, podendo ser acessadas at 8192 posies de memria. Porm estes endereos no podem ser acessados diretamente pelo usurio. Conforme Pereira (2004), os 13bits do contador de programa, dividido em dois registradores bsicos, o PCL (Program Counter Low) responsvel pelo 8bits menos significativos e o PCH (Program Counter High) responsvel pelos 5bits mais significativos. Sendo que apenas o PCL pode ser acessado ou alterado pelo usurio.

2.2.4.6 Interfaces de Entrada e Sada ou I/O Ports


As interfaces de entrada e sada so utilizadas como meio de comunicao com os dispositivos externos ao microcontrolador. Como o acionamento de botes, leitura de teclados, acionamento de rels, recepo e envio de sinais atravs das portas serial, USB e paralela dos microcomputadores entre outras diversas aplicaes.

20

De acordo com Pereira (2004), a linha PIC16 possui duas portas de entrada e sada (I/O): porta A e porta B. Ambas as portas possuem oito pinos, sendo que a porta A tem sete pinos de entrada/sada e um somente de entrada; na porta B todos os oito pinos podem ser configurados como entradas ou sadas. A direo (entrada ou sada) da porta definida pelos registros TRISx, onde x corresponde as portas A e B, ficando TRISA e TRISB . Cada bit desses registradores corresponde a um pino de I/O (Entrada/Sada) que, quando setado (igual a 1), corresponde entrada e, quando resetado (igual a 0), corresponde a sada (MARTINS, 2005). Nos processos de escrita e leitura dos portais aparecem as diferenas entre as linhas PIC 16 e PIC18. A figura 5 trs o diagrama em blocos genrico para um portal e ajuda a compreender esses processos:

FIGURA 5 Esquema Genrico de um Portal de Entrada/Sada (Fonte: Microchip, 2008) Alm dos registros Portx (onde Port corresponde a porta ou interface) existem na famlia do PIC18 os registros LATx corresponde ao Data Latch da figura 5. Em um pino configurado como sada, uma operao de escrita no registro LATx gera o mesmo resultado de uma escrita no registro PORTx, isto , o dado armazenado no Data Latch transferido para o pino do microcontrolador. Se o pino est configurado como entrada a escrita tanto

21

no registro LATx como no PORTx tambm tem o mesmo resultado, o valor armazenado no Data Latch mas o dispositivo de sada permanece desabilitado. Cada pino ou porta de comunicao, das linhas PIC16 e PIC18, capaz de drenar ou fornecer at 25mA (0.025A), sendo respeitadas as limitaes de correntes para cada portal, apresentadas pelo manual de cada componente (ADRIANO, 2008).

2.2.4.7 Temporizadores TMR0 / Contador de 8 bits


O TMR0 ou Contador corresponde a um registrador de 8 bits situado na memria RAM, tendo o seu funcionamento independente do programa, podendo ser acessado diretamente atravs de leitura ou escrita. Tendo a funo de auxiliar na contagem de pulsos externos ou no tempo de ciclo de mquinas. Sendo seu valor incrementado a cada quatro ciclos de clock do oscilador. Por se tratar de um registrador de 8 bits, sua contagem vai at 255 e aps este valor recomea do zero. Ele tambm pode ser incrementado por um clock externo, conectado ao Pino RA4/T0CKI (MARTINS, 2005).

2.2.4.8 Barramento de Dados


Sua funo interligar a UCP (constituda pela ULA e registradores) a memria RAM. A quantidade de linhas deste barramento depende do tamanho da palavra endereada, sendo que, para a linha PIC16 so 8 bits por palavra (MARTINS, 2005).

2.2.4.9 Barramento de Endereo


Sua funo interligar o bloco Memria de Programa ao Registrador de Instruo. Seu nmero de linhas depende do tamanho da palavra trafegada. No caso da srie PIC16 so 14 bits (MARTINS, 2005).

2.2.4.10 Osciladores
Assim como qualquer outro sistema computacional, os microcontroladores necessitam de um sinal de sincronismo para coordenar suas aes. O circuito oscilador tem a funo de gerar este sincronismo, em forma de pulsos eltricos (ou freqncia) denominados clocks, tendo como unidade de medida o Hertz ou Hz (pulsos por segundo). Existem MCUs que chegam a trabalhar com freqncias de at 90 MHZ (ou 90 milhes de pulsos por segundo), porm a famlia PIC16 tem uma freqncia de operao desde 0Hz (ou DC Tenso Contnua) at 20 MHz. Existem duas categorias de circuitos osciladores, os circuitos osciladores internos (dentro do encapsulamento do MCU) e os externos (sendo conectado externamente ao MCU). Os circuitos osciladores podem ser montados de trs formas diferentes. A primeira a partir da associao de Resistores e Capacitores formando um circuito denominado RC, tendo como vantagem a sua simplicidade e o baixo custo de confeco, porm oferece baixa estabilidade na sua freqncia de operao. A segunda a utilizao de ressoadores cermicos, capazes de gerar at 10 MHz, oferecendo preciso e estabilidade ao sistema, porm apresenta um custo mais elevado em relao aos osciladores RC. E a ltima a utilizao de osciladores de cristal de quartzo que

22

oferecem grande preciso e estabilidade ao sistema, alcanando freqncias bem acima de 10 MHz, conseqentemente tem um custo mais elevado que os modelos anteriores (PEREIRA, 2004). O PIC16F628 (no qual foi utilizado no desenvolvimento do projeto) possui um oscilador interno capaz de operar em oito diferentes modos, sendo: Cristal de baixa potncia (at 200 KHz); Cristal/Ressonador cermico (at 4 MHz); Cristal/Ressonador cermico de alta freqncia (at 20 MHz); Resistor externo sem sada de clock; Resistor externo com sada de clock; Oscilador RC interno sem sada de clock; Oscilador RC interno com sada de clock; Clock externo.

A figura 6 mostra a construo de um oscilador RC ligado entrada de clock de um PIC16:

FIGURA 6 Montagem de um oscilador RC externo (Fonte: Adriano, 2008)

A figura 7 mostra a conexo de um cristal oscilador ligado entrada de clock de um PIC16:

23

FIGURA 7 Conexo de um cristal oscilador a entrada de clock do PIC16 (Fonte: Adriano, 2008)

2.2.4.11 USART (Interface Serial Universal Sncrona / Assncrona)


Tambm conhecida por SCI (Interface de Comunicao Serial), a USART um dispositivo interno utilizado para fazer a comunicao serial com os perifricos do MCU, tais como: modens, terminais, conversores (digital e analgico e vice-versa), dispositivos de GPS, computadores, etc. A USART utiliza dois registradores de deslocamento, responsveis pela converso paralelo / serial (utilizado na transmisso dos dados) sendo chamado de TSR e serial / paralelo (utilizado na recepo dos dados) sendo chamado de RSR. Possibilitando o MCU trabalhar em modo Full-Duplex de comunicao (transmisso e recepo de dados simultneos), porm ao se utilizar um Protocolo de Comunicao Sncrona, a conexo passa a ser feita em modo Half-Duplex (a transmisso e recepo de dados so feitas alternadamente). A USART transmite e recebe os dados atravs dos pinos externos RB1 e RB2. O pino RB1 atua como entrada (recepo de dados) quando a USART est trabalhando em modo assncrono e como entrada ou sada de dados quando a mesma estiver trabalhando em modo sncrono. O pino RB2 atua como sada (transmisso de dados) quando a USART est trabalhando em modo assncrono, como sada de clock quando estiver em modo sncrono com clock interno e como entrada quando a USART estiver trabalhando em modo sncrono com clock externo.

Como padro a USART trabalha com 8 bits para transmisso e recepo de dados, mas ela pode ser configurada tambm para transmitir e receber 9 bits, ajudando assim na deteco de erros durante a comunicao (PEREIRA, 2004).

2.3 PIC16F628 (utilizado no projeto)


Este microcontrolador tem como principais caractersticas o seu baixo custo, facilidade de programao (podem ser utilizadas as linguagens C ou Assembly), grande diversidade de perifricos internos, memria de programa do tipo Flash, excelente velocidade de execuo e compatibilidade em nvel de software e hardware com os outros PICs de 18 pinos (como por exemplo, o 16F84).

24

Tendo a seguintes especificaes: 2048 x 14 bits de memria Flash; 224 x 8 bits de memria SRAM disponveis para o usurio; 128 x 8 bits de memria EEPROM interna; Pilha com 8 nveis; 15 pinos de I/O (entrada ou sada); 1 pino de entrada; 1 timer/contador de 8 bits; 1 timer/contador de 16 bits; 1 timer de 8 bits; 1 canal PWM com captura e amostragem (CCP); 1 canal de comunicao USART serial; 2 comparadores analgicos com referncia interna programvel de tenso; 1 timer watchdog; 10 fontes de interrupes independentes; Capacidade de corrente de 25 mA por pino de I/O; 35 instrues; Freqncia de operao de DC (0 Hz) at 20 MHz; Oscilador 4 MHz / 37 kHz interno; Tenso de operao entre 3.0 a 5.5 V (2.0 a 5.5 para verso LF); Compatvel pino a pino com 16F84 e outros PICs de 18 pinos.

2.3.1 Descrio dos Pinos


A figura 8 traz a descrio de cada pino do MCU:

FIGURA 8 Descrio dos pinos do PIC16F628 (Fonte: Microchip, 2008)

25

A tabela 1 apresenta a descrio de cada pino correspondente ao microcontrolador: TABELA 1 Descrio Pinagem MCU (Fonte: Pereira, 2004)

26

A figura 9 mostra a estrutura interna do PIC 16F628:

FIGURA 9 Diagrama em blocos do PIC16F628 (Fonte: Microchip, 2008)

2.4 Programao do Microcontrolador


2.4.1 ICSP (Programao serial no circuito)
ICSP (In Circuit Serial Progamming) consiste em uma tcnica de programao da memria de programa do MCU, no qual utiliza um protocolo sncrono de duas linhas, permitindo a programao do chip dentro do prprio circuito da aplicao. atravs dele que todas as instrues, rotinas, configuraes e tarefas que foram desenvolvidas podem ser gravadas dentro do PIC. Mas a programao no necessariamente deve ser feita com o PIC j instalado no circuito, existem diversos modelos de circuitos eletrnicos especficos para este tipo de tarefa. Auxiliando bastante na fase de desenvolvimento do projeto, em que exige a realizao de muitos testes.

2.4.2 Linguagem de Programao Assembly


A linguagem Assembly uma forma de representao de cdigo de mquina usando mnemnicos, ou seja, abreviaes de termos usuais que descrevem a operao efetuada pelo cdigo

27

de mquina. A converso dos mnemnicos em cdigos binrios executveis pela mquina feita por um tipo de programa chamado Assembler (montador) (PEREIRA, 2005). Alguns modelos da srie PIC16 e praticamente todas as famlias anteriores a ela utilizavam apenas programas feitos em linguagem Assembly. O desenvolvimento de programa nesta linguagem eleva o tempo e o custo de criao de uma aplicao, devido ser uma linguagem de baixo nvel, ou seja, seus comandos so muito prximos da linguagem de mquina e conseqentemente mais complexos. No entanto, os programas em Assembly so muito eficientes, devido proximidade com o hardware do microcontrolador, sendo muito mais rpidos que os programas feitos em outras linguagens.

2.4.3 Linguagem de Programao C


A Linguagem de Programao C foi criada em 1972, por Dennis Ritchie, da Bell Laboratories. Consistindo em uma linguagem intermediria entre o Assembly e as linguagens de alto nvel. Alguns modelos da srie PIC16 (tendo como exemplo o utilizado neste projeto o PIC16F628A) e todas as famlias superiores a ela utilizam a linguagem C para a sua programao. O desenvolvimento em C traz grandes benefcios, por ser uma linguagem muito conhecida e utilizada por programadores em geral, pois a sua familiarizao com que est sendo criado muito mais rpida. Permitindo a construo de programas e aplicaes muito mais complexas do que seria vivel utilizando apenas o Assembly. Por sua vez, a utilizao de uma linguagem de alto nvel como C faz com que o programador preocupe-se mais com a programao da aplicao em si, j que o compilador cuida das tarefas como o controle e localizao das variveis, operaes matemticas e lgicas, verificao de banco de memrias, etc (PEREIRA, 2005).

2.4.4 MPLAB IDE (Integrated Development Environment)


O MPLAB IDE (Ambiente de Desenvolvimento Integrado) um programa para computador que roda sobre a plataforma Windows, e usado como ambiente de desenvolvimento de programas para microcontroladores PIC da MICROCHIP. uma ferramenta muito poderosa. Ele junta no mesmo ambiente o gerenciamento de projetos, compilao, simulao, emulao e gravao do CHIP. O manual para esta ferramenta de desenvolvimento est no seu prprio site (MICROCHIP,2008). Ao iniciar o MPLAB se tem acesso ao ambiente de trabalho global. Trata-se de uma rea para abertura das janelas de trabalho, com um menu superior. Abaixo dele se tem uma barra de ferramentas, com diversos cones relativos a funes especificas. O primeiro cone do lado esquerdo muda as barras de ferramentas disponveis. Na parte inferior est a barra de status, conforme figura 10:

28

FIGURA 10 Interface MPLAB IDE. Para poder trabalhar neste ambiente no basta o arquivo de cdigo fonte. necessrio ter outras informaes para que o sistema possa ser compilado e executado. O MPLAB usa para isto o conceito de projeto. Define-se o conceito de projeto como o arquivo que guarda todas as informaes necessrias ao sistema em desenvolvimento. Para que o MPLAB possa funcionar corretamente tem que ser aberto o projeto correspondente na aba de acordo com a figura 11:

FIGURA 11 Abertura de Projeto no MPLAB IDE.

29

2.4.5 - Compiladores
Ao ser terminado o projeto no MPLAB, este cdigo dever ser compilado. Na prpria interface do MPLAB, j existe um compilador muito funcional para a maioria dos PICs. Este compilador o denominado C18, o qual foi disponibilizado pela prpria MICROCHIP. Caso o usurio no queira utiliz-lo, poder fazer uso de outros compiladores gratuitos ou pagos disponveis no mercado. Na compilao o projeto na linguagem C transformado em arquivos com extenso .hex que, utilizando um gravador, sero enviados para a memria de programa do PIC.

2.4.5.1 Placa gravadora para microcontroladores PIC


Por outro lado, para a gravao do programa no PIC necessrio a placa gravadora. A placa gravadora ICD2 acoplada ao PC atravs de uma porta serial ou de uma porta USB onde est o MPLAB instalado e rodando o projeto. Na prpria ferramenta MPLAB j existem as interfaces necessrias para se fazer a gravao do PIC. O ICD2 atua como uma interface inteligente entre os dois, permitindo ao projetista acompanhar a execuo do programa desenvolvido em tempo real. A figura 12 apresenta esta placa de gravao:

FIGURA 12 Placa de Gravao de MCU ICD2.

30

III COMUNICAO SERIAL


3.1 Comunicao Serial Assncrona
A comunicao serial assncrona caracterizada pela iseno de marcadores de incio e fim de transmisso, sendo necessrias apenas duas linhas de comunicao, uma para a transmisso e outra para a recepo do sinal. A figura 13 ilustra a transmisso de um caractere (no caso A), comeando por um sinal de incio (start), seguido pelos bits de dados (no caso 8), iniciando pelo bit menos significativo (LSB) e aps eles, um bit de parada (stop) para sinalizar o fim do caractere:

FIGURA 13 Transmisso de um sinal serial assncrono O microcontrolador pode efetuar a comunicao serial de dois modos. O primeiro a comunicao assncrona por software, tambm denominada bit bang, ela utilizada quando o MCU no possui uma USART interna, cabendo ao seu programa gerenciar toda a troca de dados atravs das portas de entrada e sada. O segundo modo a comunicao assncrona por hardware, sendo utilizada em dispositivos onde contam com uma USART interna, podendo utilizar um simples conjunto de funes para o acesso a ela, deixando o seu programa principal livre para tarefas mais importantes (PEREIRA, 2005). O PIC16F628 (utilizado no projeto) possui uma USART interna, assim foi possvel utilizar no projeto a comunicao assncrona por hardware.

3.2 Comunicao Serial Sncrona


De acordo com Pereira 2005, na comunicao sncrona existe alm das linhas de transmisso e recepo, uma ou mais linhas de sincronizao (clock). Neste caso a informao transmitida a cada transio da linha do clock. Sendo que o elemento que gera o sinal de sincronizao de transmisso (clock) chamado de mestre e o dispositivo que recebe o sinal de sincronismo chamado de escravo, sendo que um dispositivo mestre pode ter mais de um dispositivo escravo.

3.3 Estrutura da Comunicao Serial do Microcomputador


O projeto de um microcomputador comum prev 4 portas IO ("Input/Output", E/S Entrada/Sada) seriais, denominadas COM1, COM2, COM3 e COM4. Elas so compatveis com o padro RS-232C (na verdade este o padro norte-americano aprovado pelo EIA, que compatvel com o padro internacional V24 do CCITT- Comit Consultivo Internacional de Telefonia e Telegrafia). A RS-232C transmite dados serialmente a velocidade mxima de 115,2 Kbits/seg., a uma distncia de at 15 metros. Sendo implementada por um circuito UART (Universal Assncrono RX e

31

TX) reconhece como nvel lgico 1 o sinal eltrico de -3 volts a -15 volts, e nvel lgico 0 de +3 volts a +15 volts. Seu conector padronizado como DB-9 conforme mostra figura 14. Esta interface serve tambm para a conexo de perifricos como modem, mouse e etc.

FIGURA 14 Pinagem conector DB9.

A tabela 2 traz a descrio da pinagem do conector DB9, padro RS-232C: TABELA 2 Pinagem RS-232C DB9.

32

IV O SOFTWARE
4.1 Paradigmas de Linguagens de Programao
Um paradigma de programao indica o modo com que o programador trata a estruturao e execuo do programa. Por exemplo, em programao orientada a objetos, programadores podem abstrair um programa como uma coleo de objetos que interagem entre si, enquanto em programao funcional os programadores abstraem o programa como uma sequncia de funes executadas de modo empilhado. Ento, da mesma maneira que diferentes grupos em engenharia de software propem diferentes metodologias, diferentes linguagens de programao propem diferentes paradigmas de programao. Algumas linguagens foram desenvolvidas para suportar um paradigma especfico (Smalltalk e Java suportam o paradigma de orientao a objetos enquanto Haskell e Scheme suportam o paradigma funcional), enquanto outras linguagens suportam mltiplos paradigmas (como o LISP, Perl, Python, C++ e Oz) (Wikipdia, 2008). Os paradigmas de programao se distinguem algumas vezes pelas tcnicas de programao que probem ou permitem. Tendo como, a programao estruturada que no permite o uso de goto. Esse um dos motivos pelo qual novos paradigmas so considerados mais rgidos que estilos tradicionais. Apesar disso, evitar certos tipos de tcnicas pode facilitar a prova de conceito de um sistema, podendo at mesmo facilitar o desenvolvimento de algoritmos. O relacionamento entre paradigmas de programao e linguagens de programao pode ser complexo pelo fato de linguagens de programao poderem suportar mais de um paradigma. Existem dezenas de paradigmas de programao, contanto podemos citar dois modelos muito utilizados atualmente: Programao orientada a objetos, implementa um conjunto de classes que definem os objetos presentes no sistema de software. Onde cada classe determina o comportamento do seu objeto atravs dos seus mtodos e os estados possveis, chamados de atributos do objeto, assim como o relacionamento com outros objetos. As linguagens de programao Java, C++ e C# so exemplos linguagens orientadas a objetos. Programao estruturada uma forma de programao que pressupe que todos os programas possveis podem ser reduzidos a apenas trs estruturas: seqncia, deciso e interao. As linguagens C e Pascal so exemplos de linguagens de programao estruturadas.

4.2 Plataforma Framework .NET


O framework .NET (l-se dotnet) uma mquina virtual desenvolvida pela Microsoft, com o objetivo de gerenciar a execuo de aplicaes e fornecer um ambiente seguro e integrado para o desenvolvimento e execuo. Criado de forma a eliminar antigos problemas de desenvolvimento de software como, o gerenciamento de memria, ambientes distintos de projetos e a falta de

33

padronizao entre as linguagens de desenvolvimento de software. Suportando diversos tipos de linguagem de programao como Visual Basic, C++, C#, JScript e etc (Microsoft Brasil, 2008). A figura 15 demonstra como feita a comunicao entre as aplicaes que utilizam o framework .NET e o sistema operacional:

FIGURA 15 Comunicao entre as aplicaes e o sistema operacional.

4.3 Visual Studio


O Microsoft Visual Studio um pacote de programas da Microsoft, para desenvolvimento de Software, especialmente dedicado ao framework .NET e s linguagens Visual Basic, C, C++, C# e J#. Tambm um grande produto de desenvolvimento na rea web, usando a plataforma do ASP.NET. As linguagens com maior freqncia nessa plataforma so: VB.NET e o C#. A figura 16 mostra o ambiente de programao do Visual Studio verso 2008:

34

FIGURA 16 Ambiente de programao do Visual Studio 2008

4.4 Linguagem de Programao C#


A linguagem de programao C# considerada uma linguagem nova, pois foi apresentada ao pblico em 2000 na Professional Developers Conference (PDC). Sendo considerada a linguagem da plataforma .NET, embora esta suporte vrias linguagens (como VB.NET, C++, J#). Isto se deve a ela ter sido criada praticamente do zero, para funcionar nesta nova plataforma, sem precaues de compatibilidade com o cdigo legado, sendo o seu compilador o primeiro a ser desenvolvido e a maior parte das classes do Framewok .NET foram desenvolvidas em C# (Wikipdia, 2008). O desenvolvimento de um programa utilizando C# deve-se primeiramente ao fato de ela ser uma linguagem Orientada a Objetos, no qual conta com diversos componentes j prontos e testados, facilitando bastante o desenvolvimento do programa e aumentando a sua robustez e tambm pelo fato de ela ser uma linguagem que est em grande expanso entre os programadores e desenvolvedores de software. Uma caracterstica marcante da linguagem que ao contrrio das outras linguagens de programao, nenhuma implementao de C# inclui qualquer conjunto de bibliotecas de classes ou funes. Ao invs disso, ela est muito vinculada ao framework .Net, do qual obtm suas classes ou funes de execuo. O cdigo organizado em um conjunto de namespaces que agrupam as classes com funes similares. Por exemplo: System.Drawing para grficos, System.Collections para estrutura de dados e System.Windows.Forms para o sistema Windows Form.

35

V O HARDWARE
5.1 Micro cmera com receptor
A micro cmera colorida sem fio tem alcance de at 200 metros sem barreira e pode ser camuflada em diversos locais devido ao seu tamanho reduzido, possuindo 2x2x2 centmetros com um formato de um boto. Ela possui um transmissor interno e um microfone embutido. Obviamente, em centros urbanos e lugares com muitas barreiras, o alcance pode sofrer diminuio. A captura de udio feita pela cmera restrita a alguns centmetros da mesma, tendo em vista o microfone ser embutido. Sendo bastante prtica e pequena com resoluo 380 linhas, lentes de 6.00 mm, ngulo de viso 56 graus, trabalhando com um nvel de iluminao 3 lux. Ela alimentada com uma bateria de 9 volts junto cmera ou por uma fonte de alimentao de 9 Volts. Transmite para um receptor utilizando uma freqncia de 1,2 GHz. Este receptor alimentado com 9 volts, podendo ser utilizadas baterias ou fonte de alimentao. A figura 17 mostra a micro cmera:

FIGURA 17 Micro cmera Especificaes Tcnicas: Imagem Concebida: 1/3 sensor; Sistema de televiso: PAL/NTSC; Resoluo: 380 linhas; Iluminao: 3 lux; Freqncia de TX e RX: 1.2 GHZ; Potncia: DC de baixa potncia; Imagem: colorida; Dimenses: 2 cm de altura x 2 cm de largura x 2 cm de profundidade; Bateria: 9 volts ou fonte de alimentao de 9 volts.

36

5.2 Interface de entrada MAX232


O MAX232 um conversor de tenso transmissor e receptor, que inclui um gerador de tenso capacitivo para suprir nveis os de tenso da porta serial que vo de -15 a +15 volts em um simples nvel de 0 a 5 Volts, no qual a tenso de operao dos microcontroladores. Tendo a funo de conectar os circuitos RX e TX da porta serial com os circuitos TX e RX do microcontrolador, utilizando quatro drivers (conversores de tenso) para esta tarefa. A figura 18 apresenta o MAX232:

FIGURA 18 Converso de tenso MAX232 O circuito de recepo do MAX232 tem uma tpica histerese de 0,5 V e pode aceitar mais ou menos 30 V de tenso nas entradas. Cada driver converte nveis de entrada TTL/CMOS (nvel de tenso dos MCUs) em nveis TIA/EIA-232-F (nvel de tenso fornecido pela porta serial). O chip MAX232 da MAXIM necessita apenas de fonte 5 Volts e incorpora tanto o conversor TTL para RS232 quanto o RS232 para TTL. Portanto, este um circuito bidirecional. A figura 19 mostra a sua pinagem para a montagem em circuitos:

FIGURA 19 Esquema de Pinagem do MAX232

37

5.3 Interface de sada ULN2803


Trata-se de um conjunto de 8 transistores do tipo Darlington que possuem a propriedade de suportar alta tenso e uma alta corrente. Os oito transistores NPN dessa famlia de Darlington implementados nesse chip so idealizados para suportarem uma interface entre os circuitos de baixo nvel lgico (como os TTL e CMOS) e permitir uma maior tenso e tambm uma maior corrente para os circuitos posteriores. empregado onde se utiliza dispositivos que requerem nveis maiores de tenso e corrente, como por exemplo, a interligao das sadas do microcontrolador aos fios de alimentao dos motores de passos. ULN2803 designado para ser compatvel com os produtos

padres de famlias TTL, enquanto que o ULN2804 otimizado para 6 a 15 Volts para produtos com maior nvel de tenso como CMOS ou PMOS. A tabela 3 traz as suas especificaes:

TABELA 3 Especificaes do ULN2803. Especificao Tenso de sada Tenso de entrada Corrente de coletor Corrente de base Range de temperatura Simbolo Vo Vi Ic Ib Ta Valor 50 30 500 25 0 a + 70 Unidade V V mA mA C

A figura 20 apresenta a estrutura fsica do componente e a disposio dos seus pinos:

FIGURA 20 ULN2803 estrutura fsica e disposio dos pinos.

38

5.4 Motor de passo


Motor de passo um dispositivo mecnico eletro-magntico que pode ser controlado atravs de um circuito eletrnico comum ou microcontrolador, ou tambm atravs de um software conectado a uma interface de controle. A figura 21 mostra dois modelos destes motores:

FIGURA 21 Exemplos de motores de passo Ao contrrio de um motor convencional que possui apenas dois estados parado (desenergizado) ou em movimento (energizado), o motor de passo possui uma configurao de montagem diferente, no qual permite a ele um terceiro estado, no qual seria, estar energizado e parado. O motor de passo dotado de bobinas eletro-magnticas que ao serem energizadas em uma determinada ordem ou seqncia giram o seu eixo em poucos graus, podendo variar de acordo com o modelo. Como exemplo, o motor utilizado no projeto contm quatro bobinas, sendo alimentadas com 12 volts e que movimentam o eixo 1,8 grau (horrio ou anti-horrio) a cada acionamento das mesmas. Assim, para se efetuar um nico giro so necessrios duzentos passos ou cinqenta seqncias de energizao das quatro bobinas. Devido esta caracterstica de funcionamento, estes motores so encontrados em aparelhos onde a preciso um fator muito importante. So usados em larga escala em impressoras, plotters, scanners, drivers de disquetes, discos rgidos e muitos outros aparelhos. Existem vrios modelos de motores de passos disponveis no mercado que podem ser utilizados para diversos propsitos, como para mover robs, cmeras de vdeo, brinquedos ou mesmo uma cortina (ROGERCOM, 2008). O motor de passo possui trs modos de operao, consistindo em: Passo Completo 1 (Full-step), onde somente uma bobina energizada a cada passo, tendo um menor torque, consumindo menos energia e oferecendo uma velocidade maior; Passo Completo 2 (Full-step), onde so energizadas duas bobinas a cada passo, tendo um torque maior, consumindo mais energia que o passo 1 e tendo a mesma velocidade do passo 1;

39

Meio Passo (Half-step), onde so combinadas as caractersticas do passo 1 e 2, gerando um efeito de meio passo, vindo a consumir mais energia que os passos anteriores, oferecendo um torque similar ao passo 2, com velocidade inferior e preciso superior aos passos anteriores.

Em funo das caractersticas envolvidas no projeto, o modo de operao Meio Passo foi o mais indicado para a aplicao no mesmo, devido oferecer uma maior preciso e um torque satisfatrio para a realizao dos movimentos.

5.5 Dispositivo de captura de TV e vdeo


O dispositivo externo de captura de vdeo tem a funo de transformar um sinal de vdeo existente em sua entrada ou um sinal de uma emissora de TV VHF ou UHF em um sinal digital capaz de ser enviado atravs da porta USB para dentro microcomputador, sendo codificado para padro de vdeo MPEG2. Podendo assim, o seu vdeo ou sinal captado, ser gravado e exibido como um vdeo digital qualquer. A figura 22 traz uma representao do mesmo:

FIGURA 22 Dispositivo de Captura de TV e Vdeo. Especificaes do modelo: Resoluo de entrada de vdeo de at 720x480 para o sistema NTSC e 720x576 em 25qps para o sistema PAL; Sada VGA: 16MB de resoluo SVGA; Recepo de canais VHF e UHF; Conexo USB 2.0, compatvel plug & play (acima de 480Mbps bits rate); Conexo de entradas mltiplas com entrada S-Vdeo, entrada de Vdeos composto, entrada de udio e entrada para TV RF; Alimentao pela porta USB sem a necessidade do uso de adaptadores;

40

Requisitos mnimos de hardware para instalao: Porta USB interface 2.0; CPU Pentium III 800MHZ para exibio; CPU Pentium III 1GHZ para gravao em VCD; CPU Pentium IV 1.7GHZ para gravao em DVD; Memria RAM de 128MB; Win2000, WinXP (recomendado).

41

VI ATIVIDADES DESENVOLVIDAS
6.1 Desenvolvimento do Prottipo
O desenvolvimento de um prottipo de um posicionador de antenas (de enlace de microondas em veculos especialmente projetados para a transmisso de udio e vdeo) foi a aplicao escolhida para se demonstrar a utilizao de um microcontrolador conectado a um microcomputador utilizando uma interface de comunicao serial. O projeto contm os seguintes itens, que posteriormente sero explicados separadamente: Um programa no qual serve como interface de controle dos motores de passo e exibe uma tela de monitorao de vdeo; Um cabo serial para a interligao do microcomputador a placa de controle (durante os testes foi utilizado um cabo de converso USB/serial devido o notebook utilizado no conter uma porta serial fsica); Uma placa de fenolite contendo o circuito eletrnico onde foi instalado o microcontrolador e seus perifricos; Dois motores de passo formando um mdulo posicionador; Uma micro-cmera sem fio situada na ponta do posicionador; Um circuito de recepo de vdeo da micro-cmera; Uma placa de captura externa de vdeo utilizando conexo USB.

A figura 23 traz a representao da conexo entre os componentes deste sistema:

FIGURA 23 Interligao dos componentes do sistema

42

A figura 24 mostra a montagem real do sistema:

FIGURA 24 Montagem real do sistema

6.2 Comparativo Sistema Convencional e Microcontrolado


Atualmente os sistemas de controle de posicionamento de antenas so todos puramente eletrnicos, dotados de circuitos comuns, que so chaveados por botes de contato mecnico. Este sistema apresenta alguns inconvenientes como, a necessidade de um espao ou local para a instalao das chaves com os circuitos de controle, desgaste nos contatos das chaves de acionamento e exige um maior nmero de fios de interligao entre os circuitos de controle e os motores do posicionador. Mas tem como vantagem o fato de poder ser instalado em veculos de transmisso de udio e vdeo, denominados UMJ (Unidade Mvel de Jornalismo), que no contm microcomputadores instalados. O sistema microcontrolado indicado para a instalao em veculos de transmisso e produo de udio e vdeo, denominados UMP (Unidade Mvel de Produo), que contenham microcomputadores instalados, que nestes casos so utilizados como equipamentos de edio de vdeo digital. O sistema apresentado visa a instalao do software nestas mquinas, eliminando a utilizao de dispositivos de controle fsico. Alm disto, o circuito de controle pode ser embutido dentro do prprio posicionador, devido utilizao de menos componentes para a sua montagem. Outra vantagem que este sistema necessita de apenas quatro fios para controlar o posicionador, sendo dois fios para a alimentao geral e dois fios para efetuar a comunicao serial. A cmera sem fio tem um alcance mximo de 200 metros sem obstculos, atendendo assim as necessidades do projeto. Como foi descrito acima este modelo tem a desvantagem no podem ser implantado em uma UMJ devido a necessidade de um microcomputador, mas oferece grandes vantagens em uma UMP, otimizando o seu espao interno, diminuindo o seu cabeamento e eliminando o desgaste fsico da interface de controle.

43

6.3 O Software Controle Serial


O software tem a funo de oferecer ao usurio uma interface de controle e monitorao amigvel e enviar o comando efetuado pelo usurio para a porta serial do microcomputador, que por sua vez ser enviado ao microcontrolador. A figura 25 traz uma representao do mesmo:

FIGURA 25 Software Controle Serial A comunicao entre o software e a porta serial realizada atravs de um componente chamado SerialPort, no qual, quando foi instanciado para dentro do projeto (programa) recebeu o nome de Porta_Serial, sendo necessrio configur-lo conforme as especificaes do projeto, a figura 26 mostra os itens configurados dentro do componente:

FIGURA 26 Configurao do componente SerialPort

44

O software pode ser dividido em quatro grupos, no qual esto definidos como Monitorao, Posicionador, Status do Sistema e Velocidade.

6.3.1 - Monitorao
Este grupo abriga os comandos de abrir ou fechar a porta serial, habilitar ou desabilitar a entrada de vdeo, gravar ou no o que est sendo exibido e a tela de monitorao do vdeo que est sendo enviado pela micro-cmera. O boto SERIAL ON/OFF abre ou fecha a conexo entre o software e a porta serial, atravs dos comandos: Porta_Serial.Open(); //para abrir a conexo; Porta_Serial.Close(); //para fechar a conexo; A figura 27 apresenta os dois status de visualizao deste boto:

FIGURA 27 Status do boto SERIAL ON/OFF O boto HABILITAR / DESABILITAR VDEO, permite a habilitao da placa de captura dentro do software, exibindo o vdeo na tela. A figura 28 mostra os dois status deste boto:

FIGURA 28 Status do boto HABILITAR / DESABILITAR VDEO O boto GRAVAR, permite a gravao do vdeo exibido na tela de visualizao em um arquivo chamado Controle_Video.avicom tamanho de 320 por 240 pixels, dentro da pasta c:\ , que aps iniciada encerrada pelo prprio boto. A figura 29 mostra o dois status de boto de gravao:

FIGURA 29 Status do boto GRAVAR.

45

A tela de visualizao exibe o vdeo que transmitido pela micro-cmera e capturado pela placa de vdeo externa. Oferecendo uma referncia ao usurio, indicando para onde a cmera est sendo apontada.

6.3.2 Posicionador
O posicionador acionando por quatro botes. Tendo dois botes responsveis pelo movimento horizontal e dois botes responsveis pelo movimento vertical. Eles somente atuam os motores quando so mantidos pressionados, vindo a parar os motores ao serem soltos. Seus cones permanecem na cor vermelha enquanto no so pressionados e passando para a cor verde ao serem pressionados, conforme a figura 30.

FIGURA 30 Status dos botes de direcionamento.

6.3.2.1 Lgica de Funcionamento


Ao se pressionar um boto, durante o seu evento MouseDown, o software envia para o microcontrolador um caractere representando o movimento solicitado e este se mantm habilitado enquanto o MCU no receber um novo comando. Com o evento MouseUp o software envia um caractere solicitando a parada do motor. O microcontrolador reconhece o caractere 1 como comando para direita, 2 para esquerda, 3 para cima, 4 para baixo e 5 para desligar o motor.

6.3.3 Status do Sistema


Realiza uma leitura dos componentes principais do software, sendo: PORTA, verifica se o software est conectado a porta serial, seus dois estados so Porta Aberta ou Porta Fechada; SENTIDO, indica em qual sentido o posicionador est movimentando, seus cinco estados so Parado, Cima, Baixo, Direita e Esquerda; VDEO, verifica se o vdeo est sendo exibido, gravado ou desligado, seus trs estado so Preview (exibindo), Gravando e Desabilitado.

6.3.4 Velocidade
Tem a funo de ajustar a velocidade que se deseja aplicar ao movimento dos motores, possuindo cinco nveis. O primeiro nvel oferece uma velocidade bem baixa, sendo indicado para a realizao de pequenos movimentos suaves. O ltimo nvel o mais rpido, sendo indicado para a realizao de movimentos de longo curso, como girar o posicionador 180 graus. Cada ajuste possui um caractere correspondente a sua velocidade, no qual enviado para o microcontrolador, fazendo com que este altere a freqncia de seu gerador de pulsos, aumentando ou diminuindo a velocidade dos motores.

46

6.4 Instalao do cabo USB/Serial


Como j foi dito nos captulos anteriores, a conexo entre a porta RS-232C do microcomputador e a placa de controle feita por um cabo serial de 9 vias, contendo dois conectores DB9 macho em ambas as pontas, tendo no mximo 15 metros de comprimentos. Conforme mostrado na figura 31:

FIGURA 31 Cabo serial com conectores DB9 macho Porm durante a montagem do sistema foi utilizado um notebook que no contm uma interface de comunicao serial, assim foi necessrio a utilizao de um cabo conversor USB/Serial. O modelo utilizado foi o LeaderShip 8430. A figura 32 apresenta este cabo:

FIGURA 32 Cabo conversor USB / Serial

47

Sua instalao simples, devendo ser instalado um software de gerenciamento da porta USB, antes de conectar o cabo a mesma. Depois de instalado, basta conectar o cabo a porta e o sistema o reconhece automaticamente como uma interface serial. Como mostrado na figura 33:

FIGURA 33 Criao de uma interface serial. Logo aps necessrio configurar a nova porta serial com o mesmo padro de comunicao do software e do microcontrolador, a figura 34 mostra esta configurao:

FIGURA 34 Configurao da Porta

48

Para configurar o nmero da porta, basta clicar no boto Avanado conforme mostra a figura 32, abrindo assim a tela Configuraes Avanada para a COM1, de acordo com a figura 35:

FIGURA 35 Configurao do nmero da porta Feitas estas configuraes, o cabo USB/Serial est pronto para ser conectado na placa do microcontrolador.

6.5 Placa de controle principal


A placa principal onde se encontra toda parte do circuito eletrnico do projeto. Poderia ser confeccionada com placas de fenolite ou fibra de vidro. Esta opo no foi seguida porque, durante a execuo do projeto, era sabido que poderiam ocorrer alteraes de qualquer espcie. Isso poderia demandar uma dificuldade muito maior se, para cada alterao, fosse necessria uma nova placa de circuito impresso. Dessa forma, a opo melhor para esse tipo de projeto, foi utilizar uma placa padro perfurada com tamanho de 10x15 cm e utilizando de fio rgido bastante fino, do tipo Wire Wrapping, para fazer as ligaes necessrias dos circuitos eltricos, na parte posterior ao lado dos componentes. Na figura 36 temos, o fio Wire Wrapping, uma placa universal e a placa j pronta.

FIGURA 36 Fio Wire Wrapping, placa universal e placa pronta Utilizou-se de uma fonte de alimentao externa 110Vac para 12Vdc/1A para a alimentao dos circuitos. Assim, no houve necessidade de montar uma fonte de alimentao na placa e ter que

49

fazer uso de transformadores e tenses mais altas como 110 ou 220 Volts. A figura 37 apresenta a mesma:

FIGURA 37 Fonte de alimentao externa

6.5.1 Entrada serial RS232


Ser iniciada uma explicao geral sobre a montagem e sobre os componentes envolvidos presentes nessa placa, a partir do conector DB9, de onde vem os dados da comunicao serial, at a sada do ULN2803. Como qualquer dispositivo de transmisso serial, os bits so enviados um um, seqencialmente, e normalmente com bit menos significativo primeiro (LSB). Por ser um protocolo assncrono, isto , sem uma linha de clock, responsabilidade do transmissor e do receptor efetuarem controles de tempo para saber quando cada bit inicia e finaliza. Na sua forma padro, o RS-232 utiliza dois sinais de controle, o RTS (ready to send) e o CTS (clear to send) para efetuar o controle de fluxo, isto quando feito via hardware. Basicamente, quando o transmissor deseja comear um envio ele sinaliza atravs do pino RTS. O receptor, ao perceber que o transmissor deseja enviar algum dado, prepara-se para receb-lo e seta o pino CTS. Apenas depois de receber o sinal CTS o transmissor pode comear a transmisso. Para cada byte existem bits de start e stop; o mais comum utilizar-se 1 bit de incio (start bit) e 1 bit de parada (stop bit), como na figura 38.

FIGURA 38 Comunicao serial RS232 Na comunicao assncrona, principalmente via software, a velocidade de comunicao ajustada nos dois dispositivos inicialmente, cada um deles sabe quanto tempo um bit demora a ser transmitido, e com base nisto que a identificao dos bits possvel. No transmissor, o envio basicamente resume-se enviar um bit de incio, aguardar um tempo, e enviar os prximos 8 bit + bit de parada, com o mesmo intervalo de tempo entre eles.

50

No receptor, aps a primeira borda de descida (nvel lgico de "1" para "0") (start bit) o receptor sabe que uma seqncia de mais 8 bits de dados + bit de parada chegar. Ele tambm conhece a velocidade de transmisso, ento tudo que ele precisa fazer aguardar o tempo de transmisso entre cada bit e efetuar a leitura. Aps receber o bit de parada, a recepo encerra-se e ele volta aguardar o prximo start bit. Na interface RS232, o nvel lgico "1" corresponde uma tenso entre -3V e -12V e o nvel lgico "0" uma tenso entre 3V e 12V. Valores de tenso entre -3V e +3V so indefinidos e precisam ser evitados. O estado idle da linha 1 lgico (-V). (Estado idle (ocioso) - Nenhuma requisio pendente).

6.5.2 - MAX232
A grande maioria dos perifricos que trabalham com portas seriais no utilizam o padro RS232 para nveis eltricos diretamente, como o caso do projeto utilizando o microcontrolador PIC. Portanto, sempre necessrio um circuito de converso de nveis TTL/RS232. Dessa forma, aps os sinais entrarem nessa placa atravs do conector DB9, eles encontraro o circuito integrado MAX232A. Cuja funo converter os sinais de padro RS232, para o padro TTL (padro onde os nveis de tenso esto entre 5 e 0 V). Isso se torna necessrio porque o PIC trabalha com padres de nveis TTL. O circuito eletrnico utilizando do MAX232 pode ser visto na prxima figura. Foram utilizados quatro capacitores eletrolticos de valor 1 uF x 50V, para fazer a polarizao no circuito integrado, conforme a figura 39.

FIGURA 39 Circuito eltrico MAX232 Os sinais seriais saindo do MAX232A, pelo pino 12, sero enviados para o prximo circuito, que o microcontrolador, o PIC 16F628A, atravs de seu pino 7. O pino 7 desse componente faz parte das interfaces de entrada e sada do PIC (portais de i/o).

51

6.5.3 PIC 16F628


O PIC 16F628A possui dois portais de entrada e sada (I/O): portal A e portal B. Ambos possuem oito pinos, sendo que a portal A tem sete pinos de entrada/sada e um somente de entrada; no portal B todos os oito pinos podem ser configurados via software como entradas ou sadas. O pino 7 o Rb1 e foi configurado no software como porta de entrada da comunicao serial (RX). Na figura abaixo podemos ver os demais pinos do microcontrolador, como seu cristal de 4Mhz entre os pinos 15 e 16 que fornece o sinal de clock ( freqncia de trabalho do PIC). A alimentao de 5 V e terra nos pinos 14 e 5 respectivamente. No portal A, as portas Ra0, Ra1, Ra2 e Ra3 foram configuradas como sadas, para que quando acionadas enviar os sinais para o motor de passo 1 (motor de pan). Pinos 17, 18, 1 e 2 respectivamente. Enquanto que, no portal B, as portas Rb4, Rb5, Rb6 e Rb7 esto configuradas como sadas para enviar os sinais ao motor de passo 2 (motor de tilt). Pinos 10, 11, 12 e 13 respectivamente. Para uma melhor visualizao dos pinos, abaixo est uma parte do esquema eltrico do PIC, de acordo com a figura 40.

FIGURA 40 Circuito eltrico PIC 16F628

6.5.4 ULN2803
Finalizando o hardware da placa, temos o circuito integrado ULN2803, recebendo os sinais do PIC. Estes sinais saindo do PIC atravs dos pinos j mencionados acima referente ao portal A, para acionar o motor 1 (pan) e portal B, para acionar o motor 2 (tilt). O uso deste componente eletrnico necessrio devido os nveis de sinais (tenso/corrente) de sada do PIC no serem suficientemente adequados para o acionamento dos motores. A tenso de sada do PIC de 5 V e a corrente de aproximadamente 25 mA. O ULN2803 atuando como um drive de corrente e fornecendo uma maior tenso na sada, permite que os motores funcionem. Para o funcionamento dos motores neste caso, a sada do ULN2803 entrega 12V com uma corrente mxima de 500 mA, suficiente para o funcionamento dos motores. A sada para o motor 1 de out0 a out3 (pinos 15,16,17 e 18) e sada para o motor 2 de out4 a out7 (pinos 11, 12, 13 e 14) como visto na figura 41.

52

FIGURA 41 Circuito eltrico ULN2803

6.5.5 - Software do PIC


Para a criao do software do PIC, utilizou se a ferramenta MPLAB. Onde, utilizando a linguagem de programao em C dedicada a microcontroladores PIC, foi desenvolvido um cdigo fonte que pudesse ser interpretado pelo microcontrolador. Como mostra a literatura, o PIC16F628A possui o suporte para comunicao serial a USART (Universal Synchronous Asynchronous Receiver Transmitter), tornando assim isto possvel. O mais importante para a criao desse cdigo foi seguir as devidas exigncias e determinados requisitos para obter xito na comunicao. As principais so: - Adicionar biblioteca do PIC utilizado, no caso PIC16F628; - Indicar a freqncia utilizada de clock no PIC. (cristal utilizado no PIC); - Indicar os parmetros da comunicao serial (baud rate, paridade, pino de transmisso e pino de recepo); Essas so algumas das exigncias para que ocorra a comunicao visto que, para que isto acontea, por exemplo, o valor do baud rate definido no cdigo fonte do PIC corresponda com o baud rate do cdigo fonte do programa remoto. Na figura 42 est a parte inicial do cdigo que mostra um exemplo de configurao para estabelecer uma comunicao serial.

FIGURA 42 Cdigo fonte inicial do PIC

53

Para a parte de deteco e temporizao dos comandos, basicamente foram utilizados duas funes e um comando no cdigo fonte. A primeira funo trata-se da Funo TIMER 0. Esta funo est relacionada com a velocidade de execuo dos comandos para o acionamento dos pinos dos portais A e B, o que conseqentemente ir determinar a velocidade dos motores 1 e 2. Basicamente definido um valor inicial e final para a funo que no projeto foi estabelecido um valor inicial 131 e final 256 obtendo uma freqncia de 125 Hz, portanto um tempo de 8 milissegundos. Quantas vezes se fizer necessrio a reinicializao do timer, ter sido determinado um tempo maior ou menor para o acionamento dos pulsos dos portais A e B, implicando em uma variao na velocidade do motor. No cdigo ficou definido que na sua inicializao sempre o timer ser reinicializado 5 vezes, totalizando um tempo de 40 milissegundos. Esta a maior velocidade atingida dos motores. Temos como alterar este valor pelo software remoto em mais 4 variaes 20 vezes = 160ms, 50 vezes = 400 ms, 100 vezes = 800 ms e finalmente 150 vezes = 1200 ms que ser a menor velocidade dos motores. A segunda funo se refere a Funo GETC. Esta funo utilizada para a entrada de dados da comunicao serial. Ela aguarda que seja recebido um caractere pela linha serial previamente configurada, o que pode ou no retornar um valor. No cdigo do projeto, esta funo simplesmente no retorna valor. necessrio ento que o software remoto envie um caractere e esta funo o identifica para ser executado um comando no PIC, que, no projeto acionar as sadas dos portais A ou B do PIC para girar o motor 1 para a esquerda ou direita (pan), e o motor 2 para cima ou para baixo (tilt). O comando utilizado o Switch Case. Este comando permite comparaes sucessivas de uma forma clara e eficiente. O valor da varivel testado contra as constantes especificadas pela clusula case. Caso a varivel e a constante possuam o mesmo valor, ento os comandos seguintes aquela clusula case sero executados. Caso o valor da varivel no encontre correspondente nas constantes especificadas pela clusula case, esses comandos no sero executados. De um modo geral, o funcionamento desse cdigo pode ser resumido da seguinte forma: Ao ser estabelecida a comunicao serial entre o software remoto e o PIC, a Funo Timer 0 j entra em funcionamento no seu modo default 8 ms x 5 , ou seja, com um tempo de 40 milissegundos (maior velocidade). Em seguida, a funo GETC j est na espera de um caractere vindo pela entrada serial. Com a chegada do caractere, o comando Switch Case ir comparar este caractere at encontrar uma igualdade e ento executar o comando. Este comando ser para ativar o motor ou variar a velocidade.

6.6 Instalao do dispositivo de captura de vdeo


Conforme citado no captulo 9, este dispositivo USB responsvel pela captura do vdeo do receptor da micro-cmera sem fio. O software que acompanha o produto o InterVideo WinDVR 3. Sua instalao muito simples. A figura 43 apresenta a tela principal do software, o seu menu de controle e o campo de Configurao do dispositivo:

54

FIGURA 43 Tela Principal do InterVdeo e o seu menu de configuraes Feita a instalao, basta conectar o dispositivo a porta USB e ajustar o seu modo de funcionamento, podendo trabalhar como receptor de TV, entrada de vdeo composto ou entrada de vdeo S-Vdeo. Como o receptor de vdeo da cmera entrega em sua sada vdeo composto, habilitamos a entrada (Origem) do dispositivo de captura para a recepo de vdeo composto e com padro de imagem NTSC. Conforme traz a figura 44:

FIGURA 44 Tela de configurao de entrada de vdeo.

55

Com esta configurao pronta, no mais necessrio abrir o software InterVideo para a visualizao da imagem, pois o prprio software de Controle Serial capaz de direcionar o vdeo para o seu player, bastando apenas o dispositivo de captura estar conectado ao microcomputador.

6.7 Instalao da micro-cmera


Ao se conectar a bateria de 9 VDC na micro-cmera ou uma fonte de alimentao, ela j transmite a imagem ao receptor. O receptor assim que alimentando j esteja funcionando. A figura 45 mostra todo o conjunto de cmera, receptor, cabos e fontes de alimentao:

FIGURA 45 Kit de captura e transmisso de imagem sem fio

6.8 Montagem do Prottipo de um Posicionador


O prottipo foi desenvolvido para trazer uma representao mais realista ao projeto, afim de que fossem visualizados todos os movimentos de um modelo real. A figura 46 apresenta o prottipo interligado placa de comando:

56

FIGURA 46 Prottipo posicionador Utilizado o motor de passo da marca Akiyama, de modelo AK39H/12-1.8. Este motor de passo alimentado com 12 Vdc e possui um ngulo de passo de 1,8 graus o que totaliza um nmero 200 passos para uma volta completa. A figura 47, traz as medidas em milmetros do motor:

FIGURA 47 Dimenses do Motor de Passo

57

A figura 48 apresenta como so interligadas as suas bobinas e com as respectivas cores da fiao:

FIGURA 48 Interligao das bobinas do motor A tabela 4 apresenta a seqncia de quatro bits que o PIC deve disponibilizar em suas sadas para movimentar girar o motor, esta seqncia recebe o nome de Modo de Operao de Meio Passo, fazendo com que cada passo do motor seja de 0,9 grau e no 1,8 graus conforme foi projetado. Este Modo de Operao alia preciso e um bom torque ao motor.

TABELA 4 Seqncia de acionamento das bobinas (ROGERCOM, 2008)

58

VII CONCLUSO
Com o desenvolvimento deste projeto, foi possvel enxergar uma gama de possibilidades que podem ser desenvolvidas a partir desta aplicao. Abrindo o caminho para a utilizao de tcnicas de reconhecimento de imagens aliadas a inteligncia artificial, gerando surpreendentes resultados. A partir da montagem do prottipo do posicionador, visto que a utilizao de microcontroladores para esta aplicao perfeitamente vivel, oferecendo um sistema robusto, confivel, customizvel e com um custo de montagem e instalao relativamente baixo. Neste projeto para o controle dos dois motores de passo so utilizadas oito sadas digitais, em uma aplicao com motores comuns de tenso contnua, este controle poderia ser feito com apenas quatro sadas. Deixando o microcontrolador com mais quatro entradas ou sadas livres, fazendo com que ele possa controlar outros dispositivos ou tarefas dentro do mesmo sistema. Assim possvel adaptar o posicionador para a montagem de um brao robtico com sensores e garras para pegar ou movimentar objetos, no importando o tamanho dos mesmos. Mas claro que, para se trabalhar com objetos maiores ou mais pesados seriam necessrios motores maiores com ou sem caixas de reduo e seria preciso a utilizao de uma interface de sada mais robusta capaz de fornecer as tenses e correntes adequadas ao tipo de motor utilizado. Finalmente conclusse que a idia do posicionador apenas o embrio para diversas novas idias que podem surgir a partir dele.

59

VIII DIFICULDADES ENCONTRADAS


Durante o desenvolvimento do projeto, visto que o microcontrolador um componente muito robusto e eficiente, porm fisicamente muito sensvel, assim qualquer descuido em relao a sua pinagem ou instalao no circuito pode causar danos irreversveis para o componente. Durante a fase de testes, foram danificados alguns microcontroladores. Muitas das vezes esses danos no so vistos em primeiro momento ou explicitamente, fazendo com que se tenha de verificar o funcionamento de todos componentes que esto envolvidos no projeto Algo que tomou muito tempo foi configurar o microcontrolador para que ele pudesse receber e interpretar um caractere, exigindo a configurao de dispositivos internos do mesmo, como por exemplo, a porta de comunicao USART. Em relao construo do prottipo do posicionador, observou que os motores de passo podem trabalhar com trs formas de acionamento de suas bobinas, porm algumas delas no oferecem torque suficiente, outras tinham torque mas, balanavam muito a cmera durante o movimento. A soluo foi utilizar um acionamento chamado de Meio Passo, que oferece uma preciso superior aos outros modelos, com torque suficiente para movimentar o conjunto. Mas para isso o cdigo de acionamento dentro do PIC teve de ser refeito. Mas todas essas dificuldades serviram para nos fortalecer mais ainda no nvel pessoal e profissional, mostrando que os desafios existem para serem superados.

60

IX TRABALHOS FUTUROS
Durante o desenvolvimento do projeto surgiram diversas aplicaes que poderiam ser agregadas com muito xito. Mas devido ao foco do projeto, elas foram guardadas para uma prxima ocasio. Dentre elas podemos destacar duas muito interessantes que deixam o sistema um pouco mais inteligente. A primeira seria a utilizao de um aplicativo grfico, que implementado dentro do prprio software do sistema de controle (instalado no microcomputador) e com algumas alteraes no cdigo do mesmo, faria com que o sistema de posicionamento juntamente com a sua cmera, pudesse reconhecer determinados objetos e permitindo que o sistema passasse a acompanhar os seus movimentos automaticamente, sem a interveno de um operador. A segunda mais voltada ao prprio alinhamento de antenas (ou link de microondas). A idia bsica seria interligar o circuito eletrnico que recebe o nvel de sinal RF ao microcontrolador. De forma que o mesmo pudesse fazer uma varredura automtica com o posicionador da antena, a fim de encontrar o alinhamento com o melhor nvel de transmisso.

61

X - REFERNCIAS BIBLIOGRFICAS
ADRIANO, Jos Domingos. Curso de Microcontroladores Mdulos I e II. Linguagem C e PIC18F4520. Apostila, Empresa Exsto, Santa Rita do Sapuca, ltima reviso em 04/04/2008. ARTIMAR. Representante http://www.artimar.com.br/ da Microchip no Brasil. Disponvel em:

Acesso em 25 de agosto de 2008. DEITEL, Harvey M, & Associates, Inc. C# Como programar. Apresentando net e web services. Editora Makron Books, 1 edio, 2003. EDITORA RICA. Editora com grande acervo de microcontroladores PIC. Disponvel em: http://www.erica.com.br/ Acesso em 12 de setembro de 2008. EXSTO. Empresa de fornecimento de produtos e servios dedicados a microcontroladores da linha PIC. Disponvel em: http://www.exsto.com.br/ Acesso em 2 de outubro de 2008. FARNELL. Distribuidor autorizado dos microcontroladores PIC no Brasil. Disponvel em: http://www.farnellnewark.com.br/u_Index.apw Acesso em 10 de setembro de 2008. MARTINS, Nardnio Almeida. Sistemas Microcontrolados. Uma abordagem com o Microcontrolador PIC 16F84. Editora Novatec Ltda, 1 edio, 2005. MICROCHIP. Fabricante mundial dos microcontroladores PIC. Disponvel em: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64 Acesso em 23 de agosto de 2008. PEREIRA, Fbio. Microcontroladores PIC Programao em C. Baseado nos compiladores CCS. Editora rica Ltda, 4 edio, 2005. PEREIRA, Fbio. Microcontroladores PIC Tcnicas Avanadas. Baseado nas verses 16F627 e 16F628. Editora rica Ltda, 6 edio, 2005. livros sobre

62

ROGERCOM. Site voltado para a pesquisa e desenvolvimento de aplicaes eletrnicas em geral. Disponvel em: http://www.rogercom.com.br/ Acesso em 10 de novembro de 2008. VISUAL C#. Site oficial da Microsoft Brasil sobre o MSDN Visual C#. Disponvel em: http://msdn.microsoft.com/pt-br/vcsharp/default.aspx Acesso em 20 de setembro de 2008. WIKIPDIA. Enciclopdia Virtual. Disponvel em: http://pt.wikipedia.org/ Acesso em 26 de setembro de 2008.

63

XI ANEXO
Anexo 1: Esquema eltrico e eletrnico do projeto

64