CENTRO UNIVERSITÁRIO UNIVATES CURSO DE ENGENHARIA DA COMPUTAÇÃO PROJETO E DESENVOLVIMENTO DE UMA PLATAFORMA DE ROBÓTICA EDUCACIONAL PARA ENSINO MÉDIO Mateus Ohse Trabalho de conclusão de curso apresentado ao Centro Universitário UNIVATES para a obtenção de título de Bacharel em Engenharia da Computação. Orientador: Ronaldo Hüsemann Lajeado, dezembro de 2007. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) RESUMO O presente trabalho apresenta o desenvolvimento de uma plataforma de controle para robótica educacional para ensino tecnológico, cuja finalidade é prover o controle microcontrolado de robôs. Com base na análise de tecnologias atualmente disponíveis para os mercados de robótica educacional e de competição, foi desenvolvida uma plataforma de controle que suporta os principais recursos demandados por aplicações deste tipo. A placa desenvolvida inclui entradas analógicas para sensores, entradas ou saídas digitais para sensores ou atuadores tipo liga/desliga e saídas para acionamento e controle de velocidade de motores de corrente contínua. A plataforma contém ainda suporte a interrupções, comunicação serial e/ou USB para programação e, além da alimentação principal, alimentação de backup, ambas monitoradas. Uma aplicação didática foi montada a fim de validar a plataforma em condições reais de operação. PALAVRAS-CHAVE: robótica educacional, ensino tecnológico, plataforma microcontrolada. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) ABSTRACT This document presents the development of a control platform for educational robotics, which allows microcontrolled control of robots. After analysis of currently available technologies for educational and competition robotics markets was designed a control platform containing the most important functionalities for those applications. The developed board includes analog inputs for sensors, digital input/output for sensors and actuators and PWM outputs for DC motors control. The platform also has interrupts, serial and USB communications and two monitored power sources (main and backup). An educational application was developed to validate the platform in real operational conditions. KEYWORDS: educational robotics, technological education, microcontrolled platform. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) LISTA DE ABREVIATURAS E SIGLAS A/D Analógico/Digital CC Corrente Contínua CCD Charged Couple Device CCS Custom Computer Service CPU Central Processor Unit D/A Digital/Analógico DC Direct Current DSP Digital Signal Processor FIRST For Inspiration and Recognition of Science and Technology GND Ground GPL General Public License I/O Input/Output ICSP In-Circuit Serial Programming JTAG Joint Test Action Group LDR Light Dependent Resistor LED Light Emissor Diode MIPS Milhões de instruções por segundo MIT Massachusetts Institute of Technology NASA National Aeronautics and Space Administration NQC Not Quite C PC Personal Computer PCI Placa de Circuito Impresso PCN Parâmetros Curriculares Nacionais B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) PIR Passive infrared sensor PWM Pulse Width Modulation RAM Random Access Memory ROM Read Only Memory SMD Surface Mounting Device SRAM Static Random Access Memory TCP/IP Transmission Control Protocol/Internet Protocol TQFP Thin Quad Flat Pack TTL Transistor–Transistor Logic UART Universal Asynchronous Receiver Transmitter USB Universal Serial Bus B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) LISTA DE FIGURAS FIGURA 1: Robô mecânico utilizado na peça teatral R.U.R. Fonte: Currie, 2007. ................15 FIGURA 2: Aplicações atuais de robótica: a) à esquerda, o primeiro robô cirurgião a ser utilizado no Brasil e b) à direita, robôs da empresa ABB, utilizados para soldagem. Fontes: Santa Lúcia, 2007 e ABB, 2007. ..............................................................................................17 FIGURA 3: Robôs humanóides: a) QRIO b) Asimo c) PINO. Fontes: Sony, 2007; Honda, 2007 e Kitano, 2007. ................................................................................................................18 FIGURA 4: Diagrama de blocos de um robô. ..........................................................................19 FIGURA 5: Módulo de controle MC2 da empresa PNCA.......................................................28 FIGURA 6: Diagrama de blocos da CPU Robótica Fácil da empresa Symphony...................29 FIGURA 7: Plataforma Gogo Board, na versão 3.0.................................................................29 FIGURA 8: Plataforma Handy Board, do MIT........................................................................30 FIGURA 9: RCX, o “tijolo programável” da LEGO ...............................................................31 FIGURA 10: NXT, sucessor do RCX, da LEGO.....................................................................31 FIGURA 11: Plataforma de controle ROBO INTERFACE, da alemã Fischertechnik............32 FIGURA 12: RC (Robot Controller), da americana Inovation FIRST Robotics. ....................33 FIGURA 13: PIC24FJ128GA006. ...........................................................................................42 FIGURA 14: Utilização dos pinos. ..........................................................................................44 FIGURA 15: Circuito de alimentação da plataforma...............................................................47 FIGURA 16: Circuito de PWM................................................................................................48 FIGURA 17: Circuito de I/O. ...................................................................................................49 FIGURA 18: Entradas analógicas. ...........................................................................................50 FIGURA 19: Comunicação serial RS-232. ..............................................................................51 FIGURA 20: Circuito de gravação ICSP. ................................................................................52 FIGURA 21: Esquemático e placa de circuito impresso do primeiro protótipo. .....................54 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) FIGURA 22: Foto do primeiro protótipo. ................................................................................54 FIGURA 23: Esquemático do segundo protótipo. ...................................................................55 FIGURA 24: Placa de circuito impresso do segundo protótipo. ..............................................55 FIGURA 25: Foto do segundo protótipo..................................................................................56 FIGURA 26: Circuito final da plataforma................................................................................57 FIGURA 27: Placa de circuito impresso da plataforma. ..........................................................58 FIGURA 28: Foto da placa de circuito impresso da plataforma. .............................................59 FIGURA 29: Plataforma pronta, montada em PCI. .................................................................60 FIGURA 30: Circuito do sensor para detecção da linha. .........................................................62 FIGURA 31: Circuito do robô seguidor de linha. ....................................................................63 FIGURA 32: Plataforma aplicada em robô seguidor de linha. ................................................63 FIGURA 33: Exemplo de PWM. .............................................................................................66 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) LISTA DE TABELAS TABELA 1: Comparação entre as principais características dos módulos de robótica avaliados ...................................................................................................................................34 TABELA 2: Ligação dos pinos do microcontrolador na plataforma. ......................................44 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) SUMÁRIO 1 Introdução.........................................................................................................................12 2 Revisão Bibliográfica .......................................................................................................14 2.1 Robótica........................................................................................................................14 2.1.1 História da Robótica .................................................................................................15 2.1.2 Aplicações ................................................................................................................16 2.2 Detalhamento de um Robô ...........................................................................................17 2.2.1 Tipos de Robôs .........................................................................................................17 2.2.2 Diagrama funcional ..................................................................................................18 2.2.2.1 Plataforma de controle..............................................................................................19 2.2.2.2 Sensores ....................................................................................................................20 2.2.2.2.1 Sensores passivos .................................................................................................21 2.2.2.2.2 Sensores ativos .....................................................................................................21 2.2.2.3 Módulo de condicionamento de sinais .....................................................................21 2.2.2.4 Atuadores..................................................................................................................22 2.2.2.4.1 Solenóides.............................................................................................................22 2.2.2.4.2 Motores CC ..........................................................................................................22 2.2.2.4.3 Motores CC sem escovas (brushless)...................................................................23 2.2.2.4.4 Motores de passo ..................................................................................................24 2.2.2.4.5 Atuadores hidráulicos e pneumáticos ...................................................................24 2.2.2.5 Módulos de potência.................................................................................................24 2.2.2.6 Baterias .....................................................................................................................25 3 Contextualização do Projeto.............................................................................................26 3.1 Educação Tecnológica..................................................................................................26 3.2 Robótica Educacional ...................................................................................................27 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 3.3 Cenário Atual................................................................................................................27 3.3.1 Módulo de Controle MC2 ........................................................................................28 3.3.2 CPU Robótica Fácil ..................................................................................................28 3.3.3 Gogo Board 3.0 ........................................................................................................29 3.3.4 The Handy Board .....................................................................................................30 3.3.5 RCX..........................................................................................................................30 3.3.6 NXT Intelligent Brick...............................................................................................31 3.3.7 Fischertechnik ROBO INTERFACE .......................................................................32 3.3.8 IFI Robotics Robot Controller..................................................................................32 3.4 Comparativo de recursos de plataformas comerciais ...................................................33 4 Definição do sistema ........................................................................................................36 5 Análise das tecnologias de microcontroladores................................................................38 5.1.1 Microcontroladores Atmel........................................................................................38 5.1.2 Microcontroladores Freescale...................................................................................39 5.1.3 Microcontroladores Microchip .................................................................................39 5.1.4 Microcontroladores Texas Instruments ....................................................................40 5.1.5 Microcontroladores Zilog .........................................................................................40 6 Definição da arquitetura ...................................................................................................41 7 Projeto do circuito ............................................................................................................43 7.1 Pinagem do microcontrolador ......................................................................................43 7.2 Alimentação..................................................................................................................47 7.3 PWM.............................................................................................................................48 7.4 Entradas e saídas digitais (I/O).....................................................................................49 7.5 Entradas analógicas ......................................................................................................49 7.6 RS-232..........................................................................................................................50 7.7 USB ..............................................................................................................................51 7.8 Circuito de Gravação ICSP...........................................................................................51 8 Montagem de protótipos...................................................................................................53 8.1 Primeiro Protótipo ........................................................................................................53 8.2 Segundo Protótipo ........................................................................................................55 9 Desenvolvimento da placa de circuito impresso ..............................................................57 9.1 Layout ...........................................................................................................................57 9.2 Montagem.....................................................................................................................59 10 Aplicação de validação.................................................................................................61 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 10.1 Hardware ......................................................................................................................61 10.2 Software........................................................................................................................64 11 Conclusões e Trabalhos futuros....................................................................................67 BIBLIOGRAFIA......................................................................................................................68 B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 1 Introdução A área de robótica, que engloba diferentes áreas exatas, como informática, eletrônica, mecânica e controle, tem crescido muito nos últimos anos, não somente para aplicações industriais como também para educacionais. Nessa tecnologia, elementos eletromecânicos formam conjuntos capazes de desenvolver tarefas mecânicas ou mesmo simular o comportamento humano. Para tanto os componentes empregados (motores, sensores, pistões, etc.) devem ser precisamente controlados através de uma plataforma ou placa principal microcontrolada. Esta placa microcontrolada, de forma geral, realiza o controle dos diferentes acionamentos necessários para uma dada aplicação com base na avaliação do programa desenvolvido pelo operador, bem como das leituras realizadas por sensores. O objetivo deste trabalho foi projetar e desenvolver uma plataforma microcontrolada, utilizando um microcontrolador de baixo custo, interfaces de entrada e saída digitais, entrada analógica e saída para controle de motores de corrente contínua. Todos componentes utilizados no projeto são de fácil aquisição e montados sobre um mesmo módulo integrado (placa de circuito impresso única), permitindo utilização facilitada por alunos de Ensino Médio e Técnico em atividades didáticas de robótica. O presente trabalho se insere como um projeto de desenvolvimento próprio de uma plataforma didática para ensino de robótica em escolas de Ensino Médio e Técnico. Na fase inicial do trabalho, são apresentadas as principais alternativas tecnológicas disponíveis para este mercado. Este estudo foi utilizado para definir a arquitetura adotada para o sistema, enfocando basicamente a parte de hardware. Etapas de potência não estão previstas neste projeto, mas os sinais gerados são padronizados, para permitir interconexão direta com os módulos de potência existentes no mercado. O produto desenvolvido neste trabalho tem a pretensão de promover a melhoria da formação de alunos técnicos e de ciência de nível médio pela maior flexibilidade na B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 13 realização de experiências práticas e didáticas. Além disso, pode contribuir para o desenvolvimento tecnológico nacional, pois atualmente produtos deste tipo são, na sua maioria importados, o que dificulta a aquisição e mesmo acompanhamento do material de apoio (para alunos de ensino médio a língua estrangeira pode significar uma grande barreira). O produto gerado, tendo características compatíveis e preço de comercialização inferior ao dos concorrentes importados, pode aumentar a participação de escolas e institutos técnicos na implantação de projetos na área da eletrônica e robótica, o que pode ter impacto direto na formação de profissionais e desenvolvimento de tecnologia no país. Inicialmente, no Capítulo 2, é realizada uma Revisão Bibliográfica sobre os assuntos envolvidos no trabalho. No Capítulo 3 é feito um estudo de mercado das plataformas existentes e atualmente disponíveis para Robótica Educacional. Com base neste estudo, no Capítulo 4 são definidos os requisitos mínimos necessários à plataforma a ser desenvolvida. Após estas definições, no Capítulo 5 é realizado um estudo dos microcontroladores atualmente disponíveis no mercado e que atendam aos requisitos. No Capítulo 6 é definido o microcontrolador a ser usado no projeto, baseado nos estudados no capítulo anterior. Após as definições dos requisitos e do microcontrolador, no Capítulo 7, são projetados os circuitos envolvidos na plataforma. O Capítulo 8 trata dos protótipos montados durante o desenvolvimento do projeto, enquanto no Capítulo 9 é apresentado o desenvolvimento da versão final da placa de circuito impresso da plataforma. No Capítulo 10 é mostrado uma aplicação para a validação da plataforma. O Capítulo 11 trata da conclusão e trabalhos futuros, sugerindo possíveis recursos que podem ser incorporados à plataforma. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 2 Revisão Bibliográfica 2.1 Robótica A simples palavra robô desperta fascínio nas pessoas, principalmente devido a tantos filmes, jogos e livros de ficção científica empregados como forma de entretenimento pela sociedade desde a década de 50. Como exemplo deste fascínio, pode-se destacar a grande popularidade observada em feiras e exposições ao se utilizar de demonstrações que empregam robôs sejam eles humanóides ou não. Neste campo, o Japão, sem dúvida, é um dos países que mais difunde esta cultura (Robot Museum, 2006). O termo robô, entretanto é bem mais amplo. Existem várias definições para robô e robótica, dependendo da área em que estes conceitos são aplicados ou estudados. Uma dificuldade para esta definição se dá pelo fato da robótica ser uma área multidisciplinar, englobando pelo menos três áreas distintas: mecânica, eletricidade e computação. Algumas aplicações mais robustas incluem adicionalmente a área de controle Atualmente as máquinas criadas desta integração multidisciplinar, os robôs, têm sido largamente utilizadas no setor industrial, principalmente em empresas montadoras de produtos ou equipamentos. Em sua grande maioria representam robôs manipuladores reprogramáveis, capazes de operar sobre ferramentas de solda, pintura ou mesmo manipulação de peças em uma linha de produção (García, 2001). Na área residencial, robôs têm sido idealizados para prestar apoio a tarefas do dia-a- dia como aspirar pó, lavar ou mesmo cozinhar (Gates, 2006). Robótica tem sido empregada em diversas outras aplicações como transporte, segurança, manipulação de artefatos explosivos e exploração espacial como será visto a seguir (McComb e Predko, 2006). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 15 Estas diferentes aplicações, cada vez mais próximas de nossas vidas, servem de motivação para se acrescentar a robótica no currículo de escolas de ensino médio e profissionalizante. 2.1.1 História da Robótica Máquinas automáticas são almejadas e idealizadas desde tempos remotos. Na Grécia antiga (século IV a.C.) o filósofo Aristóteles escreveu: "Se toda ferramenta, quando ordenada, ou mesmo por vontade própria, fizesse o trabalho para qual foi feita, então, não seriam necessários trabalhadores nem escravos”. Pode-se dizer que os primeiros inventos de máquinas automáticas começaram a ser construídos nessa época, mas eram muito primários. Foi a partir do século XVIII, com o advento da revolução industrial, que o aparecimento de autômatos começou a se tornar uma realidade. Máquinas a vapor, alimentadas com carvão, foram criadas para os mais diversos fins, desde a produção industrial em série, até entretenimento em shows públicos de teatro e circense (Pazos, 2002). Curiosamente, a palavra “robô” surgiu em 1921, em uma peça de teatro. A peça chamava-se “R.U.R. (Rossuum's Universal Robots)”, do escritor tcheco Karel Čapek. A peça se passa em uma fábrica de servos humanóides (Figura 1), os quais são chamados robôs. Josef Čapek (irmão de Karel) foi responsável pela criação do nome “robô” e usou a palavra tcheca “robota”, que significa escravo, para designar os humanóides da obra (Kurfess, 2000). FIGURA 1: Robô mecânico utilizado na peça teatral R.U.R. Fonte: Currie, 2007. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 16 Mais tarde, em 1950, o famoso escritor de ficção científica Isaac Asimov, em sua compilação de obras “Eu, Robô”, usa, pela primeira vez, o termo robótica para designar a ciência que estuda os robôs (Asimov, 1950). Já na década de 60, os primeiros braços robóticos foram produzidos para serem utilizados em trabalhos perigosos nas indústrias, procurando afastar o trabalhador de áreas de risco. Esses manipuladores não eram muito diferentes dos utilizados nas indústrias hoje em dia. Tratavam-se de soluções que empregavam acionamentos hidráulicos ou elétricos, controlados por computadores. Hoje em dia, com os computadores com cada vez maior capacidade de processamento e freqüência de operação, a robótica tornou-se um ramo em grande expansão. A computação permite sistemas cada vez mais avançados, e o desenvolvimento de áreas complexas como inteligência artificial, visão computacional, reconhecimento e síntese de voz (Gudwin, 2005). 2.1.2 Aplicações Atualmente os robôs são utilizados nas mais diversas áreas da sociedade. Robôs estão sendo projetados para trabalhar nas residências para efetuar tarefas domésticas, divertimento e proteção; nos hospitais para cuidar de pacientes ou mesmo atuar em cirurgias de precisão (Figura 2a); nas indústrias, para produzir itens padronizados com qualidade e velocidade (Figura 2b) e até em outros planetas para explorar, filmar e coletar amostras. A maioria dos robôs ainda está na indústria (cerca de 90%), principalmente na automobilística. Manipuladores automatizados são utilizados em todas as etapas de produção de um carro, atingindo níveis de produção que nenhum ser humano jamais atingiria (Pazos, 2002). Entretanto, o mercado de robôs em outras áreas está crescendo vertiginosamente. Como exemplo os robôs AIBO, da Sony, e Asimo, da Honda, foram projetados e têm sido continuamente aperfeiçoados para atender ao mercado de brinquedos e entretenimento. AIBO é um cão companheiro, e Asimo, um humanóide, que se apresenta em shows e feiras (McComb e Predko, 2006). Há, claro, vários robôs com fins didáticos e educacionais, e escolas e universidades do mundo inteiro estão, cada vez mais, interessadas nesse novo nicho (Mehl, 2002). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 17 FIGURA 2: Aplicações atuais de robótica: a) à esquerda, o primeiro robô cirurgião a ser utilizado no Brasil e b) à direita, robôs da empresa ABB, utilizados para soldagem. Fontes: Santa Lúcia, 2007 e ABB, 2007. 2.2 Detalhamento de um Robô 2.2.1 Tipos de Robôs Existem várias classificações para os robôs, e elas podem muitas vezes acabar gerando confusão, pois não são de fato excludentes. Estas várias classificações distintas se dão principalmente pelo fato de que diferentes mercados têm visões diferentes sobre o que é exatamente um robô. Pode-se, entretanto classificar os robôs, em linhas gerais, como manipuladores, móveis ou humanóides. Os robôs manipuladores têm sua funcionalidade ligada a braços mecânicos estáticos (capazes de realizar movimentos limitados na extensão de seus braços), sendo utilizados, geralmente, na indústria e programados para fazer sempre a mesma seqüência de movimentos, comum para tarefas de produção serial. Os robôs móveis são aqueles capazes de se locomover como um todo por um trajeto delimitado ou mesmo em uma área desconhecida, ou seja, são dotados de algum meio de locomoção, com mecanismo de acionamento, alimentação e controle embarcados. Geralmente são robôs complexos, pois necessitam de sensores para navegação e um sistema próprio de B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 18 controle. Exemplos altamente complexos destes robôs são o Opportunity e o Spirit, dois robôs da NASA enviados a Marte em 2003. Robôs humanóides, também chamados de andróides, são robôs que imitam a forma humana (bípedes, com dois braços e sistema de visão na cabeça). Exemplos de robôs humanóides são o QRIO (Figura 3a), da Sony, que é capaz de dançar, correr e subir e descer escadas; o Asimo (Figura 3b), da Honda, atualmente considerado o robô mais desenvolvido já criado, capaz de correr, dançar, subir e descer escadas e reconhecer vozes e rostos; e o PINO (Figura 3c), fruto de um desenvolvimento de código livre seguindo a filosofia da GPL (General Public License). a) b) c) FIGURA 3: Robôs humanóides: a) QRIO b) Asimo c) PINO. Fontes: Sony, 2007; Honda, 2007 e Kitano, 2007. 2.2.2 Diagrama funcional Conforme já comentado existem diferentes aplicações e condições de operação de um robô, o que faz também com que seus projetos sejam distintos. Por exemplo, um robô manipulador usado para pintura de chassis de veículos tem características funcionais e operativas bastante distintas de um robô humanóide capaz de guiar uma bicicleta. De uma forma simplificada, entretanto existem características básicas comuns, que podem ser utilizadas para descrevê-los genericamente. Isto é apresentado de forma resumida B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 19 na Figura 4. O diagrama apresentado na figura foi montado com base nas estruturas descritas em McComb e Predko (2006) e Meggiolaro (2006). FIGURA 4: Diagrama de blocos de um robô. A seguir cada um destes módulos internos do diagrama será apresentado com maior detalhamento. 2.2.2.1 Plataforma de controle Módulo principal do sistema, que é responsável por controlar o funcionamento do robô, a partir de um programa especialmente desenvolvido para o mesmo. Entre suas funções está ler entradas dos sensores, processá-las, determinar ações e controlar os circuitos de movimentação ou sinalização (atuadores) (Nogueira, 2002). O elemento fundamental da plataforma de controle é o microprocessador ou microcontrolador. Um microprocessador genericamente incorpora uma CPU (unidade central de processamento) e uma memória interna para armazenamento de informações temporárias. Os microcontroladores, além disso, integram na mesma pastilha de silício diversas outras funcionalidades também importantes, como memória ROM (memória somente de leitura) ou Sensores Digitais Bateria Secundária Atuadores Bateria Principal Proteção (Fusíveis) Plataforma de Controle Sensores Analógicos Módulos de Condicionamento de Sinal Legenda: Sinal Potência Módulos de Potência B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 20 FLASH para gravação de código, portas de I/O (entrada/saída), interfaces de comunicação serial e paralela, temporizadores (timers) e, algumas vezes, outros periféricos como conversores analógico-digital (A/D) e digital-analógico (D/A). Assim sendo, os microcontroladores se mostram mais adequados, permitindo placas menores capazes de carregar, guardar e rodar programas diretamente no chip do microcontrolador (Iovine, 2004). A placa de controle de um robô está fortemente ligada ao conceito de realimentação. A realimentação, em inglês feedback, se baseia na coleta de dados internos de um sistema ou do ambiente externo onde o mesmo se encontre, a fim de otimizar uma tomada de decisão. Estes dados são capturados através de sensores e enviados ao sistema de controle do robô. Numa analogia, a realimentação empregada para controle de um robô segue o mesmo princípio de funcionamento dado pelos sentidos (visão, audição, tato, olfato e paladar), que são usados para orientar os atos dos humanos. Considerando isso, quanto mais sensores um robô tiver, teoricamente, melhor ele irá agir e reagir às mudanças do ambiente. É claro que quanto mais sensores, maior será a quantidade de sinais (dados) entrando no sistema e uma maior capacidade de processamento será exigida (McComb e Predko, 2006). 2.2.2.2 Sensores O sistema de controle de um robô se baseia em sensores, que são elementos capazes de perceber e medir informações externas como luminosidade, distância, temperatura, deslocamento, etc. Existem basicamente dois tipos principais de saída de sensores: digital (com duas opções: ativo ou não) e analógico, cujo valor de saída varia dentro de uma faixa de valores. Normalmente os sensores digitais podem ser lidos diretamente pelo microcontrolador. Sensores analógicos freqüentemente exigem circuitos adicionais de condicionamento de sinais e filtragem antes de serem aplicados para leitura. Miles e Carrol (2002) aprofundam a classificação dos sensores, dividindo-os entre passivos e ativos. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 21 2.2.2.2.1 Sensores passivos Sensores passivos monitoram alguma condição do ambiente. Eles não introduzem nada ao ambiente; eles simplesmente captam o que está acontecendo em volta, logo, não necessitam de alimentação. Um termômetro ou uma fotocélula são exemplos de sensores passivos usados no dia-a-dia. Outro tipo de sensor passivo é o sensor infravermelho passivo (PIR), algumas vezes chamado sensor piroelétrico. Estes sensores são comumente usados para detectar a presença de uma pessoa e a partir desta informação ativar um circuito. Os sensores passivos mais complexos são as câmeras CCD, que são usadas para “visualizar” o ambiente. Câmeras CCD fazem partes de sistemas de visão (Miles e Carroll, 2002). 2.2.2.2.2 Sensores ativos Sensores ativos freqüentemente emitem algum som ou luz, captam o retorno, e analisam como a energia emitida reage com o ambiente, necessitando, para isso, alimentação. Alguns exemplos deste tipo de sensor são sonar, laser e detectores reflexivos de infravermelho (Miles e Carroll, 2002). Exigem maior complexidade operacional para sua adequada interpretação como a manutenção de valores estáveis de referência analógicos (para conferir amplitude de leitura) e/ou temporais (para conferir tempo de resposta). 2.2.2.3 Módulo de condicionamento de sinais Este módulo que trata sinais provenientes de sensores analógicos tem função de ajustar os valores lidos para uma faixa de valores desejada. Dentre suas funções estão linearização de curvas, remoção de ruído, ajuste de ganho, entre outras. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 22 2.2.2.4 Atuadores Os atuadores são responsáveis pela transformação dos comandos gerados pela placa de controle em movimentos do robô. A grande maioria das implementações conta com motores elétricos associados a algum sistema de transmissão convencional (engrenagens, alavancas, correias, etc.). Alguns casos, porém, utilizam atuadores hidráulicos, pneumáticos, ligas com memória de forma e outros atuadores flexíveis (Soares, 2003). A utilização de certo atuador depende do tipo de movimento, condições e ambiente de operação, precisão requerida e custos de implementação envolvidos (Barros, 2002). 2.2.2.4.1 Solenóides Solenóide é o tipo mais básico de atuador eletromagnético. O conceito do solenóide linear consiste no uso de uma bobina fixa em ferro ou aço, e um êmbolo magnético móvel. A parte do êmbolo é que se recolhe para dentro da estrutura conforme a energização. Quando a corrente flui através da bobina, um campo magnético é gerado. A estrutura serve para concentrar o campo magnético para que o máximo da força magnética seja exercida no êmbolo. A força magnética faz com que o êmbolo seja atraído para dentro da estrutura. O campo magnético em torno da bobina causará movimento puxando o êmbolo para o centro da bobina. Quando não há corrente circulando na bobina, o êmbolo está “solto” e, para retornar à posição inicial, deve-se usar uma mola (Kurfess, 2000). 2.2.2.4.2 Motores CC Motores CC (corrente contínua) convertem a corrente elétrica em movimento mecânico de rotação. Os motores de corrente contínua são dispositivos cuja potência depende da tensão aplicada e também da sua construção. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 23 Quando carregamos um motor, sua rotação diminui e com isso a intensidade da corrente aumenta, tentando retomar a rotação normal e elevando-se assim a potência que ele consome. Sob carga constante, a potência consumida aumenta com a tensão de um modo mais ou menos linear, juntamente com a corrente e a sua velocidade de rotação. A maneira mais simples de se controlar a velocidade de um motor CC é modificando-se a corrente que passa através dele por meio de algum tipo de dispositivo externo (Braga, 2002). Motores CC permitem movimentos suaves e alto pico de torque e podem ser usados para velocidades mais altas do que outros motores, mas para operar de forma estável exigem um sinal de realimentação (Kurfess, 2000). 2.2.2.4.3 Motores CC sem escovas (brushless) Um motor CC sem escovas é muito parecido com um motor CC montado de forma invertida, porque o rotor (parte girante do motor) contém um imã permanente e o estator (parte estática do motor) contém as bobinas. As bobinas são comutadas eletronicamente, então o comutador mecânico de escovas (usado nos motores CC comuns) não é mais necessário. Motores CC sem escovas são comumente usados em aplicações robóticas por causa de sua capacidade de atingir altas velocidades, alta eficiência, e baixa manutenção em comparação a motores CC comuns. Eles são capazes de atingir altas velocidades por causa da eliminação do comutador mecânico. Eles são mais eficientes porque o aquecimento das bobinas, no estator, pode ser dissipado mais rapidamente no chassi do motor. E, finalmente, ele requer menos manutenção porque não tem escovas, que requerem trocas periódicas. No entanto, o custo total do sistema para motores sem escovas é maior do que para motores comuns, devido à complexidade do comutador eletrônico (Kurfess, 2000). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 24 2.2.2.4.4 Motores de passo Motores de passo convertem pulsos elétricos em movimento mecânico discreto. Eles estão disponíveis para propósitos rotacionais ou lineares, mas os rotacionais são os mais comuns. Para os motores de passo rotatórios, cada passo corresponde a certo número de graus de rotação. A quantidade de pulsos elétricos determina o número de passos, enquanto a freqüência dos pulsos controla a velocidade do motor de passo. Não é necessário nenhum sensor para sua operação e eles se encaixam bem na utilização em aplicações de posicionamento, além de serem fáceis de usar (Scherz, 2006; Kurfess, 2000). 2.2.2.4.5 Atuadores hidráulicos e pneumáticos Atuadores hidráulicos são freqüentemente usados como juntas ou “pernas” em aplicações robóticas que requerem a capacidade de levantar grandes cargas. Atuadores hidráulicos geram movimento mecânico através do controle de vazão ou pressão de um fluído incompressível. Pelo fato de o fluído ser incompressível, estes atuadores podem ser usados em aplicações de força, posicionamento, e controle de velocidade. Outra opção útil, quando trabalhando com hidráulica, é que amortecimento mecânico pode ser incorporado ao projeto. Atuadores pneumáticos são similares aos hidráulicos, no ponto que ambos usam fluído. A diferença é que nos pneumáticos é utilizado um fluído compressível, como ar comprimido. A capacidade de carga dos atuadores pneumáticos é menor do que dos hidráulicos, pois eles trabalham com pressões mais baixas. No entanto, os atuadores pneumáticos têm a vantagem de ter tamanho e peso relativamente menores. Eles também são menos complexos, pois o ar utilizado em um cilindro pode ser liberado ao ambiente através de uma válvula e não precisa de uma linha de retorno (Kurfess, 2000). 2.2.2.5 Módulos de potência Os módulos de potência servem para acionamento dos atuadores. Eles recebem um sinal de baixa intensidade da plataforma de controle e o amplifica. Para essa amplificação eles B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 25 devem ser ligados à bateria principal. Há diversas marcas e modelos disponíveis no mercado, dependendo da tensão e corrente de trabalho do atuador. Módulos comerciais suportam correntes de saída de algumas unidades a centenas de ampéres, dependendo do tipo de acionamento a ser realizado (Meggiolaro, 2006). 2.2.2.6 Baterias Baterias são utilizadas para alimentação de robôs móveis, e, geralmente, representam a parte mais pesada no robô. As baterias devem ser ligadas ao circuito através de fusíveis ou disjuntores, para proteção em caso de curto-circuito ou sobrecarga. A bateria secundária, geralmente, não alimenta etapas de potência, servindo apenas para que não haja a perda do controle sobre o robô em caso de falta da bateria principal. Os principais tipos de baterias são: chumbo-ácido, níquel-cádmio, níquel-hidreto metálico, alcalina e de lítio (Meggiolaro, 2006). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 3 Contextualização do Projeto 3.1 Educação Tecnológica Pode-se dizer que o século passado se distinguiu dos demais pela incrível velocidade dos avanços tecnológicos e das transformações que os mesmos introduziram na sociedade. Em nossos dias, a quantidade de equipamentos que envolvem tecnologia de todos os tipos que usamos, e dos quais dependemos, é imensa. Esta característica tão importante acabou causando impacto também na formação das pessoas, que passaram a incorporar em seus currículos o ensino de tecnologia. Apesar disso, grande parte das escolas ainda ensinam ciências de forma tradicional, com visão teórica e generalista, deixando as aplicações, que representam de fato a tecnologia, para faculdades ou escolas de nível Técnico ou Superior. Com o passar do tempo, esta metodologia tem se alterado, sendo adotado o conceito da educação tecnológica. O objetivo da educação tecnológica é preparar os alunos, desde as séries iniciais, para aplicações práticas das matérias de ciência estudadas. Isso tem contribuição direta no aumento de conhecimento dos estudantes como um todo e na melhor adequação do currículo de profissionais da área tecnológica, que poderão ingressar diretamente do ensino médio para as faculdades de engenharia e computação (Braga, 2007). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 27 3.2 Robótica Educacional A Robótica Educacional representa o uso da robótica como ferramenta para ensinar tecnologia. Desde 2000, com os novos PCNs (Parâmetros Curriculares Nacionais), que dizem que a formação do aluno deve ter como alvo principal a aquisição de conhecimentos básicos, a preparação científica e a capacidade de utilizar as diferentes tecnologias relativas às áreas das ciências, as escolas estão buscado ferramentas para isto (Santos, 2006). Então as instituições de ensino no Brasil estão incrementando cada vez mais seus currículos com projetos educacionais que fazem uso de kits e ferramentas de robótica. Em contrapartida, o estudo da robótica tem sido realizado, ainda, com baixa intensidade em nosso país. O principal fator que limita a implementação da robótica nas escolas está no alto custo da montagem de um laboratório de robótica (Mehl, 2002). 3.3 Cenário Atual O ensino técnico de nível médio ou mesmo profissionalizante tem crescido bastante nos últimos anos no Brasil. Neste cenário, a introdução de atividades práticas de física, eletrônica e robótica têm transformado o modelo educacional tradicional, baseado em aulas expositivas, para um modelo mais dinâmico e participativo, onde teoria e prática se complementam. Como exemplo disso pode-se destacar os campeonatos de robótica tipo competições FIRST (FIRST, 2007), futebol de robôs e guerra de robôs (Guerra de Robôs, 2007). Para fins educacionais, normalmente as escolas adquirem plataformas didáticas comerciais, que já contam com material de apoio e roteiros de atividades. Estas plataformas são modulares, de forma a possibilitar que diversas experiências distintas possam ser realizadas apenas inserindo-se ou removendo-se módulos específicos. Esta característica é muito importante, pois permite maior flexibilidade, promovendo o conhecimento e a criatividade dos alunos. A seguir é apresentado, de forma resumida, um levantamento de algumas plataformas atualmente disponíveis no mercado nacional e internacional, baseado nas informações técnicas contidas nas documentações dos equipamentos. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 28 3.3.1 Módulo de Controle MC2 Fabricada pela empresa nacional PNCA Robótica e Eletrônica (Figura 5), é programada em uma linguagem própria chamada LEGAL. Possui como características principais: quatro entradas digitais e quatro analógicas. Possui também quatro saídas para acionamento de servomotores e mais duas saídas de potência para acionamento direto de cargas. Atualmente é vendida como um pacote fechado que inclui os módulos citados (PNCA, 2007). FIGURA 5: Módulo de controle MC2 da empresa PNCA. 3.3.2 CPU Robótica Fácil Também de fabricação nacional, da Symphony Robótica Educacional, esta plataforma (Figura 6) tem como CPU principal um microcontrolador Atmel Atmega8, rodando a 8 MHz. Pode ser programada em C para Atmega8 ou ainda em BASIC. Possui oito entradas ou saídas digitais, compartilhadas com seis entradas analógicas. Possui também quatro saídas de potência para acionamento direto de cargas (até 0,6 A), uma saída e uma entrada serial a nível TTL, porta USB 1.1, PS/2 e suporte a TCP/IP opcional (Symphony, 2007). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 29 FIGURA 6: Diagrama de blocos da CPU Robótica Fácil da empresa Symphony. 3.3.3 Gogo Board 3.0 Plataforma mantida pelo MIT (Massachusetts Institute of Technology) como plataforma didática de bancada (Figura 7). Não é fabricada nem vendida, mas seus esquemas podem ser baixados gratuitamente da Internet. É programado em Cricket Logo, que é uma variante, desenvolvida também pelo MIT, da linguagem LOGO ou em C para PIC (CCS, 2007). Possui como CPU um microcontrolador PIC16F877, da Microchip, rodando a 20 MHz. Possui oito entradas ou saídas digitais compartilhadas com quatro saídas para servomotores e comunicação serial (MIT, 2007). FIGURA 7: Plataforma Gogo Board, na versão 3.0. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 30 3.3.4 The Handy Board Trata-se de outra plataforma não comercial desenvolvida pelo MIT (Figura 8) mais completa e complexa que a Gogo Board e fabricada por muitas empresas estrangeiras. Seus esquemas e aplicações podem ser encontrados no site do projeto. Possui microcontrolador MC68HC11, da Motorola, rodando a 2 MHz. Pode ser programada em Interactive C, do MIT, ou qualquer outra linguagem suportada pela família HC11. Possui 32 kB de memória RAM para programa, quatro saídas de potência para até 1 A e display de cristal líquido. Possui ainda sete entradas analógicas e nove entradas digitais (MIT, 2007). FIGURA 8: Plataforma Handy Board, do MIT. 3.3.5 RCX O “tijolo programável” da fabricante de brinquedos LEGO (Figura 9) é amplamente difundido e utilizado no mundo inteiro. Seu processador é um Hitachi H8, com 32 kB de RAM, tendo compilador para várias linguagens, entre elas NQC (Not Quite C) e Robolab, linguagem gráfica da própria LEGO. Possui três entradas para os sensores da linha LEGO e três saídas, além de comunicação serial via infravermelho. Está sendo descontinuado e substituído pelo NXT. No Brasil encontra-se a venda na empresa Edacom, representante oficial da LEGO no Brasil (LEGO, 2007). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 31 FIGURA 9: RCX, o “tijolo programável” da LEGO 3.3.6 NXT Intelligent Brick Sucessor do RCX, esta plataforma (Figura 10) possui como microcontrolador principal um ARM7 de 32 bits, 256 kB de memória FLASH e 64 kB de RAM. Possui porta USB 2.0, comunicação Bluetooth e display de cristal líquido. Possui ainda quatro entradas para os sensores LEGO e três saídas. Ainda sem previsão para lançamento no Brasil, é comercializado, pelo site americano da LEGO (LEGO, 2007). FIGURA 10: NXT, sucessor do RCX, da LEGO. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 32 3.3.7 Fischertechnik ROBO INTERFACE Fabricado pela empresa alemã Fischertechnik, esta plataforma (Figura 11) possui um microcontrolador de 16 bits e 128 kB de memória FLASH. Tem comunicação serial e USB. Possui ainda quatro saídas de potência com controle de velocidade por PWM para até 0,25 A, oito entradas digitais e quatro analógicas. A Fischertechnik no Brasil é representada pela Nek- technik (Fischertechnik, 2007). FIGURA 11: Plataforma de controle ROBO INTERFACE, da alemã Fischertechnik. 3.3.8 IFI Robotics Robot Controller Plataforma de controle oficial da FIRST Robotics Competition (Figura 12), é a plataforma mais completa disponível no mercado. É produzida e comercializada pela empresa americana Inovation FIRST Robotics e possui como microcontrolador principal um PIC18F8722, que pode ser programado em qualquer linguagem para PIC, inclusive a ferramenta gráfica EasyC, da Intelik. Possui 128 kB de memória FLASH para programa e comunicação serial nos padrões TTL e RS-232. Para acionamentos e interação tem 14 saídas PWM, 16 saídas para relés, 16 entradas ou saídas digitais e seis interrupções. Além disto, ainda possui entrada de alimentação para bateria principal e de backup e monitoramento do nível das baterias (IFI, 2007). B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 33 FIGURA 12: RC (Robot Controller), da americana Inovation FIRST Robotics. 3.4 Comparativo de recursos de plataformas comerciais A tabela a seguir (Tabela 1) apresenta, de forma resumida, um estudo comparativo entre as principais opções de módulos de robótica educacional atualmente disponíveis no mercado. São descritas as principais características e recursos disponíveis de forma padronizada a fim de facilitar a identificação de vantagens de cada um, bem como as funcionalidades importantes de serem considerados para o protótipo proposto pelo autor. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) TABELA 1: Comparação entre as principais características dos módulos de robótica avaliados Plataforma Processador Barramento Freqüência Memória I/O Entradas Analógicas Saídas de potência Comunicação Linguagem MC2 ND* ND ND ND 4 4 2 ND LEGAL Robótica Fácil Atmega8 8 bits 8 MHz ND 8 6 4 Serial, USB 1.1, TCP/IP C, BASIC Gogo Board PIC16F877 8 bits 20 MHz ND 8 ND 4 Serial Cricket Logo, C Handy Board MC68H11 16 bits 2 MHz 32 kB (RAM) 9 7 4 ND Interactive C RCX Hitachi H8 8 bits 16 MHz 32 kB (RAM) - 3 (ou digitais) 3 Serial infra- vermelho NQC, Robolab NXT ARM7 32 bits ND 256 kB (FLASH) - 4 (ou digitais) 3 USB 2.0, Bluetooth NBC, NXC ROBO INTERFACE ND 16 bits ND 128 kB (FLASH) 8 4 4 Serial, USB ND IFI RC 2 x PIC18F8722 8 bits 40 MHz 128 kB (FLASH) 16 16 0 Serial (TTL e RS-232) EasyC *ND: Não disponível para consulta. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 35 Analisando os microcontroladores modernos percebe-se uma grande tendência da utilização de CPUs com barramento de 16 bits, em situações mais complexas, buscando-se maior velocidade de processamento, e custos cada vez mais reduzidos. Os microcontroladores com barramento de 8 bits, apesar de muito baratos, apresentam desempenho baixo, principalmente quando se deseja trabalhar com múltiplas entradas e saídas. Analisando a tabela comparativa, pode-se perceber que há uma tendência, principalmente pela relação entre o custo e o desempenho, ao desenvolvimento de plataformas usando microcontroladores de 16 bits, ainda que plataformas com projetos a mais tempo no mercado continuem com 8 bits. Pode-se perceber também que o número médio de I/O’s nas plataformas é oito e que o mínimo de entradas analógicas é quatro (exceto RCX). Conexão do tipo USB é uma tendência de mercado, tanto que vários PCs (principalmente notebooks) são, atualmente, vendidos somente com esse tipo de comunicação serial. Em relação ao tipo de memória, a maioria dos produtos possui memória FLASH. A opção por este tipo se dá por não ser volátil, diferentemente das memórias RAM. Ou seja, permite gravação e leitura elétrica de informações, sem perda de dados mesmo após a interrupção da alimentação. Quanto à quantidade, nota-se que, as plataformas com memória FLASH têm, no mínimo, 32 kB, migrando para 128kB nas versões mais sofisticadas. Quanto à linguagem a ser utilizada, predomina a C e suas variantes, principalmente por ser uma linguagem de alto nível, mas que pode acessar funções de baixo nível. Também traz vantagem de ser altamente difundida na área técnica. Com base nessas análises e nas conclusões descritas, chegou-se à definição do sistema que segue. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 4 Definição do sistema Comparando os produtos nacionais e os estrangeiros, percebe-se uma grande diferença na quantidade de recursos disponíveis. Percebe-se também, ainda hoje, uma pequena quantidade de produtos nacionais disponíveis. De uma forma geral, isso reflete uma carência no mercado brasileiro por produtos deste tipo. Baseando-se nesta carência de mercado e nos levantamentos feitos até o momento chegou-se a uma definição de arquitetura a ser seguida, que será a seguir descrita. Pelos motivos acima elencados, optou-se por utilizar uma CPU de 16 bits, que garanta maior eficiência e velocidade para o sistema proposto, além de um melhor custo/benefício em comparação aos microcontroladores de 8 e 32 bits. Previu-se uma demanda máxima de até 128 kB de memória FLASH para programa. Esta quantidade de memória é perfeitamente suficiente para a armazenagem de programas desenvolvidos para robôs construídos em práticas de Ensino Médio. A plataforma precisa ter dezesseis entradas ou saídas (I/O) digitais configuráveis, que permitam como entrada sinais provenientes de sensores digitais, teclados ou interruptores, e como saída, a ligação de relés, LEDs, entre outros. Caso, em alguma montagem, seja necessária uma quantidade maior de entradas ou saídas digitais, o aluno pode recorrer à técnica de multiplexação, aumentando assim a quantidade de I/Os. Além das saídas digitais, se fazem necessárias saídas especiais com recursos de controle de potência. Essas saídas, geralmente utilizadas para o controle de velocidade de motores de corrente contínua, são do tipo PWM (pulse width modulation ou modulação de largura de pulso). A plataforma deve ter oito saídas de sinais PWM, nas quais são ligados os B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 37 módulos de potência para motores de corrente contínua, possibilitando controle de velocidade. Para os sensores analógicos a plataforma tem oito entradas, onde poderão ser ligados potenciômetros, extensômetros, LDRs, e outros sensores analógicos, comumente usados na robótica para aquisição de dados externos. Para sensores mais complexos, onde se faz necessário o condicionamento de um sinal, módulos externos poderão ser utilizados. O programa desenvolvido pelo usuário deve ser baixado para a plataforma através de um gravador externo, não incorporado na plataforma. Para comunicação externa a plataforma possui uma conexão serial RS-232, e uma segunda conexão serial, prevista para possível conexão USB (não incluso atualmente na placa). Outra característica da plataforma é a modularidade. Todos os motores, lâmpadas, solenóides, motores de passo, e outras saídas, são acionados através de módulos ligados à plataforma. As saídas não fornecem corrente suficiente para acionamentos diretos, ou seja, não há etapas de potência na plataforma, reduzindo, com isto, custos de fabricação e tamanho físico. Esta modularidade também permite a integração de vários equipamentos de várias marcas, visto que a forma de comunicação é padrão e os módulos são facilmente adquiridos no mercado. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 5 Análise das tecnologias de microcontroladores Atualmente, são muitas as opções de microcontroladores disponíveis no mercado, capazes de atender as especificações mínimas necessárias para a presente proposta (descritas no capítulo anterior). É apresentada abaixo uma descrição resumida das principais opções disponíveis, que foi obtida após um detalhado estudo sobre as principais tecnologias de microcontroladores, mostrando suas características técnicas e viabilidade de uso no projeto. Este estudo se fez necessário para validar a escolha da CPU como a mais adequada entre as várias disponíveis no mercado. 5.1.1 Microcontroladores Atmel São duas as famílias de microcontroladores 16 bits da Atmel: a AT9x, baseada nos microcontroladores AVR e a AT8x, que se baseia na arquitetura dos microcontroladores 8051. Os microcontroladores AT9x são voltados para o mercado de segurança, com características bastante próprias, como por exemplo, aceleradores criptográficos (Atmel, 2007). Já a linha AT8x foi concebida como substituta da tecnologia MCS-51 de 8 bits, apresentando basicamente a mesma arquitetura interna, porém com o dobro da largura de bits. A família não possui memória FLASH, apenas memória ROM em alguns modelos, o que impede seu uso no presente projeto. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 39 5.1.2 Microcontroladores Freescale A Freescale Semiconductor possui três famílias de microcontroladores 16 bits: 56800/E, HC12 e HC16. Usando a busca paramétrica (Freescale, 2007) encontrou-se 16 microcontroladores tecnicamente viáveis a serem utilizados no projeto. Os componentes da família 56800/E são processadores digitais de sinais (Digital Signal Processors) com um núcleo de 16 bits, principalmente voltados para o processamento matemático de grandes quantidades de dados, geralmente áudio ou vídeo. O custo deles é mais alto que microcontroladores comuns, por possuírem componentes de hardware interno dedicados. As famílias HC12 e HC16 da Freescale englobam microcontroladores de 16 bits projetados para substituir produtos no mercado de 8 bits. Podem operar com freqüências de até 25 MHz. A família HC12 visa o mercado embarcado de pequeno porte e automotivo. Já a família HC16 visa aplicações de maior porte, pois possui uma arquitetura que permite operações de DSP e tratamento de grandes volumes de dados. 5.1.3 Microcontroladores Microchip A Microchip possui três famílias de microcontroladores 16 bits: PIC24, dsPIC30 e dsPIC33. Analisando o catálogo de produtos (Microchip, 2007) e comparando com as características desejadas para o projeto, tem-se 26 microcontroladores disponíveis. A Microchip é concorrente direta da Freescale, sendo que as famílias dsPIC30 e dsPIC33 são DSPs (aplicações que exigem processamento digital de sinais), enquanto os componentes da família PIC24 são microcontroladores para uso genérico. Uma característica importante que vale salientar nos microcontroladores Microchip é a funcionalidade ICSP (In-circuit Serial Programming, ou programação serial em-circuito), que é uma técnica onde o microcontrolador é programado diretamente na placa onde está montado. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 40 5.1.4 Microcontroladores Texas Instruments A família de microcontroladores de 16 bits da Texas Instruments é a MSP430. São microcontroladores de baixíssimo consumo, próprios para aplicações embarcadas. Um ponto fraco desta família, entretanto, é que a maioria dos dispositivos disponíveis possui pequena capacidade de memória FLASH. Apenas um microcontrolador MSP430 que possui capacidade de memória na ordem de 120 kB foi localizado (Texas Instruments, 2007). 5.1.5 Microcontroladores Zilog Também a Zilog possui disponível uma linha de microcontroladores 16 bits. Analisando as características necessárias para o projeto tem-se duas famílias disponíveis: Z16F2810 e Z16F2811. Estas famílias contém 15 microcontroladores que podem ser usados no projeto (Zilog, 2007). A dificuldade de se encontrar pontos de venda e suporte para microcontroladores Zilog no mercado nacional foi considerado como fator negativo para escolha desta tecnologia. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 6 Definição da arquitetura Com base no estudo de mercado apresentado no capítulo anterior, optou-se pelo PIC24FJ128GA006, da Microchip. Fatores importantes que levaram à escolha deste microcontrolador, além das características técnicas, foram a disponibilidade deste no mercado nacional, a facilidade de uso das ferramentas de desenvolvimento e o conhecimento e experiência prévia do autor com esta tecnologia de microcontrolador e suas ferramentas de desenvolvimento. O microcontrolador escolhido é uma CPU para uso genérico com barramento de 16 bits, capaz de processar 16 milhões de instruções por segundo (MIPS) rodando a 32 MHz. Possui 128 kB de memória FLASH, em conformidade com o que foi definido como desejado para o projeto. Além da memória FLASH, possui 8 kB de memória SRAM. Tem 53 pinos que podem ser utilizados como I/O, dos quais 16 serão diretamente utilizados na plataforma. Possui 16 canais de conversão analógico-digital (A/D), sendo que oito serão utilizados para leitura de entradas analógicas. Em relação às saídas PWM, o microcontrolador possui internamente um total de cinco. Neste quesito para atender aos requisitos da proposta (o projeto demanda um total de oito canais PWM), serão utilizados implementações em software com programação de temporizadores para atualização de três pinos de I/O, constituindo os três sinais PWM faltantes. A disponibilidade de temporizadores para este fim é garantida, pois o microcontrolador possui cinco timers. O microcontrolador possui ainda cinco pinos de interrupção, dos quais quatro serão utilizados. A comunicação é feita através de dois canais seriais (UART) disponíveis no microcontrolador, aos quais serão conectados circuitos de transceiver para implementação de interfaces USB e RS-232. A programação da memória pode ser feita de duas maneiras: B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 42 através de uma interface JTAG (Joint Test Action Group), ou através de ICSP (In-Circuit Serial Programming). Ambas as maneiras de programação são padrões de programação serial e não há a necessidade da retirada ou desligamento do microcontrolador do circuito para a gravação do mesmo. A alimentação deste microcontrolador deve ser entre 2 e 3,6 V, sendo que o encapsulamento é de montagem em superfície (SMD, surface mounting device), tendo 64 pinos TQFP (thin quad flat pack) (Figura 13). FIGURA 13: PIC24FJ128GA006. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 7 Projeto do circuito 7.1 Pinagem do microcontrolador Conforme já comentado, o microcontrolador escolhido possui 64 pinos em encapsulamento TQFP. Na Figura 14 é apresentada a distribuição dos pinos do PIC24FJ128GA006 e a forma como estes foram empregados para os diferentes recursos do presente projeto. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 44 FIGURA 14: Utilização dos pinos. Na tabela abaixo (Tabela 2) são descritas as ligações dos pinos na plataforma e suas funções. TABELA 2: Ligação dos pinos do microcontrolador na plataforma. Ligação Pino plataf. Pino PIC Função Descrição AD1 11 AN5 AD2 12 AN4 AD3 13 AN3 AD4 14 AN2 A/D AD5 17 AN6 Entrada analógica. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 45 AD6 18 AN7 AD7 29 AN14 AD8 30 AN15 - 9 - 25 - 41 Vss Pólo negativo (GND). - 10 - 26 - 38 Vdd Pólo positivo (3,3 V). - 19 AVdd Pólo positivo para canais A/D (3,3 V). - 20 AVss Pólo negativo para canais A/D (GND). - 56 Vddcap Conexão para capacitor externo de filtragem. Alimentação - 57 ENVREG Habilita regulador de tensão interno. - 39 OSC1 Conexão de entrada do oscilador principal. Clock - 40 OSC2 Conexão de saída do oscilador principal. - 7 MCLR Master Clear Input. - 15 PGC1 Entrada de clock para gravação serial in-circuit. ICSP - 16 PGD1 Entrada de dados para gravação serial in-circuit. INT1 42 INT1 INT2 43 INT2 INT3 44 INT3 Interrupção INT4 45 INT4 Entrada de interrupção externa. IO1 47 RC13 IO2 48 RC14 IO3 59 RF1 I/O IO4 35 RF6 Entrada / Saída digital. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 46 IO5 37 RG2 IO6 36 RG3 IO7 4 RG6 IO8 5 RG7 IO9 60 RE0 IO10 61 RE1 IO11 62 RE2 IO12 63 RE3 IO13 64 RE4 IO14 1 RE5 IO15 2 RE6 IO16 3 RE7 BAT1 21 AN8 Entrada analógica da tensão da bateria principal. BAT2 22 AN9 Entrada analógica da tensão da bateria secundária. - 23 RB10 - 24 RB11 - 27 RB12 Monitor Baterias - 28 RB13 Saída para LED’s de monitoramento de nível de bateria. PWM1 46 OC1 PWM2 49 OC2 PWM3 50 OC3 PWM4 51 OC4 PWM5 52 OC5 Saída PWM. PWM6 53 RD5 Saída digital com PWM gerado com TIMER1. PWM7 54 RD6 Saída digital com PWM gerado com TIMER2. PWM PWM8 55 RD7 Saída digital com PWM gerado com TIMER3. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 47 Reset - 7 MCLR Este pino é colocado em nível baixo para resetar. RS1 33 U1RX Receptor serial. RS-232 RS2 34 U1TX Transmissor serial. USB1 32 U2TX Transmissor serial. USB (UART2) USB2 31 U2RX Receptor serial. 7.2 Alimentação Os diferentes circuitos da placa levam à necessidade de pelo menos duas tensões de alimentação (3,3 V para o microcontrolador e 5 V para drivers e transceiver). Assim, o circuito de alimentação da placa emprega dois reguladores de tensão e capacitores para filtragem. Na prática, o microcontrolador será alimentado com tensão positiva de 3,3 V regulado por um LM1086-3.3. O outro regulador, LM7805, é utilizado para regular a tensão em 5 V que serve de alimentação para outros componentes da plataforma. Existem duas entradas para baterias: uma principal, com tensão nominal de 12 V, e uma secundária, onde deverá ser ligada uma bateria de 7,2 V. A bateria secundária somente irá alimentar a plataforma caso a primária fique descarregada. A Figura 15 mostra o circuito de alimentação. FIGURA 15: Circuito de alimentação da plataforma. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 48 7.3 PWM O microcontrolador PIC24FJ128GA006 possui cinco geradores de PWM internos. São eles: OC1, OC2, OC3, OC4 e OC5, disponíveis nos pinos 46, 49, 50, 51 e 52, respectivamente. As outras três saídas (pinos 53, 54 e 55) terão os sinais PWM gerados por software usando temporizadores do microcontrolador. Para geração de sinais de saída compatíveis com outros equipamentos comerciais, foi empregado um array de oito transistores (ULN2803) com resistores pull-up de 10 kΩ, para elevar a tensão de saída dos PWMs de 3,3 V para 5V. A conexão externa é feita através de barras com oito conjuntos de três pinos cada, sendo um para o sinal de PWM, um para 5 V e um para o terra, padrão este utilizado no mercado de modelismo. Os dois pinos de alimentação (5 V) são utilizados, geralmente, para alimentar o circuito lógico do módulo de potência. A Figura 16 mostra o circuito de PWM. FIGURA 16: Circuito de PWM. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 49 7.4 Entradas e saídas digitais (I/O) São 16 pinos que podem ser programados como entrada de sinal digital ou saída digital (0 ou 1). São usados resistores de pull-up de 10 kΩ, que garantem como padrão na entrada o sinal da tensão de alimentação (3,3 V). A corrente máxima de saída dos pinos de I/O do microcontrolador é de 18 mA (Microchip, 2006). Sendo assim colocou-se um resistor de 220Ω (calculado como R = 3,3 / 18m = 183,33 Ω) para limitá-la, evitando danos aos pinos. A conexão de cada I/O é feita com uma barra de pinos duplos, sendo um ligado ao pino e o outro ao negativo (GND). A Figura 17 mostra o circuito de I/O. FIGURA 17: Circuito de I/O. 7.5 Entradas analógicas Para as oito entradas analógicas está prevista a conexão direta através dos pinos 11, 12, 13, 14, 17, 18, 29 e 30. Nestes pinos há conversores analógico-digitais internos, de 10 bits de resolução. Não foram projetados filtros ou quaisquer circuitos de condicionamento de sinais neste projeto devido ao tempo limitado de execução. A Figura 18 mostra o circuito das B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 50 entradas analógicas. Procurou-se apenas reduzir no layout a distância entre os terminais do microcontrolador e o conector de entrada, procurando reduzir assim a incidência de ruídos. Os conversores internos trabalham na faixa de tensão de 0 a 3,3 V. FIGURA 18: Entradas analógicas. 7.6 RS-232 Para comunicação serial será usado o padrão RS-232, que é amplamente difundido no mercado. Para a conversão dos sinais TTL gerados pela UART (Universal Asynchronous Receiver Transmitter) do microcontrolador para o padrão RS-232 é utilizado o conversor MAX203, que dispensa o uso de componentes externos, reduzindo assim o tamanho da placa. A saída dos sinais RS-232 estará disponível em uma barra de dois pinos (Tx e Rx). A comunicação serial permite assim a ligação de dispositivos externos à plataforma, além da possibilidade de troca de dados entre duas plataformas. A Figura 19 mostra o circuito de comunicação RS-232. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 51 FIGURA 19: Comunicação serial RS-232. 7.7 USB O conversor USB (TUSB3410) não será montado na placa principal da plataforma. Este será montado de forma modular, em uma placa separada. Optou-se por essa forma de implementação para diminuir o tamanho, o peso e o consumo da plataforma. Tem-se disponível então a conexão UART2 do microcontrolador, através de dois pinos, os quais podem ser conectados ao módulo USB quando este se fizer necessário. 7.8 Circuito de Gravação ICSP A memória FLASH do PIC24FJ128GA006 será gravada de forma serial através de três pinos (MCLR, PGC1 e PGD1) pelo método ICSP. Está previsto na plataforma um conector RJ-12, padrão utilizado nos gravadores da Microchip. Para gravação se faz necessário o uso de um gravador, disponível no mercado nacional. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 52 O método de gravação ICSP exige ainda um circuito simples, com um resistor de 10kΩ para pull-up no pino Vpp/MCLR. A Figura 20 apresenta o circuito implementado. FIGURA 20: Circuito de gravação ICSP. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 8 Montagem de protótipos Durante o desenvolvimento e para testes de funcionamento e programação, foram montados dois protótipos, descritos a seguir: 8.1 Primeiro Protótipo O primeiro protótipo montado consistia no circuito de filtragem da alimentação, clock, ICSP e três saídas de I/O. Foi utilizado somente para testes de gravação do gravador e do microcontrolador. Nesta etapa foi desenvolvido um programa que piscava LEDs colocados nas três saídas de I/O (RE0, RE1 e RE2) e, com isso, comprovava o funcionamento do gravador, do circuito de gravação, do circuito de clock e da alimentação do microcontrolador. Para a programação do protótipo foram utilizados dois compiladores de linguagem C: MPLAB C30 Compiler (Microchip, 2005) e o CCS C Compiler (CCS, 2007). Ambos os compiladores foram utilizados no ambiente de desenvolvimento MPLAB. O compilador MPLAB C30 é da própria Microchip, voltado para CPUs de 16 bits, sendo um compilador mais complexo, porém mais recente. Como tem menor tempo de mercado, traz uma biblioteca de funções mais limitada, o que acaba tornando a programação mais difícil. O compilador CCS C, da empresa Custom Computer Service Inc., possui uma biblioteca de funções bem mais elaborada, com recursos prontos para leitura A/D, programação dos TIMERs, comunicação serial, geração de PWM, e várias outras. Estas funções deixam a programação muito mais simples, preferível de ser aplicada a alunos de Ensino Médio. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 54 Para a gravação da plataforma foram testados dois gravadores ICSP: o MPLAB ICD2 (Microchip, 2005) e o nacional Exsto ICD2 (Exsto, 2007). Ambos os gravadores funcionaram perfeitamente, sendo totalmente compatíveis com a plataforma. Para o gravador da Exsto foi necessária a montagem de um cabo adicional, pois o cabo que acompanha o gravador possui um conector diferente do utilizado na plataforma e no gravador da Microchip (RJ-12). Na Figura 21 é apresentado o circuito e a placa do protótipo desenvolvido com a ferramenta Eagle, versão 4.16r2. A placa do primeiro protótipo (Figura 22) ficou com 51 x 83 mm, e a alimentação teve de ser regulada em 3,3 V, visto que ela não possuía regulador de tensão. FIGURA 21: Esquemático e placa de circuito impresso do primeiro protótipo. FIGURA 22: Foto do primeiro protótipo. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 55 8.2 Segundo Protótipo O segundo protótipo já se aproximava bastante da versão final, tendo todos os recursos previstos na plataforma e o tamanho de 100 x 160 mm. A Figura 23 apresenta o esquemático do segundo protótipo, enquanto a Figura 24 mostra a placa de circuito impresso desenvolvida para este protótipo. FIGURA 23: Esquemático do segundo protótipo. FIGURA 24: Placa de circuito impresso do segundo protótipo. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 56 Com o segundo protótipo montado foi realizada uma série de testes de funcionamento, como leitura de canais A/D, temporizadores, geração de PWM, acionamento simultâneo e alternado de pinos de I/O, buscando-se validar o projeto. Durante esta fase perceberam-se algumas melhorias que poderiam ser feitas, como, por exemplo, a alocação de saídas I/O para indicação de carga das baterias através de LEDs bicolores. Outra modificação implementada com base nos testes foi a troca dos diodos zener dos pinos de I/O por resistores de pull-up de 10 kΩ . A Figura 25 é uma foto do segundo protótipo montado. FIGURA 25: Foto do segundo protótipo. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 9 Desenvolvimento da placa de circuito impresso 9.1 Layout Após a realização dos testes e a implementação das melhorias no circuito, foi realizado o roteamento do layout da placa de circuito impresso final da plataforma. Para o desenvolvimento do esquemático e roteamento da placa foi utilizado o software Eagle, versão 4.16r2. A Figura 26 apresenta o circuito final e a Figura 27 mostra a versão final da placa desenvolvida para a plataforma. FIGURA 26: Circuito final da plataforma. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 58 FIGURA 27: Placa de circuito impresso da plataforma. A placa final ficou com 64 x 83 mm. Utiliza tecnologia dupla face com trilhas de 8 mils (0,2 mm) de espessura, espaçamento entre trilhas de 8 mils, metalização, estanhamento e máscara de solda. Por questões de acabamento e confiabilidade, esta placa foi fabricada por uma empresa especializada. A Figura 28 é uma foto da placa produzida. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 59 FIGURA 28: Foto da placa de circuito impresso da plataforma. 9.2 Montagem A etapa seguinte engloba a soldagem dos componentes e montagem da plataforma. A seguir é apresentada a lista dos componentes eletrônicos utilizados na montagem. Semicondutores IC1 - PIC24FJ128GA006 - microcontrolador IC2 - LM1086-3.3 - regulador para 3,3V IC3 - MAX203 – conversor RS-232 IC4 - LM7805 - regulador para 5V IC5 - ULN2803 – array de transistores D17 - 1N5400 – diodo de uso genérico para 3A D18 - 1N5400 – diodo de uso genérico para 3A LED1 - LED comum vermelho 5mm D1 - LED bicolor 5mm D2 - LED bicolor 5mm Resistores: 5% - 1/8W R7 a R22 - 220Ω R23 - 1kΩ R24 - 10kΩ R45 a R48 - 220Ω RN1 a RN3 - 10kΩ - rede resistiva de oito elementos Capacitores C6 - 1uF - eletrolítico C7 e C8 - 33pF - cerâmico C9 - 1uF - cerâmico C10 a C14 - 100n - cerâmico C16 - 100uF - eletrolítico B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 60 Conectores AD - Barra de pinos 8x2 AL - Conector parafusável com três segmentos p/ bateria BAT – Barra de pinos 2x1 INT – Barra de pinos 4x2 IO - Barra de pinos 16x2 J1 - Conector RJ-12 PWM - Barra de pinos 8x3 RS232 - Barra de pinos 2x1 UART - Barra de pinos 2x1 Q1 - 32MHz - oscilador RESET – chave push-button A Figura 29 mostra a plataforma pronta. FIGURA 29: Plataforma pronta, montada em PCI. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 10 Aplicação de validação A fim de validar a plataforma de controle desenvolvida foi elaborada uma aplicação exemplo, que utiliza diversas funcionalidades da placa, tais como entradas analógicas, saídas digitais e acionamento PWM. A aplicação escolhida é bastante tradicional para aulas práticas de robótica educacional, servindo como estudo de caso real para demonstração do funcionamento da plataforma. Trata-se de uma aplicação de um robô seguidor de linha. Nesta aplicação o robô, controlado pela plataforma desenvolvida, tem a tarefa de seguir uma linha preta em uma mesa branca. A seguir serão detalhadas as características de hardware e software montadas para desenvolver a aplicação citada. 10.1 Hardware Para alimentação do robô foi utilizada uma bateria de 12 V / 6 A/h. O oscilador montado na plataforma foi de 32 MHz. Para a detecção da linha foram confeccionados sensores utilizando emissores e receptores de infravermelho. Os sensores utilizados foram o TIL32 (LED emissor infravermelho) e TIL78 (fotoreceptor). A fim de operar com sinais de 3,3 V, compatível com o microprocessador da placa, foi utilizado o circuito abaixo (Figura 30). O potenciômetro é de 10 kΩ. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 62 FIGURA 30: Circuito do sensor para detecção da linha. Os sensores são ligados às entradas analógicas AN4 e AN5. São usados dois conjuntos de sensores (fotoemissor e fotoreceptor) a fim de detectar as bordas da direita e esquerda da linha a ser seguida. Desta forma o robô estará sempre andando centrado sobre a linha mestre. Conforme a cor da mesa (linha preta sobre um fundo branco) os sensores retornam à entrada um valor de tensão diferente. O acionamento do robô é feito através de dois motores controlados, através de um módulo de potência, por pinos de I/O da plataforma. A plataforma de potência utilizada foi montada para esta aplicação com um circuito simples de amplificação empregando um transistor TIP120 (Figura 31). Os pinos escolhidos para acionamento dos motores são RE7 e RE6. Foram utilizados na aplicação dois motores de 12 V, cujo consumo sem carga é de 150 mA. Os motores foram retirados de impressoras a jato de tinta e em seus eixos foram colocadas reduções de 9:1. O tamanho dos motores é de 3,6 cm de diâmetro e 9 cm de comprimento. Os motores são da marca HP, modelo C2162-60006. Na montagem do robô, o sensor da esquerda foi ligado à entrada analógica AN5, e o da direita na entrada AN4. O motor da esquerda foi ligado à saída RE7, enquanto o da direita na saída RE6. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 63 FIGURA 31: Circuito do robô seguidor de linha. A Figura 32 mostra o robô, com a plataforma, na pista. FIGURA 32: Plataforma aplicada em robô seguidor de linha. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 64 10.2 Software A partir das definições de forma de conexão e pinagem envolvida na montagem mecânica, passou-se para a etapa de programação. A plataforma foi então programada, usando o compilador MPLAB C30 (Microchip, 2007), para que controlasse o robô da forma desejada, conseguindo assim atingir o objetivo. A seguir é apresentado o código-fonte do programa desenvolvido para o teste da plataforma com a aplicação de seguidor de linha. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include <p24FJ128GA006.h> #include <adc.h> int main(void) { OC1CON = 0x0006; // Aciona PWM1 OC5CON = 0x0006; // Aciona PWM5 // Comum para todos os PWMs PR2 = 0x1869; // Inicializa PR2 T2CONbits.TON = 1; // Inicia o TIMER2 // Configuracao dos canais AD AD1CON1 = 0x80E4; // Liga, com auto amostragem e auto conversao AD1CON2 = 0; // AVdd, AVss, conversao para inteiro AD1CON3 = 0x1F05; // Tad auto amostragem, Tad = 5*Tcy AD1PCFGbits.PCFG5 = 0; // Desabilita AN5 como entrada digital AD1PCFGbits.PCFG4 = 0; // Desabilita AN4 como entrada digital AD1CSSL = 0; // Nenhuma entrada é auto escaneada // Configuracoes do TIMER1, usado para delay T1CON = 0x00; // Desliga TIMER1 e reseta reg. de contole TMR1 = 0x00; // Limpa o valor do registrador do TIMER1 PR1 = 0x009F; // Seta o registrador de Período IFS0bits.T1IF = 0; // Limpa a flag de estouro do TIMER1 unsigned long v1, v2, temp; for(;;){ // Primeiro ADC - esquerda AD1CHS = 5; TMR1 = 0x00; T1CONbits.TON = 1; while (!IFS0bits.T1IF); T1CONbits.TON = 0; IFS0bits.T1IF = 0; while(!AD1CON1bits.DONE); //le valor do AD v1 = (long) ADC1BUF0; if (v1 > 0xfe) //ta no preto { OC1RS = 0x1869; //tempo desligado OC1R = 0x0000; //tempo ligado } B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 65 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 else //ta no branco { OC1RS = 0x124E; //tempo desligado OC1R = 0x061A; //tempo ligado } // Leitura Segundo ADC - direita AD1CHS = 4; TMR1 = 0x00; T1CONbits.TON = 1; while (!IFS0bits.T1IF); T1CONbits.TON = 0; IFS0bits.T1IF = 0; while(!AD1CON1bits.DONE); //le valor do AD v2 = (long) ADC1BUF0; if (v2 > 0xfe) // ta no preto { OC5RS = 0x1869; //tempo desligado OC5R = 0x0000; //tempo ligado } else // ta no branco { OC5RS = 0x124E; //tempo desligado OC5R = 0x061A; //tempo ligado } } return(0); } Os delays de 10 microssegundos (linhas 33 a 37 e 53 a 57, sendo que o TIMER1 foi utilizado para este delay) entre a seleção de uma entrada analógica (linhas 32 e 52) e a leitura do dado (linhas 38 e 58) são necessários para a estabilização do valor na entrada a ser lida pelo microcontrolador. Ao encontrar a linha preta com o sensor da esquerda, quando a leitura do A/D for muito alta (linha 40) a plataforma reduz a zero o PWM do motor esquerdo (linhas 42 e 43), o qual volta a ser ativado ao sair da linha (linhas 47 e 48). O mesmo acontece para o lado direito, mantendo-se assim em cima da linha guia. Para o acionamento dos motores foi utilizada a técnica de PWM, que consiste em modular a largura do pulso elétrico, controlando, assim a velocidade do motor, sem alterar significativamente seu torque. O princípio de funcionamento do PWM é a geração de um clock e a aplicação deste clock para o acionamento da carga. Este clock terá um ciclo ativo (duty cycle), que é a parte em nível alto do sinal, responsável pela entrega de potência à carga. Este ciclo ativo pode ser variado de 0% a 100%, variando, assim, a potência entregue à carga. Observando a Figura 30, a qual apresenta um exemplo de PWM, percebe-se que a tensão média (e a potência entregue B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 66 à carga) do último gráfico é maior que os dois outros. Então, com este PWM aplicado a um motor, a velocidade do último seria maior do que as dos outros dois anteriores (Valentine, 1998). FIGURA 33: Exemplo de PWM. O PWM gerado para a aplicação foi de 2 kHz de clock, com ciclo ativo de 25%. Este valor de clock e ciclo ativo foram definidos empiricamente. No programa o clock é definido pelo valor do registrador PR2, que é calculado em função da freqüência do cristal do circuito e do prescaler do TIMER utilizado para o controle (Microchip, 2007), como no exemplo: Período do Clock = (PR2 + 1) * Período do ciclo ativo * Prescaler 500 µs = (PR2 + 1) * 80 ns * 1 PR2 = 6249 O ciclo ativo é definido pelo valor de OC1R, e o valor de OC1RS define o valor de ciclo inativo (carga não alimentada). O sistema foi ensaiado em laboratório, respondendo e funcionando conforme o esperado. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) 11 Conclusões e Trabalhos futuros O trabalho teve grande validade na formação acadêmica do autor, pois serviu para consolidar e aprofundar os conhecimentos em diversas áreas estudadas durante o curso de Engenharia da Computação. Para este trabalho foi necessário o projeto e desenho de esquemas eletrônicos e a geração e fabricação de placas de circuito impresso em softwares específicos. Também foi necessário o estudo de compiladores e ferramentas em C para programação em microcontroladores. A plataforma desenvolvida tem todas as características e recursos necessários para atingir os objetivos propostos, nas áreas de robótica educacional e robótica de competição. Alguns recursos ainda podem ser implantados, e como trabalhos futuros destacam-se, na parte de software, a criação de bibliotecas de funções para uso dos recursos da plataforma. Na parte de hardware alguns módulos como o módulo de comunicação USB, o gravador ICSP, módulos de potência e condicionamento de sinais de sensores, devem ser projetados e desenvolvidos. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) BIBLIOGRAFIA ABB. ABB Automotive. Asea Brown Boveri Ltd. Zurique, Suíça. Disponível em: <http://www.abb.com/industries/us/9AAC910032.aspx>. Acessado em 20 nov. 2007. ASIMOV Isaac. I, Robot. 1.ed. New York: Gnome Press, 1950. ATMEL. Secure Microcontrollers 8-/16-bit RISC CPU. Atmel. Minnesota, EUA. Disponível em: <http://www.atmel.com/dyn/products/param_table.asp?family_id=662&OrderBy=part_no&D irection=ASC>. Acessado em 24 out. 2007. BARROS, Ettore. Robôs Móveis Autônomos. Mecatrônica Fácil, São Paulo: Editora Saber, n. 3, mar. 2002. BRAGA, Newton C. Controles Lineares de Potência. Mecatrônica Fácil, São Paulo: Editora Saber, n. 5, jul. 2002. BRAGA, Newton C. Educação Tecnológica. Mecatrônica Fácil, São Paulo: Editora Saber, n. 34, mai. 2007. CCS. Compiler for Microchip PIC24 MCUs & dsPIC® DSCs. Custom Computer Service, Inc. Wisconsin: EUA. Disponível em: <http://www.ccsinfo.com/content.php?page=dspic>. Acessado em 07 nov. 2007. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) CURRIE, Adam. The History of... ROBOTS. The University of Birmingham. Birmingham, Reino Unido. Disponível em: <http://www.cs.bham.ac.uk/research/labs/robotics/cbbc/history.php>. Acessado em 20 nov. 2007. EXSTO. ICD2 - Gravador e Depurador de Microcontroladores PIC. Exsto Tecnologia Ltda. Minas Gerais, Brasil. Disponível em: <http://www.exsto.com.br/inside.php?g=produtos&p=icd2>. Acessado em 06 nov. 2007. FIRST. For Inspiration and Recognition of Science and Technology. Manchester, EUA. Disponível em: <http://www.usfirst.org/>. Acesso em 14 abr. 2007. FISCHERTECHNIK. Fischertechnik ROBO INTERFACE. Fischertechnik Group. Waldachtal, Alemanha. Disponível em: <http://www.fischertechnik.de/en/products /index.aspx?KatID=5&sprache=&ArtID=93293>. Acesso em 11 abr. 2007. FREESCALE. 16-bit Microcontrolers. Freescale. Texas, EUA. Disponível em: <http://www.freescale.com/webapp/search/MainSERP.jsp>. Acessado em 24 out. 2007. GARCÍA, Cristina U. Introduccion a la robotica. 1. ed. Málaga: Universidad de Málaga, 2001. GATES, Bill. A Robot in Every Home. Scientific American Magazine. Jan. 2007. 8 páginas. Disponível em <http://www.cs.virginia.edu/~robins/A_Robot_in_Every_Home.pdf> Acessa- do em 19 de julho de 2007. GUDWIN, Ricardo Ribeiro. Novas Fronteiras na Inteligência Artificial e na Robótica. 4o DINCOM - Congresso Temático de Dinâmica, Controle e Aplicações, 6-10 de junho de 2005. UNESP. Campus de Bauru, Bauru, SP. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) GUERRA DE ROBÔS. Winter Challenge. Amparo, São Paulo, Brasil. Disponível em: <http://www.guerraderobos.com.br/modules.php?name=GR_Eventos&evento=3>. Acesso em 14 abr. 2007. HONDA. The Honda Humanoid Robot ASIMO. Honda Motors Co., Ltd. Tókio, Japão. Disponível em: <http://world.honda.com/ASIMO/>. Acessado em 20 nov. 2007. IFI. IFI Robotics Robot Controller. Innovation First, Inc. Greenville, EUA. Disponível em: <http://www.ifirobotics.com/rc.shtml>. Acessado e em 11 abr. 2007. IOVINE, John. PIC Robotics: A Beginner's Guide to Robotics Projects Using the PICmicro. 1. ed. New York: McGraw-Hill, 2004. KITANO, Symbiotic Systems Project. Open PINO Platform. Kitano Symbiotic Systems Project. Tókio, Japão. Disponível em: <http://www.symbio.jst.go.jp/PINO/>. Acessado em 20 nov. 2007. KURFESS, Thomas R. Robotics and Automation Handbook. 1. ed. New York: CRC Press, 2005. LEGO. NXT Intelligent Brick. LEGO Group. Billund, Dinamarca. Disponível em: <http://shop.lego.com/product/?p=9841>. Acesso em 11 abr. 2007. LEGO. RCX. LEGO Group. Billund, Dinamarca. Disponível em: <http://shop.lego.com/product/?p=9709>. Acesso em 11 abr. 2007. MCCOMB, Gordon; PREKDO, Myke. Robot Builder’s Bonanza. 3. ed. New York: McGraw-Hill, 2006. MEGGIOLARO, Marco Antonio. Tutorial em Robôs de Combate. 1. ed. Rio de Janeiro: Equipe RioBotz PUC-Rio, 2006. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) MEHL, Ewaldo L. de M. Futebol de Robôs. Mecatrônica Fácil, São Paulo: Editora Saber, n. 4, mai. 2002. MICROCHIP. 16-bit PIC® Microcontrollers & dsPIC® Digital Signal Controllers. Microchip. Arizona, EUA. Disponível em: <http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=75>. Acessado em 12 mai. 2007. MICROCHIP. PIC24FJ128GA Family Data Sheet. Arizona, EUA: Microchip, 2006. Disponível em: <http://ww1.microchip.com/downloads/en/devicedoc/39747C.pdf>. Acessado em 06 nov. 2007. MICROCHIP. MPLAB® C30 C Compiler User’s Guide. Arizona, EUA: Microchip, 2007. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/51432C.pdf>. Acessado em: 06 nov. 2007. MICROCHIP. MPLAB® ICD 2 In-Circuit Debugger User's Guide. Arizona, EUA: Microchip, 2005. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/51331B.pdf>. Acessado em 06 nov. 2007. MILES, Pete; CARROLL, Tom. Build Your Own Combat Robot. 1. ed. New York: McGraw-Hill/Osborne, 2002. MIT. Gogo Board. Massachussetts Institute of Technology. Massachussetts, EUA. Disponí- vel em: <http://padthai.media.mit.edu:8080/cocoon/gogosite/documentation.xspp?lang=en>. Acesso em 11 abr. 2007. MIT. The Handy Board. Massachussetts Institute of Technology. Massachussetts, EUA. Disponível em: <http://www.handyboard.com/techdocs/hbmanual.pdf>. Acesso em 11 abr. 2007. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) NOGUEIRA, Octávio. Basic Step: 4ª Parte. Mecatrônica Fácil, São Paulo: Editora Saber, n. 6, set. 2002. PAZOS, Fernando. Automação de Sistemas & Robótica. 1. ed. Rio de Janeiro: Axcel Books, 2002. PNCA. Módulo do Controle MC2. PNCA Robótica e Eletrônica. São Carlos, SP, Brasil. Disponível em: <http://www.pnca.com.br/index.php?option=com_content&task=view&id=65 &Itemid=55>. Acesso em 14 abr. 2007. ROBOT MUSEUM. ROBOTHINK In Robot Museum in Nagoya. Japan. 2006. 6 páginas. Disponível em <http://www.robot-museum.net/pdf/robothink_english.pdf> Acessado em 10 de julho de 2007. SANTA LÚCIA, Hospital. Robótica no Hospital Santa Lúcia. Hospital Santa Lúcia. Brasília, DF, Brasil. Disponível em: <http://www.santalucia.com.br/robotica/robotica.htm>. Acessado em 20 nov. 2007. SANTOS, Paulo G. A brincadeira que se torna coisa séria. Mecatrônica Fácil, São Paulo: Editora Saber, n. 34, mai. 2007. SCHERZ, Paul. Practical Electronics for Inventors. 1. ed. New York: McGraw-Hill, 2006. SOARES, Márcio J. SMA Muscle Wire. Mecatronica Fácil, São Paulo: Editora Saber, n. 10, mai. 2003. SONY. World's First Running Humanoid Robot. Sony Corporation. Tókio, Japão. Disponível em: <http://www.sony.net/SonyInfo/News/Press_Archive/200312/03-060E/>. Acessado em 20 nov. 2007. B D U – B ib lio te ca D ig ita l d a U N IV AT E S (h tt p: //w w w .u ni va te s.b r/ bd u) SYMPHONY. CPU Robótica Fácil. Symphony Robótica Educacional. São Paulo, SP, Brasil. Disponível em: <http://www.roboticafacil.com.br/cpu_rfacil.pdf>. Acesso em 11 abr. 2007. TEXAS INSTRUMENTS. MSP430 Ultra-Low Power Microcontrollers. Texas Instruments. Texas, EUA. Disponível em: <http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?sectionId=95&tabId=1200&fami lyId=342&family=mcu>. Acessado em 24 out. 2007. VALENTINE, Richard. Motor Control Electronics Handbook. 1. ed. New York: McGraw-Hill, 1998. ZILOG. 16-bit MCU Solutions Product Line. Zilog. Califórnia, EUA. Disponível em: < http://www.zilog.com/productserver/ss2.asp?FAM=16bit>. Acessado em 12 mai 2007.