Centro Universitário do Sul de Minas – UNIS-MG Bacharelado em Ciência da Computação Robô Desenhista controlado pelo Logo Professor Juliano Coelho Miranda Alisson Pieve de Castro Carlos Henrique Meriato Junior Guilherme Miranda Carvalho Varginha, 2007 II Centro Universitário do Sul de Minas – UNIS-MG Bacharelado em Ciência da Computação Robô Desenhista controlado pelo Logo Projeto de Conclusão de Curso apresentado ao programa do curso de Bacharelado em Ciência da Computação do Centro Universitário do Sul de Minas, como requisito parcial para a obtenção do título de Bacharel em Ciência da Computação Varginha, 2007 III FOLHA DE APROVAÇÃO Alisson Pieve de Castro Carlos Henrique Meriato Junior Guilherme Miranda Carvalho Robô Desenhista controlado pelo Logo Monografia apresentada ao curso de Ciência da Computação do Centro Universitário do Sul de Minas – UNIS/MG, como pré-requisito para obtenção do grau de bacharel pela Banca Examinadora composta pelos membros: ( ) Aprovado ( ) Reprovado Data / / _________________________________________________________ Profº Especialista Juliano Coelho Miranda ______________________________________________________ Profº. Especialista Sandro Izidoro _________________________________________________________ Profº. Especialista Lázaro Eduardo OBS.: IV Dedicamos este projeto aos nossos pais e a nossos amigos que sempre nos apoiaram ajudando-nos a superar todos os obstáculos encontrados . V Agradecimentos Agradecemos aos nossos pais pelo incentivo, ao nosso professor e coordenador do curso de Ciência da Computação Fabrício Pelloso Piurcosky e a nosso orientador Juliano Coelho Miranda pelos conhecimentos proporcionados possibilitando a realização deste trabalho. VI Resumo Este seguinte projeto apresenta a implementação de um robô que é capaz de realizar vários tipos de desenhos a partir de comandos enviados por um computador para dois motores de passo, utilizado na locomoção do robô e um servo responsável por abaixar e suspender uma caneta acoplada a ele. Foi desenvolvido um programa utilizando a linguagem de programação SuperLogo 3.0, que é responsável pela interação do robô desenhista com o computador. Através do programa são enviados os comandos que são os de locomoção do robô e os de suspender e abaixar a caneta, tais comandos são enviados a porta paralela do computador para que assim o robô seja capaz recebê-los e executá-los, formando assim o desenho inserido no programa. Para o desenvolvimento desse projeto foram necessários estudos da linguagem de programação SuperLogo 3.0, robótica, eletrônica, funcionamento da porta paralela, motores de passo e Servo motor. VII Lista de Figuras FIGURA 2.1 - Exemplo de Seqüência Lógica................................................................... 8 FIGURA 2.2 - Fases da Programação ................................................................................ 9 FIGURA 2.3 - Tela SuperLogo.......................................................................................... 11 FIGURA 2.4 - Menu Procedimento ................................................................................... 13 FIGURA 2.5 - Novo Procedimento.................................................................................... 14 FIGURA 2.6 - Editor de Procedimento.............................................................................. 14 FIGURA 2.7 - Tela Procedimento Modificado.................................................................. 14 FIGURA 2.8 - Janela de Comandos................................................................................... 15 FIGURA 2.9 - Porta Paralela ............................................................................................. 16 FIGURA 2.10 - Cabo Paralelo ........................................................................................... 17 FIGURA 2.11 – Datasheet ................................................................................................. 21 FIGURA 2.12 - ULN 2803 ................................................................................................ 21 FIGURA 2.13 - DataSheet NE 555 .................................................................................... 22 FIGURA 2.14 - NE 555 ..................................................................................................... 22 FIGURA 2.15 - Encapsulamentos do LM 7805................................................................. 22 FIGURA 2.16 - Classificação dos transistores................................................................... 23 FIGURA 2.17 - Imagem NPN............................................................................................ 23 FIGURA 2.18 - Passo completo 1 (Full-step).................................................................... 24 FIGURA 2.19 - Passo completo 2 (Full-step)..................................................................... 24 FIGURA 2.20 - Meio Passo (Half-step).............................................................................. 25 FIGURA 2.21 - Ativando as bobinas .................................................................................. 26 FIGURA 2.22 - Motor de seis fios...................................................................................... 27 FIGURA 2.23 - Capacitores em Série................................................................................. 27 FIGURA 2.24 - Capacitores em Paralelo............................................................................ 27 FIGURA 2.25 - Passo completo 1 (Full-step)..................................................................... 28 FIGURA 2.26 - Passo completo 2 (Full-step)..................................................................... 28 FIGURA 2.27 - Meio Passo (Half-step).............................................................................. 29 FIGURA 2.28 - Ativando as bobinas .................................................................................. 29 FIGURA 2.29 - Motor de seis fios...................................................................................... 30 FIGURA 3.1 – Imagem do circuito eletrônico.................................................................... 31 FIGURA 3.2 – Imagem superficial do circuito eletrônico.................................................. 33 FIGURA 3.3 – Imagem da parte inferior do circuito eletrônico ......................................... 33 FIGURA 3.4 – Figura_Cálculo astável .............................................................................. 34 FIGURA 3.5 – Figura_Cálculo monoestável ..................................................................... 34 FIGURA 3.6 – Tela do programa UserPort ........................................................................ 36 FIGURA 3.7 – Tela do Programa Robô Desenhista ........................................................... 37 FIGURA 3.8 – Fixação dos motores de passo.....................................................................41 FIGURA 3.9 – Ajuste do Servo...........................................................................................42 VIII Lista de Tabelas TABELA 2.1 – Valores de Resistores.................................................................................. 24 IX Sumário RESUMO ............................................................................................................................................................VII 1. INTRODUÇÃO ........................................................................................................................................... 1 1.1 OBJETIVOS ........................................................................................................................................... 2 1.1.1 Objetivo Geral ...................................................................................................................................... 2 1.1.2 Objetivo Específico............................................................................................................................... 2 1.2 JUSTIFICATIVA ................................................................................................................................... 2 1.3 ORGANIZAÇÃO DA MONOGRAFIA............................................................................................ 2 2. REFERENCIAL TEÓRICO ...................................................................................................................... 4 2.1 ROBÓTICA ............................................................................................................................................ 4 2.2 PROGRAMAÇÃO ................................................................................................................................. 8 2.2.1 Lógica de Programação ....................................................................................................................... 8 2.2.2 Algoritmo .............................................................................................................................................. 8 2.2.3 Programas ............................................................................................................................................ 9 2.2.4 Interpretação ou Compilação............................................................................................................... 9 2.2.5 Linguagem de Programação .............................................................................................................. 10 2.3 PORTA PARALELA .......................................................................................................................... 16 2.3.1 Conector DB25................................................................................................................................... 16 2.3.2 Modos de Operação............................................................................................................................ 16 2.3.3 Cabo paralelo..................................................................................................................................... 17 2.3.4 Endereços da Porta paralela.............................................................................................................. 17 2.4 ELETRÔNICA ..................................................................................................................................... 18 2.4.1 História da Eletrônica ........................................................................................................................ 18 2.4.2 Condutores, Semicondutores e Isolantes ............................................................................................ 19 2.4.3 Componentes Eletrônicos ................................................................................................................... 20 2.5 MOTOR DE PASSO........................................................................................................................... 27 2.5.1 Acionamento do Motor de Passo ........................................................................................................ 29 2.5.2 Determinação dos fios comuns........................................................................................................... 29 3. ATIVIDADES DESENVOLVIDAS .............................................................................................................. 31 3.1 MONTAGEM DO CIRCUITO ELETRÔNICO ............................................................................ 31 3.1.1 Componentes do circuito .................................................................................................................... 33 3.1.2 ACIONAMENTO DOS MOTORES ........................................................................................... 35 3.1.2.1 Motores de Passo............................................................................................................................. 35 3.1.2.2 Servo motor ..................................................................................................................................... 35 3.2 IMPLEMENTAÇÃO DO PROGRAMA ROBÔ DESENHISTA............................................... 36 3.2.1 Configurando Porta Paralela............................................................................................................. 36 3.2.2 Procedimentos de controle do robô.................................................................................................... 36 3.3 MONTAGEM DO ROBÔ ................................................................................................................. 41 3.3.1 Montagem do Cabo de Comunicação................................................................................................. 41 3.3.2 Montagem Mecânica .......................................................................................................................... 41 4. CONCLUSÃO ................................................................................................................................................. 43 4.1 DIFICULDADES ENCONTRADAS............................................................................................... 43 5. REFERÊNCIA BIBLIOGRÁFICA............................................................................................................... 44 X 1. Introdução Desde os primórdios o homem buscou cada vez mais soluções para facilitar sua vida, e a robótica surgiu paralelamente a essas necessidades com o objetivo de automatizar determinadas tarefas. Ao decorrer dos anos foram desenvolvidas tecnologias capazes de substituir o trabalho braçal e conseqüentemente dando mais tempo para que o homem dedicase a outras tarefas mais importantes. A robótica combina em seus estudos conceitos de física, matemática, mecânica, eletrônica, design, inteligência artificial e programação. O objetivo da robótica é compreender todo o processo de montagem e controle de "sistemas que interagem com o mundo real com pouca ou mesmo nenhuma intervenção humana" (MARTINS, 1993). Atualmente os robôs são utilizados para executar diversas tarefas, como a exploração de lugares de difícil acesso ao ser humano, atividades repetitivas, atividades consideradas de risco entre outras. O robô desenhista foi a forma encontrada para estudar esta área que vive em constante crescimento, e colocar em prática os conhecimentos adquiridos, entre eles estão: linguagem de programação, que neste caso utilizou-se o SuperLogo 3.0, e em eletrônica temos como exemplo a montagem eletrônica, funcionamento de motores de passo, montagem mecânica e o funcionamento dos CI’s, pensando que em projetos futuros possa ser desenvolvido um robô capaz de efetuar desenhos em roupas, ou até mesmo cortes em chapas de vidro e de metal, assim evitando o esforço repetitivo e talvez de risco na execução da tarefa. O principal objetivo do projeto é o desenvolvimento de um robô que realiza vários tipos de desenho a partir de comandos enviados pelo computador através da porta paralela, o robô por sua vez conectado a porta paralela recebe estes comandos que são os de movimento e o de suspender e abaixar a caneta, para permitir a iteração foi desenvolvido um programa utilizando o Software SuperLogo 3.0. 1.1 Objetivos 1.1.1 Objetivo Geral Desenvolver um robô que seja capaz de desenhar através de comandos dados pelo programa desenvolvido utilizando a linguagem de programação SuperLogo 3.0. 1.1.2 Objetivo Específico • Levantar bibliografia sobre robótica. • Levantar bibliografia sobre programação de computador. • Levantar bibliografia sobre eletrônica. • Realizar estudo sobre utilização da linguagem SuperLogo. • Realizar estudo sobre funcionamento da porta paralela. • Realizar estudo sobre funcionamento do motor de passo. • Realizar estudo sobre funcionamento do servo motor. • Desenvolver procedimentos de comunicação com a porta paralela através da linguagem SuperLogo. • Montar e Manipular o Circuito Eletrônico. 1.2 Justificativa Adquirir experiência na área de robótica e automação, que são setores de muito interesse a todos, colocando em prática os conhecimentos obtidos. Desenvolver um projeto capaz de chamar a atenção por ser uma idéia criativa, inovadora e que possa gerar projetos futuros. 1.3 Organização da Monografia Este projeto divide-se em quatro capítulos. No capítulo 1, são apresentados os motivos e objetivos do desenvolvimento deste projeto. Já no capítulo 2, é apresentado o referencial teórico utilizado no desenvolvimento do projeto: robótica e seus fundamentos; programação e a linguagem SuperLogo, porta paralela; eletrônica e seus fundamentos, motores de passo. 2 No capítulo 3, mostra-se o desenvolvimento do projeto como: montagem do circuito, componentes utilizados, desenvolvimento do programa e montagem do robô. E nos capítulos 4 e 5, estão as conclusões sobre o desenvolvimento do projeto, dificuldades encontradas e referências bibliográficas. 3 2. Referencial Teórico 2.1 Robótica A Robótica é uma ciência que atualmente encontra-se em constante e acelerado crescimento, pois situações que no passado não muito distante do presente em que vivemos foram consideradas ficções científicas, hoje são perfeitamente possíveis, graças ao avanço de pesquisas em áreas como a da eletrônica, mecânica, informática e também da Inteligência Artificial (ROSÁRIO, 2004). Robótica também pode ser entendida como uma arte, a base tecnológica e o conhecimento de projetar, aplicar e usar robôs em esforços humanos. Sistemas robóticos não são constituídos apenas de robôs, mas sim de uma série de outros sistemas e equipamentos que, junto com os robôs, executam as tarefas necessárias (LAUS, 2007). O precursor do termo robô foi Karel Capek, novelista e escritor de uma peça teatral da Tchecoslováquia, que usou pela primeira vez, em 1920, a palavra “robota” (serviço compulsório, atividade forçada) originando a palavra “robot” em inglês e traduzido para o português como “robô”. Diversos filmes de ficção cientifica mostraram robôs produzidos com o comportamento e a forma humana, levando muitos jovens a pesquisar e desenvolver robôs para o mundo real (GROOVER, 1988, apud CARRARA, 2007). Com o surgimento dos computadores na metade do século, iniciaram-se especulações em termos da capacidade de um robô pensar e agir como um ser humano. No entanto, os robôs foram, neste período, criados especialmente para executarem tarefas difíceis, perigosas e impossíveis para um ser humano. Por outro lado, eles não eram projetados com a capacidade de criar ou executar processos que não lhes foram ensinados ou programados. Assim sendo, foram as indústrias que mais se beneficiaram com o desenvolvimento da robótica, aumentando a produção e eliminando tarefas perigosas, antes executadas por seres humanos. Na robótica moderna, há pesquisas e desenvolvimentos de robô intitulados humanóides ou antropomórficos. Estes são criados com a semelhança humana e com capacidade de interagir com o ambiente, como o Asimo construído pela montadora japonesa 4 Honda Motor Co. Citam-se ainda diversos brinquedos articulados com feições que lembram animais de estimação como cães, por exemplo, e que se destinam ao entretenimento. Contudo, tais robôs incapazes de realizar quaisquer tipos de tarefas, e apenas respondem a estímulos externos (CARRARA, 2007). Segundo o dicionário Aurélio, um robô é: “mecanismos comandados por computador e que executam tarefas e movimentos usualmente realizados por humanos”. A Enciclopédia Britânica traz a seguinte definição: “um dispositivo robótico é um mecanismo com ferramentas utilizado em ciência ou indústria para substituir o ser humano, podendo ou não ser parecido com o ser humano ou desempenhar suas tarefas de maneira humana”. Ainda, segundo a Enciclopédia Britânica, a linha que separa os dispositivos robóticos das máquinas simplesmente automáticas, não é fácil de se estabelecer; quanto mais sofisticado e individualizado um equipamento, mais provavelmente ele será classificado como um dispositivo robótico. Para se caracterizar como um robô, a máquina deve ser capaz de no mínimo duas coisas: • Obter informações sobre seu próprio ambiente. • Atuar de alguma forma física este ambiente, se movendo ou manipulando objetos por exemplo. De acordo com Miranda (2006), os robôs são classificados em: programáveis e não programáveis. Programáveis: Cujo trabalho depende de uma certa medida de instruções previamente dadas pelo operador, e eles se dividem em: • Robôs Manipuladores: os braços mecânicos, ou qualquer sistema que, em geral, tenha por objetivo deslocar material de um ponto a outro no espaço • Robôs Exploradores: tem como objetivo explorar um determinado ambiente, este não precisa ser necessariamente uma superfície plana, mas também pode ser um determinado espaço ou inclusive um objeto fixo, e revelar através de sensores características físicas dele. 5 • Máquinas Ferramentas: tem por objetivo processar uma determinada matéria prima, aumentado o valor agregado. • Uso Geral: outros tipos de robôs que não entram nas definições anteriores, ex: controlador de temperatura. Não Programável: toda aquela que, ao receber a energia da fonte, efetua sempre o mesmo trabalho. Na sociedade atual, há uma crescente necessidade de se realizar tarefas com eficiência e precisão. Existem também tarefas a serem realizadas em lugares onde a presença humana se torna difícil, arriscada e até mesmo impossível, como o fundo do mar ou a imensidão do espaço. Para realizar essas tarefas, se faz cada vez mais necessária a presença de dispositivos automatizados (robôs), que as realizam sem risco de vida. Temos hoje Robôs sendo utilizados em vários segmentos de nossa sociedade: robôs que prestam serviços, como para o desarmamento de bomba; robôs com a nobre finalidade da pesquisa científica e educacional; e até mesmo os robôs operários, que se instalaram em nossas fábricas e foram responsáveis pela "segunda Revolução Industrial", revolucionando a produção em série, substituindo a carne e o osso pelo aço, agilizando e fornecendo maior qualidade aos produtos (ROSÁRIO, 2004). Algumas vantagens e desvantagens de usarmos robôs em fábricas dos mais variados setores. Vantagens: • Robótica e automação podem aumentar a produtividade, segurança, eficiência, qualidade e consistência dos produtos. • Robôs podem trabalhar em ambientes agressivos sem a necessidade de suporte a vida, conforto ou condições de segurança. • Robôs trabalham continuamente sem fadiga ou desmotivação. Não ficam nervosos não tiram férias não ficam doentes e nem fazem greve. • Robôs não necessitam de conforto ambiente, tais como iluminação e ar condicionado ventilação e proteção de ruído. • Robôs têm alta exatidão e repetibilidade. 6 • Robôs podem processar estímulos e tarefas múltiplas, simultaneamente. O homem pode processar apenas cerca de 5 a 7 estímulo de cada vez. Desvantagens: • Robôs não possuem capacidade de responder em emergências, a não ser que estas sejam previstas e as respostas estejam incluídas no programa. Medidas de segurança são necessárias para garantir que eles não irão ferir os operadores e nem vão danificar outros equipamentos que trabalham com eles. • Apesar de superiores em alguns sentidos, os robôs têm capacidade limitada em: Graus de liberdade Sensores Sistemas de Visão Respostas em tempo-real • Custos elevados devido a: Custo inicial dos equipamentos Custos de instalação Necessidade de periféricos Necessidade de treinamentos Necessidade de programação Necessidade de manutenção especializada • Robôs substituem o homem criando problemas econômicos, como perda de salários e problemas sociais, como insatisfação e ressentimento entre os trabalhadores. 7 2.2 Programação 2.2.1 Lógica de Programação Segundo Moraes (2000), lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Forbelle (2000), ressalta que lógica de programação é o uso correto das leis do pensamento, da “ordem da razão” de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. 2.2.2 Algoritmo Algoritmo é uma seqüência de passos que levam a execução de uma tarefa, ou resolução de um problema. Segundo Moraes (2000, p.5) podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na usa definição, devem ser claras e precisas. Na figura 2.1 é exibido um exemplo de algoritmo: “Subtrair dois números” • Escreva o primeiro número no retângulo A; • Escreva o primeiro número no retângulo B; • Subtraia o número do retângulo A com B e escreva o resultado no retângulo C. Figura 2.1 - Exemplo de Seqüência Lógica. 2.2.2.1 Desenvolvimento de Algoritmos 2.2.2.1.1 Pseudocódigo Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação. Os algoritmos são independentes das linguagens de programação. 8 • Regras para construção do Algoritmo: Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizamos algumas técnicas. - Usar somente um verbo por frase; - Imaginar que você está desenvolvimento um algoritmo para pessoas que não trabalham com informática; - Usar frases curtas e simples; - Ser objetivo; - Procurar usar palavras que não tenham sentido búbio; 2.2.3 Programas Programas de computadores nada mais são do que algoritmos escritos numa linguagem de programação como (Delphi, Visual Basic, Pascal entres outras), que são interpretados e executado por uma máquina que no caso é um computador. Segundo Gama (2004), a programação é dividida em duas fases distintas, conforme o exibido na figura 2.2. Figura 2.2 - Fases da Programação. 2.2.4 Interpretação ou Compilação Interpretação ou compilação é o ato de converter um programa em uma linguagem de programação, em código de máquina. Na compilação o código é traduzido para só depois executar. O mecanismo utilizado para a tradução é um compilador que por sua vez nada mais é do que um programa. Depois de compilado o programa pode ser executado sem que seja necessária uma nova compilação, o que compensa o tempo gasto na compilação. Como exemplo as linguagens Delphi e “C”. Já na Interpretação, o programa é traduzido à medida em 9 que vai sendo executado, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente . Como exemplo as linguagens JavaScript, PHP, Logo. 2.2.5 Linguagem de Programação Segundo Guimarães (2004), linguagem de programação é um conjunto finito de símbolos com os quais se escrevem programas de computador. “Um programa determina o que um computador deve fazer para, a partir de um conjunto de informações de entrada, obter uma saída determinada”. A linguagem de programação permite que programador indique sobre quais dados vai atuar, como estes dados serão armazenados ou transmitidos, e quais ações devem ser tomadas sob várias circunstâncias. Ela tem como principal objetivo permitir que os programadores consigam expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente, código de máquina. 2.2.5.1 A linguagem Logo Logo é uma linguagem de programação muito fácil e simples que foi desenvolvida no MIT (Instituto de Tecnologia de Massachussts), por Seymour Papert na década de 60. É uma linguagem que não exige máquinas de grande performance nem versões atuais do Windows, basicamente, Windows98 ou posterior. Com ela é possível fazer desenhos, contas e simulações gráficas como por exemplo simular os movimentos estudados na Física. Quando executado, é exibida ao centro da tela do monitor a geometria de uma tartaruga que representa o cursor, essa característica deve-se porque a linguagem em suas primeiras versões podia controlar os movimentos de um pequeno robô, chamado “tartaruga” devido a sua forma. 10 2.2.5.2 A linguagem SuperLogo A linguagem Logo foi implementada em diferentes idiomas e sistemas operacionais. A versão que usaremos em nosso projeto, é o SuperLogo, um Logo para Windows que foi adaptado para o português pela UNICAMP, e sua distribuição é gratuita, podendo ser encontrado no seguinte endereço: http://www.nied.unicamp.br/publicacoes/softwares/slogo30.zip. Sua linguagem é interativa e interpretada. Os comandos em Logo, podem ser executados isoladamente, sem necessidade de fazer parte de um programa completo. 2.2.5.2.1 O Ambiente de programação SuperLogo Ao iniciar o programa Superlogo, é exibido o seguinte ambiente de programação, como mostra a figura 2.3. Figura 2.3 - Tela SuperLogo. As instruções a tartaruga são passadas através da janela de comandos, e contém as seguintes opções: - Caixa de entrada: é utilizada para dar instruções diretamente a tartaruga, esta caixa está ligada à caixa de comandos de saída e ao botão executar. Para entrar com uma instrução, digite o comando e tecle (Enter), a tartaruga imediatamente o executará. 11 - Botão Executar: executa o que estiver na caixa de entrada. - Caixa de comandos de saída: todas as instruções dadas através da caixa de entrada são exibidas nesta tela. Com apenas um clique em uma linha, esta será automaticamente copiada para a caixa de entrada e com um duplo clique automaticamente o programa executará o que está sendo apontado. - Botão restaurar janela gráfica: restaura os parâmetros da tartaruga como cor do lápis, espessura, cor de preenchimento para o padrão e apaga a janela gráfica. - Botão restaurar janela comandos: apaga o conteúdo da caixa de listagem na Janela de Comandos. - Botão Tat: apaga a tela gráfica, colocando a tartaruga na sua posição original, com direção 0 (norte). - Botão Estado: abre uma janela que mostra diversos parâmetros do SuperLogo no momento. - Botão Pausa: interrompe o SuperLogo, e permite que você examine variáveis e faça alterações. Para continuar você deverá digitar o comando continue. - Botão Parar: interrompe os procedimentos em execução. 2.2.5.2.2 Menu Procedimento Um procedimento é um bloco de código precedido de um cabeçalho que contém o nome do procedimento e seus parâmetros. Com isto, podemos fazer referência ao bloco de código de qualquer ponto do algoritmo através do seu nome e passando os seus parâmetros. Na figura 2.4 é exibido o menu procedimento, onde é possível criar, editar e apagar procedimentos na linguagem SuperLogo. 12 Figura 2.4 - Menu Procedimento. • Novo procedimento: é utilizado para criar um novo procedimento. Uma janela do editor, será exibida onde poderá ser inserido o novo procedimento. • Editar: é utilizado para editar procedimentos que já foram desenvolvidos. Uma janela com todos os procedimentos já existentes é aberta, onde poderá selecionar um deles para editar. • Editar todos: é utilizado para editar procedimentos que já foram desenvolvidos. Uma janela com todos os procedimentos já existentes é aberta. Então será possível editar todos os procedimentos que for preciso. • Apagar: permite apagar os procedimentos que já foram desenvolvidos. Você terá uma janela com todos os procedimentos existentes, na qual deverá selecionar o procedimento a apagar. • Apagar todos: permite apagar todos os procedimentos que já estão carregados (ou que foram desenvolvidos) na memória. 2.2.5.2.3 Desenvolvendo Procedimentos A linguagem possui seus próprios procedimentos que são chamados de primitivas, mas é possível que crie seus próprios procedimentos. Basta ir até o menu procedimento e selecionar a opção novo, como mostra a figura 2.5. 13 Figura 2.5 – Novo Procedimento. Após a escolha da opção será exibido uma tela chamada editor de procedimentos, conforme a figura 2.6. Como exemplo foram desenvolvidos dois procedimentos que são capazes de efetuar o desenho de um hexágono. Figura 2.6 – Editor de Procedimento. Para salvar os procedimentos é necessário fechar a tela e salvar as alterações, escolhendo a opção “sim” como mostra a figura 2.7. Figura 2.7 – Tela Procedimento Modificado. Após o termino do desenvolvimento é possível utilizá-lo em outros procedimentos ou executá-lo através da caixa de entrada. Como podemos ver na figura 2.8, foi executado o procedimento (hexagono_rep). 14 Figura 2.8 – Janela de Comandos. 2.2.5.2.4 Ativando as Saídas pelo SuperLogo Para ativar um pino de saída através da linguagem de programação SuperLogo, utilizase o comando portasaídab 888 X, onde x é o número decimal que representa a saída desejada. Para ligar mais de uma saída basta somar os números (x), correspondentes. Por exemplo, para ativar as saídas D0 e D1, utiliza-se o seguinte comando, portasaídab 888 3. 2.2.5.2.5 Justificativa para o uso da linguagem A linguagem escolhida para desenvolver o programa responsável pela comunicação com o robô desenhista, foi o SuperLogo 3.0, por ser uma linguagem que permite a comunicação com a porta paralela e pela sua simplicidade. Além de possuir um ambiente de programação bastante amigável, sua instalação é bastante simples não exigindo máquinas de grande performance, e nem versões atuais do Windows, exigindo o Windows98 ou posterior. 15 2.3 Porta Paralela Segundo Rogercom (2006), a porta paralela é uma interface de comunicação entre o computador e um periférico, com isto é possível desenvolver um programa que controle um aparelho conectado à Porta paralela. Ele ressalta que a porta paralela está ligada diretamente à placa mãe de seu computador por isso, muito cuidado ao conectar circuitos eletrônicos a essa porta, pois, uma descarga elétrica ou um componente com a polaridade invertida, poderá causar danos irreparáveis ao seu computador. Na figura 2.9 é apresentada a porta paralela. Figura 2.9 – Porta Paralela. 2.3.1 Conector DB25 Através do conector DB25 que é feita a conecção de um equipamento com a porta paralela, assim estabelecendo a comunicação da porta paralela com a interface conectada a ela. Quando a tensão elétrica em cima de um pino está entre 0 à 0,4v o seu valor de seu nível lógico é 0, já quando sua tensão está acima de 3.1 a 5v o valor de seu nível lógico é 1. 2.3.2 Modos de Operação O modo de operação da porta paralela é configurado pelo BIOS Setup, e a porta paralela pode operar em três modos. São eles: • SPP (Standard Parallel Port) – Neste tipo de operação os bits de dados são unidirecionais, podendo chegar a uma taxa de transmissão de dados a 150KB/s. • EPP (Enhanced Parallel Port) – Já neste tipo de operação os bits de dados são bidirecionais, podendo chegar a uma taxa de transmissão de transferência de 2 MB/s. 16 • ECP (Enhanced Capabilities Port) – No modo de operação ECP os bits de dados também são bidirecionais, podendo chegar a uma taxa de transmissão de transferência de 2 MB/s. 2.3.3 Cabo paralelo O cabo paralelo é utilizado para interligar um computador a um periférico, e seu comprimento deve ser de no máximo 8 metros, mas na maioria dos casos utiliza-se um cabo com extensão menor, porque quanto maior a extensão, maior será a interferência sobre os dados transmitidos. Na figura 2.10 é exibido o cabo paralelo. Figura 2.10 - Cabo Paralelo. 2.3.4 Endereços da Porta paralela O computador pode ter várias portas paralelas, LPT1, LPT2, LPT3, etc, mas a porta física padrão dos computadores é a LPT1. • 378h, para enviar um byte de dados pela Porta; • 379h, para receber um valor através da Porta; • 37Ah, para enviar dados. Caso a porta LPT2 esteja disponível, seus endereços serão: 278h, 279h e 27Ah e com as mesmas funções dos endereços da porta LPT1. 17 2.4 Eletrônica Segundo Bertulani (2007), eletrônica é o campo da ciência e da engenharia que trata dos dispositivos eletrônicos e de sua utilização. É a parte da física que estuda e utiliza as variações de grandezas elétricas para captar, transmitir e processar informações. Trata dos circuitos elétricos e instrumentos constituídos por válvulas termiônicas, dispositivos semicondutores (tais como transistores, termitores e circuitos integrados), tubos de raios catódicos e outros componentes, entre os quais aqueles baseados no efeito fotoelétrico (células fotoelétricas, válvulas fotomultiplicadoras, etc..). 2.4.1 História da Eletrônica De acordo com Bertulani (2007), tudo começou por volta do século XVIII, quando foram feitas as primeiras experiências com eletricidade. Naquela época, o homem ainda não tinha conhecimento sobre a constituição da matéria. Em 1750, o cientista e estadista americano Benjamim Franklin, deu uma contribuição relevante a eletricidade. Ele imaginava a eletricidade como um fluído invisível. Se um corpo tivesse mais do que sua cota normal deste fluído, ele dizia que o corpo tinha uma carga positiva; se o corpo tivesse menos que sua cota normal, sua carga era considerada negativa. Com base nesta teoria, Franklin concluiu que, se um corpo com carga positiva fosse colocado em contato com um corpo com carga negativa, o fluído escoava do corpo positivo (excesso) para o corpo negativo (deficiência). Este fluído hoje é chamado corrente elétrica. Com o descobrimento do elétron em 1897, pelo físico inglês Josep Thonson, verificou-se que o fluído na verdade era o movimento ordenado de elétrons, daí o nome corrente elétrica. Algumas descobertas foram cruciais para o avanço da eletricidade, como a do físico italiano Alessandro Giusepe Volta, que em 1880 conseguiu estocar eletricidade em uma pilha de cobre e zinco. Em 1831, o físico inglês Michael Faraday mostra que um imã pode gerar eletricidade numa bobina de fios de cobre. Em 1880,Thomas Édson descobre o princípio da lâmpada elétrica. Em 1882 é implantado o primeiro sistema de iluminação pública em Nova York. Em 1888, George Westinghouse faz o primeiro motor elétrico, utilizando as descobertas de Faraday. A eletrônica inicia-se praticamente com a descoberta do diodo de emissão termoiônica, estudado e desenvolvido por J. A Fleming, em 1902. Este componente 18 também muito conhecido como válvula de Fleming ou simplesmente válvula, é o marco inicial de toda a história da indústria eletrônica. Antes da primeira guerra mundial, o rádio passou a fazer parte do cotidiano. A válvula era uma invenção fantástica, mas tinha alguns grandes inconvenientes: era grande e pesada demais, o que tornava os aparelhos de radio uns enormes trambolhos, exigiam erto tempo para começar a funcionar e consumiam muita energia. Em busca de uma alternativa aconteceu o inesperado. Em 1946, nasce na universidade da Pensilvânia o primeiro computador eletrônico, o ENIAC. O ENIAC tinha 100.000 válvulas e ocupava 400m².O ENIAC deu início a primeira geração de computadores. Em 1947, comandando um grupo de físicos, Willian Shockley inventa o transistor. Foi um desses grandes acontecimentos que mudam todas as regras. Todos estavam ansiosos na época e previam que grandes coisas estavam para acontecer. O UNIVAC (UNIversal Automatic Computer) se tornou em 1951 o primeiro computador a lidar com dados numéricos e alfabéticos com igual facilidade. Também foi o primeiro computador disponível comercialmente, usado no censo americano da década de 50. Os computadores de primeira geração foram suplantados pelos transistorizados, entre o fim da década de 50 e início da década de 60. Esses computadores de segunda geração já eram capazes de fazer um milhão de operações por segundo. Por sua vez, foram suplantados pelos computadores de terceira geração, com circuitos integrados (foto 3), de meados dos anos 60 até a década de 70. A década de 80 foi caracterizada pelo desenvolvimento do microprocessador e pela evolução dos minicomputadores, microcomputadores e computadores pessoais, cada vez menores e mais poderosos. 2.4.2 Condutores, Semicondutores e Isolantes 2.4.2.1 Condutores Segundo Larousse(1995) condutor é um meio suscetível de transmitir calor ou eletricidade de um ponto a outro de sua massa. Em eletricidade, um condutor é qualquer meio em que se propaga a corrente elétrica. Por exemplo metal é um bom condutor, mas madeira não é um bom condutor de corrente elétrica. 19 2.4.2.2 Semicondutores Material que conduz a eletricidade imperfeitamente e cuja resistividade decresce com o aumento da temperatura (LAROUSSE, 1995). Semicondutores são sólidos cristalinos de condutividade elétrica intermediária entre condutores e isolantes. Os elementos semicondutores podem ser tratados quimicamente para transmitir e controlar uma corrente elétrica. 2.4.2.3 Isolantes Chama-se isolante elétrico os materiais que possuem altos valores de resistência elétrica e por isso não permitem a livre circulação de cargas elétricas, por exemplo borracha, silicone, vidro. O que torna um material bom condutor elétrico é a grande quantidade de elétrons livres que ele apresenta à temperatura ambiente, com o material isolante acontece o contrário, ele apresenta poucos elétrons livres à temperatura ambiente. Os isolantes elétricos são separados de acordo com a tensão que se quer fazer o isolamento. Um pedaço de madeira, por exemplo, só pode ser considerado isolante até uma determinada classe de tensão, se elevarmos essa tensão a determinados níveis, ele pode se tornar um condutor de eletricidade. Os isolantes gasosos são sempre gases poliatômicos (ar, N2, H2, SF6). Os isolantes líquidos podem ser óleos minerais derivados do petróleo ou óleos sintéticos não inflamáveis. Os isolantes sólidos podem ser minerais ou orgânicos, naturais ou sintéticos. (LAROUSSE, 1995) 2.4.3 Componentes Eletrônicos Define-se como componente eletrônico todo dispositivo elétrico que transmite a corrente elétrica através de um condutor ou semicondutor (WIKIPEDIA, 2007). 2.4.3.1 Circuito Integrado Segundo Braga (2002), Circuito Integrado (CI) não pode ser considerado um componente eletrônico, mas sim um conjunto de componentes fabricados numa pastilha de silício, já interligados e montados em um invólucro comum. O CI consiste de uma pequena pastilha de silício que contem um determinado número de componentes tais como 20 transistores, resistores, diodos e capacitores, já interligados por trilhas ou regiões condutoras de modo a formar um circuito completo. 2.4.3.1.1 ULN 2803 De acordo com Mecatrônica (2006), o CI ULN 2803 tem 8 entradas que podem controlar até 8 saídas. Com ele é possível controlar até 2 motores de passo simultaneamente. O ULN 2803 trabalha com corrente de 500mA e tensão de até 50v. Para não sobrecarregar o CI deve-se usar motores que consumam menos de 500mA. Um fator importante que se deve levar em consideração é a fonte de alimentação que terá que fornecer a amperagem necessária. Na figura 2.11 é exibido o datasheet do circuito ULN 2803, e a figura 2.12 o mostra externamente. Figura2.11 – Datasheet ULN 2803. Figura2.12 - ULN 2803. 2.4.3.1.2 NE 555 O 555 é um circuito integrado utilizado em uma variedade de aplicações de temporização. O temporizador 555 é um dos mais populares e versáteis circuitos integrados jamais produzidos, ele é composto por 23 transistores, 2 diodos e 16 resistores em um chip de silício em um encapsulamento de 8 pinos duplo em linha (DIP). Da mesma família de temporizadores temos ainda o CI 556 composto pela combinação de dois temporizadores 555 combinados em um encapsulamento de 14 pinos DIP (WIKIPEDIA, 2007). O 555 tem dois modos de operação: 21 • Modo monoestável: nesta configuração, o CI 555 funciona como um disparador. Suas aplicações incluem temporizadores, detector de pulso, chaves imunes a ruído, interruptores de toque, etc. • Modo astável: O CI 555 opera como um oscilador. Os usos incluem pisca-pisca de LED, geradores de pulso, relógios, geradores de tom, alarmes de segurança, etc. Na figura 2.13 é exibido o datasheet do circuito NE 555, e a figura 2.14 o mostra externamente. Figura 2.13 – DataSheet NE 555. Figura 2.14 – NE 555. 2.4.3.1.3 LM 7805 O LM7805 é um regulador de tensão linear fornecido por vários fabricantes como a Fairchild ou ST Microelectronics. Ele pode vir em vários encapsulamentos. Para corrente de saída até 1A existem dois encapsulamentos: TO-220 (vertical) e D-PAK (horizontal). A figura 2.15, exibe o LM 7805 e seus encapsulamentos (MECATRÔNICA, 2006). Figura 2.15 - Encapsulamentos do LM 7805. 2.4.3.2 Transistor O transistor é um componente eletrônico que começou a se popularizar na década de 1950 tendo sido o principal responsável pela revolução da eletrônica na década de 1960, e 22 cujas funções principais são amplificar e chavear sinais elétricos. De acordo com Braga (2002), o termo vem de transfer resistor (resistor de transferência), como era conhecido pelos seus inventores. Os transistores possuem terminais que designam-se por coletor (C), emissor (E) e base (B). A figura 2.16 representa os símbolos dos dois tipos de transistor que existem. Apenas como nota, a existência destes dois tipos compreende-se bem porque, tratando-se de um dispositivo construído com base num cristal semicondutor contaminado (ou dopado) de forma a apresentar três zonas distintas, de tipo P ou N, separadas por duas junções idênticas às do diodo. As três zonas podem organizar-se apenas de duas maneiras diferentes, assinaladas também na figura 2.16, que originam os dois tipos de transistor bipolar: npn e pnp. Figura 2.16 - Classificação dos transistores 2.4.3.2.1 BC337 NPN Este transistor funciona no modo NPN, onde o pino 1 é o coletor, o 2 é base e o 3 é o emissor, conforme exibido na figura 2.17. Figura 2.17 – Imagem NPN. 2.4.3.3 Resistor Conforme Braga (2002) resistores elétricos são componentes eletrônicos, cuja finalidade é oferecer oposição à passagem de corrente elétrica através de seu material. A essa 23 oposição é dado o nome de "Resistência Elétrica". Na figura 2.18 é exibido o símbolo, unidade e representação de valores de resistência. Símbolo Unidade Ohm Ω Kilo Ohm KΩ = 10³Ω Mega Ohm MΩ = 10exp6Ω Figura 2.18 – Imagem Resistência Elétrica. Os Resistores podem ser Fixos ou Variáveis, onde os Fixos são Resistores cuja resistência elétrica não pode ser alterada (apresentam dois terminais), já os Resistores Variáveis são aqueles cuja resistência elétrica pode ser alterada através de um eixo ou curso (Reostato, Potenciômetro). 2.4.3.3.1 Identificação dos Resistores Os resistores são identificados através de um código de cores, onde cada cor e a posição da mesma no corpo dos resistores representa um valor ou um fator multiplicativo, conforme a figura 2.19 e na tabela 2.1. Figura 2.19 – Imagem identificando resistor. Cor 1º Algarismo 2º Algarismo Fator Multiplicativo Tolerância Preto - 0 10exp0 - Marrom 1 1 10exp1 1% Vermelho 2 2 10² 2% Laranja 3 3 10³ - 24 Amarelo 4 4 10exp4 - Verde 5 5 10exp5 - Azul 6 6 10exp6 - Violeta 7 7 - - Cinza 8 8 - - Branco 9 9 - - Ouro - - 10exp-1 5% Prata - - 10exp-2 10% Tabela 2.1 - Tabela de valores do Resistor. Analisando um resistor: • 1º Faixa - Vermelho=2; • 2º Faixa - Vermelho=2; • 3º Faixa - Fator Multiplicativo - Marrom=10exp1=10; • 4º Faixa - Tolerância - Ouro = 5%; • Valor do Resistor = 22 x 10 = 220Ω 5%. 2.4.3.3.2 Associação dos Resistores Existem dois tipos de associações que podem ser feitas utilizando-se os resistores, que são: • Associação em série: é quando os resistores são associados um em seguida ao outro, sendo percorridos pela mesma corrente, como mostra a figura 2.20. Figura 2.20 – Associação em série. 25 • Associação Paralela: é quando os resistores da associação estão submetidos à mesma tensão. Seus terminais estão ligados nos mesmos dois pontos. Como mostra a figura 2.21. Figura 2.21 – Associação paralela. 2.4.3.4 Capacitores Um Capacitor ou Condensador é constituído por duas placas metálicas condutoras (as armaduras), dispostas uma paralela à outra e separadas por um material isolante (o dielétrico). Utiliza-se como dielétrico o papel, a cerâmica, a mica, os materiais plásticos, vidro, parafina ou mesmo o ar. O Capacitor é dispositivo muito usado em circuitos elétricos. Este aparelho é destinado a armazenar cargas elétricas e é constituído por dois condutores separados por um isolante: os condutores são chamados armaduras (ou placas) do capacitor e o isolante é o dielétrico do capacitor. (BRAGA, 2002) Costuma-se dar nome a esses aparelhos de acordo com a forma de suas armaduras. Assim temos o capacitor plano, capacitor cilíndrico, capacitor esférico, etc. A quantidade de carga armazenada na placa de um capacitor é diretamente proporcional à diferença de potencial entre as placas. O quociente entre carga (Q) e diferença de potencial (U) é então uma constante para um determinado capacitor e recebe o nome de capacitância (C). C=Q/U C = Capacitância medida em Farad F; Q = Carga elétrica medida em Coulombs C; U = Tensão elétrica medida em Volts V; O Farad (homenagem ao físico inglês Michael Faraday) é uma unidade extremamente grande, conforme exibido na figura 2.22. 26 Figura 2.22 – Farad. Quando o capacitor possui um isolante elétrico entre suas placas, sua capacitância aumenta. Este isolante dificulta a passagem das cargas de uma placa a outra, o que descarregaria o capacitor. Dessa forma, para uma mesma diferença de potencial, o capacitor pode armazenar uma quantidade maior de carga. Os capacitores são amplamente utilizados em rádios, gravadores, televisores, circuitos elétricos de veículos, etc. Existem duas formas de se utilizar o capacitor, conforme as figuras 2.23 e 2.24: Capacitores em série Figura 2.23 – Capacitores em Série. Capacitores em Paralelo Figura 2.24 – Capacitores em Paralelo. 2.5 Motor de Passo Os Motores de passos são dispositivos mecânicos, que podem ser controlados através de softwares ou de um hardware específico, tais motores são encontrados em aparelhos onde a precisão é um fator muito importante como impressoras, scanners, discos rígidos e muitos outros aparelhos. Os motores que são utilizados neste projeto são do tipo unipolar, neste tipo não é necessário inverter a polaridade para girar nos dois sentidos Segundo Rogercom (2006), os motores de passo pode trabalhar em 3 modos de operação, são eles: 27 • Passo completo 1 (full-step): Onde somente uma bobina é energizada a cada passo, conforme é exibido na figura 2.25. Características: - Consumo de pouca energia; - Menor torque; - Maior velocidade. Figura 2.25 – Passo completo 1 (Full-step). • Passo completo 2 (full-step): Onde duas bobinas são energizadas a cada passo. Como mostra a figura 2.26. Características: -Maior torque; -Consome mais energia que o Passo completo 1; - Maior velocidade. Figura 2.26 – Passo completo 2 (Full-step). • Meio Passo (half-step): Neste modo de operação é feita uma combinação do passo completo 1 (full-step) com o passo completo 2 gerando um meio passo, como mostra a figura 2.27. Características: - Mais preciso; - Consome mais energia que os passos anteriores; - Menor velocidade. 28 Figura 2.27 – Meio Passo (Half-step). Na figura 2.28, é exibido como operar um motor de passo de seis fios, para que efetue um giro: Figura 2.28 – Ativando as bobinas. 2.5.1 Acionamento do Motor de Passo Segundo Rogercom (2006), para acionarmos um motor de passo é necessário a utilização de um hardware específico chamado driver, que pode ser feito utilizando transistores de potência como os BD135, DB241, ou utilizando drivers prontos, como o ULN2803, que nada mais são que arrays de transistores. Neste projeto utilizou-se o CI ULN 2803 para o controle de dois motores de passo, este CI trabalha com correntes de 500mA e tensão de até 50v. 2.5.2 Determinação dos fios comuns Para ligar o motor de passo a fonte de alimentação, é necessário descobrir dentre os fios do motor, qual é o fio comum. Segundo Mecatrônica (2006), para isso é necessário fazer 29 medições com um multímetro separando quais fios têm contato elétrico, assim tendo dois conjuntos de três como mostra a figura 2.29. Figura 2.29 – Motor de seis fios. Medindo a resistência dentro de cada conjunto, apenas um dos fios vai apresentar resistência reduzida em relação aos outros dois, este fio corresponde ao fio comum. Depois de encontrado o fio comum em cada conjunto, é só juntá-los formando um único terminal comum para ligar a fonte. Supondo que valor medido foi de 36 ohm de resistência. Aplicando a lei de Ohm temos: V = R.I 5 = 61.I I = 12/61 I = 82mA Portanto, o motor deve ser alimentado com 5v / 82mA, podendo ser controlado através de um CI ULN 2803, porque 82mA está abaixo dos 500mA que os CIs podem controlar 30 3. Atividades Desenvolvidas 3.1 Montagem do Circuito Eletrônico Tendo como base o layout do circuito na figura 3.1, iniciou-se a montagem da parte eletrônica do projeto. Figura 3.1 – Imagem do Circuito eletrônico. Na implementação deste circuito foram utilizados os seguintes componentes : • 1 placa com dimensão 10x15cm para soldagem dos componentes; • 3 metros de estanho para solda; • 1 CI ULN 2803; • 2 CI’s NE 555; • 1 CI LM 7805; • 1 Transistor BC337 NPN; 31 • 8 Resistores de 100Ω 1/8 watt, • 1 Resistor 2,2KΩ 1/8 watt; • 1 Resistor 150Ω 1/8 watt; • 1 Resistor 1KΩ 1/8 watt; • 1 Resistor 10KΩ 1/8 watt; • 1 Trimpot mini horizontal 10kΩ; • 1 Capacitor 10µF/25v eletrolítico; • 1 Capacitor 0,1µF poliéster; • 2Capacitor 0,01µF poliéster; • 1 Capacitor 220µF/25v eletrolítico; • 1 DB15 fêmea 90°; • 2 Borne 4 seguimentos; • 2 Borne 2 seguimentos; • 1 Borne 3 seguimentos; • 2 Leds; • 2 Suportes para CI; A montagem se iniciou com o posicionamento dos jumpers, que são pequenos pedaços de fios. Logo depois vem a soldagem dos resistores, capacitores, bornes e CI’s. Na figura 3.2 é exibida a imagem do circuito eletrônico concluído, com todos os seus componentes conectados a placa. Figura 3.2 – Imagem superficial do circuito eletrônico. 32 Figura 3.3 – Imagem da parte inferior do circuito eletrônico. 3.1.1 Componentes do circuito 3.1.1.1 Circuito Integrado(CI) ULN 2803, sua função é aumentar a capacidade de corrente e tensão de trabalho para os pinos de dados da porta paralela (pinos 2-9). Os bits menos significativos (0-3) da porta controlam o motor 1 e os bits mais significativos (4-7) controlam o motor 2. NE 555 utilizado para substituir o NE 556 que tem interiormente um duplo NE 555. Tem como função controlar o motor servo CS-60. O primeiro NE 555 tem função de um oscilador do tipo astável controlando o segundo NE 555 que funciona como temporizador monoestável. O primeiro gera pulsos próximos a 20ms(0,02s) e o segundo, quando ativado, gera pulsos de 1ms a 2ms(0,001s e 0,002s). O controle do motor é feito alterando-se o valor de “R” (Conforme figuras 3.4 e 3.5) com o transistor BC337 que põe em “curto” o Trimpot forçando a transição do valor máximo para o mínimo monoastável. Figura 3.4 – Figura_Cálculo astável. 33 Figura 3.5 – Figura_Cálculo monoestável. LM7805 com encapsulamento TO-220 foi usado para regular a tensão de 12VDC para 5VDC. 3.1.1.2 Transistor BC337 é usado no controle do servo motor, sua função é colocar em “curto” o Trimpot forçando a transição do valor máximo para o mínimo monoastável. 3.1.1.3 Resistores Resistores de 100Ω serve para limitar a corrente e ajudar na proteção da porta paralela do computador. Resistor de 2,2KΩ serve para limitar a corrente de entrada nos CI’s NE555 e no capacitor de 10µF/25v eletrolítico. Resistor de 150Ω funciona em série com o resistor 2,2K para controlar a corrente no NE555. Resistor de 1kΩ protege o BC337 e a porta paralela. Resistor de 10KΩ limita a corrente que chega ao NE555 e ao capacitor 0,01µF. Trimpot 10KΩ tem como função regular a posição do servo motor. 3.1.1.4 Capacitores Tem o objetivo de suavizar a saída de uma onda retificada completa ou meia onda. 34 3.1.1.5 Servo No projeto Robô Desenhista o servo motor CS-60 Hobbico tem a função de levantar e descer a caneta, de acordo com os comandos enviados para o robô, dando mais precisão nos desenhos. 3.1.1.6 LED’s Os led’s foram utilizados para indicar se há corrente passando pelo circuito. 3.1.2 Acionamento dos Motores 3.1.2.1 Motores de Passo Quando enviamos o sinal para o motor, este sinal passará pelos pinos de (1-4) da porta paralela passando pelos resistores, chegando ao CI ULN2803 nos pinos de (1-4) onde será amplificado estes sinais saindo dos pinos (15-18) chegando ao borne onde será ligado os quatro fios do motor de passo de suas respectivas bobinas e os outros dois fios restantes são ligados na energia. O mesmo processo acontece para o acionamento do motor 2 mudando apenas os pinos da porta paralela que serão de (5-8), os pinos de entrada do CI que serão de (5-8) e os pinos de saída do CI serão (11-14). 3.1.2.2 Servo motor O sinal que vem do software através do pino 9 da porta paralela passa pelo resistor, entra no transistor BC337 como sinal de base que determina a entrada ou não do sinal no primeiro CI NE555, pelos pinos 6 e 7 que controlará o segundo CI NE555 que funciona como temporizador, enviando pulsos para o pino de saída 3 que acionará o servo motor que estará, também, ligado a energia e ao terra. 35 3.2 Implementação do Programa Robô Desenhista 3.2.1 Configurando Porta Paralela Para permitir o uso da porta paralela foi necessário a utilização de um software chamado UserPort.exe, porque nos sistemas operacionais Windows 2000 , NT e XP é proibido o acesso as portas de I/O por motivos de segurança. Tal software pode ser encontrado no seguinte endereço, sendo que sua utilização é gratuíta. http://www.mecatronicafacil.com.br/downloads/logo_instr.htm Após o download foi necessário a copia do arquivo UserPort.sys, para o seguinte diretório: C:\WINDOWS\system32\drivers. Posteriormente executamos o programa e ajustamos os endereços 0x378-0x37, conforme a figura 3.6, utilizando os botões ADD para adicionar e Remove para remover os outros endereços, após o termino pressionamos o botão Start. Figura 3.6 – Tela do programa UserPort. 3.2.2 Procedimentos de controle do robô Foram implementados procedimentos que tem como objetivo enviar comandos para porta paralela para que o robô os execute, que são: abaixar e levantar a caneta, andar para frente e para trás, girar para direita e para esquerda e realizar curva para direita e para esquerda. Após o desenvolvimento de tais procedimentos, foi feito um novo procedimento chamado “desenhista”, que cria a tela do programa como os botões, as barras de rolagem e chama os seus respectivos procedimentos. Na figura 3.7, é exibida a tela do programa em execução. 36 Figura 3.7 – Tela do Programa Robô Desenhista 3.2.2.1 Abaixar Caneta Para acionar esse recurso, foi necessária a criação do seguinte procedimento: aprenda abaixa portasaída 890 10 fim Com isso, quando chamado o procedimento abaixa, será enviado dados para a porta LPT de controle para que o motor servo que é responsável por abaixar a caneta, receba a instrução e execute-a. 3.2.2.2 Levantar Caneta Para levantar a caneta, criou-se outro procedimento chamado levanta, que também irá enviar dados para a porta LPT1 de controle, assim o motor servo receberá o comando e suspenderá a caneta. Código referente ao movimento do servo, para levantar a caneta: aprenda levanta portasaída 890 11 fim 37 3.2.1.3 Andar para frente Para que o robô seja capaz de andar para frente, implementou-se o procedimento chamado “frente”, onde é realizado uma repetição de 1 até o valor de steps escolhido na barra de rolagem. Assim ao chamar o procedimento será enviado para a porta LPT1 de dados, quais as portas deverão ser acionadas. Para que os dois motores sejam acionados, duas saídas que estão conectadas ao motor da esquerda são ativados e duas saídas conectadas ao motor da direita também são ativados. Todos os procedimentos de locomoção como andar para frente, para trás, girar para direita e para esquerda, fazer curva para direita e para esquerda, irão realizar esta repetição recebendo como parâmetro o valor de steps. aprenda frente portasaída 888 0 para[i 1 :steps 1][ pf 1 portasaídab 888 106 espere :velocidade portasaídab 888 89 espere :velocidade portasaídab 888 149 espere :velocidade portasaídab 888 166 espere :velocidade] portasaída 888 0 fim 3.2.1.4 Andar para trás No procedimento chamado “traz”, como o próprio nome diz, fará com que o robô ande para trás, para que isto ocorra as saídas ativadas serão o inverso das utilizadas para que o robô ande pare frente, conforme o código a seguir. aprenda traz portasaída 888 0 para[i 1 :steps 1][ pt 1 portasaídab 888 166 espere :velocidade portasaídab 888 149 espere :velocidade portasaídab 888 89 espere :velocidade portasaídab 888 106 espere :velocidade] portasaída 888 0 fim 38 3.2.1.5 Girar para direita Para que o robô seja capaz de girar para a direita, implementou-se um procedimento que faz com que o motor da esquerda gira para trás e o motor da direita gire para frente. Esse procedimento é descrito a seguir: aprenda direita portasaída 888 0 para[i 1 :steps 1][ pd 1 portasaídab 888 102 espere :velocidade portasaídab 888 85 espere :velocidade portasaídab 888 153 espere :velocidade portasaídab 888 170 espere :velocidade] portasaída 888 0 fim 3.2.1.6 Girar para esquerda Para que o robô gire para a esquerda, implementou-se um procedimento que faz com que o motor da direita gire para trás e o motor da esquerda gire para frente. Conforme o código seguir: aprenda esquerda portasaída 888 0 para[i 1 :steps 1][ pe 1 portasaídab 888 170 espere :velocidade portasaídab 888 153 espere :velocidade portasaídab 888 153 espere :velocidade portasaídab 888 102 espere :velocidade] portasaída 888 0 fim 3.2.1.7 Realizar uma curva para direita No movimento curva para direita, implementou-se um procedimento que faz com que somente o motor da direita gire para frente. Código referente ao movimento curva para direita do robô: aprenda cvdireita portasaída 888 0 para[i 1 :steps 1][ pf 1 pd 1 portasaídab 888 10 espere :velocidade 39 portasaídab 888 9 espere :velocidade portasaídab 888 5 espere :velocidade portasaídab 888 6 espere :velocidade] portasaída 888 0 fim 3.2.1.8 Realizar uma curva para esquerda Para que o robô realize o movimento curva para esquerda, implementou-se um procedimento onde somente o motor da esquerda gire para frente. Código referente ao movimento curva para esquerda do robô: aprenda cvesquerda portasaída 888 0 para[i 1 :steps 1][ pf 1 pe 1 portasaídab 888 96 espere :velocidade portasaídab 888 80 espere :velocidade portasaídab 888 144 espere :velocidade portasaídab 888 160 espere :velocidade] portasaída 888 0 fim 40 3.3 Montagem do Robô 3.3.1 Montagem do Cabo de Comunicação Para sua montagem, utilizou-se um cabo tipo manga que têm como extensão 2 metros, embutiu-se a fonte de alimentação de 12 VDC neste cabo manga. Na extremidade que liga o computador está conectado um conector DB25 MACHO. Na extremidade ligada ao circuito eletrônico, temos um conector DB15 MACHO, onde a fonte de alimentação do circuito será ligada no pino 10. 3.3.2 Montagem Mecânica 3.3.2.1 Montagem do Chassi Para a montagem do chassi, foram utilizadas duas caixas plásticas da fabricante patola, que são seguintes, CF815/F onde foram colocados os dois motores de passo utilizados para a locomoção do robô, e o servo para levantar e abaixar a caneta e na caixa PB600/2 onde foi fixado o circuito eletrônico do robô. Na locomoção do robô, foi feito duas rodas de madeira para conectá-las aos motores de passo, posteriormente as revestiu-se com pedaços de câmara de ar para aumentar o atrito. Logo depois foram parafusados os motores na lateral da caixa CF815/F, como a figura 3.8. Para a movimentação da caneta, fixou-se o servo no chassi e foram utilizadas alavancas feitas em alumínio é plástico. O movimento do servo é ajustado através do trimpot, que está conectado no circuito eletrônico. Como mostra a figura 3.9: Figura 3.8 – Fixação dos motores de passo 41 Figura 3.9 – Ajuste do sevo motor 42 4. Conclusão A robótica é uma área de pesquisa que envolve extrema complexidade, mas os frutos gerados com seu uso a torna bastante atraente para todas as empresas que desejam um ganho de produção, redução de custos entre outros, a cada dia que passa torna-se mais difundida em todo o mundo. Este projeto foi motivado pela percepção da crescente demanda das empresas em automatizar seus processos a fim de obter maior produtividade e conseqüentemente maior lucro. Sabendo-se dessas necessidades, implementamos o robô desenhista que é capaz de realizar vários desenhos. Esse robô poderá futuramente ser implementado em cortes de chapas de vidro, metal, entre outros, preservando assim a integridade física dos funcionários. Através do projeto desenvolvido, foi possível adquirir um amplo conhecimento e experiência prática na área de robótica, programação e eletrônica. A linguagem de programação SuperLogo, utilizada no desenvolvimento do programa robô desenhista, permitiu o entendimento de como é feita a comunicação da porta paralela com os periféricos conectados a ele. Já no desenvolvimento do circuito eletrônico, identificamos a utilidade de vários componentes eletrônicos. Acreditamos que este projeto foi de grande valia para o crescimento pessoal e profissional de todos os integrantes envolvidos neste projeto. 4.1 Dificuldades Encontradas Ao decorrer do desenvolvimento de nosso projeto, foram encontradas várias dificuldades, dentre elas podemos destacar: • Adquirir os componentes necessários para o desenvolvimento do robô; • Fixar o servo no chassi de modo que consiga abaixar e suspender a caneta; • O fato de nem todos os integrantes do grupo morar na mesma cidade, dificultando assim nossas reuniões; • A falta de tempo disponível por todos trabalharem, assim podendo reunir somente nos finais de semana e feriados. 43 5. Referência Bibliográfica AGUIAR, Carlos Eduardo. Informática para o Ensino de Física :Introdução ao Logo. 2006. Apostila. FERRUZI, Elaine Cristina. Considerações sobre a linguagem de programação Logo. Seminário apresentado no grupo de estudos de inteligência artificial aplicada à matemática. SantaCatarina: GEIAAM, setembro/2001. MORELATTI, M. R. M.; FURKOTTER, M. Metodologias de Ensino de matemática no ciclo II do ensino fundamental I :Introdução à linguagem de programação logo. 2005. Apostila. MECATRÔNICA FÁCIL. Robô Desenhista controlado pelo pc através da porta paralela. 26º Edição, Jan.-Fev 2006. MECATRÔNICA FÁCIL. Controle de motor de passo pela porta paralela do pc. 30º Edição, Set.-Out 2006. MORAES, Paulo Sérgio de. Lógica de Programação. Unicamp, 2000. (Apostila). GAMA, Claudia. Introdução a Lógica de Programação. Ufba. (Apostila). FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de Programação. MAKRON Books, 2º Edição, 2000. GUSTAVO. Porta Paralela. Disponível em <http://pessoal.pb.cefetpr.br/gustavo/porta_paralela_pratica_1.pdf>. Acesso em: 08 Set. 2007, 10:35. CÉSAR, Danilo Rodrigues. Robótica Livre: Implementação de um Ambiente Dinâmico de Robótica Pedagógica com Soluções Tecnológicas Livres no CET CEFET em Itabirito.Disponível em <http://libertas.pbh.gov.br/~danilo.cesar/robotica_livre/artigos/artigo_sbc_fisl_2004_final_ed u_weimig.pdf>. Acesso em 2007. BRASIL, Alex. Braço Mecânico. 07 de julho de 2005. (Apostila). CARRARA, Valdemir. Apostila de Robótica. Disponível em <http://www.valcar.net>. Acesso em 2007. MARTINS, A. O que é Robótica. São Paulo: Editora Brasiliense, 1993. SANTAELLA, Lucia Arte & Ciência: o campo controverso da bioarte. Disponível em < http://www.itaucultural.org.br/interatividades2003/paper/santaella.doc > Acessado em dez. 2007. 44 SANTOS, Winderson Eugênio. Robôs <http://www.controle.eng.br>.Acesso em 2007. Industriais. Disponível em VIEIRA, Rodrigo Souza.Robôs Industriais. Uma Breve Revisão de Literatura.Disponível em <http://www.eps.ufsc.br/disserta99/vieira/cap2.html>. Acesso em 2007. ROGERCOM. Porta Paralela, Motores de Passo URL: <http://www.rogercom.com> Acessado em nov. 2007. ROSÁRIO, João Maurício. Artigo:Robótica: Realidade ou Ficção - Uma Opção para a Medicina do Século XXI.Disponível em <http://www.universia.com.br/html/materia/materia_egjb.html> Publicado em 06/08/2004. LAROUSSE. Grande Enciclopédia Larousse Cultural. São Paulo: Plural Editora e Gráfica, 1995 45