AGV Lutador de Sumo [alfaRAK]



 


LABSIS

2014/2015

Autores:

Alexandre Oliveira  (Nº 1120201)

1120201@isep.ipp.pt

Fábio Azevedo         (Nº 1120356)

1120356@isep.ipp.pt

Introdução

Arquitetura

Hardware

Software

Resultados

Conclusões

Referências

 


  • Introdução

Início


    A competição de robôs de Sumo, consiste numa modalidade semelhante às lutas de sumo, em que existem dois oponentes (robôs), pertencentes à mesma categoria, que lutam entre si com o objetivo de expulsar o seu adversário do ringue. Por cada vitória, a equipa acumula um ponto, sendo esta vencedora se conseguir vencer duas partidas, ou seja, são efetuadas 3 rondas, no máximo.


    Existem diversas formas e tamanhos de robôs lutadores de Sumo, sendo as seguintes categorias as mais conhecidas:

Tabela 1 - Categorias de robôs lutadores de Sumo

Categorias

Altura máxima (cm)

Largura máxima (cm)

Comprimento máximo (cm)

Peso máximo (g)

MEGA SUMO

-

20

20

3000

MINI SUMO

-

10

10

500

MICRO SUMO

5

5

5

100

NANO SUMO

2,5

2,5

2,5

25

LEGO SUMO

-

15

15

1000

HUMANOID

50

20

20

3000


    Embora existam outras categorias intermédias, possuem pouca afluência, por isso, não serão aqui abordadas.

    No que respeita aos ringues, geralmente, estes são pretos, possuindo uma borda branca, sendo de diferentes tamanhos conforme a categoria a que dizem respeito:

Tabela 2 - Categorias de ringues

Categorias

Diâmetro (cm)

Largura da borda (cm)

Distância de Segurança mínima (cm)

MEGA SUMO

154

5

100

MINI /LEGO

77

2,5

50

MICRO SUMO

38,5

1,25

25

NANO SUMO

19,25

0,625

25

HUMANOID

154

5

100

 

     As figuras seguintes ilustram alguns robôs de diferentes categorias:

Figura 1 - Nano Sumo Figura 2 - Mini Sumo Figura 3 - Robô com braço levadiço
                           
Figura 4 - Lego Sumo Figura 5 - Mega Sumo Figura 6 - Humanoid Sumo

 
    Competição:

     Para que seja garantida umacompetição em conformidade com as regras, no início da competição, antes de se proceder à luta entre os robôs, estes são inspecionados, sendo colocados numa caixa com as dimensões padronizados de cada categoria e pesados posteriormente, podendo apenas participar apenas aqueles que se apresentem de acordo com as regras.
      Na fase seguinte da competição, são sorteadas as equipas e iniciam-se as lutas: após o cumprimento formal entre os adversários (tal como acontece com os lutadores de Sumo), cada equipa coloca o seu robô em posição (que é inspecionada) e, caso tudo esteja conforme as regras, é dado o sinal de partida, em que os participantes clicam num botão de start que provocará o início do movimento do robô 5 segundos após isso (caso isso não aconteça, é considerada falsa partida).
       A luta acaba quando um dos robôs sair do ringue e tocar no chão ou caso se verifique um incumprimento das regras. A duração máxima de uma luta é de 3 minutos, podendo ser prolongada caso o júri considere necessário.
      Um aspecto a ter em atenção é o facto de as dimensões máximas de cada categoria acima referida apenas se refere à dimensão máxima que o robô poderá possuir antes de a luta ser iniciada. Uma vez iniciada, o robô poderá possuir um sistema de alavancas e/ou braços que ultrapassem as susas dimensões originais, sem que seja penalizado por isso, no entanto, estes sistemas não poderão ser suscetíveis de danificar o ringue.

      Para dar início à partida, poderá ser usada uma outra abordagem, em que cada robô possui um recetor de infravermelhos e a partida é dada pelo júri, sem existir um atraso no início. Esta alternativa torna a competição mais segura em caso de imprevistos, uma vez que os robôs são programados quer para iniciar o combate, quer para suspenderem os motores quando dado o sinal de infravermelhos pelo júri, no entanto, esta alternativa não foi a abordada no contexto deste trabalho, uma vez que se trata de uma competição amadora, em que o rigor exigido não chega a esse patamar.

      De notar que a categoria Humanoid pode não ser abrangida por todas as regras acima referidas, uma vez que se trata de uma abordagem completamente diferente, em que, por exemplo, um dos requisitos é que apresente uma estrutura semelhante a um humano.

       Existem ainda outras regras relativas a insultos e penalizações das equipas, visto que o objetivo desta modalidade é promover uma competição saudável, em que os principais objetivos se relacionam com o aumento do conhecimento na area da robótica, o divertimento pessoal e avontade de ganhar justamente.

       Conhecidos os pontos essenciais e regras da modalidade, fez-se um estudo das diferentes metodologias utilizadas para deteção de adversários/obstáculos, tendo-se verificado que os sensores infravermelhos e os sensores ultrassónicos são os sensores de eleição dos praticantes desta modalidade, em que a nível profissional se verifica um uso mais corrente de sensores infravermelhos, enquanto os praticantes amadores utilizam sensores ultrassónicos em detrimento dos outros.

        Sendo objetivo da disciplina de LABSI a elaboração de um robô da categoria de Mega Sumo, o alfaRAK enquadra-se nessa categoria, apresentando dimensões de 20x20 cm e um peso aproximado de 2,5 kg.

                                                               

  • Arquitetura

Início

   
    O projeto desenvolvido, no âmbito da disciplina, consiste na elaboração de um robô lutador de Sumo da categoria Mega Sumo, tendo-lhe sido acrescentada uma interface Bluetooth, como é ilustrado na figura seguinte, em que o objetivo desta interface foi, inicialmente, o auxílio nos testes de motores e funcionalidades básicas do projeto, sendo posteriormente adaptada, passando a integrar funções como a de START, STOP e a possibilidade de comandar remotamente o robô. Este controlo por Bluetooth é feito com o auxílio de uma aplicação Android já desenvolvida, mas configurável, uma vez que o objetivo principal do projeto não integra a funcionalidade controlo remoto.

Figura 7 - Arquitetura geral do projeto

  • Hardware

Início

 

    Tal como referido na secção anterior, o sistema desenvolvido é constituído por uma unidade de controlo, diversos sensores (para medição de distâncias e deteção de linhas), bem como um driver de potência para controlo dos motores e uma interface Bluetooth. A escolha de cada elemento deste sistema tornou-se numa tarefa morosa e complicada, uma vez que se pretendia a elaboração de um robô com força, agilidade e inteligente face ao meio externo, tendo que se ter analisado várias variáveis e tentado conjugar todo os componentes de forma a garantir o funcionamento pretendido.

     Motores:
      
Iniciando a análise pelos motores escolhidos, sendo estes um dos elementos mais importantes para o funcionamento de todo o projeto, foi determinado que os de 12 V seriam os mais indicados, visto que proporcionavam uma relação velocidade/torque mais adequada à necessidades do projeto que a verificada para os motores de 6 V, apesar de os últimos apresentarem um consumo menor. Outro fator a ter em conta foi a caixa de engrenagens, tendo-se optado por motores distribuídos pela Pololu
uma vez que possuem uma caixa de engrenagens metálica e uma maior resistência a contactos bruscos e mudanças bruscas de velocidade.

        Nas tabelas encontram-se listados os motores analisados. 

Tabela 3 - Motores 12 V Tabela 4 - Motores 6 V

Motor 37mm diâmetro (12V)

 

Motor 20mm diâmetro (6V)

Tipo de engrenagem

Velocidade máxima (RPM)

Força máxima

(kg-cm)

Corrente

Máxima (5 A)

 

Tipo de engrenagem

Velocidade máxima

Força máxima (kg-cm)

Corrente

Máxima (3.3 A)

19:1

500

6,0

 

29:1

450 RPM

1.8

30:1

350

7,9

 

56:1

250 RPM

3.2

50:1

200

12,2

 

73:1

180 RPM

4.3

70:1

150

14,4

 

154:1

90 RPM

8.6

100:1

100

15,9

 

 

 

 

 

131:1

80

18,0

 

 

 

 

 

                            
        

Dentro da categoria dos motores de 12 V, a possibilidade de escolha restringiu-se para aqueles que apresentavam uma caixa de engrenagens que proporcionasse um melhor desempenho para os objetivos estabelecidos. Tratando-se de um robô que se pretende que seja ágil, e como este pertence à categoria de Mega Sumo, o peso máximo permitido é de 3 kg, o motor considerado mais indicado seria o 19:1, já que conferia velocidade e força ao robô (caraterística que se verificou na visualização de alguns torneios oficiais).

Figura 8 - Motor 12 V Figura 9 - Motor 6 V


    Sensores de distância:

Depois de selecionados os motores, seguiu-se o estudo dos sensores de distância. A ideia base consistia no uso de, pelo menos, dois sensores, de forma a simular a existência de "dois olhos", para que seja possível ao robô identificar a direção em que deve seguir para ir de encontro a um obstáculo, isto é, uma proximidade maior de sensor esquerdo ou do sensor direito, implica que o robô terá de se orientar para esse lado para que fique alinhado com o obstáculo. Quando a diferença entre as distâncias medidas na esquerda e na direita não é significativa, considera-se que o obstáculo se encontra à frente do robô e alinhado com este, conseguindo-se assim uma melhor orientação face aos movimentos do adversário.

Como referido anteriormente, verifica-se uma preferência, para este tipo de medições, pelos sensores óticos (infravermelhos) e ultrassónicos, tendo cada tipo de sensores pontos a favor e pontos que os tornam menos eficazes.

Os sensores infravermelhos são muito bons e rápidos, dado que emite um sinal mais linear (em comparação com os ultrassónicos), mas a sua leitura é influenciada pela cor do obstáculo e luminosidade do meio. Quanto aos ultrassónicos, verifica-se um maior tempo de resposta e a distância medida é bastante influenciada pelo ângulo de reflexão da onda sonora no obstáculo, verificando-se também problemas de interferência quando se utilizam dois sensores relativamente próximos a apontar na mesma direção. 

A escolha recaiu, então, pelos sensores de infravermelhos, sendo a sua leitura mais fácil e rápida (uma vez que podem encontrar-se em constante funcionamento) e não se verificando grandes interferências com o uso de dois sensores relativamente próximos.

Dos vários modelos encontrados de sensores infravermelhos, teve-se em conta os seus limites máximo e mínimo de operação, para que se pudesse retirar o melhor proveito possível do ringue e desempenho do robô.

Tabela 5 - Sensores de distância infravermelhos

Sharp GP2Y0A60SZLF

(5 V / 3 V)

Sharp GP2Y0A02YK0F

Sharp GP2Y0A21YK0F

Sharp GP2Y0A41SK0F

Sharp GP2Y0A51SK0F

10 – 150 cm

20 – 150 cm

10 – 80 cm

4 -30 cm

2 – 15 cm

 

Figura 10 - Sensor GP2Y0A60SZLF com circuito integrado

Com um ringue de 154 cm de diâmetro, utilizou-se o modelo Sharp GP2Y0A60SZLF de 5 V, uma vez que o sistema de controlo é alimentado com 5 V e pelo facto de este ter um maior intervalo de distâncias. 

Depois desta avaliação, é necessário fazer-se um estudo do comportamento dos sensores em função da distância. Para tal, desenvolveu-se um pequeno código, para facilitar o registo dos valores de AD, que consite em fazer 50 leituras dos sensores e a respetiva média dos valores lidos. A função resultante encontra-se representada na figura seguinte.

Figura 11 - Resposta dos sensores de distância


    Sensores de linha:

Para a deteção das linhas, e seguindo a ideia dos AGV seguidores de linha, optou-se por utilizar vários sensores TCRT5000L, sendo este constituído por um emissor de infravermelhos e um fototransístor como detetor. Como a base do robô é quadrada, é importante a capacidade de detetar as linhas em cada um dos vértices do quadrado, para que este não saia do ringue por iniciativa própria. Para além de se querer detetar os limites do ringue, e para completar a nossa estratégia, achou-se ser necessário a deteção lateral do obstáculo, ou seja, seria necessário conseguir perceber se o robô estaria a ser empurrado por algum dos lados. Dessa forma, optou-se por utilizar 7 sensores TCRT5000L, em que quatro deles são colocados na base do robô e os restantes nas laterais e na traseira do robô.

Esta solução foi a adotada, dado o baixo custo de implementação e pelo facto de permitir a deteção do adversário quando este se encontra encostado a um dos pontos não frontais do robô, permitindo assim a este esquivar-se dos ataques.

No entanto, estes sensores podem ser usados de duas formas, em que uma delas consiste numa montagem analógica para a medição de pequenas distâncias (2,5 a 3 cm), que foi usada nos sensores laterais, e outra montagem digital, em que através de uma montagem comparadora obtêm-se os dois estados lógicos (0 ou 1).

Como a deteção das linhas é uma das funções mais importantes para o lutador de Sumo se manter na pista de combate, achou-se necessário fazer a sua deteção através de interrupções, isto é, utilizando a montagem digital em que o preto é o estado lógico 1 e o branco, o 0.

Os circuitos utilizados são muito simples, como se pode verificar nas figuras seguintes.

Figura 12 - TCRT5000L Figura 13 - Montagem analógica Figura 14 - Montagem com comparador



     Ponte H:

Para o controlo dos motores, sendo estes componentes com consumos elevados para ser alimentados por um simples microprocessador, torna-se necessário utilizar integrados de potência designados por Pontes H.

A sua escolha requer uma atenção redobrada, uma vez que estas tem de ser capazes de aguentar a corrente máxima dos motores e de serem compatíveis com o microcontrolador, isto é, valores de referência iguais para os mesmos estados lógicos. Para complementar, também existem algumas que disponibilizam um pino que permite a recolha de informação relativa à corrente que está a ser consumida nos motores, convertida num nível de tensão, permitindo assim a sua leitura através de um AD.

Sendo assim, a informação da corrente dos motores é interessante para a monitorização do funcionamento do robô, de forma a ser possível verificar uma situação de esforço em que o adversário é mais forte, podendo adaptar a tensão nos motores consoante o peso e força do obstáculo. As Pontes H utilizadas foram as MC33887. Estas possuem as seguintes características:

    • 10kHz de Frequência máxima de PWM;
    • Feedback da corrente;
    • Até 5 A de corrente contínua;
    • Até 7.8 A de corrente de pico;
    • Funciona com alto desempenho entre os 5 e os 28 V.

Dado isto, houve necessidade de se utilizar uma ponte H para cada motor, já que com apenas uma não se conseguia tirar proveito da força máxima dos dois motores em conjunto, uma vez que esta não consegue aguentar a corrente do conjunto dos dois motores, acabando por fazer shutdown, e pelo facto de não se poder inverter o sentido destes.


Figura 15 - MC33887 Figura 16 - Circuito recomendado Figura 17 - Tabela de estados
 
     Microprocessador:

Uma vez escolhidos todos os periféricos, escolheu-se um microprocessador da família ATmega com as características externas (pinout) necessárias para satisfazer as necessidades dos periféricos utilizados.

De forma resumida, sabe-se que o microprocessador terá de ter os seguintes requisitos mínimos:

    • 2 AD para medir a distância;
    • 3 AD para detetar o contacto lateral;
    • 2 AD para o feedback da bateria;
    • 4 pinos com interrupções para detetar a linha;
    • 4 pinos para assinalar LED dos estados de cada sensor de linha;
    • 4 PWM para o controlo dos motores;
    • Sem esquecer de 1 Timer para funcionamento mínimo do led pisca.       

Desta forma, optou-se pelo ATmega1284P, com 8 AD disponíveis, 4 Timers com 2 PWM cada um, 2 portas série e um grande número de pinos digitais, sendo ele capaz de satisfazer todas as nossas necessidades.


Figura 18 - Pinout ATmega1284P


    Bluetooth: 

Como complemento ao projeto realizado, utilizou-se o dispositivo Bluetooth HC-06, que comunica através de uma porta série com o microprocessador, trocando dados e ordens através de um dispositivo móvel com uma interface em Android, que será abordada com mais detalhe no capítulo Software.

 
Figura 19 - HC-06



    PCB:
  

Inicialmente desenvolveu-se uma placa de circuito impresso com o objetivo desta ser uma placa de desenvolvimento, simples e de fácil utilização, onde se deixavam disponíveis todos os pinos do microprocessador (à exceção dos pinos associados ao cristal). Nesta encontra-se todo o conjunto de elementos para um sistema mínimo de hardware, como condensadores, pinos de programação, botão RESET e LED indicador de alimentação. Além destes elementos foram também adicionados um cristal de 16 MHz e um regulador de tensão (7805).

Para além de ter as características de uma placa de desenvolvimento, o seu tamanho foi pensado de forma a esta poder encaixar facilmente numa breadboard com tamanho padrão.

Nas figuras abaixo está representado o esquema de ligações da placa de desenvolvimento, bem com o seu desenho.


Figura 20 - Esquemático 1 Figura 21 - Esquemático 2
               
Figura 22 - PCB

De forma a complementar o projeto, foi desenvolvida uma segunda PCB onde foram introduzidos todas as ligações necessárias para o funcionamento dos diversos sensores, bem como a parte de potência para controlo dos motores. Nesta placa, encaixa a de desenvolvimento, responsável pelo controlo de todo o sistema. Note-se que para o desenho das placas teve-se de ter em consideração alguns aspetos importantes para o bom funcionamento do sistema:

    • Os condensadores têm de ser colocados perto dos componentes correspondentes, ou seja os condensadores pertencentes ao microprocessador encontram-se próximos do mesmo, no respetivo pino, bem como os condensadores do regulador de tensão e das Pontes H;
    • Os LED pisca e indicadores de linha são ligados no estado lógico 0, uma vez que o ATmega tem mais capacidade de entrada de corrente do que saída da mesma;
    • As pistas dos motores e das linhas de alimentação principais são dimensionadas com tamanho superior, na placa de potência, de maneira a permitir a passagem de mais corrente;
    • Além de serem dimensionadas com um tamanho superior foram estanhadas para aumentar a superfície das mesmas, pela mesma razão que o ponto anterior.

 

Tendo em atenção estes pontos, e respeitando os circuitos aconselhados pelos fabricantes do microprocessador e das Pontes H, desenvolveu-se um sistema constituído por duas placas encaixadas entre si, uma de controlo e outra de periféricos, estando esta abaixo representada.

Figura 23 - Esquemático 1 Figura 24 - Esquemático 2
                 

Figura 25 - PCB 1 Figura 26 - PCB 2

Tendo em consideração a tabela de estados das pontes H, estas encontram-se inicialmente configuradas para o modo Freewheeling Low (com os OCRxx desativados), não podendo este ser alterado, uma vez que possui os níveis de tensão fixos.

Outro aspeto a considerar foi a utilização do LM324 como comparador para os sensores de linha. Uma vez que se precisavam de 4 comparadores, optou-se por utilizar este integrado de quatro entradas resolvendo assim o problema inicial.

Quanto à fonte de alimentação utilizada, foram usadas baterias Li-PO Zippy de 5000 mAh de 11,1 V, o que corresponde a uma tensão de cerca de 12,5 V quando a carga está completa.

Figura 27 - Bateria

 

  • Software

Início

O software desenvolvido para o funcionamento do robô de sumo pode ser analisado como possuindo duas componentes:

    •  Sequencial;
    • Máquina de estados. 

Pode considerar-se que o código-fonte apresenta uma componente sequencial, na medida em que, durante um ciclo normal de funcionamento, há uma sequência de ações a ser executadas, sendo dada prioridade a umas sobre outras. Por exemplo, no início do seu funcionamento, as ações apenas são executadas aquando da ativação do interruptor correspondente, sendo a sequência adotada: verifica linhas > procura > segue > leitura do esforço dos motores.

Quando ao funcionamento como máquina de estados, este ocorre devido à tomada de decisões pelo microprocessador de acordo com fatores externos, tais como:

    •  Posição da linha detetada;
    • Deteção de objeto na lateral ou traseira do robô;
    • Distância a um objeto (ou a não deteção deste);
    • Valor do esforço dos motores.

De seguida, apresentam-se os fluxogramas gerais que regem o funcionamento do robô, apresentando-se com mais detalhe apenas as funções principais associadas.

Main
Figura 28 - Fluxograma MAIN


A função Main apresenta-se como um exemplo notório das duas componentes referidas acima relativas ao código-fonte, sendo sequencial na verificação das funções a executar, mas funcionando como uma máquina de estados nas decisões que vai tomando em função das variáveis auxiliares.

Procura Ler_Lados
Figura 29 - Fluxograma PROCURA Figura 30 - Fluxograma LER LADOS

    A função Procura verifica se existe algum objeto visível num raio configurado. É também verificada a existência de um objeto que se encontre em contacto com o robô numa posição não frontal, para que este possa proceder ao ajuste da sua posição relativa.
 
Segue Sensing
Figura 31 - Fluxograma SEGUE Figura 32 - Fluxograma SENSIN

    Em Segue, o robô adota um comportamento que depende do comportamento do objeto que detetou, tentando sempre imitar o seu movimento (dentro de certos limites), aproximando-se progressivamente deste. Numa situação em que este se encontra muito próximo do objeto, a função Sensing tenta garantir que o robô não se encontre num esforço excessivo por demasiado tempo.


Desvia_linha
Figura 33 - Fluxograma DESVIA LINHA

    Em Desvia_linha, o robô tenta adotar um comportamento que lhe permita permanecer dentro do ringue de combate, sendo estas decisões auxiliadas pelos valores lidos e tratados na função PCINT2_vect.


ler_AD timer bluetooth
Figura 34 - Fluxograma LEITURA AD Figura 35 - Fluxograma TIMER Figura 36 - Fluxograma funções relativas ao BLUETOOTH

     As funções acima representadas, apesar de não desencadearem nenhuma acção por parte do robô, são fundamentais para a obtenção de valores e grandezas que irão condicionar o seu comportamento.

     Dada a importância destas funções, a sua configuração é também importante para o correto funcionamento do robô:

Tabela 6 - Configurações

TIMER 0 

T = 128 us
f = 7,8 kHz

TCCR0A =      ((1<<WGM01) | (1<<WGM00) | (1<<COM0B1) | (1<<COM0A1));     

Fast PWM
TOP = 0xFF
Clear OC0A on Compare Match, Set at Bottom (non-inverting mode)

TCCR0B =      (1<<CS01);

Pre-scaler = 8

TIMER 1

T = 2 ms    
f = 500 Hz

TCCR1A =      (1<<WGM10); 

PWM Phase and Frequency Correct
TOP = OCR1A

TCCR1B =      ((1<<WGM13) | (1<<CS11) | (1<<CS10));

PWM Phase and Frequency Correct
TOP = OCR1A = 250
Pre-scaler = 64

TIMSK1 =      (1<<OCIE1A);

Ativar interrupção do Timer

TIMER 2 

T = 128 us
f = 7,8 kHz

TCCR2A =      ((1<<WGM21) | (1<<WGM20) | (1<<COM2B1) | (1<<COM2A1));     

Fast PWM
TOP = 0xFF
Clear OC2A on Compare Match, Set at Bottom (non-inverting mode)

TCCR2B =      (1<<CS21);

Pre-scaler = 8

ADMUX  =      (1<<REFS0);

Referência de AD é o Avcc 

ADCSRA =      ((1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0));

ADEN ativa a conversão do AD
Fator de divisão = 128
f_AD =  125 kHz

PCICR  |=     (1<<PCIE2);

Enable do Pin Change Interrupt 2

PCMSK2 |=     ((1<<PCINT20) | (1<<PCINT21) | (1<<PCINT22) | (1<<PCINT23));

Enable da Interrupção dos pinos associados aos sensores de linha

UBRR0H =      0;

Baud rate = 9600 @ 16 MHz
Erro = 0,2%

UBRR0L =      103;

UCSR0A =      0;

 

UCSR0B =      (1<<RXCIE0) | (1<<RXEN0) | (1<<TXEN0);

Enable de interrupção de receção
Enable receção
Enable transmissão

UCSR0C =      (1<<UCSZ01)  | (1<<UCSZ00);

8 bits
1 stop bit

EIMSK  |=     (1<<INT0);

Enable INT0

EICRA  |=     (1<<ISC00) | (1<<ISC01);

Interrupção Rising Edge

sei();

Enable geral de interrupções

    Embora não fosse objetivo inicial da proposta realizada, foi também adicionada uma opção de controlo remoto do robô, sendo permitidas algumas configurações e controlos adicionais ao normal funcionamento deste. Este controlo é feito por Bluetooth através de uma aplicação Android já desenvolvida, onde apenas foram configurados os comandos a enviar/receber que satisfizessem os requisitos.

blu1 blu2
Figura 37 - Controlo remoto Figura 38 - Configurações remotas

   Na parte de controlo remoto, é possível controlar o robô com total liberdade, à semelhança do que acontece com um carro telecomandado, tendo-se a opção de selecionar a velocidade a que se pretende operar o robô.

    No que respeita às configurações remotas do robô, possui-se as seguintes opções:

  • LADO: permite ativar/desativar a leitura dos sensores laterais que verificam o contacto não frontal com um obstáculo, já que, dada a sua grande sensibilidade à luminosidade, o seu comportamento pode ficar comprometido;
  • CONF: verifica em que tipo de ringue o robô se encontra (preto com linhas brancas ou vice-versa);
  • START: inicia o comportamento automático do robô após 5 segundos (semelhante ao botão de start);
  • LER: recolhe informação relativa ao estado de fucnionamento do robô;
  • STOP: pára a sequência de funcionamento;
  • INIT: inicia o comportamento automático do robô de imediato;
  • LENTO, NORM, RÁPID: modo de funcionamento;
  • 100, 175, 255: velocidade para teste de valor do sensing da corrente dos motores;
  • RST: reset do sistema em caso de emergência, ou para corrigir uma situação crítica (por exemplo, falha do botão de STOP). Apenas desencadeia um comando quando clicado 2 vezes, por razões de segurança.

   

  • Resultados

Início

 

Video demonstrativo

     Protótipo Final

 
           

  • Conclusões

Início

    Uma vez concluído o projeto proposto, e com a informação relativa ao funcionamento do robô recolhida ao longo do semestre, podem ser evidenciados alguns aspetos relevantes já implementados e algumas sugestões para um melhor desempenho deste.

    Sensores de distância:
        A utilização de dois sensores frontais para medição de distância facilitam o posicionamento e respetiva correção do mesmo face ao obstáculo dentro do ringue.   
        O facto de terem sido escolhidos sensores infravermelhos para o efeitos, traduziu-se numa vantagem face aos sensores ultrassónicos, na medida em que os primeiros são menos sensíveis a variações de posição do robô, quase não se verifica conflito entre as leituras de ambos e a sua resposta é bastante mais rápida, já que a velocidade da luz é bastante superior à do som. Por outro lado, estes demonstraram ser bastante sensíveis a variações de luminosidade e à cor dos obstáculos.

    Sensores de linha:
        Para a deteção da linha que delimita o ringue, o uso destes sensores associados a interrupções do microprocessador, permite uma acção corretiva quase imediata, minimizando a probabilidade de falhas na deteção dos limites. No entanto, necessitam de um circuito comparador, tendo este que ser ajustado sempre     que se verifiquem variações críticas de luminosidade/cor.

    Sensores laterais:
        Embora seja uma solução barata e que permitia uma grande melhoria de desempenho do robô, o facto de se encontrarem demasiado expostos ao meio externo, faz com que as leituras obtidas possam não ser fiáveis. Apenas permitem uma leitura a uma altura bastante definida e a uma distância muito limitada, sendo que os objetos pretos são quase invisíveis para estes.
        Numa solução futura, aconselha-se a sua substituição por sensores não tão sensíveis aos fatores externos e com gamas de medição maiores (como as soluções apresentadas no capítulo de Hardware) ou por outro tipo de sistema de deteção de contacto.

    Motores:
        
A escolha dos motores foi a mais difícil e demorada, tendo sido escolhidos os que apresentavam melhor relação velocidade/torque.   
        Após alguns testes de tração, verificou-se não era possível a utilização destes em velocidade máxima durante o seu funcionamento normal, devendo-se ao facto de a inércia do robô, quando este detetava a linha, impedia uma resposta eficaz do mesmo. Assim, numa solução futura, uma gama de motores com menor velocidade e maior torque poderá constituir uma solução mais interessante.

    Estrutura/Peso:
        Numa fase inicial, o receio de ultrapassar o peso máximo permitido, levou a que a estrutura desenvolvida fosse demasiado leve, tendo uma maior concentração de peso na parte frontal. Isto conduzia a perdas significativas de tração, o que se traduzia num desperdício de recursos e força dos motores.
        A adição de peso na zona das rodas do robô permitiu a minimização desse efeito, resultando numa melhoria de desempenho deste.
        A estrutura do robô foi também pensada de forma a ser facilitada a troca de baterias e a reprogramação do microprocessador.

    PCB:
        O primeiro contacto com o desenvolvimento de placas de circuito impresso foi importante para o desenvolvimento do projeto, uma vez que permitiu o contacto e criação de novo hardware que satisfizesse as necessidades do projeto.       
        As placas desenvolvidas foram uma das primeiras preocupações do projeto, dada a sua finalidade, onde não era viável uma montagem de circuito com recurso a uma breadboard, tendo, para isso, sido necessário um estudo/esforço inicial adicional para prever situações e desenhar as placas com caraterísticas         versáteis e, ao mesmo tempo, adaptadas à situação.

    Regulador de tensão:
        A sua utilização é vantajosa quando as necessidades do circuito são baixas, no entanto, quando a complexidade de sensores aumenta (e as necessidades energéticas do sistema), as perdas por aquecimento são bastante consideráveis, reduzindo a eficiência do sistema.                       
        O uso de um conversor DC-DC numa fase posterior seria uma mais valia para o circuito de alimentação do sistema, 

    Aplicação Android:
        A utilização de uma aplicação configurável assumiu-se bastante vantajosa na monitorização e debug do estado/problemas do sistema na fase de desenvolvimento, não sendo necessário o recurso a ferramentas como o multímetro para verificação de pequenos erros/situações anómalas.

    Dado o enquadramento da disciplina na distribuição do curso, o tempo para desenvolvimento do projeto foi bastante limitado, não permitindo o aperfeiçoamento do mesmo. No entanto,de uma forma geral, os objetivos requeridos foram cumpridos, tendo sido quase todo o hardware construído de raíz, bem como o desenvolvimento do software, o que proporcionou uma aprendizagem bastante completa em ambos os campos.

  • Referências

Início

[1] http://www.robothon.org/robothon/sumo.php

[2] http://robogames.net/rules/all-sumo.php

[3] http://www.robotchallenge.org/fileadmin/user_upload/_temp_/RobotChallenge/Reglement/RC-Sumo.pdf

[4] https://www.sparkfun.com/products/9453

[5] http://www.freescale.com/files/analog/doc/data_sheet/MC33887.pdf

[6] http://www.atmel.com/images/doc8059.pdf

A última verificação bibliográfica foi realizada a 22-6-2015.

Início