2014/2015 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Autores: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alexandre Oliveira
(Nº 1120201) |
1120201@isep.ipp.pt |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fábio Azevedo (Nº 1120356) |
1120356@isep.ipp.pt |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
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:
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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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: Nas tabelas encontram-se listados os motores analisados.
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).
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ô.
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.
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.
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:
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.
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:
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.
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.
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.
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:
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.
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.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O software desenvolvido para o
funcionamento do robô de sumo pode ser analisado como
possuindo duas componentes:
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:
De
seguida, apresentam-se os fluxogramas gerais que regem o funcionamento
do robô, apresentando-se com mais detalhe apenas as
funções principais associadas.
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.
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.
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.
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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCB:
Regulador de
tensão:
Aplicação
Android: 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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||