HENRIQUE ARAÚJO DE MORAES ROBÔ SEGUIDOR DE TRILHAS PROTÓTIPO DE UM MODELO AUTOMOTIVO COM TRAÇÃO ELÉTRICA MICROCONTROLADO GUIADO POR SENSORIAMENTO LONDRINA 2011 HENRIQUE ARAÚJO DE MORAES ROBÔ SEGUIDOR DE TRILHAS PROTÓTIPO DE UM MODELO AUTOMOTIVO COM TRAÇÃO ELÉTRICA MICROCONTROLADO GUIADO POR SENSORIAMENTO Trabalho de conclusão de curso submetido à Universidade Estadual de Londrina como parte dos requisitos para a obtenção do grau de Engenheiro Eletricista. Orientador: Prof. Aziz Elias Demian Junior LONDRINA - PR 2011. HENRIQUE ARAÚJO DE MORAES ROBÔ SEGUIDOR DE TRILHAS PROTÓTIPO DE UM MODELO AUTOMOTIVO COM TRAÇÃO ELÉTRICA MICROCONTROLADO GUIADO POR SENSORIAMENTO „Este trabalho foi julgado adequado para a conclusão do curso de Engenharia Elétrica e aprovado em sua forma final pela Coordenação do Curso de Engenharia Elétrica da Universidade Estadual de Londrina‟ BANCA EXAMINADORA Orientador: Prof. Dr. Aziz Elias Demian Junior Orientador Prof.Msc.André Luiz Batista Ferreira Prof. Dr. Marcio Roberto Covacic Londrina, _____de ___________de _____. À minha família, minha namorada querida e aos amigos que ganhei durante a graduação. . AGRADECIMENTOS Agradeço à minha família, minha namorada querida e todos os amigos que ganhei durante toda essa caminhada da Engenharia Elétrica. Com certeza nossa amizade contribuiu para que conseguíssemos seguir em frente na graduação. Ao meu professor orientador, Aziz, que me deu a oportunidade de realizar esse projeto o qual garantiu bastante crescimento profissional e experiência, e sempre me orientou positivamente para conquista dos resultados. Ao pessoal do laboratório da T4 que me auxilio nas atividades práticas do projeto. Também um agradecimento especial à 3E-UEL a qual fiz parte durante boa parte da graduação e me ensinou valores como respeito, amizade, trabalho em equipe e o espirito empreendedor que levarei em todas as atividades que farei ao longo da vida. iv MORAES, Henrique Araújo. Robô Seguidor de Trilhas: Protótipo de um modelo automotivo com tração elétrica microcontrolado guiado por sensoriamento. 2011. 89. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Estadual de Londrina, Londrina, 2011. RESUMO O projeto visa o desenvolvimento do protótipo de um modelo automotivo que é tracionado por dois motores de corrente contínua em eixos independentes e se locomove guiado por uma trilha pintada na pista. Foram utilizados dois sensores do tipo LDR: Light Dependent Resistor. Estes são dispositivos passivos que tem a propriedade de variar sua resistência conforme variação da incidência de luz. A detecção das curvas é processada por um microcontrolador PIC16F874A. As informações dos sensores são interpretadas e o controle é feito através de sinais PWMs (Pulse Width Modulation) independentes que acionarão os circuitos de potência. A direção é baseada na variação angular do eixo do robô proporcionalmente à diferença da velocidade angular dos motores. Também foi projetada a parte mecânica onde estão sobrepostos os blocos eletrônicos. Palavras chaves: 1. PWM - 2. Acionamento de motores CC- 3. Microcontrolador PIC - 4. Sensores 5. Robô v MORAES, Henrique Araújo. Trail Follower Robot: prototype of a microcolled automobile model guided by optical sensors. 2011. 89. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Estadual de Londrina, Londrina, 2011. ABSTRACT This project aims to develop a prototype of an automobile model that is pulled by two direct current (DC) motors to move through independent axes and guided by a trail painted on the track. It was used two sensors of LDR (Light Dependent Resistor). These are passive devices that have the ability to vary its resistance as the variation of incidence of light. The detection of the curves is processed by a microcontroller PIC16F874A. The information from the sensors is used as input to the device controls the two motor's velocity by PWMs signals (Pulse Width Modulation) that triggers the independent power circuits. The direction is based on the angular variation of the robot‟s axis in proportion to the difference of the angular speed of the motors. It should also be designed the model‟s mechanics structure. Key Words: 1. PWM - 2. DC motor drivers - 3. Microcontroller PIC - 4. Sensors 5. Robot vi Conteúdo LISTA DE FIGURAS ........................................................................................................................................... IX LISTA DE TABELAS .......................................................................................................................................... XII INTRODUÇÃO................................................................................................................................................. 13 FUNDAMENTAÇÃO TEÓRICA .......................................................................................................................... 15 2.1 PRINCÍPIO DE ELETRÔNICA DE POTÊNCIA ............................................................................................................... 15 2.2 MODULAÇÃO POR LARGURA DE PULSO - PWM ..................................................................................................... 18 2.2.1 Demonstração Matemática ................................................................................................................. 20 2.2.2 Tensão RMS ......................................................................................................................................... 21 2.3 TRANSISTORES TBJ ........................................................................................................................................... 22 2.3.1 Operação em Corte e Saturação .......................................................................................................... 22 2.3.2 Caraterísticas Físicas reais do chaveamento ....................................................................................... 26 2.3.3 Configuração Darlington ...................................................................................................................... 28 2.4 CIRCUITOS DE ACIONAMENTO DE MOTORES CC ..................................................................................................... 29 2.4.1 Conversor Buck .................................................................................................................................... 29 2.4.2 Conversor Ponte Completa – Ponte H .................................................................................................. 32 2.5 MOTOR CC ..................................................................................................................................................... 36 2.6 CONCEITOS DE INSTRUMENTAÇÃO ELETRÔNICA ...................................................................................................... 39 2.7 SENSORES LDR ................................................................................................................................................ 40 2.8 CIRCUITOS DE INSTRUMENTAÇÃO ........................................................................................................................ 43 2.9 MICROCONTROLADORES .................................................................................................................................... 47 2.9.1 Microcontroladores.............................................................................................................................. 47 2.9.2 PIC16F874A ......................................................................................................................................... 48 2.9.3 PROGRAMANDO NO PIC ................................................................................................................................ 51 2.9.3 ADC ...................................................................................................................................................... 56 2.9.4 PWM ................................................................................................................................................... 58 DESENVOLVIMENTO PRÁTICO ....................................................................................................................... 59 3.1 VISÃO GERAL DO PROJETO .................................................................................................................................. 59 3.2 DRIVERS DOS MOTORES DE CORRENTE CONTÍNUA ................................................................................................... 60 3.2.1 Projeto Ponte H .................................................................................................................................... 60 3.2.2 Alternativa para driver em Ponte H ..................................................................................................... 63 3.2.3 Projeto Conversor Buck ........................................................................................................................ 64 3.3 PROJETO CIRCUITO DO SENSORIAMENTO .............................................................................................................. 66 3.3.1 Teste de valores de LDR ....................................................................................................................... 68 3.3.2 Determinação do Rpot do divisor de tensão .......................................................................................... 69 3.3.2 Comparador lógico Schmitt Trigger ..................................................................................................... 70 3.3.2 Diodo Zener e Buffer de entrada .......................................................................................................... 73 3.3 PROJETO DO ALGORITMO DO FIRMWARE ............................................................................................................... 75 3.3.2 Ligações físicas do microcontrolador ................................................................................................... 75 3.3.2 Lógica de funcionamento do Robô....................................................................................................... 77 vii 3.3.2.1 Acionamento do motor ..................................................................................................................... 80 3.3.3 Fluxograma de funcionamento ............................................................................................................ 81 3.4 FONTE DE ALIMENTAÇÃO DO CIRCUITO ................................................................................................................. 83 3.4.1 Escolha da bateria................................................................................................................................ 84 3.5 ESTRUTURA FÍSICA ............................................................................................................................................ 85 3.5.1 Estrutura mecânica .............................................................................................................................. 85 3.5.2 Projeto da placa eletrônica .................................................................................................................. 87 3.5.3 Integração dos blocos .......................................................................................................................... 89 RESULTADOS E DISCUSSÕES........................................................................................................................... 90 4.1 SIMULAÇÃO DO CIRCUITO DE ACIONAMENTO DO MOTOR .......................................................................................... 90 4.1.2 Testes em Protoboard .......................................................................................................................... 95 4.2 ESTUDOS SOBRE O COMPORTAMENTO DOS LDRS; .................................................................................................. 97 4.3 SIMULAÇÕES DO FUNCIONAMENTO DO CÓDIGO .................................................................................................... 100 4.2.1.1 Caso de teste 1: Robô segue em linha reta ................................................................................................... 101 4.2.1.2 Caso de teste 2: Curva à direita .................................................................................................................... 102 4.2.1.3 Caso de teste 3: Curva à esquerda ................................................................................................................ 103 4.2.1.4 Caso de teste 4: Ambos os sensores sobre a trilha ....................................................................................... 104 4.2.1.4 Caso de teste 5: Histerese incerteza ............................................................................................................. 105 CONCLUSÕES ................................................................................................................................................107 BIBLIOGRAFIA ...............................................................................................................................................109 ANEXOS ........................................................................................................................................................111 ANEXO 1 - CÓDIGO DO MICROCONTROLADOR EM LINGUAGEM C................................................................................. 111 ANEXO 2 – PROJETO ELETRÔNICO COMPLETO E LAYOUT DA PLACA ............................................................................... 114 viii Lista de Figuras Figura 1.1 – Diagrama de blocos do sistema......................................................................................... 13 Figura 2.1 - Controle por variação de tensão..........................................................................................15 Figura 2.2 - Controle por chaveamento ................................................................................................. 16 Figura 2.3 - Perdas por chaveamento .................................................................................................... 17 Figura 2.4 - Sinais PWM......................................................................................................................... 19 Figura 2.5 - Representação dos TBJs NPN e PNP ................................................................................ 22 Figura 2.6 - Circuitos de polarização dos transistores ........................................................................... 23 Figura 2.7 - Gráfico de curva característica de um transistor com carga .............................................. 24 Figura 2.8 - Tempos de comutação de um trasistor de potência para carga resistiva ........................... 27 Figura 2.9 – Transistor TBJ em configuração Darlington ..................................................................... 28 Figura 2.10 – Conversor Buck .............................................................................................................. 29 Figura 2.11 - Formas de onda de um conversor Buck ........................................................................... 30 Figura 2.12 – Resposta de corrente em função da indutância da carga ................................................. 32 Figura 2.13 – Conversor “Ponte H” ...................................................................................................... 33 Figura 2.14 - Motor acionado em um dos sentido de rotação ............................................................... 33 Figura 2.15 - Motor acionado no sentido oposto de rotação ................................................................. 34 Figure 2.16 - Exemplo de projeto de Ponte H ....................................................................................... 35 Figura 2.17 - Circuito com dois quadrantes de operação ...................................................................... 35 Figura 2.18 - Estrutura básica de um motor de corrente contínua......................................................... 36 Figura 2.19 - Circuito elétrico equivalente do motor cc........................................................................ 37 Figura 2.20 - Quadrantes de operação do motor ................................................................................... 38 Figura 2.21 - Foto LDR real e seu símbolo elétrico .............................................................................. 41 Figura 2.22 - Foto LDR real e seu símbolo elétrico .............................................................................. 41 Figura 2.23 - LDR em divisor de tensão................................................................................................ 42 Figura 2.24 – Divisor de tensão do LDR............................................................................................... 43 Figura 2.25 - Ponte de Wheatstone ....................................................................................................... 44 Figura 2.26 – Amplificador Operacional .............................................................................................. 45 Figura 2.27 - Circuito comparador com Amplificador operacional ...................................................... 45 Figura 2.28 - Amplificador inversor...................................................................................................... 46 ix Figura 2.29 - Schmitt Trigger ................................................................................................................ 46 Figura 2.30 - Blocos que compõe um microcontrolador ....................................................................... 48 Figura 2.31 - Características principais dos PICs 16F87X ................................................................... 50 Figura 2.32 - Pinos encapsulamento PDIP do 16F874A e 16F877A .................................................... 50 Figura 2.33 - Diagrama de blocos do PIC16F874A .............................................................................. 53 Figura 2.34 - Conjunto de arquivos do compilador............................................................................... 55 Figura 3.2 - Diagrama de blocos do Robô............................................................................................. 60 Figura 3.3 – Projeto Ponte H ................................................................................................................. 61 Figura 3.4 - Pinagem CI SN74LS08 ..................................................................................................... 62 Figura 3.5 - Polarização das Chaves T1 e T2 ........................................................................................ 62 Figura 3.6 - CI L298N ........................................................................................................................... 64 Figura 3.7 - Driver com transistor Darlington ....................................................................................... 65 Figura 3.8 - Divisor de tensão com LDR .............................................................................................. 66 Figura 3.9 - Topologias com divisor de tensão ..................................................................................... 67 Figura 3.10 - Curva de histerese do comparador Schmitt Trigger ....................................................... 71 Figura 3.11 - Comparador Schmitt Trigger ........................................................................................... 72 Figura 3.12 - Divisor de tensão para porta de entrada do PIC .............................................................. 74 Figura 3.13 - Grampeamento de tensão para máximo de 5,1V na entrada do PIC .............................. 74 Figura 3.14 - Circuito oscilador gerador de clock externo .................................................................... 77 Figura 3.15 – Ligações físicas ao microcontrolador ............................................................................. 77 Figura 3.16 - Detecção das curvas pelo robô ....................................................................................... 79 Figura 3.17 - Direção em função da diferença de velocidade entre os eixos ........................................ 81 Figura 3.18 - Fluxograma do código ..................................................................................................... 82 Figura 3.19 - Bloco regulador de tensão do circuito ............................................................................. 83 Figura 3.20 - Bateria de 9V dimensionamento...................................................................................... 84 Figura 3.21 - Materiais para fazer os chassi .......................................................................................... 85 Figura 3.22 - Chassi com eixos independentes ..................................................................................... 86 Figura 3.23 - Foto do motor de corrente contínua utilizado .................................................................. 86 Figura 3.24 - Foto da parte mecânica definitiva .................................................................................... 87 Figura 3.25 - Esquemático do projeto eletrônico completo .................................................................. 88 Figura 3.265 - Placa finalizada .............................................................................................................. 88 Figura 3.276 - Versão final do protótipo ............................................................................................... 89 x Figura 4. 1 – Driver dos motores........................................................................................................... 90 Figura 4. 2 - Tensão VCE em função do tempo ...................................................................................... 91 Figura 4. 3 - Relação entre a tensão VBE e VCE do par Darlington. ................................................... 92 Figura 4. 4 - Corrente de base do transistor BC337 .............................................................................. 93 Figura 4. 5 - Corrente de coletor (onda menor) em função da tensão coletor emissor do transistor BD139. Ic ≅ 417mA ............................................................................................................................. 94 Figura 4. 6 - Tensão VCE no transistor BD139 ...................................................................................... 95 Figura 4.7 - Tensão VCE no transistor BD139 com grande valor de D no sinal PWM da base ............. 95 Figura 4. 8 - Tensão RMS variante com Duty Cycle do sinal PWM ..................................................... 96 Figura 4.9 - Corrente RMS com o transistor chaveando e em corte. .................................................... 96 Figura 4.10 - Circuitos dos sensores e interface com microcontrolador PIC16F874A ......................... 97 Figura 4.11 - Tensão de saída do divisor de tensão em função da densidade luminosa........................ 99 Figura 4. 12 - Resistência do LDR em função da densidade luminosa ................................................ 99 Figura 4.13 - Esquemático de simulação do Proteus........................................................................... 100 Figura 4.14 - PWM gerado para caso de teste 1. Duty Cycle = 250/1024........................................... 102 Figura 4.15 - PWM gerado para caso de teste. Ch A: 350, Ch B: 150 ................................................ 103 Figura 4.16 - PWM gerado para caso de teste. Ch A: 150, Ch C: 350 ................................................ 104 Figura 4.17 - PWM gerado para caso de teste. Ch A: 350, Ch C: 150 ................................................ 105 Figura 4.18 - PWM mantido do caso de teste 4. Ch A: 0, Ch C: 0 ...................................................... 106 xi Lista de Tabelas Table 2.1 - Frequências máximas e mínimas configuráveis para PWM ................................... 58 Tabela 3.1 - Lógica das entradas da Ponte H para ativar as chaves ...................................................... 62 Tabela 3. 2 - Circuito de polarização das chaves T1 e T2 ..................................................................... 63 Tabela 3. 3 - Resultados dos testes com LDR ....................................................................................... 69 Tabela 3. 4 - Valores de Vo conforme variação da resistência do sensor ............................................. 70 Tabela 3. 5 - Valores de referência para comparador lógico ................................................................. 71 Tabela 3. 6 - Valores de referência para comparador lógico ................................................................. 71 Tabela 3. 7 - Interpretação do comparador em relação à detecção das trilhas ...................................... 72 Tabela 4.1 - Relação entre a tensão de saída e a densidade luminosa do modelo ................................. 98 Tabela 4.2 - Relação entres os parâmetros do LDR com a tensão do divisor de tensão ........................ 98 Tabela 4.3 - Valores de referência para simulação.............................................................................. 100 xii Capítulo 1 Introdução Este trabalho visa a apresentação dos conceitos e passos para a criação de um modelo automotivo com tração elétrica, microcontrolado e guiado por sensoriamento. O modelo irá se movimentar guiado por uma trilha pintada de cor escura em uma superfície que terá cortar branca. Por simplicidade de nomeclatura será denomidado apenas como “Robô Seguidor de Trilhas”. O objetivo é apresentar toda a teoria envolvida afim de servir de base a futuras implementações. Além do projeto teórico do sistema, será desenvolvido um protótipo para validação dos resultados. A estratégia seguida é de reduzir o escopo à ideia mais simplificada possível e a partir do objetivo inicial alcançado, estudar formas de melhorar o desempenho e aumentar as funcionalidades do sistema. Os requisitos deste projeto consistem na determinação de cada bloco funcional como mostrado abaixo. A interrelação entre os blocos funcionais são mostrados na figura 1.1. Mecânica Bateria Sensor LDR Esquerdo Sensor LDR direito Microcontrolador PIC16874A Driver motor esquerdo Driver motor direito Motor CC esquerdo Motor CC direito Figura 1.1 – Diagrama de blocos do sistema Fonte: Autoria Própria 13 Motores: Dentre as possiblidades, foram escolhidos motores de baixa potência e alta velocidade em corrente contínua. Serão apresentados os conceitos e teorias relacionadas a este dispositivo; Drivers dos motores: Circuito de acionamento de motores. Para este projeto optou-se por um driver controlado por cheveamento através da variação da largura de pulso (técnica é denominada PWM) em detrimento aos controlados por variação direta da tensão nos terminais do motor; Sensores: Os dispositivos usados para detectar as variações de luminosidade provocadas pela trilha é denominado LDR, ou Light Dependent Resistor. No decorrer deste documento é apresetado as carecterísticas deste componente eletrônicos, técnicas de instrumentação e alternativas a este sensor; Controle Microprocessado: O microprocessador PIC16F874A da fabricante Microchip Inc. é utilizado para coletar o sinal proveniente dos sensores, interpretá-lo e gerar o controle da largura de pulso para acionamento das chaves do driver do motor. A programação do código foi feito usando linguagem C.; Alimentação: Para prover alimentação de energia a todos os blocos, foram projetados reguladores de tensão. A fonte de alimentação é uma bateria de Niquel Cádmio. Existe uma grande variedade de baterias as quais vão ser apresentadas como alternativas para futuros projetos; Mecânica: a característica mecânica do robô é existência de dois eixos independentes tracionados por motores DC. Em cada eixo há uma caixa de redução, estrutura de engrenagens que transformam velocidade angular em torque. Todos os blocos eletrônicos serão acondicionados sobre uma estrutura mecânica que foi projetada especialmente para este trabalho. Esta monografia é dividida em três etapas: fundamentação teórica, desenvolvimento prático e, resultados e discussões. Na primeira é apresentado os conceitos necessários para o profundo entendimento do funcionamento do robô. Na segunda serão mostrados os projetos e alternativas viáveis de implementação. No último demonstram-se os resultados obtidos a partir do protótipo e o detalhamento do funcionamento do projeto. 14 Capítulo 2 Fundamentação Teórica 2.1 Princípio de Eletrônica de Potência A eletrônica de potência é a área responsável pela “aplicação de dispositivos semicondutores de potência, como tiristores e transistores, na conversão e no controle de energia elétrica em níveis altos de potência.” (AHMED, 2000, P.14) Segundo esse conceito, sempre quando é necessário controlar a entrega de energia a uma carga, recorre-se a topologias e circuitos estudados por esta área da engenharia elétrica. No processo de controlar a entrega de potência proveniente de uma fonte para uma determinada carga, pode-se recorrer a duas topologias básicas: controle pela variação de tensão ou controle por chaveamento. No primeiro caso é empregado um dispositivo em série com a carga capaz de variar a tensão sobre seus terminais, exemplo destes controladores são: transformadores com ajuste de tap ou um potenciômetro. A figura 2.1 apresenta esta topologia básica. Figura 2.1 – Controle por variação de tensão Fonte: (AHMED, 2000) A desvantagem desse método é que a fonte fica constantemente fornecendo energia à carga e esta é conduzida através do dispositivo controlador. Como este componente tem uma resistência associada, há grande dissipação de potência sobre ele, tornando-o ineficaz e gerando sobreaquecimento sobre o dispositivo. 15 No caso da topologia de controle por chaveamento, a chave é ligada e desligada em determinada frequência. No momento em que está ligada (fechada) a transferência de energia da fonte para a carga é máxima, já que ela se comporta idealmente como um condutor sem resistência. Quando desligada (aberta) a chave intenrrompe o fornecimento de potência. Dessa forma os dispositivos por chavemento tem um efiência ideal bastante alta. Além disso o controle do tempo em que fica ligada permite controlar a variação da transferência energética garantindo assim várias aplicações na eletrônica de potência. A figura 2.2 mostra a topologia básica de controle por chaveamento. Figura 1.2 - Controle por chaveamento Fonte: (AHMED, 2000) Exemplos de componentes que são usados como chaves são: transistores de junção bipolar (TBJ), transistores por efeito de campo (FET), tiristores, etc. Neste projeto foram empregados TBJ. Um um dispositivo de chavemento real existem perdas de potências. Estas são classificadas em dois tipos: perdas por condução e por chaveamento. Outro ponto negativo é a geração de interferência eletromagnética provocada pelas fontes chaveadas, Treviso (2009, p. 127) afirma: [...] as fontes chaveadas produzem níveis elevados de energia eletromagnética que se espalham por um amplo espectro de freqüências, interferindo ou até interrompendo sistemas de telecomunicações e equipamentos que passam a funcionar erroneamente ou simplesmente deixam de funcionar. As perdas por condução acontecem pois os componentes reais não tem uma tensão nula entre seus terminais quando ligados, provocando uma pequena diferença de potencial que gera dissipação de energia. O TBJ, por exemplo, tem uma queda intrínsica 16 denominada tensão de saturação, dessa forma parte da potência é dissipada em através da resistência interna do dispositivo quando o mesmo está em condução. As perdas por chaveamento são provocadas pelo tempo decorrido para que a tensão nos terminais do dispositivo (no caso do TBJ é a tensão VCE) comutem de 0V para tensão máxima de saída Vs ou de Vs para 0V. Estes tempos são designados respectivamente como tsw(on) e tsw(off). À medida que a tensão na chave cai, a corrente de carga passa a ser transferida através da chave, neste processo há dissipação de potência. A situação inversa também é válida. A figura 2.3 resume este este caso. Figura 2.2 - Perdas por chaveamento Fonte: (AHMED, 2000) As propriedades de controle por tensão e chaveamento mostrados anteriormente permitem uma variedade enorme de circuitos usados na eletrônica de potência para diversas aplicações. Entre estes destacam-se: Retificadores: convertem tensão CA (corrente alternada) em CC (corrente contínua); Conversores CC/CC ou Choppers: Convertem tensão CC com um determinado valor de amplitude constante na entrada em uma tensão CC na saída com amplitude que pode ser ajustada através do circuito; Inversores CC/CA: convertem tensão CC em tensão CA; 17 Controladores CA/CA: convertem tensão CA com amplitude e frequencia constantes em tensão CA com amplitude e frequência que podem ser ajustadas através do circuito. Neste trabalho são apresentados de conversores CC/CC para acionamento de motores de corrente contínua. 2.2 Modulação por Largura de Pulso - PWM PWM é a sigla em inglês para Pulse Width Modulation ou modulação por largura de pulso. Em eletrônica de potência, a técnica de PWM é utitilizada em diversas aplicações com circuitos baseados em chaveamento. A modulação PWM consiste na variação da largura de pulso de um sinal digital, ou seja, o tempo em que o sinal digital se mantêm em nível lógico alto. Essa variação pode ser usada para evitar queda da tensão de saída de uma fonte através de uma malha de controle, geração de um sinal alternado apartir de uma tensão contínua, alteração de tensão e potência de saída de fontes e conversores, entre outras aplicações. O PWM consiste em um padrão de rápida alternância entre liga e desliga de um período T, na qual, parte do tempo ela estará em estado ativo e parte do tempo em estado desativado. Vemos assim que a potência média aplicada a carga pode ser diferente dos valores digitais e que a tensão sobre a carga varia. (GIOOPO et al., 2009) A porcentagem do tempo em que o sinal se mantêm em nível lógico alto Ton em relação ao período total do sinal T é chamada de Ciclo de Trabalho, razão cíclica ou Duty Cycle, denotado por D, conforme é demonstrado na equação 2.1: (2.1) [ ] (2.2) Nas equações 2.1 e 2.2, os valores Ton e Toff representam respectivamente os períodos de tempo em que o sinal está em nível lógico alto (tensão máxima) e em nível lógico 18 baixo (chave aberta, tensão de saída igual a 0 volts). A somatória desses tempos definem o período total T como mostrado na figura 2.4. (2.3) (2.4) Período T (s) é inverso da frequência F (Hz) do sinal digital conforme equação 2.5: (2.5) Conforme apresentado previamente, na situação prática o PWM modula a largura de pulso de uma onda quadrada, que pode ser uma tensão alternada entre dois níveis digitais, por exemplo, zero e cinco volts. Figura 2.3 - Sinais PWM Fonte: (AHMED, 2000) 19 2.2.1 Demonstração Matemática Toda forma de onda tem como característica a possibilidade de ser representada por uma expressão ou por uma série matemática. Será apresentada a seguir a comprovação da propriedade de variação da tensão média de um sinal PWM baseada na variação do ciclo de trabalho D. Funções periódicas são funções que se repetem com o tempo em determinada frequência, ou seja, a cada período T o valor da função é o mesmo. Matematicamente é apresentado conforme equação 2.6: (2.6) Um sinal real contínuo e periódico pode ser escrito como uma somatória infinita de funções senos e cossenos denominada Série de Fourier. Cada termo dessa série denomina-se harmônica de ordem n. A soma de cada harmônica a cada instante de tempo forma o sinal original. A expressão 2.7 mostra a forma genérica de uma função escrita como uma série de senos e cossenos: ∑ ( ) (2.7) Os parâmetros ao, an e bn são calculados da seguinte forma: ∫ (2.8) ∫ ( ) (2.9) ∫ ( ) (2.10) Busca-se entender a relação entre a tensão média da forma de onda e o ciclo de trabalho da onda PWM. Como apresentado anteriormente, um sinal PWM digital pode ser representado como segue: 20 { (2.11) Neste caso, a tensão média da série de Fourier é calculada através da constante ao segundo a equação 2.13: ∫ ∫ (2.12) Portanto a tensão média de uma onda retangular de um sinal PWM é dada pela equação 2.13: (2.13) 2.2.2 Tensão RMS Além da tensão média, há a tensão média quadrática ou RMS (Root Mean Square). A tensão RMS é calculada para determinação da potência real consumida por uma carga em determinado período T. Fisicamente, ela representa o valor realmente sentido pela carga em termos de consumo de energia. Pode ser definida como a potência consumida por um sinal CA equivalente a um sinal CC de mesmo valor que o indicado pelo cálculo RMS. A definição matematicamente é mostrada na equação 2.14: √ ∫ (2.14) No caso de um sinal retangular, como o do PWM, o valor é obtido através do seguinte equacionamento: √ ∫ √ 21 (2.15) √ (2.16) √ (2.17) Logo o valor Vo(RMS) representa a tensão em corrente contínua que causaria a mesma dissipação de potência que o sinal alternado aplicado a uma determinada carga. Portanto, com esta seção verifica-se que tanto tensão média quanto tensão RMS de um sinal modulado por largura de pulso são relacionadas com a amplitude do sinal de entrada aplicado e com o tempo Ton em que o sinal fica em estado ativo ou ligado. Esta propriedade permite o controle de velocidade do motor CC através da variação da tensão média aplicado em seus terminais, causadas por dispositivos de chaveamento rápido. Neste projeto, optou-se pelos Transistores Bipolares de Junção (TBJ) como elementos de chave. A seguir serão apresentados os conceitos necessários para entendimento do funcionamento deste componente eletrônico. 2.3 Transistores TBJ 2.3.1 Operação em Corte e Saturação O Transistor Bipolar de Junção, ou TBJ, é um dispositivo semicondutor que funciona como uma chave controlada por corrente. Através desta característica, o TBJ pode operar em três regiões distintas: corte, saturação e linear. Dessa forma, o transistor TBJ é um dos componentes mais úteis em eletrônica pois é utilizado em aplicações digitais de pequenos sinais, eletrônica analógica e em aplicações de potência. Sua representação é mostrada na figura 2.5. Figura 2.4 - Representação dos TBJs NPN e PNP 22 O transistor é um dispositivo de três terminais sendo eles: base (B), coletor (C) e emissor (E). Através da aplicação de uma corrente no terminal de base pode-se controlar o fluxo de carga elétrica através das junções entre os terminais de coletor e emissor, possibilitando as múltiplas aplicações do TBJ. Devido à característica de ser uma fonte de corrente controlada por corrente, este apresenta um parâmetro β que é o ganho estático do mesmo: (2.18) Para se obter a operação desejada deve-se polarizar o transistor seguindo três estruturas básicas: base-comum, coletor-comum e emissor comum. A figura 2.6 ilustra estes modos. Figura 2.5 - Circuitos de polarização dos transistores Deseja-se obter a polarização do transitor atuando como chave, ou seja, em corte e saturação. Seguindo o equacionamento apresentado por Malvino (1995, v.1) demonstra-se a condição de saturação para a configuração emissor comum. Segundo a malha 1 do circuito da letra c da figura 2.6, configuração emissor-comum, obtém-se a seguinte equação: (2.19) (2.20) O gráfico da figura 2.7 mostra a curva característica e a curva de carga do circuito emissor-comum apresentado. Define-se três regiões: Corte, Linear e Saturação. Além de uma região de transição chamada: Quase-Saturação. 23 Figura 2.6 - Gráfico de curva característica de um transistor com carga Fonte: (AHMED, 2000) À medida que se aumenta a corrente de base, IB, a tensão VCE decai até ser idealmente zero, isso ocorre no ponto 1 (P1) da figura 2.7. Neste ponto atinge-se a corrente de base, IBsat necessária para colocar o transistor em saturação. Na saturação a equação da malha passa a ser: ≅ (2.21) Sendo, ≅ (2.22) Dessa forma, a máxima corrente fornecida pela carga acontece na saturação do transistor. Segundo Treviso (2009) há uma região de transição entre a saturação e a região linear, chamada Quase Saturação. Naquela região, o valor de β é substituído por βF ou Beta Forçado, que é menor do que o ganho linear, ou seja: (2.23) (2.24) Na prática o ganho em saturação varia entre 5 e 10. Segundo Ahmed (2000), uma corrente de base mínima que assegura a operação na saturação é dada por: 24 (2.25) Como já mencionado, um acréscimo na corrente de base acima do valor de limiar de saturação é desnecessário, pois a tensão Vce(sat) não diminui significativamente. Pelo contrário, se forçar uma polarização maior no transistor, o projetista compromete o desempenho da chave. Treviso (2009, p. 172) afirma que forçar a operação na região de plena saturação: [...] deve ser evitado porque provoca atraso na recuperação dos portadores presentes na junção, isto faz com que o sistema de recombinação (tempo de estocagem) (ts) seja aumentado, aumentando os tempos de comutação do transistor bipolar. Do mesmo modo que na saturação, na região de corte, indicada pelo ponto 4 (P4) da figura 2.7, a corrente de base determina a sua operação. Neste ponto a corrente de base é praticamente zero. Com esse valor, não se consegue polarizar o transistor para que ele conduza, fazendo com que o mesmo fique em estado desligado. Neste caso, segundo a equação da malha do circuito: ≅ (2.26) Sendo, ≅ (2.27) Portanto nesta região não há fluxo de corrente na carga e o transistor age como uma chave aberta. Na prática, há apenas uma corrente de fuga, provocada pelo movimento de cargas nas junções do semicondutor, mas que por ser irrisória, não é considerada. 25 2.3.2 Caraterísticas Físicas reais do chaveamento Ao projetar um conversor chaveado utilizando transitores deve-se ter em mente uma série de parâmetros que influenciam seu funcionamento e seu desempenho energético. Ahmed (2000, p. 60) resume as principais fontes de dissipação de potência em um TBJ atuando em corte e saturação. Há quatro fontes de perda de potência em um transistor: perdas na condução ou no estado ligado, perdas por fuga ou no estado desligado, perdas por passagem para o estado ligado durante a ligação e perdas por passagem para o estado desligado durante o desligamento da chave. A essas perdas estão associados os tempos de comutação do transistor que podem ser classificados nos seguintes parâmetros: (2.28) Onde TR é o tempo de subida quando o transistor entra em condução, Td é o tempo de retardo, relacionado ao dalay entre a subida da corrente Ib e consequente subida da corrente de coletor Ic. (2.29) Onde TF é o tempo total para chavear para estado desligado. Ts é o tempo de estocagem (Storage Time). ”[...] É o tempo necessário para o corte do transistor. Este tempo é diretamente proporcional à saturação, ou seja, se a super-saturação for evitada e se for extraída uma corrente inversa de base ele é consideravelmente reduzido.” (TREVISO, 2009, p. 181). Tf é o tempo de descida da corrente de coletor no desligamento da chave. (Fall time). Os parâmetros de tempo de comutação são mostrados figura 2.8. 26 Figura 2.7 - Tempos de comutação de um trasistor de potência para carga resistiva Fonte: (TREVISO, 2009) Além dos parâmetros de tempo, um transistor real tem as seguintes características: VCE(sat): Tensão de saturação entre coletor – emissor; β: Ganho de corrente DC; βF: Ganho Forçado, relacionado à região de saturação. Varia entre 5 e 10 normalmente; Ic(máx): Máxima corrente de coletor; Pmáx: Máxima Potência; Vce(max): Máxima tensão entre coletor e emissor. 27 2.3.3 Configuração Darlington Geralmente o ganho de corrente de um transistor em saturação é muito baixo. Dessa forma, não se consegue obter a operação entre corte e saturação, fazendo com que o mesmo fique na região linear. Para resolver este problema utiliza-se a configuração Darlington. A figura 2.9 mostra o esquema Darlington. Nesta configuração tem-se a multiplicação do ganho do transistor Q1 com a do transistor Q2. Esta configuração tem duas desvantagens: “A primeira é que resulta em uma queda de tensão (VCE(Sat)) mais alta no estado ligado. [...] As perdas no estado ligado são, portanto, mais altas. A segunda desvantagem da conexão Darlington reside em sua menor velocidade de chaveamento.” (AHMED, 2000, p. 68) Figura 2.8 – Transistor TBJ em configuração Darlington Fonte: Autoria Própria 28 2.4 Circuitos de Acionamento de Motores CC 2.4.1 Conversor Buck O conversor de tensão CC/CC, também conhecidos como chopper, é o circuito chaveamento mais básico para acionamento de motores CC. Sua aplicação se deve ao fato de sua tensão de saída ser diretamente proporcional à tensão de entrada e à razão cíclica do chaveamento. O chaveamento de um conversor chopper é feito através da técnica de PWM. Segundo Ahmed (2000) existem dois tipos de conversores choppers, o stepdown, mais conhecido como Conversor Buck e o Step-up, ou Boost. Neste trabalho é utilizado um esquema parecido com o Buck. O esquemático do conversor Buck é apresentado na figura 2.10. Figura 2.9 – Conversor Buck Fonte: (TREVISO, 2009) A aplicação como acionador de motores de corrente contínua, como mencionado, é devida a possibilidade de variar a tensão de saída apatir de uma entrada fixa, utitlizando um controle PWM. Empregando um TBJ como chave, o controle sinal PWM é aplicado na base de modo a operá-lo entre corte e saturação. A equação que relaciona entrada e saída é apresentada a seguir: 29 (2.30) Onde D é a razão cíclica do sinal PWM apresentado na seção 2.2. Conforme figura 2.11, a presença de uma carga indutiva (como a de motores) na saída do conversor garante a continuidade da corrente de saída. Como o indutor tem a propriedade de armazenamento de energia, no momento em que a chave está aberta uma corrente de magnetização Im é induzida linearmente através da carga. Caso a carga seja de natureza puramente resistiva e necessita-se que a corrente seja de modo contínuo, colocase um indutor em série na saída. Figura 2.10 - Formas de onda de um conversor Buck Fonte: (TREVISO, 2009) No desligamento o indutor automaticamente altera sua polaridade para descarregar essa energia. Por esse motivo, deve-se adicionar um diodo em paralelo com o circuito RL para garantir um caminho por onde flua a corrente de desmagnetização Idmg. Treviso (2009) chama esse dispositivo de diodo de roda livre”: (2.30) 30 Ahmed (2000, p. 313) descreve este processo: Quando a chave é aberta, a corrente no indutor começa a cair até se anular (não pode varia de modo instantâneo). Isso provoca, no indutor, uma tensão induzida de polaridade oposta. A tensão no indutor polariza o diodo diretamente e a corrente, agora fluindo no indutor, atua como retorno através do diodo D da carga. A finalidade do diodo, portanto, é fornecer um caminho para corrente na carga quando S estiver desligada. O gráfico da figura 2.11 apresenta as características do conversor BUCK. Nota-se que devido à desmagnetização do indutor, consegue-se manter um nível de corrente na carga, que varia apenas entre a corrente Iomin e Iomáx. As equações de corrente de mínima e máxima de um conversor Buck são dadas por: (2.31) (2.32) Idealmente, a corrente média na chave é: (2.33) (2.34) O caso apresentado na figura 2.11, é dito que o conversor está no modo contínuo, ou seja, consegue manter uma corrente contínua. A medida que a indutância de carga tem seu valor reduzido, o conversor não consegue manter a corrente, como mostrado na figura 2.12. Para evitar operar neste modo, deve-se garantir um indutância mínima em série com a carga, Ahmed (2000) afirma que uma alta indutância na carga é desajada, pois evita modo descontínuo. Dessa forma “[...] Quando a indutância de carga se tornar idealmente infinita, conseguiremos uma corrente sem ondulação (DC pura)” 31 Figura 2.11 – Resposta de corrente em função da indutância da carga Fonte: (AHMED, 2000) Como um motor CC se comporta eletricamente como um circuito RL em série, com alta indutância, se torna muitas vezes desnecessário incluir o indutor em série, e o mesmo garante uma operação de corrente contínua através do chaveamento do conversor, permitindo seu controle de velocidade. 2.4.2 Conversor Ponte Completa – Ponte H O conversor Buck permite a rotação do motor em apenas uma direção e sem efeito de frenagem. Caso deseja-se inverter o sentido de rotação, um circuito mais utilizado é o conversor Ponte Completa, ou Full Bridge, conhecido popularmente como PONTE H. Por sua versatilidade no acionamento de motores CC, este esquema é bastante utilizado em robótica. A figura 2.13 mostra o esquemático do circuito. 32 Figura 2.12 – Conversor “Ponte H” Fonte: (PATSKO, 2006) Na Ponte H, a tensão de entrada é fixa, enquanto a tensão de saída que alimenta os terminais do motor é variável. Assim como no conversor Buck, o controle de tensão nos terminais é feito por pulsos PWMs. Embora os pulsos gerem uma corrente de saída alternada, devido à natureza indutiva do motor, este garante a continuidade da corrente, possibilitando assim a ampla aplicação do conversor ponte completa no acionamento dos motores de corrente contínua. O princípio de funcionamento da Ponte H é acionar as chaves diagonalmente opostas para permitir passagem de corrente através dos terminais do motor. Dessa forma, com as chaves 1 e 3 ligadas, aparece um Vo positivo no motor, figura 2.14. Figura 2.13 - Motor acionado em um dos sentido de rotação Fonte: (PATSCO, 2006) 33 Para mudar o sentido de rotação basta abrir as chaves 1 e 3, conforme figura 2.15, e fechar as chaves 2 e 4, aparecendo assim uma tensão inversa nos terminais do motor. Figura 2.14 - Motor acionado no sentido oposto de rotação Fonte: (PATSCO, 2006) Deve-se tomar cuidado para não acionar as chaves do mesmo lado da ponte, 1 e 3 ou 2 e 4, pois isso faz com que “o fluxo da corrente vá direto do pólo positivo para o negativo, causando um curto-circuito fatal para a fonte de alimentação e para os componentes eletrônicos envolvidos no circuito” (PATSKO, 2006, p. 3) Mohan, Underland e Robbins (1995) advertem ainda que deve ser dado um tempo em que toda a Ponte fique desligada quando for necessário inverter a polarização da tensão de saída, devido às caraterísticas reais das chaves que pode colocar a fonte em curto circuito no tempo de comutação. Além do efeito de mudança do sentido de rotação, é possível frenar eletricamente o motor CC através da Ponte H, acionando simultaneamente as chaves paralelas, 1 e 2 ou 3 e 4. Isso ocorre porque o motor, como todo componente indutivo, gera uma tensão entre os seus terminais. Quando os terminais do motor são conectados no mesmo pólo, fazemos um “curto-circuito” no motor, e a tensão que gerada pelo motor força-o a girar na direção oposta, fazendo com que ele pare instantaneamente. Mas se todas as chaves forem fechadas, o circuito será desligado e caso o motor estivesse girando, ele parará suavemente. (PATSKO, 2006, p.3) 34 Em circuitos não ideiais, além da chave, é necessário colocar um diodo em paralelo com cada chave da Ponte devido à caraterística indutiva do motor que tende a desmagnetizar-se quando a chave está em Toff., ou tempo desligado. Dessa maneira o diodo garante um caminho alternativo para corrente no sentido reverso. Um exemplo de projeto de Ponte H usando compenentes reais é mostrado na figura 2.16 Figure 2.15 - Exemplo de projeto de Ponte H Fonte: (PATSCO, 2006) Conforme apresentado por Moham, Undeland e Robbins (1995) há três topologias básicas de conversores acionadores de motores de corrente contínua. Caso se deseja apenas controlar a velocidade em um único sentido de rotação, um circuito como o do conversor Buck é suficiente, este opera em apenas 1 quadrante. Caso deseja um sentido de rotação mas com possibilidade de frenagem, pode-se empregar um circuito intermediário como o da figura 2.17 que opera em dois quadrantes. Figura 2.16 - Circuito com dois quadrantes de operação Fonte: (MOHAN; UNDERLAND; ROBBINS, 1995) 35 Por fim, aplicações que exigem alterar o sentido de rotação e utilizar frenagem, o conversor Ponte H é utilizado, este opera nos 4 quadrantes. 2.5 Motor CC Os motores elétricos são empregados na tração de cargas mecânicas a partir da aplicação de energia elétrica em seus terminais. O princípio de funcionamento é baseado na conversão eletro-mecânica de energia, através do emprego das leis do eletromagetismo na estrutura construtiva dessas máquinas. Existem motores de corrente alternada e contínua. Em aplicações de robótica, geralmente empregam-se motores de corrente contínua de pequeno porte. Segundo Moham, Undeland e Robbins (1995), há dois tipos de motores de corrente contínua: os motores com fluxo magnético fixo no estator e motores com enrolamento de estator e controle de fluxo magnético por corrente elétrica. Figura 2.18, mostra a estrutura simplificada de um motor de corrente contínua. Seu funcionamento se baseia na Lei da Força magnética de Lorentz, dada pela equação 2.36: (2.36) Essa equação diz que se passar uma corrente através de um campo magnético B, cria-se uma força ortogonal ao sentido da corrente e do campo. Figura 2.17 - Estrutura básica de um motor de corrente contínua Fonte: http://www.camacho.eng.br/MCC.htm 36 A alimentação do enrolamento do rotor é feita por dois comutadores fixos na armadura. Portanto, a medida que o enrolamento gira, provocado pela força motriz, seus terminais invertem de polaridade. “Esta mudança do sentido da corrente é essencial para que o torque sobre o comutador esteja atuando sempre no mesmo sentido.” (GIOPPO et al., 2009, p. 11) Quando se aplica a tensão nos terminais do motor, gera-se uma tensão eletromotriz E dependente da velocidade angular ωm e um torque mecânico Tem proporcional à corrente de armadura I , equações 2.37 e 2.38 descrevem este conceito: (2.37) (2.38) Nota-se que ambos são dependentes também do fluxo magnético ϕ e tem constantes de proporcionalidade, kt e ke, que são particulares de cada motor. A equação que relaciona todos os parâmetros do motor com a tensão Vt aplicada a seus terminais é dada por: (2.39) Onde a corrente é absorvida pelo rotor e depende da carga mecânica que será tracionada, portanto do torque exigido para o motor. A resistência R e a indutância L são proveniente dos enrolamentos do rotor. O circuito elétrico equivalente do motor CC é apresentado pela figura 2.19: Figura 2.18 - Circuito elétrico equivalente do motor cc Fonte: (MOHAN; UNDERLAND; ROBBINS, 1995) 37 A corrente de partida de motores CC é muito grande, as vezes até maior que o valor em regime permanente. Isto ocorre pois quando o motor é ligado, a armadura está parada e portanto a força contra-eletromotriz E é nula. Logo, toda a tensão sobre o motor é aplicada na resistência da armadura, que é pequena, resultando em uma corrente alta. (GIOPPO et al., 2009, p. 11) O motor de corrente contínua pode operar tanto em sentido de rotação horário quanto anti-horário e pode ser frenado em amboas os sentidos. Fazendo com que a tensão Vt nos terminais seja menor do que a força eletromotriz E, força-se uma corrente em sentido reverso no motor, isso provoca a frenagem do rotor. Além disso, a interrupção bruca da tensão de alimentação, faz com que a corrente I flua em sentido contrário até que a tensão E vá a zero. Para prevenir que os componentes da chave se danifiquem com essa corrente reversa coloca-se um diodo em paralelo com o motor ou com a chave, como apresentado anteriormente. Em resumo, o motor opera em quatro quadrantes distintos, como apresentado por MOHAM, figura 2.20. Figura 2.19 - Quadrantes de operação do motor Fonte: (MOHAN; UNDERLAND; ROBBINS, 1995) Deve-se atentar também ao ripple, ou ondulação da corrente nos terminais do motor provocada pelo conversor chaveado. O período alternado em que ele está com e sem tensão em seus terminais provoca uma ondulação de corrente que influencia no torque e no aquecimento do motor. 38 Mohan, Underland e Robbins (1995) afirmam que a ondulação de corrente no motor é inversalmente proporcional à indutância do rotor e à frequência de chaveamento do conversor, portato se for necessário, pode-se incluir um indutor em série com o motor afim de aumentar sua indutância equivalente e diminuir o ripple da corrente. 2.6 Conceitos de Instrumentação Eletrônica Por definição, transdutor é qualquer componente que tronsforma um tipo de energia em outra, por exemplo, energia química em mecânica. Sensores são transdutores especiais que transforma algum tipo de energia em elétrica, como energia luminosa, térmica, mecânica em energia elétrica. Na verdade, os sensores são dispositivos que tem propriedades elétricas, como capacitância ou resistividade, que se alteram com mudanças em outras varáveis físicas. Um sistema de instrumentação consegue, através da utilização de sensores e circuitos de condicionamento do sinal, traduzir uma variação de uma grandeza física em variação elétrica. Há um vasto campo de aplicações da instrumentação que se estendem desde controle de processos industriais até a microeletrônica. Uma aplicação especial é na robótica e sistema de automação. Segundo Braga e Braga (2002), algumas caraterísticas que devem ser levadas em conta na escolha de um sistema de medida são: Sensibilidade ou Ganho: relação entre a variação da saída (grandeza elétrica) e a variação da entrada (grandeza não elétrica). Por exemplo: 0,5 mV/Lux Calibração ou Range: Faixa de valores que podem ser medidos. Tanto a variável física quanto o sensor tem um determinado Range. Por exemplo, um termômetro que tem uma faixa de variação de 0 a 500ºC; Exatidão (Accuracy): Quão próximo do valor real da grandeza determinado sensor é capaz de medir. Por exemplo, um termômetro com uma exatidão de 3% quer dizer que se a temperatura real é 100ºC, pode medir entre 97ºC e 103ºC; 39 Precisão: Repetibilidade de um sensor. Para as mesmas condições física, quanto maior a precisão, menor é variação do valor medido; Resolução: Quanto menor a variação da entrada o sensor conseguir captar, maior sua resolução. Por exemplo: sistema de medida de distância com resolução de 1mm, ou 1µm; Linearidade e não-linearidade: A relação entre a variação da grandeza física e a variação das caraterísticas elétricas. Um sistema pode ser linear para determinado Range. Por exemplo, um termômetro que varia 1mV para cada 1ºC entre 0 e 100ºC é linear nessa região. Tempo de Resposta: Atraso na respota do sensor a uma variação do sinal físico de entrada. Os sensores podem ser divididos em 4 tipos: ativos ou passivos e analógicos ou digitais. Sensores analógicos assumem infinitos valores entre um máximo e um mínimo enquanto os digitais assumem valores discretos. Os sensores ativos atuam como geradores, ou seja, geram uma grandeza elétrica a partir de uma perturbação de entrada. Exemplo destes são os piezoelétricos que geram tensão a partir de uma deformação. Sensores passivos atuam como uma impedância, gerando uma variação de resistência, indutância ou capacitância. No projeto de um robô seguidor de trilhas, pode ser empregado um LDR: Light Dependent Resistor. Este é um sensor passivo e analógico do tipo resistivo. Uma alternativa a seu uso pode ser um fototransistor ou um fotodiodo. Ambos serão apresentados com mais detalhes a seguir. 2.7 Sensores LDR LDR é sigla para Light Dependent Resistor, ou Resistor Dependente de Luz. Sua caraterística básica é de ter uma resistência que se altera conforme altera a luminosidade incidente sobre ele. Um dos materiais mais utilizados para fabricação de LDRs que tem essa 40 propriedade é o Sulfato de Cádmio (CdS). A figura 2.21 mostra uma foto deste componente e seus símbolos elétricos. Figura 2.20 - Foto LDR real e seu símbolo elétrico O seu princípio físico é a fotocondução. Sabe-se que a incidência de luz, que é uma onda eletromagnética, fornece energia a qualquer material. Com mais energia, colocase os eletrons mais próximos da camada de condução, ou seja, aumenta-se a condutividade do material, diminuindo assim sua resistência (COELHO, 2004). O LDR é um dos sensores mais simples para transdução de luminosidade e apresenta algumas vantagens e desvantagens por isso. A principal vantagem do LDR é ter uma alta sensibilidade, ou seja, consegue detectar uma pequena variação de luz. No entanto, a não linearidade do LDR dificulta na mensuração direta da luz. A curva caraterística de um LDR é mostrada no gráfico da figura 2.22. Figura 2.21 - Foto LDR real e seu símbolo elétrico Fonte: (WITKOVSKI, 2007) 41 A equação 2.40 mostra a relação entre a resistência e o fluxo luminoso de um LDR. Na equação R é a resistência medida em Ohm (Ω), Φ é o fluxo luminoso medido Lumen (lm) e α e γ são constantes. Geralmente γ varia entre 0,5 e 1 determina a inclinação da curva. (2.40) Outras desvantagens do LDR são alta sensibilidade térmica: características mudam conforme temperatura ambiente; e elevado tempo de resposta. Como vantagem está a simplicidade do circuito condicionador do sinal. É possível fazer a transdução para um sinal elétrico basicamente fazendo um divisor de tensão, como o da figura 2.23, onde a tensão de saída é variável conforme a resistência do LDR, ou seja, à luz. Na aplicação em um Robô Seguidor de Trilhas, a alta sensibilidade é vantajosa pois permite uma boa variação da resistência entre a parte branca e a trilha preta. Através do divisor de tensão é possível ter uma boa variação de tensão no terminal de saída. Figura 2.22 - LDR em divisor de tensão Algumas alternativas de sensores para detecção de luz que podem ser empregados nesse projeto são os fototransistores que geram uma corrente de base que cresce conforme a incidência de luz. Também há os fotodiodos que quando polarizados reversamente têm sua condutividade alterada conforme incidência de luz. 42 2.8 Circuitos de Instrumentação Como dito anteriormente, não basta o sensor para fazer a transdução de uma grandeza não elétrica em outra elétrica. É necessário condicionar o sinal e trabalhá-lo a fim de obter uma variação desejada de algum parâmetro elétrico como corrente, tensão ou potência. O objetivo de um sistema de instrumentação muitas vezes é para controle de um processo. É necessário tratar o sinal captado pelo sensor e gerar a interpretação dos dados via um microcontrolador. Este será o procedimento feito no projeto do robô. Uma forma simplificada de trabalhar o sinal de um sensor é através de um divisor de tensão como mostrado na figura 2.24. Figura 2.23 – Divisor de tensão do LDR A saída do divisor é dependente do sinal do sensor como mostra as equações 2.41 e 2.42. Na primeira o sensor está ligado ao terra e na segundo o sensor está ligado ao VCC: (2.41) (2.42) O divisor de tensão é mais empregado quando o sensor é do tipo passivo, por exemplo um LDR ou um termistor – resistor que varia com a temperatura. A saída deste é analógica e pode ser entrada para um conversor analógico digital, ou para alterar o ganho de 43 um amplificador possibilitando assim aplicações como controle de acionamento automático de luz. Outros circuito de intrumentação bastante utilizado é a ponte Wheatstone. Nela coloca-se um sensor passivo em uma das pernas da ponte e mede-se a tensão nos terminais intermediários. É possível regular a ponte para uma condição de equilibrio onde a tensão Vo é igual a zero volts. Qualquer variação do sensor provoca assim uma tensão que pode ser medida e processada pelo sistema de controle. A figura 2.25 mostra a ponte de Wheatstone. Em condição de equilibrio tem-se as impedâncias da ponte na seguinte relação. (2.43) Uma variação da grandeza medida, como uma deformação de um Strain Gage, sensor resistivo de deformação (pode ser usado para medir força por exemplo), provoca o desequilíbrio da ponte. Figura 2.24 - Ponte de Wheatstone Fonte: (BRAGA; BRAGA, 2002) Além dos circuitos passivos, um componentes largamente utilizado é o amplificador operacional. Os amplificadores operacionais (AOP) “São condicionadores ativos capazes de aumentar a potência de um sinal através do aumento da amplitude da sua tensão ou corrente.” (BRAGA; BRAGA, 2000, p. 20). A representação de um AOP é feita na figura 2.26. Caracterisam-se por possuir: 44 Alta Resistência de entrada (idealmente infinita) ⇒ as entradas do AOP praticamente não drenam corrente dos circuitos externos. Isto significa que a carga sobre a fonte de sinal é muito reduzida, evitando-se assim distorções no sinal medido; Baixa Impedância de Saída (idealmente zero); A entrada diferencial: permite que muitos tipos de ruídos, presentes em ambos terminais de entrada (modo comum) sejam fortemente atenuados; Alto ganho (idealmente infinito): permite que o ganho da topologia seja determinado inteiramente pelos componentes externos, deixando o sinal praticamente imune às variações de temperatura e das variações na fonte de alimentação. Alta faixa de Passagem (idealmente infinita) Alta Razão de rejeição modo comum (CMRR) (BRAGA; BRAGA, 2000, p. 23). Figura 2.25 – Amplificador Operacional Existe uma infinidade de circuitos construidos com amplificadores operacionais que podem ser usados no processamento de sinais de transdutores. Um exemplo é o amplificador da figura 2.27. Este circuito implementa um comparador que mantem a saída em nível VCC enquanto a tensão do divisor do LDR for menor do que a a tensão do potenciômetro. Quando a luz incidente diminui no LDR, sua resistência aumenta ao ponto qua tensão no terminal negativo do amp op ultrapassa a do terminal positivo, levando a saída a uma saturação negativa que aciona o led. Figura 2.26 - Circuito comparador com Amplificador operacional Fonte: (WITKOVSKI, 2007) 45 Um exemplo de amplificador linear com realimentação negativa é mostrado na figura 2.28. Este amplifica e inverte o sinal de entrada, na saída. Figura 2.27 - Amplificador inversor O ganho do amplificador inversor é dada por: (2.44) Com um amplificador operacional é possível criar integradores e derivadores, fontes de correntes, amplificadores, filtros ativos, geradores de sinais entre outras aplicações. Neste projeto, foi pensado em divisores de tensão e circuitos Schmitt Trigger com histerese. Os dados proveniente do LDR foram processados através do microcontrolador que será descrito no próximo subcapítulo. Um exemplo de circuito que usa realimentação positiva é o comparador Schmitt Trigger, figura 2.29. Esse realiza a comparação dos sinais de entrada e apresenta na saída dois possíveis valores de tensão (MALVINO, V. 2, 1995). Figura 2.28 - Schmitt Trigger 46 2.9 Microcontroladores 2.9.1 Microcontroladores Microcontrolador é um dispositivo eletrônico digital programável. A principal característica dos microcontroladores é possuir integrado em um único dispositivo vários blocos funcionais necessários para o desenvolvimento de uma rotina programável de controle de qualquer processo. Os microcontroladores possuem interfaces com o ambiente externo a ele como portas de entrada e saída digitais e analógicas, portas PWM, portas de comucação serial e paralela, etc. Além disso, possuem funcionalidades como conversores analógicos digitais, temporizadores e interrupções. Para que um microcontrolador desempenhe uma função ele deve ser programado. Isso é feito através da gravação de um conjunto de instruções, estruturado através de um software, que é gravado em uma memória interna. Na medida que ele executa uma determinada instrução faz uma comunicação entre registradores internos, unidades de armazenamento de dados e unidades de processamento. Geralmente, como no caso do microcontrolador PIC, a memória de dados e memória de instruções do programa são separadas. Os microcontroladores PIC tem uma quantidade de instruções limitadas, o que confere a eles a arquitetura RISC: Reduced Instruction Set Computer. Cada instrução de um microcontrolador é feita em pelo menos um ciclo de máquina, ou seja, a cada transição do relógio (Clock interno) do dispositivo ele faz uma movimentação de dados para executar uma determinada operação. Entre as memórias internas associadas a um micontrolador têm: Memória EEPROM: Electrically-Erasable Programmable Read-Only Memory: Geralmente onde é gravado o conjunto de instruções do programa. Este é mantido quando o dispositivo é desligado; Memória RAM: Random Access Memory: Memória volátil onde geralmente são gravados os dados durante a execução do programa; 47 Memória Flash: Outra tecnologia de memória não volátil para armazenamento de dados, geralmente armazena o programa a ser executado. A figura 2.30 apresenta um resumo dos blocos apresentados previamente: Figura 2.29 - Blocos que compõe um microcontrolador No caso, CPU é a Unidade Central de Processamento que acessa as memórias e as interfaces através de registradores específicos. 2.9.2 PIC16F874A PIC é a sigla em inglês para “controlador integrado de periféricos”, é o conjunto de micrcontroladores da fabricante Microchip Technology Inc. Os diversos microcontroladores com a marca PIC são diferenciados em famílias, que reúnem dispositivos de características semelhantes. O PIC16F874A pertence a família 16F87X junto com o *73A, *76A e *77A. Estes compartilham o mesmo datasheet, diferindo entre si em valores específicos. Segundo seu datasheet, o PIC 16F874A tem como principais caraterísticas: Arquitetura RISC: 35 instruções de máquina; Encapsulamento com 40 pinos; 48 Memória Flash para gravação do programa: 4K x 14 bits (uma instrução em PIC tem 14 bits de tamanho); Memória de dados – RAM: 192 Bytes; Memória de dados – EEPROM: 128 Bytes; Dois módulos de Captura/Comparação/PWM; PWM com resulução máxima de 10 bits; Portas de comucação serial síncrona: SPI™ (dispositivo mestre) e I2C (dispositvo mestre ou escravo); Receptor no protocolo de comunicação USART/SCI (Universal Synchronous Asynchronous Receiver Transmitter); Conversor A/D (Analógico digital) de 10 bits com até 8 entradas multiplexadas e com tensão de referência programável; 5 portas de entrada/saída (I/O ports); 15 rotinas de inturrupção; Velocidade de clock de 20MHz e 200ns de ciclo de instrução; Temporizadores (cronômetros) internos com ajuste programável de tempo; Porta paralela com 8 bits de dados e sinais de controle externos (RD, WR e CS); Alimentação simples de 5V; Modo de baixo consumo de energia – Sleep mode; Em resumo a figura 2.31 apresenta as funcionalidades do PIC16F874A em comparação com os demais microncontroladores da mesma família. 49 Figura 2.30 - Características principais dos PICs 16F87X Fonte: (Datasheet PIC16F87X) A figura 2.32 apresenta a pinagem do PIC16F874A no encapsulamento PDIP. Figura 2.31 - Pinos encapsulamento PDIP do 16F874A e 16F877A Fonte: (Datasheet PIC16F87X) 50 Conforme figura 2.32, e resumo das funcionalidades apresentadas na figura 2.31, a identificação dos pinos é feita da seguinte forma: Pinos com identificação R são do tipo Entrada/Saída digital, I/O Ports (Input/Output). Tem-se portas A, B, C, D e E do tipo I/O digital; Pinos com identificação AN são do tipo entrada Analógica; VRef- e Vref+ são pinos para referência dos conversores AD (ADC) internos; MCLR: Memory Clear – usado para resetar o microcontrolador. Deve ser mantida com um resistor de pull-up com a tensão de alimentação; CCP1 e CCP2: são as portas de Capture/Compare/PWM; OSC1 e OSC2: são as portas usadas para ligar ao gerador de clock externo (geralmente um Crystal de quartzo.); RBO/INT: Permite uma interrupção no fluxo do programa quando muda o estado dessa porta. Geralmente usado para detectar estado de botões e Push-Bottons; VDD e VSS: respectivamente tensão de alimentação (5V) e referência terra (GND). As demais configurações de portas têm aplicações mais específicas, que podem ser consultadas no Datasheet do componente. Para este projeto, serão usadas as portas PWM, entradas analógicas, saídas digitais e possibilidade de programar interrupção através do pino RB0/INT para mudança do sentido de rotação do motor por parte do operador do protótipo. 2.9.3 Programando no PIC Como apresentado anteriormente, para executar o controle de um processo, o microcontrolador deve ser programado. Um programa ou software é um conjunto de instruções sequenciais que devem ser executadas para desempenhar a função desejada. Em baixo nível, ou seja, em linguagem binária, o PIC conta com 35 instruções de 14 bits cada uma. Estas instruções são gravadas pelo projetista em uma memória 51 interna e são executadas a cada ciclo de máquina do microntrolador. Para se executar uma instrução, o microcontrolador acessa a memória de programa, Flash, armazena um registrador interno e faz a decodificação dessa palavra de 14 bits. Um registrador PC ou Program Counter é incrementado a cada chamada para a próxima instrução a ser decodificada. Geralmente a instrução vem com uma operação e o endereço de memória onde está o dado a ser processado ou a operação é feita sobre os bits que estão nos registrados internos do microcontrolador, que podem ser provenientes das interfaces externas. A figura 2.33 apresenta o diagrama de blocos da arquitetura interna de um microcontrolador PIC16F874A, onde cada bloco representa um registrador interno. 52 Figura 2.32 - Diagrama de blocos do PIC16F874A Fonte: (Datasheet PIC16F87X) Em nível de máquina, as instruções são palavras binárias, ou seja, assumem valores 0 ou 1, onde zero é nível lógico baixo e 1 é nível lógico alto. No entanto, para que o projetista consiga com maior facilidade montar o programa a ser executado, foi criada a linguagem Assembly. 53 Assembly consiste em uma forma alternativa de representação dos códigos de máquinas usando mnemônicos, ou seja, abreviações de termos usuais que descrevem a operação efetuada pelo comando em código de máquina. A conversão dos mnemônicos em códigos binários executáveis pela máquina é feita por um tipo de programa chamado Assembler (montador). (PEREIRA, 2003, p.15) Como o conjunto de instruções do microcontrolador é bastante simplificado, para se programar funções mais complexas usando Assembly fica extremamente complicado e limitado. Com base nisso busca-se linguagens de programação em mais alto nível, no caso a Linguagem C. Assim como outras linguagens de alto nível, C utiliza a filosofia de programação estruturada, ou seja, os programas são divididos em módulos ou estruturas (que em C são chamados de funções) independentes entre si e com o objetivo de realizar determinada tarefa. (PEREIRA, 2003, p.18) Com a utilização do C é possível criar aplicações bem complexas. Mas para utilizá-lo na programação do PIC, é necessário um compilador que traduza as linhas de código em C para linguagem de máquinas e instruções próprias deste microcontrolador. Por isso, necessita-se de compiladores desenvolvidos especialmente para PIC que contêm a biblioteca necessária para o funcionamento do código. O compilador utilizado neste projeto foi o PCWH Compiler versão 3.236 da fabricante Custom Computer Services, Inc. (CCS). “Ele consiste em um ambiente integrado de desenvolvimento (IDE) para sistemas operacionais Windows e suporta toda a linha de microcontrolador PIC”. (PEREIRA, 2003, p.33) Este compilador já contém uma série de funcionalidades que ajudam o projetista a configurar os registradores do microcontrolador para as condições do projeto. Quando é feito a compilação do código, não havendo nenhum erro, geram-se alguns arquivos como apresentado na figura 2.34. Destes, o arquivo onde fica escrito o código é o *.c (asm para assembly), o arquivo *.inc contem informações para o compilador e o arquivo *.hex é o utilizado para ser gravado no microcontrolador. 54 Figura 2.33 - Conjunto de arquivos do compilador Fonte: (ANTONIO, 2006, p. 6) O compilador CCS PCWH apenas gera os arquivos de compilação. Dois outros softwares ainda podem ser usados, para simulação e gravação. Para simular o funcionamento do código, foi utilizado neste projeto o software PROTEUS versão 7.7 da fabricante Labcenter Eletronics. Este software permite a simulação do microcontrolador em conjunto com os outros componentes elétricos do circuito projetado. A desvantagem é que não se consegue debugar o código, ou seja, verificar as operações intermediárias que acontecem no código. O teste que o projetista faz limita-se a um teste “caixa preta” que verifica apenas a funcionalidade do sistema. Para fazer o debug do código, ou seja, o teste da execução linha a linha do programa, e também para o processo de gravação utiliza-se o software MPLab, que é um IDE da própria Microchip Inc, fabricante do PIC e é integrado em placas de desenvolvimento de projetos com PIC. Além de possibilitar a edição e compilação do código, o mesmo permite: 55 “Simulação: O MpLab possui ferramentas para simulação do programa no próprio computador, possibilitando a execução passo a passo, visualização e edição do conteúdo dos registradores, edição de estímulos (entradas), contagem de tempo de execução, etc. Gravação: Para que o programa seja executado no microcontrolador, o arquivo hexadecimal deve ser gravado no PIC. O MpLab oferece suporte aos gravadores fabricados pela Microchip. Emulação: A Emulação é um recurso de desenvolvimento que possibilita testes em tempo real. O MpLab oferece suporte ao hardware necessário para estar emulando um determinado programa. Esta emulação é feita conectando-se (através do hardware mencionado) o computador ao sistema projetado, no lugar do PIC.” (ANTONIO, 2006, p. 6) 2.9.3 ADC As duas funcionalidades do PIC que serão utilizadas neste projeto é a função ADC – Analogic to Digital Converter e PWM. Serão conceituadas estas estruturas a seguir. As portas indentificadas como AN (1 a 7) podem ser usadas como entradas analógicas numa faixa de 0 a 5V para o conversor analógico digital interno do PIC. Para realizar a conversão, feita por registradores internos, o PIC transforma o nível de tensão analógico em um valor binário de até 10 bits, podendo ser configurado também como ADC de 8 bits. Dessa forma, quando o valor lido é de 0V, o valor em decimal correspondente é de 0, enquanto que a entrada de 5V corresponde a 1023 em 10bits, ou 255 em 8bits. A forma de conversão é feita seguindo o seguinte equacionamento: Para 10 bits: (2.45) (2.46) Para 8 bits: (2.47) (2.48) 56 Dessa forma um valor de tensão de 2,5V por exemplo correspondente a um valor decimal igual a 512 em configuração de 10 bits e 128 em 8 bits, conforme equações 2.49 e 2.50. Exitem 8 portas analógicas no PIC16F874A que podem ser utilizadas simultaneamente através de multiplexação. Isso quer dizer que o projetista deve configurar a porta a ser lida pelo ADC interno do PIC para cada aquisição. Outro ponto importante que deve ser considerado é o tempo de aquisição. Este é necessário pois o capacitor interno do ADC leva um certo tempo para carregar e adiquirir a amostra de tensão que será convertida em digital. Este valor pode ser de 10µs. É possível utilizar a tensão de referência interna, que será de Vdd (5V) ou utilizar uma tensão de referência através do pino AN3. Para configurar as portas a serem usadas como analógicas segue-se exemplos de comandos de configuracões em linguagem C: setup_ADC_ports (ALL_ANALOG); //Todas as portas ANx usadas como entradas analógicas; setup_ADC_ports (RA0_RA1_RA3_ANALOG); //Portas AN0, AN1 e AN3 configuradas como analógicas setup_ADC_ports (A0_RA1_ANALOGRA3_REF); //Portas AN0, AN1 são entradas analógicas e AN3 é usada como referência. Para adquirir um valor e convertê-lo para digital, segue um exemplo de comandos em linguagem C; set_ADC_channel(2); //seleciona a porta AN2 delay_us(10); //tempo de aquisição do valor de tensão para ser convertido, em microssegundos value = read_ADC(); //variável value recebe o valor digital da entrada analógica. Através dessas linhas de programação é possível capturar o valor dos sinais dos sensores para futura comparação. 57 2.9.4 PWM O PIC16F874A também possui duas portas Capture/Compare/PWM (CCP), sendo a CCP1 e CCP2. Através destas portas é possível gerar sinais PWMs através do PIC com nível de amplitude TTL, ou seja, 0 e 5V e Duty Cycle ajustável através de programação. Os módulos PWM 1 e 2 possibilitam a determinação de razões cíclicas variando de 0 a 100% através de valores de resolução máxima de 10bits. Este valor depende da frequência a ser configurada. O range de frequências gerado pelo PIC também é limitado, como apresentado na tabela 2.1: Valores máximos e mínimos de frequência do módulo PWM e resolução equivalente do Ciclo de Trabalho (Duty Cycle – D) Frequência máxima: 6000 kHz Resolução de ciclo de trabalho (D) Duty = 0 a 4 Frequência mínima: 1,465 kHz Resolução de ciclo de trabalho (D) Duty = 0 a 1024 Table 2.1 - Frequências máximas e mínimas configuráveis para PWM Para se determinar o valor de D em valores discretos recorre-se ao seguinte equacionamento, feito com base na máxima resolução de Duty: (2.49) (2.50) Como exemplo, se se deseja configurar um D de 50%, programa-se o valor de Duty Cycle como sendo 512. Para configurar o módulo CCPx como PWM e acioná-lo segue os comandos em linguagem C: setup_timer_2(T2_DIV_BY_16,255,1); //Timer dois define a frequência do PWM neste caso setup_ccp1(CCP_PWM) / / configura CCP1 como um PWM set_PWM1_duty(VALOR); // Configura o valor de Duty Cycle dentro dos parênteses. Com base nas funções de PWM e Conversor Analógico Digital é possível fazer a lógica de comando do Robô Seguidor de Trilhas. 58 Capítulo 3 Desenvolvimento Prático 3.1 Visão geral do projeto O Robô Seguidor de Trilhas é um projeto inicial no campo da engenharia mecatrônica. Uma característica de sistemas robóticos é a interface entre componentes eletrônicos e partes mecânicas. Da mesma forma, a integração entre vários blocos eletrônicos se faz necessária para habilitar as funcionalidades do sistema. Os requisitos de funcionamento deste sistema é que ele se locomova de forma autônoma guiada por uma trilha pintada em cor escura sobre uma superfície branca. Dessa forma um sistema de sensoriamento deve identificar curvaturas na trilha. As informações dos sinais dos sensores são enviadas para um bloco que analisa e envia sinal de controle para os drivers dos motores. A locomoção do robô será feita através de dois eixos logitudinais independentes tracionados por motores de corrente contínua, cada qual com seu circuito de acionamento. A diferença relativa entre as velocidades angulares de cada eixo gera uma variação angular na trajetória do robô. Pode-se conceituar o funcionamento do robô através de um sistema de controle simples com realimentação. No entanto, no presente projeto não foram considerados compensadores que melhorariam o desempenho do sistema. O sistema é formado por um conjunto de miniprojetos eletrônicos e da parte mecânica que se comunicam como apresentado na figura 3.1. 59 Mecânica Bateria Sensor LDR Esquerdo Sensor LDR direito Microcontrolador PIC16874A Driver motor esquerdo Driver motor direito Motor CC esquerdo Motor CC direito Figura 3.1 - Diagrama de blocos do Robô A seguir serão discutidos os projetos de cada um desses blocos e alternativas viáveis para cada parte: drivers, motores, instrumentação, microprocessador (código criado) e alimentação elétrica e projeto mecânico. 3.2 Drivers dos motores de corrente contínua 3.2.1 Projeto Ponte H Foram projetados dois tipos de acionadores de motores de corrente contínua para esse sistema. O primeiro é um circuito discreto de um conversor Ponte H e o segundo um conversor buck. O circuito Ponte H projetado é mostrado na figura 3.2. 60 Figura 3.2 – Projeto Ponte H Como são dois motores de corrente contínua, todos estes componentes devem ser duplicados, com excessão do CI 7408 que contêm 4 portas digitais de lógica E embutidas. A seguir será descriminado o funcionamento deste circuito. Assim como apresentado na revisão bibliográfica, a Ponte H atende aos seguintes requisitos: Controle de velocidade do motor através de variação de tensão em seus terminais por PWM. Rotação do motor em ambos os sentidos; Frenagem de forma elétrica. No projeto desta Ponte H os transistores T3 e T4 chaveiam enquanto que os trasistores da T1 e T2 são alimentados diretamente com um sinal digital. A porta lógica END é util para evitar que os transistores do mesmo lado da ponte entrem em curto garantindo que a tensão de base em T3 será sempre 0V quando acionado T1 e a tensão de base em T4 será sempre 0V quando acionado T2. Esta caraterística é apresentada na tabela 3.1. 61 Combinação das entradas nas portas E para acionamento das chaves da Ponte H P1 = 0V (0) T1 - Desligado P1 & PWM PIC = 0 T4 desligado P2 = 5V (1) T2 – Ligado P2 & PWM PIC = 1 T3 Ligado P1 = 5V (1) T1 - Ligado P1 & PWM PIC = 1 T4 Ligado P2 = 0V (0) T2 – Desligado P2 & PWM PIC = 0 T3 Desligado P1 = ̅̅̅̅ As entradas P1 e P2 não ter o mesmo nível lógico Obs: & é simbologia de operação lógica E Tabela 3.1 - Lógica das entradas da Ponte H para ativar as chaves Portanto de acordo com a tabela 3.1, verifica-se que não é possível acionar as chaves diretamente, evitando curto circuito. A pinagem da Porta E é mostrada na figura 3.3. Figura 3.3 - Pinagem CI SN74LS08 Fonte: Datasheet SN74LS08 Analisando o circuito novamente, verifica-se que as chaves T1 e T2 são do tipo PNP e acionadas através de um transistor NPN como mostrada a figura 3.4. Essa configuração foi feita dessa forma para garantir que o BD140 trabalhe em corte ou saturação. Figura 3.4 - Polarização das Chaves T1 e T2 62 Verificando a malha, observa-se que quando Q1 tem uma tensão de base com nível lógico alto (cinco volts em sinais TTL), ele entra em condução, dessa forma o ponto entre R1 e R3 se torna 0V. O transistor PNP conduz com 0V em seus terminais, portanto ele satura. Caso contrário, se Q1 está em corte, a tensão que aparece na base de T1 é VCC que o mantem o BD140 em corte. A tabela 3.2 a seguir resume este fato; Circuito de polarização das chaves T1 e T2. P1 (P2) = 0V (0) Q1 (Q2) está em corte VB(T1) (VB(T2) ) = Vcc – Ib.R1> 0 T1 (T2) = Corte P1 (P2) = 5V (1) Q1 (Q2) em condução VB(T1) (VB(T2) ) = 0V T1 (T2) = Satura Tabela 3. 2 - Circuito de polarização das chaves T1 e T2 Deve ser dada a importância de se colocar os diodos em antiparalelo com os TBJ, pois estes provem um caminho para corrente reversa que surge da desmagnetização do motor. Os transistores BD139 e BD140 são transistores de potência que conseguem transportar até 1,5A de corrente de coletor em saturação. O BC337 já é um transistor NPN de menor potência. Neste projeto, o PWM é gerado pelo PIC, este tem uma tensão de 5V com larguras de pulsos programáveis. Como são apenas 2 saídas PWM do PIC o mesmo alimenta as entradas das duas portas E do circuito. A frequência de chaveamento definida para este projeto foi de 1kHz. 3.2.2 Alternativa para driver em Ponte H Neste trabalho, foi feito o projeto de um conversor Ponte H discretamente. Caso o projetista queira utilizar, existe um circuito integrado que desempenha a mesma função. É o circuito L298N. Uma foto deste componente é mostrada na figura 3.5. As especificações desse CI são apresentadas por Gioppo et al. (2009, p. 14): 63 [...] são implementadas duas pontes H. A sua utilização é diferente da ponte H anterior e possui algumas peculiaridades como podem ser observadas no datasheet. Dentre as diferenças estão: a existência do “sense” que deve ser conectada a um resistor para o terra com o intuito de controlar a corrente de carga de cada ponte; a existência de quatro pinos “out”, duas para cada ponte, que é por onde sai a corrente controlada; a existência de um pino “Vs” para a entrada da tensão das duas pontes; “VSS” para a alimentação dos blocos lógicos; “GND” para o terra; dois “Enable”, um para cada ponte, que funciona justamente para ativar as pontes; e quatro pinos “Input”, dois para cada ponte, que determinam por qual “out” sairá a tensão fornecida em “Vs”. No datasheet consta ainda quatro estados para a ponte H: no caso do Input1 estar recebendo sinal e do Input2 não, o motor funciona para “frente”, no caso contrário o motor funciona para “trás”. Caso os dois Input estejam iguais, ou seja, ambos recebendo sinal ou ambos não recebendo sinal, temos o freio do motor, e caso enable seja desligado o motor roda apenas com a inércia. Figura 3.5 - CI L298N Fonte: (GIOPPO, 2009) 3.2.3 Projeto Conversor Buck Por simplicidade de montagem, no protótipo deste projeto foi empregado um outro tipo de driver para os motores CC. Este é apresentado na figura 3.6. 64 Figura 3.6 - Driver com transistor Darlington Verifica-se que a estrutura deste circuito é bem mais simples do que na Ponte H, isso confere uma facilidade de montagem mas restringe a aplicação dele pois não permite que inverta o sentido de rotação do motor, dessa forma este conversor apenas altera a tensão nos terminais do motor de acordo com o sinal PWM como apresentado na seção 2.4.1. É necessário que a corrente de base do transistor Q1 seja suficientemente grande para polarizar o transitor T1 em saturação. Assumiu-se inicialmente neste projeto uma corrente de base de 5mA. . Dessa forma a tensão no ponto 1 é aproximadamente 1,7V (valor aproximado da queda entre base e emissor do par de transistores). Como o sinal PWM proveniente do PIC é de nível TTL, ou seja, 5V, a equação do resistor de base fica: (3.1) (3.2) (3.3) Dessa forma um valor máximo do resistor a ser usado é de 660 ohm. Devese tomar cuidado para não usar resistores de valores muito baixos, pois dessa maneira a corrente de base se torna muito alta levando ao risco de queimar a saída do microcontrolador 65 que apresenta uma capacidade limitada de fornecimento de corrente. Ao mesmo tempo, um nível de super saturação ocasiona atraso na recuperação dos portadores da junção do TBJ o que influencia negativamente a resposta transitória. Por fim, para que a corrente de base fosse ligeralmente maior, optou-se por um resistor comercial de 540Ω o que confere uma corrente de base de 6,8mA. O par de transistor Darligton foi utilizado para garantir maior ganho de corrente e assim garantir que o transistor T1 opere em corte e saturação. O diodo D1 novamente foi empregado para suprir a corrente reversa que surge no motor quando a chave está desligada. No capítulo 3 serão apresentados os resultados de simulação dos dois conversores apresentados anteriormente. 3.3 Projeto Circuito do Sensoriamento Como apresentado previamente, este projeto utiliza um sensor LDR para detecção da variação da intensidade luminosa que inside sobre ele. Para captação do sinal do LDR foi empregado um divisor de tensão, conforme apresenta a figura 3.7. Figura 3.7 - Divisor de tensão com LDR 66 Como o LDR é um sensor estremamente sensível à luz, qualquer variação de luminosidade provoca uma alteração em sua resistência e portanto na tensão de saída Vo. A tensão de saída Vo varia entre 0 e VCC conforme a incidência de luz e alteração da resistência do sensor. O valor da leitura do LDR através do divisor resistivo é analógico, ou seja, pode apresentar infinitos valores dentro da faixa de 0 a 5V. Poderia ser utilizado os dois arranjos da figura 3.8. Figura 3.8 - Topologias com divisor de tensão Como a resistência do LDR diminui conforme a intesidade da luz aumenta, tem-se duas situações em cada caso. O caso onde o sensor está ligado ao terra tem sua tensão tendendo a Vcc conforme diminui a luz ambiente e a tensão tendendo a zero conforme aumenta a luz ambiente, as equações 3.4 e 3.5 apresentam os casos limites analisados. ( ) ( ) (3.4) (3.5) O caso onde o sensor está ligado ao Vcc tem sua tensão tendendo a Vcc conforme aumenta a luz ambiente e a tensão tendendo a zero conforme diminui a luz ambiente, as equações 3.6 e 3.7 apresentam estes casos. ( ) (3.6) ( ) (3.7) 67 Devido à caraterística analógica da saída do divisor de tensão, deve-se projetar um circuito que vai analisar essa saída e determinar se o sensor está sobre a faixa ou não, para poder detectar uma curva. Para possibilitar a calibração do divisor, foi utilizado um potenciômetro de 5KΩ. Dessa forma é possível determinar a excursão da tensão de saída conforme a variação média da resistência do LDR em determinada condição de ambiente. 3.3.1 Teste de valores de LDR Para projetar a resistência do divisor de tensão, foi necessário determinar qual o valor médio da resistência elétrica do LDR quando sobre a superfície branca e sobre a superfície escura da trilha. Este valor é dependente de algumas varíaveis: tamanho do LDR. O LDR pode ser de 7mm e 10mm de comprimento do filamento; condições de ambiente, portanto varia conforme a intensidade de luminosidade do local onde está sendo medido; distância que o LDR está da superfície. Foram feitos experimentos no laboratório T4 do Departamento de Engenharia Elétrica (DEEL) da UEL, sob condições de luz artificial fluorescente, sobre a bancada e com uma distância média de 0,5cm a 1cm do LDR em relação à superfície. Foram testados LDR de 10mm e 7mm. Através do estudo dos sensores de 10mm e 7mm observou-se empiricamente que o primeiro apresentou uma melhor resposta para maiores distâncias da superfície enquanto que o de 7 mm apresentou uma maior variação de resistência quando próximo à superfície e à trilha. Por fim, optou-se em utilizar um LDR de 10 mm. Os valores encontrados médios são apresentados na tabela 3.3: 68 Teste de Resistência do LDR Condições: LDR de 10mm laboratório T4 do DEEL, 1cm da superfície, Superfície branca Faixa pintada em tinta preta R ≤ 2,8 kΩ R ≤ 3,5 kΩ Condições: LDR de 7mm laboratório T4 do DEEL, 1cm da superfície, Superfície branca Faixa pintada em tinta preta R ≤ 2,8 kΩ R ≥ 3,8 kΩ Valores médios com obstrução parcial da Luz: > 20 kΩ LDR escolhido para o projeto: 10 mm Tabela 3. 3 - Resultados dos testes com LDR 3.3.2 Determinação do Rpot do divisor de tensão A tensão de alimentação, Vcc neste projeto foi definida como 5V. Dessa forma, tendo variação de resistência do LDR definida, era necessário determinar um valor de resistência do potenciômetro que permitisse uma boa faixa de variação da tensão Vo. Para facilitar a determinação, duas tabelas, no software Microsoft Excel, foram desenvolvidas para verificar a resistência Vo, conforme as equações 2.41 e 2.42 em função da resistência do LDR e do resistor do potenciômetro. Por fim decidiu-se uma calibração de 3kΩ conforme tabela 3.4. 69 Variação da tensão de um divisor de tensão proporcionalmente à resistência do LDR Divisor de tensão - LDR ligado ao Vcc Vcc (V) 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 LDR (Ω) 1000 1500 1800 2100 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 40000 R (Ω) 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 Divisor de tensão - LDR ligado ao GND Vo (V) Vcc (V) 3,750 5 3,333 5 3,125 5 2,941 5 2,830 5 2,778 5 2,727 5 2,679 5 2,632 5 2,586 5 2,542 5 2,500 5 2,459 5 2,419 5 2,381 5 2,344 5 2,308 5 2,273 5 2,239 5 2,206 5 2,174 5 2,143 5 0,349 5 LDR (Ω) 1000 1500 1800 2100 2250 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 10000 R (Ω) 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 Vo (V) 1,250 1,667 1,875 2,059 2,143 2,222 2,273 2,321 2,368 2,414 2,458 2,500 2,541 2,581 2,619 2,656 2,692 2,727 2,761 2,794 2,826 2,857 3,846 Tabela 3. 4 - Valores de Vo conforme variação da resistência do sensor Optou-se neste projeto empregar a topologia com o sensor ligado à referência terra. Observa-se que nos valores médios presente nas condições do ambiente de teste, tem-se um range entre 1,25 V e 2,857V. No capítulo 4 será demonstrada a curva de varição de Vo e RLDR conforme variação da luz. 3.3.2 Comparador lógico Schmitt Trigger Como já mencionado, a calibração do sensor depende da luz ambiente. Para este projeto, todo o cálculo do divisor de tensão e da lógica de interpretação da tensão de saída foi baseada nas condições da tabela 3.4. 70 Para efeitos práticos, deteminou-se uma variação de resistências para o LDR conforme tabela 3.5 abaixo: Faixas de resistências do LDR – valores definidos para condições da tabela 3.3 Superfície branca: Faixa preta: R < 3kΩ R > 3,5kΩ Tensão conforme topologia da tabela 3.4 Superfície branca: Faixa preta: V < 2,5V Vo > 2,69V Tabela 3. 5 - Valores de referência para comparador lógico Estes valores foram determinado para digitalizar a saída do sensor. Ou seja, conforme a tabela 3.5, a tensão Vo passa a assumir dois valores lógicos: 0 (0V) e 1 (Vcc). Assim, uma lógica é determinada na tabela 3.6. A representação gráfica desta tabela é apresentada na figura 3.9. Valores Lógicos de Vo Referência Negativa R < 3kΩ e V < 2,5V Vo = 0V (Nível digital 0) Superfície branca Referência Positiva R > 3,5kΩ e Vo > 2,69V Vo = Vcc (Nível digital 1) Trilha escura Histerese 3,0kΩ ≤ R ≤ 3,5kΩ e Vo = Mantem estado anterior. 2,5V ≤ Vo ≤ 2,69V Tabela 3. 6 - Valores de referência para comparador lógico Figura 3.9 - Curva de histerese do comparador Schmitt Trigger 71 Incerteza. Baseado nas tabelas 3.5 e 3.6, e nas simulações com o divisor de tensão do LDR, a tabela 3.7 resume a comparação dos valores de tensão. Divisor de tensão - LDR "EM BAIXO" Vcc LDR R Vo Estado Pista 5 1000 3000 1,250 zero Branca 5 2600 3000 2,321 zero Branca 5 2700 3000 2,368 zero Branca 5 2800 3000 2,414 zero Branca 5 2900 3000 2,458 zero Branca 5 3000 3000 2,500 histerese mantêm 5 3100 3000 2,541 histerese mantêm 5 3200 3000 2,581 histerese mantêm 5 3300 3000 2,619 histerese mantêm 5 3400 3000 2,656 histerese mantêm 5 3500 3000 2,692 histerese mantêm 5 3600 3000 2,727 satura trilha 5 3700 3000 2,761 satura trilha 5 3800 3000 2,794 satura trilha 5 3900 3000 2,826 satura trilha 5 4000 3000 2,857 satura trilha 5 10000 3000 3,846 satura trilha Tabela 3. 7 - Interpretação do comparador em relação à detecção das trilhas Com base nesta lógica existe um circuito discreto que permite fazer essa comparação levando em conta os valores de referência, este é denominado Schmitt Trigger. O circuito projetado neste trabalho é mostrado na figura 3.10. Figura 3.10 - Comparador Schmitt Trigger 72 Neste caso, quando a tensão de entrada positiva passa do valor de referência positiva, conforme tabela 3.6, ele satura para o valor de Vsat. Quando abaixa de 2,5V ele satura negativamente. Como este amplificador operacional tem alimentação única, foi adicionado na entrada negativa um divisor de tensão que define a tensão de referência negativa, VRef-, como 2,6V. Com a relação do resistor da entrada positiva com o da malha de realimentação positiva, dada pela equação 3.7, é configurado o valor de referência positiva (UTP). A histerese é a duas vezes a diferença entre a tensão de referência positiva (UTP) e Vref-, conforme equação 3.8. Portanto a tensão de referência negativa (LTP) é dada por 3.8; (3.7) (3.8) O sinal Vo da saída do amplificador operacional satura para 12V ou para 0V, conforme os valores de histerese. O circuito projetado não garante exatidão devido aos valores de resistores comerciais que podem ser usados, variações percentuais das resistências devido a fatores de fabricação, influência térmica, não idealidade das tensões de saturação do amplifacador operacional entre outros fatores. 3.3.2 Diodo Zener e Buffer de entrada O amplificador operacional deve ser alimentado com tensão maior do que 5V. Na configuração como Schmitt Trigger, quando o sensor estiver sobre a faixa escura, a saída do comparador deverá apresentar a tensão de saturação positiva. Essa é maior do que a tensão máxima suportada pela porta de entrada do PIC. Para evitar que uma entrada maior do que 5V queime a porta digital do PIC, deve-se grampear essa tensão de saída. Para fazer isso há pelo menos duas formas. A primeira é utilizando um divisor de tensão em série com a saída do comparador como apresentado na figura 3.11. 73 Figura 3.11 - Divisor de tensão para porta de entrada do PIC Em nível lógico alto, o comparador entrega aproximadamente 10V para o divisor de tensão. Este deve abaixar esta tensão para 5V para a porta digital do microcontrolador. A segunda forma de executar essa limitação de tensão é através de um diodo zener de 5,1V conforme mostra a figura 3.12. Por outro lado, a tensão de saturação negativa não é extamente zero volts quando a alimentação negativa do amplificador operacional é de zero volts. Isto devido às características reais do dispositivo, portanto deve-se garantir que o microcontrolador vai interpretar esta tensão como nível lógico zero. Para garantir que porta digital do micrcontrolador entenda como zero volts o nível lógico 0, pode ser necessário adcionados diodos em série com a saída do comparador para prover uma queda de tensão para próximo de 0V quando em nível lógico 0. Figura 3.12 - Grampeamento de tensão para máximo de 5,1V na entrada do PIC Neste caso, é desnecessário adcionar um resistor em série com o diodo zener, pois a saída do amplificador operacional é de alta impedância não havendo perigo de queimar o diodo zener. Em outras aplicações onde a saída de tensão a ser grampeada não é de 74 um amplificador operacional, é necessário incluir um resistor em série para evitar queima do componente. Além da questão do grampo de tensão em dois níveis de 0 e 5V, é necessário muitas vezes adcionar um buffer de tensão na entrada do PIC para que mesmo não queime a porta. O buffer é circuito com realimentação negativa e ganho unitário que serve para garantir alta impedância de entrada, provendo apenas tensão do sinal sem corrente, garantindo assim uma segurança a mais para a porta. O comparador Schmitt trigger, embora atenda aos requisitos da lógica deste projeto provendo uma curva de histerese e comparação que digitaliza o sinal do LDR, apresenta algumas desvantagens: Dificuldade de calibração: resistores comerciais e não ideais; Alto tempo de resposta amplificador operacional; Necessidade de prover uma tensão de alimentação maior do 5V; Componentes discretos que podem gerar problemas na implementação prática; Necessidade de grampear a tensão de saída em no máximo 5V para não queimar a porta de entrada do microcontrolador. Como o PIC16F874A conta com um conversor A/D que capta valores de 0 a 5V, foi decidido neste projeto implementar a lógica de comparação apresentada previamente através de programação do microcontrolador. Dessa forma, a tensão do sensor LDR serve de entrada para um das portas de conversor analógico digital do PIC. Este será explicado a seguir. 3.3 Projeto do algoritmo do firmware 3.3.2 Ligações físicas do microcontrolador O microcontrolador PIC16F874A foi utilizado para implementação da malha de controle do robô. Para realizar esta tarefa ele faz a leitura da entrada analógica do sinal de entrada proveniente dos sensores LDR esquerdo e direito e gera os pulsos PWM 75 necessários para o chaveamento dos transistores e acionamento dos motores esquerdo e direito. Para realizar estas tarefas, o PIC utilizará duas portas de entrada do tipo ANx e as duas portas CCP em configuração PWM. Além disso, se faz necessários utilizar algumas portas do microcontrolador que garantem seu funcionamento. Em resumo, os pinos que foram utilizados neste projeto são: Entradas analógicas: Pino 2 - AN0 – Ligado ao divisor de tensão do LDR Direito; Pino 3 - AN1 - Ligado ao divisor de tensão do LDR Esquerdo. Saídas: Pino 17 - CCP 1 – PWM para acionamento do motor Esquerdo; Pino 16 - CCP 2 – PWM para acionamento do motor Direito. Portas para correto funcionamento do microcontrolador: Pino 13 - OSC1/CLKI – Ligado ao cristal oscilador externo; Pino 14 - OSC2/CLKO - Ligado ao cristal oscilador externo; Pino 11/32 - VDD – Tensão de alimentação positiva – VDD = 5V; Pino 12/31 – VSS – Tensão de referência Terra –VSS = 0V; Pino 1 – MCLR*VPP – Memory Clear – Ligado ao VDD através de um resistor de 10kΩ. Evita que o micro se resete sozinho. Para resetar o microcontrolador fisicamente, conectar esse pino ao terra por um breve instante de tempo. Para que o microcontrolador funcione deve ser adicionado aos pinos 13 e 14 um gerador de clock externo. Este gerador de clock é feito através de um circuito oscilador. O componente ideal para esta implementação é o Oscilador a Cristal de Quartzo. A figura 3.13 mostra o circuito oscilador gerador de clock externo que foi implementado com os seguintes componentes: 1 Crytal Oscilador modelo HC49/S de 24MHz; 2 capacitores de cerâmica de 33pF. 76 Figura 3.13 - Circuito oscilador gerador de clock externo Em resumo, as ligações feitas no PIC são apresentadas na figura 3.14: Figura 3.14 – Ligações físicas ao microcontrolador 3.3.2 Lógica de funcionamento do Robô Com as informações já passadas sobre as ligações físicas do microcontrolador, agora será apresentada a lógica de funcionamento do robô. Como apresentado anteriormente, o robô se movimentará através de dois motores em eixos independentes e que se guiarão por uma trilha em tinta escura pintada sobre uma superfície branca. 77 Os LDR, através de um divisor de tensão, detectam variações de luz quando se encontram sobre a faixa preta e alteram a tensão de saída do divisor de tensão. Com base nos valores de referência de tensão apresentados na tabela 3.6 um comparador Schmitt Trigger é utilizado para digitalizar a sinal do sensor em dois níveis, 0V e 5V. Devido a maior facilidade em se implementar o comparador através de programação, a tensão presente sobre o LDR é então captada por uma porta analógica do microcontrolador e convertida em uma valor digital que será comparado com os valores de referência positiva e negativa digitais. O Conversor Analógico Digital (ADC) do PIC foi configurado para 8 bits de resolução. Duas variáveis foram criadas para armazenar o valor digital das entradas analógicas: valor_esq: lê o valor digital da entrada analógica AN1; o Valores entre 0 e 255 (0 e 5V) valor_dir: lê o valor digital da entrada analógica AN0; o Valores entre 0 e 255 (0 e 5V) O ADC do PIC foi configurado gera valores de 8 bits de resolução: entre 0 e 255. Duas constantes foram criadas para comparação. Estas foram calculadas baseado nas equações 2.47 e 2.48. : ref_neg = 128. Equivale ao valor de tensão de 2,5V conforme tabela 3.6. ref_pos = 138. Equivale ao valor de tensão de 2,69 conforme tabela 3.6 As variáveis valor_esq e valor_dir são comparadas com as contantes ref_neg e ref_pos e setam variáveis lógicas segundo gráfico da figura 3.10. Dessa forma duas variáveis foram criadas para : boLDR__esq: Valor lógico do sensor esquerdo: o 0: sensor está sobre a superfície branca; o 1: sensor está sobre a trilha escura. boLDR__dir: Valor lógico do sensor esquerdo: o 0: sensor está sobre a superfície branca; o 1: sensor está sobre a trilha escura. 78 Assim a figura 3.15 resume a comparação das variáveis para detecção da trilha. Valores das variáveis de comparação para detecção de curva na trilha Representação da detecção da curva Valores das variáveis boLDR__dir = 0; boLDR__esq = 0; boLDR__dir = 0; boLDR__esq = 1; boLDR__dir = 1; boLDR__esq = 0; boLDR__dir = 1; boLDR__esq = 1; boLDR__dir = 0; boLDR__esq = estado anterior; Mantem sentido que estava Obs: válido também para incerteza no sensor esquerdo Figura 3.15 - Detecção das curvas pelo robô 79 3.3.2.1 Acionamento do motor Seguindo a lógica apresentada, determinada a direção em que o robô irá seguir, o microcontrolador deve enviar o comando para acionar os motores de ambos os eixos independentes. O princípio de funcionamento deste sistema é que a diferença da velocidade angular entre os eixos causa uma variação angular na direção em que está se movendo. Como velocidade é diretamente proporcional à tensão aplicada aos terminais do motor, alterando a tensão nos terminais do mesmo, consegue-se alterar sua velocidade. Dessa forma, através da variação da largura de pulso do sinal do PWM que aciona a tensão de base do driver do motor, altera-se a tensão média em seus terminais conforme apresentado anteriormente. Assim, para realizar a curva basta acionar os PWMs com largura de pulsos diferentes entre si. Os drivers serão chaveados com larguras de pulsos diferentes e a tensão nos terminais também serão diferentes. O comando para configurar o Duty Cycle do PWM é apresentado abaixo: set_PWM1_duty(Dx); //PWM do motor esquerdo; set_PWM2_duty(Dx); //PWM do motor direito. A frequência configurada para os sinais PWM é de 1,465kHz. Afim de facilitar na alteração dos parâmetros necessário para calibrar o sistema em um bom funcionamento, foi determinado quatro constantes de valores de D: D1: Duty nominal – aciona os motores em linha reta; D2: Duty com maior largura de pulso para prover maior tempo de saturação e portanto maior velocidade a um dos motores; D3: Duty com menor largura de pulso para aumentar o diferencial de velocidade durante a curva do robô; D0: Duty com valor zero para parar o sistema quando ambos os sensores tocam a faixa. 80 Os motores utilizados neste projeto funcionam com níveis de tensão que variam entre 0,5V e 5V aproximadamente. O valor do D varia de 0 a 100% sendo configurado com 0 até 1024: (3.9) (3.10) Assim, um valor padrão foi utilizado para iniciar os testes no protótipos sendo estes: D1 = 250 correspondente a D = 24,41%; D2 = 350 correspondente a D = 34,14%; D3 = 150 correspondente a D = 14,65%; D0 = 0 correspondente a D = 0. A figura 3.16 ilustra a mudança de direção em relação à variação de velocidade entre os motores. Figura 3.16 - Direção em função da diferença de velocidade entre os eixos 3.3.3 Fluxograma de funcionamento Com base nas informações previamente passadas, o código, o qual está apresentado no anexo 1 do presente trabalho, tem o fluxo de comandos conforme fluxograma apresentado na figura 3.17. 81 Início Portas: entradas: AN0 (LDR dir) E AN1 (LDR esq) saídas: CCP1 (motor esq) E CCP2 (motor dir) Constantes:Duty Cycle: D1, D2, D3 e D0, ref_neg = 2,5V e ref_pos = 2,59V Variáveis: 8 bits: valor_esq, valor_dir 1 bit: boLDR__esq, boLDR__dir valor_esq lê entrada AN1 valor_esq > ref_pos? valor_dir < ref_neg? Não Não Sim Sim boLDR__esq = 1 boLDR__esq = 0 boLDR__esq = boLDR__esq valor_dir lê entrada AN0 valor_dir > ref_pos? valor_dir < ref_neg? Não Não Sim Sim boLDR__dir = 1 boLDR__dir = 0 boLDR__dir = boLDR__dir Se boLDR__dir ==0 e boLDR__esq ==0 Segue reto - Duty esquerdo = D1 Duty direito = D1 se não Se boLDR__dir ==1 e boLDR__esq ==0 Curva à direita - Duty esquerdo = D2 Duty direito = D3 se não Se boLDR__dir ==0 e boLDR__esq ==1 Curva à esquerda - Duty esquerdo = D3 Duty direito = D2 se não Se boLDR__dir ==1 e boLDR__esq ==1 Parado - Duty esquerdo = D0 Duty direito = D0 Figura 3.17 - Fluxograma do código 82 3.4 Fonte de alimentação do circuito Neste projeto foi empregado uma tensão única de 5Vcc para alimentar todos os circuitos do sistema. Está tensão deve se manter constante, por esse motivo, foi utilizado um regulador de tensão de 5V através do Circuito Integrado LM7805. Este CI é um regulador linear que mantêm a tensão de saída em 5V (variação de 4,8 a 5,2), enquanto houver uma tensão de entrada maior que 7,5V. A figura 3.18 mostra o circuito de alimentação empregado neste projeto. Figura 3.18 - Bloco regulador de tensão do circuito Neste circuito, os capacitores foram empregados para reduzir ondulações de tensão tanto na entrada como na saída. Ainda assim, é necessário um par de capacitores em paralelo de 33pF de tipo cerâmico e 470µF tipo eletrolítico próximos aos pinos de alimentação do microprocessador para filtrar ruídos que possam prejudicar o PIC. Outro ponto a ser analisado é a potência dissipada no regulador. Segundo o datasheet do componente a potência dissipada é Pd ≤ 15W para tensões de entrada entre 7,5V e 20V e corrente de até 1 A. Como a aplicação do robô seguidor de trilhas demanda uma média de 500mA com 5V, pode-se esperar que haverá uma potência dissipada no componente podendo aquecê-lo demasiadamente. Para evitar esse problema é recomendável adicionar um dissipador de potência junto ao encapsulamento do componente. O encapsulamento utilizado é do tipo TO-220. 83 3.4.1 Escolha da bateria A bateria utilizada neste projeto tem tensão nominal de 9V, com dimensões de 26.5 mm x 17.5 mm x 48.5 mm e peso de 35.5g. Suas vantagens são o tamanho reduzido e seu baixo peso, o que exerce menor carga mecânica aos motores e consequentemente menor corrente consumida pelos motores. Além disso elas tem um baixo custo. No entanto essas baterias tem baixa capacidade de carga e não são recarregáveis, sua capacidade é de 216mAh de acordo com o fabricante. A figura 3.19 apresenta o dimensionamento dessa bateria. Figura 3.19 - Bateria de 9V dimensionamento Fonte: (Datasheet Bateria GP1604S) Neste projeto, para aumentar a durabilidade das baterias e a capacidade de fornecer maior carga, duas bateriais desse tipo foram conectadas em paralelo. Dessa forma, a tensão de entrada no regulador continua sendo de 9V nominal. Alternativas para a alimentação do sistema pode ser as baterias de ChumboÁcidos que tem grande capacidade de carga no entanto são bastante pesadas e de volume maior, as de Níquel-cádmio (NiCd) que tem maior potencial energético do que as de chumboácido no entanto são mais caras. Maiores informações sobre os tipos de baterias podem ser consultadas nos sites das fabricantes. 84 3.5 Estrutura física 3.5.1 Estrutura mecânica Foi necessário fazer o projeto da parte mecânica do protótipo, que compreende os eixos independentes, motores e locais para fixar os dois LDRs, bateria e a placa eletrônica. Para as necessidades de locomoção de um robô, o motor gira em uma velocidade muito alta e com um torque muito baixo. Para inverter essa relação, o motor deve ser ligado a uma caixa de redução que produz uma nova saída que gira mais devagar, porém com um torque maior. (GIOPPO, 2009, p. 10) A parte mecânica deste projeto foi feita com base em peças de carrinhos de controle remoto de brinquedo adquiridos em uma loja especializada. As peças consistem em caixas de redução (sistema de engrenagens) com motores inclusos pertencentes a dois brinquedos iguais, figura 3.20. Figura 3.20 - Materiais para fazer os chassi Estas duas caixas de redução que serviam a dois eixos únicos separadamente foram juntadas através de materiais como isopor e durex para se obter o chassi definitivo do robô apresentado na figura 3.21. 85 Figura 3.21 - Chassi com eixos independentes O chassi conta com dois eixos independentes com caixas de redução e alojamento para os motores de corrente contínua adiquiridos juntamente com eles. Os motores CC, figura 3.22, são de pequeno porte. Sua tensão de operação nominal é de 2,5 a 5V e sua velocidade estimada é de 4000 rpm. Estes valores não são comprovados devido a não obtenção dos dados técnicos dos motores. No entanto em testes feitos verificou-se que seu funcionamento atende a uma tensão em seus terminais desde 0,6 a 5V sem carga e a corrente média consumida, para uma tensão de 2,5V é de aproximadamente 250mA sem carga. Foram medidas em laboratório os valores de resistência e indutância série do motores e os valores obtidos são apresentados a seguir: Indutância série: 231,2µH; Resistência série: 3,734 Ω Figura 3.22 - Foto do motor de corrente contínua utilizado 86 Além dos motores, são necessários ainda posicionar os sensores LDR em uma distância fixa da superfície entre si. Para fazer isso, recorreu-se a um material de acrílico, no caso, uma régua comum. Através do mesmo material, foi adicionado na parte da trás do chassi um local para acondicionar as baterias. Por fim a parte mecânica do projeto ficou como mostrado na figura 3.23. Figura 3.23 - Foto da parte mecânica definitiva 3.5.2 Projeto da placa eletrônica Foi utilizado o software Eagle (Easily Applicable Graphical Layout Editor) versão 5.11.0 da fabricante CadSoft para montagem do layout da placa de circuito impresso do robô. O esquemático definitivo é mostrado na figura 3.24. 87 Figura 3.24 - Esquemático do projeto eletrônico completo O layout da placa foi feito pensando em um arranjo que seguisse a estrutura do protótipo, com conectores para os LDRs esquerdo e direitos, motores cc esquerdo e direito e para a bateria arranjados de acordo com a disposição dos mesmo na parte macânica do protótipo. Os potenciômetros inclusos são uteis para ajustar a tensão dos divisores de tensão dos sensores. O layout da placa é apresentado no anexo 2 deste trabalho. O processo de confecção da placa foi feito através e transferência térmica em placa cobreada de fenolite virgem. As etapas de corrosão da placa, e soldagem dos componentes foram feitos no laboratório T4 do DEEL. A figura 3.25 mostra a placa já pronta. Figura 3.255 - Placa finalizada 88 3.5.3 Integração dos blocos Ao fim da montagem da placa de circuito impresso, os blocos conforme figura 3.1 foram interligados e são apresentados na figura 3.26. Figura 3.266 - Versão final do protótipo Como pista de teste, foi desenvolvido em folha tamanho A2 (420mm x 594mm) com desenho oval possibilitando teste com curvas em ambas as direções. A trilha foi pintada utilizando tinta preta. 89 Capítulo 4 Resultados e Discussões No capítulo 4 serão demonstrados os resultados da simulação do software do microcontrolador, ensaios sobre os LDRs e simulações dos circuitos de acionamento dos motores. 4.1 Simulação do circuito de acionamento do motor O circuito utilizado para acionamento dos motores é mostrado na figura 4.1. Para testar seu funcionamento foram feitas simulações usando o software Orcad 10.1 da fabricante Cadence. Figura 4. 1 – Driver dos motores 90 Para resistência de carga foi feita assumindo um valor de 10Ω, pois nestas condições a corrente média do circuito é de 400mA o que corresponde à corrente média do motor cc utilizado neste projeto. Foi desconsiderado a indutância série do motor nesta simulação. A frequência usada para simulação é de 1kHz. Logo o período da onda quadrada é de 1ms: (4.1) O gráfico da figura 4.2 apresenta a tensão VCE em função do tempo conforme chaveamento do sinal PWM na base do par de transistores Darlington. A largura de pulso utilizada na simulação é de 50%. 6.0V 5.0V 4.0V 3.0V 2.0V 1.0V 0V 0s 0.5ms 1.0ms 1.5ms 2.0ms 2.5ms 3.0ms 3.5ms 4.0ms 4.5ms 5.0ms V(Q1:C) Time Figura 4. 2 - Tensão VCE em função do tempo Analisando o gráfico, observam-se os seguintes valores: (4.2) 91 Colocando o analisador de tensão do Orcad na base do transistor, é possível verificar a resposta de chaveamento do transistor ao sinal PWM aplicado. O gráfico da figura 4.3 apresenta este resultado. 6.0V 5.0V 4.0V 3.0V 2.0V 1.0V 0V -1.0V 0s V(Q1:C) 0.5ms V(Q2:B) 1.0ms 1.5ms 2.0ms 2.5ms 3.0ms 3.5ms 4.0ms 4.5ms 5.0ms Time Figura 4. 3 - Relação entre a tensão VBE e VCE do par Darlington. Nota-se que quando a tensão de base está em nível alta, a tensão VCE(sat) é de 0,837V. Ao mesmo tempo a tensão de base equivale à queda VBE de ambos os transistores. (4.3) (4.4) (4.5) Como pode ser observada, na saturação a tensão VCE não é exatamente zero. Ao mesmo tempo a tensão VB é a somatória das tensões VBE de ambos os transistores. A corrente de coletor, IC alimenta a carga é determinada pela seguinte equação: (4.6) (4.7) 92 Esta corrente surge apenas quando o transistor está em saturação, com condições de carga de 10Ω puramente resistiva. Ao mesmo tempo a corrente de base do transistor é definida como: (4.8) ≅ (4.9) Assim, o ganho estático do par de transistores Darlington é de: ≅ (4.10) O gráfico 4.3 mostra a corrente de base do transistor e o gráfico da figura 4.4 mostra a corrente de coletor em função da tensão VCE do transistor BD139. 8.0mA 6.0mA 4.0mA 2.0mA 0A -2.0mA -4.0mA 0s 0.2ms 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms IB(Q2) Time Figura 4. 4 - Corrente de base do transistor BC337 93 1.6ms 1.8ms 2.0ms 6.0 5.0 4.0 3.0 2.0 1.0 0 -1.0 0s IC(Q1) 0.2ms V(Q1:C) 0.4ms 0.6ms 0.8ms 1.0ms 1.2ms 1.4ms 1.6ms 1.8ms 2.0ms Time Figura 4. 5 - Corrente de coletor (onda menor) em função da tensão coletor emissor do transistor BD139. Ic ≅ 417mA A corrente de coletor passa através do transistor de chave, que mantem uma tensão VCE(sat). Dessa forma surge uma potência dissipada no transistor dada por: (4.11) Estes valores calculados até então são para tensões instantâneas no momento em que a chave está fechada. O valor médio e RMS equivalentes a valores em corrente contínua são apresentados a seguir: (4.12) (4.13) √ (4.14) √ (4.15) 94 4.1.2 Testes em Protoboard Para verificar o funcionamento do driver com componentes reais, foram feitas testes em uma matriz de contatos da mesma configuração. Os resultados mostrados no osciloscópio e com os multímetros são apresentados a seguir. A resistência de carga empregada neste teste foi adquirida através de um potenciômetro. O sinal PWM foi obtido através de um gerador de funções e os gráficos foram tirados de osciloscópios analógicos. A tensão de alimentação usada foi proveniente de uma fonte de tensão CC. Devido a interferências de ruídos na medida com osciloscópio, não é apresentado as formas de ondas no acionamento do motor como carga prática. Dessa forma, estes testes foram apresentados apenas usando carga puramente resistiva. A figura 4.6 mostra a forma de onda nos osciloscópio da tensão VCE do transistor BD139. Nesta figura, a escala está em 5 volts por divisão. Verifica-se que há uma tensão VCE na saturação: Figura 4. 6 - Tensão VCE no transistor BD139 Se aumentar o Duty Cycle do sinal PWM na base, observa-se um maior tempo em que a tensão VCE se mantem em saturação, como demonstrado na figura 4.7, que apresenta 2 volts por divisão. Figura 4.7 - Tensão VCE no transistor BD139 com grande valor de D no sinal PWM da base 95 Utilizando um multímetro True RMS foi possível verificar a tensão RMS que surge na carga devido ao chaveamento do transistor, a figura 4.8 mostra dois valores de tensão correspondentes a dois sinais PWMs com diferentes larguras de pulso. Figura 4. 8 - Tensão RMS variante com Duty Cycle do sinal PWM Da mesma forma, a figura 4.9 mostra a corrente de coletor RMS enquanto o transistor está chaveamento e quando está desligado. Figura 4.9 - Corrente RMS com o transistor chaveando e em corte. 96 4.2 Estudos sobre o comportamento dos LDRs; Através de simulação no software Proteus é possível verificar a variação da saída do divisor de tensão de acordo com a variação da Luz. Além disso, consegue-se verificar qual a relação entre a resistência do LDR e a intensidade luminosa incidente sobre o mesmo. O circuito de instrumentação do LDR é mostrado na figura 4.10. O Proteus conta com um modelo de componentes de LDR que permite variar o parâmetro de luz incidente. A unidade de medida usada no modelo é o Lux que significa a densidade do fluxo luminoso e corresponde a 1 Lm/m². Figura 4.10 - Circuitos dos sensores e interface com microcontrolador PIC16F874A Deseja-se obter a variação da tensão de saída do divisor de tensão projetado, com uma resistência série de 3KΩ. Inicia-se a simulação do circuito da figura 4.5 e medem-se os valores de tensão de saída para variação da densidade luminosa a partir de 0,1. Os dados obtidos foram reunidos na tabela 4.1. 97 Divisor de tensão de ambos os LDRs LUX 0 Tensão Vin da porta do PIC (V) 4,99 30 4,00 60 3,8 90 3,2 120 2,91 150 2,69 160 2,57 170 2,61 180 2,49 210 2,33 250 2,14 Tabela 4.1 - Relação entre a tensão de saída e a densidade luminosa do modelo Comparando com os dados da tabela 3.7 é possível fazer uma relação entre a resistência aproximada do LDR para determinada intensidade luminosa incidente no LDR e a tensão de saída do sensor e interpretar esses dados com o objetivo prático do projeto. Relações dos parâmetros do LDR com a tensão do divisor de tensão RLDR (Ω) LUX Tensão de saída (V) Estado Pista 0 4,99 40000 Satura Trilha 30 4,00 13000 Satura Trilha 60 3,80 10000 Satura Trilha 90 3,20 5500 Satura Trilha 120 2,91 4000 Satura Trilha 150 2,69 3500 Histerese Mantêm 160 2,57 3200 Histerese Mantêm 170 2,55 3100 Histerese Mantêm 180 2,49 3000 Zero Branco 210 2,33 2600 Zero Branco 250 2,14 2250 Zero Branco Tabela 4.2 - Relação entres os parâmetros do LDR com a tensão do divisor de tensão No modelo do LDR apresentado no Proteus, a faixa de luminosidade considerada como a parte escura (sensor está sobre a trilha) corresponde a valores menores 98 que 150 lux. A faixa de valores maiores iguais a 150 Lux e menores que 180 compreendem a zona de histerese, e a faixa de valores acima de 180 é considerado com superfície branca. Através de interpolação desses valores, são apresentados os gráficos das figuras 4.11, tensão do divisor em função da densidade luminosa e gráfico 4.7, resistência do LDR em função da densidade luminosa. Verifica-se através do gráfico da figura 4.12 que a resposta à incidência de luz do LDR é uma função exponencial. Tensão de saída (Vo) X Lux 5,250 5,000 4,750 4,500 4,250 4,000 3,750 3,500 3,250 3,000 2,750 2,500 2,250 2,000 1,750 1,500 Tensão de saída (Vo) 0 30 60 90 120 150 180 210 240 270 Figura 4.11 - Tensão de saída do divisor de tensão em função da densidade luminosa Resistência (Ω) do LDR x Lux 45000 40000 35000 30000 25000 Resistência 20000 15000 10000 5000 0 0 50 100 150 200 250 300 Figura 4. 12 - Resistência do LDR em função da densidade luminosa 99 4.3 Simulações do funcionamento do código Como mencionado anteriormente, o código do robô converte a tensão analógico para digital gravando o valor vindo do divisor de tensão. Dessa forma, é possível utilizando Proteus demonstrar a função de comparação com histerese que foi programada. Para simular o funcionamento do robô serão utilizados os dados dos testes com o LDR apresentado na seção anterior. A lógica a ser seguida é apresentada na tabela 4.3. Id Valores de referência para o teste do software RLDR Tensão Resultado do teste Conclusão ANx 4000 2,91 Satura Está sobre a faixa 3500 2,69 Transição para Incerteza saturação 3200 2,57 Histerese Incerteza 3000 2,49 Transição para nível Incerteza baixo 2600 2,33 Nível Baixo Está na superfície branca Lux 1 2 120 150 3 4 160,1 180 5 210 Tabela 4.3 - Valores de referência para simulação A figura 4.13 apresenta o esquemático de teste do Proteus para realização das simulações. Serão alterados os valores de acordo com a tabela 4.3 e verificado a resposta do PWM no osciloscópio digital do programa. VDC 5V POT__DIR POT__ESQ 3k 3k U1 13 14 210.1 210.1 LDR__L 2 3 4 5 6 7 LDR +88.8 Volts LDR__R LDR 8 9 10 +88.8 Volts 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 PIC16F874A Figura 4.13 - Esquemático de simulação do Proteus 100 A B C D A seguir serão apresentados os casos de testes e o resultado encontrado. Os valores das constantes foram definas como: D1 = 250 correspondente a D = 24,41%; D2 = 350 correspondente a D = 34,14%; D3 = 150 correspondente a D = 14,65%; D0 = 0 correspondente a D = 0. 4.2.1.1 Caso de teste 1: Robô segue em linha reta Ambos os sensores estão sobre a superfície branca. De acordo com a tabela 4.3: LDR Esquerdo – ID 5; LDR Direito – ID 5; Trecho de código: if ((boLDR__esq == 0) && (boLDR__dir == 0)) // Robô se mantem em linha reta { set_PWM1_duty(D1); //duty motor esquerdo set_PWM2_duty(D1); //duty motor direito } É apresentado a seguir o teste 1 e resultado, figura 4.14: 101 Figura 4.14 - PWM gerado para caso de teste 1. Duty Cycle = 250/1024 4.2.1.2 Caso de teste 2: Curva à direita Sensor direito está sobre a trilha. De acordo com a tabela 4.3: Sensor direito em saturação. LDR Esquerdo – ID 5; LDR Direito – ID 2; Trecho de código: else if ((boLDR__esq == 0) && (boLDR__dir == 1)) // Robô detecta curva a direita { set_PWM1_duty(D2); //duty motor esquerdo Aumenta vel da esq para gerar curva para direita set_PWM2_duty(D3); //duty motor direito } É apresentado a seguir o teste 2 e resultado, figura 4.15: 102 Figura 4.15 - PWM gerado para caso de teste. Ch A: 350, Ch B: 150 4.2.1.3 Caso de teste 3: Curva à esquerda Sensor esquerdo está sobre a trilha. De acordo com a tabela 4.3: Sensor esquerdo em saturação. LDR Esquerdo – ID 2; LDR Direito – ID 5; Trecho de código: else if ((boLDR__esq == 1) && (boLDR__dir == 0)) { set_PWM1_duty(D2); //duty motor esquerdo set_PWM2_duty(D1); //duty motor direito - Aumenta vel da dir para gerar curva para esquerda } É apresentado a seguir o teste 3 e resultado, figura 4.16: 103 Figura 4.16 - PWM gerado para caso de teste. Ch A: 150, Ch C: 350 4.2.1.4 Caso de teste 4: Ambos os sensores sobre a trilha Ambos os sensores sobre a trilha. Robô Pára; LDR Esquerdo – ID 1; LDR Direito – ID 1; Trecho de código: else // caso em que ele toca a trilha em ambos os lados { set_PWM1_duty(D0); //duty motor esquerdo set_PWM2_duty(D0); //duty motor direito } É apresentado a seguir o teste 4 e resultado, figura 4.17: 104 Figura 4.17 - PWM gerado para caso de teste. Ch A: 350, Ch C: 150 4.2.1.4 Caso de teste 5: Histerese incerteza Pelo fato de não saber se está sobre a trilha ou não, o software mantem o estado anterior do caso de teste 4. Ambos os sensores sobre a trilha. Robô Pára; LDR Esquerdo – ID 1; LDR Direito – ID 1; Trecho de código: else // caso em que ele toca a trilha em ambos os lados { set_PWM1_duty(D0); //duty motor esquerdo set_PWM2_duty(D0); //duty motor direito } É apresentado a seguir o teste 5 e resultado, figura 4.18: 105 Figura 4.18 - PWM mantido do caso de teste 4. Ch A: 0, Ch C: 0 106 CAPÍTULO 5. CONCLUSÕES Capítulo 5 Conclusões Este projeto visou à aplicação de vários conceitos de engenharia elétrica e eletrônica no desenvolvimento de um sistema robótico. Embora o escopo deste projeto tenha sido bastante simplificado quanto à funcionalidade do sistema, os conceitos e técnicas de projetos empregados são amplamente utilizados na engenharia mecatrônica. Um dos pontos críticos a ser analisado são os sensores LDR. Estes são bastante sensíveis à luz e ao mesmo tempo apresentam uma caraterística não linear. Por esse motivo, é fácil detectar variações da luminosidade incidentes sobre ele, no entanto são bastante dependentes do ambiente de teste. Isso faz com que a cada ambiente que for ser utilizado o protótipo deve ser calibrado de maneira a manter o correto funcionamento. O emprego de sensores mais precisos que o LDR ou o projeto de uma câmera isolada da luz ambiente com a iluminação forçada de um led poderia resolver esta limitação. Quanto ao circuito de acionamento dos motores, inicialmente foi projetado um circuito de Ponte H, que permite alterar o sentido de rotação do motor. Com intuito de facilitar na montagem do protótipo este foi substituído por um driver de um quadrante de funcionamento, que permite apenas a variação da tensão nos terminais do motor. Como proposta para um futuro projeto, é interessante utilizar drivers comerciais como o L298N que foi apresentado neste trabalho. Um fator positivo detectado neste projeto é a versatilidade da utilização das funcionalidades do microcontrolador. O PIC16F874A possui várias portas de entrada e saída, e funcionalidades que permitem implementações de outras funções ao projeto. Ficou evidente a boa aplicação do PIC ao substituir o circuito Schmitt Trigger no bloco de comparação. Isso fez com que os componentes fossem reduzidos, o sistema de alimentação fosse simplificado. Além disso, a facilidade em alterar os parâmetros via programação é evidente. Para facilitar o processo de otimização do funcionamento do robô sugere-se a utilização de uma comunicação serial para atualização do código sem necessidade de retirar o microcontrolador da placa para gravá-lo. Quanto à malha de controle, não foi desenvolvido neste projeto um compensador para melhorar a resposta dinâmica do sistema. Ideias de projetos de controle que 107 CAPÍTULO 5. CONCLUSÕES visam suavizar a realização das curvas por parte do robô, melhorar a identificação das trilhas e o desempenho dinâmico do sistema podem ser pensadas para futuros trabalhos. Quanto ao chassi mecânico, este se mostrou bastante versátil por possuir dimensões adequadas para incluir as placas eletrônicas, baterias, os sensores e qualquer outro sistema. Um ponto a ser destacado foi o reaproveitamento de outros produtos para criação do projeto mecânico deste sistema. Este poderá ser utilizado em outras aplicações em projetos futuros. A apresentação deste trabalho de conclusão de curso visa ser um passo inicial para que outros projetistas se apoiem neste para criar sistemas mais sofisticados baseado nas lições aprendidas a partir deste. 108 Bibliografia AHMED, A. Eletrônica de Potência; tradução Bazán Tecnologia e Lingüística; revisão técnica João Antonio Martino. São Paulo: Prentice Hall, 2000. TREVISO, C. H. G. Eletrônica de Potência. Apostila. Departamento de Engenharia Elétrica. Universidade Estadual de Londrina (UEL). Londrina. 2009. GIOOPO, L. L.; HIGASKINO, M. M. K.; COSTA, R. F.; MEIRA, W. H. T.. Robô seguidor de linha. Monografia apresentada à unidade curricular da oficina de integração II do Curso de Engenharia da Computação da Universidade Tecnológica Federal do Paraná. CURITIBA, 2009. MALVINO, A. P. Eletrônica: Volume 1. 4ª ed. São Paulo: Makron Books, 1995. PATSKO, L. F. Tutorial Montagem da Ponte H. 2006. Disponível em: <http://www.maxwellbohr.com.br/downloads/Tutorial Eletrônica - Montagem de uma PonteH.pdf.>. Acessado em: 04 de abril de 2011. MOHAN, N.; UNDELAND, T. M.; ROBBINS, W. P.. Power Eletronics: converters, application and design. 2nd ed. John Wiley & Sons, Inc. United States of America. 1995. BRAGA, A. R.; BRAGA, M. P. B.. Instrumentação Eletrônica. Notas de aula. 2006. Departamento acadêmico de engenharia elétrica. Centro Federal de Educação Tecnológica de Minas Gerais (CEFETMG). Belo Horizonte. 2002. COELHO, J. P.. Sensores e Actuadores: Material de apoio às aulas. Escola Superior de Tecnologia e Gestão. Instituto politécnico de Bragança (IPB-ESTiG). Portugal. 2005 WITKOVSKI, A. Sensores – LDR. 2007. Disponível em: <http://www.ebah.com.br/user/AAAAAE6_MAD/anderson-witkovski >. Acesso em: 01 de outubro de 2011. MALVINO, A. P. Eletrônica: Volume 2. 4ª ed. São Paulo: Makron Books, 1995. p. 307-344 109 MICROCHIP. PIC16F87XA Data Sheet: 28/40/44-Pin Enhanced Flash Microcontrollers. Microchip, 2003. PEREIRA, F. Microcontroladores PIC: Programação em C. São Paulo: Ética, 2003. ANTONIO, M. Programação de microcontroladores pic usando linguagem C. Apostila técnica. Uned – Serra / Automação industrial. Centro Federal de Educação Tecnológica do Espirito Santo (CEFETES). Vitória. 2006. BD135/137/139 Data Sheet: NPN Epitaxial Silicon Transistor. Fair Child Semiconductors. 2000. BD136/BD138/BD140 Data Sheet: Pnp Silicon Transistors. ST. 2001 LM78XX Data Sheet: Series Voltage Regulators. National Semiconductors. 2000. Model No.: GP1604S Data Sheet: Layer Built Super Heavy Duty Battery. GP Battery. 2011 FREITAS, G. A. L. Tutorial para confecção de Placas de Circuito Impresso. Empresa de Engenharia Elétrica Jr da UEL (3E-UEL). Londrina. 2011 110 Anexos ANEXO 1 - Código do microcontrolador em Linguagem C #include "C:\Users\Notebook\Desktop\Código ajustado\seguidor_de_trilhas.h" /* declaração das constantes */ #define ref_neg 128 // 2,5V - valor em decimal #define ref_pos 138 // 2,69 - valor em decimal #define D1 250 //PWM médio #define D2 350 //PWM rápido #define D3 150 //PWM devagar #define D0 000 //PWM desligado /* declaração das variáveis */ int1 boLDR__esq = 0; //inicia com sentido frente int1 boLDR__dir = 0; //inicia com sentido frente int valor_esq; // le o valor digital da entrada analógica int valor_dir; // le o valor digital da entrada analógica /* Programa */ void main() { // parâmetros de configuração setup_adc_ports(ALL_ANALOG); setup_adc(ADC_CLOCK_INTERNAL); setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); //habilita PWM 1 setup_ccp2(CCP_PWM); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); set_pwm1_duty(D1); //duty motor esquerdo 111 set_pwm2_duty(D1); //duty motor direito for (;;) { /* aquisição da tensão do sensor esquerdo */ set_adc_channel(1); delay_us(10); valor_esq = read_adc(); /* teste de detecção de curva para LDR esquerdo */ if (valor_esq > ref_pos) { boLDR__esq = 1; } else if (valor_esq < ref_neg) { boLDR__esq = 0; } else { boLDR__esq = boLDR__esq; } /* aquisição da tensão do sensor direito */ set_adc_channel(0); delay_us(10); //tempo de aquisição valor_dir = read_adc(); /* teste de detecção de curva para LDR direiro */ if (valor_dir > ref_pos) { boLDR__dir = 1; } else if (valor_dir < ref_neg) { boLDR__dir = 0; } else { boLDR__dir = boLDR__dir; } 112 /* comparação de eixos para determinar a curva */ if ((boLDR__esq == 0) && (boLDR__dir == 0)) // Robô se mantem em linha reta { set_pwm1_duty(D1); //duty motor esquerdo set_pwm2_duty(D1); //duty motor direito } else if ((boLDR__esq == 0) && (boLDR__dir == 1)) // Robô detecta curva a direita { set_pwm1_duty(D2); //duty motor esquerdo - Aumenta vel da esq para gerar curva para direita set_pwm2_duty(D3); //duty motor direito } else if ((boLDR__esq == 1) && (boLDR__dir == 0)) { set_pwm1_duty(D3); //duty motor esquerdo set_pwm2_duty(D2); //duty motor direito - Aumenta vel da dir para gerar curva para esquerda } else { // caso em que ele toca a trilha em ambos os lados set_pwm1_duty(D0); //duty motor esquerdo set_pwm2_duty(D0); //duty motor direito } } } 113 ANEXO 2 – Projeto eletrônico completo e layout da placa 114