Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO À ROBÓTICA Material desenvolvido e organizado pelos alunos Diego Agostini, Douglas Fetter e Wagner de Oliveira, 2005. Segundo João Vilhete Viegas d'Abreu, a robótica pedagógica é um ambiente de aprendizagem onde o professor ensina ao aluno a montagem, automação e controle de dispositivos mecânicos que podem ser controlados pelo computador. Do ponto de vista da engenharia mecânica, a robótica pode ser definida como sendo uma forma da automação industrial, um conjunto de conceitos básicos de Mecânica, Cinemática, Automação, Hidráulica, Informática e Inteligência Artificial, envolvidos no funcionamento de um robô. Com as ferramentas necessárias para o desenvolvimento de dispositivos robóticos, alunos e professores interagem entre si e produzem novos e diferentes tipos de conhecimentos neste novo tipo de ambiente pedagógico ainda inexistente em larga escala na educação formal. A utilização da automação e da robótica generaliza-se, de forma acelerada, em todas as esferas da sociedade moderna. É difícil visualizar os dias atuais sem o emprego da tecnologia da automação. Há algumas décadas seu uso restringia-se praticamente à área industrial, mas com os avanços conseguidos, estendeu-se também ao cotidiano das pessoas. Hoje é um dos segmentos da tecnologia que mais evolui, e na escola, esta realidade também deve se fazer presente. Foto: http://www.abb.com/br (acessado em 27/abril/2006) Num mundo em rápida transformação tecnológica, em que as tarefas repetitivas são cada vez mais relegadas a robôs e softwares, a chamada “alfabetização científica” se torna cada vez mais importante para a cidadania e a futura inserção sócio-econômica de nossos alunos. A redução drástica no custo da microeletrônica nos dias de hoje, coloca ao alcance de todos a construção de robôs com baixo custo. Neste cenário, é fundamental que a educação praticada em nossas universidades estimule os alunos e professores a explorar novos meios para aprimorar o processo de ensino-aprendizagem. A tecnologia dos computadores e dos robôs pode possibilitar novas formas de integração de trabalhos ainda pouco exploradas ou desconhecidas pelos professores [D’Abreu 1996]. Atualmente é imprescindível criar espaços para a inclusão de novas práticas no cotidiano escolar. A adoção de uma metodologia que envolva o lúdico, a pesquisa e novas tecnologias, resulta numa ampliação do contato dos alunos com novos conceitos e equipamentos e numa maior atração pelo processo educativo [Bassani 2002]. Nesse contexto, os robôs controlados por computadores surgem como uma ferramenta relevante para desvelar novas formas de construção do raciocínio, tais como algoritmos e programação. Nos trabalhos com robótica, o professor deve assumir a função de criador do ambiente favorável ao desenvolvimento do aluno, transformando a sala de aula em um ambiente de alta contaminação tecnológica. Ali o aluno poderá aprender dentro dos mesmos padrões em que o engenheiro (ou outro profissional) real aprende: de forma auto-suficiente, desenvolvendo seu próprio método de aprendizagem, fazendo e errando, definindo visões, buscando o conhecimento de forma pró-ativa, tudo dentro de uma cultura favorável em que o contexto emocional é importante. [Dolabela 1999]. Foto 1: Robôs utilizados em atividades de robótica educativa na Unisc Desde a infância, os brinquedos e as brincadeiras constituem os mediadores por excelência entre a criança e o aprendizado [Fortuna 2001]. Os brinquedos eletrônicos representam uma atividade lúdica criadora e socializadora, pois transportam crianças e adolescentes para experiências diversas, abrindo-lhes as portas para o entendimento da realidade e ajudando-os a compreender o funcionamento detalhado das partes integrantes do sistema eletromecânico. Os brinquedos eletrônicos também entretêm e isso explica seu sucesso entre crianças, jovens e adultos. A sua implementação e adaptação na aula prática de programação faz com que o aluno aprenda os conteúdos da disciplina de forma prazerosa. Os brinquedos eletrônicos permitem ao aluno experimentar virtualmente as mesmas aventuras e emoções que são vivenciadas no mundo real. A sala de aula é transformada num espaço de experimentação e criação, movimentando a imaginação dos alunos e aproximando-os do mundo tecnológico. O Que é um Robô ? 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 robôs, que executem essas tarefas sem risco de vida. Foto 2: Robô Asimo http://world.honda.com Robótica é uma área multidisciplinar, altamente ativa que busca o desenvolvimento e a integração de técnicas e algoritmos para a criação de robôs. A robótica envolve matérias como engenharia mecânica, engenharia elétrica, inteligência artificial, entre outras, com uma perfeita harmonia, que se faz necessária para se projetar essas tecnologias. Temos hoje robôs em várias áreas de nossa sociedade: robôs que prestam serviços, como os desarmadores de bomba, robôs com a finalidade da pesquisa científica e educacional e até mesmo os robôs operários, que se instalaram em fábricas e foram responsáveis pela “segunda Revolução Industrial”, revolucionando a produção em série, agilizando os trabalhos e fornecendo maior qualidade aos produtos. Foto 3: http://www.fanucrobotics.com Não existe uma definição precisa para um robô, mas podemos defini-lo de modo geral como uma máquina programável que é capaz de imitar as ações ou a aparência de uma criatura inteligente, geralmente um ser humano. Para se caracterizar como um robô, a máquina deve ser capaz de no mínimo duas coisas: • Obter informações sobre o seu próprio ambiente. Para realizar certas tarefas os robôs precisam de habilidades sensoriais similares às do homem, mas sua capacidade ainda é limitada. • Atuar de alguma forma física neste ambiente, movendo-se ou manipulando objetos. Décadas atrás, os robôs faziam parte apenas da ficção científica, fruto da imaginação do homem. No início dos anos 60, os primeiros robôs começaram a ser usados com o objetivo de substituir o homem em tarefas que ele não podia realizar por envolverem condições desagradáveis, tipicamente contendo altos níveis de: frio ou calor; ruído; gases tóxicos; esforço físico extremo; trabalhos monótonos, “estafantes”. Foto 4: http://www.fanucrobotics.com Muitos sistemas mecânicos podem ser controlados por operações numérico-aritméticas e as máquinas CNC (Controle Numérico Computadorizado) são controladas por computadores e cada vez mais usadas na indústria moderna. Os robôs didáticos têm sido muito utilizados na orientação de estudantes e operários responsáveis pela operação e manutenção de robôs. Embora eles possuam algumas das principais características dos robôs industriais, os robôs didáticos são mais baratos, menores e com menor nível de desempenho. Similares aos industriais, os robôs didáticos são compostos por: • Sistema de acionamento: Pode ser pneumático, hidráulico ou elétrico. • Realimentação: Conjunto de sensores que fornece ao sistema supervisor as informações sobre o estado de seu movimento. • Computador: Responsável pelo controle eletrônico do robô. • Fonte de energia: Providencia energia para o controlador e potência para todos componentes. Tipos de Robôs: 1. Robôs Inteligentes: são manipulados por sistemas multifuncionais controlados por computador, são capazes de interagir com seu ambiente através de sensores e de tomar decisões em tempo real. Atualmente dedica-se grandes esforços no desenvolvimento desse tipo de robô. 2. Robôs com controle por computador: são semelhantes aos robôs inteligentes, porém não têm a capacidade de interagir com o ambiente.Se estes robôs forem equipados com sensores e software adequado, se transformam em robôs inteligentes. 3. Robôs de aprendizagem: limitam-se a repetir uma seqüência de movimentos, realizados com a intervenção de um operador ou memorizadas. 4. Manipuladores: são sistemas mecânicos multifuncionais, cujo sistema de controle permite governar o movimento de seus membros das seguintes formas: a) manual, quando o operador controla diretamente os movimentos; b) de seqüência variável, quando é possível alterar algumas das características do ciclo de trabalho. Também pode-se realizar a classificação dos robôs do ponto de vista do controle de seus movimentos, admitindo as seguintes configurações: 1. Sem controle-servo: é o programa que controla o movimento dos diferentes componentes do robô, realizando em um posicionamento “ponto-a-ponto” no espaço. 2. Com controle-servo: este tipo de controle permite duas formas de trabalho: a) controle dos movimentos dos membros do robô em função de seus eixos. Os movimentos podem ser realizados ponto-a-ponto ou com trajetória contínua. b) os movimentos se estabelecem da respectiva posição de seus eixos de coordenada e da orientação da mão ferramenta do robô. Esta classificação não pretende ser rígida, também existem sistemas que estão limitados a um controle misto computador-operário. Foto 5: Robôs de exploração da Nasa http://ranier.hq.nasa.gov e http://mars.jpl.nasa.gov O Braço Mecânico O braço mecânico é um manipulador projetado para realizar diferentes tarefas e ser capaz de repeti-las. Para realizar determinadas tarefas, o robô move partes, objetos, ferramentas, e dispositivos especiais segundo movimentos e pontos pré-programados. O computador guarda em sua memória um programa que detalha o curso que o braço seguirá. Quando o programa está rodando, o computador envia sinais ativando motores que movem o braço e a carga no final dele, que é mantida sob controle pelo atuador (“end effector’). Figura 1: Juntas de robôs http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Dois aspectos importantes do funcionamento de um braço mecânico correspondem ao sensoriamento do ambiente e como se realiza a programação do mesmo. Tipos de Juntas Os braços de robôs podem ser formados por três tipos de juntas: juntas deslizantes, juntas de rotação e juntas de bola e encaixe. A maioria dos braços dos robôs é formada pelas juntas deslizantes e de revolução, embora alguns incluam o de bola e encaixe. A seguir será descrito cada um destes tipos de juntas. Juntas Deslizantes. Este tipo de junta permite o movimento linear entre dois vínculos. É composto de dois vínculos alinhados um dentro do outro, onde um vínculo interno escorrega pelo externo, dando origem ao movimento linear. Este tipo de junta é mostrada na figura a seguir. Figura 2: Junta deslizante http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Juntas de Rotação. Esta conexão permite movimentos de rotação entre dois vínculos. Os dois vínculos são unidos por uma dobradiça comum, com uma parte podendo se mover num movimento cadenciado em relação à outra parte, como mostrado na figura a seguir. As juntas de rotação são utilizadas em muitas ferramentas e dispositivos, tais como tesouras, limpadores de pára-brisa e quebra-nozes. Figura 3: Junta de rotação http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Juntas de Bola e Encaixe. Esta conexão se comporta como uma combinação de três juntas de rotação, permitindo movimentos de rotação em torno dos três eixos, como mostrado na figura. Figura 4: Junta de bola e encaixe http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Estas juntas são usadas em um pequeno número de robôs, devido à dificuldade de ativação. De qualquer maneira, para se ter a performance de uma junta do tipo bola e encaixe, muitos robôs incluem três juntas rotacionais separadas, cujos eixos de movimentação se cruzam em um ponto, como na figura. Figura 5: Três juntas rotacionais substituindo a junta de bola e encaixe http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm GRAUS DE LIBERDADE. O número de articulações em um braço do robô é também referenciado como grau de liberdade. Quando o movimento relativo ocorre em um único eixo, a articulação têm um grau de liberdade. Quando o movimento ocorre por mais de um eixo, a articulação têm dois graus de liberdade. A maioria dos robôs têm entre 4 a 6 graus de liberdade. Já o homem, do ombro até o pulso, têm 7 graus de liberdade. CLASSIFICAÇÃO DOS ROBÔS PELO TIPO DE ARTICULAÇÃO. É usual classificar os robôs de acordo com o tipo de junta (articulação), ou mais exatamente, pelas três juntas mais próximas da base do robô. Esta divisão em classes fornece informações sobre características dos robôs em várias categorias importantes como: Espaço de trabalho, Grau de rigidez, Extensão de controle sobre o curso do movimento, Aplicações que são adequadas ou inadequadas para cada tipo de robô. Robôs Cartesianos. Os braços destes robôs têm três articulações deslizantes, como na figura. Figura 6: Robô Cartesiano http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Os robôs cartesianos caracterizam pela pequena área de trabalho, mas com um elevado grau de rigidez mecânica e são capazes de grande exatidão na localização do atuador. Seu controle é simples devido ao movimento linear dos vínculos e devido ao momento de inércia da carga ser fixo por toda a área de atuação. Robôs Cilíndricos. Os braços destes robôs consistem de uma junta de revolução e duas juntas deslizantes, como mostrado na figura. Figura 7: Robô Cilíndrico http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm A área de trabalho destes robôs é maior que a dos robôs cartesianos, mas a rigidez mecânica é ligeiramente inferior. O controle é um pouco mais complicado que o modelo cartesiano, devido a vários momentos de inércia para diferentes pontos na área de trabalho e pela rotação da junta da base. Robôs Esféricos. Estes robôs possuem duas juntas de revolução e uma deslizante, como mostrado na figura. Figura 8: Robô Esférico http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Estes robôs têm uma área de trabalho maior que os modelos cilíndricos, mas perde na rigidez mecânica. Seu controle é ainda mais complicado devido os movimentos de rotação. Robôs com Articulação Horizontal. Caracterizam-se por possuir duas juntas de revolução e uma deslizante, como na figura. Figura 9: Robô com Articulação http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm A área de atuação deste tipo de robô é menor que no modelo esférico, sendo apropriados para operações de montagem, devido ao movimento linear vertical do terceiro eixo. Robôs com Articulação Vertical. Estes robôs caracterizam-se por possuir três juntas de revolução, como na figura Figura 10: Robô com Articulação Vertical http://www.dee.feb.unesp.br/~marcelo/robotica/Robot3.htm Sua área de atuação é maior que qualquer tipo de robô, tendo uma baixa rigidez mecânica. Seu controle é complicado e difícil, devido às três juntas de revolução e devido à variações no momento de carga e momento de inércia. FUNDAMENTOS DA LINGUAGEM C Para controlar um robô é necessário fazer a sua programação, o que é feito utilizando uma linguagem de programação. A seguir são apresentados os conceitos básicos da linguagem C. É uma das linguagens de programação usadas para programar robôs. Um programa de computador é um conjunto instruções que representam um algoritmo para a resolução de algum problema. Estas instruções são escritas através de um conjunto de códigos (símbolos e palavras). Este conjunto de códigos possui regras de estruturação lógica e sintática própria. Dizemos que este conjunto de símbolos e regras formam uma linguagem de programação. DEFINIÇÕES BÁSICAS Programa - Conjunto de instruções distribuídas de maneira lógica, coma finalidade de executar satisfatoriamente determinada tarefa . Linguagem de Programação - Conjunto de instruções utilizadas pelo homem para se comunicar com a máquina. Compilador - Programa que traduz programas em linguagem de alto nível para linguagem de máquina. Erro de compilação - Erro no programa em linguagem de alto nível que é detectado pelo compilador. Erro de execução - Erro cometido em um programa que não é detectado até que o programa seja executado. Variável - Símbolo que representa uma posição de memória. INTRODUÇÃO E COMANDOS BÁSICOS A linguagem C é uma linguagem de alto nível, genérica. Foi desenvolvida por programadores para programadores tendo como meta características de flexibilidade e portabilidade. O C é uma linguagem que nasceu juntamente com o advento da teoria de linguagem estruturada e do computador pessoal. Assim tornou-se rapidamente uma linguagem “popular” entre os programadores. O C foi usado para desenvolver o sistema operacional UNIX, e hoje esta sendo usada para desenvolver novas linguagens, entre elas a linguagem C++ e Java. Uma linguagem é chamada estruturada quando é formada por blocos chamados de funções. Um programa em C é formado por uma coleção de funções. Em um programa bem escrito cada função executa apenas uma tarefa. Cada função tem um nome e uma lista de argumentos que a mesma receberá. A execução do programa escrito em C sempre começa pela função principal main( ). EXEMPLO - 1 void main ( ) � especifica o nome e o tipo da função (nesse caso void ); { � início da função main; int idade; � declara uma variável de nome idade e tipo inteiro; clrscr( ); � função predefinida para limpar a tela; printf (“ Digite sua idade “); � imprime a mensagem entre aspas na tela; scanf (“ %d”,&idade ); � lê via teclado um valor que e colocado em idade; } � fim da função main. VARIÁVEIS Uma variável é um espaço de memória reservado para armazenar um certo tipo de dado e tendo um nome para referenciar o seu conteúdo. O nome de uma variável na linguagem C não pode conter acentuação nem caracteres especiais. Duas variáveis não podem ter o mesmo nome dentro do mesmo escopo. TIPOS DE VARIÁVEIS A tabela a seguir apresenta os principais tipos de variáveis válidas em C. Tipo Extensão em bits Faixa de valores Char 8 -128 a 127 Int 16 -32768 a 32767 float 32 3.4E-38 a 3.4E+38 double 64 1.7E-308 a 1.7E+308 INICIALIZANDO VARIAVEIS Inicializar uma variável significa atribuir um primeiro valor a essa variável. Exemplo: int k = 5 ; char op = ‘f’; float num = 21.5; char nome[20] = “Fernanda”; FUNÇAO printf( ) Serve para imprimir um determinado dado na tela. Sua sintaxe é printf(“string de controle”,variavel); Exemplo: int k=25; printf(“%d”,k); OPERADORES C é uma linguagem rica em operadores. Alguns são mais usados do que outros como é o caso do operador de atribuição e dos operadores aritméticos, a seguir são mostradas tabelas contendo os operadores aritméticos, relacionais e lógicos. OPERADORES ARITMÉTICOS OPERADOR AÇÃO - subtração + adição * multiplicação / divisão % resto da divisão -- decremento ++ incremento OPERADORES LÓGICOS OPERADOR AÇÃO && and | | or ! Not OPERADORES RELACIONAIS OPERADOR AÇÃO > maior que < menor que >= maior ou igual <= menor ou igual == igual a != diferente de COMANDOS DE DECISÃO Os comandos de decisão permitem determinar qual é a ação a ser tomada com base no resultado de uma expressão condicional. COMANDO IF-ELSE O comando if instrui o computador a tomar uma decisão simples. Forma geral: if ( condição ) comando ; else comando ; Exemplo: /* programa do número mágico */ #include <stdio.h> #include <conio.h> void main( ) { int magico , entrada; magico = random(5); //gera um número entre 0 e 5 clrscr( ); printf( “Adivinhe o numero : ”); scanf(“%d”,&entrada); if (entrada == magico) printf (“ == Você acertou ==”); else printf (“ Você não acertou pressione qualquer tecla ); getch( ); } LAÇO FOR O laço for é geralmente usado quando queremos repetir um trecho de programa por um número fixo de vezes. Utilizamos um laço for quando sabemos de antemão o número de vezes a repetir. Forma geral: for (inicialização; condição; incremento) comando; Exemplo: /* programa que imprime os números de 1 a 100 */ #include <stdio.h> #include <conio.h> void main ( ) { int x; for ( x=1;x<=100;x++) printf ( “%d”,x); getch( ) ; } Exemplo2: void main( ) { float num; for (num=1;num<20;num++) raiz(num); } void raiz( float n) { printf(“\nn = %f raiz quadrada = %f”, n, sqrt(n)); } A tabela a seguir mostra as funções de leitura de dados via teclado. FUNÇÃO OPERAÇÃO getchar ( ) lê um caractere ; espera por <enter> getch ( ) lê um caractere sem eco ; não espera por <enter> gets ( ) lê uma string via teclado puts ( ) imprime uma string na tela Tabela contendo funções de leitura via teclado. A tabela a seguir mostra as opções de formatação dos dados que são exibidos pela função printf. CÓDIGO PRINTF SCANF %d imprime um inteiro decimal lê um inteiro decimal %f ponto decimal flutuante lê um numero com ponto flutuante %s string de caracteres lê uma string de caracteres %c Um único caractere lê um único caractere Tabela contendo código de formatação para PRINTF e SCANF ACESSANDO A PORTA PARALELA A porta paralela é uma interface de comunicação existente entre o computador e um periférico. Quando a IBM criou seu primeiro PC (Personal Computer) ou Computador Pessoal, a idéia era conectar a essa porta uma impressora, mas atualmente, são vários os periféricos que se utilizam desta porta para enviar e receber dados para o computador (exemplos: Scanners, Câmeras de vídeo, Unidade de disco removível e outros). ENDEREÇOS DA PORTA PARALELA O computador nomeia as portas paralelas, chamando-as de LPT1, LPT2, LPT3, etc, mas, a porta física padrão do computador é a LPT1, e seus endereços são: 378h (para enviar um byte de dados pela porta de dados), 379h (para receber um valor através da porta de estado) e, 37Ah (para enviar dados para a porta de controle). Às vezes pode está disponível a LPT2, e seus endereços são: 278h, 279h e 27Ah, com as mesmas funções dos endereços da porta LPT1 respectivamente. Utilizando a Porta Paralela conectada a uma impressora, os endereços terão nomes sugestivos, como mostrado a seguir: Nome Endereços LPT1 Descrição Registro de Dados 378h Envia um byte para a porta Registro de Status 379h Ler o Status da porta Registro de Controle 37Ah Envia dados de controle para a porta O CONECTOR DB25 O DB25 é um conector existente na parte de trás do gabinete do computador e é através deste que o cabo paralelo se conecta ao computador para poder enviar e receber dados. No DB25, um pino está em nível lógico 0 quando a tensão elétrica no mesmo está entre 0 à 0,4 V. Um pino se encontra em nível lógico 1 quando a tensão elétrica no mesmo está acima de 3.1 e até 5 V. A figura abaixo mostra o conector padrão DB25, com 25 pinos, onde cada pino tem um nome que o identifica: Foto5: Conector DB25 macho do cabo paralelo http://www.rogercom.com/ Figura 11: Pinagem do conector DB25 localizado atrás do micro http://www.rogercom.com/ ENVIANDO BITS PARA A PORTA PARALELA Decimal Hexadecimal Binário Pino Comentário 128 80 10000000 9 - D7 64 40 01000000 8 - D6 32 20 00100000 7 - D5 16 10 00010000 6 - D4 8 8 00001000 5 - D3 4 4 00000100 4 - D2 2 2 00000010 3 - D1 1 1 00000001 2 - D0 Cada bit do byte enviado à Porta Paralela está relacionado com um pino do DB5, e um fio do cabo paralelo, fisicamente. Ao enviar um byte, que o(s) bit(s) esteja(m) ligado(s) ou desligado(s), os LEDs acende(rão) ou apaga(rão)conforme os estados dos bits. COMANDO PARA ENVIO DE BYTES PARA PORTA PARALELA outportb (0x378, 1); outportb (0x378, 2); outportb (0x378, 4); outportb (0x378, 8); outportb (0x378, 16); outportb (0x378, 32); outportb (0x378, 64); outportb (0x378, 128); Exemplo 1: #include <stdio.h> #include <conio.h> #include <dos.h> void main() { clrscr(); printf(" – Teste – "); getch(); outportb (0x378, 1); getch(); outportb (0x378, 2); getch(); outportb (0x378, 4); getch(); outportb (0x378, 8); getch(); printf(" - FIM do teste - "); outportb (0x378, 0); } Exemplo 2: Este programa envia à porta paralela oito bytes, um a cada vez, assim que o usuário pressionar uma tecla. #include <stdio.h> #include <conio.h> #include <dos.h> #define LPT1 0x378 int main (void) { unsigned char Valor=128; //Em binário: 10000000 while ( Valor > 0 ) { outportb (LPT1, Valor); // Envia para a Porta LPT1 printf ("\nPressione uma tecla para ascender o próximo LED..."); getch ( ); Valor = Valor >> 1; //A cada passagem, o bit 1 é movido para a direita } } CONTROLE DE MOTOR DE PASSOS ATRAVÉS DA PORTA PARALELA Motores de passo são dispositivos mecânicos eletromagnéticos que podem ser controlados digitalmente através de um hardware específico ou através de softwares. São motores fáceis de controlar através de pulsos e podem funcionar em baixa rotação. São usados em impressoras, plotters, scanners, drives de disquetes, discos rígidos e muitos outros aparelhos. Existem vários modelos de motores de passo disponíveis no mercado que podem ser utilizados para diversos propósitos. Poderemos utilizá-los para mover robôs, câmeras de vídeo, brinquedos ou mesmo uma cortina. A foto a seguir mostra alguns tipos de motores de passo. Foto 6: Motores de passo http://www.rogercom.com/ A seguir será explicado o funcionamento básico de um motor de passo. TRÊS ESTADOS DE UM MOTOR DE PASSO Desligado: Não há alimentação suprindo o motor. Nesse caso não existe consumo de energia, e todas as bobinas estão desligadas. Na maioria dos circuitos este estado ocorre quando a fonte de alimentação é desligada. Parado: Pelo menos uma das bobinas fica energizada e o motor permanece estático num determinado sentido. Nesse caso há consumo de energia, mas em compensação o motor mantém- se alinhado numa posição fixa. Rodando: As bobinas são energizadas em intervalos de tempos determinados, impulsionando o motor a girar numa direção. MODOS DE OPERAÇÃO DE UM MOTOR DE PASSO Passo completo 1 (Full-step) -Somente uma bobina é energizada a cada passo; -Menor torque; -Pouco consumo de energia; -Maior velocidade. Passo completo 2 (Full-step) -Duas bobinas são energizadas a cada passo; -Maior torque; -Consome mais energia que o Passo completo 1; -Maior velocidade. Meio passo (Half-step) -A combinação do passo completo1 e do passo completo 2 gera um efeito de meio passo; -Consome mais energia que os passo anteriores; -É muito mais preciso que os passos anteriores; -O torque é próximo ao do Passo completo 2; -A velocidade é menor que as dos passos anteriores. A forma com que o motor irá operar dependerá do que se deseja controlar. Há casos em que o torque é mais importante, em outros, a precisão ou mesmo a velocidade. Essas são características gerais dos motores de passo, a maioria deles permite trabalhar dessa forma. Ao trabalhar com motores de passos, precisamos saber algumas características de funcionamento como a tensão de alimentação, a máxima corrente elétrica suportada nas bobinas, o grau (precisão), o torque além de outros parâmetros. As características importantes que devemos saber para poder controlar um motor de passo são a tensão de alimentação e a corrente elétrica que suas bobinas suportam. Nas tabelas abaixo são mostradas as seqüências para se controlar um motor de passo: Passo Completo 1 (Full-step) Nº do passo B3 B2 B1 B0 Decimal 1--> 1 0 0 0 8 2--> 0 1 0 0 4 3--> 0 0 1 0 2 4--> 0 0 0 1 1 Passo Completo 2 (Full-step) Nº do passo B3 B2 B1 B0 Decimal 1--> 1 1 0 0 12 2--> 0 1 1 0 6 3--> 0 0 1 1 3 4--> 1 0 0 1 9 Meio passo (Half-step) Nº do passo B3 B2 B1 B0 Decimal 1--> 1 0 0 0 8 2--> 1 1 0 0 12 3--> 0 1 0 0 4 4--> 0 1 1 0 6 5--> 0 0 1 0 2 6--> 0 0 1 1 3 7--> 0 0 0 1 1 8--> 1 0 0 1 9 A PRECISÃO DE UM MOTOR DE PASSO Suponhamos que temos um motor de passo com passo de 7.5 graus. Figura 12 - Precisão de 7.5º http://www.rogercom.com/ Na figura acima a distância entre um ponto vermelho e outro é de 7.5º. Para sabermos quantos passos são necessários para que o motor dê um giro de 360º, faça os seguintes cálculos: Passos/Volta = 360º / 7.5º; Passos/Volta = 48. Portanto, um motor com precisão de 7.5º, precisa dá 48 passos para completar uma volta. CONSTRUINDO O HARDWARE PARA CONECTAR O MOTOR DE PASSO Na figura abaixo são mostradas as pinagens e as características desses CIs. Figura 13 - Pinagens do CI ULN2803 http://www.rogercom.com/ O CI ULN 2803 tem 8 entradas que podem controlar até 8 saídas. Com ele poderemos controlar até 2 motores de passo simultaneamente. Tanto o CI ULN2003 como o ULN 2803 trabalham com correntes de 500 mA e tensão de até 50 V. Não se deve utilizar motores de passo que consumam mais que esse valor, pois poderão queimar os CIs. Deve-se verificar antes qual a amperagem de trabalho do motor. É recomendado utilizar motores que consumam menos de 500 mA, para não sobrecarregar o CI. Um fator importante que deve ser levado em consideração é a fonte de alimentação que deverá fornecer a amperagem necessária. Para isso é necessário usar uma fonte de alimentação que forneça mais que 500 mA. Por exemplo, para controlar 3 motores de passo no mesmo circuito, cada um consumindo 340 mA, seria necessário uma fonte de alimentação que fornecesse correntes acima de 1 A. Figura 14 - Controle de 1 motor de passo usando o CI ULN 2803 http://www.rogercom.com/ Figura 15 - Entradas e saídas da porta paralela http://www.rogercom.com/ Lei de Ohm A lei de OHM diz respeito à relação entre corrente, tensão e resistência: I V R = Onde: • I é a corrente em ampères • V é a tensão em volts • R é a resistência em ohms A lei de Ohm se baseia na relação linear entre a tensão e a corrente. Entretanto, uma resistência cujo valor não permanece constante é definida como uma resistência não-linear (filamento da lâmpada incandescente, por exemplo). Resistência: é a propriedade de um material se opor ao fluxo de corrente elétrica e dissipar potência. Resistor: um componente especificamente projetado para possuir resistência. As informações técnicas constantes neste material didático constituem os conceitos fundamentais da robótica e permitem que um estudante mais experiente em eletrônica consiga fazer o acionamento de motores através do computador. Com este conhecimento podem ser construídos pequenos robôs para serem utilizados em atividades escolares. Referências: [Bassani 2002] BASSANI, P. B. Scherer e Martins, R. Lorenz (2002) “Produção de jogos interativos: um espaço de construção hipertextual coletiva”, Editora Feevale, Revista Tecnologia e Tendências, Vol. 1, No 2, Novo Hamburgo, dezembro, p. 45-50. [D’Abreu 1996] D’ABREU, J. V. Viegas (1996) “Desenvolvimento de Projetos em Parceria Professor-Aluno na Oficina de Robótica Pedagógica”, VII Congresso Internacional Logo, Anais..., Porto Alegre, RS, novembro, 1995 e III Congresso Iberoamericano de Informática, Anais..., Barranquilla, Colômbia, julho,1996. [Dolabela 1999] DOLABELA, Fernando (1999) “Oficina do empreendedor”, Cultura Editores Associados, São Paulo. [Fortuna 2001] FORTUNA, T. Ramos (2001) “Vida e morte do brincar”, In:Seminário Nacional de Arte e Educação, 2001, Montenegro. Seminário Nacional de Arte e Educação (Anais). Montenegro: FUNDARTE, p. 38-46. http://www.nied.unicamp.br http://www.dee.feb.unesp.br/~marcelo/robotica/conteudo.html#P2 (acessado em 27/abril/2006) http://ncg.unisinos.br/robotica/ (acessado em 27/abril/2006) http://www.din.uem.br/ia/robotica/index.htm (acessado em 27/abril/2006) www.rogercom.com (acessado em 14/março/2005)
Compartilhar