O braço robótico – Introdução

O objetivo desse tutorial é desenvolver passo a passo um projeto para o controle e programação de um braço robótico, simulando as funções básicas de um robô industrial.

Especificações:

  • O robô deverá ter duas funções básicas:
    • Programa: gravar posições do braço em 3 dimensões
    • Run: executar o programa de trabalho (ou seja, executar em sequencia as posições gravadas na etapa de programa.
  • O robô executará o programa até que o comando de “abortar” seja utilizado.
  • O projeto deverá controlar robots de 3 ou 4 DOF (“Degrees of Freedom”).
  • O robô deverá ser controlado em modo “local” e “remoto” (via celular)
  • Durante o programa se poderá mudar o controle de “local” a “remoto” e vice-e-versa.
  • Deverá possuir sinalização tanto visual (LEDS e display) quanto sonora
  • Deverá possuir função de alarme acionado remotamente.

O projeto:

O diagrama abaixo mostra o “Bill of Material” que será utilizado no projeto:

Robot Arm Project diagram

Para o projeto, optarei pelo Arduino MEGA para não ter que me preocupar com o número de portas I/Os. O UNO funcionaria sem problemas, mas se deveria utilizar algum método de expansão de portas. Existem várias opções que podem ser facilmente encontradas na internet, como um decodificador 74138 por exemplo (veja o site: “Expandindo os I/Os do Arduino”).

Para a rede Bluetooth utilizarei o HC-06 (o qual explico em detalhes no tutorial “Conectando “coisas” através do Bluetooth”).

MJRoBot Arm Ctrl iconA app Android utilizado para o “modo  remoto”, foi desenvolvida utilizando-se a ferramenta  MIT appinventor2, uma plataforma tão poderosa quanto simples para esse tipo de app baseado no Android. No futuro pretendo explorar a criação de apps desse tipo aqui no Blog. Por enquanto, a app está disponível para ser baixada gratuitamante na loja da Google:  MJRoBot Arduino Arm Robot Control.

Os vídeos abaixo dão uma idéia de como deverá ficar o projeto final:

Primeiro protótipo sendo programado em “modo local”:

O robô programado de maneira remota via rede Bluetooth:

 

Nos próximos posts, detalharei os passos necessários para o desenvolvimento do projeto.

Como sempre, espero que este projeto ajude outras pessoas a encontrar seu caminho no apaixonante mundo da eletrônica, robótica e do IoT!

Não deixe de visitar e seguir minha página: MJRoBot.org no Facebook

“Saludos desde el sur del mundo!” 😉

Um abraço e até o próximo post!

Obrigado

Marcelo

FullSizeRender 23Em tempo: aproveito e deixo aqui um abraço para duas pessoas muito queridas, meu tio Ítalo que já não está aqui entre nós, que além de me ensinar a jogar Xadrez quando garoto, me deixou de presente essas peças que utilizei no vídeo. O outro abraço vai para o meu sogro Mathias, que muito carinhosamente presenteou-me com o tabuleiro e com as peças do jogo que haviam se perdido com o tempo (tudo feito por ele).

 

 

 

 

Anúncios

Autor: Marcelo Rovai

Engineer, writer and forever student. Passionate to share knowledge of electronics with focus on IoT and robotics.

5 comentários em “O braço robótico – Introdução”

  1. Olá Marcelo.

    Meu nome é Jean Carlo tenho 23 anos e estou no ultimo ano do curso de graduação Análise e Desenvolvimento de Sistemas. Preciso elaborar o Trabalho de Conclusão de Curso (o famoso TCC), para a apresentação no final do anoe pesquisando por projetos pela web, acabei encontrando o seu no site instructables.com, achei muito legal e estou interessado em usar como base para o meu TCC.

    Tenho um Arduino MEGA e um Raspberry Pi e sempre quis desenvolver algum projeto utilizando-os, acho que essa é a hora certa. Se importa se passar o seu email ou algum outro meio de contato para tirar algumas dúvidas contigo?

    Muito obrigado.
    Abraço.

    Curtir

    1. Oi Felipe, obrigado.
      Para gravar os pontos eu usei um array simples:
      int grippPosition[100];
      int basePosition[100];
      int shouPosition[100];
      int elbwPosition[100];

      A cada ponto que queria gravar, ia incrementando um índice:
      int positionIndex; e armazenando os valores lidos dos potenciômetros (depois de mapeados) no array correspondente.

      Por exemplo:
      if(recordButton == HIGH)
      {
      positionIndex++;
      grippPosition[positionIndex] = servoGrippVal;
      basePosition[positionIndex] = servoBaseVal;
      shouPosition[positionIndex] = servoShouVal;
      elbwPosition[positionIndex] = servoElbwVal;
      delay(1000);
      }

      Esse é um SW simples de demonstração e não me preocupei de “salvar” os pontos na EEPROM por exemplo para usar depois. funciona uma vez e pronto.

      Estou dando uma “polida” no codigo e pretendo ainda nessa semana publicar o post completo explicando o projeto.
      Um abraço

      Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s