StampBug



StampBug


É impressionante como todo elemento cibernético causa curiosidade e admiração nas pessoas. Neste artigo o autor ilustra passo a passo a montagem de um robô, que é encontrado em um kit comercializado pela Parallax. O kit contém todo o material necessário para a montagem incluindo o microcontrolador PIC com o programa, exceto estanho para soldagem e bateria.

Entendendo o funcionamento mecânico do StampBug

Antes de começarmos a montagem, vamos entender o acionamento do StampBug e seus movimentos básicos. O StampBug caminha utilizando o método de triangulação alternada ou seja, quando ele tem as pernas da frente e de trás de um lado apoiadas no chão, do outro lado a perna central está fazendo apoio e as pernas da frente e de trás estão suspensas para movimento. Fica mais fácil a compreensão, observando a figura 2.

Movimento doStampBug
Figura 2

Esse acionamento possibilita que o robô ande em linha reta para frente ou para trás e ainda faça curvas para a direita ou esquerda. O robô foi projetado para caminhar em superfícies planas, caso encontre obstáculos, os mesmos serão sentidos pelas "antenas" que acionam microswitches, fazendo com que o robô execute um movimento de desvio da rota.

Diagrama elétrico

Diagrama elétrico

Servomotores

São motores que acionam um redutor que está acoplado a um potenciômetro que irá dar o "feedback" de posicionamento ao sistema eletrônico interno.
Para movimentar o servomotor, temos de gerar um sinal PWM (Pulse Wide Modulation) - Modulação por Largura de Pulso. Dependendo da largura do pulso, o servomotor irá se posicionar diferente. A temporização do servomotor utilizado neste kit (Hitec-300) é mostrada na figura 4. Existem vários tipos e tamanhos de servomotores, a temporização basicamente é semelhante a apresentada.

Pulso do Servomotor
Figura 4

Descrição da montagem

Existe um grau de dificuldade médio na montagem, principalmente, no corte e solda dos tubos de latão para montagem das pernas. Se a pessoa que estiver montando o kit tem prática na montagem de aeromodelos não encontrará grandes dificuldades, caso contrário, aconselha-se um estudo detalhado das instruções antes de executar as ações de corte, solda, dobras e ajustes.
Para a montagem serão necessárias aproximadamente 6 horas de trabalho com as seguintes ferramentas:
  • Chave philips
  • Chave de fenda
  • Alicate de bico
  • Alicarte de corte
  • Ferro de soldar de 30 W e de 100W ou 200W
  • Arco de serra para metal
  • Lima redonda de 6,0 mm
  • Furadeira
  • Broca de 1,0 mm
  • Broca de 2,0 mm
  • Broca de 2,5 mm


Passos para a montagem


  1. Corte e solda das pernas
  2. Serão necessários 7 tubos de 102 mm de comprimento e 6 mm de diâmetro. Separar 6 tubos e fazer um corte para obter duas peças com 47 e 55 mm. Na peça de 47 mm, fazer um arredondamento com a lima de 6 mm, de tal maneira que se encaixe na peças de 55 mm, formando um ângulo de 90 graus. Para facilitar a soldagem, as peças podem ser fixadas com fita adesiva em uma base de madeira, como mostrado na figura 6. Após a soldagem, fazer o acabamento com lixa fina. Essa etapa deve ser repetida para as seis pernas. Separe 2 pernas para a parte central e com o sétimo tubo corte duas peças de 30 mm e solde-as a 22 mm da extremidade interna de cada perna (figura 5).


    Figura 5


    Figura 6


  3. Montagem do corpo
  4. O corpo do robô é uma placa de circuito impresso que contém as trilhas de ligações do circuito elétrico, além das furações para fixacão dos elementos. A placa contém uma serigrafia de todos os elementos a serem soldados, na figura 6b temos o desenho mecânico com as medidas principais dos furos de fixação.

  5. Montagem das pernas
  6. O kit tem 3 tubos de alumínio de 57 mm e 3 espaçadores de fibra de vidro de 54 mm. Colocar as articulações e fazer as furações conforme a figura 7, notar que as pernas centrais têm uma montagem diferente das pernas traseira e dianteiras. Enquanto as pernas traseiras e dianteiras fazem uma articulação para frente e para trás, nas perna centrais, a articulação é para cima e para baixo, conforme a figura 7.


    Figura 7


  7. Montagem das antenas
  8. Com os fios de aço de 150 mm fazer duas antenas com uma dobra de 45 graus aproximadamente da extremidade inferior e prender nos dois terminais conforme a figura 8. Parafusar e fixar os microswitches pela parte de baixo da placa. Não colocar as antenas ainda para facilitar o restante da montagem.


    Figura 8


  9. Montagem dos servomotores
  10. Para fixação dos servomotores foram utilizadas cintas plásticas (Tie Wrap), na figura 9 observamos o seu posicionamento.


    Figura 9


  11. Dobrando os tendões
  12. Na figura 10 observamos a dobragem dos tendões de acionamento das pernas.


    Figura 10


  13. Colocando os tendões
  14. Essa é uma das operações mais delicadas do processo. Para ajustar utilize uma fita adesiva para conectar os tendões das pernas dianteiras e traseiras (ver figura 10). Fazer as furações conforme indicação da figura 11. Os movimentos das pernas de cada lado deverão ser iguais, se necessário ajuste o braço do servomotores. Após o ajuste, solde os tendões. Na figura 12 observamos a colocação do tendão das pernas centrais. Ajuste o braço do servomotor de tal maneira que levante em torno de 15 mm.



    Figura 11


    Figura 12


  15. Colocando as sapatas
  16. Cada perna tem um sapata de borracha que é um passa-fio adaptado, observe a colocação na figura 13.



    Figura 13


  17. Teste de conjunto
  18. Ligue o StampBug (antes coloque as 4 baterias de Nica de 1,2 V) e os servomotores de movimentarão para um extremidade. Essa reação é esperada, pois o robô ainda não foi programado e não controla os servomotores. Carreando o programa (ver comentários do programa a seguir), ele começará a andar meio desengonçado e fazendo o ruído típico de servomotores acionados (ziiiiii, ziiiiii, ziiiiii !!!). Necessário fazer vários ajustes nos tendões e nos servomotores, além de ajustar o programa também, após isso o robô fica muito bom.

  19. O programa
  20. No quadro a seguir, podemos observar o program comentado que é carregado no StampBug, o algoritmo é muito simples, ele sempre tenta andar para frente, caso encontre um obstáculo, anda para trás um pouco e vira para o lado oposto do obstáculo. O truque para programação dos servomotores é fazer com que a geração de pulsos seja constante para manter o servomotor na posição, caso esse pulsos não sejam gerados em um intervalo mínimo, os servomotores ficam descontrolados. A instrução PULSOUT gera esses pulsos e sua utilização pode ser observada na rotina "ANDA".

    Código do programa utilizado no StampBug
    Programa Comentários
    'Variaveis:
    Symbol tocado=bit0
    Symbol cont1=b2
    Symbol cont2=b3
    Symbol meio_pos=b4
    Symbol dir_pos=b8
    Symbol esq_pos=b9
    
    'Constantes
    Symbol max_grau=200
    Symbol min_grau=50
    Symbol pulsos=20
    Symbol pausa=12
    
    'Pin Allocations
    Symbol esq_servo=pin1
    Symbol meio_servo=pin2
    Symbol dir_servo=pin3
    Symbol esq_olho=pin4
    Symbol dir_olho=pin5
    Symbol dir_antena=pin6
    Symbol esq_antena=pin7
    
    'Inicio
    dirs=%00111110
    pins=0
    high esq_olho
    low dir_olho
    
      principal:
    toggle esq_olho
    toggle dir_olho
    meio_pos=max_grau
    esq_pos=max_grau
    dir_pos=max_grau
    gosub anda
    toggle esq_olho
    toggle dir_olho
    meio_pos=min_grau
    esq_pos=min_grau
    dir_pos=min_grau
    gosub anda
    goto principal
    
      antenas:
    if tocado=1 then pula
    if esq_antena=0 then direita
    if dir_antena=0 then esquera
    
      pula:
    return
    
      direita:
    gosub volta
    high dir_olho
    low esq_olho
    for cont2=1 to 4
        meio_pos=max_grau
        esq_pos=max_grau
        dir_pos=min_grau
        gosub anda
        meio_pos=min_grau
        esq_pos=min_grau
        dir_pos=max_grau
        gosub anda
      next
    goto principal
    
      esquerda:
    gosub volta
    low dir_olho
    high esq_olho
    for cont2=1 to 4
        meio_pos=min_grau
        esq_pos=max_grau
        dir_pos=min_grau
        gosub anda
        meio_pos=max_grau
        esq_pos=min_grau
        dir_pos=max_grau
        gosub anda
      next
    goto principal
    
      anda:
    for cont1=1 to pulsos
        pulsout meio_servo,meio_pos
        gosub antenas
        pause pausa
      next
    for cont1=1 to pulsos
        pulsout dir_servo,dir_pos
        pulsout esq_servo,esq_pos
        pulsout meio_servo,meio_pos
        gosub antenas
        pause pausa
      next
    return
    
      volta:
    tocado=1
    high dir_olho
    high esq_olho
    for cont2=1 to 4
        meio_pos=min_grau
        esq_pos=max_grau
        dir_pos=max_grau
        gosub anda
        meio_pos=max_grau
        esq_pos=min_grau
        dir_pos=min_grau
        gosub anda
        toggle dir_olho
        toggle esq_olho
      next
    toggle dir_olho
    tocado=0
    
    return
    
    
    flag para indicar antena tocada
    contador da rotina anda
    contador para outras rotinas
    posição para perna central
    posição para perna direita
    posição para perna esquerda
    
    
    pulso longo para movimento longo
    pulso curto para movimento curto
    Número de pulsos por passo
    Pausa entre pulsos (em ms)
    
    
    Servomotor esquerdo no pino 1
    Servomotor central no pino 2
    Servomotor esquerdo no pino 3
    Olho esquerdo no pino 4
    Olho direito no pino 5
    Antena direita no pino 6
    Antena esquer da no pino 7
    
    
    
    
    
    
    
    
    pulsa os olhos
    
    levanta a direita
    movimenta a frente
    
    
    pulsa os olhos
    
    abaixa o lado direito
    
    movimenta a frente
    
    
    
    Rotina para checar toque nas antenas
    
    
    
    
    
    
    
    Rotina se antena direita tocada
    Volta e vira para a direita
    
    
    
    Levanta lado direito
    
    
    
    Abaixa lado direito
    
    
    
    
    
    
    Rotina se antena esquerda tocada
    Volta e vira para a esquerda
    
    
    
    Abaixa lado direito
    
    
    
    Levanta lado direito
    
    
    
    
    
    
    Rotina de andar um passo
    Número de pulsos
    
    Verifica antenas
    Pausa entre os pulsos
    
    
    
    
    
    Verifica as antenas
    
    
    
    
    Subrotina de voltar para trás
    Seta o flag
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Limpa o flag
    
    Fim do programa
    

Links para aquisição do kit do StampBug

  • http://www.artek.it/parallax/stampbug.htm(italiano)
  • http://www.parallaxinc.com/stamps/stampbug.htm(inglês)
  • http://www.sci.fi/~pri/stampbug.htm(inglês)


    Volta para página anterior
    Volta para página principal