Sie sind auf Seite 1von 57

TECNOLOGICA CENTRO FEDERAL DE EDUCAC AO DE SANTA CATARINA UNIVERSIDADE FEDERAL DE SANTA CATARINA E SISTEMAS DEPARTAMENTO DE AUTOMAC AO INDUSTRIAL LABORATORIO

ATORIO DE AUTOMAC AO CURSO TECNICO DE ELETROTECNICA - C odigo 02

Relat orio de Est agio Curricular

Florian opolis Abril de 2004

TECNOLOGICA CENTRO FEDERAL DE EDUCAC AO DE SANTA CATARINA UNIVERSIDADE FEDERAL DE SANTA CATARINA E SISTEMAS DEPARTAMENTO DE AUTOMAC AO INDUSTRIAL LABORATORIO DE AUTOMAC AO CURSO TECNICO DE ELETROTECNICA - C odigo 02

Relat orio de Est agio Curricular


Relat orio de Est agio Curricular do Centro Federal de Educa c ao Tecnol ogica de Santa Catarina, realizado na Universidade Federal de Santa Catarina - Departamento de Automa c ao e Sistemas - Laborat orio de Automa c ao Industrial

Rodolfo Gondim L ossio

Florian opolis Abril de 2004

DEDICATORIA

A Ivando Marlize Rodrigo e Junior

AGRADECIMENTOS
Queria agradecer ao Professor Marcelo Stemmer, por ter me dado a oportunidade de estagiar no Projeto Roboturb. Ao Engenheiro Emerson Raposo, por ter orientado meu trabalho e ter sido meu supervisor de est agio. Ao Engenheiro Rafael Leal, pelas orienta co es tanto prossionais como pessoais. Ao recente Engenheiro formado Augusto de Conto, por ter me auxiliado em algumas atividades dentro do Projeto. Ao colega de trabalho e estudo Vitor Bazzo, por ter sempre me apoiado nas atividades desenvolvidas no Projeto. Aos colegas de estudo Rodolfo Flesch e Adriano Bess, por terem opinado sobre este relat orio. E a todos que me ajudaram diretamente ou indiretamente para realiza c ao desse est agio.

SUMARIO

Lista de Figuras 1 Introdu c ao 2 A empresa 3 Cronograma de Atividades 4 Atividades Desenvolvidas 4.1 8 10 11 12

Curso da Linguagem de Programa c ao C/C++ . . . . . . . . . . . . . . . . 12 4.1.1 4.1.2 Por que a Linguagem C/C++? . . . . . . . . . . . . . . . . . . . . 12 Conceitos B asicos da Linguagem C . . . . . . . . . . . . . . . . . . 14 4.1.2.1 4.1.2.2 4.1.2.3 4.1.2.4 4.1.2.5 4.1.2.6 4.1.2.7 4.1.2.8 4.1.2.9 Vari aveis, Constantes e Ponteiros . . . . . . . . . . . . . . 15 Entrada/Sa da do Console . . . . . . . . . . . . . . . . . . 16 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . 16 La cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Comandos para Tomada de Decis ao . . . . . . . . . . . . . 18 Fun c oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Aloca c ao Din amica de Mem oria . . . . . . . . . . . . . . . 20

4.1.2.10 Manipula c ao de Arquivos . . . . . . . . . . . . . . . . . . 20 4.1.2.11 Projeto do Curso da Linguagem C . . . . . . . . . . . . . 21

4.1.3

Programa c ao em C++ . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.1.3.1 4.1.3.2 4.1.3.3 Classes e Objetos . . . . . . . . . . . . . . . . . . . . . . . 22 Sobrecarga de Operadores . . . . . . . . . . . . . . . . . . 23 Heran ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1.4 4.2

Interface Gr aca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Projeto com Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.1 4.2.2 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Implementa c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.3

O rob o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.1 4.3.2 4.3.3 Caracter sticas do rob o . . . . . . . . . . . . . . . . . . . . . . . . . 28 Controle Remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Rotinas de movimento do rob o . . . . . . . . . . . . . . . . . . . . . 31

4.4

Montagem do Controle Remoto (CR) . . . . . . . . . . . . . . . . . . . . . 32 4.4.1 4.4.2 O controle remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Montagem interna . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.4.2.1 4.4.2.2 4.4.2.3 4.4.2.4 Conex ao do controle remoto com o controlador . . . . . . 34 Regulador de tens ao . . . . . . . . . . . . . . . . . . . . . 36 Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Joystick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5

Implementa c ao de um Software usando CR . . . . . . . . . . . . . . . . . . 38 4.5.1 4.5.2 4.5.3 Movimentando o rob o com CR . . . . . . . . . . . . . . . . . . . . 39

O problema a ser implementado . . . . . . . . . . . . . . . . . . . . 40 Como funciona o programa . . . . . . . . . . . . . . . . . . . . . . . 40

4.6

Implementa c ao de um Software para execu c ao de trajet orias . . . . . . . . 41 4.6.1 Trajet oria de Medi c ao . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.6.2 4.7

Trajet oria de Soldagem . . . . . . . . . . . . . . . . . . . . . . . . . 43

Integra c ao do trigger no controlador . . . . . . . . . . . . . . . . . . . . . 45 4.7.1 4.7.2 Conex ao do trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Fun c ao do trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.8

Integra c ao da Soldagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.8.1 4.8.2 4.8.3 Processo de Soldagem . . . . . . . . . . . . . . . . . . . . . . . . . 47 Controle da Soldagem . . . . . . . . . . . . . . . . . . . . . . . . . 48 Implementa c ao da Comunica c ao com a DIGITEC . . . . . . . . . . 48 4.8.3.1 Enviando par ametros de soldagem . . . . . . . . . . . . . 49 50 52 53 54 56

5 Conclus oes Anexo A -- Programa da Calculadora Anexo B -- Jantar dos Fil osofos Anexo C -- Especica c ao do Regulador de Tens ao Refer encias

LISTA DE FIGURAS
1 2 3 4 5 6 7 8 9 10 11 12 13 Constru c ao de uma aplica c ao . . . . . . . . . . . . . . . . . . . . . . . . . 15 Vista a erea do jantar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Situa c ao de deadlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Controlador do Projeto Roboturb . . . . . . . . . . . . . . . . . . . . . . . 29 Estrutura f sica do rob o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Foto real do controle remoto . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Computador Industrial (PXI) . . . . . . . . . . . . . . . . . . . . . . . . . 34 Conector LEMO, vista pelos pinos de liga c ao . . . . . . . . . . . . . . . . . 35 Esquema de liga c ao da placa reguladora de tens ao . . . . . . . . . . . . . . 36 Liga c oes do teclado e botoeiras . . . . . . . . . . . . . . . . . . . . . . . . 37 Liga c ao das manoplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Liga c ao das Chaves e do track-wheel . . . . . . . . . . . . . . . . . . . . . 39

Detalhe das v arias camadas do cabo coaxial e o conector macho BNC . . . 46

INTRODUC AO

Hoje em dia e comum empresas investirem em novos ramos que surgiram com o aparato tecnol ogico, tais como as areas de automa c ao e robotiza c ao. Isso porque algumas vantagens desses processos caracterizam, muitas vezes, a eleva c ao da qualidade e da quantidade do trabalho em rela c ao ` a m ao-de-obra humana e at e a substitui c ao da atividade do homem em lugares de dif cil acesso e insalubres. As ferramentas mais utilizadas para caracterizar os tais processos citados s ao a eletr onica, a programa c ao e a mec anica, sendo que a uni ao desses recursos muitas vezes pode constituir um rob o. Entende-se que rob o e uma m aquina multi-funcional e reprogram avel que e projetada para mover materiais, componentes, ferramentas ou dispositivos especiais. Basicamente ele e constitu do por um manipulador, que tem como objetivo realizar movimentos, e um controlador, respons avel pelo monitoramento e determina ca o do movimento[10]. Uma das nalidades deste relat orio e descrever atividades referentes a um eventual processo de execu c ao e controle de movimento de um rob o. O conte udo do mesmo abrange desde os primeiros passos de programa c ao at e a cria c ao de um software (programa) manipulador de um rob o. Com tanto, as atividades que ser ao descritas foram desenvolvidas pelo estagi ario durante o per odo de est agio curricular que se estendeu entre 09/06/2003 e 12/03/2004. A etapa inicial do est agio foi realizada no Laborat orio de Automa c ao Industrial, localizado no Centro Tecnol ogico da Universidade Federal de Santa Catarina. Essa primeira parte constitui-se pelo aprendizado de programa c ao. As restantes etapas foram realizadas na sala onde est a xado o rob o de trabalho, tamb em localizado no Centro Tecnol ogico. Esse rob o faz parte de um projeto chamado Roboturb que visa criar um sistema automatizado capaz de realizar recupera c ao de superf cies erodidas por cavita c ao de rotores de turbinas de hidrel etricas de grande porte. Esse sistema ser a dotado de uma etapa de

medi c ao da area de trabalho e uma etapa de soldagem da superf cie danicada. Aderindo as vantagens de um t ` pico processo de automa c ao, a utiliza c ao desse sistema ir a aumentar a qualidade da soldagem aplicada na superf cie, e tamb em ir a substituir a a c ao do homem nesse contexto, uma vez que o ambiente de trabalho eu mido e apertado, extremamente insalubre ao soldador. A primeira se c ao, dentro do cap tulo das atividades desenvolvidas, apresenta um curso das linguagens de programa c ao C e C++, justicando o seu uso no Projeto e comentando todos os conceitos relevantes para a realiza c ao das atividades posteriores. J a na segunda se c ao, implementou-se um programa feito nessa linguagem que envolve processamentos paralelos, muito importantes para o controle de movimento em tempo real do manipulador. Na se c ao tr es, descreve-se as caracter sticas b asicas de um rob o. Uma das caracter sticas que o rob o do Projeto Roboturb apresenta e a possibilidade do operador usar um controle remoto (CR). Na se c ao quatro, encontra-se como e feita a montagem desse CR. Basicamente, a constru c ao trata-se da montagem interna de dois blocos distintos, o display e o joystick. Com um pacote computacional que trabalha com esses dois blocos, implementou-se um programa que utiliza o CR para movimentar o manipulador. Na se c ao cinco, apresenta-se a descri c ao desse programa. Outra caracter stica funcional de um rob o e a possibilidade de executar trajet orias. Na se c ao seis, implementou-se um programa para executar trajet orias tanto de soldagem como de medi c ao. Esses dois processos possuem peculiaridades a parte, por tanto, e descrito as funcionalidades de cada um. Para concretizar as etapas de medi c ao e soldagem, foi preciso primeiramente trabalhar com componentes f sicos, tais como a m aquina de solda e o sensor laser. Basicamente, a etapa de medi c ao possui uma c amera e um sensor laser para extrair informa c oes da regi ao de trabalho. Na se c ao sete, descreve-se como foi integrada a alimenta c ao do sensor no sistema de medi c ao. J a a etapa de soldagem, necessita-se integrar uma comunica c ao do computador com a m aquina de solda. Na se c ao oito, descreve-se como funciona o processo de soldagem e como se implementou o programa que realiza a comunica c ao com a m aquina.

A EMPRESA

O Laborat orio de Automa c ao Industrial (LAI) do Departamento de Automa c ao e Sistemas (DAS), estabelecido no Centro Tecnol ogico da Universidade Federal de Santa Catarina (CTC/UFSC), fundou juntamente com outros laborat orios do CTC/UFSC e com o Instituto de Tecnologia para o Desenvolvimento (LACTEC), localizado no Paran a, o projeto Roboturb em 1998. O projeto est a dividido em v arias equipes provenientes desses laborat orios. A equipe do LAI est a nomeada como a Equipe de Software, respons avel pela integra c ao dos trabalhos realizados nos outros laborat orios. A funda c ao desse projeto deveu-se a um edital lan cado pela Companhia Paranaense de Energia (COPEL), atuante na area de gera c ao de energia el etrica. A partir da aprova c ao do edital, o Roboturb conseguiu junto ao Programa de Desenvolvimento de Recursos Humanos para Atividades Estrat egicas (RHAE), nanciamento de bolsas e equipamentos. Mais tarde, outra empresa do ramo de gera c ao de energia el etrica interessou-se pelo projeto, a Furnas Centrais El etricas, que passou a nanci a-lo tamb em. Esse ambicioso projeto caracterizou a constru c ao de um dos primeiros rob os totalmente brasileiro, no que diz respeito ` a estrat egia, montagem e controle. Somente alguns componentes f sicos foram importados para a constru c ao, tais como os motores e as placas de pot encia. O t ermino do projeto est a previsto para outubro de 2004.

CRONOGRAMA DE ATIVIDADES

Durante 10 meses foram feitas nove atividades. Cada ponto da tabela relaciona uma atividade realizada com a semana correspondente.
Per odo 2003 Junho - semanas 1 2 3 4

Julho - semanas 1 2 3 4

Agosto - semanas 1 2 3 4

Setembro - semanas 1 2 3 4

Outubro - semanas 1 2 3 4

Atividades
Curso da Linguagem C Curso da Linguagem C++ Projeto C++ com Threads Montagem do Controle Remoto (CR) Implementa c ao dum Software usando CR Per odo 2003/2004

Novembro

-semanas1 2 3 4

Dezembro - semanas 1 2 3 4

Janeiro - semanas 1 2 3 4

Fevereiro - semanas 1 2 3 4

Mar co - semanas 1 2 3 4

Atividades

Implementa c ao dum Software para execu c ao de trajet orias Integra c ao do trigger no controlador Integra c ao do Sistema de Soldagem Manuten c ao do Software

ATIVIDADES DESENVOLVIDAS

Os trabalhos realizados no est agio ser ao apresentados seguindo a ordem que est a no cronograma de atividades. Observa-se que as primeiras se c oes s ao base do entendimento de se c oes posteriores, devido ao uso constante de termos espec cos encontrados na area de programa c ao.

4.1

Curso da Linguagem de Programa c ao C/C++

O curso a seguir foi ministrado ao estagi ario por causa do constante uso da programa c ao para o cumprimento das tarefas realizadas ao longo do est agio, principalmente atividades relacionadas com a constru c ao de programas. Nesse cap tulo descreve-se o porqu e do uso da programa c ao, bem como a explica c ao te orica dos t opicos aprendidos no curso. Na cria c ao de um programa e preciso antes escolher uma linguagem de programa c ao. Pode-se fazer uma analogia com a produ c ao de um livro, onde antes de tudo e necess ario escolher com que idioma ele ser a escrito. E essa escolha e inuenciada por v arios motivos o dom nio do autor sobre o idioma, o p ublico-alvo. Na programa c ao o motivo mais importante ea area da aplica c ao do programa. Atualmente, t em-se v arios tipos de linguagens para fazer programas para computador, como PASCAL, JAVA, C, C++, ASSEMBLY. Cada uma com suas vantagens e desvantagens.

4.1.1

Por que a Linguagem C/C++?

Uma linguagem pode ser denida como de n vel baixo, m edio e alto. Esses n veis caracterizam a forma de como se programa. A linguagem de baixo n vel e voltada para

13

a m aquina, ou seja, e escrita utilizando instru c oes do microprocessador do computador. J a a linguagem de alto n vel e voltada para o homem, geralmente utilizam uma sintaxe mais estruturada e organizada. E nalmente a linguagem de n vel m edio e uma mistura dos outros dois tipos. Para diferenciar a forma de resolver um problema utilizando os diferentes n veis de programa c ao imagine o seguinte problema: desenhar um quadrado. Uma possibilidade seria desenhar ponto por ponto esse quadrado (baixo n vel), ou tra car quatro linhas de tal forma que se desenhe um quadrado (n vel m edio), ou ainda ter um carimbo com o formato de um quadrado (alto n vel). Outro exemplo, usando agora o hardware (parte f sica) de um computador, seria a impress ao de um texto. Aceita-se que para imprimir um texto e necess ario enviar um conte udo e a fonte (tamanho e tipo de letra) do mesmo para impressora. Poss veis solu c oes seriam mandar para a impressora letra por letra, linha por linha ou ainda o texto inteiro. Note que enviando letra por letra e poss vel criar uma palavra, ou uma frase ou o texto inteiro com diversas fontes. J a enviando linha por linha, o texto poderia ter somente linhas com fontes diferentes, e a u ltima possibilidade somente teria o texto inteiro com um u nico tipo de fonte. Uma conclus ao que se pode tirar a partir desses exemplos e que uma linguagem de baixo n vel e muito ex vel, por em complicada e trabalhosa, j a uma linguagem de alto n vel e o oposto, f acil de trabalhar e n ao muito ex vel. Outra nomea c ao para as linguagens de programa c ao e que elas podem ser do tipo linear, estruturada ou orientada a objeto. Linguagens lineares s ao bem primitivas e geralmente s ao caracterizadas como de baixo n vel. A id eia de linearidade consiste em ter uma lista de comandos e um ponteiro que aponta para um determinado comando dessa lista. Ent ao toda vez que for executado um comando, ele pula para o pr oximo comando da lista. Linguagens estruturadas variam entre n vel baixo e m edio. Elas usam conceitos de procedimentos e fun c oes, que se interligam atrav es de tr es mecanismos b asicos: a sequ encia, tomada de decis ao e itera c ao. Esses itens tornam mais leg vel e organizado o programa. J a as linguagens orientadas a objeto s ao de alto n vel e t em tem como principal objetivo atingir um desenvolvimento interativo e incremental, cria c ao r apida de prot otipos, c odigos reutiliz aveis e extens veis atrav es do encapsulamento dos dados e uma modela-

14

gem do problema a ser solucionado. A an alise, projeto e programa c ao orientada a objetos s ao as respostas para o aumento da complexidade dos ambientes operacionais (Windows, GNU/Linux) que se caracterizam por sistemas heterog eneos, distribu dos em redes, em camadas e baseados em interfaces gr acas. O software controlador de um rob o tanto utiliza caracter sticas de baixo n vel como de alto n vel. A parte de baixo n vel concentra-se na comunica c ao com o hardware do rob o, j a a parte de alto n vel concentra-se na apresenta c ao visual do software, isto e, a interface gr aca para o usu ario. A partir desses previstos, determinou-se que uma boa linguagem de programa c ao para o software do Projeto Roboturb seria a linguagem C/C++. Na verdade somente a linguagem C e do tipo estruturado e m edio/baixo n vel, j a a linguagem C++ e uma evolu c ao da linguagem C, sendo orientada a objeto. Nos dias atuais, s ao bastante empregadas na ind ustria essas duas linguagens, por serem f aceis de trabalhar com os perif ericos (ferramentas auxiliares de um computador, como teclado, impressora...) e pela evolu c ao de ambientes de desenvolvimento, que a cada dia fornece facilidades para trabalhar com interfaces gr acas.

4.1.2

Conceitos B asicos da Linguagem C

Com uma linguagem computacional em m aos, e poss vel criar um c odigo fonte que posteriormente ser a compilado. A compila c ao consiste em transform a-lo em arquivos do tipo .obj que formar ao uma aplica c ao. No caso da linguagem C, o c odigo fonte dever a ter uma extens ao do tipo .c, isto e, o arquivo a ser compilado dever a ser do tipo nomeDoArquivo.c. Uma vez compilado um arquivo .c, e preciso utilizar o chamado ligador, respons avel pelo ligamento dos .obj . Ap os essa etapa, tem-se como sa da uma aplica c ao, que poder a ter, por exemplo, um suxo do tipo .exe1 , que caracteriza um arquivo de execu c ao, digase por passagem, um programa. Por em, e poss vel gerar outros tipos de extens oes, tal c oes num arquivo que pode ser usado como o .dll2 , que caracteriza um aglomerado de fun em outras aplica c oes. Um programa em C e composto por fun c oes, isto e, por c oes menores de c odigo que
1 2

extens ao dos bin arios do Windows extens ao das bibliotecas do Windows

15

realizam determinadas tarefas, e por dados, ou seja, vari aveis ou tabelas que s ao declaradas antes do in cio do programa. Existe uma fun c ao especial denominada main, onde a execu c ao do programa se inicia. As fun c oes podem ser organizadas em m odulos agrupados em arquivos fonte. Em C, e de suma import ancia a separa c ao do c odigo em arquivos, principalmente para programas complexos e grandes. O arquivo fonte principal, passado como argumento para o compilador, dene uma unidade de compila c ao[2]. Veja a gura 1.

Figura 1: Constru c ao de uma aplica c ao

4.1.2.1

Vari aveis, Constantes e Ponteiros

As vari aveis s ao caracter sticas comuns a todas linguagens de programa c ao. Uma vari avel em C e um espa co da mem oria reservado para armazenar um certo tipo de dado e tendo um nome para referenciar o seu conte udo. Elas podem assumir diferentes tipos de dados, e cada tipo ocupa uma certa quantidade de espa co na mem oria em bytes3 . Em C existem apenas cinco tipos b asicos de vari aveis, ver tabela 1. As constantes s ao uma esp ecie de vari avel xa, isto e, vari aveis que n ao podem ser modicadas no programa, ou seja, s ao vari aveis mantidas constantes pelo compilador.
3

unidade b asica de mem oria computacional

16

Tipo char int oat double void

Tamanho Caracter 1 byte Inteiro 2 bytes4 Real de ponto utuante 4 bytes Real de ponto utuante de dupla precis ao 8 bytes Sem valor Tabela 1: Tipos de vari aveis

Categoria

Como foi dito, toda vari avel possui um espa co reservado na mem oria. Para garantir que esse lugar na mem oria n ao seja violado, dene-se um endere co na mem oria para a partir dessa id cada vari avel. E eia que se criou um conceito chamado ponteiro, uma ferramenta extremamente poderosa que a linguagem C oferece. Basicamente, um ponteiro e uma representa c ao simb olica de um endere co. Portanto, utiliza-se o endere co de mem oria da vari avel para acess a-la. Logo o conte udo de um ponteiro e nada mais do que um endere co de mem oria. Este endere co e a localiza c ao de outra vari avel na mem oria[1]. 4.1.2.2 Entrada/Sa da do Console

Console e uma interface de comunica c ao com o usu ario que possibilita a sa da e entrada de dados. A entrada de dados geralmente e estabelecida atrav es do teclado. E a sa da compreende mostrar caracteres e textos no painel do console. muito importante conhecer as rotinas de entrada e sa E da do console, pois com elas se pode criar elementos gr acos, ou seja, programas com interface gr aca. As aplica c oes feitas durante o curso da linguagem C foram compiladas para DOS (Sistema Operacional de Disco). 4.1.2.3 Operadores

A linguagem C oferece diversos tipos de operadores, que facilitam muito a implementa c ao de problemas tanto matem aticos como l ogicos. O programa da calculadora n ao seria vi avel caso n ao existisse os operadores aritm eticos, respons aveis pelas opera c oes b asicas da matem atica. Outros importantes operadores s ao os relacionais, usados para fazerem compara c oes. As sa das desses operadores podem assumir falso ou verdadeiro. A condi c ao falsa e repre-

17

sentada com o s mbolo ZERO (0), j a a condi c ao verdadeira pode assumir qualquer valor diferente de zero e e representado pelo s mbolo UM (1). H a tamb em a possibilidade de fazer compara c oes bit a bit5 . Para tanto se utilizam os operadores l ogicos bin arios. Nos dois operadores descritos acima de compara c ao, h a a possibilidade de usar: Operador E (pelo menos uma condi c ao falsa pra o resultado ser falso); Operador OU (pelo menos uma condi c ao verdadeira para o resultado ser verdadeiro); (inverte a condi Operador NAO c ao falsa ou bit 0 para verdadeiro ou 1, e vice-versa); Existem tamb em os operadores para ponteiro, operadores incrementais (incrementa ou diminui em 1 uma vari avel) e operadores de atribui c ao (atribui a uma vari avel um novo valor com uma determinada opera c ao aritm etica). 4.1.2.4 La cos

A id eia de la co e ter um peda co de c odigo que e reutilizado para ns de organiza c ao e compacta c ao. Por exemplo, imagine imprimir na tela cem (100) vezes a mesma frase. H a duas maneiras de fazer essa impress ao, uma seria escrever 100 vezes a frase, a outra seria criar um la co que contenha a frase a ser repetida 100 vezes. A estrutura b asica de um la co e constitu da de uma express ao de teste e uma ou um conjunto de instru c oes. Verica-se se a express ao de teste e verdadeira, caso seja, executa-se as instru c oes determinadas; caso contr ario, o la co e encerrado. Ao nal das instru c oes determinadas, verica-se novamente a express ao de teste, at e que o la co seja encerrado. Em C existem tr es estruturas principais de la co: FOR, WHILE e DO-WHILE. O la co FOR e muito u til quando e desej avel repetir num n umero nito de vezes um certo peda co de c odigo que necessita ter um controle do n umero de itera c oes6 .
5 O bit signica d gito bin ario. 1 byte possui 8 bits, sendo que cada bit pode assumir o valor de 0 ou 1. Por exemplo, a representa c ao bin aria do n umero 7 e dada pelos seguintes bits 00000111 6 n umero de vezes que o la co e reiniciado

18

J a o la co WHILE e geralmente usado quando se queira um la co innito, isto e, um la co que sempre repetir a a instru c ao determinada. Tamb em pode ser usado quando e preciso repetir um n umero indeterminado de vezes. E nalmente o la co DO-WHILE, muito semelhante ao WHILE, com a u nica diferen ca que inicialmente executa-se a instru c ao determinada, e s o depois se verica a express ao de teste. H a dois comandos importantes para desvio de la cos, o CONTINUE e o BREAK O comando CONTINUE for ca a pr oxima itera c ao do la co e pula as instru c oes que estiverem abaixo. O comando BREAK encerra imediatamente um la co. 4.1.2.5 Comandos para Tomada de Decis ao

Esses tipos de comandos s ao fundamentais para uma linguagem de programa c ao. A partir deles pode-se denir variantes de caminho dentro do c odigo de acordo com express oes condicionais. A linguagem C oferece tr es tipos de comandos para tomada de decis ao: IF, IF-ELSE, SWITCH. O comando IF e usado para testar uma condi c ao, caso seja verdadeira ele executa a instru c ao denida; caso contr ario, ele ignora a instru c ao denida. J a o comando IF-ELSE dene duas instru c oes, uma para a condi c ao verdadeira e outra para condi c ao falsa. E nalmente o comando SWITCH dene v arias instru c oes de acordo com o valor de uma vari avel. 4.1.2.6 Fun c oes

As fun c oes servem para agrupar um conjunto de instru c oes. Uma vez implementadas corretamente, n ao e mais necess ario reescrever essas instru c oes dentro de sua aplica c ao. Na se c ao 4.1.2.2 citou-se as fun c oes para console. Com elas n ao e preciso reescrever nenhuma linha de c odigo de como e o procedimento de impress ao ou leitura no console, somente usam-se as fun c oes fornecidas por esse servi co. Outra fun c ao importante citada foi na se c ao 4.1.2, a fun c ao main, respons avel pelo

19

in cio do programa. Uma fun c ao em C pode receber par ametros quando solicitada, e tamb em retornar valores a quem a solicitou. Por exemplo, nas fun c oes de impress ao no console e preciso passar como par ametro o texto que ser a impresso. J a algumas fun c oes de leitura retornam valores obtidos na entrada via teclado. As fun c oes quando bem empregadas, facilitam bastante a organiza c ao modular do programa, permitem a reutiliza c ao de partes do programa e facilitam a sua manuten c ao[1]. 4.1.2.7 Matrizes

Uma matriz e um tipo de dado usado para representar uma certa quantidade de vari aveis do mesmo tipo. Por exemplo, caso queira-se armazenar as notas de uma turma de 50 alunos. Pode-se criar uma matriz de 50 elementos do tipo inteiro. A linguagem C fornece v arias funcionalidades para trabalhar com matrizes - acesso aos elementos a partir de um ndice, aloca c ao de mem oria est atica na declara c ao da matriz, declara c ao de matrizes bidimensionais, tridimensionais. . . . Outra utilidade de matrizes muito importante em C e a constru c ao de matrizes de caracteres. Com ela se pode criar as chamadas strings 7 , essenciais para o trabalho com palavras e textos. Em C existem v arias fun c oes para manipular strings, tais como fun c oes para compara c ao, para obten c ao do n umero de caracteres, para concatena c ao8 e para copiar o conte udo de uma string ` a outra. 4.1.2.8 Estruturas

Estruturas s ao um conjunto de dados de diferentes tipos. Note que uma matriz e um conjunto de dados com tipos iguais. Sendo assim, uma estrutura pode conter matrizes e/ou tipos b asicos de dados. A grande vantagem das estruturas e a possibilidade de criar um novo tipo de dado de maior complexidade que os tipos que a linguagem C fornece. Por exemplo, e preciso criar
7 8

s erie de caracteres que s ao processados como uma unidade de informa c ao juntar duas palavras

20

uma estrutura que represente um ponto num sistema cartesiano. A representa c ao de um ponto cartesiano e dado pelo par (x,y), logo essa estrutura dever a ter duas vari aveis do tipo inteiro. Outro exemplo de maior complexidade seria uma estrutura que representasse a cha b asica de um funcion ario. A estrutura deve conter uma string para o nome da pessoa, um tipo inteiro para a idade, um tipo oat para o sal ario. Como nas matrizes, e poss vel ter acesso a todos os elementos da estrutura. Dessa forma pode-se trabalhar separadamente com os tipos b asicos de vari aveis da pr opria estrutura. 4.1.2.9 Aloca c ao Din amica de Mem oria

Na se c ao 4.1.2.1, deniu-se o que e um ponteiro. Ponteiros s ao tipos de dados que armazenam o endere co de mem oria onde uma vari avel armazena o seu dado. Desta forma, emprega-se o endere co dos ponteiros como uma forma indireta de acessar e manipular o dado de uma vari avel. Uma das grandes utilidades dos ponteiros e a possibilidade da aloca c ao din amica de mem oria, isto e, pode-se alocar mem oria em tempo de execu c ao. Ao contr ario da aloca c ao est atica de mem oria, que e feita em tempo de compila c ao. Por exemplo, declara-se uma vari avel normal do tipo inteiro. O sistema ir a alocar estaticamente dois bytes na mem oria. Agora considere um ponteiro do tipo inteiro. Com essa declara c ao e poss vel alocar mem oria para m ultiplos de dois bytes no meio da execu c ao do programa. Note que depois de alocada dinamicamente a mem oria para esse ponteiro, ele se comportar a como uma matriz do mesmo tipo do ponteiro. Como C e uma linguagem extremamente ex vel para aloca c ao de mem oria, h a tamb em a possibilidade de liberar a mem oria atrav es de fun c oes determinadas para esse m. 4.1.2.10 Manipula c ao de Arquivos

A linguagem C fornece v arias fun c oes que trabalham com arquivos, tanto para escrita interessante comentar que a abertura de arquivos pode ser tanto em e leitura de dados. E modo bin ario como em modo texto. Arquivos em modo texto operam com dados armazenados em formato texto, ou seja,

21

os dados s ao traduzidos para caracteres e estes caracteres s ao escritos nos arquivos. Por esta raz ao, ca mais f acil de compreender os seus formatos e localizar poss veis erros[1]. Arquivos em modo bin ario operam em dados bin arios, ou seja, os dados escritos neste formato s ao escritos na forma bin aria, n ao necessitando de nenhuma convers ao do tipo do dado utilizado para ASCII9 e ocupando bem menos mem oria de disco (arquivos menores)[1]. 4.1.2.11 Projeto do Curso da Linguagem C

Para complementar o curso da linguagem C, especicou-se a cria c ao de um programa que envolvesse a maioria dos t opicos aprendidos na teoria. Como projeto, implementou-se um programa de calculadora para console. Como foi comentado na se c ao 4.1.2.2, o programa foi criado para DOS. No anexo A encontram-se algumas tomadas de tela da calculadora.

4.1.3

Programa c ao em C++

A linguagem C e usada desde a d ecada de 70, e at e hoje e empregada em larga escala. Entretanto, com a evolu c ao da complexidade dos programas, e a import ancia do planejamento pr e-implementa c ao, essa linguagem n ao aderiu ` as novas tend encias exigidas, tais como a legibilidade, a reutiliza c ao e a facilidade de manuten c ao do c odigo. Para suprir as diculdades surgidas, por em ainda utilizando os conceitos b asicos da linguagem C, criou-se uma nova linguagem de programa c ao orientada a objeto, a linguagem C++. A programa c ao orientada a objeto foi uma id eia muita bem aceita para resolver os problemas surgidos com a evolu c ao dos programas. Ela busca modelar um ambiente utilizando os pr oprios elementos presentes nesse ambiente, ou seja, os objetos[1]. Por exemplo, precisa-se criar um programa para cadastro de livros. Nesse caso pode interessante observar que esse jeito de programar se considerar o livro como um objeto. E e bem pr oximo da linguagem humana, facilitando muito a linha de racioc nio. Apesar dessas quebras de paradigmas, C++ assemelha-se em muita coisa com a linAmerican Standard Code for Information Interchange, c odigo de informa c ao padr ao para letras e s mbolos (codica c ao bin aria)
9

22

guagem C, como por exemplo, as tomadas de decis oes (ver se c ao 4.1.2.5) e la cos (ver se c ao 4.1.2.4) est ao id enticas. De qualquer maneira, todas as funcionalidades de C podem ser aplicadas para C++, isto e, fun c oes, estruturas, aloca c ao de mem oria... . Entretanto, essa nova linguagem fornece outras utilidades, como novos comandos para entrada e sa da de console, novas maneiras para aloca c ao de mem oria, diferentes formas de passar par ametros para fun c oes. Por em a principal caracter stica de uma linguagem orientada a objeto ser a exposta na se c ao a seguir. 4.1.3.1 Classes e Objetos

Um objeto e uma abstra c ao de alguma coisa da vida real, geralmente de coisas f sicas, como uma casa, um avi ao... . Cada objeto possui caracter sticas (propriedades) que s ao chamadas de atributos. Uma classe e o agrupamento de v arios objetos que possuem atributos em comum. Por exemplo, a classe M ovel pode agrupar os objetos - cadeira, mesa, arm ario. Cada um desses objetos possui v arios atributos, tais como a cor, o material que o constitui e as dimens oes f sicas. Dessa forma, a deni c ao de objetos para descrever um problema real constitui-se a etapa de modelagem. Concretizados os objetos e suas respectivas classes, criam-se m etodos para inuenciar as caracter sticas dos objetos. M etodos s ao fun c oes declaradas no contexto de uma classe. Para a classe M ovel, pode-se ter o m etodo Pintar que inuenciaria no atributo cor e o m etodo Construir que inuenciaria no material. Um outro exemplo mais focado ` a implementa c ao de um problema real usando uma linguagem orientada a objeto poderia ser a cria c ao de uma calculadora virtual. Criariase um objeto Display para mostrar os n umeros que est ao sendo operados e um objeto Operador para realizar as opera c oes matem aticas. O Display teria como atributo uma string que representaria o que est a escrito na tela. Poderia-se ter o m etodo Mostrar que requer como par ametro o texto ou n umero a ser impresso, isto e, ele alteraria o valor do atributo da classe. J a o objeto Operador teria como atributo um n umero que representaria o valor que est a sendo operado. Outra id eia, caso a calculadora fosse mais complexa, seria ter um

23

atributo que representasse a mem oria da calculadora. E nalmente os m etodos seriam as opera c oes b asicas, como somar, subtrair, multiplicar e dividir. Por tr as dessa modelagem existe um conceito muito empregado pelos criadores de software - o encapsulamento. Esta id eia consiste em empacotar os dados (atributos) e as opera c oes sobre estes (m etodos), facilitando o trabalho do programador. Por exemplo, cria-se um pacote para resolver um sistema de equa c oes lineares. O programador iria incluir esse pacote no projeto que est a desenvolvendo, e poderia resolver sistemas de equa c oes lineares sem se preocupar com a implementa c ao de baixo n vel. Bastaria apenas utilizar os m etodos fornecidos por esse pacote. Outra vantagem, e que a utiliza c ao dessa id eia de encapsulamento, contribui para o reaproveitamento de c odigo, pois uma vez implementado o pacote, n ao e mais preciso redigir qualquer algoritmo no mesmo contexto. 4.1.3.2 Sobrecarga de Operadores

Como foi visto na se c ao 4.1.2.3 existem v arios tipos de operadores. A sobrecarga de operadores consiste em implementar os mesmos para objetos de uma determinada classe. Por exemplo, cria-se uma classe Matriz. Inicialmente n ao se pode somar matrizes, ent ao para suprir esse comando pode-se sobrecarregar o operador de adi c ao (+) para receber objetos do tipo Matriz. Esse tipo de sobrecarga tamb em pode ser feito com m etodos, e nomeia-se essa opera c ao como polimorsmo. 4.1.3.3 Heran ca

A heran ca e uma ferramenta muita empregada em linguagens orientada a objeto. Com ela e poss vel que uma classe herde caracter sticas de uma outra classe, isto e, a classe m ae compartilha atributos e m etodos com a classe lha. Por exemplo, tem-se a classe Autom ovel herdada da classe Ve culo. Admite-se que a segunda classe tem os seguintes atributos - peso, pre co e cor. Logo, a classe Autom ovel ter a tamb em esses tr es atributos acrescentados outros atributos exclusivos da classe Autom ovel, que n ao fariam sentido na classe Ve culo, como por exemplo, o atributo Marca ou N umero de rodas.

24

Outras classes que poderiam ser herdadas da classe Ve culo: classe Aeronave; classe Navio.

4.1.4

Interface Gr aca

A maioria das pessoas est a acostumada a trabalhar com programas com uma interface gr aca agrad avel e f acil de manipular, muito diferente que aqueles programas que rodam em DOS, como o caso da calculadora no anexo A. O jeito de trabalhar com programas detentores de componentes gr acos e diferente dos que rodam no console do DOS. Praticamente, programas do DOS seguem uma linearidade, iniciada na fun c ao principal (ver se c ao 4.1.2.6), e esta chama outras fun c oes ou m etodos de classes. J a os aplicativos gr acos com uma interface amig avel s ao principalmente executados em cima de Desktops 10 , como por exemplo o Windows 98/2000/XP da Microsoft, KDE/GNOME/WM do projeto GNU/LINUX. Os aplicativos geralmente caracterizamoes, cones, textos e at e outros formul arios. se por um formul ario11 que pode conter bot Este tipo de aplica c ao gr aca baseia-se em executar rotinas quando se estabelece algum evento. Entende-se como evento uma a c ao denida do usu ario diretamente ou indiretamente. Por exemplo, o evento que ocorre quando o usu ario aperta um bot ao de uma aplica c ao gr aca, ou quando se encerra uma aplica c ao. Ent ao basicamente, toda vez que ocorre um evento, dene-se uma fun c ao que tratar a essa a c ao. E dentro dessa fun c ao, pode-se denir chamadas para outras fun c oes e/ou m etodos. As aplica c oes gr acas feitas durante o curso de C/C++ s ao compiladas para rodarem no Windows. Construir programas usando as bibliotecas que esse sistema operacional e uma fornece, a chamada API12 do Windows, sem utilizar nenhuma ferramenta auxiliar tarefa ardua e complexa. Para suprir esse obst aculo, utilizam-se ferramentas de desenvolvimento de aplica c oes
10 11

rea na tela onde est a ao todos os aplicativos uma esp ecie de janela que delimita o aplicativo 12 Interface para Programa c ao de Aplicativos

25

gr acas, que encapsulam v arias fun c oes dessas bibliotecas, formando componentes gr acos, tais como bot oes, caixas de textos, formul arios... . Facilitando muito o trabalho dos programadores. Outro detalhe importante em rela c ao a API do Windows, e a possibilidade de trabalhar com v arios processos, ou seja, consegue-se executar v arias aplica c oes ao mesmo tempo. Um dos objetivos nais desse documento e construir um programa capaz de controlar um rob o, para tanto, necessita-se executar v arios processos mutuamente - um para tratar os eventos da interface, outro para mandar e/ou checar informa c oes do rob o e at e um processo para cuidar das a c oes de um controle remoto do rob o. Com esse intuito, foi designado ao estagi ario, criar um aplicativo que gerasse processos paralelos, tamb em conhecidos como multithreads.

4.2

Projeto com Threads

Uma importante funcionalidade que a maioria dos sistemas operacionais disponibilizam e a possibilidade de intercalar as chamadas threads. Essa palavra em portugu es signica bifurca c ao. A explica c ao desse signicado baseia-se na id eia de uma linha de processamento derivar uma outra, assim obt em-se duas ou mais linhas de processamento paralelas. Existem v arios problemas cl assicos que utilizam esse tipo de processamento. Geralmente s ao programas que lan cam v arias threads, e estas precisam disputar algum tipo de recurso. Por exemplo, um n umero X de threads tentando entrar numa porta que somente entra-se uma por vez. Como projeto, escolheu-se o problema do Jantar dos Fil osofos, um dos mais famosos do g enero. Esse trabalho tem como objetivo reunir os conceitos de programa c ao orientado a objeto e desenvolver implenta c oes usando interface gr acas do Windows. A constru c ao desse programa ser a divida em duas etapas, a modelagem e a implementa c ao.

26

4.2.1

Modelagem

O modelo do Jantar dos Fil osofos consiste em emular uma disputa ct cia. Imagine uma mesa redonda, onde est ao sentados cinco l osofos. Na frente de cada l osofo existe um prato que indubitavelmente est a sempre cheio de comida. Entre dois pratos existe um u nico garfo. Veja a gura 2.

Figura 2: Vista a erea do jantar A disputa est a envolvida com a c ao de pegar os garfos para comer. Para um l osofo poder comer precisa-se ter em m aos os dois garfos. Por em, somente t em-se cinco garfos para cinco l osofos, logo, percebe-se que somente dois l osofos poder ao estar comendo ao mesmo tempo, uma vez que somente pode-se pegar os garfos que est ao ao lado deles. Quando um l osofo n ao est a comendo, existem duas possibilidades - o l osofo est a pensando, ou l osofo est a com fome. Essa segunda op c ao ocorre quando o l osofo deseja comer, por em um ou os dois garfos n ao est ao dispon veis. Caso somente tenha-se um garfo dispon vel, o l osofo iria peg a-lo e esperar que o outro torne-se dispon vel. Baseado nos casos estabelecidos pode-se denir algumas classes para o sistema. A classe Fil osofo com atributos que iriam representar o estado do mesmo. Tamb em teria m etodos para mudar esses atributos, como por exemplo, os m etodos Comer, Pensar, FicarComFome. A classe Garfo teria como atributo o seu estado - dispon vel e n ao dispon vel. Como

27

m etodo teria o PegarGarfo, que mudaria seu atributo. Para construir um programa que simule essa disputa e necess ario que ele se assemelhe o mais pr oximo poss vel de uma situa c ao real, isto e, n ao dever a ocorrer injusti cas ou absurdos de dois l osofos lado a lado comendo.

4.2.2

Implementa c ao

O primeiro item para a implementa c ao do algoritmo e estabelecer aos l osofos a condi c ao de threads, isto e, cada l osofo ser a uma linha de processamento. E cada um deles ter a que interagir com a entidade Garfo. Os tempos de comer e pensar s ao todos aleat orios, isto e, n ao se sabe quanto tempo um l osofo car a com fome. Uma situa c ao peculiar de ocorrer em problemas com threads e os chamados deadlocks, ocasi oes quando uma thread trava por causa de outra por muito tempo. Um exemplo simples de deadlock no Jantar dos Fil osofos ocorre quando todos os l osofos pegam primeiramente seu garfo a direita ao mesmo tempo. Dessa forma, todos os garfos estar ao em uso, por em e necess ario que um l osofo tenha dois garfos em m aos para poder comer. Com tanto, como nenhum dos l osofos ir a devolver o garfo para mesa, o sistema car a paralisado. Veja a gura 3.

Figura 3: Situa c ao de deadlock

28

Uma solu c ao para esse problema seria considerar que os l osofos somente peguem os garfos caso os dois estejam dispon veis, por em nessa situa c ao podem ocorrer in umeras injusti cas j a que os tempos de pensar e de comer s ao aleat orios. Ent ao, para melhor solucionar esse inconveniente, numerou-se os lugares na mesa, e estabeleceu-se que l osofos em lugares mpares peguem primeiramente o garfo da direita, e os l osofos em lugares pares peguem primeiramente o garfo da esquerda. Desta forma evitam-se os deadlocks. Outro detalhe de implementa c ao para essa disputa, e quando dois l osofos tentam pegar um garfo ao mesmo tempo. Essa situa c ao e chamada de se c ao cr tica, e ela e tratada da seguinte maneira. Cria-se uma regi ao cr tica para cada garfo onde somente uma thread poder a entrar. A regi ao cr tica pode ser denida como uma fun c ao ou um conjunto de instru c oes dentro de uma fun c ao ou m etodo. Dentro dessa regi ao dever a estar a rotina de mudan ca do atributo da classe Garfo. Com isso ser a virtualmente imposs vel dois l osofos ao mesmo tempo pegarem um u nico garfo. No anexo B encontra-se algumas tomadas de tela do programa que simula o Jantar dos Fil osofos.

4.3

O rob o

Ap os a etapa de estudo da linguagem de programa c ao, inicia-se uma nova fase de trabalho ligado diretamente com um rob o. Ent ao, nessa se c ao ir-se- a conhecer um pouco sobre rob otica exemplicando o rob o desenvolvido e implementado no Projeto Roboturb.

4.3.1

Caracter sticas do rob o

Um rob o e dotado de um manipulador e de um controlador. O manipulador e a parte m ovel do rob o constitu da por partes r gidas, os elos, ligados entre si pelas juntas. A combina c ao desses elementos pode formar o bra co e o punho do manipulador. Feito assim, esses tipos de rob os semelhantes ao bra co humano caracterizam os manipuladores industriais. Adianta-se que o Projeto Roboturb trabalha com essa caracteriza c ao. O controlador e a unidade do sistema capaz de gerar informa c oes para comandar atuadores com base num algoritmo de controle. Para tanto, ele possui uma unidade de pot encia, ou seja, o elemento que liga diretamente aos atuadores fornecendo-lhes a energia

29

necess aria. Muitas vezes, o controlador integra um sistema de comunica c ao com o usu ario, podendo ser um computador ou um controle remoto.

Figura 4: Controlador do Projeto Roboturb Os atuadores s ao dispositivos que geram e imp oem movimento ao manipulador. O mais comum deles e o motor el etrico, geralmente de corrente cont nua. Existem tamb em os transdutores de movimento, que garantem a precis ao de posicionamento dos rob os. No Roboturb, utilizam-se os encoders, que est ao localizados nas juntas e enviam informa c oes ao controlador sobre o quanto aquele eixo est a se movimentando. Conforme o movimento do eixo s ao gerados pulsos que devem ser contados. Estes pulsos t em informa c ao discreta sobre a posi c ao do eixo. Com base em um intervalo de amostragem constante, pode-se obter a velocidade do eixo a partir da varia c ao da posi c ao. Assim, este transdutor permite obter informa c oes de posi c ao e velocidade. Na teoria de controle dos rob os existem duas formas usuais, o controle a partir de malha aberta e malha fechada. O controle de malha aberta consiste em enviar informa c oes aos atuadores de tal forma que ele se mova at e uma posi c ao estabelecida, sem se preocupar se ele ir a deslocar-se por motivos de in ercia, gravidade ou for cas externas. J a o controle de malha fechada ir a constantemente vericar a posi c ao de um eixo, e compensar caso ele

30

Figura 5: Estrutura f sica do rob o desloque-se da posi c ao pr e-estabelecida, isto e, constantemente a unidade de pot encia ir a fornecer energia ao atuador. O Roboturb emprega um controle de malha fechada, dessa forma a precis ao da posi c ao ser a garantida, n ao importando a congura c ao que o rob o se encontra. Outro dado importante e o n umero de eixos que o rob o possui. No projeto a estrutura e de sete eixos, um a mais que o habitualmente usado. Diga-se por passagem, um rob o redundante. Optou-se por essa congura c ao por tornar mais ex vel a movimenta ca o. como se fosse um manipuO eixo redundante caracteriza-se por um trilho ex vel. E lador tradicional de seis eixos, que se pode deslocar num trilho. Na gura 5 encontra-se o manipulador do Projeto Roboturb. Observa-se que o trilho e dotado de ventosas, a m que se possa xar nas p as da turbina. Nota-se que esse rob o e bem menor que os tradicionais rob os industriais, devido ao seu prop osito de constru c ao, recuperar turbinas de hidrel etricas de grande porte. Esse ambiente de trabalho e extremamente pequeno e apertado.

31

4.3.2

Controle Remoto

Alguns rob os s ao dotados de um dispositivo muito u til para o posicionamento do manipulador - o controle remoto. Um controle remoto pode possuir manoplas, bot oes e at e um Visor de Cristal L quido (LCD). Com esse instrumento, o operador trabalha com o movimento intuitivamente. Ele pode controlar a velocidade de um eixo, por exemplo, de acordo com quanto e deslocada uma manopla. Outra vantagem e que se pode mudar facilmente o eixo que e trabalhado, ou trabalhar com v arios eixos ao mesmo tempo. Mas o grande trunfo do controle remoto e a possibilidade de movimentar o rob o de forma natural em coordenadas cartesianas, isto e, dado um sistema de coordenadas X Y Z, o operador escolhe em que dire c ao ir a movimentar o efetuador nal (a ponta do rob o). Esse tipo de movimento e muito complicado de se implementar, requerendo grande processamento e c alculos. No Projeto Roboturb, usa-se um controle remoto com duas manoplas, v arias botueiras, duas chaves e um LCD. Na se c ao 4.4, ter-se- a mais detalhes sobre esse instrumento.

4.3.3

Rotinas de movimento do rob o

A movimenta c ao do rob o no projeto e estabelecida por uma gama de fun c oes encapsuladas pelo fabricante da placa de movimento. Esta placa e instalada no pr oprio computador, e possui liga c ao direta com as placas de pot encias e com os transdutores do rob o. O fabricante, a National Instruments (NI), criou uma API denominada FlexMotion Software, que combinado com uma unidade de pot encia fornece funcionalidade e energia para integrar sistemas de movimento usados em laborat orios, testes e ambientes de produ c ao[4]. Apesar dessa facilidade que a NI disp oe, e muito trabalhoso usar essas fun c oes. Isso porque a maioria das rotinas e usada para movimentar ou obter informa c oes de um u nico eixo do manipulador, e tamb em e preciso passar par ametros espec cos para cada fun c ao. Com esse intuito optou-se abstrair ainda mais rotinas de movimento e leitura de

32

dados do rob o. Para facilitar tamb em a programa c ao, criou-se uma classe rob o. Esta classe possui atributos que especicam as caracter sticas de todos os eixos do rob o que as fun c oes da FlexMotion exigem.

4.4

Montagem do Controle Remoto (CR)

Antes de iniciar implementa c oes de software usando o controle remoto, foi designado ao estagi ario realizar a montagem do mesmo. Para tanto, foi necess ario conhecimento em eletr onica.

4.4.1

O controle remoto

Antes de relatar a constru c ao do controle remoto, comentar-se- a todas as fun c oes dos dispositivos encontrados no mesmo. Na gura 6 encontra-se o controle remoto do Projeto Roboturb.

Figura 6: Foto real do controle remoto

33

Botoeiras: Dispositivo de comando para interagir com as op c oes que ir ao aparecer no visor de cristal l quido. Todas as botoeiras s ao normalmente abertas. Chave de 3 posi c oes: Respons avel pela escolha do tipo de movimento que o manipulador ir a executar. Sendo a primeira posi c ao em coordenada cartesiana, segunda posi c ao sem movimento, terceira posi c ao em coordenada de junta13 . Chave de 2 posi c oes: Respons avel pela escolha da caracter stica de movimento em coordenadas cartesianas, primeira posi c ao orienta c ao, segunda op c ao posi c ao. Manopla de movimento: Existem duas manoplas, uma com movimento em uma dire c ao, para posicionamento do rob o pelo trilho, e a outra com movimento em duas dire c oes e tor c ao, para posicionamento do rob o no espa co. Bot ao de Emerg encia: Atua instantaneamente na interrup c ao do movimento do rob o. Ajuste no: Conhecido tamb em como track-wheel, e utilizado para realizar pequenos movimentos no rob o. Teclado Num erico: Permite a entrada de valores denidos pelo usu ario. respons Visor de Cristal L quido: E avel pela intera c ao gr aca com o usu ario. No interior do controle remoto, est ao divididos os componentes em dois blocos - o bloco inferior, que envolve liga c oes com as manoplas, o track-wheel e as chaves. E o bloco superior, que integra o LCD, as botoeiras e o teclado. O bot ao de parada de emerg encia encontra-se separado destes blocos por ser ligado diretamente ao controlador do rob o.

4.4.2

Montagem interna

A xa c ao externa de todos os dispositivos j a estava pronta quando se iniciou a montagem do controle remoto. Basicamente o trabalho consiste em estruturar a alimenta c ao do mesmo e realizar as conex oes dos itens anunciados na se c ao 4.4.1.
13

movimento num sentido para cada eixo

34

4.4.2.1

Conex ao do controle remoto com o controlador

O rob o manipulador pode ser controlado de duas maneiras, atrav es do PXI (computador industrial usado no projeto) ou pelo controle remoto (CR). Entretanto, como o CR n ao possui nenhum microprocessador para processar as informa c oes adquiridas por seus dispositivos, e necess ario estabelecer uma comunica c ao com o computador.

Figura 7: Computador Industrial (PXI) Internamente o CR possui dois m odulos independentes, que requerem duas conex oes seriais14 do tipo RS-232. Al em disso, e necess ario alimentar o CR com uma tens ao de 12 volts. Como as sa das seriais n ao t em suporte a essa escala de tens ao, utilizou-se uma fonte proveniente do controlador. A t tulo de est etica e organiza c ao das conex oes, optou-se em interligar as duas sa das seriais com o controlador, e este com o CR. Os conectores empregados nessa u ltima interliga c ao s ao da marca LEMO, um dos melhores do mercado, devido a seu engate r apido e robusto. O cabo utilizado na liga c ao e de dez vias, sendo que duas s ao para o bot ao de emerg encia, duas para a alimenta c ao, duas para o bloco superior que ser a denominado Display, em fun c ao da presen ca do LCD, e nalmente quatro vias para o bloco inferior que ser a denominado Joystick, por causa do
14

entrada e sa da de dados quem um computador disp oe

35

conjunto de manoplas. Outra caracter stica do conector LEMO e uma linha vis vel que circunda os pinos de liga c ao. Na gura 8 ela e representada pela linha pontilhada. Por motivos de organiza c ao e manuten c ao, optou-se em utilizar v arias cores para a a c ao, que est ao especicadas na mesma gura.

Figura 8: Conector LEMO, vista pelos pinos de liga c ao Cada cor possui uma funcionalidade, que est a descrita na tabela 2. Cor Descri c ao Branco Respons avel pelo cabeamento do bot ao de emerg encia Cinza Segundo o respons avel pelo cabeamentodo bot ao de emerg encia Roxo VCC de 12 volts Azul TERRA - GND Verde Comunica c ao do Controlador com o Joystick (conrma c ao de transmiss ao) Amarelo Comunica c ao do Controlador com o Joystick (prosseguir transmiss ao) Laranja Comunica ca o do Controlador com o Joystick (recebimento de dados) Vermelho Comunica c ao do Controlador com o Joystick (transmiss ao de dados) Marrom Comunica c ao do Controlador com o Display (recebimento de dados) Preto Comunica c ao do Controlador com o Display (entrega de dados) Tabela 2: Descri c ao dos os provenientes do controlador As funcionalidades de cada a c ao foram levantadas a partir da especica c ao e estudo dos blocos que constituem o controle remoto - o joystick e o display.

36

Para as conex oes, utilizou-se um estanhador para soldagem e para isola c ao empregouse o termo-retr atil15 . 4.4.2.2 Regulador de tens ao

O regulador de tens ao e respons avel em transformar a tens ao de 12 volts proveniente do controlador para 5 volts, devido ao bloco Display requerer essa tens ao. Para tanto, necessitou-se construir uma placa reguladora de tens ao. Basicamente essa placa teria como componentes um regulador de tens ao LM7805, um capacitor de 100F , um capacitor de 100nF e um dissipador de calor. Primeiramente e preciso xar o dissipador de calor na placa, que ser a respons avel em amenizar o aquecimento provocado pelo regulador de tens ao. Esse regulador possui tr es terminais, um para o barramento de 5 volts, outro para o barramento de 12 volts e o u ltimo para o barramento terra.

Figura 9: Esquema de liga c ao da placa reguladora de tens ao Os capacitores t em como fun c ao evitar ru dos, por isso s ao conectados em paralelo
15

borracha isolante que contrai ao ser aquecida

37

com os barramentos. Os valores de capacit ancia s ao especicados a partir do fabricante do regulador de tens ao, segundo o anexo C. Colocou-se o capacitor de maior capacit ancia no barramento de 12 volts e menor no de 5 volts. Na gura 9 encontra-se o esquema de liga c ao virtualmente desenhando. 4.4.2.3 Display

No bloco do display existe uma entrada para conector do tipo DB-9. Essa entrada possui a mesma congura c ao que a sa da da serial do PXI com o acr escimo de mais dois cabos para a alimenta c ao - terra e VCC 5 volts.

Figura 10: Liga c oes do teclado e botoeiras Esse bloco e baseado em um GLK-24064-25, fabricado pela Matrix Orbital. Este produto consiste em um visor gr aco com 240 colunas por 64 linhas de pontos. H a tamb em suporte para uma matriz de 25 teclas, abrangendo todas as botoeiras, um bot ao localizado na ponta da manopla de posicionamento e o teclado num erico. A congura c ao de liga c ao desse suporte est a na gura 10. Convencionou-se que da letra A at e H representam as botoeiras, a letra I o bot ao localizado na ponta da manopla e os demais representam o teclado num erico.

38

4.4.2.4

Joystick

Esse bloco inferior do controle remoto baseia-se em uma placa de controle de interface produzida pela Happ Controls chamada CIB-1000. Sua comunica c ao tamb em e feita a partir de uma serial, por em sua alimenta c ao e de 12 volts, devido ` a mesma possuir embutido um regulador de tens ao[9]. ` medida A leitura do estado das manoplas e baseada num jogo de potenci ometros. A que se desloca a manopla em uma dire c ao, a resist encia aumenta ou diminui, com isso h a uma varia c ao da tens ao de sa da do conjunto, que e tratada em n vel de software.

Figura 11: Liga c ao das manoplas Na gura 11 encontra-se o esquema de liga c ao. As manoplas s ao alimentadas com 5 volts, ent ao a medida que ocorre um deslocamento em uma dire c ao, o circuito comporta-se como um divisor de tens ao, podendo variar de 0 a 5 volts. Conectado ao CIB-1000 tamb em se encontram o track-wheel e as chaves. A liga c ao do track-whell e feita de maneira direta, conforme recomenda c ao do fabricante. As chaves s ao conectadas ao GND, devido a estrutura interna do bloco que utiliza resistores pull up. Veja a gura 12. Nota-se que a chave de tr es posi c oes e representada por S2a e S2b. Por tanto e imposs vel sicamente ambas estarem acionadas ao mesmo tempo.

4.5

Implementa c ao de um Software usando CR

A transfer encia de dados entre o computador industrial e o controle remoto e feita a partir de um conjunto de fun c oes desenvolvidas por um bolsista do projeto. Rotinas

39

Figura 12: Liga c ao das Chaves e do track-wheel escritas na linguagem C++ que encapsulam basicamente o envio e o recebimento de dados do joystick e do display. O display possui rotinas de sa da de dados para o LCD e entrada de dados pelo teclado e botoeiras. Similar ao caso da se c ao 4.1.2.2 de entrada/sa da para o console. J a o joystick baseia-se numa varredura das informa c oes contidas nos seus dispositivos. Isso quer dizer que toda vez que e necess ario vericar se uma manopla est a deslocada ou saber qual posi c ao est a uma chave e preciso utilizar uma fun c ao de leitura de dispositivos logo ap os uma atualiza c ao dos estados do mesmo. Note que no display, quando e apertado um bot ao, envia-se informa c oes para o computador, enquanto que no joystick quando e deslocada uma manopla ou uma chave, n ao ocorre nenhum envio de informa c oes, o programador dever a ler sempre os estados dos dispositivos para determinar as informa c oes.

4.5.1

Movimentando o rob o com CR

Uma vez implementadas rotinas para comunica c ao com o controle remoto, e preciso agora estabelecer uma comunica c ao com o controlador a m que se possa denir movimentos ao manipulador segundo informa c oes do controle remoto. O controle do rob o e feito a partir de um software com uma interface gr aca. No pr oprio software existe a op c ao de passar o controle do rob o para o CR, para tanto, e

40

necess ario utilizar uma thread que interaja com o CR e com o rob o. Desta maneira o programa principal ca livre para outros ns como parada de emerg encia e interrup c ao da comunica c ao com o CR. Um detalhe importante sobre o funcionamento do CR e que o bloco display n ao est a operacional. Como contorno, redeniu-se a l ogica de funcionamento, aproveitando somente o bloco do joystick.

4.5.2

O problema a ser implementado

O problema a ser implementado consiste em criar um m odulo integrado ao controle remoto capaz de capturar pontos no espa co de juntas do manipulador num dado momento. Al em disso, o m odulo dever a gerar um arquivo com todos os pontos capturados. O objetivo dessa tarefa e gerar uma trajet oria de modo r apido e visual, utilizando a facilidade aparente do controle remoto para posicionar o manipulador.

4.5.3

Como funciona o programa

Integrou-se ao software do Roboturb uma interface gr aca para captura de pontos em coordenadas de juntas. Basicamente essa interface mostra as coordenadas de junta numa Tabela. A partir desse conjunto de coordenadas, o usu ario poder a salvar em um arquivo os dados, comandar o manipulador para mover-se numa dada coordenada, remover uma ou mais coordenadas da tabela. H a tamb em a possibilidade de carregar um outro conjunto de coordenadas. A seguir, encontra-se detalhes da implementa c ao da interface de comunica c ao com o usu ario. Como funciona a captura de uma coordenada Implementou-se dois modos de capturar uma coordenada, via software ou via controleremoto. Em ambos os casos, os dados s ao adicionados na Tabela no momento seguinte ` a leitura da posi c ao do rob o. No software, basta clicar num bot ao na interface, que chamar a uma rotina para leitura da posi c ao que o rob o se encontra. Via controle-remoto, o usu ario ter a que girar o track-wheel para captura de coor-

41

denadas. Optou-se por esse modo de comando devido ao problema localizado na placa do display que e respons avel pela envio de informa c oes de todos os bot oes e botoeiras presentes no controle remoto, indisponibilizando o uso dos mesmos. Basicamente, a leitura da posi c ao do rob o s o ser a efetuada no momento que o usu ario terminar o giro do track-wheel. Aconselha-se gir a-lo levemente para a captura das coordenadas. Como remover uma ou mais coordenadas Para remo c ao de coordenadas e preciso selecionar na Tabela os pontos que dever ao ser removidos e pressionar um bot ao espec co da interface. Como salvar um conjunto de coordenadas Aperta-se o bot ao de salvamento de pontos para gravar em arquivo as coordenadas que est ao na Tabela. Aqui, usaram-se fun c oes de manipula c ao de arquivos (ver se c ao 4.1.2.10). Como carregar um conjunto de coordenadas Aperta-se o bot ao de carregamento de pontos para atualizar as coordenadas que est ao no arquivo carregado na Tabela. Como movimentar o manipulador para uma coordenada Seleciona-se uma coordenada da Tabela, e clica-se num bot ao espec co para mover o manipulador at e essa coordenada.

4.6

Implementa c ao de um Software para execu c ao de trajet orias

Um rob o executar uma trajet oria e algo extremamente complicado de se implementar, principalmente quando envolve sincronismo com outros sistemas integrados, por exemplo, a soldagem e a medi c ao. Al em disso, existe a especica c ao de impor uma tal velocidade constante no efetuador nal do rob o. Dene-se trajet oria como um conjunto de pontos que tem como objetivo formar um caminho de interesse. Al em disso, e preciso fornecer uma velocidade com que o corpo ir a se mover ao longo da trajet oria.

42

Na rob otica, e muito comum um rob o executar uma trajet oria, por em, precisa-se denir um ponto de refer encia no rob o no qual este ir a seguir o trajeto. Geralmente concebe-se ao efetuador nal essa refer encia. Entretanto, para que o efetuador nal simule um trajeto com uma certa velocidade constante, necessita-se calcular para todos os eixos do rob o que posi c ao ir ao deslocar-se. Imagine um rob o com dois graus de liberdades (dois eixos). Para que o efetuador nal fa ca uma reta, e preciso combinar o movimento dos dois eixos. Agora, imagine um rob o de sete eixos, que e o caso do rob o do projeto, desenvolveu-se toda uma teoria para c alculos de trajet orias. Al em de denir o quanto cada eixo ir a deslocar-se, precisa-se calcular tamb em a velocidade e a acelera c ao que um eixo dever a executar de um ponto a outro. Sendo que a combina c ao desses par ametros para cada eixo ir a impor uma velocidade constante no efetuador nal. No software h a dois modos de execu c ao de trajet oria, um modo para medi c ao e o outro para a soldagem.

4.6.1

Trajet oria de Medi c ao

O processo de medi c ao consiste em capturar imagens da regi ao de trabalho com uma c amera. Esta aquisi c ao de imagens deve ser efetuada com o rob o parado para n ao ocorrer interfer encias. Desta forma, n ao h a preocupa c ao em denir uma velocidade constante ao efetuador nal, somente se preocuparia com a posi c ao que se encontra o rob o no momento da aquisi c ao da imagem. Entretanto, toda trajet oria e formada por pontos, e esses pontos precisam estar pr edenidos. Por isso, no software somente e poss vel executar um trajeto se for carregado arquivos que contenham par ametros da trajet oria. Basicamente, esses par ametros se dividem em tr es arquivos. Um arquivo cont em a posi c ao de todos os eixos de forma matricial, no qual cada coluna representa um eixo do rob o, contanto, cada linha dene uma posi c ao da trajet oria. O segundo arquivo cont em as velocidades que cada eixo devem deslocar-se de um ponto ao outro. E nalmente o terceiro arquivo cont em as acelera c oes que cada eixo deve

43

adquirir de um ponto ao outro. O controle do movimento sincronizado com a aquisi c ao de imagens funciona da seguinte maneira: Move-se o rob o para posi c ao inicial denida no arquivo de posi c oes. Carregam-se os valores de acelera c ao e velocidade para cada eixo correspondente a segunda linha dos arquivos. Nota-se que os dados da segunda linha s ao carregados para que o rob o se mova da posi c ao inicial (primeira linha) para o pr oximo ponto (segunda linha). Usa-se uma fun c ao para executar o movimento, de acordo com os valores carregados. O processo entra num la co que ca vericando se todos os eixos chegaram na posi c ao denida, isto e, se o rob o est a parado ou n ao. Adquire-se a imagem da superf cie de trabalho com o rob o parado. Carrega-se novamente os valores de velocidade, acelera c ao e de posi c ao para cada eixo. Executa-se o movimento e a aquisi c ao de imagem. Repete-se este procedimento at e o nal da trajet oria. Um detalhe importante da implementa c ao e que as rotinas que controlam o movimento devem ser executadas a partir de uma thread. Isso porque o programa principal n ao estaria bloqueado, liberando o sistema para adotar paradas de emerg encia via software.

4.6.2

Trajet oria de Soldagem

A trajet oria de soldagem e bem mais complexa que a de medi c ao. Analisa-se primeiramente como um soldador humano executa uma solda. Ele precisa geralmente tra car um lamento de solda, constituindo o cord ao de solda. Esta tarefa deve ser feita sempre com a tocha16 praticamente perpendicular com a superf cie a ser soldada. N ao se pode soldar, por exemplo, com a tocha quase paralela ao um plano.
16

ferramenta onde ser a expelido o material de soldagem

44

Outro detalhe e que a execu c ao do cord ao deve ser de maneira constante e uniforme, isto e, necessita-se impor uma velocidade constante no bico da tocha. Com um soldador rob otico aplica-se as mesmas regras. Com tanto, a trajet oria de soldagem caracteriza-se em exercer uma velocidade constante no bico da tocha. Outro quesito e a forma que dever a ser efetuada a solda. Especicou-se que o rob o seria capaz de restaurar crateras formadas nas p as de turbinas de grande porte. Para restaura c ao de uma cratera, necessita-se fazer v arios cord oes de solda um do lado do outro, a m de formar uma camada, podendo at e formar mais de uma camada, caso a cratera seja muito profunda. O formato da trajet oria e uma esp ecie de zigue-zague. Por em somente solda-se num sentido, ou seja, depois que e feito um cord ao de solda, a tocha volta sem depositar qualquer material at e o in cio do pr oximo cord ao que ca ao lado do in cio do cord ao anterior. O algoritmo de execu c ao de trajet oria para o processo de soldagem e um pouco diferente em rela c ao ao da medi c ao. Al em dos arquivos de posi c oes, velocidades e acelera c oes, e necess ario um quarto arquivo para executar o trajeto, esse arquivo consiste em fornecer os par ametros de soldagem para cada ponto - arco, arame, g as, tempo, liga/desliga. Na implementa c ao, usaram-se somente os itens tempo e liga/desliga. O item tempo e um delay necess ario para que a tocha esquente o suciente para come car a solda. Ele est a presente nos in cios dos cord oes de solda. O item liga/desliga e como se fosse o bot ao de disparo que o soldador humano usa para soldar alguma coisa. A execu c ao da trajet oria sincronizada com a soldagem e algo extremamente complicado de se implementar. Isso porque o rob o n ao poder a variar sua velocidade no bico da tocha, pois caso aconte ca, resultar a numa deforma c ao no cord ao de solda. A seguir est a o algoritmo para o processo: Move-se o rob o para posi c ao inicial denida no arquivo de posi c oes. Carregam-se os valores de acelera c ao e velocidade para cada eixo correspondente a segunda linha dos arquivos. Como e o in cio do cord ao, o arquivo dos par ametros de soldagem acusar a um tempo de espera, e a tocha ser a ligada com rob o parado.

45

Usa-se uma fun c ao para executar o movimento, de acordo com os valores carregados. Note que a tocha est a ligada nesse momento. Como o movimento precisa ser cont nuo, e necess ario carregar os par ametros de dois pontos ` a frente, isso antes de chegar ao pr oximo ponto. Por exemplo, o rob o est a se movendo do ponto um para o ponto dois, no algoritmo, e preciso j a estar carregado o ponto tr^ es. Dessa forma, o rob o n ao ir a parar no ponto dois, pois ele j a possui informa c oes para chegar at e o ponto tr^ es. Usa-se uma fun c ao para executar o movimento com os par ametros carregados a frente. Essa fun c ao ir a mesclar dois par ametros de trajet orias. No exemplo do item anterior, ela iria mesclar os par ametros do ponto dois com os par ametros do ponto tr^ es. O processo entra num la co que ca vericando se o rob o chegou na posi c ao denida. Ao sair do la co comentado no item anterior, e preciso executar os par ametros de soldagem. Carregam-se os par ametros de dois pontos ` a frente, e continuaria o mesmo algoritmo para o movimento.

4.7

Integra c ao do trigger no controlador

Para dar continuidade as atividades, precisou-se trabalhar com o hardware do rob o. Essa atividade e essencial a uma das etapas do processo de recupera c ao de turbinas de grande porte - a medi c ao. O sistema de medi c ao e dotado de uma c amera e um sensor laser, que t em como objetivos determinar a regi ao a ser recuperada. O controle de captura de imagens pela c amera e o acionamento do sensor laser e feito a partir do computador industrial, para tanto ele possui duas sa das - o v deo e o trigger com as fun c oes respectivamente comentadas. Essa se c ao ir a se aprofundar no que diz respeito ` a integra c ao do trigger em n vel de hardware. Este termo em ingl es signica na inform atica um sinal que causa o come co de uma certa atividade. No rob o, essa atividade consiste no disparo do sensor laser que est a localizada no efetuador nal, junto com a c amera.

46

4.7.1

Conex ao do trigger

Como toda comunica c ao com o rob o passa primeiramente pelo controlador, com trigger n ao seria diferente. Entretanto, n ao se dimensionou uma sa da do controlador para esse m. Precisou-se, ent ao, incrementar uma conex ao a mais na caixa que cont em todo os sistema de pot encia. Usou-se uma furadeira manual para perfurar o revestimento de alum nio.

Figura 13: Detalhe das v arias camadas do cabo coaxial e o conector macho BNC O conector do trigger e do tipo BNC17 . Para a conex ao PXI - Controlador usou-se um cabo coaxial com conectores machos do tipo BNC. Esse cabo coaxial, ver gura 13, e formado: Por um condutor interno central de cobre, respons avel pelo sinal do trigger ; Por uma camada isolante ex vel que envolve o condutor interno, a m de proteg e-lo eletricamente; Uma blindagem para o condutor interno com uma malha ou tran ca magn etica, com o intuito de proteger o condutor interno magneticamente; Por uma capa pl astica protetora; Anexado o conector BNC, precisou-se estruturar as conex oes internas no controlador, que se limitavam basicamente em estabelecer o aterramento da blindagem e a conex ao do condutor interno com um outro componente de sa da. Essa sa da e respons avel pela comunica c ao Controlador - Manipulador.
17

Tipo de conector para cabo coaxial inventado por Bayone-Neill-Concelman

47

4.7.2

Fun c ao do trigger

O trigger e respons avel pelo ligamento/desligamento do sensor laser embutido na c amera, e a c amera e respons avel pela capta c ao da imagem da superf cie a ser soldada. Basicamente a medi c ao de uma cavidade ser a feita a partir de tr es feixes de luz infravermelhos paralelos. Em uma deformidade na superf cie, esses feixes de luz n ao estar ao paralelos, e e a partir da distor c ao visualizada pela c amera que ser a tra cada a estrat egia de medi c ao e soldagem. Para tal processo e necess ario captar uma imagem com e sem a presen ca do laser, e nesse momento obter uma imagem resultante a partir da diferen ca entre as ditas cujas. E que entra o papel do trigger, fazer essa intercala c ao da presen ca dos feixes de luzes.

4.8

Integra c ao da Soldagem

Uma das principais fun c oes do rob o do Projeto Roboturb e a execu c ao da soldagem. Para tanto, e necess aria a integra c ao ao software do projeto uma interface de comunica c ao com uma m aquina de solda. Essa comunica c ao se faz a partir de uma porta serial, e os dados consistem basicamente em referenciar ` a m aquina comandos e vari aveis. As vari aveis seriam par ametros de soldagem e os comandos seriam opera c oes em cima do hardware. Tanto os comandos e as vari aveis ser ao especicados a seguir.

4.8.1

Processo de Soldagem

O processo de soldagem escolhido para integrar o n ucleo de solda e o Plasma Pulsado e a m aquina de solda escolhida para soldagem foi a DIGITEC18 . O processo Plasma consiste em utilizar altas correntes de car ater cont nuo e pulsante com o intuito de fundir o arame que ser a o material de repara c ao. O car ater pulsante traz como vantagem a n ao preocupa c ao da posi c ao que se encontra a tocha de solda, isto e, a soldagem pode ser feita contra ou a favor da for ca gravitacional. A fus ao ocorre devido ao arco voltaico formado entre o eletrodo e a pe ca-obra19 . Aplica-se um g as dentro da tocha que se ioniza constantemente ao passar pelo arco,
18 19

m aquina de solda desenvolvida pela UFSC lugar onde ser a depositado o material

48

transferindo calor para a pe ca-obra. No momento que o arame entra na regi ao onde se encontra o g as ionizado, cria-se um curto entre o eletrodo e a pe ca-obra, podendo liberar energia suciente para a fus ao do mesmo[7]. Uma conseq u encia desse processo e a caracter stica da intensidade de corrente nos eletrodos. Num gr aco com a corrente em fun c ao do tempo, forma-se uma onda quadrada, caracterizando uma corrente de pulso e uma corrente de base. A corrente de pulso consiste em realizar a fus ao propriamente dita do arame, isso quer dizer que ela deve possuir altos valores, j a a corrente de base caracteriza-se pela manuten c ao do arco voltaico, por em sem ocorrer fus ao do arame. Outro gr aco que se pode tra car e a velocidade do arame em fun c ao do tempo, que tamb em ter a um formato quadrangular. Estes dois par ametros, corrente e velocidade, devem estar em fase, pois em momentos de elevadas correntes e necess ario arame suciente para compensar a energia empregada no processo, a m de obter um lamento de solda constante e uniforme. Nas duas grandezas, e preciso denir o tempo de pulso e o tempo de base. Outros par ametros de soldagem seriam a corrente de abertura, corrente nal, tempo inicial, tempo nal e os tempos de subida e de descida da rampa de corrente.

4.8.2

Controle da Soldagem

O controle da soldagem e basicamente efetuado pelos comandos passados para a m aquina de solda. Esses comandos v ao desde do ligamento/desligamento da parte de pot encia ao ligamento/desligamento do g as respons avel pelo isolamento da passagem de corrente pelos eletrodos.

4.8.3

Implementa c ao da Comunica c ao com a DIGITEC

Criou-se uma classe que encapsulasse toda a comunica c ao com a m aquina de solda a partir de uma porta serial. Tamb em se criou uma interface ao usu ario para estabelecer essa comunica c ao. Na interface, pode-se denir a porta serial que a DIGITEC est a conectada. Congurase tamb em a taxa de transfer encia de dados pela serial. Para realizar a comunica c ao, basta pressionar um bot ao da interface. Nesse momento

49

podem acusar dois erros. Um dos erros refere-se ` a abertura da porta serial no caso de ela j a estiver aberta, ou na aus encia da mesma. O outro erro refere-se ao n ao recebimento da resposta que e enviada pela DIGITEC, ou seja, quando a porta serial escolhida n ao estiver conectada ` a m aquina de solda. 4.8.3.1 Enviando par ametros de soldagem

H a tamb em uma interface para a especica c ao dos par ametros de soldagem comentada no come co da se c ao 4.8.1. Esses par ametros podem ser especicados de duas maneiras: Denindo valores pela interface gr aca; Via arquivo, onde cont em as instru c oes e dados a serem carregados; Para encaminhar esses dados ` a m aquina de solda, existe um bot ao na interface. Essa opera c ao pode ser executada durante o processo de soldagem, isto quer dizer que os par ametros de soldagem podem variar ao longo da repara c ao de uma cavidade sem precisar paralisar a solda.

CONCLUSOES

A cria c ao de um programa para controlar o movimento do rob o pertencente ao Projeto Roboturb foi o principal objetivo deste trabalho. A enorme complexidade que envolve o controle de um rob o fez com que o est agio curricular fosse uma fonte surpreendente de aprendizado. Desenvolveram-se trabalhos na area da inform atica, da eletr onica, da soldagem, da rob otica e da medi c ao. Como ferramenta de trabalho, a linguagem de programa c ao C/C++ foi utilizada para a integra c ao dos v arios m odulos desenvolvidos ao rob o. Juntamente com um ambiente de desenvolvimento integrado para aplica c oes, foi poss vel criar um programa dotado de interface gr aca, a m do usu ario ter a possibilidade de interagir com o sistema. A intera c ao Homem x M aquina deriva o uso de ferramentas auxiliares, como o controle remoto. A constru c ao desse dispositivo no Projeto Roboturb envolveu atividades em n vel de software e de hardware. O projeto construtivo do CR j a estava pronto, bastando apenas realizar as liga c oes internas e construir a alimenta c ao do mesmo. No software, j a haviam implementado classes que encapsulam a comunica c ao do CR com o computador. Com isso, implementou-se uma aplica c ao que usa essas classes para receber informa c oes de elementos de comando, como manoplas, repassando para os atuadores, ou seja, gerando movimento nas juntas do rob o. Para a comunica c ao com atuadores e encoders e utilizado um pacote fornecido pelo fabricante da placa de controle, chamado FlexMotion Software. A partir desse pacote, criou-se um conjunto de rotinas que facilitaram o movimento das juntas e a leitura da posi c ao dos eixos. Um dos m odulos integrados ao rob o, e que atua em sincronismo com a movimenta c ao do manipulador, e o sistema de medi c ao. Esse sistema caracteriza a etapa de medi ca o da superf cie de trabalho. O levantamento de dados sobre a superf cie e feita atrav es de uma c amera e de um sensor laser. Para tanto, foi necess ario projetar a conex ao do sensor laser

51

com a alimenta c ao do mesmo. Usou-se um cabo coaxial e conectores do tipo BNC, que garantiram a robustez do acionamento do sensor. Outro m odulo integrado que atua sincronizado com a movimenta c ao do manipulador e o sistema de soldagem. Ap os a etapa de medi c ao, dene-se uma estrat egia para a realiza c ao da soldagem. Essa estrat egia consiste em gerar uma trajet oria com par ametros solda. Ao longo da execu c ao da trajet oria, o sistema envia informa c oes para a m aquina de solda, com o objetivo de formar cord oes com o manipulador em movimento. Com tanto, foram implementadas classes que encapsulam a comunica c ao com essa m aquina. O processo de soldagem no Projeto, chamado processo Plasma, utiliza como princ pio a libera c ao de energia a partir de um arco voltaico. Alimenta-se com altos valores de corrente o eletrodo localizado no bico da tocha de solda, fundindo o arame que e injetado no mesmo. Os resultados obtidos com essa estrat egia est ao satisfat orios. Desde a primeira tentativa de execu c ao de uma trajet oria de solda, evoluiu-se muito na forma de movimentar o rob o. A grande diculdade em realizar essa etapa estava no sincronismo entre o movimento e a solda. Como perspectivas futuras, h a a necessidade de projetar o software que ser a usado pelo operador nal. Com tanto, e preciso modelar e rever v arios pontos do sistema, denindo novas funcionalidades e cortando outras, para que o resultado nal esteja o mais otimizado poss vel e extremamente automatizado. Em rela c ao ao aprendizado no est agio curricular, observou-se que v arias atividades est ao al em do raio de a c ao da eletrot ecnica. Entretanto, disciplinas do curso de eletrot ecnica foram base para a realiza c ao de algumas atividades. A exemplo, as mat erias de eletr onica para a constru c ao do controle remoto. Outra grande contribui c ao foi o aprendizado no uso dos Controladores L ogicos Program aveis (CLP), que abrangem o uso de uma linguagem de programa c ao e relaciona sa das e entradas com o objetivo de controlar algum processo.

52

ANEXO A -- PROGRAMA DA CALCULADORA

Executando o programa da calculadora atrav es do console do DOS

Fazendo uma opera c ao de soma

53

ANEXO B -- JANTAR DOS FILOSOFOS

Janela principal do Jantar, com os cincos l osofos ao redor da mesa

54

DO ANEXO C -- ESPECIFICAC AO REGULADOR DE TENSAO

55

Include the Regulador de Tens ao

56

REFERENCIAS
[1] SISTEMAS INDUSTRIAIS INTELIGENTES. de Linguagem Computacional C/C++, Dispon vel http://s2i.das.ufsc.br/downloads/Apostila_C_Cplusplus.pdf Acesso em junho de 2003. [2] INFORMATICA NUMA BOA. Tutorial C, Dispon vel em http://www.numaboa.com.br/informatica/c/index.php Acesso em junho de 2003. [3] CPDEE / UFMG. Curso de Linguagem C, Dispon vel em http://www.mtm.ufsc.br/~azeredo/cursoC/aulas-main.html Acesso em junho de 2003. [4] NATIONAL INSTRUMENTS. Motion Control - FlexMotion Software 5.0, Reference Manual, edi c ao julho de 2000. [5] REISDORPH, Kent. Borland C++ Builder 3 in 21 days, USA 1998. [6] MIZRAHI, Victorine Viviane. Treinamento em Linguagem C++, Rio de Janeiro, 1994. [7] DUTRA, Jair Carlos. Tecnologia da Soldagem, Florian opolis, 1998. [8] JAMSA, Kris; KLANDER, Lars. Programando em C/C++ A B blia, S ao Paulo, 1999. [9] DE CONTO, Augusto Marasca. Proposta de um Teach Pendant Para Rob o de Eixo Reduntante, CTC - Florian opolis, 2003. [10] SANTOS, Vitor M. F. . Rob otica Industrial, Universidade de Aveiro - Portugal, 2001. Curso em

Das könnte Ihnen auch gefallen