Tutorial: Braço robótico programável – Introdução

O objetivo desse tutorial é o desenvolvimento em etapas de 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:

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”).

A 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, o app está disponível para ser baixado gratuitamente na loja da Google:  MJRoBot Arduino Arm Robot Control.

Para se ter uma ideia geral do projeto, os vídeos abaixo mostram como deverá ficar o projeto final:

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

https://youtu.be/ceLIAkFdSEM

No seguinte vídeo, o robô é programado de maneira remota via rede Bluetooth:

https://youtu.be/OHl-oCbYtx0

 

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

Até lá!

Para mais tutoriais, demos, vídeos, etc. visite meu blog:

MJRoBot.org

Um abraço e até mais!

Exibições: 4201

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Mauricio Duarte G. dos Santos em 23 março 2016 às 14:49

Valeu Marcelo, obrigado.

Abs,

Mauricio.

Comentário de Marcelo Rovai em 23 março 2016 às 14:41

Acho que vou te ficar devendo, não conheço de servos o suficiente. O interessante é que não falam muito bem do MG995. Legal que funciona bem (tenho uns 4 que comprei para um projeto futuro mas ainda não usei). A propósito, coloquei o link de seu Rover no meu post (o Garagem também já autorizou). ) EasyRover DS uma ótima opção para um projeto futuro.

 

Comentário de Mauricio Duarte G. dos Santos em 23 março 2016 às 12:46

Marcelo,

Na verdade não liguei ele no Arduino ainda. Usei um servo tester para aciona-lo, meu servo tester tem opção para servo analógico e digital. Mas mesmo na opção digital não mudou nada, o servo fica oscilando. Já o Mg995 funcionou muito bem com o servo tester na opção analógica.

Comentário de Marcelo Rovai em 23 março 2016 às 12:02

Oi Maurício, 

Obrigado! Com seu Rover ficará 10!!!!!!!!!! ;-)

Eu acredito que o problema seja porque o HX5010 agora é um servo digital (li em um site: HXT 5010 servos shipped as of Aug 1, 2014 are digital version, no longer analog"). Enquanto que o HX5010 é analógico. Voce deve estar usando a library de Servos do Arduino, não? Se não estou enganado 50Hz é o "refresh" default usado pela library, que é o que os servos analógicos necessitam. Os digitais trabalham em uma frequência mais alta. 

Não sou especialista, mas acho que pode ser isso. Tería que modificar os parâmetros. 

Comentário de Mauricio Duarte G. dos Santos em 23 março 2016 às 10:41

Oi Marcelo, tudo bem?

Muito legal seu projeto do Mars Rover tupiniquim. Qualquer dia implemento este projeto no meu Rover

http://mauriciodgsantos.wix.com/easyroverds

Mudando de assunto, tive problemas com o servo HX5010 no meu EasyArmDS2, o braço principal fica oscilando, o servo não estabiliza em uma posição. Substitui pelo Mg-995 e este funcionou bem. Vc tem alguma ideia porque o HX5010 apresentou este problema?

Abs,

Mauricio.

Comentário de Marcelo Rovai em 19 fevereiro 2016 às 14:46

Oi Mauricio,

Este é um assunto complicado (a meu ver). Pr exemplo, em engenharia aeronáutica (ou náutica), um avião (ou barco) pode ter até 6DOF, que são os movimentos que o corpo poderá fazer e no caso não tem nenhuma "junta". Talvez a estrito rigor, no caso do braço robótico também não deveríamos considerar a garra se pensarmos nela como uma "ferramenta" e nesse caso voce estaria correto. Além disso, movimentos combinados de servos, poderiam levar a mais graus de liberdade. Eu pensei bastante e optei por ser menos acadêmico e considerar os "DOF" simplesmente como "juntas" ou partes móveis. Vários sites de robótica amador consideram assim, bem como sites de venda como a Amazon:

http://www.amazon.com/Robot-Clamp-Robotics-claw-Body/dp/B017DIVFCI/...

O meArm por exemplo tem vários sites que o consideram 4DOF, o que inclui o gripp.  Eu acho que voce é mais preciso quando fala em 4DOF + Gripper.

Comentário de Mauricio Duarte G. dos Santos em 18 fevereiro 2016 às 14:00

Oi Marcelo,

Muito obrigado por mostrar o EasyArmDS2 e mencionar meu site. Também estou divulgando seu blog para meus compradores.

Agora vc me deixou e dúvida! Eu estava classificando meus braços como 4 DOF, não considerando a abertura e fechamento da garra como um grau de liberdade. 

Dê uma olhada neste link:

http://www.robotshop.com/en/lynxmotion-al5d-robot-arm-hardware-4dof...

Abraço e obrigado

Comentário de Marcelo Rovai em 17 fevereiro 2016 às 21:12

Oi Maurício, não sou especialista, mas esses HX5010, parecem ser bem melhores que o MG995. 

Dá uma olhada no meu post http://MJRoBot.org

Comentei de seus braços lá!

Abracão.

Comentário de Mauricio Duarte G. dos Santos em 17 fevereiro 2016 às 20:26

Oi Marcelo,

Estou usando nos meus projetos o servo digital Hextronik Hx 5010. Ele é melhor que o MG995?

Comentário de Marcelo Rovai em 17 fevereiro 2016 às 19:55

Oi Wagner. No caso do Braço de 3 DOF que aparece nos videos, utilizei os servos originais: MG995, que apesar de funcionarem, são bem ruins. Eu acabei de publicar um post em meu Blog (http://MJRoBot.org) onde dou uma explicação geral sobre o projeto. Também publiquei aqui na Gragem, mas demora um pouco mais para ir ao ar!

Dá uma olhada lá e qualquer dúvida me deixe um comentário. Um abraço.

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço