MONITORAMENTO DE AMBIENTE ATRAVÉS - PDF
MONITORAMENTO DE AMBIENTE ATRAVÉS
Download "MONITORAMENTO DE AMBIENTE ATRAVÉS"
Bento Pacheco Guterres
1 CENTRO UNIVERSITÁRIO DE BRASÍLIA - UNICEUB CURSO DE ENGENHARIA DE COMPUTAÇÃO ALLAN MOTA E SILVA MONITORAMENTO DE AMBIENTE ATRAVÉS DE UMA UNIDADE MÓVEL CONTROLADA PELO COMPUTADOR. Orientador: José Julimá Bezerra Júnior BRASÍLIA 2010
2 ALLAN MOTA E SILVA MONITORAMENTO DE AMBIENTE ATRAVÉS DE UMA UNIDADE MÓVEL CONTROLADA PELO COMPUTADOR. Trabalho apresentado ao Centro Universitário de Brasília (UniCEUB) como pré-requisito para a obtenção de Certificado de Conclusão de Curso de Engenharia de Computação. Orientador: Prof. José Julimá Bezerra Júnior BRASÍLIA 2010 I
3 ALLAN MOTA E SILVA MONITORAMENTO DE AMBIENTE ATRAVÉS DE UMA UNIDADE MÓVEL CONTROLADA PELO COMPUTADOR. Trabalho apresentado ao Centro Universitário de Brasília (UniCEUB) como pré-requisito para a obtenção de Certificado de Conclusão de Curso de Engenharia de Computação. Orientador: Prof. José Julimá Bezerra Júnior Este Trabalho foi julgado adequado para a obtenção do Título de Engenheiro de Computação, e aprovado em sua forma final pela Faculdade de Tecnologia e Ciências Sociais Aplicadas -FATECS. Prof. Abiezer Amarilia Fernandez Coordenador do Curso Banca Examinadora: Prof. José Julimá Bezerra Júnior, Mestre em Engenharia Elétrica. Orientador Prof. Flávio Antônio Klein, Mestre em Estatística e Métodos Quantitativos. Centro Universitário de Brasília - UniCEUB Prof. Gil Renato Ribeiro Gonçalves, Doutor em Física. Centro Universitário de Brasília - UniCEUB II
4 DEDICATÓRIA Dedico este trabalho aos meus pais, por todo investimento que fizeram por mim e por sempre acreditarem nas minhas decisões, a minha esposa e meus filhos pela paciência, dedicação e por sempre estarem ao meu lado. III
5 AGRADECIMENTOS Agradeço primeiramente a Deus, pela oportunidade de chegar até aqui. Ao Professor Julimá pela paciência e orientação. Aos amigos Cristiano Matos, Daniel Stolf e Rubens Bardelli por todo o apoio. Aos colegas do curso de Engenharia da Computação pelo longo caminho que percorremos juntos, ajudando uns aos outros. IV
6 RESUMO O presente trabalho apresenta uma proposta de sistema capaz de monitorar a distância, ambientes insalubres ou de pequenas dimensões, que tornam o acesso humano perigoso ou praticamente impossível. Este sistema foi criado, exatamente, para evitar a presença humana nestes locais. O projeto consiste na utilização de um veículo e uma microcâmera para registrar imagens do ambiente a ser monitorado. Além da câmera, o carro é dotado de um sensor que registra, a todo instante, a temperatura do ambiente, um sensor de luminosidade responsável pela ativação dos faróis e um localizador sonoro, avisando ao usuário, o local onde o veículo se encontra, evitando a perda do equipamento. Também foi desenvolvido uma aplicação Pan & Tilt para controlar a câmera, ampliando, assim, o campo visual a ser monitorado. Tanto o veículo como a microcâmera são controlados remotamente através de um computador. Os sinais de controle do veículo e da câmera, bem como as imagens captadas pela mesma e os valores das medições da temperatura do ambiente, são transmitidas pelo ar, via radiofrequência, dispensando assim, a utilização de fios e cabos. V
7 ABSTRACT This paper proposes a system capable of monitoring the distance, unhealthy or small environments, that make human access dangerous or impossible. This system was created precisely to avoid the human presence on these sites. The project is the use of a vehicle and a miniature camera to record images of the environment to be monitored. Besides the camera, the car is equipped with a sensor that registers at any instant the room temperature, a light sensor responsible for activation of lights and a sound locator, warning the user where the vehicle is, avoiding loss of equipment. Was also developed an Pan & Tilt application to control the camera, extending the visual field to be monitored. Both vehicle and a miniature camera is controlled remotely by a computer. The control signals of the vehicle and the camera, the images captured by the same and the values of measurements of temperature, are transmitted by air, via radio frequency, eliminating the use of wires and cables. VI
8 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO MOTIVAÇÃO OBJETIVO METODOLOGIA VISÃO GERAL DO PROJETO...3 CAPÍTULO 2 REFERENCIAL TEÓRICO E TECNOLÓGICO HARDWARE E INTERFACES PARA COMUNICAÇÃO COM O CIRCUITO Personal Computer Porta USB Porta Serial LINGUAGENS DE PROGRAMAÇÃO UTILIZADAS NO PROJETO Linguagem C Linguagem C MEIO DE TRANSMISSÃO DAS INFORMAÇÕES Frequências de rádio Controles remotos de rádio frequência O Carro de Controle Remoto Câmera Wireless CODIFICAÇÃO DE SINAL Codificação Manchester Componente de Nível DC MICROCONTROLADORES SERVOMOTORES...28 CAPÍTULO 3 DESENVOLVIMENTO DO PROJETO CIRCUITO FAROL CIRCUITO USB CIRCUITO MEDIDOR DE TEMPERATURA SEM FIO CIRCUITO DE CONTROLE DO CARRO CIRCUITO PAN & TILT E LOCALIZADOR SONORO PROGRAMA TESTES E RESULTADOS CUSTO ESTIMADO DO PROJETO...77 CAPÍTULO 4 CONCLUSÃO...78 REFERÊNCIAS BIBLIOGRÁFICAS...80 APÊNDICE A FIRMWARE GRAVADO NO PIC12F APÊNDICE B FIRMWARE GRAVADO NO PIC18F APÊNDICE C FIRMWARE GRAVADO NO PIC16F APÊNDICE D CÓDIGO FONTE DO PROGRAMA APRESENTADO NO ITEM APÊNDICE E CIRCUITOS CONECTADOS DIRETAMENTE AO COMPUTADOR...98 APÊNDICE F REPRESENTAÇÃO DA PLACA ACOPLADA AO VEÍCULO...99 VII
9 ÍNDICE DE FIGURAS Figura 1.1 Diagrama Geral do Projeto...3 Figura 2.1 Pinagem das Portas USB...7 Figura 2.2 Pinagem do Conector DB Figura 2.3 Tipos de frequência...16 Figura 2.4 Carro Utilizado no Projeto...18 Figura 2.5 Controle Remoto do Carro...19 Figura 2.6 Microcâmera sem fio...20 Figura 2.7 Receptor da Microcâmera...21 Figura 2.8 Placa de captura EASYCAP...21 Figura 2.9 Interface do Aplicativo MultiViewer...22 Figura 2.10 Codificação Manchester do Sinal...25 Figura 2.11 Componente de nível DC...25 Figura 2.12 Nível DC = 0 para pulsos Manchester...26 Figura 2.13 Gravador PICBurner...28 Figura 2.14 Interface do PICPgm...28 Figura 2.15 Servomotores utilizados no Projeto...29 Figura 2.16 Componentes que formam o servomotor...30 Figura 2.17 Sinais no conector do servomotor...30 Figura 2.18 Pulsos de controle de posição...32 Figura 3.1 LEDs diversos...34 Figura 3.2 Par de LEDs...34 Figura 3.3 LDR...35 Figura 3.4 Gráfico de resposta do LDR...35 Figura 3.5 Divisor de Tensão...36 Figura 3.6 Divisor de tensão com LDR...36 Figura 3.7 Pinagem do CI Figura 3.8 Esquema do circuito farol...38 Figura 3.9 Placa do Circuito Farol...39 Figura 3.10 Microcontrolador PIC18F Figura 3.11 Esquema elétrico do circuito USB...41 Figura 3.12 Mensagem do Sistema Operacional...41 Figura 3.13 Tela de instalação do driver...42 Figura 3.14 Criação da porta COM virtual...42 Figura 3.15 Placa do Circuito USB...43 Figura 3.16 Esquema elétrico do circuito leitor e transmissor de temperatura...44 Figura 3.17 Módulo Transmissor TWS-BS Figura 3.18 Módulo Receptor RWS Figura 3.19 Pinagem do LM35DZ...46 Figura 3.20 Gráfico de resposta do LM35DZ...46 Figura 3.21 Microcontrolador PIC12F Figura 3.22 Exemplo de conversão A/D...47 Figura 3.23 Código para Conversão A/D...48 Figura 3.24 Código para Codificação...49 Figura 3.25 Exemplo de codificação...50 Figura 3.26 Preambulo...50 Figura 3.27 Código para Recepção dos Dados...51 VIII
10 Figura 3.28 Código para Decodificação do Dado...52 Figura 3.29 Exemplo de decodificação...52 Figura 3.30 Placa do Circuito Transmissor de Temperatura...53 Figura 3.31 Acoplador Óptico 4N Figura 3.32 Esquema elétrico do circuito de ativação eletrônica...55 Figura 3.33 Placa de Circuito do Controle do Carro com Fios Soldados...56 Figura 3.34 Placa de Circuito de Ativação Eletrônica e de Controle dos Servos...57 Figura 3.35 Módulo Transmissor RT Figura 3.36 Módulo Receptor RR Figura 3.37 Pinagem dos CIs MC e MC Figura 3.38 Esquema Elétrico do Circuito do Transmissor...61 Figura 3.39 Esquema Elétrico do Circuito do Receptor...62 Figura 3.40 Microcontrolador PIC16F Figura 3.41 Trecho do Código de Controle dos Servos...65 Figura 3.42 Código de Ativação da Buzina...67 Figura 3.43 Placa do Circuito Receptor e Buzina...68 Figura 3.44 Código para Abertura da Porta COM...69 Figura 3.45 Código de Fechamento da Porta COM...70 Figura 3.46 Configuração da Porta COM...70 Figura 3.47 Leitura de Dados na Porta COM...71 Figura 3.48 Funções de Teclas...72 Figura 3.49 Envia Dados pela Porta COM...73 Figura 3.50 Interface gráfica do programa desenvolvido...74 Figura 3.51 Protótipo...75 Figura 3.52 Circuitos e dispositivos conectados ao computador...75 IX
11 ÍNDICE DE TABELAS Tabela 2.1 Pinos da USB e suas funções...8 Tabela 2.2 Classes de Dispositivos USB...9 Tabela 2.3 Pinos e Funções da Porta Serial...11 Tabela 2.4 Frequências mais comuns...16 Tabela 2.5 Características do Servomotor...29 Tabela 3.1 Exemplos de valores R/C...64 Tabela 3.2 Valor Estimado do Projeto...77 X
12 LISTA DE SÍMBOLOS / DEFINIÇÕES USB Universal Serial Bus; LED - Light-emitting Diode; PC- Personal Computer; RS Recommended Standard 232; RF - Radiofrequência; MHz Megahertz; KHz - Quilohertz; DC Tensão Contínua; AC Tensão Alternada; PWM - Pulse Width Modulation; ms milissegundos; LDR - Light Dependent Resistor; CDC - Communications Device Class; ASK - Amplitude Shift Keying; mv MiliVolts ; ma Miliamperes; A/D Analógico / Digital; AmpOP Amplificador Operacional. RCA Radio Corporation of America XI
13 CAPÍTULO 1 INTRODUÇÃO Nos últimos anos, foi possível testemunhar o rápido avanço da tecnologia na área da comunicação e transmissão de dados. Atualmente, dois ou mais dispositivos podem transmitir e receber informações entre eles sem a necessidade de fios, utilizando o ar como meio de transmissão. Os maiores exemplos desta evolução são os telefones celulares e as redes de computadores wireless. Ambos, utilizam a transmissão via radiofrequência para que se comuniquem entre os seus pares. Tomando como base essa tecnologia, este projeto visa o desenvolvimento de um equipamento portátil, capaz de transmitir e receber dados através do ar, sem a utilização de fios ou cabos, tornando assim, o sistema com maior mobilidade. 1.1 MOTIVAÇÃO A motivação para a realização deste projeto surgiu a partir de: a) O desenvolvimento de um sistema valendo-se da eletrônica, desde a montagem e desenho dos circuitos até a fabricação das placas de circuito impresso. b) Dotar este sistema de uma porta USB por onde é realizada a conexão com o computador. A porta USB, comparada com as portas paralela e serial, possui tecnologia mais recente e, atualmente, é o principal meio de conexão existente entre os mais diversos dispositivos e o computador. c) A utilização da transmissão e recepção de dados através da comunicação sem fio, tecnologia esta que está em bastante evidência e ascensão nos dias de hoje. d) O emprego dos conhecimentos adquiridos ao longo do curso de Engenharia de Computação, em diversas matérias como: Circuitos Eletrônicos; Linguagens e Técnicas de Programação; Lógica Digital; Microcontroladores e Microprocessadores; entre outras. 1.2 OBJETIVO O objetivo deste projeto é elaborar um sistema de medidas reduzidas controlado a 1
14 distância capaz de se movimentar e monitorar ambientes insalubres, ou seja, locais que possam acarretar algum perigo à saúde humana. Como exemplo, pode-se citar ambientes em que há presença de ruídos ou temperaturas elevadas, gases tóxicos, substâncias químicas ou radiológicas nocivas ao homem ou outros fatores que possam oferecer riscos a integridade e a saúde do ser humano. A sua utilização poderia se estender a inspeções de tubulações ou dutos visando a detecção de vazamentos e medições de concentração de gases e, até mesmo, a detecção de bombas em zonas de guerra. O projeto também pode assistir pessoas com dificuldades de locomoção, sendo utilizado para monitorar uma residência, por exemplo. 1.3 METODOLOGIA O projeto teve início a partir de pesquisas teóricas baseadas em livros, artigos e sites da internet que pudessem auxiliar na elaboração e desenvolvimento do mesmo. Estes estudos, inclusive, foram utilizados no desenvolvimento do capítulo 'Referencial Teórico e Tecnológico' da Monografia. Uma nova pesquisa foi feita, desta vez, em busca de componentes e dispositivos que seriam necessários para a evolução do trabalho. A pesquisa incluiu, também, os preços e a disponibilidade dos mesmos no mercado brasileiro para identificar a viabilidade do projeto. Ao término das pesquisas, iniciou-se a montagem dos circuitos em protoboard para testes e, após obter a certificação do funcionamento esperado, os esquemas elétricos foram desenhados no computador, através do software Cadsoft Eagle, responsável por gerar, a partir destes esquemas, as trilhas a serem desenhadas nas placas de circuito impresso. Com as trilhas impressas, as placas de circuito impresso foram construídas de forma artesanal. Em sequência, foi desenvolvido um programa para que o computador fosse capaz de enviar os sinais de comando aos circuitos de controle e imprimir os registros de temperatura. Com as placas de circuito impresso e o programa finalizados, o projeto foi montado e foram feitos alguns testes utilizando como parâmetro, diferentes distâncias para verificar o recebimento de dados entre o computador e o veículo. Por fim, todo o desenvolvimento deste projeto, os testes realizados e a estimativa de custo foram relatados no capítulo 3. 2
15 1.4 VISÃO GERAL DO PROJETO O diagrama geral do projeto pode ser visto na figura 1.1. Figura 1.1 Diagrama Geral do Projeto O computador é a interface utilizada pelo usuário para se comunicar com todo o sistema. Com ele, o usuário controla o veículo e a microcâmera a partir do teclado e, por intermédio do monitor, consegue visualizar as imagens capturadas pela câmera e as medidas de temperaturas registradas. O Circuito 1 é uma representação de três circuitos: a) O circuito responsável por fazer a conexão diretamente ao computador pela porta USB. Nele, encontra-se o receptor que intercepta os registros de temperatura enviados pelo respectivo transmissor. b) O circuito transmissor de sinais de comandos para controle das câmeras. c) O circuito transmissor de sinais de comandos para o 'Controle Remoto do Carro', fazendo com que o usuário controle o carro diretamente pelo teclado do computador. Apesar do desenvolvimento do circuito citado no item 'c', é necessário a aplicação do 'Controle Remoto do Carro' pois, nele está instalado o transmissor responsável por enviar os sinais para o receptor do veículo. O 'Veículo Rádio Controlado' tem a função de transportar a parte do sistema responsável pelo monitoramento do ambiente. Foram instalados ao veículo, a microcâmera e o Circuito 2. Este último, descreve os três circuitos presentes no veículo: 3
16 a) O circuito leitor e transmissor das medidas de temperatura registradas; b) O circuito receptor de sinais de comandos responsáveis pela movimentação da câmera e acionador do buzzer, após o circuito perder contato com o transmissor. c) O circuito sensor de luz, responsável pelo acendimento automático dos faróis quando houver pouca ou nenhuma luz no ambiente. O trabalho está organizado em quatro capítulos, incluindo este. O segundo capítulo engloba o referencial teórico e tecnológico que trata de hardware, linguagens de programação, das tecnologias e alguns componentes utilizados no projeto. O terceiro capítulo apresenta o desenvolvimento de todos os circuitos e do aplicativo para controle e impressão dos dados recebidos, bem como as explicações de como eles funcionam. Neste capítulo também são apresentados os resultados dos testes executados para comprovar o funcionamento do sistema a diferentes distâncias. O último capítulo apresenta a conclusão do projeto e sugestões para futuras evoluções do mesmo. Ao final do trabalho situam-se os apêndices, onde são exibidos os firmwares e código fonte do aplicativo desenvolvidos e os desenhos esquemáticos dos circuitos representando as placas construídas. 4
17 CAPÍTULO 2 REFERENCIAL TEÓRICO E TECNOLÓGICO 2.1 HARDWARE E INTERFACES PARA COMUNICAÇÃO COM O CIRCUITO Personal Computer O computador pessoal ou PC (Personal Computer) é um computador de pequeno porte, que se destina ao uso de uma pessoa ou um grupo restrito de pessoas. [SAIBAMAIS.ORG, 2009]. É comum a referência desktop ou computador doméstico a essa classe de computador. Atualmente, o computador pessoal está presente nos mais diversos ambientes, sejam empresas, residências, faculdades, etc. Por ser relativamente barato, é vantajoso para as companhias disporem de um equipamento onde podem tornar sua produção mais eficiente, bem como manter e organizar arquivos. No ambiente doméstico, o PC é cada vez mais utilizado para acesso à Internet e na substituição da antiga máquina de datilografia. No ambiente escolar, é comprovado que a presença do computador potencializa o ensino dando aos alunos maior capacidade de pesquisa, acesso ao conhecimento e desenvolvimento do raciocínio lógico. No projeto, foi utilizado um computador para que o usuário pudesse visualizar as imagens captadas pela câmera e os valores das medidas de temperaturas enviadas pelo circuito apresentado no item 3.3. O computador também é responsável por controlar o veículo e a câmera por intermédio do seu teclado. Como o projeto se conecta ao computador através da porta USB, foi possível substituir o desktop por um notebook, já que atualmente, as portas seriais e paralelas estão em desuso e os computadores portáteis já não dispõem dessas portas Porta USB O Universal Serial Bus (USB) é um tipo de conexão Plug and Play que tem como principal característica, permitir a conexão de dispositivos ou periféricos sem a necessidade 5
18 de desligar ou reiniciar o computador. Ele surgiu em 1995, através de um consórcio de empresas como Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC e Philips, com o intuito de substituir as portas seriais e paralelas utilizadas até então. [MORAZ, 2006] Aproveitando o conceito de Plug and Play, o USB conseguiu minimizar o esforço de concepção de periféricos, no que diz respeito ao suporte por parte dos sistemas operacionais e hardware. Com isso, surgiu um padrão que permitiu ao Sistema Operacional e à placa-mãe do computador diferenciar, transparentemente: A classe do equipamento (dispositivo de armazenamento, impressora, scanner, placa de som, placa de rede, etc); As necessidades de alimentação elétrica do dispositivo, caso este não possua alimentação própria; As necessidades de largura de banda (para um dispositivo de vídeo, serão muito superiores as de um teclado, por exemplo); As necessidades de latência máxima; Eventuais modos de operação internos ao dispositivo (por exemplo, máquina digital pode operar, geralmente, como uma webcam ou como um dispositivo de armazenamento - para transferir as imagens). [MORAZ, 2006] Uma das primeiras versões foi a USB 1.0 com velocidade de 1,5 Mbs (Low-Speed). Logo em seguida, foi concebida a 1.1 com velocidades entre 1,5 Mbps a 12 Mbps (FullSpeed). No final de 2000, foi lançada a versão mais atual, a USB 2.0 (High-Speed), que além de ser compatível com as versões anteriores, possui aperfeiçoamentos que vão desde a topologia à velocidade de trafego de dados, chegando ao extremo de 480 Mbps, equivalente a cerca de 60 MBps (60 milhões de Bytes por segundo). [MORAZ, 2006] O hardware do computador que contém o controlador host e o hub principal, tem uma interface voltada para o programador que é chamado de dispositivo de Controlador Host (Host Controller Device - HCD) e é definido pelo implementador do hardware. O USB foi projetado de modo que possam ser ligados vários periféricos pelo mesmo canal (i.e., porta USB). Assim, mediante uma topologia em árvore, é possível ligar até 127 dispositivos a uma única porta do computador, utilizando hubs especialmente criados para essa função. [MORAZ, 2006] O host USB se comunica com os dispositivos através do seu controlador (chipset e outros componentes). O controlador host pode ser encontrado na própria estrutura base da placa-mãe do computador, ou pode ser adicionada em um dos slots de barramento PCI. Na maioria das placas controladoras USB - PCI, além das portas externas, há uma interna, que 6
19 permite instalar periféricos USB dentro do gabinete do computador, se isso for preciso. É responsabilidade do Host: Detectar a inclusão e remoção de dispositivos; Gerenciar o fluxo de controle de dados entre os dispositivos conectados; Fornecer alimentação (tensão e corrente) aos dispositivos conectados; Monitorar os sinais do bus USB. O cabo USB é composto por quatro fios e uma malha para eliminação de ruídos simples. Destes fios, dois são responsáveis por transportar energia para alimentar dispositivos. Essa energia é fornecida pela controladora e gerenciada pelo Driver do Controlador Host. O Cabo USB utiliza cores padrão para os fios, sendo o fio de cor vermelha chamado de Vbus (5v), ou seja, é o fio positivo de fornecimento de energia. O fio de cor preta é o terra (0v). O bus USB pode fornecer no máximo cinco Volts de tensão e quinhentos miliamperes (500 ma) de corrente elétrica, isso para cada porta do Root Hub do host. A quantidade de corrente que o dispositivo necessita para o seu funcionamento, pode ser configurada via software. Os dois fios restantes, 'D+' (dado+) e 'D-' (dado-) são usados pelo sistema USB para transferência de dados entre o Host, hub e dispositivos. Todos os sinais de dados trafegam através destes dois fios usando a codificação NRZI (No Return to Zero Inverted). Ou seja, o bit 1 é codificado através de uma transição ocorrendo da maior voltagem para a menor, ou também o inverso, da menor para a maior. Já o bit 0 é codificado sem haver transição. Durante o intervalo de um bit, a voltagem é constante. [AXELSON, 2009] A figura 2.1 apresenta a disposição da pinagem em dois tipos de portas USBs e a tabela 2.1, as funções dos pinos. Figura 2.1 Pinagem das Portas USB Fonte: 7
20 Tabela 2.1 Pinos da USB e suas funções Pino Função 1 VBUS 2 DATA - 3 DATA + 4 TERRA Fonte: AXELSON, 2009 O protocolo é uma das partes mais importantes do funcionamento do sistema USB, pois, é através dele que um ou mais dispositivos conversam e trocam informações com o Host. Nele, a pilha do protocolo está disponível em forma de drivers de arquivos.sys, dll, drv, exe, etc. Já no dispositivo, o protocolo pode ser encontrado dentro de um microcontrolador específico, como por exemplo um PIC que disponha de uma certa quantidade de memória. Neste caso, o protocolo é escrito com base na norma USB, em uma linguagem específica como C ou Assembly; depois é compilado e gravado na memória do microcontrolador através de um gravador de PIC. Este protocolo faz com que a porta USB seja diferente da Porta Serial ou Paralela, onde em ambas, é possível se comunicar com um dispositivo através de sinais elétricos dos pinos e um programa básico. No USB, isso só é possível se o dispositivo carregar o protocolo USB num chipset ou mesmo dentro de um microcontrolador. Assim, conclui-se que o combustível do sistema USB é o seu protocolo e, sem ele, não há troca de informação entre os dispositivos. O protocolo USB tem vários recursos como CRC (Cyclic Redundancy Check), detecção e correção de erros, detecção de conexão e remoção de dispositivos, controle de fluxo de dados assegurando transmissões isossíncronas (trafego contínuo de dados), disponibilidade assegurada de largura de banda, entre outros. [AXELSON, 2009] Todos os dispositivos USB têm uma hierarquia de descritores que informam ao Host o que o dispositivo é, ou seja, sua "personalidade", suas características de funcionamento, como o número de série do produto, identificação do fabricante, tipo do dispositivo (impressora, scanner, modem, mouse, etc.), número de configurações, número de Endpoint, tipo de transferência, tipo de interface, etc. Os dispositivos que podem se conectar à porta USB, precisam de um driver específico para serem usados ou podem pertencer a uma classe de dispositivo. Estas classes definem um comportamento já esperado de determinados dispositivos, sendo assim, pode ser utilizado um mesmo driver para qualquer equipamento que pertença a mesma classe. Um sistema operacional geralmente possui drivers genéricos para todas as classes. As classes 8
21 estão disponíveis na tabela 2.2. Tabela 2.2 Classes de Dispositivos USB Classes 00h 01h Uso Dispositivo Interface 02h Ambos 03h Interface 05h Interface 06h Interface 07h Interface 08h Interface 09h Dispositivo 0Ah Interface 0Bh 0Dh 0Eh 0Fh Interface Interface Interface Interface DCh Ambos E0h EFh FEh Interface Ambos Interface FFh Ambos Descrição Não especificadoclass 0 Audio Comunicações e Controle CDC (Communications Device Class) Dispositivo de Interface Humana (HID) Dispositivo de Interface Física (PID) Exemplos Microfone, caixa de som Adaptador Ethernet, modem. Mouse, teclado Joystick Câmeras Digitais (Muitas câmeras utilizam a classe 08h para acesso direto aos arquivos). Impressoras Impressora jato de tinta Armazenamento (Mass USB Flash Drive, Mp3 Player, Leitor de cartão Storage) de memória Hub USB Hubs hi-speed (Esta classe é utilizada juntamente com a CDC-Data classe 02h Comunicações e Controle CDC.) Smart Card Leitores de USB smart cards Segurança de Conteúdo Vídeo Webcam Cuidados Pessoais Dispositivo de Dispositivo de Teste USB Diagnóstico Controlador Wireless Adaptador Bluetooth Misturado Dispositivos ActiveSync Aplicações Específicas Dispositivos Infravermelhos (Esta classe indica que o dispositivo requer Fornecedor Específico drivers específicos do fornecedor.) Imagem Fonte: AXELSON, No sistema USB, existe o processo de enumeração responsável pela conexão, detecção, leitura dos descritivos dos dispositivos e desconexão. É uma atividade ininterrupta. Isso tudo é gerenciado em tempo real pelo controlador Host e o software do sistema. Do ponto de vista do usuário do computador, o processo de enumeração é transparente, desde que se tenha instalado anteriormente os drivers do fabricante do dispositivo no sistema operacional. Após a instalação, o carregamento dos drivers quando um dispositivo é conectado, é automático. Para a conexão do projeto ao computador, foram necessárias duas portas USB do 9
22 computador. Na primeira porta, é conectado o circuito apresentado no tópico 3.2, responsável por receber as informações de controle do carro e da câmera enviados pelo próprio computador e, também, transmitir ao computador os valores das medidas de temperatura registradas pelo circuito transmissor de temperatura presente no carro e que é explicado no item 3.3. Na segunda porta, é conectada a placa de captura EASYCAP, que tem a função de enviar ao computador as imagens transmitidas pela microcâmera Porta Serial A porta serial é utilizada para converter informações em paralelo para informações seriais. Isso significa que a interface serial pega os bytes recebidos em paralelo e converteos para bits individuais e são enviados separadamente (um a um). A porta serial também executa a operação inversa, ou seja, pega os bits separados, converte-os para bytes e envia-os para o computador em paralelo. [AXELSON, 2007] A interface também é conhecida como RS-232. O padrão RS-232 foi originalmente definido para uma comunicação por meio de 25 fios diferentes. Porém, a IBM, ao utilizar o padrão para o seu projeto do IBM-PC, definiu que apenas 9 pinos seriam necessários. Entretanto, o conector DB25 foi mantido nos computadores, devido a este ser um padrão da época. Por muitos anos, o padrão para comunicação serial em quase todos os computadores era algum tipo de porta RS-232. Ele continuou sendo utilizado em grande escala até o fim dos anos 90. Durante este tempo, esta foi a maneira padrão para a conexão de modems. A importância de portas seriais começou a decrescer gradualmente quando redes de alta velocidade tornaram-se disponíveis para a comunicação PC / PC. Hoje, é comum utilizar conexões Ethernet Base 10, 100 ou Num futuro próximo, velocidades maiores serão comuns. Atualmente, o protocolo de comunicação RS-232 já foi praticamente suprimido pela USB para comunicação local, por ser mais rápido, por possuir conectores mais simples e ter um melhor suporte por software. Por este motivo, alguns computadores produzidos atualmente já não contam mais com a porta serial. Entretanto, essa interface ainda é utilizada em periféricos para pontos de venda (caixas registradoras, leitores de códigos de barra ou fita magnética) e para a área industrial (dispositivos de controle remoto). 10
23 A figura 2.2 mostra o conector padrão DB9 de 9 pinos e a tabela 2.3, os pinos com suas respectivas nomenclaturas e funções: Figura 2.2 Pinagem do Conector DB9 Fonte: Tabela 2.3 Pinos e Funções da Porta Serial Pino Nomenclatura Função 1 DC Detecção de portadora 2 RXD Recepção de dados 3 TXD Transmissão de dados 4 DTR Terminal de dados pronto 5 GND Terra do Sinal 6 DSR Data set pront 7 RTS Solicitação de Envio 8 CTS Pronto Para Enviar 9 RI Indicador de Chamada Fonte: AXELSON, 2007 Existem dois modos de comunicação serial: Síncrona e Assíncrona. No modo de comunicação serial síncrona, o transmissor e o receptor devem ser sincronizados para a troca de comunicação de dados. Geralmente, uma palavra de sincronismo é utilizada para que ambos ajustem o relógio interno. Após a sincronização, os bits são enviados sequencialmente, até uma quantidade pré-combinada entre os dispositivos. [AXELSON, 2007] A comunicação serial assíncrona é a forma mais usual de transmissão de dados. Não existe a necessidade de sincronização entre os dispositivos, uma vez que os caracteres são transmitidos individualmente e não em blocos, como na comunicação síncrona. A transmissão de cada caractere é precedida de um bit de start e terminada por 1, 1,5 ou 2 bit(s) de parada. [AXELSON, 2007] 11
24 A interface serial já foi utilizada por vários dispositivos. A lista abaixo inclui alguns exemplos: Impressoras; Modems de conexão discada; Mouses; Receptores GPS Displays de LCD Leitor de código de barras Atualizar firmware de vários equipamentos domésticos como o DVD-Player. 2.2 LINGUAGENS DE PROGRAMAÇÃO UTILIZADAS NO PROJETO Linguagem C A linguagem de programação C foi desenvolvida por Dennis Ritchie durante o começo dos anos 70 para ser utilizada na implementação de sistemas operacionais e outras tarefas de programação de baixo nível. Ela foi derivada de outras duas linguagens anteriores: a Linguagem BCPL e a Linguagem B. A Linguagem BCPL foi desenvolvida por Martin Richards. Esta linguagem influenciou a linguagem inventada por Ken Thompson, chamada B. Logo em seguida, Dennis Ritchie desenvolveu a Linguagem C utilizando o sistema operacional UNIX. [KERNIGHAN e RITCHIE, 1998] O desenvolvimento inicial de C ocorreu entre 1969 e Em 1973, ela tornou-se poderosa o suficiente para reimplementar o kernel do sistema operacional Unix. A linguagem C buscou manter o "contato com o computador real" e, ainda sim, dar ao programador novas condições para o desenvolvimento de programas em diversas áreas como por exemplo, comercial, científica e de engenharia. Ela tornou-se imensamente popular depois de 1980 e, por um tempo, foi a linguagem predominante em programação de sistemas e de aplicações de microcomputadores, devido a sua simplicidade e flexibilidade. O próprio sistema operacional Windows foi desenvolvido a partir dela. A linguagem C possui as seguintes características: Portabilidade entre máquinas e sistemas operacionais, ou seja, um código escrito poderá ser executado em diferentes máquinas, independentemente da 12
25 sua configuração física (hardware) e do sistema operacional residente. É estruturada, sendo utilizados diversos tipos de laços e desvios, tais como: while, do-while, for; if-else, switch, que permitem ao programador exercer um controle lógico mais eficaz sobre os códigos fontes dos seus programas. Possui subrotinas com variáveis locais, isto é, funções cujas variáveis são visíveis apenas dentro desta função e somente no momento em que estas funções estejam sendo usadas. Assim, as variáveis com mesmo nome, que pertencem a funções distintas, são protegidas dos efeitos colaterais, isto é, uma modificação em nível funcional não acarreta mudança na variável em nível global. Código compacto e rápido, quando comparado ao código de outras linguagens de complexidade análoga. É Case-Sensitive, ou seja, letras maiúsculas e minúsculas são tratadas como caracteres distintos. A principal documentação deste padrão encontra-se na publicação "The C Programming Language", de Brian Kernighan e Dennis Ritchie, conhecida por "bíblia da linguagem C". A Linguagem C é utilizada neste projeto na programação dos três microcontroladores existentes no projeto. Para o desenvolvimento dessa tarefa, foi utilizado a ferramenta C Compiler, versão da empresa CCS. Ela provê completa estrutura lógica para a programação e é composta por operadores que foram organizados em bibliotecas que são específicas para os microcontroladores PICs da Microchip. A ferramenta também fornece acesso aos recursos de hardware através da linguagem C, evitando assim, a necessidade de se utilizar assembly. Entretanto, ela permite a inclusão de códigos nesta linguagem em sua implementação. Deste modo, pode-se desfrutar de todas as vantagens da implementação em alto nível e, também, fazer uso da implementação em baixo nível, explorando rotinas que não podem ser otimizadas através da programação em alto nível. Esta ferramenta possui, ainda, diversos exemplos, funções e drivers em forma de bibliotecas sendo, inclusive, necessário a instalação de um destes drivers no computador, para que o mesmo reconheça o dispositivo conectado que, neste caso, é o circuito detalhado no item Linguagem C++ A Linguagem C havia alcançando seu limite, pois, devido a problemas de gerenciamento do código, os programas escritos na linguagem atingiam somente um certo 13
26 tamanho, entre e linhas. Para resolver este problema, na década de 80, Bjarne Stroustrup, nos laboratórios AT&T Bells, acrescentou a linguagem C, o conceito de classes e de verificação de parâmetros de funções além de algumas outras facilidades e a chamou inicialmente de C com classes. Em 1983/84 o "C com classes" foi estendido e reimplementado, sendo adicionada a orientação a objetos, resultando na linguagem conhecida como C++. Este termo, aliás, faz referência ao operador de incremento ++, significando um acréscimo a evolução da linguagem C. Ela é considerada uma linguagem de nível médio, pois combina características de linguagens tanto de alto, quanto de baixo nível. As maiores extensões da linguagem C++ foram as funções virtuais e a sobrecarga de operadores. Após mais alguns refinamentos, a primeira versão da linguagem C++ tornou-se disponível ao público em 1985 e foi documentada no livro "The C++ Programming Language". [STROUSTRUP, 1993] Os primeiros compiladores C++ utilizavam um pré-processador, uma vez que, não geravam diretamente código executável, mas convertiam o código C++ em código C para uma posterior compilação através de um compilador C comum. Posteriormente, a linguagem passou a exigir um compilador próprio, escrito pelo próprio Stroustrup. Em 1989, a segunda versão foi lançada, contendo novas características como herança múltipla, classes abstratas, métodos estáticos, métodos constantes e membros protegidos, incrementando o suporte a orientação a objeto. [STROUSTRUP, 1993] Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao longo do tempo. Sua primeira adição foi a biblioteca de E/S, e posteriormente a Standard Template Library (STL); ambas tornaram-se algumas das principais funcionalidades que distanciaram a linguagem em relação a C. Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java e C# (C Sharp). As principais vantagens e desvantagens da linguagem C++ são listadas a seguir: Possibilidade em programação de alto e baixo nível. Alta flexibilidade, portabilidade e consistência. Compatilidade com C, resultando em vasta base de códigos. A compatilidade com o C herdou os problemas de entendimento de sintaxe do mesmo. Os compiladores atuais nem sempre produzem o código mais otimizado, tanto em velocidade quando tamanho do código. 14
27 Grande período para o aprendizado. A biblioteca padrão ainda não cobre áreas importantes da programação, como threads, conexões TCP/IP e manipulação de sistemas de arquivos, o que implica na necessidade de criação de bibliotecas próprias para tal, que pecam em portabilidade. Devido à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões de programação mais amplamente que em outras linguagens. A linguagem C++ foi utilizada no projeto para o desenvolvimento de uma ferramenta dotada de interface gráfica com capacidade para enviar sinais de controle a partir de comandos executados pelo usuário. A ferramenta também tem a função de imprimir os valores das temperaturas registradas bem como, a data e hora do recebimento da informação. Os detalhes sobre o aplicativo estão disponíveis no item MEIO DE TRANSMISSÃO DAS INFORMAÇÕES Frequências de rádio As ondas de rádio são ondas eletromagnéticas propagadas através de uma antena. Elas possuem diferentes frequências e, ao sintonizar um receptor de rádio em uma frequência específica, é possível captar um sinal. [BRAIN, 2000] A comunicação via rádio é simples de operar, oferecendo total mobilidade ao usuário, permitindo a conexão de equipamentos distantes entre si, possibilitando a implantação de uma rede de comunicação de dados completa. Outra vantagem é que as ondas de rádio são mais simples de serem geradas, podendo ir a longas distâncias e atravessar prédios e casas, sendo, por essa razão, largamente utilizada em telecomunicações. As ondas de rádio são dependentes de sua frequência, sendo que, as ondas de baixas frequências atravessam facilmente obstáculos, mas sua força cai rapidamente conforme aumenta a distância do emissor. As ondas de alta frequência viajam em linha reta e ricocheteiam nos obstáculos, porém, são absorvidas pela chuva, atingem a ionosfera e são refletidas de volta à terra, podendo sobre certas condições meteorológicas serem refletidas diversas vezes percorrendo longas distâncias. [TITTEL, 2002] A figura 2.3 ilustra os diversos tipos de radiofrequência utilizados. 15
28 Figura 2.3 Tipos de frequência Fonte: BRAIN, 2000 A habilidade de viajar, a longas distâncias, causa um problema: a interferência entre usuários utilizando a mesma frequência. Devido a este fator, todos os governos regulam rigorosamente a licença para uso de rádio transmissores. Nos Estados Unidos, a FCC (Federal Communications Commission) é o órgão regulador da radiodifusão. O órgão equivalente no Brasil é a ANATEL. [BRAIN, 2000] Um aspecto interessante das ondas de rádio é que cada tecnologia wireless tem a sua pequena faixa de banda disponível. Existem centenas delas. A tabela 2.4 exibe alguns exemplos: Tabela 2.4 Frequências mais comuns Utilização Frequência Rádio AM (Amplitude Modulada) 535 KHz a 1,7 MHz Rádio de ondas curtas 5,9 MHz a 26,1 MHz Canais de TV - Canais 2 a 6 - Canais 7 ao a 88 MHz 174 a 220 MHz Rádio FM (Frequência Modulada) 88 MHz a 108 MHz Controle remoto de garagens, sistemas de alarmes, etc em torno de 40 MHz Telefones sem fios 40 a 50 MHz Babá eletrônica 49 MHz Estação espacial MIR 145 MHz e 437 MHz Telefones celulares 824 a 849 MHz Radar de controle de tráfego aéreo 960 a 1215 MHz Sistema de posicionamento global (GPS - Global Positioning System) 1227 e 1575 MHz Comunicações de rádio no espaço 2290 MHz a 2300 MHz Fonte: BRAIN,
29 2.3.2 Controles remotos de rádio frequência O surgimento dos primeiros controles remotos aconteceu durante a Primeira Guerra Mundial. Eles eram equipamentos de rádio frequência e tinham a função de pilotarem navios alemães para colidirem contra barcos aliados. Durante a Segunda Guerra Mundial, os controles remotos foram utilizados para detonar bombas pela primeira vez. Ao fim da grande guerra, os cientistas da época obtiveram uma tecnologia fantástica, porém, não havia campo algum para aplicá-la. Atualmente, mais de sessenta anos depois, os controles remotos que utilizam radiofrequência (RF) são muito comuns, por isso, uma grande parcela da população possui pelo menos um ou mais controles que utilizam a radiofrequência para transmitir um sinal. [LAYTON, 2005] Eles são empregados em portas de garagens, em alarmes de carros, brinquedos, em televisores, aparelhos de som, entre outros. Uma aplicação que está sendo bastante difundida através dos aparelhos celulares e também utiliza a radiofrequência é o Bluetooth. O controle remoto RF transmite ondas de rádio que correspondem a um comando binário referente ao botão ao qual se está pressionando. A transmissão tem como destino, os receptores de rádio de aparelhos controlados. O problema com este tipo de controle é a quantidade de sinais de rádio puros, invisíveis no ar, a qualquer hora. Os telefones celulares, walkie-talkies, aparelhos WiFi e telefones sem fio estão todos transmitindo sinais de rádio em frequências variáveis. Os controles remotos RF lidam com o problema da interferência, transmitindo uma frequência de rádio específica e embutindo códigos de endereços digitais nos sinais de rádio (sinal codificado). Isto permite que o receptor de rádio no aparelho de destino saiba quando responder ao sinal e quando ignorá-lo. [LAYTON, 2005] A maior vantagem dos controles remotos com frequência de rádio é o seu alcance e, o fato de que os sinais de rádio podem atravessar paredes O Carro de Controle Remoto O carro utilizado no projeto é controlado por rádio e possui quatro componentes principais: transmissor É o controle remoto. Ele é responsável por enviar ondas de rádio ao receptor; 17
30 receptor É formado por uma antena e uma placa de circuito no interior do carro. Ele recebe os sinais provenientes do transmissor e ativam os motores elétricos no interior do carro de acordo com os comandos recebidos; motores elétricos Os motores têm a função de girar e/ou virar as rodas; fonte de energia Tanto o transmissor quanto o carro possuem fonte de energia. O carro possui uma bateria recarregável de 9,6 Volts, enquanto o controle remoto necessita de duas pilhas pequenas de 1,5 Volts cada uma. Geralmente, os brinquedos controlados por rádio possuem um pequeno dispositivo portátil que inclui alguns tipos de controles e o rádio transmissor. O transmissor envia um sinal em determinada frequência para o receptor no brinquedo. O transmissor possui uma fonte de alimentação, que fornece a energia para os controles e a transmissão do sinal. A maioria dos carros rádio controlados opera em 27 ou 49 Megahertz. Este par de frequências foi reservado pela FCC. O termo Megahertz significa "milhões de ciclos por segundo". O carro utilizado no projeto opera em 27 MHz. A figura 2.4 apresenta o carro que foi utilizado neste trabalho. Figura 2.4 Carro Utilizado no Projeto Dentro do carro existem dois motores elétricos, uma antena, e uma placa de circuito. Um motor vira as rodas dianteiras para a direita ou esquerda, enquanto o outro motor gira as rodas traseiras para frente ou para trás. Os motores elétricos recebem energia da bateria. O movimento do carro ocorre da seguinte maneira: Quando se pressiona o joystick do controle para uma direção, o controle faz com que um par de contatos elétricos se encostem, como se fosse uma chave, fechando um circuito conectado a um pino específico 18
31 de um circuito integrado (C.I.). O circuito completo faz com que o transmissor envie uma sequência de pulsos elétricos. O transmissor envia rajadas de ondas de rádio que oscilam numa frequência de de ciclos por segundo (27 MHz). O carro monitora constantemente a frequência designada à procura de um sinal. Quando o receptor recebe as rajadas de rádio do transmissor, ele envia o sinal para um filtro, que bloqueia quaisquer outros sinais captados pela antena que estejam fora da frequência de 27 MHz. O sinal remanescente é convertido novamente em uma sequência de pulsos elétricos. Ela é enviada para o C.I. no circuito do carro, que decodifica o sinal e faz funcionar o motor elétrico apropriado. O controle remoto do veículo possui uma antena transmissora, uma placa de circuito e dois joysticks, um responsável por movimentar o carro para frente e trás e, o outro, para girar as rodas dianteiras para a esquerda ou direita. A figura 2.5, apresenta foto do controle responsável por controlar o carro utilizado no projeto. Figura 2.5 Controle Remoto do Carro Câmera Wireless Para captar as imagens no ambiente a ser monitorado, foi utilizada uma câmera de pequenas dimensões instalada no veículo. Ela é alimentada através de uma bateria de 9 Volts. Na figura 2.6, é exibida a pequena câmera juntamente com a sua fonte de alimentação. Através dela, pode-se ter a percepção do tamanho real da câmera. 19
32 Figura 2.6 Microcâmera sem fio A transmissão do vídeo pela câmera também é feita através da radiofrequência, utilizando-se a faixa de 1,2 GHz, de acordo com as informações fornecidas em sua caixa. Trata-se de um tipo de sinal elétrico originário do vídeo composto 1, mas modulado em alta frequência, com o objetivo de ser transmitido através de uma antena. Quando este sinal chega a antena transmissora, são geradas ondas eletromagnéticas que se propagam no ar que podem ser captadas por uma ou mais antenas receptoras. Quando uma antena capta essas ondas, são gerados sinais elétricos semelhantes aos que foram usados no transmissor, mas estes sinais são muito mais fracos que o original, e ainda chegam ao receptor misturados com sinais de diversos outros emissores. Através de um processo chamado sintonização, é possível separar o sinal desejado, e através da amplificação ter o seu nível aumentado. Finalmente, é usada a demodulação para que o sinal de radiofrequência seja novamente transformado em vídeo composto. A figura 2.7 apresenta o receptor, juntamente com a sua antena, utilizada na captação dos sinais de vídeo. 1 Vídeo composto é um dos tipos mais populares de conexão de vídeo. Ele utiliza o conector RCA e é usado pelos populares conectores vídeo in e vídeo out, encontrados em videocassetes, aparelhos de TV, aparelhos de DVD e projetores de vídeo. Nos computadores, algumas placas de vídeo têm esta saída. 20
33 Figura 2.7 Receptor da Microcâmera Além da antena, o receptor possui um botão giratório (TUNE) usado para encontrar a faixa de frequência exata na qual a câmera está transmitindo, uma entrada DC para alimentação que pode ser entre 9 a 12 Volts, um LED para indicar quando o receptor encontra-se ligado e duas saídas RCAs, uma para áudio e outra para vídeo. Como o computador utilizado no trabalho não possui estas entradas, é necessário a utilização de uma placa de captura de vídeo denominada EASYCAP. Para a ligação entre a placa e o receptor é necessário um cabo RCA comum. Para se conectar ao computador, a placa EASYCAP dispõe de uma saída USB. A placa possui 4 entradas de vídeo e uma entrada de áudio, todas no padrão RCA. Na figura 2.8, é apresentado a placa EASYCAP. Figura 2.8 Placa de captura EASYCAP Para visualizar o áudio e vídeo captados pelo receptor, é utilizado um programa denominado Multiviewer, versão 2.0 e criada por Zhong Kai Ran. O aplicativo tem algumas 21
34 funções interessantes como, por exemplo, enviar um ao usuário ou disparar um alarme quando o programa detecta movimento ou perde o sinal do vídeo, gravar as imagens apenas quando o programa detecta movimento, configurar níveis de brilho, contraste, etc. Na figura 2.9, pode-se ver a interface do programa. Figura 2.9 Interface do Aplicativo MultiViewer 2.4 CODIFICAÇÃO DE SINAL Quando sinais digitais e analógicos são utilizados no transporte das informações pelo meio de transmissão, as propriedades dos sinais precisam, de alguma forma, representar os dados. O papel da codificação é justamente definir estas propriedades. A codificação é a representação do sinal digital transportado no sistema, através da amplitude e período dos sinais binários, cujas características físicas são selecionadas para possibilitar a otimização da performance de transmissão destes sinais digitais com relação ao do canal de transmissão (meio físico), bem como da performance do equipamento receptor. [TITTEL, 2002] Em contrapartida, a decodificação, é usada pelo destinatário do sinal transmitido de modo que os padrões do sinal sejam convertidos novamente em sinais significativos. 22
35 Um dos modos mais simples de comunicar dados em uma rede de computadores, por exemplo, é utilizar um pequeno sinal elétrico para a representação dos dados. Assim, a tensão no meio que conecta dois dispositivos pode ser alterada de modo que um nível de tensão positiva (5v), representa o binário um (1) e um valor de tensão negativa (-5v), representa o binário zero (0). Transmitindo o binário 1, o dispositivo transmissor coloca uma tensão positiva no fio por um curto período de tempo e depois retorna ao nível 0 de tensão. O dispositivo receptor detecta a tensão positiva e registra a chegada do binário 1. Enviando o binário 0, o dispositivo transmissor coloca uma tensão negativa no fio por um período curto de tempo e, então ajusta o nível de tensão 0. O destinatário, recebendo a tensão negativa, registra a chegada do binário 0. [TITTEL, 2002] A codificação deve proporcionar o sincronismo do receptor em relação à fase do sinal recebido, comparado ao sinal transmitido. Quando o sincronismo não é ideal, o sinal decodificado não detém as amplitudes originais do sinal transmitido, levando-se em consideração a ordem de chegada dos bits, ocasionando uma maior probabilidade de erro de bits recebidos. O estudo sobre transmissão de sinais tem mostrado que, um sinal que oscila continuamente, viaja por uma distância maior do que outros sinais. Em sistemas de comunicação de longa distância, este sinal é chamado de portadora. Elas são, usualmente, senoidais e oscila mesmo quando não há nenhum sinal sendo transmitido. Para enviar dados na presença de um sinal contínuo, o transmissor modifica ligeiramente a portadora para representar a informação. Esta modificação é chamada de modulação e é utilizada em sinais de rádio, telefone e redes de computadores. [TITTEL, 2002] De preferência, deve-se escolher uma codificação que possua uma estrutura, a qual possibilite a detecção de erro de bits transmitidos. Note que, o sinal decodificado deve possuir características físicas apropriadas para o meio físico que está sendo utilizado, por exemplo, meios físicos metálicos, ou meios físicos de fibras ópticas. Estas características físicas são únicas para cada tipo de meio físico, pois cada um deles possui diferentes comportamentos com relação à interferência, distorção, capacitância, e perda de amplitude. Neste projeto, o meio físico é o ar, transportando o dado através de ondas de rádio. Um fator importante sobre a codificação utilizada no projeto, é que ela não deve conter componente DC (a média do nível do sinal deve ser 0), para que o demodulador no receptor interprete corretamente o dado recebido, pois a componente DC ocasiona uma modificação nas características elétricas do sinal no lado receptor, surgindo uma maior probabilidade de erro de decodificação. [FOROUZAN, 2006] 23
36 2.4.1 Codificação Manchester A codificação Manchester possui a característica de possibilitar a transmissão arbitrária de bits sem a ocorrência de longos períodos sem transição do estado da amplitude do bit, o que proporciona não perder o sincronismo do sinal de relógio, e a não ocorrência de erro de bit em baixas taxas de transmissão em enlaces com precária equalização. Tratase, portanto de uma codificação auto-relógio. [FOROUZAN, 2006] Os bits são normalmente referidos em grupos conhecidos como bytes ou octetos. Um byte ou octeto, é um grupo de oito bits e é normalmente representado no formato de dois caracteres hexadecimais (hex).os valores hexa legais são de 0 a 9 e de A a F. Na codificação Manchester, o dado é representado de acordo com o ponto no qual o sinal varia, ou seja, nas localizações onde o sinal altera de um valor positivo para zero representa o binário um (1) e, quando a tensão altera de zero para um valor positivo, o binário zero (0) é representado. Diz-se que o hardware usado nos esquemas de Codificação Manchester é sensível à borda do pulso de tensão e as mudanças ou transições são conhecidas como borda de subida ou descida. Quando a borda da frente sobe para uma tensão positiva, o binário 0 é codificado e, quando desce para a tensão zero, o binário 1 é codificado. Com este tipo de estrutura, cada período de bit é dividido em dois intervalos iguais, tendo uma transição no meio que facilita para o receptor sincronizar com o transmissor. Para assegurar que haja uma sincronização das janelas de tempo (time slots) quando da amostragem do sinal pelo receptor, a Codificação Manchester usa um preâmbulo para permitir a sincronização pelo receptor. O preâmbulo é composto por uns e zeros que se alternam, o qual é enviado antes do quadro de dados. Um padrão que alterna uns e zeros produz uma onda quadrada pela qual o receptor pode determinar o valor das janelas de tempo. O efeito combinado do preâmbulo e da transição no meio do período do bit elimina a necessidade de um relógio externo para sincronizar o transmissor e o receptor. [TITTEL, 2002] A figura 2.10 demonstra o resultado da codificação Manchester para um determinado sinal. 24
37 Figura 2.10 Codificação Manchester do Sinal Fonte: A codificação Manchester não possui componente DC o que torna mais simples o processo de regeneração do sinal, bem como economia de energia. Ela proporciona uma maneira simples de codificação arbitrária de sequências binárias, não existindo longos períodos sem transição do sinal, possibilitando a não existência de perda de sincronismo, ou erros de bits transmitidos devido ao deslocamento da componente DC. [LIMA Jr, 2009] Este tipo de codificação é empregado no circuito transmissor de temperatura sem fio e, a decodificação, no circuito receptor. Os detalhes de como foram criados a codificação e decodificação são explicados no tópico Componente de Nível DC A componente DC é uma energia extra residente na linha de sinal. Quando a ocorrência de símbolos uns (1s) e zeros (0s), em um sinal transmitido, é igual, não existe componente DC. Porém, tratando-se de longas sequências de 1s, ou 0s, surge uma componente DC, que causa distorção no sinal e pode ocasionar distorções nas informações recebidas, conforme ilustra a figura Figura 2.11 Componente de nível DC. Fonte: LIMA Jr,
38 O fato acima comentado ocasiona grandes problemas em redes que utilizam acoplamento AC através de capacitores, transformadores e amplificadores AC, pois a resposta de frequência é prejudicada na parte da componente DC. O resultado disto é que o sinal se desloca para o nível zero (0), em longos períodos de 0s, o que reduz a margem de erro, e isto ocasiona o aumento da taxa de erro de bit, que pode ser evitado, através do uso do código Manchester, o qual é utilizado em Redes Locais de Computadores (LANs). [LIMA Jr, 2009] A figura 2.12, exibe a forma dos pulsos Manchester (parte superior), e um exemplo de sequência de bits com codificação Manchester. Figura 2.12 Nível DC = 0 para pulsos Manchester. Fonte: LIMA Jr, MICROCONTROLADORES O microcontrolador (MCU ou μc) é um componente eletrônico dotado de inteligência programável, sendo utilizado no controle de diversos periféricos como LEDs, buzzers, botões, diversos sensores (luminosidade, temperatura, umidade, pressão, etc), displays, entre outros. A sua lógica de operação é estruturada através de um programa que é gravado dentro do componente. [SOUZA, 2003] O microcontrolador difere em muitos aspectos de um microprocessador (MPU ou μp). Enquanto o microprocessador precisa de componentes como memória, timers e interfaces de entrada e saída de dados para o seu funcionamento, o microcontrolador possui todos os recursos necessários para a sua utilização. Além destes elementos, pode-se citar, também, dispositivos periféricos como conversores analógico/digitais (ADC), conversores digitais/analógicos (DAC), comunicação serial, contadores, PWM (Pulse Width Modulation), etc. Devido a estes fatores, o microcontrolador é chamado de sistema computacional em um 26
39 único circuito integrado (on-chip computer). Outra diferença é que os microprocessadores são utilizados em aplicações onde são requeridos cálculos matemáticos complexos e com muita velocidade e, os microcontroladores são utilizados onde a velocidade de processamento não é tão alta e de forma dedicada, por exemplo em eletrodomésticos. As principais áreas de atuação do microcontrolador são a área automobilística, automação, robótica, entretenimento, médica, controle de tráfego e segurança. Os microcontroladores operam utilizando uma frequência de clock muito baixa se comparados aos microprocessadores atuais, entretanto, são apropriados para uma vasta área de aplicações usuais. O consumo do microcontrolador, em geral, é relativamente baixo, normalmente na casa dos miliwatts e muitos modelos possuem a habilidade de entrar em modo de espera (Sleep) aguardando por uma interrupção ou evento externo, como por exemplo o acionamento de uma tecla, ou um sinal que chega por uma interface de dados. O consumo destes microcontroladores em modo de espera pode chegar na casa dos nanowatts, tornando-os ideais para aplicações onde a exigência de baixo consumo de energia é um fator decisivo para o sucesso do projeto. [SOUZA, 2003] Para o sistema, são utilizados os microcontroladores PIC12F675, PIC16F676 e PIC18F4550, todos fabricados pela Microchip. A partir deles, é possível a realização de diversas tarefas necessários ao funcionamento do sistema. Entre essas tarefas, pode-se destacar a conversão analógica/digital, transmissão e recepção de dados via comunicação serial, codificação e decodificação de dados, conexão ao computador por intermédio da porta USB, entre outros. No capítulo 3, são fornecidos mais detalhes sobre o modo de funcionamento dessas tarefas. De acordo com a informação fornecida no tópico 2.2.1, o programa utilizado na criação e compilação do código necessário para o funcionamento dos microcontroladores é o C Compiler da empresa CCS. Após o código ser gerado, é necessário que o mesmo seja transferido do computador para o microcontrolador. Para isso, foi utilizado o dispositivo PICBurner, que é um gravador e tem a função de fazer a conexão entre o computador e o microcontrolador e inserir os dados na memória deste último. O gravador se conecta ao computador através da porta serial. Na figura 2.13 é exibida a foto do gravador. 27
40 Figura 2.13 Gravador PICBurner Vale ressaltar que o gravador é apenas o meio de transmissão. Além dele, foi preciso o uso de um aplicativo capaz de enviar o código hexadecimal até a porta serial. O programa utilizado foi o PICPgm Development Programmer e sua interface é apresentada na figura 2.14: Figura 2.14 Interface do PICPgm 2.6 SERVOMOTORES O servomotor é um dispositivo eletromecânico que, ao receber um sinal elétrico na sua entrada, pode ter o seu eixo posicionado numa determinada posição angular. Enquanto 28
41 existir o sinal aplicado na entrada, o servo mantém a posição angular do eixo. Quando este sinal é alterado, a posição angular do eixo também é modificado. Estes motores são amplamente utilizados na robótica devido ao seu baixo custo, facilidade de acionamento e precisão de posicionamento. Além disso, são bem pequenos, leves, compactos e possuem uma elevada potência em relação ao seu tamanho. O projeto utiliza dois micros servos da marca TowerPro, modelos MG90 e MG90S. Eles tem a função de movimentar a câmera sendo que, o MG90S é utilizado para movimentação no sentido vertical e, o MG90, no sentido horizontal. A tabela 2.5 contém as especificações de ambos modelos, de acordo com o fabricante: Tabela 2.5 Características do Servomotor SERVO MG90 MG90S Peso 14 gramas 13,4 gramas Dimensão 23 x 12,2 x 29 mm 22,8 x 12,2 x 28,5mm Torque máximo 2,2 Kg/cm (4,8V) 2,5 Kg/cm (6,0V) 1,8 Kg/cm (4,8V) 2,2 Kg/cm (6,0V) Velocidade de operação 0,11 seg/60º (4,8V) 0,10 seg/60º (6,0V) 0,1 seg/60º (4,8V) 0,08 seg/60º (6,0V) Voltagem de operação 4,8 a 6 V 4,8 a 6 V Largura de Banda Morta 10 μs 5 μs Fonte: A largura de banda morta previne o servo de estar em estado de movimento contínuo, quando pulsos muito pequenos ocorrem. A figura 2.15 apresenta os dois servomotores utilizados neste projeto, mais especificamente, no circuito explicado no item 3.5. Figura 2.15 Servomotores utilizados no Projeto 29
42 O servomotor possui um sistema eletrônico de controle e um potenciômetro conectado ao eixo de saída. O sistema de controle é responsável por receber os sinais e energia do receptor e controlar o motor de acordo com o sinal recebido e a posição do potenciômetro. [SANTOS, 2007] O potenciômetro permite ao circuito de controle, monitorar o ângulo do eixo do servo. Quando o eixo está no ângulo certo, o motor pára. Caso o circuito de controle detecte que o eixo não se encontra no ângulo correto, o motor é acionado até que o ângulo certo seja detectado. [SANTOS, 2007] Nas engrenagens do servomotor, existe um limitador que atua no ângulo de giro do eixo, fazendo com que o mesmo varie de zero a cento e oitenta graus (0º a 180º). A figura 2.16 demonstra todos os componentes presentes em um servomotor. Figura 2.16 Componentes que formam o servomotor Fonte: SANTOS, 2007 Além dos componentes, o servomotor possui três fios responsáveis pela conexão do mesmo ao sistema, demonstrados na figura 2.17: Figura 2.17 Sinais no conector do servomotor O pino um é responsável por receber o sinal de controle. Os pinos dois e três são destinados à alimentação do servo. O ângulo do eixo é determinado a partir da duração da 30
43 largura de pulso (PWM Pulse Width Modulation) recebido pelo pino um. Este sinal pode ser de zero ou cinco Volts. O circuito de controle monitora o sinal em intervalos de vinte milissegundos (20 ms). A largura do impulso determina o ângulo de rotação do motor. Um impulso de um milissegundo e meio (1.5 ms), por exemplo, faz com que o motor gire o seu braço até a posição zero graus (também designada posição neutra). Se o impulso for de aproximadamente um milissegundo (1.0 ms), então o motor movimenta o eixo no sentido anti-horário cerca de sessenta graus (-60º). Se o impulso for de dois milissegundos (2.0 ms) aproximadamente, então, o eixo do motor percorre no sentido horário até a posição de 60 graus. Estes valores são apenas referenciais, uma vez que não são padronizados e, dependendo do fabricante, o motor utiliza outros valores de largura de pulso para que o eixo se movimente até determinada posição. Inclusive, pôde-se notar pequenas diferenças de posições do braço utilizando os mesmos valores de largura de pulso entre os dois servomotores do projeto, lembrando que ambos são da mesma marca. A figura 2.18 representa os tempos de cada pulso (em milissegundos) e sua respectiva posição do eixo do servo para um servomotor qualquer. 31
44 Figura 2.18 Pulsos de controle de posição 32
45 CAPÍTULO 3 DESENVOLVIMENTO DO PROJETO 3.1 CIRCUITO FAROL O circuito farol consiste em acionar automaticamente dois LEDs brancos de alto brilho quando o veículo encontra-se em ambientes com pouca ou nenhuma luminosidade. Assim como o acionamento, nos casos em que o carro sai de um local escuro para outro iluminado, os LEDs são desligados. Estes LEDs são posicionados juntamente a microcâmera, auxiliando o usuário na visibilidade tanto para controlar o veículo, quanto para monitorar o ambiente. Para o circuito, os principais componentes utilizados são os LEDs, um LDR (do inglês Light Dependent Resistor ou Resistor Variável Conforme Incidência De Luz em português) e um C.I. LM741. O LED (do inglês Light-emitting Diode) é um diodo que utiliza compostos semicondutores diferentes de germânio ou silício. Os diodos comuns apresentam uma certa resistência à passagem da corrente elétrica e dissipam a energia na forma de calor e os LEDs são produzidos com materiais que têm a capacidade de emitir luz além de calor. [PATZKO2, 2006] A aplicação dessas diferentes substâncias correspondem a utilização da teoria da eletroluminescência na prática. A teoria diz que alguns materiais têm capacidade de emitir luz quando conduzem uma corrente elétrica. Portanto, não é necessário o aquecimento de um material (incandescência) ou uma reação química (quimioluminescência) para que se crie uma fonte de luz. Quando há a condução de uma corrente elétrica, os elétrons do composto ficam excitados e emitem sua energia na forma de fótons, ou seja, de luz. A frequência da luz emitida pelo elétron determina sua cor e depende da substância que é utilizada. Por exemplo, os LEDs vermelhos são fabricados utilizando-se o nitrato de gálio (GaN) e os LEDs azuis são produzidos com o fosfato de gálio (GaP). [PATZKO2, 2006] Uma das principais vantagens do LED, é a utilização de elementos eletroluminescentes na sua fabricação, pois, ao contrário das lâmpadas incandescentes ou fluorescentes, não se faz necessário o aquecimento de um filamento ou um gás para que 33
46 haja a emissão de luz. Com isso, percebe-se que o LED é muito mais eficiente, pois necessita de menos corrente elétrica para produzir a mesma quantidade de energia de uma lâmpada comum, possibilitando uma redução no consumo de energia, o que é essencial principalmente em equipamentos onde são utilizados pilhas e baterias. A figura 3.1 apresenta alguns LEDs com diferentes formas e cores. Figura 3.1 LEDs diversos Fonte: PATZKO2,2006 Outras vantagens a serem destacadas, é a sua vida útil de aproximadamente horas contra horas das lâmpadas incandescentes e horas das fluorescentes, resistência a choques e vibrações devido ao encapsulamento de plástico maciço e a sua rapidez no acendimento (o LED leva cerca de 0,01 segundo para ter brilho total). A figura 3.2 apresenta os dois LEDs utilizados neste circuito. Figura 3.2 Par de LEDs Conforme o seu nome diz, o LDR é um tipo de resistor cuja resistência varia conforme a intensidade de radiação eletromagnética do espectro visível que incide sobre ele. Pode-se dizer que ele é um transdutor de entrada (sensor) que converte a luz em valores de resistência. A figura 3.3 apresenta uma foto do componente LDR. 34
47 Figura 3.3 LDR Os LDRs são compostos por sulfeto de cádmio (CdS), um material semicondutor, que é disposto num traçado onduloso na superfície do componente. Esse material tem a propriedade de diminuir sua resistência à passagem da corrente elétrica quando a luminosidade sobre ele aumenta, podendo-se chegar a uma mínima resistência de aproximadamente 100 ohms e, também, aumentar a resistência conforme diminui a luminosidade obtendo-se uma resistência máxima acima de 1M ohms. [PATZKO1, 2006] Através da figura 3.4, pode-se verificar o gráfico de resposta do LDR: Figura 3.4 Gráfico de resposta do LDR Fonte: PATZKO2,2006 O LDR presente no circuito foi utilizado em um divisor de tensão. Um divisor de tensão é composto por dois resistores ligados em série, conforme demonstra o esquema elétrico presente na figura 3.5. A tensão no ponto entre os dois resistores depende dos valores das suas resistências e da tensão de alimentação. Essa tensão pode ser calculada através da fórmula
48 Vr= Vt R1 R1 R2 (3.1) Figura 3.5 Divisor de Tensão Como o LDR é um sensor resistivo, pode-se substituir um dos resistores do divisor de tensão por este componente. Substituindo R2 por um LDR conforme é mostrado na figura 3.6, obtêm-se um circuito, cuja tensão aumenta de acordo com a luminosidade do ambiente. Figura 3.6 Divisor de tensão com LDR O C.I. 741 é um amplificador operacional (AmpOp) constituído por um bloco amplificador de tensão de alto ganho, baseado em transístores (bipolares ou fet) dotados de uma única saída e duas entradas, sendo uma inversora e uma não inversora. A figura 3.7 mostra a representação do C.I. por dentro, bem como, a sua pinagem. 36
49 Figura 3.7 Pinagem do CI 741 O C.I. 741 possui várias aplicações. Dentre elas, pode-se destacar: 1. Amplificador inversor; 1. Amplificador não-inversor; 2. Amplificador diferencial; 3. Comparador de tensão; 4. Oscilador; 5. Filtro ativo de frequência. Neste circuito, ele é utilizado como um comparador de tensão. Um comparador de tensão é um amplificador operacional de alto ganho ligado de forma a comparar uma tensão de entrada com uma tensão de referência. O AmpOp compara a tensão das duas entradas, inversora (negativa) e não inversora (positiva). Quando o módulo da tensão da entrada positiva é superior à da entrada negativa, a saída do AmpOp tem a tensão de alimentação do circuito (VCC). Se a tensão da entrada negativa é superior à da entrada positiva, acontece o contrário, ou seja, na saída do AmpOp é encontrado uma tensão de zero Volts (GND). A figura 3.8 é o desenho esquemático do circuito desenvolvido: 37
50 Figura 3.8 Esquema do circuito farol Quando há luz incidida o suficiente sobre o LDR, a resistência formada pelo divisor de tensão entre ele e o resistor R8 é baixa, fazendo com que a tensão na entrada inversora seja maior que na entrada não inversora e, com isso, a saída (pino 6) tem nível baixo (Vsaída=0). Quando há pouca ou nenhuma luz sobre o LDR, a tensão na entrada inversora é menor do que a tensão na entrada não inversora, tornando a saída do amplificador operacional alta e conduzindo a tensão que passa pelo resistor R9 que limita a corrente que flui para a base do transistor BC548. Este transistor funciona como uma chave, que fecha o circuito, permitindo que a corrente flua entre o coletor e o emissor, realizando, assim, a ativação dos LEDs. Para que a saída do C.I. não fique flutuante, foi adicionado um resistor de Pull-down (R12) entre ela e a base do transistor. O resistor R5 é um potenciômetro e, através dele, pode-se ajustar a sensibilidade do circuito. Vale destacar que o amplificador operacional foi extremamente importante para o correto funcionamento do circuito, pois sem ele, os LEDs acenderiam aos poucos, conforme fosse baixando a luminosidade incidida no LDR. A figura 3.9 exibe uma foto da placa de circuito impresso construída. 38
51 Figura 3.9 Placa do Circuito Farol 3.2 CIRCUITO USB Este circuito é responsável por realizar a conexão entre o computador e os circuitos do projeto para que possam enviar ou receber dados entre eles. A placa se conecta ao computador através da porta USB graças ao microcontrolador PIC18F4550. Ele possui uma USB SIE (Serial Interface Engine) compatível com low-speed e full-speed, o que possibilita a rápida comunicação entre um host USB e o microcontrolador. O circuito também se conecta a placa responsável pelo controle do carro e da câmera através de um cabo com conectores Headers de 10 pinos, sendo que 8 pinos são responsáveis para ativar os pinos de movimento dos controles e os 2 pinos restantes são o positivo e o negativo da tensão da porta USB. Como a porta USB fornece uma tensão de 5 Volts, essa alimentação foi utilizada tanto neste circuito, quanto nos circuitos de controles, dispensando uma fonte externa para os mesmos. A figura 3.10 apresenta o encapsulamento e pinagem do microcontrolador PIC18F
52 Figura 3.10 Microcontrolador PIC18F4550 Fonte: Data Sheet PIC18F4550, Microchip Além do microcontrolador, outro componente importante neste circuito é um módulo receptor de radiofrequência, responsável por receber os dados emitidos pelo transmissor remoto instalado no circuito de medição de temperatura, enviando-os ao microcontrolador para que o mesmo decodifique estes dados e encaminhe-os ao computador logo em seguida. A utilização do módulo receptor é explicado com mais detalhas no item 3.3 deste trabalho, enquanto o tipo de codificação utilizada para a transmissão é explicado no item Os dados que são transmitidos pelo computador, são caracteres enviados um a um que chegam até o microcontrolador. O computador envia até 16 caracteres diferentes, sendo 8 caracteres utilizados para o controle do carro e os 8 restantes para o controle da câmera. No controle do carro, dependendo do caractere recebido pelo microcontrolador, coloca determinado pino em tensão alta ou baixa. No caso do pino em tensão alta, faz com que o respectivo movimento do carro seja acionado e, o pino em tensão baixa, cessa o movimento. A mesma explicação se aplica ao controle da câmera. O desenho esquemático do circuito é apresentado na figura
53 Figura 3.11 Esquema elétrico do circuito USB Apesar de o circuito utilizar a porta USB para se conectar ao computador, o microcontrolador se comporta como um dispositivo do tipo CDC (Communications Device Class - Classe 02h). Sendo assim, o sistema operacional o reconhece como se fosse um dispositivo que se comunica com o computador através de uma porta serial de comunicação (COM). Assim como todos os dispositivos USB, o presente circuito necessita que um driver seja instalado ao computador para que funcione corretamente. Quando o circuito é conectado pela primeira vez no computador, o sistema operacional informa que um novo hardware foi detectado, conforme mostra a figura Figura 3.12 Mensagem do Sistema Operacional Em seguida, é iniciado o Assistente para adicionar novo hardware do Windows já 41
54 que o mesmo não dispõe do driver necessário para o funcionamento do dispositivo e solicita o local onde o arquivo pode ser encontrado. Este driver é o arquivo 'cdc_ntxpvista.inf' e está situado na pasta 'Drivers' criada pela instalação do aplicativo C Compiler. Após a indicação do local, o driver é instalado conforme demonstra a figura Figura 3.13 Tela de instalação do driver Como o dispositivo se comporta como se fosse um hardware conectado a porta serial do computador, o sistema operacional cria uma porta COM virtual, conforme demonstra a figura 3.14: Figura 3.14 Criação da porta COM virtual 42