Sistema de controle de robô
Aléxis Rodrigues de Almeida SISTEMA DE CONTROLE DE ROBÔ BASEADO NA PLATAFORMA LINUX: UMA PROPOSTA Monografia de Pós-Graduação “Lato Sensu” apresentada ao Departamento de Ciência da Computação para obtenção do título de Especialista em “Administração em Redes Linux” Orientador Prof. Wilian Soares Lacerda (DCC-UFLA) Lavras Minas Gerais – Brasil 2004 Aléxis Rodrigues de SISTEMA DE CONTRO LINUX: UMA PROPOS 6 p A PLATAFORMA Aprovada em 18 de Setembro de 2004 prof. Luciano Mendes dos santos (DCC-UFLA) prof. Roberto Avez Braga Junior (DEG-UFLA) prof. Wilian soares Lacerda (DCC-UFLA) (orientador)
Lavras Minas Gerais – Brasil subconjunto de comando da linguagem LOGO. Esses comandos básicos podem ser combinados de diversas maneiras, gerando, assim, um conjunto maior e mais complexo de ações por parte do robô. O sistema prevê a execução de comandos tanto de forma interativa quanto em bloco, de maneira que um conjunto de comandos pode ser previamente armazenado em um arquivo e submetido, em bloco, para execução pelo robô. À minha esposa Gilzélia e minhas filhas Rebeca e Amanda, por todos os momentos que não pudemos estar juntos nos últimos 16 meses.
Sumário 1 INTRODUÇÃO 1. Objetivos . REVISÃO DA LITERATURA 2. 1 0 robô . 2. 1. 1 Robôs autônomos . Robôs controlados . Monty 2. 1. 2 2. 13 0 robô . 2. 2 Diferença entre microcontrolador e microprocessador 2. 3 0 microcontrolador PIC16F84 . 2. 4 comunicaçao serial e os padroes RS232 e TTL … 2. 5 A linguagem LOGO . DO HARDWARE 3. 1 0 computador . DESENVOLVIMENTO 3. 2 0 robô comunicação . TTL 3. 4 conexoes . 3. 3 Interface de . 3. 3. 1 Circuito conversor entre RS232 e 11333457911 1315 15 16 16 16 17 19 19 20 2021 22 24 26 28 29 30 30 2 36 4 DESENVOLVIMENTO DO SOFTWARE 4. 0 software do PICI 6F84 . 1. 1 Acionamento dos motores . 4. 1. 2 Leitura dos sensores . Módulo de controle . 4. 2. 2 Módulo 4. 1. 3 Comunicação com o computador . 4. 1. 4 Descrição dos principais trechos do programa . 4. 2 O software do computador . 42. 1 interpretador .. sistema computador xi . 4. 2. 3 Módulo de 4. 3 Funcionamento do 4. 3. 1 Conexão do robô à porta serial do 4. 7 4. 8 4. 9 4. 10 4. 11 4. 12 4. 13 4. 14 4. 15 Exemplo de robô jardineiro industrial . Exemplo de robô aspirador Robô vigilante . robô cirurgião . Robô Monty . . Robô ..
Exemplo de . Diagrama básico do computador . Componentes do microcontrolador Encasulamento do PIC16F84. . Arquitetura do PICI 6F84 . Exemplo de gravador do PIC . . 455668891011 12 17 17 18 1921 22 23 2424 25 25 26 27 27 29 30 31 32 Tela do programa MPLAB conversor baseado no MAX232 . conversor . do programa do robô . ao comando . fluxo do programa do robô principal do programa RECEBE COMANDO . EXECUTA COMANDO , tratamento do comando computador. . computador . Circuito . Cabo . Arquitetura . Resposta . Diagrama de . Loop . Bloco Trecho do bloco Trecho do bloco de .
Arquitetura do programa do Diagrama de fluxo do programa do op principal do módulo de controle do programa do computador Funções Execu 4 36 Loop principal do módulo de controle do programa do computador Funções ExecutaPrograma e ExecutaComando . . punçao ExecPF . EnviaPrimitiva rmnlcom Bits da porta seiral 5. 1 5. 2 Robô na fase de testes . velocidade do robô .. 36 36 41 42 . Menu principal do . Configuração de Bps/Paridade/ Medição da ….. A. 2 A. l Circuito conversor RS232 x TTL Circuito impresso – lado da solda Lista de Tabelas 2. 1 2. 2 4. 1 4. 2 4. 3 4. 4 4. 5 4. 6 Disciplinas do curso de robótica do PIC16F84 . otor Características . Controle do Primitivas para controle dos motores do robô Sinais dos sensores retornados pelo robô Comandos internos . Primitivas Comandos da linguagem LOGO . 33 33 33 Capítulo 1 71020 2021 autônomo, com inteligência própria e até, em alguns casos, com capacidade de expressar sentimentos próprios. Entretanto, o que se tem realmente consolidado ultimamente é o uso da robótica em situações práticas de alta periculosidade ou insalubridade para o ser humano, ou em tarefas que exigem extrema precisão em sua execução, ou simplesmente em atividades com um alto grau de repetitividade.
Dentro desse espectro de possíveis atuações, os robôs atualmente são utilizados, por exemplo, para desarmar bombas, limpar dutos de ar condicionado, montar placas de circuito impresso com alto índice de integração ou participar da linha de montagem de automóveis. A partir desses exemplos é possível perceber que a aplicação prática dos robôs nos dias de hoje ainda está muito longe da visão romântica dos livros e filmes de ficção científica. Apesar disso, esses incríveis equipamentos tornaram-se indispensáveis em diversos setores produtivos em todo o mundo. . 1 Objetivos O objetivo principal do trabalho é fornecer à comunidade Linux uma descrição detalhada de todos os elementos necessários para a construção de um sistema de controle remoto de um robô a partir de uma estação Linux. Como objetivos específicos podem ser citados: • Construir um programa para o robô que possibilite receber os comandos do computador, executá-los e fornecer ao programa controlador o resultado da execução desses comandos. • Construir um cabo conector capaz de interconectar o robô e o computador. • Construir um programa controlador que seja capaz de nterpretar comandos, fornecidos pelo usuário em uma linguagem de alto nível, e enviá-los ao robô, para execução. Capítulo 2 6 ao robô, para execução. REVISÃO DA LITERATURA 2. 1 0 robô Conforme definição do dicionário Aurélio, em sua 1 a edição, o termo robô originase do francês robot, que por sua vez vem do tcheco robota, palavra criada pelo escritor tchecoeslovaco, Karel Chapek, e que significa “trabalho forçado”.
Segundo Aurélio, um dos significados do termo robô é: Mecanismo automático, em geral com aspecto semelhante ao de um homem e que realiza trabalhos e movimentos humanos. Os robôs podem ser divididos em dois grandes grupos: autônomos e controlados. 2. 1 . 1 Robôs autônomos Os robôs autônomos são aqueles que já trazem em sua memória a programação necessária para desempenhar todas as atividades que lhe são atribuídas. Ainda se pode dividir esse grupo em dois outros diferentes.
No primeiro subgrupo estão os robôs autônomos com seqüência de passos predeterminada, tendo, portanto, atuação limitada e especifica. Por exemplo, no caso de um braço mecânico, exemplificado na Figura 2. 1, responsável por soldar a carroceria de um automóvel na linha de produção e uma indústria automobilística, a programação é feita de tal forma que o robô aplicará solda sempre nos mesmos pontos, partindo sempre de uma mesma posição de repouso. Caso o tipo de carroceria seja alterado, a programação do robô deverá ser adaptada para essa nova realidade.
No segundo subgrupo, estão os robôs autônomos com capacidade de tomada de decisão a partir de informações retiradas do seu próprio ambiente de atuação, através de sensores analógicos, tais como: sensor de luz, de som, de ultra-som, de contraste, de toque, etc. Essas informações fornecerão s e 0 3 informações fornecerão subsídios para que 0 3 Figura 2. 1: Exemplo de robô industrial Fonte: Revista Robôs, n. 25, ano 2002 robô possa optar por uma determinada sequência de passos de acordo com o valor captado pelo sensor.
Um exemplo desse tipo de robô é o aspirador de pó automático (Figura 2. 2), já disponvel em lojas de eletrodomésticos. Esse robô atua em um espaço delimitado e muda de direção sempre que encontra um obstáculo no ambiente em que está atuando. Ou seja, o valor recebido dos sensores determina a direção que o robô deve tomar nos próximos movimentos. Salienta-se que esse é apenas um exemplo das inúmeras possibilidades dentro dessa categoria de robôs. Outros exemplos de robôs autônomos podem ser vistos nas figuras 2. 3 e 2. 4. 2. 1 . Robôs controlados Por outro lado, os robôs controlados são aqueles cuja programação se restringe apenas a um algoritmo interpretador de comandos. Comandos esses que são envi4 Figura 2. 2: Exemplo de robô aspirador Fonte: http://www. odebate. com. br/noticias. asp? lD=19975 Figura 2. 3: Robô jardineiro Fonte: http://www. inovacaotecnologica. com. br ados por uma unidade controladora remota. Nesse caso, o meio de conexão entre o robô e a estação controladora pode ser de diversos tipos, por exemplo: cabo, ultra-som, infravermelho ou rádio. Um exemplo desse tipo é o robô cirurgião, visto na Figura 2. , onde está sendo controlado a partir de comandos dados pelos médicos cirurgiões. 2. 1. 3 0 robô Montv projeto do robô Monty é de autoria da editora espanhola F&G Editores que 5 Figura 2. 4: Robô vigilante Fonte: http://www. geocities. com/jcrobotics/gol nort. pdf Figura 2. 5: Exemplo de robô cirurgião Fonte: httpwwww. dw-world. de,’brazil,’0 3367 71 15 184292_1 A 0. html o publicou, em vários países, por meio de uma obra em forma de fascículos semanais. Essa obra, que discorre em profundidade sobre as disciplinas listadas na Tabela 2. 1, foi a principal base bibliográfica para este trabalho.
O Monty (ver Figura 2. 6), usando toda a força do PICI 6F84, conta com os dispositivos listados a seguir, montados em um conjunto de cinco placas de CI totalmente integradas. • Dois sensores de toque, posicionados na parte dianteira, um em cada lateral do robô, estando conectados às linhas RB2 e RB3. • Dois sensores óticos de raios nfravermelhos por reflexão capazes de distin6 Fundamentos de eletrônica Microprocessadores Sensores e atuadores Comunicações Motores Microcontroladores Robótica industrial e inteligência artificial Programação Práticas de laboratório Tabela 2. : Disciplinas do curso de robótica guir entre superfícies claras e escuras, estando conectados às linhas RBO e RBI . • Um sensor de ultra-som, conectado à linha RB6. • Um sensor de limiar sonoro, conectado à linha RB7. • Dois sensores de luz, conectados em paralelo à linha RB4. • Um motor acionador da pinça controlado a partir da linha RB5. • Dois otores conectados às linhas RAO,RAI ,RA2 e RA3, responsáveis pelo movimento do robô. A linha RA4 foi reservada para a utilização de um encoder, que oderia ser usado para controlar a velocidade do robô. o robô. 2. 2 Diferença entre microcontrolador e microprocessador conforme (FGEDITORES, 2002), o microcontrolador é um computador construído dentro de um único circuito integrado, enquanto o microprocessador é apenas um dos componentes básicos de um computador. Uma outra descrição da diferença entre o microprocessador e o microcontrolador pode ser encontrada em (MATIC, 2000), onde podem ser encontradas specialmente muitas e importantes informações sobre os microcontroladores da família PIC. Na Figura 2. é possível ver um diagrama de blocos simplificado de um computador. Nessa figura vê-se claramente que o microprocessador atua em conjunto com a memória e o módulo de entradas e saídas para prover as diversas funcionalidades existentes em um computador. Por outro lado, como pode ser visto na Figura 2. 8, o microcontrolador possui em seu interior todos esses elementos totalmente integrados dentro de um único chip. 7 Figura 2. 6: Robô Monty ponte: Revista Robôs, n. 53, ano 2002 Figura 2. 7: Diagrama básico do computador Fonte: Revista Robôs, n. , ano 2002 8 Figura 2. 8: Componentes do microcontrolador Fonte: Revista Robôs, n. 52, ano 2002 Os microcontroladores estão muito presentes no dia-a-dia das pessoas. Em (FGEDITORES, 2002), é apresentada uma estimativa segundo a qual no ano de 2000, em uma residência americana padrão, encontravam-se cerca de 240 microcontroladores. Esses pequenos computadores são encontrados, por exemplo, em máquinas de lavar, fornos microondas, aparelhos de W, celulares, controles de iluminação, roubo, elevadores, 0 DF 36