Monog 11 1 Robo Explorador Labirinto PDF
Monog 11 1 Robo Explorador Labirinto PDF
Monog 11 1 Robo Explorador Labirinto PDF
BRUNO EDUARDO DE OLIVEIRA MENEGUELE FERNANDO PADILHA FERREIRA VINICIUS DA SILVA ARCANJO
MONOGRAFIA
CURITIBA 2011
BRUNO EDUARDO DE OLIVEIRA MENEGUELE FERNANDO PADILHA FERREIRA VINICIUS DA SILVA ARCANJO
Monograa apresentada ` a mat eria de Ocina de Integra ca o 2, no curso de Engenharia de Computa ca o da Universidade Tecnol ogica Federal do Paran a, como requisito parcial ` a aprova c ao na disciplina.
CURITIBA 2011
BRUNO EDUARDO DE OLIVEIRA MENEGUELE FERNANDO PADILHA FERREIRA VINICIUS DA SILVA ARCANJO
Monograa do projeto de Ocinas de Integra ca o 2, com apresenta c ao prevista para 15 de Junho de 2011 na Universidade Tecnol ogica Federal do Paran a, como requisito parcial a aprova ca o na disciplina. Aprovada por:
Orientador:
Banca:
CURITIBA 2011
Agradecimentos
Agradecemos ao professor, e nosso orientador, Luciano Scandelari (Departamento de Eletr onica - UTFPR) por sua aten c ao e orienta ca o, assim como por apresentar solu co es de extrema import ancia ao projeto. Creditamos grande agradecimento tamb em ao professor Hugo Vieira Neto (Departamento de Eletr onica - UTFPR) que nos ajudou ao in cio do projeto, principalmente em rela ca o a funcionamente e dicas de componentes a serem utilizados no decorrer do projeto. Ainda agradecemos ao professor Hugo Vieira Neto que nos convidou, a partir do projeto que est avamos desenvolvendo, a participar da competi ca o de rob otica The Freescale Cup: Intelligent Car Racing, na qual temos como orientador o professor Jo ao Alberto Fabro (Departamento de Inform atica - UTFPR) ao qual agradecemos por algumas conversas e dicas ao decorrer do desenvolvimento do rob o proposto, assim como pela disposi ca o de ir a S ao Paulo na abertura da competi c ao citada acima. Para nalizar, agradecemos ao companheiro de turma Fabiano Guilherme Prado Ara ujo por disponibilizar sua c amera digital por alguns dias para registrarmos a naliza ca o do projeto com sucesso, assim como os demais companheiros que nos apoiaram durante o desenvolvimento.
Resumo
Este projeto consiste na constru ca o de um rob o aut onomo capaz de, a partir de um ponto qualquer e sem pr evio conhecimento, explorar e solucionar um labirinto 2D. O labirinto ser a composto por linhas pretas ortogonais em fundo branco e um ponto nal, sendo obrigat orio ao rob o percorr e-lo sobre as linhas pretas. Seu sistema de detec ca o ser a composto por um conjunto de sensores de luz infravermelha e a tomada de decis ao ser a baseada no algoritmo Seguidor de Parede (Wall follower), tamb em conhecido como Regra da M ao Esquerda/Direita.
Lista de Figuras
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Arduino Duemilanove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Estrutura de um fototransistor . . . . . . . . . . . . . . . . . . . . . . . . . 13 Princ pio de funcionamento do motor . . . . . . . . . . . . . . . . . . . . . 15 Ponte H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Fluxo de corrente em uma Ponte H . . . . . . . . . . . . . . . . . . . . . . 18 Circuito esquem atico da ponte H . . . . . . . . . . . . . . . . . . . . . . . 19 Disco do encoder de 36 faixas . . . . . . . . . . . . . . . . . . . . . . . . . 20 Controle por PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Funcionamento dos sensores de reet ancia . . . . . . . . . . . . . . . . . . 22 Circuito esquem atico dos sensores de reet ancia . . . . . . . . . . . . . . . 23 Regra da m ao esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 M etodo de simplica ca o de caminhos . . . . . . . . . . . . . . . . . . . . . 27 Chassi inicial - primeiros testes . . . . . . . . . . . . . . . . . . . . . . . . 29 Projeto CAD: Segundo chassi utilizado . . . . . . . . . . . . . . . . . . . . 30 Segundo chassi utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Chassi atual - vis ao superior . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Chassi atual - vis ao inferior . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Chassi atual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Sa da de curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Placa com 3 sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Placa com 5 sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Casos de tomada de decis ao . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Transi ca o - denindo m de curva . . . . . . . . . . . . . . . . . . . . . . . 38 Varia ca o da rota ca o do motor CC em rela c ao ` a tens ao aplicada . . . . . . . 41 Exemplo de loop problem atico . . . . . . . . . . . . . . . . . . . . . . . . . 42 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Lista de Tabelas
1 2 3 4 5 Ativa ca o da ponte H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Compara ca o entre os algoritmos . . . . . . . . . . . . . . . . . . . . . . . . 23 Simplica co es tabeladas pela equipe . . . . . . . . . . . . . . . . . . . . . . 27 Simplica co es n ao tabeladas pela equipe . . . . . . . . . . . . . . . . . . . 28 Or camento - Projeto proposto . . . . . . . . . . . . . . . . . . . . . . . . . 47
Sum ario
1 Introdu c ao 1.1 1.2 1.3 1.4 Motiva c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9
Plataforma Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Diodos Emissores de Luz - LEDs . . . . . . . . . . . . . . . . . . . . . . . 12 Fototransistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Motores CC e Caixa de Redu c ao 2.4.1 2.4.2 2.4.3 . . . . . . . . . . . . . . . . . . . . . . . 14
Ponte H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Modula ca o por Largura de Pulso - PWM . . . . . . . . . . . . . . . . . . . 20 Sensores de Reet ancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Algoritmos de decis ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.9.1 2.9.2 2.9.3 Busca em largura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Algoritmo de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . 25 Algoritmo Regra da m ao . . . . . . . . . . . . . . . . . . . . . . . 25 29
3.2
Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1 3.2.2 3.2.3 Controle por PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Disposi c ao dos sensores . . . . . . . . . . . . . . . . . . . . . . . . . 35 Denindo nal de curva - transi c ao . . . . . . . . . . . . . . . . . . 36
40 43 46 47 48
10
Introdu c ao
AGV (do ingl es, Ve culos Guiados Automaticamente) s ao essencialmente rob os
m oveis utilizados em areas industriais para mover materiais de um ponto a outro. S ao bastante utilizados em grandes ind ustrias, por em, recentemente seu uso est a se estendendo para hospitais, para o transporte de comida e medicamentos, e tamb em em outros ambientes com alto ndice de insalubridade ou nocivos para o ser humano. Sua alimenta ca o e feita por baterias, a movimenta ca o por motores el etricos e seu controle e feito por um microcontrolador aliado a diversos tipos de sensores. As implementa co es de baixo custo utilizam guias no piso para demarcar a trajet oria e um conjunto de sensores opticos faz a detec ca o desta linha. J a em implementa c oes mais complexas, e caras, s ao utilizados lasers ou comunica ca o sem o (GPS, Bluetooth e GSM) para estabelecer a trajet oria (Souza, 2011; Dietsch e Torrens, 2007; Ali et al., 2010). Este documento apresenta os passos tra cados pela equipe para o desenvolvimento de um rob o aut onomo capaz de denir seu pr oprio trajeto em um ambiente guiado. Ser ao desenvolvidos tanto a parte f sica como seu algoritmo de decis ao, que simular a, por meio de um labirinto de linhas pretas ortogonais, um ambiente no qual o rob o ter a que explorar at e encontrar o ponto nal, o qual eou nico ponto distinto reconhecido pelo rob o.
1.1
Motiva c ao
A equipe teve por motiva ca o o desao da constru c ao de um rob o aut onomo capaz
de resolver labirintos.
1.2
Objetivo
Desenvolvimento e controle de um rob o seguidor de linhas capacitado a explo-
rar e solucionar labirintos 2D, utilizando sensores de reet ancia - objetivo principal da disciplina. Constru ca o do labirinto que ser a formado por retas ortogonais apropriadas ` a infraestrutura do rob o. A partir de um ponto inicial o rob o ir a explorar o labirinto at e um ponto nal, sem o conhecimento do mesmo. Em seguida, posto uma segunda vez no mesmo ponto inicial o rob o ser a capaz de percorrer o menor caminho obtido atrav es da explora ca o.
11
1.3
Metodologia
Apoiando-se no cronograma e atrav es dos objetivos existentes no projeto, uti-
1.4
Diagrama em Blocos
Segue na Figura 2 o diagrama de blocos do rob o. Atrav es deste diagrama e
12
13
2
2.1
Fundamentos te oricos
Plataforma Arduino
O Arduino e uma plataforma open-source de desenvolvimento criada com o ob-
jetivo de oferecer f acil comunica ca o usu ario-hardware. Este pode receber informa co es de uma variedade de sensores e interagir com o ambiente, controlando luzes, motores, e outros atuadores. O microcontrolador e programado usando a linguagem de programa c ao e o ambiente de desenvolvimento Arduino. Uma das maiores vantagens do sistema de desenvolvimento do Arduino e que ele pode ser executado em sistemas operacionais variados, como Windows, MacOS e GNU/Linux, enquanto outros s ao limitados a um u nico sistema. Na Figura 3 encontra-se o Arduino utilizado neste projeto, modelo Duemilanove, com micro-controlador ATMega328. Ele contem 14 entradas/sa das digitais (sendo que 6 funcionam como PWM), 6 entradas anal ogicas, 32Kb de mem oria Flash e 2Kb de mem oria RAM. A comunica ca o e feita por cabo USB, com isso requer o uso de um computador para envio/recebimento das informa c oes (Arduino Team, 2011).
2.2
um diodo come car a conduzir - da mesma maneira, a energia e liberada quando um el etron se recombina com uma lacuna. Essa energia pode ser emitida na forma de calor, para o cristal - estrutura at omica repetitiva que comp oe o substrato do diodo - ou na
14
forma de f otons. No sil cio e germ anio, a maior parte e emitida na forma de calor. Entretanto, em outros semicondutores tais como o arseneto de g alio ou fosfeto de g alio h a uma quantidade de f otons gerados suciente para criar uma fonte de luz bem vis vel. Este processo de emiss ao de luz aplicando-se uma fonte el etrica de energia e chamado de eletroluminesc encia. Um diodo que funciona nestas condi c oes e denominado diodo emissor de luz (LED) (Millman e Halkias, 1981; Boylestad e Nashelsky, 1999).
2.3
Fototransistor
O fototransistor e um fotodispositivo semicondutor bem mais sens vel que o fo-
tod odo. Este dispositivo, e normalmente ligado em uma congura c ao emissor comum, com a base aberta, e uma radia c ao e concentrada em uma regi ao pr oxima da jun ca o coletor JC , como mostra a Figura 4. A opera ca o deste dispositivo pode ser entendida considerando que a jun c ao JE (jun ca o emissor) e polarizada no sentido direto, e a jun ca o JC e polarizada reversamente (isto e, o transistor est a polarizado na regi ao ativa) (Millman e Halkias, 1981).
Sem que exista uma radia c ao de excita ca o, portadores minorit arios - mol eculas com carga oposta a carga predominante do material - s ao gerados termicamente e os el etrons atravessam a base, indo para o coletor, da mesma maneira que as lacunas atravessam o coletor indo para a base, constituindo a corrente de satura c ao reversa de coletor
15
ICO ; a corrente no coletor (IC ) e dada pela express ao 1 (Millman e Halkias, 1981): IC = ( + 1)ICO (1)
onde representa o ganho de corrente para um transistor em congura ca o emissor comum. Se um feixe luminoso incidir no dispositivo, ocorrer a gera ca o de portadores minorit arios adicionais por foto gera c ao, que contribuir ao para a corrente de satura c ao reversa, da mesma maneira que as cargas minorit arias geradas termicamente. Portanto, ir a surgir uma corrente de satura c ao reversa devida a ` luz incidente, designada por IL , na f ormula acima, que resulta na f ormula 2 (Millman e Halkias, 1981): IC = ( + 1)(ICO + IL ) (2)
Sucintamente, com a aus encia de luz e inversamente polarizadas, as jun c oes n ao conduzem corrente el etrica (resist encia el etrica extremamente alta). Se incidirmos luz nestas jun co es, a sua resist encia el etrica diminui muito, havendo condu ca o de corrente el etrica.
2.4
forma energia el etrica em energia mec anica, os quais fazem parte de um conjunto maior denominado de m aquinas el etricas, dividindo este grupo juntamente com geradores, por em os geradores s ao contr arios quanto ` a transforma c ao de energia, j a que estes transformam energia mec anica em el etrica. Toda m aquina el etrica e composta por duas partes, sendo a parte estacion aria o estator e a parte rotat oria o rotor. O rotor e constru do de um material ferromagn etico, o qual e envolvido por um enrolamento denominado de enrolamento de armadura e em seu interior h a o anel comutador, sendo este u ltimo respons avel por realizar a invers ao das correntes que circulam no enrolamento de armadura. Este anel comutador e montado e gira junto ao eixo do motor. O estator e a parte est atica do motor, montada em torno do rotor, de uma forma a constituido de um material ferromagn permitir o giro livre do rotor internamente. E etico, assim como o rotor, e e envolto por um enrolamento denominado enrolamento de campo, o qual possui a fun ca o de produzir um campo magn etico xo, interagindo com o campo do enrolamento de armadura.
16 poss E vel destacar tr es caracter sticas principais para o rotor, sendo estas: 1. Permite a rota ca o para a c ao motora mec anica; 2. Em virtude desta rota ca o, produz a a ca o de chaveamento necess ario para a comuta ca o (comutator); 3. Cont em os condutores que induzem a tens ao ou providenciam um torque eletromagn etico, o qual produz/mant em a rota ca o do eixo. O funcionamento do conjunto que comp oe o motor ser a apresentado na subse ca o abaixo. 2.4.1 Princ pio de funcionamento Uma bobina - o rotor - quando possui uma determinada diferen ca de potencial entre seus p olos, possui uma corrente em um sentido que gera um campo magn etico; ao inverter essa diferen ca de potencial, o sentido da corrente se inverte e a polariza ca o magn etica tamb em. Portanto, fazendo o uso desta invers ao magn etica atrav es de uma diferen ca de potencial e utilizando os conceitos de atra ca o e repuls ao entre os polos de um im a, consiste o princ pio de funcionamento de um motor de corrente cont nua (Honda, 2006). Na Figura 5 e explicado este princ pio de funcionamento:
Na situa ca o a), a bobina est a horizontal. Devido a ` atra ca o dos p olos opostos, existe um torque que ir a for car a rota c ao da bobina no sentido anti-hor ario. A bobina sofre acelera ca o angular e continua seu giro anti-hor ario, como se ilustra em b).
17
Esse torque continua at e que os p olos da bobina alcancem os p olos opostos dos m as xos (estator). Na situa ca o c) - a bobina girou 90 graus - n ao h a torque algum, uma vez que o rotor est a em equil brio devido a ` atra c ao do estator, resultando em uma for ca de atra c ao nula. Este e o momento de inverter o sentido da corrente no rotor, que ir a polarizar reversamente seus p olos magn eticos - para ocorrer uma grande repuls ao entre os p olos do rotor e do estator. Devido a ` in ercia do rotor a bobina ir a girar no sentido anti-hor ario e o novo torque e gerado atrav es destas for cas repulsivas como exibido em d). Mesmo ap os a bobina ter sido girada de 180 graus, o movimento continua, a bobina chega na vertical - giro de 270 graus - o torque novamente se anula, a corrente novamente inverte seu sentido. H a um novo torque e a bobina chega novamente a ` situa c ao a) - giro de 360 graus. E o ciclo se repete (Honda, 2006). 2.4.2 Motores Utilizados O rob o possui dois motores de corrente cont nua (CC) FA-130RA da empresa Mabuchi, o mesmo possui 12300 rpm, sem carga, e um torque de 36 gf.cm. A tens ao nominal e de 3V e a corrente m nima necess aria para seu funcionamento e de 150mA. 2.4.3 Caixa de Redu c ao Utilizando uma caixa de redu ca o, atrav es de combina co es de determinadas engrenagens, pode-se diminuir a quantidade de rota c oes por minuto dos motores utilizados para obter um maior torque. Na caixa de redu c ao utilizada neste projeto, s ao poss veis as seguintes combina co es: 12,7:1, 38:1, 115:1 e 344:1. Uma taxa de redu c ao X:Y, signica que o motor roda X voltas para o eixo rodar Y voltas. Portanto, utilizando a redu c ao 344:1, com um motor de 12300 rpm, isto signica que a cada segundo o motor completa 205 voltas, enquanto o eixo de rota ca o, o qual a roda est a acoplada, completa 0,6 voltas. Sabendo que a roda completa 0,6 voltas por segundo e que seu raio e 2,5 cm, ent ao sua velocidade escalar e 15,7 cm/s.
2.5
Ponte H
Conforme dito na se c ao 2.4, a polariza c ao aplicada em seus terminais que deter-
mina o sentido de rota ca o do motor. Sendo assim, para alternar o sentido de rota ca o
18
do motor, basta inverter a diferen ca de potencial existente entre os terminais do motor. Portanto, pode-se utilizar uma chave para inverter essa tens ao aplicada aos terminais. E razo avel sugerir o uso de transistores, na regi ao de satura ca o, para operar como chave eletr onica. Um circuito que foi desenvolvido justamente para esse prop osito de conseguir chavear o sentido de rota c ao dos motores, e denominado como Ponte H. Uma ponte H e composta por 4 chaves posicionados formando a letra H, sendo que cada uma localiza-se num extremo e o motor e posicionado no meio (Patsko, 2006), conforme a Figura 6.
Para que o motor funcione, basta ativar um par de chaves diagonalmente opostas, o que faz com que a corrente ua do polo positivo para o negativo da fonte, atravessando o motor e fazendo-o girar. Para inverter a rota c ao, basta ativar o outro par de chaves e desativar o par que estava anteriormente ativado. Consequentemente, o sentido de rota ca o ser a invertido, conforme a Figura 7. Quando a base do transistor e devidamente polarizada, ele e capaz de conduzir uma corrente entre seus terminais coletor e emissor, sendo que nos transistores NPN, a condu ca o da corrente se dar a do coletor para o emissor, enquanto que nos transistores PNP, a corrente ser a conduzida do emissor para o coletor (Patsko, 2006). Para ocorrer esta condu ca o, a base do transistor NPN deve estar polarizada em, pelo menos, +0,6V da tens ao do emissor (barreira de tens ao de um diodo de sil cio), enquanto que em um transistor PNP essa tens ao deve ser -0,6V (Millman e Halkias, 1981). Desta maneira, a ativa c ao dos transistores NPN e feita usando um sinal l ogico alto (HIGH) e dos PNP com
19
sinal l ogico baixo (LOW). Portanto, pode-se utilizar a polaridade de ativa ca o dos pares NPN e PNP para utilizar estes como sendo chaves eletr onicas que operam na regi ao de satura ca o. Sendo que a ativa ca o dos transistores ser a feita atrav es das sa das l ogicas do microcontrolador. Segundo PATSKO, quando os transistores s ao desligados, interrompendo a passagem de corrente do circuito, as propriedades indutivas do motor for cam a corrente a continuar uindo, o que pode danicar os transistores. Portanto, para evitar os poss veis danos, e adicionado um diodo em paralelo com cada transistor, com a nalidade de drenar a corrente que poderia for car a passagem atrav es dos transistores. A ponte H que utilizamos foi constru da atrav es de componentes discretos, inicialmente conectados a uma protoboard e posteriormente soldados a uma placa de circuito impresso (PCI), a qual ca acoplada ao Arduino (denominada shield), como visto Figura 20. Na Figura 8 pode-se ver o diagrama esquem atico da ponte H constru da. Os transistores TIP 31 e 32, PNP e NPN respectivamente, realizam a fun ca o de chaves eletr onicas e os transistores BC 548 e 558, NPN e PNP respectivamente, s ao utilizados para amplicar a corrente fornecida pelo microcontrolador, pois o mesmo suporta, no m aximo, 40mA em cada pino digital e s ao necess arios de 50 a 100mA para saturar os TIPs. Com essa congura c ao, a queda de tens ao entre coletor e emissor dos TIPs e de aproximadamente 0,2V, totalizando uma diferen ca de apenas 0,4V entre tens ao a fornecida pela bateria e a que chega aos motores. As regras de ativa ca o da ponte s ao descritas na Tabela 1.
20
HIGH = 5V LOW = 0V
2.6
Encoders
Embora as especica c oes dos motores (CC) sejam iguais, na pr atica, sempre ter ao
uma diferen ca de rota ca o em cada um devido a imperfei c oes dos materiais e da toler ancia dos componentes do circuito de controle. Dessa forma, este fator atrapalha muito o projeto, j a que um seguidor de linha deve seguir precisamente a linha. Uma solu ca o para este problema e conseguir um sensor capaz de detectar o defasamento da rota c ao dos motores. O encoder e um sensor preso a um objeto em rota ca o (como uma roda) para medir sua rota ca o (Society Of Robots, 2010). O encoder ir a contar a quantidade de faixas pretas e brancas, por exemplo, em um disco acoplado no eixo de rota ca o. A quantidade de faixas est a diretamente relacionada a ` precis ao do encoder, sendo que um encoder com precis ao de 10 graus, deve ter 36 faixas alternadas entre preto e branco, j a que o disco possui 360 graus.
21
Segue o exemplo de um disco do encoder de precis ao de 10 graus, na Figura 9, que constru mos para o projeto:
Portanto, utilizando um encoder em cada eixo dos motores, e poss vel medir sua defasagem em graus e, consequentemente, a diferen ca de velocidade entre as rodas. Sabendo disso, atrav es de um controle de tens ao pode-se diminuir a rota ca o mais r apida para regular esta defasagem. Neste projeto, o controle foi feito atrav es de PWM.
2.7
utilizar modula c ao por largura de pulso. Esta e uma t ecnica usada para gerar sinais de ondas retangular com largura do ciclo de trabalho ajust avel, que e o tempo que o sinal ca em nivel l ogico alto, durante um intervalo de tempo. A frequ encia de Modula c ao de Largura de Pulso (PWM) do Arduino Duemilanove e 500 Hz, per odo de 2 milisegundos. A Largura do pulso de trabalho pode ser ajustada na sa da digital em uma escala crescente de 0 a 255, sendo estes valores o ciclo de trabalho nulo e completo respectivamente (Hirzel, 2011). Portanto, um valor de 127 tem um ciclo de trabalho de 50% do total, sendo esta uma onda que permanece 1 milisegundo em n vel alto e 1 milissegundo em n vel baixo. Para um melhor entendimento sobre esta escala, a Figura 10 cont em exemplos de PWM com valores variados. Cada linha verde na vertical representa 2 milisegundos.
22
A utilidade de se utilizar PWM e que atrav es desta escala de ciclo de trabalho e poss vel conseguir controlar o n vel de tens ao m edia. Portanto, este efeito poderia ser utilizado para acender um LED, utilizando PWM desde 0 at e 255, durante um intervalo de tempo o que daria um efeito de degrad e de luminosidade crescente ao LED.
2.8
detectar o qu ao reexiva e a superf cie atrav es de um raio de luz incidente. Sendo assim, um LED, ver se ca o 2.2, infravermelho ser a o emissor do feixe de luz a uma determinada superf cie, que neste projeto ser a o labirinto composto por regi oes pretas e brancas. Sabendo, atrav es da F sica, que uma superf cie preta absorve grande parte da luz incidente enquanto a superf cie branca reete grande parte, pode-se usar o fototransistor, devido suas caracter sticas explicadas na Se ca o 2.3, como receptor dos raios de luz reetidos em ambas as superf cies. Na Figura 11 s ao ilustrados dois pares de sensores, sendo que cada par consiste em um receptor - fototransistor - e um emissor - LED infravermelho. O emissor incide um feixe de luz sobre a superf cie, representado atrav es das linhas cont nuas, o qual e formado por v arios raios de luz. Na superf cie preta grande parte da luz e absorvida,
23
por em h a uma na camada de pl astico sobre a ta utilizada, o que faz com que parte da luz reita no mesmo a ngulo incidido, de acordo com a lei da reex ao. Essa luz reetida tem baixa intensidade, logo n ao inuencia muito a leitura. J a na superf cie branca grande parte da luz e reetida, de modo difuso por ser uma superf cie irregular, o que n ao nos garante exatamente qual a porcentagem da luz incidente que ser a reetida ao receptor. Entretanto, quanto mais perto do emissor ele ter a uma maior probabilidade de receber atrav os raios reetidos. E es desse princ pio que e poss vel detectar as linhas pretas do labirinto, ou seja, caminhos poss veis pelos quais o rob o pode percorrer.
Figura 11: Funcionamento dos sensores de reet ancia Fonte: Autoria pr opria
Um problema detectado foi que os primeiros fototransistores comprados tinham alta sensibilidade em suas laterais, o que fazia com que eles detectassem raios reetidos por outros emissores al em do seu par e tamb em que detecte raios emitidos pela lateral do seu par emissor, independente da superf cie. Os emissores foram envoltos com ta preta, para diminuir seu a ngulo de incid encia, e o problema foi resolvido. Por em, posteriormente, a placa com os sensores foi perdida e novos componentes foram comprados. Esses novos fototransistores n ao apresentaram o mesmo problema e a prote c ao externa foi deixada de lado. A Figura 12 representa o diagrama esquem atico do circuito utilizado como sensor de reet ancia. Cada par de sensores corresponde a um circuito deste, sendo que sua alimenta c ao e a leitura anal ogica do pino Vout e feita pelo Arduino.
24
Figura 12: Circuito esquem atico dos sensores de reet ancia Fonte: Autoria pr opria
2.9
Algoritmos de decis ao
O algoritmo de decis ao e respons avel por receber dados provenientes dos sensores
e realizar a decis ao de continuar reto ou de fazer alguma curva. Por em, essa decis ao n ao e t ao trivial j a que se trata de um labirinto e, caso for encontrada alguma encruzilhada, o rob o deve decidir por qual caminho seguir. Al em destas tomadas de decis oes, e importante que o algoritmo, de alguma forma, forne ca um caminho direto at e o ponto nal. Nesta se ca o ser ao explicados os algoritmos estudados para a resolu ca o do labirinto. Inicialmente a equipe pensou em duas solu c oes: o algoritmo do caminho m nimo de Dijkstra (Cormen et al., 2002) e o de Busca em largura (Cormen et al., 2002), por em, mais tarde foi encontrado e adotado um terceiro algoritmo denominado de Regra da m ao (Vannoy, 2009). A Tabela 2 mostra as principais vantagens e desvantagens de cada algoritmo. Em seguida, ser a apresentada uma breve explica ca o de cada um desses e o motivo de ter sido ou n ao escolhido.
2.9.1
Busca em largura A primeira id eia apresentada pela equipe foi o algoritmo de busca em largura em
uma matriz de caminhos poss veis entre o ponto inicial e nal do labirinto, o qual seria percorrido pelo rob o. O funcionamento deste algoritmo e uma id eia b asica: a partir de um ponto inicial, e feita uma busca em todos os n os (caminhos) adjacentes - vizinhos - e para cada um desses a busca se repete para todos os pr oximos n os adjacentes, e assim sucessivamente
25
Vantangens
Desvantagens
Busca em Largura Dijkstra Regra da M ao Determina o menor Determina o menor Determina o menor caminho geral. caminho geral. caminho, do percorrido. N ao requer trata- N ao requer trata- Baixo consumo de mento de ciclos. mento de ciclos. mem oria. Simplicidade. Alto consumo de Requer o mapa do Requer tratamento de mem oria. labirinto. ciclos. Requer o mapa do N ao determina o labirinto. menor caminho geral.
Tabela 2: Compara c ao entre os algoritmos
at e encontrar o ponto desejado, tornando-se uma esp ecie de for ca bruta, j a que a busca e feita em todos os caminhos existentes, e o escolhido e o que achar o ponto nal primeiro. Para o armazenamento dos n os j a percorridos e a m de obter o menor caminho poss vel foi utilizada uma la para auxiliar no gerenciamento de prioridade dos n os adjacentes. Ao nal do processo, isto e, quando o n o nal e encontrado, basta que um caminho contr ario, ou seja, do ponto nal para o ponto inicial, seja percorrido para saber qual caminho da matriz foi resultante do menor caminho atrav es da for ca bruta. Com a matriz montada e executado o algoritmo e obtido o caminho m nimo, mas isso nos limitaria quanto ` a forma do labirinto, j a que a cada simples modica ca o feita nos labirintos a matriz de caminhos teria que ser reconstru da e o algoritmo executado novamente. O principal problema encontrado foi o consumo de mem oria para o armazenamento e processamento deste algoritmo, j a que o aumento n ao seria linear ao crescimento do labirinto, nos limitando assim ao tamanho do labirinto utilizado. Um outro problema e a necessidade do conhecimento antecipado da matriz para poder executar este algoritmo, sendo necess ario a interven ca o humana a cada modica ca o no labirinto. O pr oximo algoritmo que ser a apresentado foi capaz de solucionar o problema de mem oria, j a que n ao percorre toda a matriz, ou seja, todos os n os vizinhos do grafo, apenas o caminho m nimo que liga dois pontos.
26
2.9.2
Algoritmo de Dijkstra O algoritmo de Dijkstra e um dentre v arios que calcula o caminho m nimo en-
tre dois pontos distintos de um grafo, onde cada caminho possui um determinado peso, pode-se pensar nesses pesos como sendo a dist ancia entre dois pontos que limitam este caminho. O que torna esse algoritmo muito usado e eciente e seu custo a ` m aquina (complexidade) e sua tomada de decis ao partindo do princ pio dos algoritmos gulosos, buscando sempre a decis ao que parece o tima no momento. Por em, para a execu ca o deste algoritmo e necess ario o conhecimento de todo o grafo antecipadamente, como no algoritmo apresentado anteriormente. Por um bom tempo esta foi a op ca o escolhida pela equipe, por em, posteriormente foi encontrada uma nova solu ca o, a qual foi escolhida, pois n ao era necess ario o conhecimento antecipado da matriz de caminhos e o consumo de mem oria era menor ao do algoritmo de Dijkstra. 2.9.3 Algoritmo Regra da m ao Este algoritmo foi considerado o mais adequado, at e o momento, para a solu ca o dos problemas que a equipe possu a, tanto com rela ca o a ` mem oria, tanto quanto em rela ca o ao processamento do microcontrolador. Al em de solucionar este problema, sua id eia e implementa c ao s ao simples. Por em, h a uma condi ca o: o rob o primeiro ter a que explorar o labirinto, a m de achar o ponto nal, antes de realizar o c alculo do caminho m nimo a partir de um m etodo de simplica ca o; a explora ca o e dada de acordo a regra escolhida, que ser a apresentada posteriormente. Pode-se dizer que este algoritmo tamb em e de for ca bruta, por em, apenas na explora c ao, j a que a partir da segunda vez que o rob o for colocado no mesmo ponto inicial ele ir a percorrer o menor caminho a partir dos quais ele explorou. Para explorar o labirinto estipula-se qual regra usar, da m ao esquerda ou da m ao direita: M ao esquerda 1. Sempre prera virar ` a esquerda do que ir reto ou virar a direita. 2. Sempre prera ir reto do que virar a direita.
27
M ao direita 1. Sempre prera virar ` a direita do que ir reto ou virar a esquerda. 2. Sempre prera ir reto do que virar a esquerda.
Por mais que n ao haja caminho a ` esquerda, como na Figura 13 na situa ca o 5), o caminho tomado tende a ` esquerda, que no caso seria continuar reto. Conforme e detectada uma decis ao feita pelo rob o (virar a ` esquerda, ir reto, virar a direta ou voltar), a mesma e armazenada em um vetor, onde simultaneamente ocorrem as simplica co es para obter o menor caminho poss vel sobre os caminhos explorados. Estas simplica co es s ao feitas da seguinte forma: caso o rob o virar a ` esquerda, e armazenada a letra E no vetor, na pr oxima decis ao sup oe-se que o rob o encontre o nal de um caminho, por em, n ao e nal do labirinto, ent ao ele volta (giro de 180o em cima de seu eixo) e e armazenado V. Sup oe-se novamente que a pr oxima decis ao tomada e virar ` a esquerda, armazena-se E e e vericado que ocorreu a sequ encia E, V e E, a qual pode ser simplicada com R indicando que na pr oxima vez que o rob o passar por este ponto ele dever a continuar reto. Para facilitar o entendimento do que foi dito sobre o m etodo de simplica c ao dos caminhos, observe a Figura 14. Todos os passos, do 1) ao 4), poderiam ser simplicados como mostra no passo 5). Utilizando este m etodo o uso de mem oria e consideravelmente inferior ao dos algoritmos apresentados anteriormente, sendo este o escolhido pela equipe para resolu c ao do labirinto.
28
A simplica ca o apresentada na Figura 14 e apenas uma de um total de 12 outras. Todas foram tabeladas pela equipe, como mostra a Tabela 3, por em, nesta tabela as letras utilizadas para representar as tomadas de decis ao foram expressas de acordo a ` l ngua inglesa, ou seja, L para esquerda (left ), R para direita (right ), S para frente (straight) e U para voltar (turn ), diferentemente as letras utilizadas nas guras apresentadas anteriormente. Conjunto SUL LUS LUL RUR SUR RUS RUL LUR LRRRS SRRRL RLLLS SLLLR Simplica c ao R R S S L L U U U U U U
Por em, algum dos loops encontrados pela equipe poderiam ser resolvidos com algumas simplica c oes que n ao foram implementadas no rob o, as quais foram apresentadas
29
na Tabela 4. Estas simplica c oes s ao referentes a quadrados que s ao explorados a partir do centro de uma de suas arestas, ou seja, o rob o come ca a explorar o quadrado ao meio. Estas n ao foram utilizadas devido a algumas regras que a equipe estipulou para desenvolver o labirinto, fazendo com que este tipo de loop n ao fosse implementado, embora s ao facilmente simplicados. Conjunto Simplica c ao LRRRRL U RLLLLR U
Tabela 4: Simplica c oes n ao tabeladas pela equipe
30
3
3.1
3.1.1
Desenvolvimento do projeto
Infraestrutura
Chassi A princ pio era necess aria uma infraestrutura mec anica para carregar o microcon-
trolador e os componentes eletr onicos. Al em disso, era importante decidir a localiza ca o do eixo central da caixa de redu ca o, que ir a acoplar as duas rodas juntamente com os dois motores. Era necess ario tamb em denir a localiza ca o dos sensores de reet ancia. Al em destas decis oes quanto a localiza ca o, a equipe n ao conhecia a quantidade exata de componentes eletr onicos a serem utilizados. Por m, foi montada uma estrutura simples, apenas com o intuito de organizar o Arduino juntamente com a matriz de contatos e os motores para ver como seria o comportamento do rob o em movimento. Essa montagem foi feita com papel ao, conforme a Figura 15.
Com a constru c ao desse prot otipo a equipe concebeu uma forma inicial ao rob o. O pr oximo passo foi criar um chassi que suportasse tudo o que fosse preciso, inclusive os sensores de reet ancia que cariam abaixo do carro. Um primeiro projeto formal do chassi foi criado utilizando o software AutoCAD, o qual cou como a Figura 16.
31
Figura 16: Projeto CAD: Segundo chassi utilizado Fonte: Autoria pr opria
Com estas medidas, foi feito o novo chassi, utilizando uma prancheta de madeira que e utilizada normalmente como suporte para folha A4. O resultado e apresentado na Figura 17.
32
A equipe utilizou por algum tempo o chassi da Figura 17. Entretanto, ap os conclu da uma nova id eia de como fazer uma curva de 90 graus de forma eciente, foi necess ario um novo chassi que tivesse o eixo de rota c ao centrado. A explica ca o da necessidade do eixo no centro do chassi ser a detalhada na Se ca o 3.2.3, que mostra o mecanismo de transi c ao para iniciar/nalizar as curvas. Portanto, foi desenvolvido um novo chassi, que atendesse esse requisito, dessa forma, segue na Figura 18 e a Figura 19, as quais mostram uma vis ao superior e inferior, respectivamente, do projeto CAD.
33
Com o projeto CAD pronto a equipe pode montar defenitivamente o chassi nal (atual) do rob o, o qual e mostrado na Figura 20.
3.1.2
Labirinto O labirinto e constru do utilizando-se de um mat erial para ser usado como fundo
branco (cartolina) e outro para os caminhos poss veis que s ao demarcados por linhas pretas (ta isolante). O mesmo ser a constitu do de linhas ortogonais e sem inclina c ao; deve existir um espa camento m nimo a cada segmento de linha para que o rob o consiga realizar a curva. Inicialmente o lairinto n ao possu a loops, ou seja, n ao havia a preocupa ca o de o rob o entrar em ciclos, por em, com adapta co es no algoritmo de decis ao foi poss vel a incorpora ca o destes. Com a incorpora c ao de ciclos no labirinto houve uma preocupa ca o a ser levada em conta: n ao se construir ciclos innitos, ou seja, aqueles que, por mais que o rob o mude sua regra de decis ao, nunca conseguir a sair do mesmo. A equipe tentou observar padr oes para se denir esse tipo de ciclo, a m de quando fosse detectado o padr ao, o rob o tomaria uma decis ao diferente. Por em, todos padr oes encontrados n ao eram verdadeiros,
34
ou seja, sempre havia um contraexemplo que se aplicado este padr ao poderia acarretar s erios problemas em simplica co es futuras. Com este problema foi decidido que n ao poderia haver loops innitos, apenas ciclos que o rob o poderia entrar e sair, como por exemplo: um quadrado em que a entrada seja a mesma que a sa da.
3.2
Controle
O objetivo desta se ca o consiste em explicar a parte l ogica e funcional de controle
denvolvida neste projeto. Sucintamente, as vari aveis de controle do hardware s ao os dados obtidos dos sensores de reet ancia juntamente com o controle de PWM, conforme o esquema na Figura 2. 3.2.1 Controle por PWM Neste projeto o PWM foi utilizado para manter o rob o movendo-se em linha reta, fazendo o controle de tens ao em cada um dos motores atrav es de dois pares de sensores de reet ancia que detectar ao quando o rob o n ao est a centralizado em rela c ao a ` linha, suprindo a necessidade de se utilizar encoders. Estes dois sensores foram posicionados estrategicamente, exatamente na extremidade da largura da linha, para alinhar o centro do rob o com o centro da faixa que o rob o deve seguir. Dessa forma, sempre que a leitura for de uma superf cie branca e indicado que o rob o est a caminhando em linha reta. Quando um dos sensores faz a leitura de uma superf cie preta, signica que o rob o n ao est a alinhado e o vetor dire ca o e dado por este sensor que est a fazendo a leitura da superf cie preta. Foi utilizado o conceito de que quando o rob o est a andando em linha reta o vetor dire c ao do mesmo e paralelo ao vetor dire ca o do centro da linha. Portanto, toda vez que este vetor n ao estiver centralizado uma rotina e disparada no microcontrolador, vericando para onde o vetor dire c ao est a apontando e o corrige a velocidade dos motores at e obter a dire c ao paralela ao centro da linha. Esta corre c ao e feita aplicando uma escala de PWM decrescente no motor localizado no mesmo lado do sensor que est a fazendo a leitura de superf cie preta. Isto faz com que o rob o mude levemente sua trajet oria, corrigindo a dire c ao at e que este sensor fa ca a leitura de uma superf cie branca. Dessa forma, conclui-se que o vetor dire c ao do rob o est a paralelo ao vetor dire ca o do centro da ta.
35
Normalmente, ap os o rob o fazer uma curva, o vetor dire ca o n ao estar a centralizado com a linha, tal como e exemplicado na Figura 21.
Na Figura 21, os dois sensores s ao formados por ret angulos verde e cinza, sendo o receptor e o emissor respectivamente. No instante 1), o rob o estava virando para a direita e percebe a descentraliza c ao, atrav es da leitura da superf cie preta no sensor do lado do motor direito. No instante 2), a escala decrescente de PWM e aplicada no motor do mesmo lado do sensor que est a lendo a superf cie preta, no caso, o motor direito. Portanto, os motores est ao com velocidades diferentes, o que vai provocar uma rota ca o para o lado do motor que est a com a escala reduzida, conforme e indicado atrav es das setas na imagem. No instante 3), como o rob o ainda est a descentralizado, a escala de PWM e ainda mais reduzida. No instante 4), o rob o percebe que o vetor dire ca o est a paralelo ao vetor dire ca o central da linha e portanto, desativa a escala de redu ca o de PWM. Na Figura 21 e mostrada uma situa ca o em que o rob o detecta uma curva para a direita e a faz na forma determinada, por em, para a realiza ca o da mesma n ao e t ao simples como mostra a gura. Na Se ca o 3.2.3 ser a apresentado com detalhes a forma que o rob o dene o m de uma curva, a m de iniciar o controle de PWM como e mostrado na Figura 21. Por em, primeiramente ser a mostrado como est ao dispostos os sensores de reet ancia, para depois apresentar o conceito de Transi c ao para m de curva.
36
3.2.2
Disposi c ao dos sensores Os sensores de reet ancia devem ser dispostos de uma forma que permita a mel-
hor detec ca o das linhas pretas poss vel ao rob o, j a que com a velocidade do mesmo a leitura dos sensores nem sempre ser a 100% precisa como prevista na teoria. Inicialmente a congura c ao utilizava tr es pares de sensores alinhados um ao lado do outro por um espa camento de 1 cm, como mostra a Figura 22. A equipe acreditava que com esta disposi ca o era poss vel fazer o controle e o alinhamento. O controle foi poss vel, mas o problema encontrado foi quanto ao alinhamento: por mais reto que fosse o caminho, o rob o n ao conseguia permanecer alinhado, pois o espa camento entre os sensores era grande comparado a ` largura da faixa preta e ao espa camento utilizado na placa de sensores ao atual, que ser a explicada posteriormente, assim como a diferen ca na rota c ao dos motores (j a que n ao s ao id enticos), fazendo com que o mesmo se movesse em zig zag.
Para tentar contornar este problema, a equipe optou por acrescentar mais dois pares de sensores. Estes pares s ao exclusivamente para fazer o controle do PWM, mantendo o alinhamento. Atualmente h a 5 sensores, sendo um central e dois laterais, para fazer controle e tomada de decis ao de curvas e outros dois, denominados pela equipe como meios, para controlar o PWM. A Figura 23 mostra a atual placa de sensores, com a identica c ao de cada. Ser a detalhado o funcionamento dos sensores laterais juntamente com o central para a tomada de decis ao pelo algoritmo utilizado. A seguir ser a mostrada uma imagem contendo todos os 8 poss veis casos em que os sensores atrav es de seus valores de leituras aonde dever ao tomar uma decis ao. Conforme o Algoritmo Regra da M ao (Vannoy, 2009) para tomada de decis ao, os
37
tr es sensores (laterais e central) s ao exibidos na Figura 24. Nesta gura, em cada quadro s ao mostrados duas setas, uma azul e uma vermelha, sendo respectivamente o estado anterior da decis ao e posterior ` a decis ao tomada devido a ` m ultipla escolha existente. Esta decis ao e tomada de acordo com a leitura dos sensores, conforme indicado na legenda, sendo que 1 ou 0 signicam respectivamente leitura de superf cie preta e branca. Existem 5 casos de decis ao que permitem m ultipla escolha, isto e, o rob o tem a op ca o de escolher por no m nimo 2 caminhos. Entretanto, a escolha a ser tomada depende de qual Regra da M ao que o rob o adotou, direita ou esquerda. Partimos do pressuposto que o rob o est a utilizando a Regra da M ao esquerda e portanto, na Figura 24, os quadros enumerados de 1 a 5 ilustram esses casos, observe tamb em a leitura dos sensores na legenda para entender porque a decis ao foi tomada de acordo com o Algoritmo. Al em destes 5 casos, existem mais 3 casos b asicos, enumerados de 6 a 8, que possuem apenas uma escolha, conforme explicado na decis ao do Algoritmo. 3.2.3 Denindo nal de curva - transi c ao Foi citado na Se c ao 3.2.1 sobre a deni c ao de m de curva que e necess ario fazer para o in cio do controle de PWM ap os o t ermino de uma curva e tamb em, na Se ca o 3.1.1, sobre a necessidade de desenvolver um chassi que contenha o eixo de rota ca o centralizado, para a realiza ca o mais eciente de uma curva de 90 graus desde o in cio at e o t ermino da mesma. Ambas cita co es apresentam o conceito de Transi c ao para denir o m de uma curva, o qual ser a apresentado nesta se c ao. O conceito de transi ca o e referente ao estado em que o rob o tem que se apresentar para que seja decidido quando uma curva terminou. Esta informa c ao e de plena
38
import ancia devido a ` forma em que a programa ca o do rob o foi implementada, deixando evidente quando o mesmo est a em linha reta ou em curva, a m de evitar decis oes indesejadas enquanto se realiza a curva, devido ao movimento dos sensores sobre a superf cie branca ou preta. Quando o rob o est a em linha reta o controle de PWM est a agindo com o intuito de alinhar o mesmo; quando e detectada uma tomada de decis ao, onde um ou os dois sensores laterais est ao avistando preto, o rob o passa por uma lista de poss veis decis oes, dependentes das leituras dos sensores, e caso a decis ao seja realizar uma curva o rob o entra em um estado em que, independente do que os sensores leiam, n ao deve tomar nenhuma decis ao, a menos que se complete uma transi c ao espec ca, ou seja, quando um conjunto de sensores (que ser a mostrado posteriormente) passa de uma leitura de branco para uma leitura de preto. Este conjunto de sensores sempre e composto pelo sensor central e o sensor do meio (os mesmos que controlam o PWM) referente ao lado da curva feita, como por exemplo: caso a curva seja para a direita, os sensores que dever ao indicar se a transi ca o foi completa ou n ao s ao o sensor central e o sensor direito do meio.
39
Uma vez que se inicia a curva para a direita o sensor direito do meio esperar a at e que sua leitura passe de branco para preto, n ao dando import ancia para a mudan ca de preto para branco. Quando o mesmo detecta essa mudan ca o pr oximo a esperar por essa mesma transi c ao (branco para preto) e o sensor central, sendo que quando este realizar esta detec ca o a transi c ao e dita completa e o estado do rob o passa de curva para reta ativando o controle de PWM e a permiss ao de tomadas de decis oes novamente. Todo este processo pode ser melhor observado na Figura 25 onde a faixa em formato de L e em azul representa a curva e as setas indicam quais sensores fazem parte do conjunto que devem completar a transi c ao.
Este m etodo foi adotado devido a forma com que o rob o termina a curva, sendo necess ario um controle de PWM sutil, evitando que o mesmo venha a andar na forma de zig zag por um per odo de tempo, possibilitando a detec ca o de curva mesmo em uma reta, caso o controle de PWM n ao conseguir estabilizar o rob o rapidamente.
40
Para que este m etodo seja aplicado controladamente e de uma forma um tanto quanto perfeita foi necess ario aplicar uma frenagem brusca ao rob o antes de realizar a curva e ao t ermino da mesma, possibilitando uma leitura mais precisa dos sensores e evitando que a in ercia atrapalhasse a movimenta c ao correta do carro.
41
Problemas Encontrados
Ponte H A constru ca o da ponte H, a princ pio, foi problem atica porque at e o momento a equipe n ao tinha estudado transistores. Dessa forma, cou complicado o entendimento do circuito. Mesmo com a explana c ao de PATSKO, foram encontrados problemas porque os transistores sugeridos s ao BC548 e BC558, que n ao conseguiram ativar devidamente os motores. A solu ca o foi encontrada atrav es da sugest ao do professor Hugo Viera Neto (Departamento Acad emico de Eletr onica - UTFPR), que era substituir os transistores BC558 e BC548 por TIP32 e TIP31. No entanto, o circuito estava consumindo muita corrente da bateria 9V (n ao recarreg avel) para ativar os TIPs, gerando um alto custo com baterias. Por isso, a equipe teve que pesquisar outras congura c oes de ponte H. A primeira tentativa foi utilizar a congura c ao Darlington, mas a queda de tens ao nos transistores era muito alta, em seguida encontrou-se outra solu ca o que, com algumas sugest oes do orientador, se tornou a congura ca o nal. Alinhamento sobre o caminho Inicialmente, a id eia era usar apenas 3 pares de sensores infravermelhos, a qual a equipe havia conan ca sobre o funcionamento, por em, ap os os primeiros testes foi constatado o problema de alinhamento do rob o sobre a linha dos caminhos. Seu movimento era em forma de zig zag fazendo com que muitas vezes o rob o n ao detectasse a curva, devido a ` sua inclina ca o em rela c ao a trajet oria. A solu ca o encontrada, a partir de uma conversa com o orientador, e utilizada na vers ao atual do rob o foi a utiliza c ao de 5 pares de sensores, sendo 2 para o controle por PWM e outros 3 para controle da tomada de decis ao atrav es do algoritmo. Por em, houve tamb em a tentativa de utiliza ca o de enconders, os quais geraram novos problemas. Encoders O principal problema encontrado em utilizar encoders foi conseguir um suporte mec anico xo, em uma boa posi c ao dos sensores, para se fazer uma leitura precisa do disco preto e branco. Outro problema consiste na cria ca o do disco do encoder e sua eci encia, tal como dito na se ca o 2.6. Foi utilizado um disco com precis ao de 10 graus, portanto o disco do encoder possui 36 faixas, sendo que o tamanho do sensor que far aa leitura dos faixas j a estava praticamente no limiar de uma faixa. Dessa forma, a precis ao da parte mec anica onde se acopla o disco e extremamente essencial j a que o sensor que far a a leitura est a em uma regi ao bem limitada. O resultado de tudo isso foi que n ao
42
houve sucesso na constru ca o do suporte, preso com cola quente, gerando oscila co es na leitura dos sensores. Felizmente, o controle por PWM supriu a necessidade dos encoders. Posi c ao dos Sensores Apesar da equipe ter planejado a posi ca o e a disposi ca o ideal dos sensores no chassi, ao testar o rob o, o tempo de resposta dos motores faz com que os movimentos n ao ocorram como foram idealizados. Ao detectar uma curva, por exemplo, o rob o deveria parar imediatamente uma roda e continuar a outra, por em a roda que deveria parar ainda se move por in ercia alguns cent metros, o necess ario para o rob o perder o alinhamento com a faixa. Para resolver esse problema a equipe desenvolveu um sistema de frenagem para as rodas, invertendo sua corrente por alguns milisegundos, determinados empiricamente, sem que elas realmente rodem para tr as. Motores Utilizados Um problema grave encontrado foi em rela c ao aos motores de corrente cont nua utilizados; quando este recebe uma tens ao maior que a nominal ir a gerar mais rota co es, sendo que, na Figura 26 percebe-se a n ao-linearidade da varia c ao de tens ao em rela ca o a rota ca o do motor. Dessa forma, este problema e grave porque o rob o n ao possui um regulador de tens ao para a alimenta c ao ideal dos motores que e 3V. Sendo assim, quando a tens ao das baterias e superior a 3V, a dire ca o do rob o torna-se, de certa forma, inst avel e prejudicial para as leituras dos sensores, inu enciando desde tomadas de decis ao e a realiza ca o da curva, por instabilidade da rota c ao independente dos motores, at e o controle de PWM, j a que este controle foi calibrado a ` tens ao nominal dos motores.
Figura 26: Varia c ao da rota c ao do motor CC em rela c ao ` a tens ao aplicada Fonte: (Borrell, 2009)
43
Loops problem aticos Outro problema importante observado e a que o labirinto pode conter loops problem aticos para o Algoritmo Seguidor de Parede, como por exemplo na Figura 27.
Para entender o problema, basta tomar qualquer referencial inicial em uma das pontas neste labirinto e colocar o ponto nal no interior do quadrado, tal como e indicado pelo vetor na Figura 27. Executando o Algoritmo da Regra da M ao Esquerda, percebe-se que o rob o literalmente entrar a em loop, fazendo o seguinte percurso: left, left, turn, left, left, turn, left, left, turn, e assim continuar a. Se o Algoritmo da Regra da M ao Direita fosse utilizado, o problema persistiria. Dessa forma, este loop deveria ser tratado de outra forma para encontrar o caminho nal. Forma esta que a equipe desconhece at e a data de conclus ao deste documento.
44
Conclus ao
Com o esfor co individual de cada um dos integrantes e o compartilhamento de
conhecimentos e id eias foi poss vel realizar todos os objetivos propostos pela equipe sobre o projeto. Desde uma simples montagem de um chassi para suportar os componentes b asicos do rob o, at e ao ponto de o mesmo ser qualicado como seguidor de linha. Em seguida, o planejamento para possibilitar o rob o a fazer curvas de 90 graus e tomadas de decis oes, incluindo a desenvolvimento de uma placa com a disposi ca o dos sensores, e a constru ca o de um shield sobre o Arduino para minimizar espa co e problemas de conex ao entre componentes. Por m, o rob o foi qualicado como solucionador de labiritos 2D, sendo submetido a v arios testes sobre os mais diversos trajetos e labirintos, como foi proposto no in cio do desenvolvimento do projeto, abrangendo quase a totalidade das poss veis simplica c oes, inclusive loops. Alguns fatores ainda podem ser melhorados no rob o, a m de aumentar seu desempenho e diminuir a necessidade de corre co es da trajet oria. Os principais s ao: constru ca o de um suporte mais apropriado para o ajuste de altura e deslocamento da placa de sensores; elabora c ao de um sistema de controle de tens ao das baterias, fazendo com que chegue uma tens ao mais constante poss vel nos motores e que indique quando elas estejam descarregadas; e tamb em a substitui ca o das rodas atuais (o-road ) por um modelo mais estreito, com o intuito de diminuir o atrito com a superf cie, facilitando a realiza ca o das curvas. Em m, a realiza ca o deste projeto foi de grande satisfa ca o a ` equipe, pois, desde o in cio do curso de Engenharia de Computa ca o os integrantes da equipe possuiam um objetivo em comum: produzir algo concreto, que poderia ser mostrado como fruto de um trabalho longo e dif cil. Principalmente por estes estarem no in cio do curso e terem pouca experi encia com a parte mec anica. Por em, a dedica c ao e esfor co, assim como a curiosidade, de todos os integrantes foram fundamentais a ` realiza c ao bem sucedida deste projeto.
45
Refer encias
M. Yakut Ali, S. G. M Hossain, H. Jamil, e M. Z. Haq. Development of Automated Guided Vehicles for Industrial Logistics Applications in Developing Countries Using Appropriate Technology. www.ijens.org/108702-1919%20IJMME-IJENS.pdf, Mar co 2010. Arduino Team. http://arduino.cc, Abril 2011. Adam Borrell. Tamya Toy Motor Testing. http://www.pololu.com/docs/0J11/all, 2009. Robert Boylestad e Louis Nashelsky. Dispositivos Eletr onicos e Teoria dos Circuitos. LTC, 6a edition, 1999. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, e Cliord Stein. Algoritmos: teoria e pr atica. Campus, 2a edition, 2002. Jeanne trol Dietsch System. e Bill Torrens. Self-Guided Vehicle with Enhanced Con-
http://www.growthconsulting.frost.com/web/images.nsf/0/
40254B68ACBF00CF652572BF00405F85/$File/TI%20Alert%20NA.htm, Janeiro 2007. Timothy Hirzel. PWM. http://www.arduino.cc/en/Tutorial/PWM, Mar co 2011. Flavio Honda. Motores de Corrente Cont nua - Guia r apido para uma especica c ao precisa. Technical report, Siemens, 2006. Irving L. Kosow. M aquinas El etricas e Transformadores. Globo, 4a edition, 1982. Jacob Millman e Christos C. Halkias. Eletr onica - Dispositivos e Circuitos, volume 1. McGraw Hill do Brasil, 1981. Lu s Fernando Patsko. Tutorial Montagem da Ponte H. http://www.maxwellbohr.com. br/downloads/robotica/mec1000_kdr5000/tutorial_eletronica_-_montagem_ de_uma_ponte_h.pdf, Dezembro 2006. Society Of Robots. Sensors - Robot Encoder (Slot, Rotary, Linear). http://www.
societyofrobots.com/sensors_encoder.shtml, 2010.
46
Rodrigo Ferreira De Souza. Fabrica c ao de AGVs (Ve culos Guiados Automaticamente) de Baixo Custo. http://www.mecatronicaatual.com.br/secoes/leitura/700, Janeiro 2011. Richard T. Vannoy. Teaching a Robot to Solve a Line Maze. http://www.pololu.com/ file/download/line-maze-algorithm.pdf?file_id=0J195, Abril 2009.
47
Cronograma
48
Or camento
Na Tabela 5 ser a apresentado o or camento feito para o desenvolvimento do projeto
proposto pela equipe. Todo material utilizado para a produ ca o do rob o do in cio ao atual foi computado no or camento abaixo, incluindo a quantia comprada ap os a falha ou desgaste dos mesmos. Produto Quantidade Transistor TIP31C 4x Transistor TIP32C 4x Transistor BC558 4x Transistor BC548 4x Emissor infravermelho 20x Receptor infravermelho 20x Diodo 1N4007 10x Resistores 20x Protoboard 550 furos 1x Fita isolante 1x Cartolina branca 4x Caixa de redu c ao 1x Motores 2x Rodas 3x Arduino 1x Bateria 9V 4x Pilhas Recarreg aveis 4x Total Valor (R$) 0,87 1,08 0,80 0,70 0,74 0,75 0,10 0,03 14,65 4,70 0,80 57,00 10,00 25,00 100,00 10,00 6,25 R$ 364,75
49
05/03 Pesquisamos o que era preciso para construir um robo, pois todos tinham interesse em projetar um. Como todos ja tinhamos experiencia com Arduino, e ja temos este microcontrolador iremos adotar esse para o controle do robo. Decidimos fazer um robo seguidor de linha capaz de resolver um labirinto formado por segmentos de linhas ortogonais. Analisamos brevemente se o projeto que queremos fazer seria economicamente viavel. Estudamos algoritmos que resolvem labirinto. 09/03 Denimos a lista de componentes que seriam necess arios para infraestrutura: 5 fototransistors (receptor); 5 LEDs infravermelhos (emissor); 2 motores DC at e 6V; 2 Rodas + eixo; Caixa de redu c ao; Chassi para acomoda c ao dos componentes; 1 protoboard; 4 Transistores NPN e PNP (pontes H); Arduino - ATMega328 Duemilanove; Fios de diversas cores; Resistores e Diodos; Fita Isolante e cartolinas brancas (labirinto); Foram aproveitados alguns componentes que j a possuiamos, por exemplo, rodas, caixa de redu c ao e motores DC. 12/03 Projetamos o diagrama eletrico do circuito. Interacao com os sensores, que sao emissores e receptores infravermelho e tamb em a organiza c ao do chassi.
50
Primeiramente projetamos um prot otipo do chassi em CAD para suportar o acoplamento de um protoboard evitando a necessidade de um circuito impresso inicialmente. Constru ca o das pontes H utilizando transistores BC548 e BC558, por em foi detectado insuciencia de corrente nos motores levando ` a procura de um novo modelo de transistor para tal tarefa. 19/03 Foi escolhido, com a ajuda do professor Hugo, transistores do modelo TIP31C e 32C para a constru ca o das pontes H. O circuito foi montado na protoboard e testado o seu funcionamento com o arduino e os motores. Ao medirmos a tens ao nos motores vericamos que ele estava trabalhando com 4V, sendo que o especicado era 3V, ent ao colocamos um diodo 1N4007 na entrada da alimenta ca o para diminuir essa subretens ao. Montamos a primeira placa com os sensores de reet ancia. O circuito foi soldado em uma placa perfurada, contendo 3 pares de fototransistores e LEDs em linha. 26/03 Orienta c ao do Scandelari sobre as especica co es do esquema dos sensores (intensidade em rela c ao a sensibilidade) e tamb em sobre o arranjo dos sensores. Discutimos os algoritmos para resolu ca o do labirinto. Inicialmente tinhamos a id eia de mapear todo o labirinto e, em seguida, aplicar o algoritmo de Dijkstra para encontrar o menor caminho, por em isso exigiria um grande processamento e bastante memoria do microcontrolador. Por em, encontramos umalgoritmo chamado Regra da M ao Esquerda, no qual o robo segue a linha como se fosse um muro, mantendo sempre a m ao esquerda nele. Deste modo, em um labirinto simplemente conexo, com pouco processamento o robo consegue chegar ao nal e, aplicando algumas simplica co es no caminho percorrido, e poss vel determinar o menor caminho obtido durante a explora ca o. 02/04 O circuito foi totalmente montado e testado. O robo conseguiu seguir uma linha, por em tinha diculdade em fazer curvas orotgonais e em andar em linha reta. A diculdade em seguir linha reta se deve ` a defasagem da rota ca o entre os dois motores, ent ao foi levado em conta a possibilidade do uso de Encoders e/ou controle por PWM para sanar tal problema.
51
J a a dicudade em fazer curvas ortogonais e devido a haver apenas 3 sensores, o que n ao permite identicar todas as intersec c oes poss veis. Para isso planejamos a contru c ao de um circuito com 5 sensores. 09/04 Foi testada a hipotese do uso de Encoders para controlar a defasagem nas rota c oes dos motores, para evitar o sambado rob o. Por em a id eia foi totalmente descartada com a utiliza c ao do controle por PWM, j a presente no Arduino, levando a ` equipe grandes avan cos quanto ao controle da defasagem. Em fun ca o da utiliza ca o do PWM e dos novos sensores (5 no total), a programa ca o e tomadas de decis ao na trajet oria do rob o foi totalmente reestruturada. 16-23/04 Apesar do grande avan co alcan cado com os 5 sensores, o robo ainda apresentava um problema em fazer curvas ortogonais. O seu eixo de rota c ao nem a posi ca o dos sensores foram planejados e, deste modo, ao terminar uma curva ele se encontrava muito inclinado em rela c ao a linha, tendo trabalho para se realinhar. Ent ao a equipe come cou a planejar outro chassi e uma nova congura ca o para os sensores, por em intercalando com a escrita da qualica ca o. 07/05 Montagem do novo chassi em acr lico e placa de circuito impresso dos sensores. Para acoplar esta placa ao chassi foram utilizados dois conjuntos de parafusos, porcas e aroelas, xos ao chassi, permitindo o ajuste do seu posicionamento. 09/05 Montagem da ponte H Darlington. Enquanto n ao est a pronto o shield da ponte H, a protoboard ca improvisada acima do Arduino, apoiado pelas baterias. 11/05 Implementa c ao do algoritmo de simplica c ao, ajuste da disposi c ao dos sensores e tamb em a implementa c ao da frenagem do motor como solu c ao para curvas ecientes. 14/05 Novas simplica co es foram descobertas pela equipe, dando maior liberdade e seguran ca na montagem do labirinto. Planejamento de um labirinto denitivo, que ser a utilizado at e o termino do projeto. A utiliza ca o da protoboard suspensa sobre o Arduino est a inuenciando mais do que o esperado sobre o rob o, principalmente nas frenagens pr e e p os curva, principalmente por seu peso e distribui c ao sobre o Arduino, levando a equipe fazer v arios
52
ajustes a m de testar o algoritmo de decis ao e simplica ca o em busca de poss veis erros. 21/05 Foi montado o shield com as duas pontes H, o qual substitui a protoboard e reduz signicamente o volume e peso do rob o. Substituimos o pack com 4 pilhas de Ni-MH (4,8V) por duas baterias de Li-Ion em paralelo (3,7V). Com a nova congura c ao da ponte H a perda de tens ao diminuiu de aproximadamente 1V para aproximadamente 0,3V. 28/05 Montamos outra PCI para colocar os Leds indicadores de dire ca o e um Buzzer para alertar a tens ao na bateria, e tamb em tocar a um m usica ao nal do percurso. 01-02/05 Um componente do carregador das baterias de Li-Ion entrou em combust ao. Como n ao conseguimos identic a-lo, voltaremos a utilizar as pilhas de Ni-MH. Implementamos a dupla verica ca o para cada decis ao a ser tomada. Isto se tornou necess ario para evitar decis oes precipitadas, devido ao m a posicionamento do rob o, identicado durante a verica c ao dos dados salvos na EEPROM do Arduino. Tamb em foi implementado um m etodo para que ele n ao salvasse mais de uma vez a mesma decis ao, para salvar uma nova decis ao ele deve ter vindo de uma reta. O rob o, agora j a pode ser chamado de Dijkstra M ovel (ou UTcom1), resolveu pela primeira vez um labirinto, mas ainda est a inst avel. 03-04/06 Quando as pilhas est ao com a carga completa (aproximadamente 4V), o rob o n ao responde como o esperado, por em, ap os abaixar um pouco a tens ao (aproximadamente 3,7V), ele volta ao normal. Isso devido a curva de resposta dos motores. Foram gravados e editados alguns v deos do rob o percorrendo o labirinto para a apresenta ca o. Tamb em foram denidos alguns t opicos importantes para a apresenta c ao e os assuntos pendentes da monograa.