Rel� by kAzB31A

VIEWS: 24 PAGES: 47

									     UNIVERSIDADE SALVADOR – UNIFACS
    PROGRAMA DE GRADUAÇÃO EM ENGENHARIA
              ENGENHARIA MECATRÔNICA




                   Bruno Soares Rabelo

         Bruno Eurico Ferreira Guimarães Cavalcanti

              Ícaro Hagge Cafeseiro Cardoso

                  Peterson Caíres Aguiar




                 RELATÓRIO FINAL
                 ROBÔS AUTONOMOS




                       Relatório técnico apresentado ao curso de engenharia
                       mecatrônica da Universidade Salvador - UNIFACS
                       como avaliação parcial do projeto interdisciplinar
                       ARHTE.




                         Salvador
                          2008
                                                                 1
Grupo Morph
                                                         Sumário

Introdução ..................................................................................................................... 3
Aspectos Administrativos ......................................................................................... 4
Cronograma .................................................................................................................. 7
Tabela de custos .......................................................................................................... 9
Mecânica ...................................................................................................................... 10
Eletrônica ..................................................................................................................... 21
Programação............................................................................................................... 33
Referências ................................................................................................................. 35
Anexos .......................................................................................................................... 36




                                                                                                                                  2
 Grupo Morph
                                  Introdução


      O ARHTE nos ensinou um pouco sobre robôs autônomos durante o
primeiro semestre do projeto, nos mostra também as diferentes aplicações da
Engenharia. O primeiro semestre de trabalho nos serviu de rascunho para um
novo projeto mais robusto, mais aplicado e sofisticado. A equipe utiliza teorias
físicas, matemáticas e lógicas em seu projeto, tentando esquecer um pouco a
força física como principal objetivo e dando lugar á força do intelecto.
      O autônomo possui uma gama de sensores que ajudam a tratar ao
Maximo as diversas possibilidades de ações e reações durante o combate.
Para todos os casos não adianta ter força e desperdiçar, não adianta potência
e não saber usar, para isso a Morph dedicou sua pesquisa não só para a
robustez do projeto, mas principalmente para sua inteligência. Estamos
apostando todas as fichas em inteligência, acreditamos que com o empenho
em intelecto teremos a possibilidade de utilizar melhor a física já estudada
anteriormente.
      Padrões e paradigmas foram quebrados, observamos inúmeros
combates, analisamos cada vitoria e cada derrota, para juntarmos os erros e os
acertos e com base nestes dados fazermos o nosso projeto. O planejamento e
a organização são dois fatores de suma importância, que serão abordados com
ênfase durante o decorrer desde documento.
      Tópicos como a eletrônica, física, lógica, programação, inteligência,
orçamento e a organização da equipe durante a confecção do projeto serão
abordados no decorrer deste relatório.




                                                                              3
Grupo Morph
                    Aspectos Administrativos


 1. Organização da Equipe:
          Para a construção de qualquer tipo de projeto, ligado a qualquer
    ramo de estudo, não é necessário apenas um bom projeto teórico, mas
    também é de suma importância uma boa organização em todos os
    aspectos que envolvem a confecção do projeto desde o planejamento à
    execução,   passando      antes    pela   pesquisa,     desenvolvimento     e
    amadurecimento de idéias.
          De    acordo   com    a     pesquisa    da   equipe      sobre   modelos
    organizacionais decidimos seguir o programa de qualidade total 5S, que
    gerencia todos os aspectos administrativos através de 5 (cinco) sensos:
        SEIRI – Senso de utilização, organização, arrumação e seleção;
        SEITON – Senso de ordenação, Arrumação e Sistematização;
        SEISOU – Senso de saúde e limpeza;
        SEIKETSU – Senso de saúde, asseio e padronização;
        SHITSUKE        –     Senso     de      autodisciplina,    Educação    e
          Comprometimento;
          Com a aplicação destes sensos a Morph estará preparada para
   lidar com a maior parte dos problemas, sejam eles de cunho
   administrativo ou técnico. As soluções para tais problemas serão mais
   eficazes, econômicas minimizando também o tempo para a execução
   dos passos da confecção do projeto.


          Na teoria sobre os sensos, encontramos características que serão
   aplicadas em situações e em problemas específicos, tais como:
      Senso de utilização:
          O senso de utilização analisa os excessos e desperdícios de
   materiais, equipamentos, ações administrativas e ou burocráticas, ou
   seja, fatores que não serão necessários em determinadas situações e
   que a diminuição ou extinção destes fatores acarretarão num melhor
   desempenho da equipe.


                                                                                 4
Grupo Morph
      Senso de ordenação:
           Ordem é sinônimo de organização, fator de suma importância
   para o desenvolvimento de todo o tipo de projeto, com organização
   otimiza-se tempo, custos e aumenta a qualidade da confecção do
   projeto.
      Senso de limpeza e Senso de saúde:
           Condições de limpeza em todos os aspectos inclusive o visual e o
   sonoro é de extrema importância. Condições inadequadas do ambiente
   de trabalho comprometem a saúde física e mental das pessoas
   envolvidas no projeto, interferindo na qualidade e tempo de execução do
   projeto.
           A equipe mais uma vez está em consonância com o senso, pois o
   projeto está sendo executado com o apoio dos Laboratórios NMR e NMA
   da UNIFACS (Universidade Salvador), os quais estão dentro dos
   padrões de saúde e segurança, nos oferecendo uma ótima infra-
   estrutura de trabalho.
      Senso de Autodisciplina:
           Uma pessoa pode ser dotada de inúmeras habilidades, mas sem
   a autodisciplina estas habilidades podem se tornar inúteis. Este senso
   estabelece um caráter ético, profissional, social e moral, para que a
   harmonia da equipe seja mantida.
           Os atributos humanos tratados neste senso são: humildade,
   respeito pelo outro, confiança no outro, espírito de equipe e humor.
   Estes      atributos   se   obedecidos   são   refletidos   diretamente   no
   desempenho e conforto da equipe no andamento e conclusão do projeto.
       A ausência destes sensos acarretará em inúmeros atrasos no projeto
   tais como:
       a. Desorganização;
       b. Atraso do projeto;
       c. Tarefas incompletas;
       d. Estouro de cronograma;
       e. Ineficiência;



                                                                              5
Grupo Morph
 2. Planejamento Técnico:
          Depois das definições dos sensos tomados como base para o
   projeto, faz-se necessário uma organização técnica para a confecção do
   robô, para que as etapas e dificuldades sejam vencidas de forma rápida
   e hábil. Passos como:
             Cargos e Funções individuais;
             Desenvolvimento do projeto;
             Pesquisas e Análises de problemas;
             Execuções das tarefas;
             Testes;
             Preparação para eventos.
      Definir cargos e funções é importante, pois assim cada um trabalha
       no que mais se identifica, tornando mais prazerosa a confecção e
       consequentemente otimiza o tempo de execução do projeto.
      O desenvolvimento de um projeto é muito importante, pois é no
       projeto que se define cada detalhe, função e previsão de problemas e
       dificuldades.
      O procedimento de pesquisa e análise de problemas deve ser
       executado com bastante cautela, pois são por esses problemas que
       muitos projetos ficam inativos.
      A execução das tarefas deve ser feita dentro dos padrões de
       organização já citados anteriormente, e ter convicção nas decisões à
       serem tomadas é um fator muito importante para o sucesso do
       projeto.
      Na fase de testes é quando se põe em prova, toda a organização,
       segurança, habilidade, dedicação aplicada no projeto. É a hora de
       possíveis correções e adaptações do projeto.
      Depois de vários testes deve-se pensar na preparação do evento,
       analisando fatores que possam influenciar na hora da apresentação,
       como luminosidade, ruídos, poluição sonora, dentre outros.




                                                                         6
Grupo Morph
                Cronograma


   Data                         Atividades

 26/01/2009        Reunião da Equipe - Inicio do Projeto

 27/01/2009      Reunião da Equipe – Desenho do projeto

 29/01/2009         Reunião da Equipe – Esquema 3D

 31/01/2009                Compra do alumínio

 03/02/2009        Compra de Componentes Eletrônicos

 04/02/2009   Reunião para montagem da mecânica do projeto

 05/02/2009   Reunião para montagem da mecânica do projeto

 09/02/2009                 Inicio da eletrônica

 20/02/2009        Compra de Componentes Eletrônicos

 23/02/2009                 Inicio do algoritmo

 27/02/2009                 Compra das rodas

 02/03/2009           Compra de parafusos e porcas

 11/03/2009      Reunião da equipe para assuntos gerais

 24/03/2009        Produção da placa circuito impresso

 27/03/2009       Ida à suburbana para compra do motor

 30/03/2009        Compra de componentes eletrônicos

 31/03/2009         Reestruturação do circuito elétrico

 02/04/2009                Testes dos motores

 03/04/2009           Reunião para inicio do relatório

 09/04/2009     Reunião para correção de sensores de luz

 20/04/2009              Teste de algoritmo base

 23/04/2009            Reunião de assuntos gerais

                                                             7
Grupo Morph
 27/04/2009   Reunião para reformulação da mecânica

 29/04/2009      Construção de sensores de toque

 04/05/2009      Reunião para teste de algoritmo

 07/05/2009    Compra de componentes eletrônicos

 20/05/2009         Manutenção dos sensores

 31/05/2008          Finalização do relatório




                                                      8
Grupo Morph
                                   Tabela de custos
                       Material             Quantidade       Preço unid. (R$) Preço Total
 1   PIC 16F877A                                         6                  12             72
 2   L298                                                2                  11             22
 3   Transistores TIP 41                                 4                   2              8
 4   Transistores TIP 42                                 4                 1,5              6
 5   Resistor 1W                                         8                0,25              2
 6   Diodo 1N                                            8                0,25              2
 7   Socket 40 Pinos                                     1                   4              4
 8   Percloreto de Ferro                                 1                   3              3
 9   Barra Rosqueada                                     1                   3              3
10   Forma de bolo (base)                                1                   5              5
11   Tarugo de Aluminio (31mm Diametro)                  1                 7,5            7,5
12   Borracha p/roda (1m)                                1                   8              8
13   Capacitor Ceramica 22pf                             4                0,25              1
14   CI Max 232                                          1                 3,5            3,5
15   Capacitor Eletrolítico                              4                 0,5              2
16   Bateria Selada 12v / 1,3A                           1              35,62          35,62
17   Bucha de Nylon (D = 80mm e d = 50mm)                                                   0
18   Flange Tigre 1"                                     2                4,82           9,64
19   Flange Tigre 1/2"                                   2                2,98           5,96
20   Solda PVC 75g                                       1                3,35           3,35
21   NIP Tigre 1/2"                                      1                0,54           0,54
22   Bilha de Metal 1/2"                                 2                0,71           1,42
23   Soquete 6 pinos                                     1                   1              1
24   Barra de Pinos                                      6                   3             18
25   CD4093 BCN                                          6                 1,5              9
26   74LS14                                              2                 2,5              5
27   Soquete 14 pinos                                    8                 0,5              4
28
#                     Totais                           79             118,27          242,53
#    Quantia Individual:                      ##########             29,5675         60,6325




                               Outros materiais utilizados

                        MATERIAL                                      QUANTIDADE
Emborrachado EVA                                              2m
Fita Crepe                                                    1 Rolo
Abraçadeiras de Nylon                                         1 Pacote
Sensores Ópticos                                              1 unid.
Bateria de Carro Elétrico 12 V                                1 unid.
Conectores de Gabinete de Computador                          20 unid.
Estanho para Solda                                            1 Carretel
Resistores Variáveis (Trimpóts)                               4 unid.




                                                                                        9
Grupo Morph
                                   Mecânica


 1. Escolha dos materiais:
          A escolha dos materiais exige atenção, pois a depender da
    escolha destes haverá ou não o surgimento de dificuldades como peso e
    manuseio (moldagem e torneamento). No projeto foi utilizado como
    material base o alumínio (2,7 g/cm³) por ter baixa densidade, por ser
    mais barato e também mais fácil de ser encontrado. Como o estilo da
    luta de sumô de Robôs Autônomos não possui muita força de choque
    nos ataques, o alumínio por possuir a dureza necessária para agüentar
    estes confrontos atende também neste requisito.
          Um melhor detalhamento do Alumínio será dado na parte de
    Materiais de Engenharia.
 2. Fixação:




                             Fonte: Tutorial Construção de robôs móveis.




                                                                           10
Grupo Morph
              Fonte: Tutorial em Robôs de combate – RIOBOTS




              Fonte: Tutorial em Robôs de combate - RIOBOTS




                                                              11
Grupo Morph
                    Fonte: Tutorial em Robôs de combate - RioBots



          A fixação total do robô será feita com parafusos do tipo Allen
   cabeça chata e cônica que aplica mais torque e por isso a fixação do
   projeto é mais segura. Além dos parafusos nós vamos usar também
   porcas do tipo sextavadas e auto-travantes eliminando o problema das
   folgas. Entre cada par de parafusos e porcas será colocada uma arruela
   lisa para aumenta a área de contato entre a cabeça do parafuso e a
   superfície.




 1. Motores:
          Os motores que utilizamos, são motores automotivos com tensão
    nominal de 12 volts e por serem robustos agüentam condições extremas
    de poeira, calor, variação de tensão, corrente, entre outros. São
    relativamente compactos, fortes, possuem alta rotação e também são
    fáceis de conseguir em oficinas mecânicas.




                                                                      12
Grupo Morph
                          Fonte: Tutorial Construção de robôs móveis.



         A maior vantagem deste tipo de motor é a caixa de redução que já
   vem presente neles. Esta caixa de redução transforma a alta rotação do
   motor em torque. A redução é feita por meio de relação de engrenagem
   de rosca-sem-fim onde a coroa é uma engrenagem reta com dentes
   planos e o pinhão é um parafuso de rosca-sem-fim. Este tipo de
   engrenagem não permite o movimento contrário, fazendo com que a
   coroa gire o pinhão. Esta é uma característica muito interessante para
   os robôs, pois o freio se dá apenas com o desligamento dos motores
   economizando assim bateria e lógica. A relação de redução é dada pela
   divisão do número de dentes da coroa pelo numero de canais do pinhão.
         As engrenagens são fundamentais para os projetos, ajustam a
   rotação e o torque dos motores como já foi dito acima é sempre bom
   lembrar que as engrenagens não produzem energia mecânica, elas
   apenas convertem força através do principio da conservação da energia,
   da seguinte forma:




                                                                        13
Grupo Morph
                    Fonte: Tutorial Construção de robôs móveis.




              Fonte: Tutorial em Robôs de combate - RIOBOTS




                                                                  14
Grupo Morph
 3. Rodas:
         As rodas do robô são feitas em Nylon, por ser um material de fácil
   utilização, material barato e resistente. As rodas são revestidas com uma
   borracha muito macia para que a teoria da física que diz que a roda deve
   ser mais macia que a superfície a qual está atuando para que a
   aderência seja maior e o atrito estático também assim dificultando o
   arrasto do nosso robô pelo adversário.
         Para calcular a velocidade do robô, basta multiplicar a
   circunferência da roda (C = 2.PI.raio) com a velocidade em rotação por
   segundo (RPS = RPM/60), obtendo assim a velocidade em metros por
   segundo. Para quilômetros por hora, multiplique a velocidade em metros
   por segundo por 3.6 (km/h = m/s * 3,6).




                                Fonte: Autoria própria.




                                                                         15
Grupo Morph
                                     Fonte: Autoria própria.



       Após observarmos vários combates, percebemos que a maioria das
derrotas acontecia quando o adversário acertava o robô pela lateral. Como o
nosso robô tem o formato cilíndrico, ele não tem frente. O robô foi dividido em
duas partes. A parte central ("miolo") e a parte exterior ("cúpula").
       A parte central tem um movimento livre em relação à parte exterior. E se
estiver sobre ataque, o miolo se movimenta enquanto a cúpula permanece em
contato com o adversário. Assim o robô pode atacar o adversário corrigindo
sua trajetória a fim de transmitir a força sempre na perpendicular. Esta
estratégia foi adotada, por sabermos que uma força aplicada com uma
angulação é SEMPRE menor do que a mesma força aplicada na perpendicular.
Sempre que impelimos uma força formando um ângulo diferente de 0, estamos
aplicando uma componente da força útil e a outra componente é desperdiçada.




                                                                            16
Grupo Morph
Física:


   1. Torque:


       O torque é uma grandeza física que associa o movimento de rotação de
um corpo, em torno de um eixo, resultado da aplicação de uma força. A
expressão matemática do modulo do torque é:


                                 Torque = F.R


       Onde F é a força (em Newtons (N)) e r é o raio de giro (em Metros (m)).
A unidade de torque é Newton - metro (N.m)
   Assim, como a engrenagem aumenta a distancia ao eixo de rotação, o
torque é maior, aplicando a mesma força.


   2. Atrito:


       A força de atrito pode ser representada por:


                                       Fat = µ.N


       Com Fat sendo Força de atrito (Em Newton (N)) e µ sendo o coeficiente
de atrito (estático ou dinâmico) e N a força normal (Em Newton (N)). E sabendo
que:


                                     N = m.g.cosα


       Com m sendo a massa (Em quilogramas(Kg)) e g a aceleração da
gravidade (Em m/s²).
       Como o robô M02 possui uma massa de 2,950 kg podemos dizer que
sua força normal vale:


                                  N = 2,950 . 9,8 .0,9
                                     N = 26,019 N
                                                                             17
Grupo Morph
      Para encontrar o coeficiente de atrito entre a roda e o material da arena
foi utilizado um método experimental em que o robô foi colocado em uma
rampa revestida com um material semelhante ao da arena. Deixando o M02
inclinado no ponto em que seu peso se iguala a força de atrito (Iminência de
seu movimento).


                                      Fat = P
                                      µ.N = P
                                 µ.P.cosα = P.senα
                                  µ = (senα)/(cosα)
                                       µ = tgα
      O ângulo encontrado nos experimentos foi de 26°, e como a tangente
deste angulo é 0,4877, então:


                                Fat = 0,4877 . 26,019
                                   Fat = 12,74 N




                                                                            18
Grupo Morph
Materiais de Engenharia:


      O alumínio tem uma estrutura cristalina do tipo CFC (Cúbico de Faces
Centradas). Os sólidos são chamados de cristalinos quando os átomos (ou
moléculas) do mesmo estão dispostos segundo uma rede tridimensional, bem
definida, que é repetida milhões de vezes. A unidade estrutural que está sendo
repetida (Célula unitária) é a que determina o grau de repetição. O sistema
cristalino em que o alumínio participa é o cúbico, em que os lados e os ângulos
são iguais e cada ângulo vale 90º.
      O preenchimento da célula unitária do alumínio segue o padrão CFC. O
CFC tem um número de coordenação (Representa o número de átomos mais
próximos à um átomo de referência) igual a 12. O números de átomos no
interior do reticulado é de 4 átomos. O fator de empacotamento do CFC é de
0,74 (74% do volume da célula é ocupada por átomos). Para calcular o fator de
empacotamento, utilizamos a seguinte formula:


      F.E = Volumes dos átomos no interior da célula / Volume total


      Segue imagem do sólido CFC:




            Fonte: http://www.dalmolim.com.br/EDUCACAO/MATERIAIS/Biblimat/estrutura.pdf
                                                                                          19
Grupo Morph
   O alumínio tem algumas características que ajudaram na escolha para o
projeto. Segue abaixo essas características:


   a) Resistência:


      As ligas de alumínio têm normalmente uma resistência à tração de 70 a
700 Mpa. A gama para as ligas utilizadas em extrusão é de 150 a 300 Mpa.
      Ao contrário do que sucede com a maioria dos aços, o alumínio não se
torna quebradiço a baixas temperaturas. Pelo contrário, a sua resistência
aumenta. Em altas temperaturas, a resistência do alumínio diminui. As
temperaturas que se mantenham acima dos 100ºC, a resistência é afetada, de
tal modo, que o enfraquecimento deve ser tido em consideração.


   b) Maleabilidade


      A maleabilidade superior do alumínio é essencial para a extrusão. Com o
metal quente ou frio, esta característica é também explorada na laminagem de
bandas e chapas, bem como no encurvamento e noutras operações de
moldagem.
      Além de o alumínio ser leve, o que é um fator muito importante na
construção do projeto.




                                                                           20
Grupo Morph
                                 Eletrônica

      Para a produção da parte eletrônica do nosso projeto foram necessários
utilizar alguns Circuitos Integrados (C.I.). Os C.I.’s são basicamente compostos
por transístors. Mas para falarmos sobre transistores, antes temos que falar
sobre materiais condutores, isolantes e semicondutores. Os materiais
condutores conduzem, pois possuem elétrons livres na sua estrutura, o que
permite a passagem da corrente. Nos materiais isolantes, não há elétrons livres
na sua estrutura e eles somente conduzem se forem submetidos a uma
corrente maior que a sua resistência.
      Os materiais semicondutores, que são os que mais importam para nós,
são materiais em um estado intermediário entre os condutores e os isolantes,
em que destacamos o Germânio (Ge), Silício (Si), Selênio (Se) e o Gálio (Ga).
O Germânio e o Silício, em especial, possuem quatro elétrons na ultima
camada, o que faz os mesmos criarem uma rede cristalina muito forte quando
puros, portanto se tornam materiais mais próximos dos isolantes, do que dos
condutores. Porém, quando esses elementos são adicionados de certas
impurezas, a situação se altera. São adicionados elementos com cinco ou três
elétrons na ultima camada, que ao se unirem com os quatro elétrons da ultima
camada do Germânio ou Silício, deixam um elétron livre (Adicionado elementos
com cinco elétrons) ou uma lacuna (Adicionado elementos com três elétrons).
Esses elétrons livres, ou lacunas é o que fazem a corrente elétrica se propagar
pelos elementos dopados. Essas impurezas são adicionadas em uma
proporção muito pequena, de ordem de poucas partes por milhão (ppm).
      Os semicondutores obtidos a partir da dopagem com elementos que
possuem cinco elétrons na sua camada (Resta um elétron livre) têm seu
transporte de cargas feito por elétrons, e por isso são chamados de
semicondutores do tipo N (N de negativo). Quando os semicondutores são
dopados com elementos que possuem três elétrons, é criado uma espécie de
lacuna entre os elétrons, o que faz eles transitarem através dessa lacuna,
encontrando um trajeto com pouca resistência. Assim esses semicondutores
são chamados de semicondutores do tipo P (P de positivo).
      Os transistores são componentes que utilizaremos com a funcionalidade
de uma chave. Anteriormente nós tínhamos utilizado relés para fazerem essa
                                                                             21
Grupo Morph
função, mas como os reles são dispositivos eletro-mecânicos que possuem
partes móveis em sua estrutura, nós temos problemas com o tempo de
resposta e desgaste. Utilizaremos transistores de junção bipolar, que são feitos
com junções de materiais semicondutores. O transistor é montado justapondo-
se uma camada P, uma N e outra P, criando-se um transistor do tipo PNP, ou
utilizando uma camada N, uma P e outra N formando um transistor do tipo
NPN. Segue abaixo o símbolo dos transistores:




                       Fonte: http://pt.wikipedia.org/wiki/Ficheiro:BJT_simbolos.gif



      Onde "C" é o coletor, "E" o emissor e "B" a base. O controle da corrente
coletor-emissor é feito injetando corrente na base. O efeito transistor ocorre
quando a junção coletor-base é polarizada reversamente, e a junção base-
emissor é polarizada diretamente. Uma pequena corrente de base é suficiente
para estabelecer uma corrente entre os terminais de coletor-emissor. Esta
corrente será tão maior quanto maior for a corrente de base, de acordo com o
ganho.
      Para o controle dos motores utilizaremos pontes “H”, que são
dispositivos que permitem que a
corrente passe em dois sentidos
diferentes no motor. O circuito é
montado por quatro chaves que
são      acionadas   de      forma
alternada.


                                                      Fonte:http://pt.wikipedia.org/wiki/Ficheiro:H_bridge.svg


                                                                                                          22
Grupo Morph
       Como pode ser visto no diagrama anterior, ao ligar as chaves S1 e S4 o
motor irá rodar em um sentido e ao acionar as chaves S2 e S3 o motor irá
rodar no outro sentido.




                     Fonte: http://pt.wikipedia.org/wiki/Ficheiro:H_bridge_operating.svg



       Caso as chaves S1 e S2 ou S3 e S4 forem ligadas ao mesmo tempo,
poderá ocorrer um curto circuito.
       No nosso primeiro semestre, nos também utilizamos pontes H para o
controle do motor. Essas pontes H tinham sido construídas com reles, que se
comportam como chaves mecânicas. Como havíamos falando anteriormente,
os dispositivos mecânicos têm desvantagens que não queríamos ter nesse
semestre.
       Utilizamos pontes H construídas por transistores, que estavam em um
C.I. Esse C.I. possui duas pontes H por transistor. O circuito que utilizamos foi
o L298, que além das pontes H, possui suporte para PWM (Explicação a
seguir).
       O circuito integrado L298 possui duas chaves gerais de habilitação,
chamadas de Enable. Após a seleção do sentido da corrente pelos pinos de
controle (2 para cada ponte), ainda é necessário imprimir um nível lógico alto
no pino de enable. Quando o pino de enable está em nível lógico baixo, a
ponte deixa de existir para o circuito, desligando totalmente os motores do
circuito. Aproveitando-nos deste fato, utilizamos a técnica PWM exatamente
neste controle enable. Então podemos definir o sentido de uma ponte H e,
posteriormente, definir a corrente média no tempo que irá fluir pelo sistema.
       Um problema muito grande no consumo de energia é no momento de
inversão dos motores, pois a força para inverter o sentido tem que ser maior,
tendo em vista que a roda estava girando para o sentido contrario. Para
                                                                     23
 Grupo Morph
solucionar esse problema utilizamos uma técnica chamada de PWM (Pulse-
Width Modulation) ou MLP (Modulação por Largura de Pulso). Na técnica de
PWM é gerada uma "onda quadrada" onde o ciclo de carga (Tempo em que a
forma de onda permanece em nível alto) define a velocidade do motor. Para
visualizar melhor podemos exemplificar valores, por exemplo, utilizando 50%
da onda em nível alto e 50% em nível baixo, teremos um motor com 50% de
sua velocidade. Se mudarmos essa taxa para 40% em nível baixo, teremos um
motor com 60% de sua velocidade.
      Utilizando a técnica de PWM nós podemos fazer o a roda parar de girar
por completo antes de inverter o sentido, economizando a bateria.
      Veja abaixo um exemplo de onda gerada por PWM:




      Onde Ton é o tempo em que o sistema está ligado, e Toff é o tempo em
que o sistema está desligado.
      Como sabemos que o atrito estático é maior que o atrito dinâmico,
fizemos uma série de análises para que o robô possa obter o maior atrito,
assim tendo um maior desempenho. Foram colocados encoders nas rodas
para sabermos em qual velocidade a roda está rotacionando. O encoder
basicamente é feito por dois dispositivos, um emissor e outro receptor, que
alinhados nos da com precisão a velocidade da roda.




                                                                         24
Grupo Morph
                 Fonte:
                 http://www.kalipedia.com/kalipediamedia/ingenieria/media/200708/21/infor
                 matica/20070821klpinginf_48.Ees.SCO.png

      Foi colocada uma transparência, semelhante à figura, com furos que dão
passagem de luz. Quando o emissor emite uma freqüência, na forma de luz, e
essa atinge a parte da transparência que não tem o furo, o sinal não passa,
mas quando a luz emitida passa pelo furo e atinge o receptor, o mesmo é
sensibilizado e nós lemos e tratamos essa informação. Quando menor for o
tempo entre uma sensibilização e outra do receptor, mais rápida é a velocidade
da roda. Assim, nós verificamos quantos pulsos por uma determinada unidade
de tempo o encoder está recebendo e determinamos a sua velocidade.
      Utilizando um encoder na parte inferior do robô, funcionando de forma
semelhante aos encoders das rodas, verificamos a velocidade do robô por
inteiro e com isso podemos compará-la a velocidade das rodas e saber se o
robô está "patinando". Caso a velocidade da roda seja maior do que a
velocidade do robô, significa que a roda está deslizando sobre a superfície da
arena, evidenciando que o robô está sem atrito. Para retomar o atrito do robô,
reduzimos a velocidade da roda para que fique com uma velocidade menor,
fazendo o atrito se tornar estático, aumentando o desempenho.
      Neste caso para diminuir a velocidade da roda, também utilizamos a
técnica de PWM. A vantagem de utilizar este o método é ter a possibilidade de
fazer um controle digital tornando assim a complexidade do sistema muito
menor do que fazer um sistema a base de amplificadores e conversores
digitais/analógicos para manipular tensão nos motores.
      Em alguns pontos do circuito foi necessário limitar a intensidade da
corrente elétrica. Para fazer isso utilizamos um componente chamado resistor.
Os resistores são elementos que apresentam resistência à passagem de


                                                                                            25
Grupo Morph
eletricidade. Podem ter uma resistência fixa ou variável. A resistência elétrica é
medida em ohms.




                       Fonte: http://www.byexamples.com/ee/images/resistor.jpg



      Chama-se de Resistência a oposição à passagem de corrente elétrica.
Quanto maior a resistência, menor é a corrente elétrica que passa num
condutor.
      Os resistores geralmente são feitos de carbono. Para identificar qual a
resistência de um resistor específico, comparamos ele com a seguinte tabela:




                   No caso da imagem, o resistor é de 2x105Ω ± 5%
                                                                                 26
Grupo Morph
      Como o robô é autônomo, ele não pode sofrer interferências humanas
em combate. Para que o robô consiga interpretar algumas mudanças é
necessário implementar sensores. O sensor é um dispositivo que recebe e
responde a um estímulo ou um sinal.
      Os sensores implementados com a função de fazer o robô permanecer
na arena são semelhantes aos que usamos na versão anterior, que é feito por
um LED de alta luminosidade e um fototransistor (Receptor). Como a luz é
pouco refletida em superfícies pretas, e muito refletida em superfícies brancas,
utilizamos o foto transistor para detectar a intensidade da reflexão da luz
emitida pelo LED. Quando é lida uma baixa reflexão, supomos que o sensor
está dentro da arena, quando é lida uma alta reflexão supomos que o sensor
está sobre a borda que delimita a arena, iniciando assim a estratégia de
retorno. A posição dos dois componentes (Tanto o emissor quanto o receptor)
é de suma importância, pois na angulação errada, a reflexão dos sinais
luminosos podem não alcançar o fototransistor, inabilitando o sensor.
      O fototransistor na verdade é um transistor de junção bipolar
encapsulado em um material transparente que permite a entrada da luz. A luz
por sua vez atinge a base do transistor liberando a passagem da corrente. O
fototransistor que utilizamos possui dois terminais (Como um LED comum). Um
dos terminais é o coletor e o outro o emissor.
      Para a produção do Sensor de Ataque Direcional (SAD), que é um
sensor que nos dá com precisão a posição do adversário, caso ele esteja em
contato com o nosso robô, foram utilizados potenciômetros. Um potenciômetro
é um componente eletrônico que possui resistência elétrica ajustável.
Geralmente, é um resistor de três terminais onde a conexão central é
deslizante e manipulável.
      Foram utilizados dois potenciômetros, com a mesma função de um
joystick. Um potenciômetro representa o eixo x, e o outro representa o eixo y.
Através do software desenvolvido pela equipe, nós conseguimos reconhecer a
variação das resistências de cada um dos potenciômetros.
      O sensor foi acoplado na parte superior do robô. A parte exterior do robô
é móvel em relação à parte interior, então, quando o adversário encostar-se à


                                                                             27
Grupo Morph
parte exterior do robô, ela ira se movimentar, o que fará o microcontrolador
reconhecer a variação da resistência.
      Analisado a variação, temos com precisão a posição do adversário,
então nós giramos a parte interior do robô ate que ela fique de frente para o
adversário, para ter um melhor desempenho na hora do confronto.


      Abaixo    temos   dois   esboços       esquemáticos    utilizados   para   o
desenvolvimento do software. Na primeira figura temos um gráfico em eixos
cartesianos descrevendo as áreas de atuação do joystick analógico colocado
no SAD. Onde lemos a tensão com o conversor Analógico/Digital. Na figura
ficam claras 5 zonas em 4 cores distintas. É a partir desse gráfico que tiramos
a lógica de ataque do robô. O segundo gráfico representa uma conversão de
uma tensão lida do A/D para uma saída PWM que controlará a trajetória do
robô, quando em ataque. As duas retas de cores distintas representam o robô
fazendo curva para a esquerda (Reta vermelha) e para a direita (Reta Azul).




                                   Fonte: Autoria própria.




                                                                                 28
Grupo Morph
              Fonte: Autoria própria.




              Fonte: Autoria própria.




                                        29
Grupo Morph
      Outro componente importante na confecção da eletrônica do projeto, foi
um regulador de tensão, de até 30 v para 5 v, para que fosse possível fornecer
ao microcontrolador uma tensão bastante estável em 5v. O regulador de tensão
trabalha recebendo uma tensão mais alta, para em seguida estabilizar a tensão
no valor desejado, no nosso caso 5v.
      Foi também necessário utilizar portas lógicas no nosso projeto. As portas
lógicas são dispositivos que operam com um ou mais sinais de entrada e
emitem somente um sinal de saída. Existem 7 portas lógicas que são as
seguintes:


      Porta AND:
      Somente dá saída com nível lógico alto quando todas as entradas tem
também nível lógico alto. Ao contrário, dá saída com nível lógico baixo.
Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



      Porta OR:
      Dá saída com nível lógico alto quando uma ou mais entradas têm nível
lógico alto. Ao contrário, dá saída com nível lógico baixo. Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



      Porta NOT:
      Inverte a entrada na saída. Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



                                                                             30
Grupo Morph
      Porta NAND:
      Porta AND negada. Dá saída com nível lógico baixo quando todas as
entradas tem nível lógico alto. Ao contrário, dá nível lógico alto. Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica




      Porta NOR:
      Porta OR negada. Dá saída com nível lógico baixo quando uma ou mais
entradas têm nível lógico alto. Ao contrário, dá saída com nível lógico alto.
Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



      Porta XOR:
      Porta OR exclusiva. Dá saída com nível lógico alto quando as entradas
são diferentes. Caso as entradas forem iguais, dá saída com nível lógico baixo.
Representação:




      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



      Porta XNOR:
      Porta XOR negada. Dá saída com nível lógico baixo quando as entradas
são diferentes. Caso as entradas forem iguais, dá saída com nível lógico alto.
Representação:




                                                                               31
Grupo Morph
      Fonte: http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica



      Dentre        essas,         a     que        usamos
explicitamente foi a porta lógica NOT. Os
componentes principais que constituem as
portas lógicas são os transístores bipolares.
O funcionamento interno de uma porta lógica
NOT pode ser visto na imagem ao lado.
                                                              http://pt.wikipedia.org/wiki/Ficheiro:TTL_NOT_gate.svg




                                                                                                               32
Grupo Morph
                                  Programação


      Para que um robô possa ser chamado de autônomo, ele tem que
interpretar sinais externos e analisá-los antes de tomar uma decisão. A parte
que fica responsável por isso é a programação. Podemos dizer que é o cérebro
do robô.
      Para processar as informações, nós utilizamos um microcontrolador, que
no caso é um PIC, da família 16F. O microcontrolador é quem vai analisar
todas as informações e “dirá” ao robô o que fazer em seguida. A lógica de
programação foi desenvolvida em linguagem C.
      Desenvolvido pela Microchip, os microcontroladores da linha PIC
(Peripheral Interface Controllers), possuem em um único encapsulamento: 1
Microprocessador Risc (Reduced Instruction Set Computer) de 8 BITs ou 16
Bits com acesso a memória em 14 BITs, Memoria Rom, Memoria Ram e portas
de entrada e saída de dados em alta corrente (até 500mA a 5V). O micro
escolhido foi o 16F877A, por ter memória Flash ROM de 8KB, 33 portas de
entrada e saída de dados, faixa de operação entre 32KHz a 20MHz com uma
instrução sendo realizada a cada 4 ciclos de clock (Até 5 MIPS), comunicação
serial RS232, que utilizamos durante o desenvolvimento do projeto para debug,
8 conversores Analógico/Digitais, 3 Timers internos, sendo T0 (8bit), T1(16bit)
e T2(8bit), possuir controlador PWM nativo em dois canais distintos, trabalhar
com interrupções e gerá-las a partir de mudanças externas, estouro de
contadores e outros. Na figura abaixo, temos um esquema em cores que
mostra como foram utilizados os pinos do PIC e quais os periféricos
adicionados a ele.




                                                                            33
Grupo Morph
                           Fonte: Autoria própria.




    Na pagina Anexos segue o código do programa comentado.




                                                             34
Grupo Morph
                            Referências


 1. http://www.ibytes.com.br/eletronica.php?id=330 - Acessado em 17 de
     maio de 2009.
 2. http://www.mundofisico.joinville.udesc.br/index.php?idSecao=110&idSub
     Secao=&idTexto=49 - Acessado em 17 de maio de 2009.
 3. http://www.clubedohardware.com.br/dicionario/termo/77 - Acessado em
     17 de maio de 2009.
 4. http://www.sabereletronica.com.br/secoes/leitura/690 - Acessado em 20
     de maio de 2009.
 5. http://www.arvm.org/exames/trasistor.htm - Acessado em 21 de maio de
     2009.
 6. http://pt.wikipedia.org/wiki/Trans%C3%ADstor - Acessado em 21 de
     maio de 2009.
 7. http://forum.clubedohardware.com.br/fototransistor-til78/312587 -
     Acessado em 21 de maio de 2009.
 8. http://pt.wikipedia.org/wiki/Potenci%C3%B4metro - Acessado em 24 de
     maio de 2009.
 9. http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica - Acessado em 24 de
     maio de 2009.
 10. http://ltodi.est.ips.pt/aabreu/motoresCC/relatoriomotoresCC.pdf -
     Acessado em 24 de maio de 2009.




                                                                       35
Grupo Morph
                                      Anexos

                             Codigo do Programa


      #include <16f877a.h>

      #device adc=10

      #use delay(clock=16000000)

      #fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP




      int Atq=3,luta,esperaCinco=1;

      int32 imprime=0;

      boolean frente=false,borda=false,led=true;

      boolean
horario=true,lutando=false,olhoAntes=true,enchergandoAntes=false;

      int16 tempoVisada=0,ziguezague=0,tempoVirada=0;




      #include "pinos.h"

      #include "sad.h"


                                                                    36
Grupo Morph
       #include "Encoders.h"

       #define pwmMax 1023 //Definição do nivel de PWM Máximo para o
arranjo com o timer2

       #define tempoDaVirada 2000 //Definindo o tempo máximo de uma
virada sem enchergar o oponente




       #define            gira         horario=!horario;       delay_ms(500);
if(horario){viraDireita;}else{viraEsquerda;}                   delay_ms(500);
tempoVirada=tempoDaVirada;

       //Definição de uma rotina de giro do robô, colocada em um define, ao
inves de em uma funçao, para evitar estouro de Pilha

       //que no PIC não chega a uma dezena de posições (8 exatamente)




       void fim(){//para motores




         output_low(pin_d0);        output_low(pin_d1);    output_low(pin_d2);
output_low(pin_d3); set_pwm1_duty(0);set_pwm2_duty(0);




         disable_interrupts(INT_RB|INT_EXT|INT_TIMER0);

         disable_interrupts(GLOBAL);

         lutando=false;

         while(true){}



                                                                            37
 Grupo Morph
      }// Função de parada, nesta função desativamos todos os sensores e
interrupções do robô e o colocamos em um loop Infinito




      boolean sensorBorda(){ /*b1 - b4 Bordas de 1 a 4.*/

       borda=false;

           if(!b1&&!b2){andaTras;                    borda=true; frente=false;
set_pwm1_duty(pwmMax);set_pwm2_duty(pwmMax); gira return(borda);}

           if(!b3&&!b4){andaFrente;                  borda=true; frente=true;
set_pwm1_duty(pwmMax);set_pwm2_duty(pwmMax); gira return(borda);}

           if(!b1&&!b3){rodaEsquerdaFrente;         borda=true;    frente=true;
set_pwm1_duty(pwmMax);set_pwm2_duty(0);          gira return(borda);}

           if(!b2&&!b4){rodaDireitaFrente;          borda=true;    frente=true;
set_pwm1_duty(0);set_pwm2_duty(pwmMax);          gira return(borda);}

           if(!b1){      rodaEsquerdaTras;           borda=true; frente=false;
set_pwm1_duty(pwmMax);set_pwm2_duty(0);          gira return(borda);}

           if(!b2){       rodaDireitaTras;          borda=true; frente=false;
set_pwm1_duty(0);set_pwm2_duty(pwmMax);          gira return(borda);}

           if(!b3){        rodaEsquerdaFrente;       borda=true; frente=true;
set_pwm1_duty(pwmMax);set_pwm2_duty(0);          gira return(borda);}

           if(!b4){        rodaDireitaFrente;        borda=true; frente=true;
set_pwm1_duty(0);set_pwm2_duty(pwmMax);          gira return(borda);}

       return (borda);

                                                                             38
Grupo Morph
      }// Rotina de tratamento de bordas




      #define visadaMax 1000 //definição do tempo máximo sem visada do
robô, para que ele tome a decisão

                   //de quando ele deve parar de procurar com o "olho" e ir
navegar na arena




      #INT_TIMER0 //Chamada da interrupção do Timer0 (8BITs, estourando
a cada 1 milisegundo)

      void contando()//Função de tratamento da interrupção do Timer0, onde
são executados procedimentos de incremento

      {            //dos encoders, relativos incrementais com sentido e sem
sentido.

           if(enable_a){count_a++;} //Usado para contagem do intervalo entre um
pulso e outro do encoder a, quando habilitado

           if(enable_b){count_b++;} //Usado para contagem do intervalo entre um
pulso e outro do encoder b, quando habilitado

           if(enable_c){count_c++;} //Usado para contagem do intervalo entre um
pulso e outro do encoder c, quando habilitado

           tempoVisada++;//Variavel que guarda o tempo de visada do oponente,
que dará ao robô condições de decidir a melhor estratégia

           if(tempoVisada>visadaMax){tempoVisada=visadaMax+1;}

           ziguezague--; //Usado para fazer a variação do PWM de cada roda
individualmente para realizar a trajetória de


                                                                             39
Grupo Morph
                       //ziguezague para perseguição do oponente enquanto o
mesmo não estiver sendo "sentido" pelo SAD

                //ou seja, enquanto não houver um contato corporal do robô com
seu oponente.

         if(ziguezague<200){ziguezague=200;}

         imprime++; //Variável que incrementa a cada 1ms para fazer as
contagens de tempo da luta

         if(imprime>1000){

          //Este treixo só será executado uma vez por segundo.

          imprime=0;

          luta++;

          if(esperaCinco==5){lutando=true;} //Este é o ponto que faz o robô
aguardar cinco segundos antes da luta.

          esperaCinco++;




          if(luta==95){ //Este é o contador da luta, ele dá o start na rotina de
fim, quando a luta chega aos 95 segundos

                        //5 segundos da início + 90 segundos da luta (um minuto e
meio).

              fim();

          }

          if(led){output_high(pin_c5);}else{output_low(pin_c5);}led=!led; //Uma
rotina para fazer o LED da placa mãe piscar com

                                                                               40
Grupo Morph
                                                  //intervalo de 1 segundo

        }

        if(count_b>periodoMax){ //Neste ponto, registra-se o evento de
"intervalo infinito" entre um pulso e outro de um determinado

                        //encoder. Como sabemos que uma frequencia (zero)
significa um período (infinito) que é uma

                        //abistração matemática, determinamos um período
máximo para considerar-mos o encoder em questão

                        //lendo velocidade zero (parado).

        count_b_Final=periodoMax+2;

        count_b=0;

        enable_b=false;

        }

        if(count_a>periodoMax){

        count_a_Final=periodoMax+2;

        count_a=0;

        enable_a=false;

        }

        if(count_c>periodoMax){

        count_c_Final=periodoMax+2;

        count_c=0;



                                                                             41
Grupo Morph
          enable_c=false;

          }

      }




      main()

      {

       setup_ADC_ports(ALL_analog);

       setup_ADC_ports(ADC_CLOCK_INTERNAL);

       set_tris_B(0xFF);

       port_b_pullups(TRUE);

       setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); //Overflow em 1ms

       setup_timer_1(T1_DISABLED);

       setup_timer_2(T2_DIV_BY_16,255,1);

       enable_interrupts(INT_TIMER0);

       enable_interrupts(GLOBAL);

       setup_ccp1(CCP_PWM);

       setup_ccp2(CCP_PWM); //Configuração do microcontrolador e suas
funções, tais como Analog Digital Converters,

                     //Timers, Interrupção no portB e outros.




      while(true) //Loop Infinito, que mantem o microcontrolador ativo
                                                                         42
Grupo Morph
      {

           while(lutando){ //Condição de parada do robô, quando passados
1:30Min de luta, o robô para de ler os sensores.




      if(olho){tempoVisada=0; //Aqui inicia o ciclo de perseguição do oponente
através do "olho".

                     if((!olhoAntes)&&(ziguezague==1)){ziguezague=pwmMax;}

                     olhoAntes=true;

               }else{

                 if(olhoAntes){

                 horario=!horario;

                 ziguezague=pwmMax;

                 }




                 olhoAntes=false;

               }//Aqui termina




                        if(le_SAD()){ //Se retornar verdadeiro, rotina de ataque!




                        }else{//senão testa bordas.

                                                                                    43
Grupo Morph
                       if(sensorBorda()){




                       }else{




                                if(tempoVisada<visadaMax){

                                 andaFrente;

                                 if(horario){



set_pwm1_duty(pwmMax);set_pwm2_duty(ziguezague);




                                 }else{



set_pwm1_duty(ziguezague);set_pwm2_duty(pwmMax);




                                  }

                                  enchergandoAntes=true;

                                }else{




                                 if(enchergandoAntes){viraDireita;



for(tempoVirada=0;tempoVirada<tempoDaVirada;tempoVirada++){



                                                                     44
Grupo Morph
                                            delay_ms(1);



if(olho){tempoVirada=tempoDaVirada+1;}

                                        }

                                        enchergandoAntes=false;

                                    }else{



if(frente){andaFrente;set_pwm1_duty(pwmMax);set_pwm2_duty(pwmMax);}els
e{andaTras;set_pwm1_duty(pwmMax);set_pwm2_duty(pwmMax);}

                                    }

                                }

                            }

                        }

                    }

          }

      }




                                                                     45
Grupo Morph
        Disposição dos pinos e referencias na placa de dados




   BARRA DA DIREITA

   I OLHO    OO GND   PIN_C4

   I ENC2D   OO GND   PIN_B5

   I ENC1E   OO GND   PIN_B4

   I ENCB    OO GND   PIN_B6

   I ENCA    OO GND   PIN_B7

   I B_4 DT OO GND    PIN_B0

   I B_3 ET OO GND    PIN_B1

   I B_2 DF OO GND    PIN_B2

   I B_1 EF OO GND    PIN_B3

   O M2_1    OO GND   PIN_D3

   O M2_2    OO GND   PIN_D2




                                                               46
Grupo Morph
   BARRA DA ESQUERDA

   X NOT_USED OO GND

   X NOT_USED OO GND

   I SADX    OO GND      PIN_RA0     pino2

   I SADY    OO GND      PIN_RA1     pino3

   O PWM D     OO GND      CCP1       pino16

   O PWM E     OO GND      CCP2       pino17

   O M1_1    OO GND       PIN_D0     pino19

   O M1_2    OO GND       PIN_D1     pino20

   O +5V     OO GND

   O led da placa está ligado ao pino 24 (PIN_c5)




                                                    47
Grupo Morph

								
To top