Kit Braço Robótico MDF com Arduino

Hoje vamos falar sobre o Kit Braço Robótico em MDF. Este kit consiste em todas as peças necessárias para montar um braço robótico genuíno, com dois eixos de controle e uma garra. Todos os movimentos são controlados por 4 servomotores, que geralmente não vêm inclusos no kit. Os servos são responsáveis por controlar os movimentos do braço em seus diferentes eixos e a garra.

É o produto ideal para que makers, amantes da eletrônica e qualquer pessoa que deseje montar e ter o seu próprio braço robótico. Todas as peças são cortadas à laser, com base em placas de MDF. Foi pensado para ser utilizado em projetos com o Arduino, Pic e outros microcontroladores. Vamos mostrar como programar o arduino para controlar o braço de forma satisfatória.

 

Introdução

 

O Braço Robótico MDF é um típico braço mecânico desenvolvido para aplicações de robótica. Feito em MDF e de forma modular e fácil de ser montado, é ideal para projetos de prototipação e validação de sistemas robóticos. Este é o equipamento ideal para ser o primeiro braço robótico de quem está começando no mundo da robótica.

É totalmente construído em MDF, em uma placa de 3mm de espessura. As peças são todas cortadas a laser e os parafusos, porcas e demais componentes de montagem(exceto os servos) já vêm todos incluídos no kit. Pode ser montado por qualquer pessoa. Basta seguir o manual de instruções com bastante atenção. Para fazer o download do manual e ver como é feita a montagem, acesse esse link.

Braço robótico com garra aberta

A figura 1 acima apresenta o braço robótico montado com os 4 servos para controle das suas articulações. A figura 2, logo abaixo, mostra o conjunto de peças que compõem o kit. As peças devem ser cuidadosamente montadas para que o braço funcione corretamente.

Peças para braço robótico. Créditos: Eletrogate

Servos para controle de movimentos

Todas as articulações do Braço Robótico são movimentadas por um conjunto com 4 servomotores TowerPro SG90. Enviando comandos a cada servo, é possível controlar a posição de seu eixo de rotação de forma a controlar as articulações do braço mecânico de forma desejada. As articulações executam movimentos de até 180°. Além de tudo, o braço também conta com uma garra de quase 60mm para segurar e soltar pequenos objetos.

É comum que projetos em que servomotores são utilizados que os mesmos sejam conectados diretamente ao arduino. Neste caso, são 4 servos, de forma que é necessário ter uma fonte de alimentação externa, pois o arduino não é capaz de suprir toda a potência para o conjunto de 4 motores. Vamos utilizar uma fonte de protoboard em nosso projeto, conforme será explicado mais adiante.

 

Aplicações

 

As aplicações desse braço robótico em MDF são principalmente:

  • Projetos escolares e de faculdade sobre robótica;
  • Protótipos de produtos e equipamentos que necessitem de um braço robótico;
  • Validação de conceitos e de produtos;
  • Automação de processos simples;
  • Ensino e aprendizado de robótica;

Por ser um braço de bancada, aplicações industriais ou em processos comerciais são mais restritas. Apesar de que é uma ótima ferramenta para validar conceitos e testar algoritmos para braços robóticos mais robustos.

 

Descrição do Projeto

 

Neste projeto vamos montar o kit Braço Robótico em MDF e programar um Arduino UNO para controlar os quatro servos do braço. Como o Arduino não fornece potência para todos os servos, vamos utilizar uma fonte de protoboard externa para alimentar os servoacionamentos. Com arduino, vamos utilizar como software base a aplicação desenvolvida aqui no blog para controlar uma garra robótica. A garra robótica deste outro projeto é diferente da utilizada no braço robótico. Feita em acrílico e vendida apenas como garra (sem componentes maiores como o braço mecânico), a garra é aplicada para segurar e soltar objetos e pode ser afixada em diferentes superfícies.

Esse software base utiliza um potenciômetro para ler o sinal comandado pelo usuário e proporcionalmente a esse sinal modula a saída PWM aplicada ao servomotor. Em nosso projeto com o braço mecânico, como são 4 servos, vamos expandir esse projeto para fazer a leitura de 4 potenciômetros, cada um para acionar um dos servos do braço mecânico.

 

Aspectos de Hardware

 

Para a nossa montagem vamos precisar dos seguintes componentes:

  • Protoboard;
  • 2 Fontes para protoboard;
  • Jumpers para protoboard;
  • 4 Micro Servos 9g Tower Pro;
  • 4 Potenciômetros de 10k;
  • 1 Arduino UNO;
  • Kit Braço robótico em MDF para Arduino;

 

A parte mais chata(ou mais legal, dependendo do seu gosto por montagens físicas) do projeto é ter que o montar as peças do braço mecânica. Com o manual disponibilizado na parte introdutória não há muito segredo, apenas seguir com atenção as instruções do manual de montagem. Com o braço pronto para ser ligado, temos que fazer a montagem do Arduino para controlar os servos. Veja a figura abaixo:

 

Montagem Protoboard para controlar 4 servos

Aspectos de Software

 

O nosso software deve fazer a leitura de quatro potenciômetros, cada qual para controlar um servomotor. Assim, no nosso firmware, devemos utilizar quatro canais analógicos para fazer as leituras e quatro canais PWM, cada um para um servomotor diferente. Como são muitos sinais de de controle ligados no mesmo circuito, pode ser que os servos fiquem instáveis devido à ruídos. Principalmente se toda a montagem for feita no protoboard. Certifique de que os potenciômetros estão com a referência(GND) bem afixada no protoboard, bem como o VCC de cada potenciômetro.

O GND da fonte de alimentação externa usada para os servos deve estar conectado com o GND do Arduino para que todos os sinais tenham a mesma referência de tensão.

No código abaixo temos a definição dos pinos de leitura, cada um para um potenciômetro, e a declaração de quatro objetos do tipo Servo. Para declarar objetos da classe Servo é preciso incluir a biblioteca Servo.h.

 

#define potpin1  0
#define potpin2  1
#define potpin3  2
#define potpin4  3

#include <Servo.h> 
 
Servo myservoBase;  // Objeto servo para controlar a base 
Servo myservoGarra;  //Objeto servo para controlar a garra
Servo myservoAltura; //Objeto servo para controlar a altura do braço
Servo myservoProfundidade; //Objeto servo para profundidade a altura do braço
 
 
int val;    // variable to read the value from the analog pin 
 
void setup() 
{ 
  //Associa cada objeto a um pino pwm
  myservoBase.attach(9);
  myservoGarra.attach(10);
  myservoAltura.attach(11);
  myservoProfundidade.attach(6);
} 
 
void loop() 
{ 
           
  val = map(analogRead(potpin1), 0, 1023, 0, 179);    
  myservoBase.write(val);            
  
  val = map(analogRead(potpin2), 0, 1023, 0, 179);     
  myservoGarra.write(val);              
  
  val = map(analogRead(potpin3), 0, 1023, 0, 179);    
  myservoAltura.write(val);                
  
  val = map(analogRead(potpin4), 0, 1023, 0, 179);     
  myservoProfundidade.write(val);                  
  
  delay(100);                          
} 

Na função void loop vamos sempre atualizar os valores lidos dos potenciômetros e usá-los como referência para setar a posição de cada servo. Assim, qualquer controle feito no knob de um dos quatro potenciômetros será convertido em uma mudança de posição em um dos quatro servos. Dessa forma podemos controlar separadamente a base do braço, bem como as articulações(altura e profundidade do braço) e a abertura e fechamento da garra.

Repare como nós fazemos a leitura de cada pino analógico diretamente dentro da função map(), já passando o resultado da leitura como argumento da função map().

 

Considerações finais

 

Com o kit Braço Robótico em MDF e quatro micro servos TowerPro SG90 você pode implementar um braço robótico só seu. Um aspecto prático da montagem é o ruído que a montagem no protoboard e possíveis contatos mal fixados podem acarretar. Deixe todas as ligações firmes e verifique se todos os componentes estão bem referenciados ao GND.

 

Uma dica prática na hora de montar o braço seguindo o manual do fabricante: Nenhum dos parafusos deve ser apertado demais. Como é um conjunto de peças móveis, você deve usar os parafusos apenas para juntar as peças, aplicando o mínimo de força necessário. O mesmo vale para os parafusos usados para prender os “chifres” dos servo motores. Quando esses parafusos ficam muito apertados pode acontecer de até travar o giro do servo. Sendo assim, em todos os parafusos, use o mínimo de força possível, apenas o necessário para deixar as peças fixas.

No mais, deixe as suas dúvidas nos comentários para que nós possamos te ajudar! Até a próxima!

Avaliações: 5.0. de 3 votos.
Por favor, aguarde...
Vitor Vidal
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.