CENTRO UNIVERSITÁRIO DE BRASÍLIA - UNICEUB FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA – FAET CURSO: ENGENHARIA DE COMPUTAÇÃO DISCIPLINA: MONOGRAFIA ACADÊMICA PROFESSOR ORIENTADOR: ADERLON MARCELINO QUEIROZ CONTROLE REMOTO INFRAVERMELHO PARA AUTOMAÇÃO RAFAEL RIBEIRO REZENDE LOMBARDI REGISTRO ACADÊMICO: 2012652/1 Brasília/DF, Julho de 2006 CENTRO UNIVERSITÁRIO DE BRASÍLIA - UNICEUB FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA – FAET CURSO: ENGENHARIA DE COMPUTAÇÃO DISCIPLINA: MONOGRAFIA ACADÊMICA PROFESSOR ORIENTADOR: ADERLON MARCELINO QUEIROZ CONTROLE REMOTO INFRAVERMELHO PARA AUTOMAÇÃO RAFAEL RIBEIRO REZENDE LOMBARDI REGISTRO ACADÊMICO: 2012652/1 Monografia apresentada como requisito para conclusão do curso de Engenharia de Computação no UniCEUB – Centro Universitário de Brasília. Brasília/DF, Julho de 2006 II CENTRO UNIVERSITÁRIO DE BRASÍLIA - UNICEUB FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA – FAET CURSO: ENGENHARIA DE COMPUTAÇÃO SUPERVISÃO DE MONOGRAFIA ACADÊMICA MEMBROS DA BANCA EXAMINADORA 3.2.1. MEMBROS DA BANCA ASSINATURA 1. PROFESSOR(ª) ORIENTADOR(ª) Prof. (ª): MC Aderlon Marcelino Queiroz 2. PROFESSOR(ª) CONVIDADO(ª) Prof(ª).: MC Maria Marony Souza Farias Nascimento 3. PROFESSOR(ª) CONVIDADO(ª) Prof(ª).: MC José Julimá Bezerra Júnior MENÇÃO FINAL:: Brasília/DF, 07 de Julho de 2006. III DEDICATÓRIA À Jesus, Por sempre estar ao meu lado, me guiando em cada passo na minha vida. À Minha família, Que me deu a base necessária para a formação da independência minha e personalidade, educação, me incentivando sempre a lutar pelos meus objetivos e ter um ideal de vida. IV AGRADECIMENTOS À Deus, Agradeço primeiramente a Jesus por tudo o que tem feito na minha vida, me guiando e iluminando em todos os momentos para que eu possa tomar decisões corretas. À Família, Meus pais, Hélio e Eliane e meu irmão Thiago por sempre estarem ao meu lado durante todo o tempo e por me permitirem o direito de completar meus estudos, sempre desejando o melhor tanto para mim como para meu irmão. À Mariana, Minha namorada, que esteve ao meu lado em momentos muito importantes e marcantes da minha vida, me trazendo sempre grande alegria com sua presença. Ao Aderlon, Meu professor orientador que me ajudou muito monografia, na sempre elaboração corrigindo da e propondo melhorias para o projeto. Aos meus amigos do peito, que caminharam juntos nessa jornada maravilhosa de aprendizagem, dos quais sempre me lembrarei dos grupos de V estudo, futebol, churrascos, festas e demais momentos que passamos. VI "O único homem que está isento de erros, é aquele que não arrisca acertar." (Albert Einstein) "Viver é a coisa mais rara do mundo. A maioria das pessoas apenas existe." (Oscar Wilde) "Diante da vastidão do tempo e da imensidão do espaço é uma alegria para mim compartilhar uma época e um planeta com você." (Carl Sagan) VII RESUMO Controle Remoto Infravermelho para Automação é um projeto que tem como objetivo automatizar algumas atividades cotidianas com o uso do controle remoto. O principal objetivo é montar um circuito infravermelho de baixo custo que possa ser manipulado pelos mais variados tipos e marcas de controle remoto. Este trabalho consiste em um estudo sobre processos e conceitos necessários para a implementação do circuito infravermelho, conectado através da porta serial ao computador. A execução de tarefas através do processamento desse computador foi feita na medida em que os sinais do controle remoto são decodificados pelo software livre LIRC (Linux Infrared Remote Control, Controle Remoto Infravermelho Linux). Tais aplicações incluem o controle do cursor do mouse remotamente; Envio de combinações de teclas a qualquer programa e a execução desses a partir de um botão pré-programado; Acender e apagar uma lâmpada, usando a porta paralela do computador. O projeto descreve a montagem de um segundo circuito conectado à porta paralela do computador que irá receber sinais dos pinos de dados para ativar ou desativar o circuito conectado à lâmpada. Dessa forma, através de um simples botão do controle remoto será possível acender e apagar lâmpadas. Palavras-chave: Infravermelho, Automação, Controle remoto. VIII ABSTRACT The objective of Infrared Remote Control for Automation project is to automate some common tasks of day with a remote control. The main purpose is to build a cheap infrared circuit that can be manipulated by the most common kinds and brands of remote controls. It consists of a study on processes and concepts for the implementation of the infrared circuit connected to a personal computer by the serial port. The execution of tasks will be made by the computer after the signals of remote control be decoded by the free software LIRC (Linux Infrared Remote Control). Some of the applications are the control of the mouse movements remotely; Executing programs just by one button press; Turn on and off a lamp connected to a parallel port circuit. The project foresees the build of a second circuit that will be connected to computer parallel port. This circuit will receive signals from data pins to activate or deactivate a circuit connect to the relay coil that is directly connected to the lamp. In this way, with just a button press it will be possible to turn on and turn off lamps. Keywords: Infrared, Automation, Remote control. IX SUMÁRIO ÍNDICE DE FIGURAS ................................................................................................................................ XII ÍNDICE DE TABELAS...............................................................................................................................XIII ÍNDICE DE TABELAS...............................................................................................................................XIII ÍNDICE DE EQUAÇÕES ...........................................................................................................................XIV LISTA DE SIGLAS E NOMENCLATURAS............................................................................................. XV LISTA DE SIGLAS E NOMENCLATURAS............................................................................................. XV 1. INTRODUÇÃO ....................................................................................................................................... 1 1.1. 1.1. 2. INFRAVERMELHO .............................................................................................................................. 5 2.1. 2.2. 2.3. 2.4. 3. MOTIVAÇÃO ..................................................................................................................................... 3 OBJETIVOS........................................................................................................................................ 3 CONCEITOS INICIAIS ......................................................................................................................... 5 INFRAVERMELHO WIRELESS ............................................................................................................. 9 CARACTERÍSTICAS ............................................................................................................................ 9 DETECÇÃO E NEP........................................................................................................................... 10 CIRCUITO INFRAVERMELHO ....................................................................................................... 13 3.1. PADRÃO RS-232............................................................................................................................. 13 3.2. CIRCUITO/HARDWARE.................................................................................................................... 19 3.2.1. Características TSOP 1738 ...................................................................................................... 23 3.2.2. Funcionamento ......................................................................................................................... 24 4. AUTOMAÇÃO...................................................................................................................................... 27 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. APLICAÇÕES .................................................................................................................................. 27 CURSOR DO MOUSE ....................................................................................................................... 27 INTERFACE PARALELA ................................................................................................................. 28 CIRCUITO LED .............................................................................................................................. 32 CIRCUITO LÂMPADA ..................................................................................................................... 34 FLUXOGRAMA ............................................................................................................................... 37 .......................................................................................................................................................................... 37 5. LIRC – LINUX INFRARED REMOTE CONTROL ........................................................................ 38 5.1. INSTALAÇÃO DO PACOTE LIRC ................................................................................................... 39 5.1.1. Dependências ........................................................................................................................... 39 5.1.2. Instalação ................................................................................................................................. 41 5.1.3. Teste.......................................................................................................................................... 49 5.1.4. Programas LIRC ...................................................................................................................... 50 5.1.5. Diagrama de blocos.................................................................................................................. 52 6. CONSIDERAÇÕES FINAIS................................................................................................................ 54 6.1. 6.2. 6.3. CONCLUSÃO .................................................................................................................................. 54 DIFICULDADES .............................................................................................................................. 54 SUGESTÕES PARA TRABALHOS FUTUROS .................................................................................... 56 REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................................................... 57 7. APÊNDICES.......................................................................................................................................... 59 X 7.1. FORMATO ...................................................................................................................................... 59 APÊNDICE A.................................................................................................................................................. 60 7.1.1. LIRCD.CONF ........................................................................................................................... 60 APÊNDICE B.................................................................................................................................................. 64 7.1.2. LIRCMD.................................................................................................................................... 64 APÊNDICE C.................................................................................................................................................. 68 7.1.3. .LIRCRC.................................................................................................................................... 68 APÊNDICE D.................................................................................................................................................. 72 7.1.4. LPT_COMPLETO..................................................................................................................... 72 APÊNDICE E.................................................................................................................................................. 73 7.1.5. ESQUEMA ELÉTRICO CIRCUITO INFRAVERMELHO ........................................................ 73 APÊNDICE F .................................................................................................................................................. 74 7.1.6. ESQUEMA ELÉTRICO CIRCUITO LÂMPADA ...................................................................... 74 XI Índice de Figuras FIGURA 2.1: ESPECTRO ELETROMAGNÉTICO ........................................................................................................ 6 FIGURA 2.2: FORMAS DE TRANSMISSÃO DO INFRAVERMELHO ............................................................................. 8 FIGURA 3.1: PINOS DA INTERFACE SERIAL RS-232 ............................................................................................ 15 FIGURA 3.2: PINOS CONECTOR RS-232.............................................................................................................. 15 FIGURA 3.3: PINOS USADOS NO PROJETO ........................................................................................................... 17 FIGURA 3.4: CONEXÕES FÍSICAS DO CIRCUITO RECEPTOR INFRAVERMELHO ...................................................... 20 FIGURA 3.5: ILUSTRAÇÃO DAS CONEXÕES ENTRE OS COMPONENTES ................................................................. 20 FIGURA 3.6: PINOS DO REGULADOR DE TENSÃO 78L05 ..................................................................................... 21 FIGURA 3.7: PINOS DO RECEPTOR TSOP 1738 ................................................................................................... 22 FIGURA 3.8: REPRESENTAÇÃO DAS CONEXÕES EM UMA MATRIZ 5X5 ................................................................ 25 FIGURA 3.9: FOTO DO CIRCUITO MONTADO NO PROTOBOARD............................................................................ 26 FIGURA 4.1: PINOS DA INTERFACE PARALELA RS-232....................................................................................... 29 FIGURA 4.2: TRANSISTORES EM SÉRIE ORIGINANDO CORRENTE ......................................................................... 31 FIGURA 4.3: TRANSISTORES EM SÉRIE DISSIPANDO CORRENTE .......................................................................... 31 FIGURA 4.4: POLARIZAÇÃO DO LED ................................................................................................................... 32 FIGURA 4.5: LED................................................................................................................................................ 32 FIGURA 4.6: ESQUEMA DE CONEXÃO DA PORTA PARALELA AOS LEDS ............................................................... 33 FIGURA 4.7: ESQUEMA DE MONTAGEM DO CIRCUITO PARA AUTOMAÇÃO LÂMPADA.......................................... 35 FIGURA 4.8: ESQUEMA COM A MESMA FUNCIONALIDADE DO CIRCUITO ABORDADO ANTERIORMENTE .............. 36 FIGURA 4.9: FLUXOGRAMA ............................................................................................................................... 37 FIGURA 5.1: CONFIGURAÇÃO DO KERNEL ......................................................................................................... 40 FIGURA 5.2: CONFIGURAÇÃO DO KERNEL ......................................................................................................... 41 FIGURA 5.3: SCRIPT DE CONFIGURAÇÃO LIRC .................................................................................................. 42 FIGURA 5.4: CONFIGURAÇÃO DO DRIVER .......................................................................................................... 43 FIGURA 5.5: CONFIGURAÇÃO DO DRIVER .......................................................................................................... 43 FIGURA 5.6: CONFIGURAÇÃO DE ENDEREÇO ENTRADA/SAÍDA E INTERRUPÇÃO ................................................ 44 FIGURA 5.7: OPÇÃO PARA TRABALHAR APENAS COM O MÓDULO RECEPTOR ..................................................... 44 FIGURA 5.8: CONFIGURAÇÃO DO LIRC............................................................................................................... 45 FIGURA 5.9: COMPILAÇÃO E INSTALAÇÃO DO LIRC ........................................................................................... 46 FIGURA 5.10: ALTERAÇÃO DE PERMISSÃO ......................................................................................................... 47 FIGURA 5.11: ESPECIFICAÇÃO DO DRIVER E ENDEREÇAMENTO ......................................................................... 48 FIGURA 5.12: ESPECIFICAÇÃO DO DIRETÓRIO DAS BIBLIOTECAS ....................................................................... 49 FIGURA 5.13: DIAGRAMA DE BLOCOS LIRC ...................................................................................................... 52 FIGURA 7.1: ESQUEMA ELÉTRICO CIRCUITO INFRAVERMELHO........................................................................... 73 FIGURA 7.2: ESQUEMA ELÉTRICO CIRCUITO LÂMPADA ...................................................................................... 74 XII Índice de Tabelas TABELA 2.1: SUBDIVISÕES DO INFRAVERMELHO ................................................................................................. 7 TABELA 3.1: RELAÇÃO DE PINOS E FUNÇÕES DO PADRÃO RS-232..................................................................... 18 TABELA 4.1: RELAÇÃO DOS PINOS E BITS REFERENTES ...................................................................................... 33 XIII Índice de Equações EQUAÇÃO 2.1: NEP EQUAÇÃO 2.2: DETECTIVIDADE ESPECTRAL EQUAÇÃO 2.3: DETECTIVIDADE ESPECÍFICA EQUAÇÃO 2.4: RESPONSITIVIDADE 11 11 12 12 XIV Lista de Siglas e Nomenclaturas C - Common, Comum CMOS - Complementary Metal-Oxide Semiconductor, Semicondutor de MetalÓxido Complementar CTS - Clear to Send, Livre para enviar D - Detectividade Espectral D* - Detectividade Específica DCD - Data Carrier Detect, Detector de Portadora de Dados DCE - Data Communication Equipment, Equipamento de Comunicação de Dados DSR - Data Set Ready, Dados Prontos DTE - Data Terminal Equipment, Equipamento Terminal de Dados DTR - Data Terminal Ready, Terminal de dados Pronto FIR - Far Infrared, Infravermelho Distante GND - Ground, Terra GNU - General Public License, Licença Pública Geral I/O - Input/Output, Entrada/Saída IRDA - The Infrared Data Association, Associação de Dados Infravermelho IRQ - Interrupt Request, Requisição de Interrupção ISA - Industry Standard Architecture, Arquitetura Padrão de Indústria LIRC - Linux Infrared Remote Control, Controle Remoto Infravermelho Linux MIR - Medium Infrared, Infravermelho Médio XV NC - Normally Closed, Normalmente Fechado NEP - Noise Equivalent Power, Potência Equivalente ao Ruído NIR - Near Infrared, Infravermelho Próximo NO - Normally Open, Normalmente Aberto PCI - Peripheral Component Interconnect, Componente Periférico de Interconexão PCM - Pulse Codification Modulation, Modulação por Codificação de Pulso PDA - Personal Digital Assistants, Assitência Digital Pessoal R - Responsitividade RTS - Request to send, Pedido para enviar RxD - Received Data, Receptor de dados TTL - Transistor-Transistor Logic, Lógica Transistor-Transistor TxD - Transmitted Data, Transmissor de dados UART - Universal Asynchronous Receiver Transmitter, Receptor e Transmissor Assíncrono Universal XIR - Extreme Infrared, Infravermelho Extremo XVI 1. INTRODUÇÃO Este trabalho descreve como montar um circuito infravermelho de baixo custo para facilitar e automatizar tarefas cotidianas. Foram abordados conceitos sobre o funcionamento da tecnologia infravermelha bem como todo o processo de montagem do circuito, programação e aprendizagem do controle remoto além da customização do kernel do sistema operacional para a acoplagem do circuito. A aplicação prática de diversas matérias cursadas durante a faculdade foi de fundamental importância durante a implementação do protejo. Certas habilidades como a montagem de circuitos, soldagem em placas integradas foram aprimoradas durante esse período. O estudo durante todo o projeto, buscou sempre melhorar os resultados obtidos durante a execução de testes e implementar novidades. Além disso, várias dificuldades foram encontradas durante a implementação. Essas dificuldades são descritas sucintamente nas considerações finais da monografia. Essas dificuldades serviram para enriquecer o trabalho e descobrir realmente a causa dos problemas. O projeto tem um forte embasamento teórico e busca fornecer os passos necessários para a implementação do circuito receptor, mostrando algumas das possíveis aplicações que podem ser desenvolvidas. A monografia começa apresentando a teoria do infravermelho e seus conceitos fundamentais. Logo em seguida foram descritos o funcionamento das portas seriais e 1 paralelas, necessárias para o funcionamento dos circuitos receptor infravermelho e da aplicação que tem como função acender e apagar uma lâmpada através do controle remoto. No capítulo três é enfatizado a parte de montagem do circuito receptor propriamente dito. Nessa fase são descritos os componentes utilizados bem como o funcionamento desse hardware através do software livre LIRC. No capítulo quatro iniciou-se a fase de testes e as aplicações abordadas nessa monografia. A primeira a ser descrita é a possibilidade de controlar o cursor e ações do mouse pelo controle remoto, seguida pela execução de programas e o agendamento de scripts. Para finalizar, são apresentadas as soluções para a parte de automação com a montagem de um circuito capaz de acender e apagar uma lâmpada através de um botão do controle remoto. Já no capítulo cinco vem a descrição e o modo de instalação do software livre LIRC que faz a decodificação dos sinais recebidos pelo controle remoto. Neste capítulo ainda são descritos alguns dos principais programas do pacote LIRC. Por fim, são descritas algumas propostas para a continuação desse projeto. Além disso, na seção apêndices existem informações técnicas adicionais como códigos fontes de programas e arquivos de configuração do software LIRC. 2 1.1. MOTIVAÇÃO Neste projeto é apresentada uma proposta para controle e automação utilizando para isso um controle remoto infravermelho universal. Os principais fatores que motivaram a realização deste trabalho são os seguintes: • O controle de diversas aplicações sem a utilização de uma conexão por fios, permitindo uma maior mobilidade. • Utilização de plataforma com código livre licenciado pela GNU (General Public License, Licença Pública Geral). • O custo-benefício do projeto, já que os componentes utilizados na montagem do circuito são baratos em relação a gama de aplicações que podem ser desenvolvidas. • Consolidação dos conceitos adquiridos durante o curso de engenharia, como a montagem de circuitos. 1.1. OBJETIVOS Este trabalho tem como principais objetivos: 1. O funcionamento do circuito infravermelho e sua integração com o software livre LIRC. O circuito infravermelho captura os pulsos enviados pelo controle remoto enviando-os para o computador através da interface serial. O software LIRC decodifica esses pulsos, transformando-os em sinais válidos para que o computador possa processá-los e apresentá-los em tempo real. Para que isso fosse possível foi necessário o teste de hardware e software isoladamente. 3 2. Um segundo objetivo a ser alcançado é o funcionamento de algumas aplicações isoladas do mundo externo, ou seja, que dependa somente do circuito receptor montado e de aplicações existentes no servidor em questão. Tais aplicações são, por exemplo, o controle do cursor do mouse e consequentemente a possibilidade da apresentação de slides remotamente. A execução e manipulação de programas existentes, a execução de scripts e agendar atividades. 3. O último objetivo é com relação a aplicações conectadas ao mundo externo. Poderíamos citar inúmeras aplicações, mas o foco está voltado para o controle de uma lâmpada. Dessa forma, foi possível ao final da implantação do projeto controlar esse dispositivo através do controle remoto. Esse mesmo tipo de circuito pode ser usado como exemplo para diversos tipos de aplicações envolvendo eletroeletrônica. 4 2. 2.1. INFRAVERMELHO CONCEITOS INICIAIS O astrônomo William Herschel descobriu o infravermelho em 1800. William, sabendo que a luz solar continha todas as cores do espectro eletromagnético, queria saber qual cor era responsável pelo aquecimento dos objetos. Dessa forma, Herschel idealizou um experimento usando um prisma, papelão e termômetros com bulbos pretos, medindo as temperaturas de diferentes cores. Assim, concluiu que a temperatura mais elevada ocorria além da luz vermelha e que não era visível ao olho humano. Na época, chamou essa radiação invisível de “raios caloríficos” o que hoje é chamado de radiação infravermelha. “A radiação infravermelha, está localizada abaixo (por isso o termo “infra”) da faixa do vermelho na luz visível e acima de ondas de rádio no espectro eletromagnético”. 1 Energia infravermelha é uma luz invisível, pois seu comprimento de onda é muito longo para ser detectado pelo olho. Assim sendo, é a parte do espectro eletromagnético percebido como calor. Todos os objetos com temperatura acima de zero absoluta emitem calor, portanto podem ser detectados através da tecnologia infravermelha. A radiação infravermelha provoca vibração de átomos ou grupos de átomos em um composto. Estas vibrações podem ter amplitudes e velocidades diferentes, ocorrendo em torno das ligações covalentes que une os átomos, ou grupos de átomos. A radiação visível corresponde a uma estreita faixa do espectro eletromagnético. Para cada cor do espectro, está associado um comprimento de onda. Os comprimentos de 1 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.7 5 onda variam desde alguns poucos décimos de bilionésimos de metro, como é o caso das ondas emitidas pelo raio-x, até várias dezenas de quilômetros como é o caso de ondas de radio. Figura 2.1: Espectro eletromagnético Fonte: http://www.las.inpe.br/~cesar/Infrared/conceitos Os limites do infravermelho são o visível no lado de menor comprimento de onda e as microondas no lado de maior comprimento de onda. “Nós podemos notar que a região do infravermelho é dividida em três áreas: o infravermelho próximo, o intermediário, e o infravermelho distante. Essas divisões são arbitrárias em seus limites superiores e inferiores.” 2 Na tabela 2.1 são apresentadas as subdivisões do infravermelho de acordo com a faixa de comprimento de onda: 2 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.9 6 Tabela 2.1: Subdivisões do Infravermelho Fonte: http://www.las.inpe.br/~cesar/Infrared/conceitos “As origens da radiação infravermelha podem ser divididas em três grupos, baseados na sua massa: Partículas subatômicas cujas vibrações se enquadram no infravermelho próximo; Partículas atômicas cujas vibrações produzem radiação no infravermelho intermediário; Moléculas, nas quais as vibrações e rotações geram radiação no infravermelho distante.” 3 3 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.9 7 Para transmitir dados os sistemas infravermelhos utilizam freqüências muito altas, um pouco abaixo da luz visível no espectro eletromagnético. Igualmente à luz, o sinal infravermelho não pode penetrar em objetos opacos. Assim as transmissões por infravermelho são diretas ou difusas. Figura 2.2: Formas de transmissão do infravermelho Fonte: www.dc.ufscar.br/lsredes/material/Apresent3.pdf Este trabalho é focado no modo difuso e não direcionado, pois é assim que funciona para controles remotos e aparelhos de DVD, televisão, som e etc. O campo de visão do receptor não precisa ser direcionado e restrito a uma pequena linha imaginária reta com o emissor. Ambos precisam estar no mesmo ambiente. 8 2.2. INFRAVERMELHO WIRELESS O infravermelho Wireless é o uso da tecnologia sem fio, através da qual, ondas eletromagnéticas são responsáveis por transmitir sinais (dados) através do meio físico ar. A tecnologia Wireless infravermelho é usada para pequenas e médias distâncias de comunicação, podendo atingir até vinte metros dependendo das condições do ambiente, do transmissor e receptor utilizados. A largura de banda utilizada é a mesma tanto no emissor quanto no receptor. A comunicação é intermitente, diminuindo as possibilidades de interferência. 2.3. CARACTERÍSTICAS “Quando a energia infravermelha colide com algum material físico, a porção que é absorvida pelo corpo produz um efeito primário: Aumenta a energia de partículas atômicas e subatômicas da qual a matéria física é formada, o que podemos detectar como o fenômeno de aumento de temperatura. Essa mudança pode ser mensurada por um dos efeitos secundários, como a variação de características físicas (volume, pressão, etc.), ou características químicas (como em fotografia infravermelha), ou em propriedades elétricas (condutividade, coeficiente dielétrico, emissão secundária, etc.). A velocidade com que esses efeitos secundários se manifestam pode ser de algumas horas, necessárias para uma reação química ou de frações de nano segundos para uma segunda emissão”.4 4 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.30 9 2.4. DETECÇÃO E NEP Todos os parâmetros de detectores infravermelhos são medidos em cima de termos de ruído e sinal. Dessa forma, podemos dizer que os detectores podem ser sensíveis ou não a certos ruídos. Os sensores são sensíveis quando técnicas de cancelamento de ruído devem ser aplicadas para uma correta interpretação do sinal válido. As técnicas são as seguintes: • O sinal deve ser de uma natureza repetitiva, ou seja, pulsos de mesma característica, repetidos em uma determinada freqüência. • A existência de uma técnica para cancelar ruídos. Isso é feito através de um equipamento chamado de Analisador de Junção Semicondutor. Pode-se então considerar que “um detector pode detectar somente sinais cuja magnitude é maior que o ruído gerado por si próprio” 5. Conseqüentemente, o nível de ruído se torna o fator limitante, ou seja, quanto menor o ruído gerado pelo receptor, menor será o nível de sinal que ele pode detectar. NEP (Noise Equivalent Power, Potência Equivalente ao Ruído) é a potência do sinal quando esta se iguala à potência do ruído. Assim, quanto menor o valor de NEP, maior será a sensibilidade do detector. 5 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.32 10 NEP = φ inc Vs Vn (W ) (Eq. 2.1) Equação 2.1: NEP Onde, φ inc é a potência radiante incidente (W); Vs é a tensão rms do sinal de saída (V); Vn é a tensão rms produzida pelo ruído (V); Detectividade espectral (D) é o inverso de NEP. Essa fórmula foi criada com a finalidade de aumentar-se a magnitude com a melhoria da performance, ou seja, quanto maior o valor da detectividade espectral, maior será a sensibilidade do detector. D= 1 NEP (W ) −1 (Eq. 2.2) Equação 2.2: Detectividade espectral Onde, D é a detectividade espectral; NEP é a Potência Equivalente ao Ruído dada na fórmula anterior; Considerando a dependência do desempenho de um detector em relação a sua área ( AD ) e a faixa de ruído, normaliza-se a detectividade espectral e utiliza-se a detectividade específica (D*). 11 D * = D AD (cmHz 12 W −1 ) (Eq. 2.3) Equação 2.3: Detectividade específica Onde, D* é a detectividade específica; D é a detectividade espectral; AD é a área do detector; “Responsitividade de um detector é definido como a habilidade de converter radiação em um sinal de tensão de saída. A medida é indicada como R . É expressa em relação à tensão de saída (rms) por watt de radiação incidente.” 6 R= D *V n AD ∆ f (Eq. 2.4) Equação 2.4: Responsitividade Onde, R é a responsitividade; D* é a detectividade específica; Vn é a tensão rms produzida pelo ruído; AD é a área do detector; ∆ f é a largura de banda; 6 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.33 12 3. CIRCUITO INFRAVERMELHO Nesse capítulo foi enfatizada a montagem do circuito receptor infravermelho e o modo de funcionamento. Antes de seguir para a montagem do circuito, se faz necessário o aprendizado de alguns conceitos importantes sobre a comunicação entre o circuito e o microcomputador através do padrão RS-232. 3.1. PADRÃO RS-232 RS-232, também chamado de conexão serial, é um padrão para a troca de dados binários entre um DTE (Data Terminal Equipment, Equipamento Terminal de Dados) e um DCE (Data Communication Equipment, Equipamento de Comunicação de Dados). Pode utilizar tanto conectores DB9 (nove pinos) como conectores DB25 (vinte e cinco pinos). O padrão de velocidade para cabos de até 15 metros é de até 115200 bits por segundo. No protocolo de comunicação RS-232, caracteres são enviados como conjunto de bits. A codificação mais usada é o “start-stop assíncrono” que usa um bit de início, seguido por sete ou oito bits de dados, um bit de paridade e mais um ou dois bits de parada, precisando de no mínimo dez bits para enviar um caractere. Por isso é necessário dividir por dez a taxa de transmissão para obter a velocidade de transmissão. Esse tipo de comunicação é definido na categoria “single-ended” e foi introduzida no mercado em 1962. Canais independentes são estabelecidos em dois caminhos (Full-Duplex). Os sinais RS232 são representados por níveis de voltagem através 13 da presença de tensão ou ausência dela. O estado “pronto” tem o nível de sinal negativo e o estado “ativo” tem o sinal positivo. A interface RS-232 pressupõe um aterramento comum entre o dispositivo terminal de dados (DTE) e o dispositivo de comunicação (DCE). Isso é válido para conexões em pequenas distâncias. Os dados desse tipo de comunicação são bipolares, o que significa que na faixa entre +3 Volts e + 12 Volts corresponde ao estado ligado (zero lógico) enquanto que na faixa entre -3 Volts e -12 Volts corresponde ao estado desligado (um lógico). Os computadores atualmente, têm a capacidade de ignorar níveis de tensão negativos e aceitam 0 Volts como desligado. Efetivamente, esses computadores precisam de tensões positivas menores do que 3 Volts para entrar em estado lógico igual a zero. Dessa forma, qualquer circuito de 5 Volts com corrente direta (DC) pode alimentar diretamente circuitos RS-232. O sinal de saída da porta serial nos computadores geralmente varia de +12 Volts a -12 Volts, contudo essa valor não é válido para a maioria dos laptops que possuem uma saída entre +6 Volts e -6Volts. Nesse intervalo existe a chamada área morta (geralmente entre -2 Volts e +2 Volts), designada para absorver os ruídos da linha. Nessa área não existe presença nem ausência de pulsos. Os chips típicos da interface RS-232, também chamados de UARTs (Universal Asynchronous Receiver Transmitter, Receptor e Transmissor Assíncrono Universal) permitem até 50 miliamperes (mA) de corrente por pino de saída (output), portanto se o dispositivo a ser conectado precisar de mais de 50 miliamperes (mA) de corrente será necessário usar no mínimo 2 pinos como fonte. Esse não é o caso do circuito receptor infravermelho que precisa de apenas 5 Volts para operar e uma corrente de um pouco mais de 1 miliampere (mA). 14 O conector DB9, utilizado pelo padrão RS-232, é demonstrado na Figura 3.1 com as funções de cada pino: Figura 3.1: Pinos da interface serial RS-232 Fonte: http://www.arcelect.com/rs232.htm Figura 3.2: Pinos conector RS-232 Fonte: http://www.arcelect.com/rs232.htm Pino 1 – Data Carrier Detect – Detector de portadora de dados. Esse pino é responsável por detectar os sinais transmitidos pelo controle remoto. Indica se uma boa 15 portadora está sendo recebida pelo DCE (Data Communication Equipment, Equipamento de Comunicação de Dados). Pino 2 – Received Data – Receptor de dados. Esse pino é responsável por receber dados de um dispositivo DCE (Data Communication Equipment, Equipamento de Comunicação de Dados). Não será usado no projeto, pois não existe a necessidade de se receber dados do controle, mas apenas pulsos. Pino 3 – Transmitted Data – Transmissor de dados. A função desse pino é transmitir dados para um dispositivo DCE (Data Communication Equipment, Equipamento de Comunicação de Dados). Pino 4 – Data Terminal Ready – Terminal de dados Pronto – Esse pino indica quando o DTE (Data Terminal Equipment, Equipamento Terminal de Dados) está pronto para transmitir dados. Pino 5 – Signal Ground – Sinal de Terra. Responsável pelo aterramento do circuito. Pino 6 – Data Set Ready – Pino responsável por indicar se o DCE (Data Communication Equipment, Equipamento de Comunicação de Dados) está pronto para enviar e receber dados. Pino 7 – Request to Send – Pedido para enviar – Esse pino é responsável por alimentar o circuito conectado na porta serial. Geralmente a alimentação é entorno de 10 a 12 Volts. Pino 8 – Clear to Send – É o pino responsável por indicar se a transmissão pode proceder. Pino 9 – Ring Indicator – Pino responsável por detectar uma chamada telefônica. Este sinal é utilizado por modems que trabalham com linha discada. 16 Para o projeto, não foi necessário a utilização de todos os pinos. Os pinos usados pelo conector foram os seguintes: Figura 3.3: Pinos usados no projeto Fonte: http://www.arcelect.com/rs232.htm • Pino 5 (GND) – Terra • Pino 7 (RTS) – Fonte de tensão positiva • Pino 1 (DCD) – Sinal 17 O pino DCD é responsável pela presença ou ausência de sinal, que é detectado pelo dispositivo receptor. A alimentação do circuito fica por conta do pino RTS. Essa alimentação é de 12 Volts (no computador usado durante o projeto) e precisa ser estabilizada em 5 Volts para alimentar o circuito. Por último o pino Terra (GND) é o aterramento comum tanto para o computador (DTE) como para o circuito receptor (DCE) e por essa razão se os equipamentos estiverem muito longe, com diferentes fontes de energia, o aterramento se degradará entre os dois dispositivos e a comunicação irá falhar. Na tabela 3.1 são demonstrados os principais pinos dos conectores DB9 e DB25, suas nomenclaturas e siglas referentes: Tabela 3.1: Relação de pinos e funções do padrão RS-232 Fonte: http://www.lirc.org Sigla TxD RxD RTS CTS DSR GND DCD DTR 25 Pinos 2 3 4 5 6 7 8 20 9 Pinos 3 2 7 8 6 5 1 4 Função Transmite dados Recebe dados Fonte Transmissão procede DCE pronto para enviar e receber Terra Portadora DTE pronto para transmitir 18 3.2. CIRCUITO/HARDWARE O circuito eletrônico pode ser montado facilmente sem grandes custos, possibilitando que qualquer usuário caseiro que tenha curiosidade ou pensa em facilitar as tarefas cotidianas tome a iniciativa para a montagem do circuito. Antes de descrever a montagem do circuito deve-se ressaltar que o driver da porta serial do software LIRC suporta apenas chips do tipo UART (Universal Asynchronous Receiver Transmitter, Receptor e Transmissor Assíncrono Universal) compatíveis com o padrão 8250. UART é o chip responsável por tratar comunicações seriais assíncronas. Os registradores compatíveis com o padrão 8250 geram interrupções para cada caractere enviado ou recebido, que basicamente informa ao processador que existe um dado a ser processado ou para alimentá-lo. Existem no mercado diversos tipos de receptores infravermelhos, sendo que o utilizado no projeto foi o Vishay TSOP 1738. Esse receptor que trabalha com a freqüência de 38 kHz está na faixa de operação do controle remoto usado. Na maioria dos casos esse valor fica por volta de 36 kHz a 38 kHz. Além do receptor são necessários os seguintes componentes: Um capacitor de 4,7 Microfarad (µF); um diodo 1N4148 que protege o circuito de tensão negativa; um resistor de 4,7 quiloohms (Kohm) que tem como objetivo manter a linha DCD em uma tensão válida se o receptor não receber nenhum sinal; um regulador de tensão 78L05 que irá converter a tensão de entrada em exatamente 5 Volts para que o circuito possa operar. As ligações do circuito são ilustradas na Figura 3.4. 19 Figura 3.4: Conexões físicas do circuito receptor infravermelho Fonte: http://www.lirc.org Para melhor exemplificar os componentes utilizados, a Figura 3.5 demonstra como as conexões foram feitas: Figura 3.5: Ilustração das conexões entre os componentes Fonte: http://www.lirc.org É importante prestar atenção nos pinos do regulador de tensão para que o circuito seja montado corretamente. O pino terra é o intermediário (2) e deve ser ligado em 20 série ao pino terra do receptor e ao pino terra (GND) do conector serial. O pino de entrada (3) deve ser ligado em série ao diodo. Já o de saída (1) será conectado ao pino correspondente à alimentação (Vcc+) do receptor. A Figura 3.6 mostra os pinos referentes: Figura 3.6: Pinos do regulador de tensão 78L05 Fonte: http://www.tranzistoare.ro/datasheets/150/9358_DS.pdf 21 Pino 1 – Tensão de saída – Conectado em série ao pino de alimentação do receptor TSOP 1738 (Vcc+). Pino 2 – Terra – Conectado em série ao terra do receptor (GND) e ao pino terra do conector serial (Pino 5 – GND). Pino 3 – Tensão de entrada – Conectado em série ao diodo, que protege o circuito de tensões negativas. Os pinos relativos ao receptor TSOP 1738 são: Terra que é ligado ao pino terra da porta serial do microcomputador. O pino de alimentação (Vs) do receptor é o intermediário e deve ser conectado à saída do regulador de tensão. O último pino é relativo aos sinais (pulsos) que serão recebidos pelo controle remoto. Esse pino deve ser ligado em série com o resistor e o pino DCD da porta serial. Figura 3.7: Pinos do receptor TSOP 1738 Fonte: http://irdeo.de/82030.pdf 22 3.2.1. Características TSOP 1738 Existem vários tipos de detectores específicos para os mais variados tipos de aplicações infravermelhas. Os detectores quânticos ou fóton detectores são importantes pois serão tratados na implementação física do circuito. “Esses detectores são dispositivos semicondutores cujas características elétricas são uma função do número de cargas que se tornaram disponíveis pela divisão de pares de elétrons causada pela colisão de fótons no material semicondutor.” 7 Os receptores infravermelhos Vishay TSOP 1738 são próprios para sistemas de controle remoto infravermelho. O pino diodo é um semicondutor que opera como um resistor entre a rádio freqüência e freqüências de microondas. O sinal de saída do receptor pode ser diretamente decodificado por um microprocessador. Esse tipo de receptor suporta a maioria dos códigos de transmissão. Algumas de suas características principais são: A capacidade de ser um foto detector e um pré-amplificador ao mesmo tempo, possuir um filtro interno para freqüências. PCM (Pulse Codification Modulation, Modulação por Codificação de Pulso), proteção contra distúrbios elétricos, compatibilidade com tecnologias TTL (transistor-transistor logic, lógica transistor-transistor) e CMOS (complementary metal-oxide semiconductor, semicondutor de metal-óxido complementar), baixo consumo de energia, alta imunidade em ambientes com muita iluminação, transmissão de dados contínua (acima de 2400 bits/segundo). 7 Vanzetti Riccardo. Practical Applications of Infrared Techniques. New York: John Wiley & Sons, Inc., 1972. p.45 23 3.2.2. Funcionamento A primeira característica a ser levada em conta é que a largura de banda utilizada pelo sistema infravermelho é a mesma tanto no emissor quanto no receptor. A comunicação é intermitente, diminuindo as possibilidades de interferência. Além disso, existe o fator de limitação por parte dos receptores, sendo que os mais sensíveis podem atingir o alcance de até 20 metros dependendo das condições do ambiente. O circuito é alimentado através da porta serial do microcomputador no pino RTS (Request to Send, Requisição para enviar). O diodo protege o circuito de tensões negativas. O driver instalado na porta serial através do software LIRC muda as características da porta serial durante sua inicialização para que o circuito consiga a tensão positiva necessária para seu funcionamento. Na maioria dos microcomputadores a tensão na porta serial é de aproximadamente 10 Volts. O papel do regulador de tensão é fazer com que essa tensão de entrada se transforme em exatamente 5 Volts. Como a tensão de entrada no regulador 78L05 deve ser no mínimo 2 Volts maior que a tensão de saída, em alguns casos quando a tensão de entrada for menor ou igual a 7 Volts esse circuito não irá funcionar, como é o caso de alguns laptops que possuem tensão de entrada igual ou menor a 6 Volts. Caso a tensão de entrada seja baixa, a solução é trocar o regulador de tensão citado por um regulador de baixa perda, ou seja, esses reguladores conseguem fornecer a tensão de 5 Volts necessária para alimentação do circuito através de uma tensão de entrada no valor de 6 ou 7 Volts. 24 Quando um pulso é transmitido do controle remoto para o circuito infravermelho, o receptor detecta o sinal e puxa o sinal DCD para terra. Essa ausência de tensão é interpretada como um sinal lógico 1 (DCD=0) pela porta serial do microcomputador. Na ausência de pulso (sinal), o resistor mantém o sinal do pino DCD em um nível de tensão válido, o que representa o sinal lógico 0. Cada botão de um controle remoto possui pulsos diferentes, sendo assim a seqüência de “0”s e “1”s será diferente para cada pulso permitindo com que o software possa aprender o que cada botão corresponde em termos de seqüência binária. A diferença de tensão no circuito varia de 0 Volts a 5 Volts. Para uma matriz de contatos ou protoboard 5x5 temos o seguinte esquema de ligações: Figura 3.8: Representação das conexões em uma matriz 5x5 Fonte: http://www.lirc.org Após o término da montagem, o circuito receptor infravermelho teve sua configuração conforme a foto ilustrada na Figura 3.9. 25 Figura 3.9: Foto do circuito montado no protoboard Fonte: Autor 26 4. AUTOMAÇÃO Neste capítulo são abordadas algumas aplicações para o circuito receptor infravermelho. A intenção é fazer com que algumas tarefas cotidianas sejam automatizadas com o uso do controle remoto. 4.1. Aplicações A primeira aplicação para o circuito receptor infravermelho será o controle do cursor do mouse através do controle remoto. Através dessa funcionalidade será possível realizar apresentações de slides remotamente. Outra aplicação é executar programas, scripts, agendar tarefas e até mesmo desligar o computador através de um botão préprogramado. Já na parte de controle de equipamentos externos será apresentado primeiro o controle de leds conectados à porta paralela do computador. Em automação, ampliaremos esse circuito para controlarmos equipamentos como motores, eletrodomésticos e eletroeletrônicos. A automação a ser demonstrada será o controle de uma lâmpada através do circuito proposto. 4.2. Cursor do mouse A primeira aplicação é controlar o cursor do mouse e seus comandos através do controle remoto. Uma das vantagens é poder passar apresentações de slides sem precisar ficar ao lado do computador. As apresentações se tornam mais dinâmicas e interessantes, podendo ser apresentadas com a interação da platéia. 27 O software lircmd que acompanha o pacote LIRC é responsável por traduzir os comandos do controle remoto em movimentos do mouse. Ele faz isso através da simulação da porta do mouse. Todos os programas que acompanham o software livre LIRC, necessários para o funcionamento da interface do circuito com o computador serão descritos no próximo capítulo. 4.3. Interface Paralela Quando se fala em interface paralela (padrão RS-232) logo se pensa em um único hardware: a impressora. Além da impressora é possível controlar vários tipos de circuitos através da porta paralela. É preciso ter cuidado ao montar circuitos conectados à interface paralela do computador, pois com pequenos erros essa pode vir a ser danificada. Se a porta paralela for integrada com a placa mãe e por algum motivo essa interface vir a ser danificada, o custo para repará-la pode ser muito alto, compensando às vezes até mesmo substituir toda a placa mãe do computador. Por tudo isso, o recomendado é que se compre uma placa ISA (Industry Standard Architecture, Arquitetura Padrão de Indústria) ou PCI (Peripheral Component Interconnect, Componente Periférico de Interconexão) com suporte à interface paralela. Caso algum erro ocorra e a placa seja danificada, o custo será muito menor para adquirir outra placa. O conector da interface paralela possui 25 pinos que na maioria das vezes não serão usados em todos os tipos de hardwares. Muitas vezes, bastam alguns pinos de saída (dados) e pinos referentes à terra para montar variados tipos de circuitos com diversas funcionalidades. 28 Na Figura 4.1 pode-se visualizar a funcionalidade dos pinos da porta paralela. Figura 4.1: Pinos da interface paralela RS-232 Fonte: http://www.linhadecodigo.com.br/artigos/img_artigos/eric_cavalcanti/paralela1.gif Registrador de dados (Data Lines) – Os pinos 2 a 9 são controlados pelo registrador de dados (saída de dados). Através desses pinos pode-se controlar lâmpadas, leds, equipamentos eletrodomésticos, motores e as mais variadas aplicações eletrônicas. Através desse registrador é possível enviar dados do computador para o mundo externo (hardware ligado à porta paralela). O endereço correspondente a esse registrador é o seguinte: 888 (Decimal) ou 378h (Hexadecimal). Registrador de Status (Status Lines) – Esse registrador permite que seja possível receber dados de equipamentos conectados à interface paralela. Seu endereço é o seguinte: 889 (Decimal) ou 379h (Hexadecimal). Registrador de controle (Control Lines) – Tem como função controlar a impressora, embora também seja possível enviar dados para outros tipos de hardware. Tem como endereço: 890 (Decimal) ou 37AH (Hexadecimal). Os pinos 18 a 25 são usados como terra. Os pinos controlados pelo registrador de dados operam com tensão de 5 Volts. Dessa forma podemos acionar um desses pinos passando de nível lógico 0 (0 Volts) para 29 nível lógico 1 (5 Volts). A capacidade de corrente na porta paralela é limitada para poucos miliamperes. Os pinos em questão podem tanto dissipar quanto originar corrente. Esses pinos podem originar até 2,6 miliamperes e dissipar uma corrente de até 24 miliamperes. Eles são formados basicamente por dois transistores empilhados em série entre +5 Volts e terra, sendo que a saída vem da conexão entre eles. A qualquer momento um desses transistores está conduzindo enquanto o outro não conduz. Para colocar a saída em nível lógico elevado (nível 1), o transistor localizado entre a tensão +5 Volts e a saída conduz, o que origina corrente positiva da saída (output) para terra. Sendo assim, o dispositivo externo conectado entre um dos pinos de saída e um pino terra será energizado. 30 Originando corrente – Nível lógico igual a 1: +5 Volts (Ligado) Alto (Ligado) Saída (Desligado) Baixo Terra Figura 4.2: Transistores em série originando corrente Fonte: Autor Já para colocar a saída em nível lógico baixo (nível 0), somente o transistor localizado entre o terra e a saída conduz, dissipando a corrente para terra. Dissipando corrente – Nível lógico igual a 0: +5 Volts (Desligado) Alto Saída (Ligado) Baixo Terra Figura 4.3: Transistores em série dissipando corrente Fonte: Autor 31 4.4. Circuito Led Esse circuito é muito simples de ser montado e os únicos componentes necessários são um resistor de 470 ohms e um led que serão conectados em série. O resistor serve apenas para limitar a corrente retirada da porta paralela para um valor aceitável, fazendo com que o led acenda sem sobrecarregar o chip da porta paralela. Um dos pinos de saída é conectado em série com o resistor que por sua vez é ligado ao ânodo do led. O cátodo é ligado diretamente a algum pino terra. Figura 4.4: Polarização do led Fonte: http://www.clubedohardware.com.br/artigos/1147/3 Figura 4.5: Led Fonte: http://en.wikipedia.org/wiki/LED 32 Dessa forma o esquema a ser montado é o seguinte: Figura 4.6: Esquema de conexão da porta paralela aos leds Fonte: http://www.epanorama.net/circuits/parallel_output.html O controle dos leds é bastante simples. Ao ativar algum dos pinos correspondente ao registrador de dados a tensão entre este pino e qualquer pino aterrado será igual a 5 Volts, fazendo com que o led fique energizado. Para manipular, por exemplo, o pino 2 (D0), o comando deve enviar uma saída igual a 1 (Decimal) para habilitá-lo. Dessa forma, o sinal binário enviado será o byte 00000001. Esse sinal habilita o sinal do primeiro pino (D0) e desabilita todos os pinos restantes. Da mesma forma, para habilitar apenas o segundo pino, a saída deve ser acompanhada do número 2 (Decimal), e o byte fica da seguinte forma 00000010. Para desabilitarmos todos os pinos a saída deve ser igual a zero. O programa para que esta estrutura funcione é exemplificado no apêndice D. Assim temos a seguinte relação: Tabela 4.1: Relação dos pinos e bits referentes Fonte: Autor Byte Pino Decimal Bit 8 D7 128 Bit 7 D6 64 Bit 6 D5 32 Bit 5 D4 16 Bit 4 D3 8 Bit 3 D2 4 Bit 2 D1 2 Bit 1 D0 1 33 4.5. Circuito Lâmpada O circuito com uma lâmpada já é mais complexo e necessita de maiores precauções, já que este é ligado direto à rede elétrica de 110 ou 220 Volts. Essa aplicação já pode ser considerada como uma automação. As pessoas podem ter a comodidade de acender e apagar as luzes de qualquer ambiente da casa sem precisar se deslocar e podem programar através do controle remoto um horário para que todas desliguem, ou ainda, essas tarefas podem ser realizadas remotamente através da internet, bastando que o servidor tenha conexão com a internet. O circuito a ser demonstrado pode servir de exemplo para outras aplicações. É possível controlar outros tipos de aparelhos como eletrodomésticos, robôs e eletroeletrônicos. O princípio será o mesmo, sempre necessitando de um relé para ativar (chavear) o circuito em questão. Como a porta paralela trabalha com uma tensão de 5 Volts e correntes muito baixas são necessário outras fontes de alimentação para essas automações. O relé age como uma chave. Os três pinos que descrevem seu funcionamento são descritos a seguir. • Normally Open (NO). • Normally Closed (NC). • Common (C). 34 O relé simplesmente abre e fecha um circuito elétrico, não originando energia de forma alguma. Quando um relé está desenergizado (desligado) existe uma conexão elétrica entre os pinos Normally Closed (NC) e Common (C), não existindo conexão entre os pinos Normally Open (NO) e Common (C). A partir do momento em que o relé é energizado (ligado), a conexão entre os pinos Normally Open (NO) e Common (C) é estabelecida, fazendo com que o circuito conectado ao pino NO seja alimentado. No caso da lâmpada, se faz necessário ligar o fio positivo da rede elétrica 110/220 Volts junto ao pino Common (C). Já o pino Normally Open (NO) será ligado à parte positiva do bulbo da lâmpada. O neutro do bulbo da lâmpada é ligado diretamente ao neutro da rede elétrica. Quando o relé for ligado, o pino Normally Open (NO) fechará uma conexão com o pino Common (C), fazendo com que a energia flua pelo bulbo. O circuito composto pelo relé e o transistor é demonstrado na Figura 4.7. Figura 4.7: Esquema de montagem do circuito para automação lâmpada Fonte: http://www.rogercom.com/pparalela/introducao.htm 35 • Um circuito integrado 74LS541 para proteger a porta paralela de altas correntes. • Um led verde para sinalizar que o circuito do relé está ativado. • Um diodo 1N4148 em paralelo com o relé para prevenir picos de tensão. • Um resistor de 2,2 Kohms para proteger o transistor de correntes elevadas. • Um resistor de 470 Ohms para limitar a corrente que passa pelo led. • Um transistor BD 137 para realizar o chaveamento entre os circuitos. • Um relé de 12 Volts na bobina que suporte até cargas de 220 Volts/10A. • Uma fonte de alimentação estabilizada de 12 Volts para alimentar o relé. Outra forma de montar um circuito semelhante é a seguinte: Figura 4.8: Esquema com a mesma funcionalidade do circuito abordado anteriormente Fonte: Autor 36 No circuito apresentado na Figura 4.8, ao invés de usarmos o circuito integrado para proteger a porta paralela de altas correntes, usamos dois diodos 1N4148 entre o pino de saída e terra. Dessa forma, ao receber o sinal do pino de dados, o transistor fecha o circuito do relé (coletor) com o terra (emissor). Quando a corrente que passa pelo relé é retirada, esse gera um grande pico de tensão já que sua indutância é altíssima. O diodo em paralelo com o relé previne picos de tensão (gerados pelo relé) de danificar o computador. 4.6. Fluxograma Figura 4.9: Fluxograma Fonte: Autor 37 5. LIRC – LINUX INFRARED REMOTE CONTROL O software livre LIRC (Linux Infrared Remote Control, Controle Remoto Infravermelho Linux) inicialmente escrito por Ralph Metzler e atualmente mantido por Christoph Bartelmus, tem como principal objetivo decodificar e enviar sinais infravermelhos dos mais variados tipos de controles remotos. O processo principal do software LIRC é o daemon lircd que irá decodificar os sinais infravermelhos recebidos pelo driver da porta serial e prover esta informação de forma que o processador possa interpretá-la. Além disso, o software aceita comandos para que sinais infravermelhos sejam enviados. Através do LIRC é possível controlar o computador pelo controle remoto, tornando possíveis as mais diversas aplicações como as citadas em capítulos anteriores. 38 5.1. Instalação do pacote LIRC Para o correto funcionamento do software é necessária certa atenção e compreensão do processo de instalação do pacote. Essas instruções são citadas a seguir. 5.1.1. Dependências Alguns pacotes são necessários que já estejam instalados para que o programa LIRC obtenha sucesso na sua instalação. Para executar o script de instalação é necessário que o sistema operacional possua o pacote dialog. Com esse script de instalação o processo se torna mais fácil e compreensível. Para compilar e usar todas as ferramentas disponíveis é necessário que se tenha instalado o pacote svgalib. Caso no momento da instalação esteja faltando algum pacote de dependência, o script de instalação notificará o usuário quais arquivos estão faltando e consequentemente as devidas ferramentas não serão compiladas. Antes de iniciar a instalação é necessário que o kernel do sistema operacional seja recompilado. O arquivo fonte deve ser independente de qualquer distribuição Linux, pois durante a compilação e instalação do software, o arquivo Makefile e a configuração do kernel irão corrigir qualquer problema que possa vir a ocorrer. O link www.kernel.org permite adquirir os arquivos fontes das mais variadas versões de kernel. No projeto, a versão de kernel utilizada é a 2.4.22, considerada estável. É recomendado que no momento da recompilação do kernel, o driver da porta serial seja compilado como um módulo do kernel, pois normalmente o driver da porta serial é carregado no momento que é identificado, fazendo com que os módulos do LIRC não 39 possam utilizá-lo. A opção Standard/generic (8250/16550 and compatible UARTs) serial support deve ser configurada como módulo, para que os módulos do LIRC sejam carregados antes do driver da porta serial. Outra solução para isso é usar o comando setserial /dev/ttySx uart none para liberar a porta para uso do LIRC. Antes de compilar o software LIRC é necessário escolher qual driver utilizar. O script setup.sh facilita essa tarefa. Após escolher o driver é só salvar a configuração e compilar o software. Caso o pacote dialog não esteja instalado será necessário configurar os parâmetros manualmente através do comando ./configure (parâmetros). Na Figura 5.1 é demonstrado a opção de menu que deve ser configurada para habilitar o suporte ao módulo Standard/generic (8250/16550 and compatible UARTs) serial support. Figura 5.1: Configuração do Kernel Fonte: Autor 40 Na Figura 5.2 é mostrado o referido driver da porta serial configurado como módulo (M). Figura 5.2: Configuração do Kernel Fonte: Autor 5.1.2. Instalação Depois de compilado, para instalar o programa com as configurações realizadas basta digitar o comando make install Todos os arquivos binários e módulos são instalados nos locais padrões. Os dispositivos são gerados no diretório /dev. As próximas figuras demonstram as telas de configuração, compilação e instalação do software LIRC a partir do srcipt setup.sh. 41 Figura 5.3: Script de configuração LIRC Fonte: Autor 42 Figura 5.4: Configuração do driver Fonte: Autor Figura 5.5: Configuração do driver Fonte: Autor 43 Figura 5.6: Configuração de endereço Entrada/Saída e Interrupção Fonte: Autor Figura 5.7: Opção para trabalhar apenas com o módulo receptor Fonte: Autor 44 Depois de tudo configurado o próximo passo é salvar a configuração e compilar o software através da opção save configuration & run configure. Figura 5.8: Configuração do Lirc Fonte: Autor 45 Para compilar e instalar o software, após sua configuração deve-se digitar os comandos make e make install respectivamente. Figura 5.9: Compilação e instalação do Lirc Fonte: Autor O lircd (LIRC System Daemon, Daemon do Sistema LIRC), principal programa do software LIRC executa todo o trabalho de decodificar sinais infravermelhos. Além disso, o pacote possui um segundo daemon chamado lircmd que decodifica os comandos do controle remoto para movimentos do mouse. Por padrão, esses daemons não são principiados quando o sistema operacional é iniciado. Portanto, para não ter que executar toda vez que o computador seja iniciado, o ideal é que seja criado um script de iniciação para os daemons. 46 O próximo passo é configurar o dispositivo /dev/lircd (Socket para comunicação com o lircd) com as permissões para que outros usuários possam se conectar ao lircd. As permissões são alteradas utilizando-se o comando chmod 666 /dev/lircd. Isso faz com que qualquer usuário do sistema operacional possa utilizar o socket. Figura 5.10: Alteração de permissão Fonte: Autor O driver deve ser especificado no arquivo /etc/modules.conf. adicionando o seguinte parâmetro: alias char-major-61 lirc_serial Para especificar endereço IRQ (Interrupt Request, Requisição de Interrupção) e I/O (Input/Output, Entrada/Saída) para o driver da porta serial deve ser adicionada a seguinte linha no arquivo /etc/modules.conf.: options lirc_serial irq=4 io=0x3f8 47 Figura 5.11: Especificação do driver e endereçamento Fonte: Autor Os valores IRQ (Interrupt Request, Requisição de Interrupção) e I/O (Input/Output, Entrada/Saída) mudam de acordo com as portas seriais que estão em uso. Esses valores podem ser encontrados no CMOS (complementary metal oxide semiconductor, Semicondutor complementar de óxido metal) ou no diretório /proc do sistema de arquivo. Para complementar a configuração, é necessário adicionar a linha /usr/local/lib em /etc/ld.so.conf e executar o comando ldconfig. Esse arquivo especifica diretórios padrões adicionais, que são usados como links para localizar bibliotecas compartilhadas durante a execução do programa. 48 Figura 5.12: Especificação do diretório das bibliotecas Fonte: Autor 5.1.3. Teste Para testar o hardware, o programa mode2 deve ser executado. Esse programa carrega o driver da porta serial e mostra os sinais infravermelhos na tela em forma de pulsos e espaços. A partir do momento em que o programa está em execução é necessário que alguns botões do controle remoto sejam pressionados para verificar se o circuito foi montado de forma correta. Caso não apareça nenhum sinal de saída na tela, os procedimentos são: Verificar primeiramente se o driver escolhido foi o correto com os parâmetros certos, em seguida verificar se controle remoto está funcionando corretamente e finalmente verificar se o circuito infravermelho está funcionando. 49 Para executar o daemon lircd, basta rodar o comando lircd /etc/lircd.conf, onde se encontra o arquivo de configuração do controle remoto. Se o controle remoto a ser usado já possuir um arquivo de configuração, basta copiá-lo para o diretório /etc com o nome lircd.conf. Caso não exista o arquivo para o controle em questão, o programa irrecord deve ser usado para “ensinar” o LIRC a entender o controle. Este programa deve ser executado sem que o daemon princial lircd esteja em execução. O programa é auto-explicativo e pedirá para apertar cada botão do controle informando os nomes correspondentes. 5.1.4. 5.1.4.1. Programas LIRC LIRCD Daemon que decodifica sinais infravermelhos provendo uma interface uniforme para diversas aplicações. A conexão com o daemon é feita através do socket /dev/lircd. 5.1.4.2. LIRCMD Traduz sinais infravermelhos em eventos do mouse. Esse daemon pode simular os seguintes protocolos usados por diversos tipos de mouse: MouseSystems, IntelliMouse e IMPS/2. Seu trabalho é o de capturar os botões recebidos pelo lircd e convertê-los em movimentos e ações do mouse. Para que isso se torne possível é necessário criar um arquivo de configuração somente para os eventos do mouse. Esse arquivo é o lircmd.conf. 50 5.1.4.3. IREXEC Tem a finalidade de executar programas ao pressionar um botão. Ao escolher esse programa para ser executado alguns outros parâmetros de configuração devem ser definidos de acordo com a necessidade. 5.1.4.4. IRCAT Imprime caracteres de acordo com a configuração. 5.1.4.5. IRRECORD Esse programa é fundamental para aprendizagem do controle remoto. O programa é auto-explicativo e pedirá para apertar cada botão do controle informando os nomes correspondentes. Dessa forma, é possível criar o arquivo de configuração do controle remoto caso não exista no diretório contrib. 5.1.4.6. MODE2 Esse programa mostra o tamanho dos sinais infravermelhos através de pulsos e espaços. Através desse programa é possível certificar-se de que o circuito foi montado corretamente ou não. Além dele, existem ainda o smode2 e o xmode2 que podem ser executados através da interface gráfica mostrando a forma de onda captada pelo circuito. 51 5.1.5. Diagrama de blocos Figura 5.13: Diagrama de blocos LIRC Fonte: Autor 52 O funcionamento é descrito baseando-se no diagrama apresentado na Figura 5.13. Como visto, o driver da porta serial usado pelo sistema operacional concorre com o driver usado pelo sistema LIRC (Linux Infrared Remote Control, Controle Remoto Infravermelho Linux). Assim o dispositivo /dev/lirc deve estar carregado como driver enquanto que o dispositivo /dev/ttySxx não deve ser carregado durante a iniciação do sistema operacional. Por isso, que ao configurar os parâmetros do kernel devemos compilálo com a opção Standard/generic (8250/16550 and compatible UARTs) serial support configurada como módulo. Após o sinal ser recebido pelo hardware e transmitido para o kernel do sistema operacional através da conexão serial, este é processado pelo Daemon LIRCD (processo principal em execução pelo software LIRC) que aceita as conexões na porta TCP 8765 e decodifica os sinais recebidos. Após serem processados, os sinais serão tratados pelo socket /dev/lircd que aceita várias conexões simultâneas. A partir daí serão divididos os processos responsáveis por controlar os movimentos e ações do mouse e os demais processos que utilizam programas secundários do pacote LIRC para executar diversos programas e tomar certas ações ou agendar determinados scripts. Caso a ação seja destinada ao dispositivo mouse, o processo lircmd irá tratar esses sinais comparando ao arquivo de configuração lircmd.conf fazendo com que os sinais sejam passados para o dispositivo /dev/lircm que se encarregará de realizar as ações necessárias. Dessa forma, os movimentos e ações do mouse devem necessariamente ser tratados pelo processo lircmd (lircm Daemon). Caso os sinais recebidos pelo hardware sejam tratados por programas secundários do pacote LIRC estes serão processados conforme as configurações do arquivo .lircrc que se encontra no diretório home do usuário. 53 6. 6.1. CONSIDERAÇÕES FINAIS Conclusão Neste trabalho foi apresentada uma proposta de automação utilizando o controle remoto infravermelho com o objetivo de facilitar as tarefas cotidianas sem fins comerciais. Ao longo do trabalho apresentado pode-se observar que existem uma gama de aplicações a serem desenvolvidas. Apenas algumas dessas aplicações foram abordadas no projeto. Outros tipos de aplicações como o controle de motores, automatização predial, controle e programação de outros aparelhos eletrônicos podem ser desenvolvidos. 6.2. Dificuldades Várias dificuldades foram encontradas durante a implementação do projeto. A primeira foi o fato de que o receptor infravermelho Vishay TSOP 1738 não ter sido facilmente encontrado. Este receptor foi adquirido pela internet após longo tempo de procura. Outra dificuldade no início foi a falta de experiência na montagem dos circuitos e posteriormente sua soldagem em placas de circuito integrado. Além disso, problemas na compilação do kernel foram bastante freqüentes até que fosse possível compilá-lo com os devidos módulos. A implementação do circuito não foi possível no notebook. Foi criada uma máquina virtual através do software vmware, na qual foi instalado o programa LIRC. O 54 problema esta relacionado justamente ao fato de que o notebook não segue o padrão RS232 referente à tensão provida pela porta serial. O valor dessa tensão é de 6 Volts no notebook utilizado e por isso o regulador de tensão utilizado no projeto não conseguiu prover a tensão de 5 Volts, necessário para o funcionamento do circuito. Outra grande dificuldade foi encontrar uma boa bibliografia sobre o assunto. A solução foi recorrer para bibliografias internacionais que abrangem melhor o tema. Apesar de todas as dificuldades, o resultado final correspondeu às expectativas, sendo que foi possível implementar a automatização da lâmpada através do controle remoto. O custo para montar o circuito receptor é pequeno tendo em vista o grande número de aplicações que podem ser elaboradas, o que deve servir de incentivo para que outros projetos com base nesse possam implementar novas aplicações e até expandir o uso do circuito para que o mesmo tenha outras finalidades. 55 6.3. Sugestões para Trabalhos Futuros Ampliação e desenvolvimento de outras aplicações, como por exemplo, a automatização de uma casa com vários circuitos distribuídos pelos mais diversos ambientes e conectados a um servidor central. Dessa forma, é possível realizar diversas tarefas com apenas um ou mais controles remotos distribuídos pela casa. Com isso, seria possível abrir uma porta ao acionar uma trava elétrica ou programar o microondas para ligar certo horário. Outra possibilidade é acionar pequenos motores para fechar ou abrir persianas. Poderia ser elaborado ainda um display acoplado ao controle remoto para receber informações de status dos mais diversos objetos da casa. Ainda nessa linha, é possível adicionar a esse circuito um led transmissor de infravermelho para que se possa controlar outros dispositivos como o aparelho de TV, DVD, som e demais aparelhos eletrônicos comandados por infravermelho. Outra sugestão é modificar o circuito para implementar funções de transferência de dados através do protocolo IRDA (The Infrared Data Association, Associação de Dados Infravermelho), assim seria possível transferir dados de PDAS (Personal Digital Assistants, Assitência Digital Pessoal) ou celulares para o computador e vice-versa. 56 REFERÊNCIAS BIBLIOGRÁFICAS ARC Electronics. RS232 Data Interface a tutorial on Data Interface and cables. Disponível em <http://www.arcelect.com/rs232.htm>. Acesso em: out 2005 BARTELMUS, CRISTOPH. LIRC Linux Infrared Remote Control. Disponível em <http://www.lirc.org>. Acesso em: jun 2006 BOSCHETTI, CESAR. Conceitos Fundamentais: Radiação, Energia e Ondas. Disponível em <http://www.las.inpe.br/~cesar/Infrared/conceitos.htm>. Acesso em: set 2005 ENGDAHL, TOMI. Parallel port interfacing made easy: Simple circuits and programs to show how to use PC parallel port output capabilities. Disponível em <http://www.epanorama.net/circuits/parallel_output.html>. Acesso em: fev 2006 FAGUNDES, EDUARDO. Fundamentos de Wireless LAN. Disponível em < http://www.efagundes.com/Artigos/Wireless_LAN.htm>. Acesso em: jul 2005 FLIR SYSTEMS. História do Infravermelho. Disponível <http://www.flirthermography.com/brazil/about/ir_history.asp>. Acesso em: ago 2005 em MEDEIROS, MIGUEL. Infravermelho (IV). <http://www.quiprocura.net/infra.htm>. Acesso em: set 2005 em Mobilecomms-technology.com. IRDA (INFRARED INTERNATIONAL. Disponível em technology.com/projects/irda/>. Acesso em: mar 2006 Disponível DATA ASSOCIATION), <http://www.mobilecomms- NOBILI, PEDRO. INFRAVERMELHO. Disponível <www.dc.ufscar.br/lsredes/material/Apresent3.pdf>. Acesso em: abr 2006 em PIROPO, BENITO. Jornal o Estado de Minas. Artigo Conexões sem fio. Disponível em <http://www.bpiropo.com.br/em20031215.htm>. Acesso em: set 2005 ROGÉRIO, ANTONIO. RORGERCOM Pesquisa e Desenvolvimento. Disponível em <http://www.rogercom.com/ >. Acesso em: mai 2006 SearchNetworking.com. IR Wireless. Disponível em: <http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci293474,00.html?offer=wla nq>. Acesso em: ago 2005 SILVA, ADAILTON. As tecnologias de Redes Wireless. Disponível <http://www.rnp.br/newsgen/9805/wireless.html#ng-ieee>. Acesso em: ago 2005 em 57 STRANGIO, CHRISTOPHER E. The RS232 Standard. Disponível em <http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html>. Acesso em: out 2005. SUMMER, W. Ultra-violet and infra-red engineering. London: Isaac Pitman, 1962. TORRES, GABIEL, LIMA, CÁSSIO. Construindo Protótipos Usando a Porta Paralela. Disponível em <http://www.clubedohardware.com.br/printpage/1147>. Acesso em: fev 2006 VANZETTI, Riccardo. Practical applications of infrared techniques: A new tool in a new di mengion for problem solving. New york: J Wiley, 1972. VISHAY TELEFUNKEN. Photo Modules for PCM Remote Control Systems. Disponível em <http://jap.hu/electronic/tsop17.pdf>. Acesso em: ago 2005 Wikipédia A enciclopédia livre. Artigo RS-232. <http://pt.wikipedia.org/wiki/RS-232>. Acesso em: out 2005 Disponível em 58 7. 7.1. APÊNDICES Formato A seguir são descritos os formatos de arquivos de configuração e do código fonte dos programas tratados no projeto, além dos esquemas elétricos de cada circuito. 59 APÊNDICE A 7.1.1. LIRCD.CONF O arquivo lircd.conf que foi aprendido através do programa irrecord, possui o seguinte formato: # Please make this file available to others # by sending it to <[email protected]> # this config file was automatically generated # using lirc-0.6.6(serial) on Thu Aug 12 16:53:23 2004 # contributed by brand: lircd.conf.panasonic.conf # model no. of remote control: # devices being controlled by this remote: begin remote name lircd.conf.panasonic.conf bits 32 flags SPACE_ENC eps 30 aeps 100 header 3533 1704 one 470 1268 zero 470 399 60 ptrail 474 pre_data_bits 16 pre_data gap 0x4004 74353 min_repeat toggle_bit 1 0 begin codes 1 0x0000000009000801 2 0x0000000009008881 3 0x0000000009004841 4 0x000000000900C8C1 5 0x0000000009002821 6 0x000000000900A8A1 7 0x0000000009006861 8 0x000000000900E8E1 9 0x0000000009001811 0 0x0000000009009891 r-tune 0x0000000009801C95 add/dlt 0x0000000009808C05 input 0x000000000900030A book_mark memory reset 0x0000000009000900 0x000000000900CAC3 0x0000000009002A23 61 display 0x0000000009009C95 track-1 0x0000000009004D44 track-2 0x0000000009008D84 speed 0x00000000098050D9 vol_up 0x0000000001000405 vol_down ch_up ch_down 0x0000000001008485 0x0000000009002C25 0x000000000900ACA5 mute 0x0000000001004C4D rotate 0x00000000098020A9 prog 0x0000000009808009 clear 0x000000000980A029 menu 0x0000000009806AE3 rec/time 0x0000000009001019 stop 0x0000000009000009 play 0x0000000009005059 ff rew pause/still 0x000000000900C0C9 0x0000000009004049 0x0000000009006069 slow 0x000000000900F0F9 skip 0x0000000009001F16 sleep 0x000000000100F0F1 on_timer power 0x000000000100D0D1 0x000000000900BCB5 62 end codes end remote Cada botão é representado por um código em hexadecimal. “Os bits 0-23 contêm o tamanho pulso/espaço em microssegundos. O bit 24 é representado por zero quando significa espaço ou um quando significa pulso. Todos os outros bits não são usados” 8 8 Conforme BARTELMUS, Christoph. http://www.lirc.org Acesso em 22 maio/ 2006 às 23h37. 63 APÊNDICE B 7.1.2. LIRCMD Esse daemon é usado para emular um mouse com o controle remoto. Dependendo do arquivo de configuração o programa converte sinais infravermelhos em movimentos e ações do mouse. Atualmente suporta três tipos de protocolos usados por mouse: MouseSystems, IntelliMouse e IMPS/2. O lircmd pode ser usado com dois tipos de aplicações gráficas: X11 e gpm. O projeto utilizou a interface gráfica X11 versão 4. Os seguintes parâmetros devem ser adicionados na configuração do arquivo /etc/X11/XF86Config. Section "InputDevice" Identifier "LIRC-Mouse" Driver "mouse" Option "Device" "/dev/lircm" Option "Protocol" "IMPS/2" Option "SendCoreEvents" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection 64 Além disso, a linha destacada em negrito deve ser adicionada na seção ServerLayout: Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "DevInputMice" "AlwaysCore" InputDevice "LIRC-Mouse" EndSection 65 O arquivo de configuração lircmd.conf utilizado para emular os movimentos do mouse possui o seguinte formato: # # lircmd config file # PROTOCOL IMPS/2 #PROTOCOL MouseSystems # ACCELERATOR start max multiplier ACCELERATOR 2 30 5 ACTIVATE lircd.conf.panasonic.conf menu MOVE_N lircd.conf.panasonic.conf 2 MOVE_NE lircd.conf.panasonic.conf 3 MOVE_E lircd.conf.panasonic.conf 6 MOVE_SE lircd.conf.panasonic.conf 9 MOVE_S lircd.conf.panasonic.conf 8 MOVE_SW lircd.conf.panasonic.conf 7 MOVE_W lircd.conf.panasonic.conf 4 MOVE_NW lircd.conf.panasonic.conf 1 #MOVE_N lircd.conf.panasonic.conf ARROW_UP #MOVE_E lircd.conf.panasonic.conf ARROW_RIGHT #MOVE_S lircd.conf.panasonic.conf ARROW_DOWN #MOVE_W lircd.conf.panasonic.conf ARROW_LEFT MOVE_IN lircd.conf.panasonic.conf ch_up MOVE_OUT lircd.conf.panasonic.conf ch_down BUTTON1_TOGGLE lircd.conf.panasonic.conf 5 BUTTON2_TOGGLE lircd.conf.panasonic.conf 0 BUTTON3_TOGGLE lircd.conf.panasonic.conf play BUTTON1_CLICK lircd.conf.panasonic.conf rotate BUTTON2_CLICK lircd.conf.panasonic.conf mute BUTTON3_CLICK lircd.conf.panasonic.conf prog # BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible 66 Onde: PROTOCOL – Este campo refere-se ao protocolo usado pelo mouse. As três opções são: MouseSystems, IntelliMouse and IMPS/2 ACCELERATOR – Neste campo é possível alterar a velocidade do cursor de acordo com o tempo em que o botão fica pressionado. O primeiro valor (start) corresponde ao ponto inicial de aceleração. O segundo campo (max) especifica o número máximo de pixels o cursor pode mover com um único comando. Já o terceiro campo (multiplier) é o número que multiplicado pela quantidade de repetições de um mesmo sinal dá como resultado o número de pixels que o cursor deve mover-se. ACTIVATE – Tem como parâmetros o nome do controle remoto e o referido botão para ativar o uso do controle para emular os movimentos do mouse. TOGGLE_ACTIVATE – Tem a mesma função de ACTIVATE. A diferença é que o comando TOGGLE_ACTIVATE se especifica o botão do controle remoto que serve tanto para iniciar o modo de emulação do mouse quanto para parar esse modo. Já no comando ACTIVATE, basta apenas pressionar um botão que não é usado pelo driver lircmd para sair do modo de emulação do mouse. MOVE_[ N [ E | W ] | E | S [ E | W ] | W ] – Especifica o botão que faz com que o cursor do mouse se mova para um determinado ponto cardeal. O exemplo abaixo deixa claro que o botão “2” do controle remoto panasonic faz com que o mouse se mova na direção norte, ou seja, para cima. MOVE_[IN|OUT] – Esse comando funciona apenas com os protocolos IntelliMouse e IMPS/2, emulando as ações da “rodinha” do mouse. BUTTONx_ [CLICK | DOWN | UP | TOGGLE] – Simula eventos do mouse de acordo com a esquerda (x=1), meio (x=2) ou direita (x=3). 67 APÊNDICE C 7.1.3. .LIRCRC O arquivo .lircrc deve existir para que seja possível executar diversos tipos de comandos através do controle remoto. A sintaxe desse arquivo é descrita abaixo: begin prog remote button repeat delay config mode flags = ... = ... = ... = ... = ... = ... = ... = ... end “Essa sintaxe diz o seguinte: Qual o programa (prog) deve fazer o que (config, mode, flags) se você pressionar um certo botão (remote, button) por um tempo específico (repeat, delay).”9 PROG – Indica qual o programa a ser excutado. REMOTE – Indica o controle remoto a ser usado para o determinado comando. BUTTON – Especifica qual o botão deve ser pressionado para a execução do programa. Seqüências de botões podem ser especificadas para a execução de um programa, basta para isso repetir as opções remote/button quantas vezes forem necessárias. REPEAT – Especifica o que acontece se houver repetição ao pressionar um botão. O valor padrão é zero, fazendo que com que o driver ignore os botões repetidos. 9 Conforme BARTELMUS, Christoph. http://www.lirc.org Acesso em 12 maio/ 2006 às 17h54. 68 DELAY – Indica ao programa para ignorar um número específico de repetição de um botão antes de usar a configuração de repetição acima. É usado para prevenir que um evento seja executado mais de uma vez em um curto período. O valor padrão desse campo é zero, o que desabilita o uso dessa função. CONFIG – A execução da aplicação depende dessa função. Portanto, as ações que devem ser tomadas dependem diretamente desse campo, como por exemplo a ação de imprimir alguns caracteres na tela, ou abrir e fechar o driver do CD, ou ainda executar o programa de acender e apagar a lâmpada. MODE – Indica ao programa para iniciar em um modo específico. FLAGS – Parâmetros adicionais ao MODE. 69 O arquivo .lircrc usado pelo projeto ficou da seguinte forma: # defaults: # # remote = * # repeat = 0 # begin remote = * button = power prog = irexec repeat = 0 config = echo "Bem Vindo!" end begin remote = * button = on_timer prog = irexec repeat = 0 config = /usr/bin/ooimpress& end begin remote = * button = sleep prog = irexec repeat = 0 config = /usr/bin/eject end begin remote = * button = stop prog = irexec repeat = 0 config = shutdown -h now end begin remote = * button = 0 prog = irexec repeat = 0 config = /home/rafael/lpt_completo 0 70 end begin remote = * button = 1 prog = irexec repeat = 0 config = /home/rafael/lpt_completo 4 end 71 APÊNDICE D 7.1.4. LPT_COMPLETO O programa lpt_completo envia um determinado valor para a porta paralela do computador. Os valores são dados como parâmetro para o programa, sendo que podem ser tanto decimal (0-255) como em formato hexadecimal (0x00-0xFF). Esse programa é utilizado para acender e apagar a lâmpada. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <asm/io.h> #define base 0x378 /* Endereço da porta paralela*/ main(int argc, char **argv) { int value; if (argc!=2) fprintf(stderr, "Error: Esse programa precisa de um valor entre 0 e 255.\n"), exit(1); if (sscanf(argv[1],"%i",&value)!=1) fprintf(stderr, "Error: Parâmetro não é um número.\n"), exit(1); if ((value<0) || (value>255)) fprintf(stderr, "Valor numérico inválido. O número deve estar entre 0 e 255\n"), exit(1); if (ioperm(base,1,1)) fprintf(stderr, "Error: Não consegue acessar a porta %x\n", base), exit(1); outb((unsigned char)value, base); } 72 APÊNDICE E 7.1.5. ESQUEMA ELÉTRICO CIRCUITO INFRAVERMELHO A Figura 7.1 demonstra o esquema elétrico do circuito infravermelho montado com a relação dos componentes utilizados. Figura 7.1: Esquema elétrico circuito infravermelho Fonte: http://www.vivaolinux.com.br/imagens/artigos/comunidade/thumb_LIRC_serial_rx1.png Os componentes utilizados para a montagem do circuito foram os seguintes: • 1 Receptor infravermelho Vishay TSOP 1738; • 1 Capacitor de 4,7 µF; • 1 Regulador de tensão 78L05; • 1 Resistor de 4,7 Kohms; • 1 Diodo 1N4148. 73 APÊNDICE F 7.1.6. ESQUEMA ELÉTRICO CIRCUITO LÂMPADA A Figura 7.2 demonstra o esquema elétrico do circuito que tem como função ligar e desligar a lâmpada. Figura 7.2: Esquema elétrico circuito lâmpada Fonte: Autor Os componentes utilizados para a montagem do circuito foram os seguintes: • 1 LED verde ; • 1 Diodo 1N4148; • 1 Resistor R1: 2,2 Kohm; • 1 Resistor R2: 470 ohm; • 1 Transistor BD 137; 74 • 1 Circuito Integrado 74LS541; • 1 Relé de 12 Volts na bobina – 220 V/ 10 A; • 1 Fonte de alimentação estabilizada de 12 Volts. 75