Garra Robótica

O Braço Robótico Arduino é um dispositivo criado especialmente para iniciantes no campo da automação de robôs. Ele oferece uma ampla gama de opções de movimento e ações para uma variedade de projetos. É frequentemente usado em conjunto com microcontroladores como o Raspberry Pi ou o Arduino, por exemplo.

Design sem nome

Foi projetada como uma solução acessível e altamente funcional, a Garra Robótica é montada com 4 Micro Servo Motores de 180º, que são responsáveis pelos movimentos executados pelo braço.

Normalmente, os servos são conectados diretamente ao Arduino. No entanto, devido ao uso de vários servos neste caso, será necessário um drive controlador. Esse controlador alimentará e controlará os servos motores sem reduzir sua capacidade, além de fornecer a corrente necessária para todos os equipamentos.

Para ampliar a capacidade do Arduino e aumentar o número de portas de entrada e saída, será utilizado um Arduino Sensor Shield. Isso permitirá expandir as capacidades do Arduino e facilitar a conexão de sensores e outros dispositivos.

Para controlar o movimento de cada motor, utilizaremos um joystick e dois potenciometros. Conforme o joystick (ou potenciometro) for movimentado, o servo e, por consequência, o braço robótico se moverão instantaneamente.

Para executar este projeto, você precisará de uma biblioteca especial que não está incluída no histórico do Arduino. Para obtê-la, acesse o site GitHub e faça o download da biblioteca principal.

 

Ao clicar no link acima, uma janela semelhante a esta será exibida. Em seguida, clique no botão verde escrito “Clone or download” e faça o download da biblioteca clicando em “Download ZIP”. Observe:

Depois de ter baixado o arquivo, descompacte o mesmo em uma pasta denominada “VarSpeedServo” dentro da pasta libraries da IDE do seu Arduino

Calibração dos motores

Antes de realizar a montagem da garra, calibre os motores para que estejam no ângulo correto quando forem montados.

				
					#include <Servo.h> 
 
Servo middle, left, right, claw ;  // cria 4 objetos 'servo'
 
void setup() 
{ 
  Serial.begin(9600);
  middle.attach(11);  // conectar no pino 11 o servo que vai na base
  left.attach(10);  // conectar no pino 10 o servo que move o lado esquerdo
  right.attach(9);  // conectar no pino 9 o servo que move o lado direito
  claw.attach(6);  // conectar no pino 6 o servo que move a garra
} 
 
void loop() 
{ 
  middle.write(90); // sets the servo position according to the value(degrees)ajusta a posição do servo de acordo com o valor (graus)
  left.write(90); // repete a mesma ação para o lado esquerdo
  right.write(90); // repete a mesma ação para o lado direito
  claw.write(25); // repete a mesma ação para a garra
  delay(300); // delay ate repetir a ação para não danificar os servos
} 
				
			

Montagem física do projeto

Para montar a estrutura da garra siga nosso Manual de Montagem aqui.

Para fazer a ligação correspondente basta observar com atenção o esquema abaixo e reproduzir em seu projeto a pinagem utilizada.

Não se esqueça de conectar a fonte de alimentação externa na entrada da placa Sensor Shield, para fornecer a energia necessária para os servo motores.

				
					// Código para teste de funcionamento da Garra Robótica para Arduino;
// Controle de movimento realizado por Joysticks e Potenciômetros;

 #include <VarSpeedServo.h> // Inclui a Biblioteca VarSpeedServo.h
 
VarSpeedServo servo_sobe; //Cria objeto para controlar o servo sobe
VarSpeedServo servo_frente; //Cria objeto para controlar o servo frente
VarSpeedServo servo_garra; //Cria objeto para controlar o servo garra
VarSpeedServo servo_corpo; //Cria objeto para controlar o servo corpo
 
int pino_x = A0; //Inicializa o pino analógico ao eixo X do joystick
int pino_y = A1; //Inicializa o pino analógico ao eixo Y do joystick
int pino_z = A3; //Inicializa o pino analógico ao Potenciometro 1
int pino_w = A4; //Inicializa o pino analógico ao potenciometro 2
int val_x; //Armazena o valor lido pelo eixo X do joystick
int val_y; //Armazena o valor lido pelo eixo Y do joystick
int val_z; //Armazena o valor lido pelo eixo do potenciometro
int val_w; //Armazena o valor lido pelo eixo do potenciometro
 
void setup() {
 servo_sobe.attach(5, 1, 180); //Define que o servo está conectado a porta 5 do Arduino
 servo_frente.attach(3, 1, 180); //Define que o servo está conectado a porta 3 do Arduino
 servo_garra.attach(10, 1, 180); //Define que o servo está conectado a porta 10 do Arduino
 servo_corpo.attach(11, 1, 180); //Define que o servo está conectado a porta 11 do Arduino
}
 
void loop() {
 val_x = analogRead(pino_x); //Recebe o valor lido pelo eixo X do joystick
 val_x = map(val_x, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_sobe.slowmove(val_x, 60); //Movimenta o servo até a posição definida pelo eixo X
 
 val_y = analogRead(pino_y); //Recebe o valor lido pelo eixo Y do joystick
 val_y = map(val_y, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_frente.slowmove(val_y, 60); //Movimenta o servo até a posição definida pelo eixo Y
 
 val_z = analogRead(pino_z); //Recebe o valor lido pelo eixo do potenciometro
 val_z = map(val_z, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_garra.slowmove(val_z, 60); //Movimenta o servo até a posição definida pelo eixo 
 
 val_w = analogRead(pino_w); //Recebe o valor lido pelo eixo do potenciometro
 val_w = map(val_w, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_corpo.slowmove(val_w, 60); //Movimenta o servo até a posição definida pelo eixo 
 
 delay(30);
}
				
			

Conclusão

A Garra Robótica é um produto altamente funcional que pode ser aplicado em uma ampla variedade de projetos.

 

No entanto, ao utilizar um potenciômetro em conjunto, é importante ter cuidado e evitar movimentos bruscos devido ao atraso na comunicação, o que pode resultar em falhas nos movimentos do servo.

Quanto ao uso do joystick, é importante destacar que o braço robótico retorna à sua posição inicial quando está em repouso, ou seja, ele não mantém uma localização fixa e acompanha todos os movimentos reproduzidos pelo joystick.

 

Confira nossa linha completa de produtos Arduino e acessórios em nosso site, Multipeças.

 

CARRINHO

close