monologo sobre seguidor de linha

Download Monologo Sobre Seguidor de linha

If you can't read please download the document

Upload: vinyscholl

Post on 29-Jul-2015

116 views

Category:

Documents


35 download

DESCRIPTION

Monologo Sobre Seguidor de linha

TRANSCRIPT

UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANA DEPARTAMENTO ACADEMICO DE ELETRONICA/INFORMATICA CURSO DE ENGENHARIA DA COMPUTACAO

LUCAS LONGEN GIOPPO MARCELO MASSAO KATAOKA HIGASKINO RICARDO FANTIN DA COSTA WILLIAM HITOSHI TSUNODA MEIRA

ROBO SEGUIDOR DE LINHA

MONOGRAFIA

CURITIBA 2009

LUCAS LONGEN GIOPPO MARCELO MASSAO KATAOKA HIGASKINO RICARDO FANTIN DA COSTA WILLIAM HITOSHI TSUNODA MEIRA

ROBO SEGUIDOR DE LINHA

` Monograa apresentado a Unidade Curricular de Ocina de Integracao II do Curso de Engenharia da Computacao da Universidade Tecnol gica Federal o do Paran como requisito parcial para aprovacao. a Orientador: Prof. Dr. Jo o Alberto Fabro a

CURITIBA 2009

TERMO DE APROVACAO

LUCAS LONGEN GIOPPO MARCELO MASSAO KATAOKA HIGASKINO RICARDO FANTIN DA COSTA WILLIAM HITOSHI TSUNODA MEIRA

MONOGRAFIA RELACIONADA AO PROJETO DE OFICINAS DE INTEGRACAO II SOB O TITULO ROBO SEGUIDOR DE LINHA. APROVADA EM: / / .

BANCA EXAMINADORA

Jo o Alberto Fabro, Universidade Tecnol gica Federal do a o Paran a

M rio S rgio Teixeira de Freitas, Universidade Tecnol gica a e o Federal do Paran a

Leandro Piekarski do Nascimento, Universidade Tecnol gica o Federal do Paran a

RESUMO

GIOPPO, Lucas; HIGASKINO, Marcelo; COSTA, Ricardo; MEIRA, William. Rob Seguidor o de Linha. 34 f. Monograa Curso de Engenharia da Computacao, Universidade Tecnol gica o Federal do Paran . Curitiba, 2009. a Este projeto tem como objetivo a montagem de um rob que consiga seguir a trajet ria de uma o o ` linha de cor branca ou preta em um fundo de cor oposta a da linha. O seu sistema para deteccao da linha contar com o uso de sensores de luz infravermelha para detectar o sinal reetido a a partir de um diodo emissor apropriado. As superfcies pretas t m a propriedade de absorver e radiacoes de todos os comprimentos de onda na faixa visvel. Palavras-chave: Rob Seguidor de Linha, Arduino, Ponte H, Motor CC, Fotodiodo o

ABSTRACT

GIOPPO, Lucas; HIGASKINO, Marcelo; COSTA, Ricardo; MEIRA, William. Line Following Robot. 34 f. Monograa Curso de Engenharia da Computacao, Universidade Tecnol gica o Federal do Paran . Curitiba, 2009. a This project aims at assembling a robot which is capable of following a white or black colored line having its opposite color as background. The system for the line detection uses infrared light sensors to detect the reected signal, which is emitted from an infrared LED. The robot will be able to take the right way due to the fact of black being a color that absorbs light and white being a color that reects light. Keywords: Line Following Robot, Arduino, H-Bridge, Motor DC, Photodiode

LISTA DE FIGURAS

FIGURA 1 FIGURA 2 FIGURA 3 FIGURA 4 FIGURA 5 FIGURA 6 FIGURA 7 FIGURA 8 FIGURA 9 FIGURA 10 FIGURA 11 FIGURA 12 FIGURA 13 FIGURA 14 FIGURA 15 FIGURA 16 FIGURA 17 FIGURA 18

ARDU INO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIAGRAMA DE BLOCOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ESTRUTURA DE UM MOTOR DE CORRENTE CONT INUA. ..... MOTOR AK2800/5-R330. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ESQUEMA DE PONTE H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FUNCIONAMENTO DA PONTE H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PONTE H FEITA APARTIR DE COMPONENTES DISCRETOS. ... PONTE H L298N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PINOS DE CONEXAO - L298N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SIMBOLO FOTODIODO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CIRCUITO DO SENSOR ........................................ PELO SENSOR DA PRESENCA DA LINHA. VERIFICACAO ..... DOS SENSORES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DISPOSICAO PWM VARIANDO A TENSAO MEDIA. . . . . . . . . . . . . . . . . . . . . . . . . . . DE CICLO ATIVO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DEFINICAO INO. . . . . . . . . . GRAFICOS DE PWM COM COMANDOS DO ARDU DOS COMPONENTES DO ROBO SOBRE O CHASSI. DISPOSICAO DIAGRAMA DE ESTADOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 9 10 11 12 12 13 14 15 15 16 16 17 18 18 19 21 22

SUMARIO

1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2 Objetivos Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 FUNDAMENTACAO TEORICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1 MICROCONTROLADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 MOTOR DE CORRENTE CONT INUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 PONTE H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 SENSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 DESENVOLVIMENTO PRATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1 ESTRUTURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4 CONCLUSAO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 REFERENCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 APENDICE A -- ORCAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 APENDICE B -- REUNIOES (APS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 APENDICE C -- CODIGO DO PROGRAMA DESENVOLVIDO . . . . . . . . . . . . . . . . . . . . . 31

6

1

INTRODUCAO

Este trabalho apresenta os passos para construir um rob capaz de seguir uma linha no ch o. o a A monograa comeca com uma vis o geral dos objetivos do trabalho e em seguida apresenta a detalhes do planejamento, da montagem do hardware e da implementacao do software que ser o usados no rob . Na locomocao ser o utilizados motores de corrente contnua alimentados a o a por uma bateria, al m de caixas de reducao para aumentar o torque dos motores e circuitos e que permitem inverter o sentido ou variar velocidade de rotacao dos motores. Para detectar a presenca da linha preta o rob estar equipado com emissores e receptores de luz na faixa o a infravermelho baseados na reex o da luz pela cor branca e absorcao pela luz preta. Para a controlar tudo ser utilizado o microcontrolador Arduno. a 1.1 1.1.1 OBJETIVOS Objetivo Geral

Desenvolver um rob que se movimente sobre uma linha preta ou branca em uma superfcie o ` ` plana e de cor oposta a da linha, guiado por sensores a base de fotodiodos que recebem a reex o de um sinal emitido por um diodo emissor de infravermelho, atendendo assim ao objetivo a principal da mat ria de Ocinas de Integracao 2, do curso de Engenharia de Computacao da e Universidade Tecnol gica Federal do Paran Campus Curitiba, que e a de montar um aparato o a que utilize sensores de qualquer natureza, trate os dados gerados por eles e responda a eles de alguma maneira. 1.1.2 Objetivos Especcos

Entender a teoria por tr s dos componentes utilizados em nosso projeto, tais como fotoa diodos, transistores, capacitores, etc. Realizar um estudo sobre dimensionamento de um motor para determinada tarefa ou, em nosso caso, escolher um motor de corrente contnua adequado para mover o rob , o

7

entendendo o funcionamento deste. Aprender a teoria, a montar e utilizar uma ponte H, que em nosso projeto ser utilizada a para inverter o sentido de rotacao do motor CC. Aprender a utilizar o microcontrolador Arduno e a linguagem de programacao utilizada nele. Estudar sobre PWM (modulacao por largura de pulso) e como gerar este pulso utilizando o Arduno. Este estudo ser utilizado para controlar a velocidade dos motores e assim a conseguir realizar uma curva. Aprender a montar e utilizar sensores de infravermelho. Realizar um bom ajuste entre o relacionamento sensores, motores e microcontrolador.

8

2

FUNDAMENTACAO TEORICA

Para montar um rob e necess rio entender alguns conceitos e o funcionamento dos como a ponentes e pecas envolvidos no trabalho, a fundamentacao te rica diz respeito a este ponto do o projeto onde e explicado as etapas do processo de aprendizagem para se atingir o objetivo. 2.1 MICROCONTROLADOR Optou-se por escolher o Arduno, gura 1, como microcontrolador para o projeto, este dispositivo ser respons vel pela ligacao entre o sensor e o motor. As informacoes geradas a a pelos sensores s o analisadas pelo microcontrolador e ent o s o passados comandos atrav s a a a e da ponte H para o motor executar o movimento apropriado para se manter sobre a linha, o diagrama de blocos dos componentes e a gura 2.

Figura 1: Arduno. Fonte: (BANZI et al., 2006)

O Arduno e uma plataforma de prototipagem eletr nica open-source, baseado em um mi o crocontrolador que se conecta ao computador pessoal atrav s de uma porta serial ou USB, e dependendo do modelo utilizado. Ele possui uma linguagem de programacao pr pria, baseada o em Wiring, que e implementada em um ambiente de desenvolvimento (IDE), tamb m pr prio, e o baseado em Processing, e que pode ser utilizada em v rios sistemas operacionais. Atrav s desta a e

9

Figura 2: Diagrama de Blocos. Fonte: Autoria pr pria. o

plataforma pode-se montar uma variedade de circuitos de forma f cil e agil, como, por exemplo, a um sistema de sensores, cujos dados podem ser interpretados e utilizados pelo pr prio Arduno o ou repassados para um PC(personal computer, ou computador pessoal). A sua alimentacao se d pela porta USB conectada ao PC ou por uma fonte externa de at 25V (INTERFACING. . . , a e 2009). A linguagem de programacao do Arduno e simples e sua sintaxe se assemelha muito ao C++ e ao Java. Um programa tpico possui duas funcoes b sicas, o void setup(), que e execu a tada logo no incio do programa, e o void loop(), que e a funcao executada repetidamente pelo microcontrolador. Fora elas existem diversas outras funcoes como por exemplo as que fazem com que um pino emita e receba sinais digitais ou anal gicos. o O modelo do Arduno escolhido para ser utilizado neste projeto foi o Freeduino BR v1.0 que utiliza um microcontrolador ATMega328P com interface USB e tamb m um conector de e alimentacao externa. Uma s rie de vantagens fazem do Arduno a escolha para ser utilizada neste projeto, dene tre eles est o seu preco atrativo, programacao descomplicada e f cil manuseio. Os comandos a a simples simplicam diversos passos do projeto, dando espaco para a equipe focar a atencao em outras partes, como na montagem dos sensores e no funcionamento dos motores.

10

2.2

MOTOR DE CORRENTE CONT INUA Motores el tricos convertem energia el trica em mec nica. Existem motores de corrente e e a

contnua (CC) e de corrente alternada (CA), cada um com diversas variacoes. Motores de corrente alternada s o geralmente usados para m quinas grandes e recebem energia diretamente a a da rede de distribuicao de energia. Segundo (JONES; FLYNN; SEIGER, 1999), rob s m veis o o usam tipicamente corrente contnua, pois sua fonte de energia e uma bateria. Para as necessidades de locomocao de um rob , o motor gira em uma velocidade muito alta o e com um torque muito baixo. Para inverter essa relacao, o motor deve ser ligado a uma caixa de reducao que produz uma nova sada que gira mais devagar, por m com um torque maior. Muitos e motores CC s o vendidos com a caixa de reducao j instalada, como e o caso do adquirido para a a este projeto. Os motores de corrente contnua t m pelo menos dois terminais que ao se aplicar uma e tens o nestes terminais o motor gira em um sentido e invertendo a polaridade da entrada o a motor gira no sentido contr rio. a Alguns motores CC, como motores de passo, tem mais que dois terminais. Os sinais aplicados nestes terminais energizam partes do motor organizadamente de modo a controlar o ciclo interno do motor. Este controle permite saber a posicao do motor em cada instante e obter uma precis o maior da velocidade de rotacao do motor. Neste projeto a trajet ria do rob pode ser a o o constantemente corrigida a partir da linha, ent o n o ser necess rio o uso desse tipo de motor. a a a a

Figura 3: Estrutura de um motor de corrente contnua. Fonte: (ANTUNES, 2009)

A gura 3 mostra uma simplicacao de um motor CC com im permanente. Quando um a o mergulhado em um campo magn tico e atravessado por uma corrente, surge uma forca. O e

11

sentido e a intensidade dessa forca podem ser calculados pela equacao 1. F = iLxB (1)

Duas vezes por ciclo os comutadores mudam de contato, invertendo o sentido da corrente na armadura. Esta mudanca do sentido da corrente e essencial para que o torque sobre o comutador esteja atuando sempre no mesmo sentido. A corrente de partida de motores CC e muito grande, as vezes at maior que o valor em e regime permanente. Isto ocorre pois quando o motor e ligado, a armadura est parada e pora tanto a forca contra-eletromotriz E e nula. Logo, toda a tens o sobre o motor e aplicada na a resist ncia da armadura, que e pequena, resultando em uma corrente alta. Isto pode ser melhor e compreendido atrav s da equacao 2. e V = RI + E (2)

Por outro lado, essa mesma equacao nos mostra que quando a tens o no motor e cessada a bruscamente, a energia armazenada na armadura transforma-se em uma corrente reversa. Para prevenir que esta corrente danique o circuito s o colocados diodos em paralelo com os transia stores. Os motores comprados para o rob s o do modelo AK280/5-R330, (TECNOLOGICAS, ), o a e foram comprados com caixa de reducao de 1 para 70 embutidos. O motor com a caixa de reducao est representado na gura 4. A eci ncia m xima do motor e atingida em 1,44 A, o a e a motor aplica um torque de 0,63 kg f cm e atinge a velocidade angular de 280 rpm. Com as rodas e a caixa de reducao isto resulta em um torque de 17,3 N e uma velocidade de 1,7 cm/s.

Figura 4: Motor AK2800/5-R330. Fonte: Autoria Pr pria. o

12

2.3

PONTE H Dentro do projeto, os motores CC precisam ser acionados nos dois sentidos, portanto h a a

necessidade de controlar o sentido da corrente fornecida para que o motor inverta o sentido de rotacao. Esse controle e feito pela ponte H, gura 5, que controla o sentido da corrente para o motor atrav s da disposicao de quatro chaves eletr nicas em que o motor e posicionado entre e o elas, de modo que formem uma letra H, da o seu nome.

Figura 5: Esquema de Ponte H. Fonte: (PATSKO, 2006)

O fornecimento de corrente ocorre pelo fechamento das chaves duas a duas, de tal forma que a fonte e o terra estejam em posicoes alternadas dos p los do motor como indicado na o imagem 6.

Figura 6: Funcionamento da Ponte H. Fonte: (PATSKO, 2006)

Caso seja necess rio parar o motor CC, a ponte H propicia duas formas distintas para faz a e lo. A primeira consiste em abrir as quatro chaves da ponte, fazendo com que a corrente gerada

13

pela fonte n o circule pelo motor, ent o o movimento nele e apenas inercial e cessa suavemente a a devido apenas pela forca do atrito. A segunda maneira e feita fechando as duas chaves superi ores, que est o ligadas a fonte, ou fechando as duas chaves inferiores, ligadas ao terra. Desta a forma produz-se um freio eletr nico, parando o motor quase instantaneamente. Isso ocorre o pois as chaves fazem com que o motor entre num curto-circuito e seja freado justamente pela corrente inversa gerada pela natureza indutiva do pr prio motor, que o obriga a girar em sentido o contr rio. a Um caso especial que se deve tomar cuidado e a de n o fechar as quatro chaves ao mesmo a tempo ou duas chaves de um mesmo lado, pois isso faz com que o uxo da corrente v direto a do p lo positivo para o negativo, causando um curto-circuito fatal para a fonte de alimentacao o e para os componentes eletr nicos envolvidos no circuito (PATSKO, 2006). o No caso deste projeto, a equipe envolvida pode optar por duas formas distintas da ponte H, montar uma com componentes discretos, como transistores e diodos ou utilizar o circuito integrado L298N (MICROELECTRONICS, 2000). Na ponte H com componentes discretos, gura 7, foram utilizados transistores MOSFETs como chaves que para fech -las basta colocar uma tens o na base deles. Os resistores s o a a a adicionados para evitar que haja sobrecarga da corrente e os diodos para evitar que uma possvel corrente reversa gerada ao acionar o freio dos motores possa danicar o circuito.

Figura 7: Ponte H feita apartir de componentes discretos. Fonte: Autoria pr pria. o

No L298N, gura 8, s o implementadas duas pontes H. A sua utilizacao e diferente da a ponte H anterior e possui algumas peculiaridades como podem ser observadas no datasheet. Dentre as diferencas est o: a exist ncia do sense que deve ser conectada a um resistor para o a e terra com o intuito de controlar a corrente de carga de cada ponte; a exist ncia de quatro pinos e

14

Figura 8: Ponte H L298N. Fonte: Autoria pr pria. o

out, duas para cada ponte, que e por onde sai a corrente controlada; a exist ncia de um pino e Vs para a entrada da tens o das duas pontes; VSS para a alimentacao dos blocos l gicos; a o GND para o terra; dois Enable, um para cada ponte, que funciona justamente para ativar as pontes; e quatro pinos Input, dois para cada ponte, que determinam por qual out sair a a tens o fornecida em Vs . No datasheet consta ainda quatro estados para a ponte H: no caso do a Input1 estar recebendo sinal e do Input2 n o, o motor funciona para frente, no caso contr rio a a o motor funciona para tr s. Caso os dois Input estejam iguais, ou seja, ambos recebendo sinal a ou ambos n o recebendo sinal, temos o freio do motor, e caso enable seja desligado o motor a roda apenas com a in rcia. e Por m, a equipe decidiu pela utilizacao do L298N, pois o seu encapsulamento, gura 9, j a possui duas pontes H integradas, ideal para o caso, pois necessitamos controlar dois motores CC de forma independente atrav s do microcontrolador. Al m disso outra vantagem e o seu dimene e sionamento, pois ocupa um espaco muito menor do que duas pontes H feitas com componentes discretos. 2.4 SENSOR Os sensores utilizados no projeto s o fototransistores e fotodiodos, funcionando como rea ceptores e emissores respectivamente. Basicamente eles vericam se o prot tipo est ou n o o a a em cima do seu trajeto e se ele precisa fazer alguma correcao na rota. Todo o funcionamento desses sensores est baseado numa propriedade fundamental dos foa

15

Figura 9: Pinos de Conex o - L298N a Fonte: (MICROELECTRONICS, 2000)

Figura 10: Smbolo Fotodiodo. Fonte: Autoria pr pria. o

todiodos, cujo smbolo est representado na gura 10. Esses componentes eletr nicos quando a o instalados em polaridade reversa possuem uma resist ncia el trica praticamente innita assim e e como qualquer diodo em polaridade reversa. No entanto quando um feixe de luz infravermelha e direcionado para o fotodiodo, sua resist ncia el trica cai drasticamente e e atrav s dessa proe e e priedade que e possvel vericar se o rob m vel est ou n o sobre a faixa de cor escura utilizada o o a a para orientar o percurso que dever ser percorrido. O funcionamento do fototransistor e basicaa mente o mesmo do fotodiodo, entretanto ele e mais sensvel ao sinal luminoso pois basta uma pequena corrente na base para que ele altere seu estado vericando ent o a presenca da luz. a O diodo emissor (LED) emite um feixe luminoso que reete sobre uma superfcie de cor clara e incide no fototransistor, receptor , diminuindo sua resist ncia e permitindo a passagem e de corrente que e vericada pelo Arduno. Como a faixa e de cor escura, o feixe luminoso emitido pelo LED e absorvido fazendo com que n o haja passagem de corrente pelo fotodiodo. a Com isso e vericado se o carro est ou n o sobre o percurso indicado. Como escolhemos a a criar um percurso de cor escura o Arduno interpreta a aus ncia de luz como caminho e a e

16

presenca, no caso a reex o da luz emitida, como sendo o fundo fora do caminho. A gura 11 a mostra o esquema do circuito individual dos sensores:

Figura 11: Circuito do Sensor Fonte: Autoria pr pria. o

A gura 12 mostra como funciona a vericacao da presenca ou n o do percurso e a disposicao a do par de sensores.

Figura 12: Vericacao pelo sensor da presenca da linha. Fonte: Autoria pr pria. o

Os sensores est o dispostos em pares (receptor e emissor) pr ximos um do outro que s o a o a distribudos de tal forma que um ca na faixa central do rob e os outros dois cam adiantados o e mais para as laterais, com uma dist ncia maior que o da faixa preta utilizada como caminho. a Incialmente, foi previsto que seria necess rio haver um isolamento lateral entre o emissor e a

17

o receptor para que n o houvesse interfer ncia na captacao do sinal, entretanto ap s feitos a e o alguns testes vericou-se que tal isolamento era desnecess rio pois n o gerava tal interfer ncia, a a e pelo contrario, ele atrapalhava na reex o da luz. Eles est o levemente inclinados na diagonal a a para haver uma reex o mais precisa e dispostos a uma altura pr xima de dois centmetros do a o ` solo. Quanto a quantidade de sensores s o tr s pares (receptor e emissor) dispostos de maneira a e ` semelhante a gura 13:

Figura 13: Disposicao dos Sensores. Fonte: Autoria pr pria. o

Tal disposicao foi escolhida para que os sensores funcionem da seguinte maneira: o sensor mais recuado verica sempre se o carrinho est ou n o no percurso, funcionando como uma a a esp cie de estado presente enquanto os dois mais a frente vericar o em qual direcao o carro e a dever seguir caso haja uma mudanca de trajet ria (uma curva), funcionando como vericador a o de estado futuro do prot tipo. o 2.5 PWM Um dos objetivos da equipe e poder controlar a velocidade com que os motores do rob o giram para melhorar a sua resposta em uma curva. Para isso e necess rio que a tens o fornecida a a ` para o motor seja vari vel, entretanto isso n o seria possvel, a primeira vista, utilizando pua a ramente sinais digitais, que funcionam somente com zero ou tens o m xima. A pulse width a a modulation (PWM), ou modulacao por largura de pulso, serve justamente como t cnica para e obter um sinal anal gico a partir de um digital. o Tendo um circuito que possui apenas uma chave e uma carga qualquer, quando a chave e ligada passar a pot ncia m xima sobre a carga e quando ela est desligada a pot ncia ser nula. a e a a e a

18

A pergunta e como fazer para obter um valor diferente de pot ncia sobre a carga entre este valor e nulo e a pot ncia m xima, a est o ponto em que entra a id ia do PWM (GHIRARDELLO, e a a e 2008) . O PWM consiste em um padr o de r pida altern ncia entre liga e desliga de um perodo a a a T, na qual, parte do tempo ela estar em estado ativo e parte do tempo em estado desativado. a Vemos assim que a pot ncia m dia aplicada a carga pode ser diferente dos valores digitais e que e e a tens o sobre a carga varia. Veja gura 14. a

Figura 14: PWM variando a tens o m dia. a e Fonte: (GHIRARDELLO, 2008)

A relacao (t1t)100 % e chamada de ciclo ativo (duty-cicle) do PWM, sendo o tempo em que ele ca ativo igual a t1 e o perodo igual a t. Caso o ciclo ativo seja igual a 0% o circuito est a desligado e caso o ciclo ativo seja 100% o circuito estar sempre ligado. A gura 15 demonstra a o que foi explicado.

Figura 15: Denicao de Ciclo Ativo. Fonte: (GHIRARDELLO, 2008)

Utilizando o microcontrolador Arduno e possvel fornecer este tipo de sinal utilizando as portas adequadas e o comando em c digo analogWrite(valor), em que valor varia de 0 a 255, o sendo 255 a tens o m xima. a a

19

Na gura 16 pode-se ver um gr co representando o funcionamento do PWM para valores a variados da funcao analogWrite.

Figura 16: Gr cos de PWM com comandos do Arduno. a Fonte: (NASCIMENTO; DIAS; ZORZO, 2008)

20

3

DESENVOLVIMENTO PRATICO

3.1

ESTRUTURA O chassi do rob foi feito utilizando papel foam que e um material que e rgido e leve ao o

mesmo tempo al m de podes ser facilmente modelado, caractersticas ideais para um prot tipo. e o Os motores com reducao e os demais itens para a montagem dos circuitos foram adquiridos em lojas de eletr nica e as rodas foram compradas atrav s da Internet. O preco de cada componente o e pode ser encontrado no ap ndice A. e Os sensores cam sob a parte dianteira do rob e sobre o foam est o os motores seguidos o a pelo Arduno, pela bateria e pela ponte H. Al m das duas rodas do motor o rob e sustentado e o por mais duas rodinhas menores na traseira. Isso pode ser melhor compreendido atrav s da e gura 17. A alimentacao dos sensores e a da ponte H e feita pelo pr prio Arduno, que e por sua vez o alimentado por uma bateria de 9 V. Os motores s o alimentados por um casulo de 6 pilhas AA a em s rie de 1,5 V, somando cerca de 9 V. Para desligar o carrinho foi adicionado uma chave que e pode desconectar a bateria do circuito. Sob o comando do Arduno a ponte H pode controlar a velocidade e o sentido da rotacao dos motores. O controle da velocidade e permitida atrav s do comando de PWM do Arduno e que varia a tens o de entrada na ponte H. a 3.2 SOFTWARE O software para controlar o rob foi implementado na linguagem pr pria do Arduno. O o o programa possui duas funcoes b sicas, o setup() e o loop() ambas n o possuem retorno. A a a funcao setup() e chamada pelo Arduino uma unica vez logo no comeco do programa, ou seja, ocorrendo a cada vez que o Arduino e ligado ou resetado. O prop sito da funcao e a de eno capsular todas as linhas de c digo que s o utilizadas para inicializacao, como a denicao dos o a pinos ou as bibliotecas a serem utilizadas. A funcao loop(), por sua vez, encapsula as linhas

21

Figura 17: Disposicao dos componentes do rob sobre o chassi. o Fonte: Autoria Pr pria. o

de c digo que ser o rodadas em um laco innito logo ap s o t rmino do setup(), permitindo o a o e que o Arduno receba dados, mude de estado e as responda conforme programado. A seguir ser explicado brevemente o funcionamento do programa, cujo c digo pode ser consultado no a o ap ndice C desta monograa. e No programa utilizado pelo rob , o setup() inicializa sete terminais ao todo, tr s para lerem o e cada um dos tr s sensores do rob e os outros quatro para controlar os motores atrav s da ponte e o e H, sendo dois terminais para cada motor, um deles estar polarizado em nvel l gico baixo a o e o outro em nvel l gico alto, que dependendo da ordem o motor rotacionar para sentidos o a contr rios. Terminado a inicializacao dos terminais, o Arduino chama o loop() e comeca a a rod -lo repetidamente. Dentro dele h quatro condicionais b sicas. A primeira e para o caso a a a da linha ser detectada pelo sensor frontal direito, fazendo com que o motor esquerdo tenha uma velocidade maior que o direito. A segunda e para o caso da linha ser detectada pelo sensor frontal esquerdo, fazendo com que o motor direito tenha uma velocidade maior que o esquerdo. A terceira e para o caso da linha ser detectada somente pelo sensor central, fazendo com que os dois motores tenham a mesma velocidade. A ultima e para o caso da linha n o ser detectada por a nenhum dos sensores, ent o avalia-se qual dos tr s casos anteriores foi o ultimo a ser rodado. a e Essa informacao e guardada por uma vari vel global chamada ultimoEstado que e alterada a conforme o estado atual, por padr o ele e inicializado como se o ultimo estado tivesse sido uma a

22

reta. Caso o ultimo estado tenha sido uma curva para a direita, o programa para o motor da direita e faz o motor da esquerda funcionar numa velocidade mais baixa. Caso tenha sido para a esquerda, o programa faz o mesmo, mas para os motores trocados. Caso tenha sido uma reta, ent o os motores s o ligados para fazerem o rob andar de r . a a o e Cada uma das quatro condicionais possui um ltro para evitar que leituras err neas e moo ment neas afetem o rob de forma perceptvel. Esse ltro funciona de tal maneira que faz a o contagens de quantas vezes dada leitura ocorre, somente depois de ocorrer por 5 vezes o c digo o da condicional e realmente rodado. Esse ltro foi implementado pois j havia sido constatado a que o Arduno acaba lendo erroneamente os dados dos sensores por algumas raras vezes, mas que poderiam tornar a trajet ria do rob ca tica por alguns instantes. o o o Na gura 18 temos o diagrama de estados do programa utilizado.

Figura 18: Diagrama de Estados. Fonte: Autoria Pr pria. o

23

4

CONCLUSAO

O projeto desenvolveu um rob seguidor de linhas personalizado ao utilizar uma ponte H e o propor uma disposicao diferente dos sensores. Os rob s mais simples podem usar um transistor o no lugar da ponte H e apenas dois sensores. Essas personalizacoes no projeto permitiram de senvolver um algoritmo para voltar em busca da linha quando nenhum sensor est a detectando. a O software armazena o estado anterior devido o caso da perda da linha e faz o carrinho voltar em marcha r pelo mesmo caminho percorrido antes de perd -la ou acentuar a curva, assim e e espera-se que os sensores voltem a detectar a linha. O microcontrolador possui entradas e sadas de dados n o utilizadas permitindo a expans o a a do n mero de sensores ou outros dispositivos. O software tamb m pode ser melhorado, inu e cluindo algoritmos para outros casos, quando a pista for mais complexa. J o Arduno possui a mem ria disponvel para expans o. Os motores tamb m est o superdimensionados e oferecem o a e a uma forca e velocidade acima do necess rio. a A equipe investiu tempo demasiado para a escolha e compra dos motores, afetando profundamente as previs es iniciais do cronograma do projeto. Faltou montar o rob em uma estrutura o o mais con vel que o foam, como madeira ou acrlico. No entando, os objetivos da disciplina a que eram utilizacao de sensores fornecidos por eles foram plenamente atingidos pelo grupo.

24

REFERENCIAS

ANTUNES, F. L. M. Motores de Corrente Contnua. 2009. http://www.dee.ufc.br/ fan tunes/Maquinas EletricasI/Aulas/MotoresCorrenteContinua-Impressao.pdf. Acesso em: 20 nov. 2009. BANZI, M. et al. ARDUINO. 2006. http://www.arduino.cc. GHIRARDELLO, A. Apostila sobre Modulacao PWM. http://www.eletronica.org/arq apostilas/apostila pwm.pdf. Acesso em: 20 nov. 2009. INTERFACING with Hardware. [S.l.]: Arduino, http://www.arduino.cc/playground/Main/InterfacingWithHardware. Acesso em: 2009. 2008. 2009. 12 nov.

JONES, J. L.; FLYNN, A. M.; SEIGER, A. B. Mobile Robots: Inspiration to Implementation. 2. ed. [S.l.]: Natick, Massachusetts: A K Peters, 1999. MICROELECTRONICS, S. T. L298 datasheet. 2000. http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXrqqxz.pdf. NASCIMENTO, L. P.; DIAS, L. del C.; ZORZO, R. de R. Cadeira de Rodas Motorizada Universidade Tecnol gica Federal do Paran , Curitiba, o a 2008. PATSKO, L. F. Tutorial Montagem da Ponte H. 2006. http://www.maxwellbohr.com.br/downloads/Tutorial Eletronica - Montagem de uma Ponte H.pdf. TECNOLOGICAS, A. S. AK280 com reducao. http://www.motores.akiyama.com.br/pdf/AK 280 - Red.pdf.

25

APENDICE A -- ORCAMENTO

Aqui est o listados todas os itens utilizados em nosso projeto. aTabela 1: Itens utilizados para a montagem do rob o

Nome Quantidade Motor DC com caixa de Reducao AK280/5-R330 2x Microcontrolador Freeduino BR v1.0 ATMEGA328 e Shield 1x Roda com 80 mm de di metro a 2x LED Emissor INFRA-RED 3x Fotodiodo 3x Circuito Integrado L298N 1x Resistores de 1 M 3x Resistores de 100 3x Resistores de 1 2x Capacitor 100nF 2x Diodo 1N4004 4x Placa de Circuito 10x5 cm 2x Suporte para 6 Pilhas AA 1x Pilha AA 6x Roda Auxiliar 1x Placa de Foam 30x15 cm 1x Total 1x

Preco por unidade (R$) 37,00 110,00 10,00 0,50 0,50 15,00 0,20 0,20 0,20 0,30 0,20 3,00 5,00 1,00 0,00 0,00 242,00

26

APENDICE B -- REUNIOES (APS)

Para atender os pedidos de execucao dos APS por parte da Universidade Tecnol gica Fed o eral do Paran os professores da mat ria de Ocinas de Integracao 2 decidiram pela realizacao a e de registros acerca da evolucao do projeto. Esses registros deveriam ser simples, constando os passos mais importantes ou as reuni es feitas pela equipe e os temas tratados durante o perodo o em quest o. a Segue abaixo os registros feitos desde o pedido do APS feito pelos professores at a cone clus o da monograa, antes de sua impress o. a a Reuni o pela internet (16/09/2009) a Integrantes: Marcelo e William T picos abordados: motores a serem utilizados, PWM do Arduino e explicacao te rica dos o o t picos. o T picos resolvidos: utilizacao do PWM no Arduino atrav s de uma ponte H. o e T picos pendentes: escolha do motor ideal. o

Reuni o na UTFPR (25/09/2009) a Integrantes: William T picos abordados: Ponte H (mosfets) o T picos concludos: funciona, mas uma unica ponte H o

Reuni o pela internet (27/09/2009) a Integrantes: Marcelo e William T picos abordados: Composicao do rob , uni o de sensores + ponte H + Arduino. o o a T picos concludos: reuni o na terca (29/09/2009) para resolver os esquemas de sensores o a

27

+ ponte H + Arduino.

Reuni o casa do William (29/09/2009) a Integrantes: Lucas, Marcelo, William, Ricardo T picos abordados: Montagem da ponte H (L298N) o T picos concludos: Montagem feita na protoboard, utilizando o CI, bateria 9V. Funciona o com dois num unico CI. Mas o L298N funcionou parcialmente, mandado para o Lucas Longen para fazer reparos.

Reuni o em aula (07/10/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: L298N o T picos concludos: Mal contatos resolvidos, ponte H funcionando, mas a bateria de 9V o n o fornece corrente suciente para partida dos motores atrav s da ponte H, necess rio uma a e a fonte diferente. Desenvolvimento do layout dos sensores. T picos pendentes: Pr ximo passo e o desenvolvimento da carcaca do rob . o o o

Reuni o em aula (14/10/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Relat rio de Qualicacao. o o T picos concludos: Ajustes nais do relat rio que foi feito em OpenOfce. o o Reuni o em aula (21/10/2009) a

Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Reducao da ponte H, programas controladores do rob e rodinhas para o o o rob . o T picos resolvidos: Ponte H pronta para ser passada para a placa de circuito universal. o Programa semi-pronto. T picos pendentes: Rodinhas para o rob . o o

28

Reuni o pela internet (24/10/2009) a Integrantes: William, Lucas, Ricardo T picos abordados: Rodinhas do rob o o T picos resolvidos: Compra decidida e efetuada. o P s reuni o: chegada prevista inicialmente para 28/10/2009. Chegada efetiva das rodinhas o a para o rob em 30/10/2009. o

Reuni o na casa do William (04/11/2009) a Integrantes: William, Lucas T picos abordados: Encaixe das rodinhas. o T picos concludos: Encaixe das rodinhas auxiliado por um pedaco de tecido. o T picos pendentes: Montagem do rob . o o

Reuni o na casa do William (10/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: montagem do rob . o o T picos concludos: Montagem dos sensores na placa de circuito universal e chassi feito a o partir de papel foam. T picos pendentes: Montagem da ponte H, interruptor de energia no shield do Arduino, o reuni o das pecas no chassi. a

Reuni o na UTFPR (17/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Montagem do rob o o T picos concludos: Circuito dos sensores pronto e preso ao corpo do rob , motores com o o roda prontos e preso ao rob , placa de circuito universal da ponte H semi-pronto, Shield do Aro duino preparado para receber os contatos, primeira vers o do programa pronta para ser testada. a

29

T picos pendentes: Esquema do interruptor, problema na fonte de alimentacao ponte H o motores, falta de corrente ou tens o. a

Reuni o pela internet (17/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Monograa o T picos concludos: Layout nal, orcamento semi-pronto, estrutura semi-pronta. o T picos pendentes: Orcamento, resumo das reuni es, estrutura do rob , problemas e solucoes, o o o pr ximos passos. o

Reuni o na UTFPR (18/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Montagem do rob o o T picos concludos: Placa de circuito universal da ponte H pronto, shield do Arduino com o interruptor e plug de alimentacao. 4 pilhas AA s o sucientes para dar partida nos motores. a T picos pendentes: Fixar os circuitos no chassi no rob . Ligar ponte H, sensores e fonte de o o alimentacao no Arduino. Ligar motores na ponte H. Conclus o da monograa. a

Reuni o pela internet (18/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Monograa o T picos concludos: Resumos das reuni es para APS de Ocinas de Integracao 2. Paso o A sagem da monograa para a segunda vers o do L TEX. Orcamento. Parte da explicacao sobre a

estrutura. T picos pendentes: Explicacao sobre o software e a conclus o. o a

Reuni o na UTFPR e na casa do William (19/11/2009) a Integrantes: William, Lucas, Ricardo, Marcelo T picos abordados: Montagem do Rob o o

30

T picos concludos: Soldagem dos componentes, problemas com alimentacao e sensores. o Orcamento. T picos pendentes: Consertar um receptor queimado. Fazer testes. o

31

APENDICE C -- CODIGO DO PROGRAMA DESENVOLVIDO

Listagem C.1: C digo comentado do programa que controla o rob . o o1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

i n t s1 = 4 ; / / Sensor 1 , f r e n t e d i r e i t o i n t s2 = 2 ; / / Sensor 2 , f r e n t e esquerdo i n t s3 = 3 ; / / Sensor 3 , t r a s / / MOTOR A , l a d o e s q u e r d o i n t mA1 = 1 1 ; / / Motor A 1 i n t mA2 = 1 0 ; / / Motor A 2 / / MOTOR B , l a d o d i r e i t o i n t mB1 = 5 ; / / Motor B 1 i n t mB2 = 6 ; / / Motor B 2 i n t normalA = 2 5 5 ; i n t normalB = 2 5 5 ; i n t c o r r e c a o A = 2 2 0 ; / / D i m i n u i c a o da r o t a c a o de um m o t o r p a r a c o r r e c a o da rota i n t c o r r e c a o B = 2 2 0 ; / / D i m i n u i c a o da r o t a c a o de um m o t o r p a r a c o r r e c a o da rota int parado = 0; i n t LINHA = LOW, FUNDO= HIGH ; / / FILTRO int filtroCurvaD = 0; int filtroCurvaE = 0; int f i l t r o R e t a = 0; int filtroNada = 0; int f i l t r o N = 5; i n t RETA = 1 ; i n t DIREITA = 2 ; i n t ESQUERDA = 3 ;

16

17 18 19 20 21 22 23 24 25 26 27 28 29 30

32i n t u l t i m o E s t a d o = RETA ; void s e t u p ( ) { pinMode ( s1 , INPUT ) ; pinMode ( s2 , INPUT ) ; pinMode ( s3 , INPUT ) ; pinMode (mA1, OUTPUT) ; pinMode (mA2, OUTPUT) ; pinMode ( mB1 , OUTPUT) ; pinMode ( mB2 , OUTPUT) ; / / S e r i a l . begin (9600) ; } void loop ( ) { i f ( d i g i t a l R e a d ( s 2 ) ==LINHA ) { / / CASO : CURVA DIREITA f i l t r o C u r v a D ++; i f ( f i l t r o C u r v a D >= f i l t r o N ) { a n a l o g W r i t e (mA1, normalA ) ; d i g i t a l W r i t e (mA2, LOW) ; a n a l o g W r i t e ( mB1 , c o r r e c a o B ) ; d i g i t a l W r i t e ( mB2 , LOW) ; filtroCurvaD = 0; u l t i m o E s t a d o = DIREITA ; } } e l s e i f ( d i g i t a l R e a d ( s 1 ) ==LINHA ) { / / CASO : CURVA ESQUERDA f i l t r o C u r v a E ++; i f ( f i l t r o C u r v a E >= f i l t r o N ) { a n a l o g W r i t e (mA1, c o r r e c a o A ) ; d i g i t a l W r i t e (mA2, LOW) ;

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

33

74 75 76 77 78 79 80 81 82

a n a l o g W r i t e ( mB1 , normalB ) ; d i g i t a l W r i t e ( mB2 , LOW) ; filtroCurvaE = 0; u l t i m o E s t a d o = ESQUERDA ; } } e l s e i f ( d i g i t a l R e a d ( s 3 ) ==LINHA && d i g i t a l R e a d ( s 2 ) ==FUNDO && d i g i t a l R e a d ( s 1 ) ==FUNDO) { / / CASO : LINHA RETA f i l t r o R e t a ++; i f ( f i l t r o R e t a >= f i l t r o N ) { a n a l o g W r i t e (mA1, normalA ) ; d i g i t a l W r i t e (mA2, LOW) ; a n a l o g W r i t e ( mB1 , normalB ) ; d i g i t a l W r i t e ( mB2 , LOW) ; f i l t r o R e t a = 0; u l t i m o E s t a d o = RETA ; } } e l s e i f ( d i g i t a l R e a d ( s 3 ) ==FUNDO && d i g i t a l R e a d ( s 2 ) ==FUNDO && d i g i t a l R e a d ( s 1 ) ==FUNDO) { / / CASO : LINHA SUMIU f i l t r o N a d a ++; i f ( f i l t r o N a d a >= f i l t r o N ) { i f ( u l t i m o E s t a d o == DIREITA ) { a n a l o g W r i t e (mA1, c o r r e c a o A ) ; d i g i t a l W r i t e (mA2, LOW) ; d i g i t a l W r i t e ( mB1 , LOW) ; d i g i t a l W r i t e ( mB2 , LOW) ; } e l s e i f ( u l t i m o E s t a d o == ESQUERDA) { d i g i t a l W r i t e (mA1, LOW) ;

83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

34d i g i t a l W r i t e (mA2, LOW) ; a n a l o g W r i t e ( mB1 , c o r r e c a o B ) ; d i g i t a l W r i t e ( mB2 , LOW) ; } e l s e i f ( u l t i m o E s t a d o == RETA) { d i g i t a l W r i t e (mA1,LOW ) ; a n a l o g W r i t e (mA2, c o r r e c a o A ) ; d i g i t a l W r i t e ( mB1 , LOW) ; d i g i t a l W r i t e ( mB2 , c o r r e c a o B ) ; } filtroNada = 0; } }

115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

}