Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

Componentes e Materiais

Componente Quantidade Observações
Arduino Mega 2560 1
SainSmart DIY 3-Axis Control Palletizing Robot Arm Model para Arduino UNO MEGA2560 1
MeArm DIY Robot Arm Kit 1
Módulo Bluetooth HC-06 1
LCD RGB Backlight Adafruit 16x2 1
Dispositivo Android 1
Potenciômetro Rotativo (genérico) 10Kohm 4
Chave Pushbutton SparkFun 12mm 3
LED (genérico) VERMELHO, AZUL, VERDE, AMARELO 4

Aplicações e Serviços Online

Sobre o Projeto

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

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

Passo 1: Especificações

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

O robô tem duas funções básicas:

Características principais:

Passo 2: O Projeto

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

O diagrama de blocos mostra o "Bill of Material". Optei pelo Arduino MEGA para não me preocupar com número de portas (I/Os). O UNO funcionaria, mas precisaria de expansão de portas (ex: decodificador 74138).

Primeiro protótipo sendo programado em "modo local".

Para rede Bluetooth, uso o HC-06.

O app Android para "modo remoto" foi desenvolvido com MIT App Inventor 2, plataforma poderosa para apps Android. Disponível grátis na Google Play: MJRoBot Arduino Robot Arm Control.

O vídeo abaixo mostra o projeto final com programação remota.

Passo 3: Desenvolvimento do Projeto

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth
Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

Braços robóticos classificados pelo número de "juntas" ou "Graus de Liberdade" (GDL):

Passo 4: O Circuito

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

Motores servo acionam as juntas, conectados diretamente ao Arduino. Não é incomum ver "Motores de Passo" na base para maior torque e precisão. A escolha adequada dos servos é crucial (servos chineses baratos como MG995 são mal construídos, mas serviram para este projeto).

A alimentação DC dos servos deve ser separada do Arduino e outros componentes. Fonte externa de 5 ou 6V funciona (verifique DataSheet dos servos). Prática comum: capacitores 470uF entre VCC e GND para minimizar ruído dos motores DC internos. Conecte todos os "Terras" (fonte externa com pino GND do Arduino).

Se servos vibram muito, ajuste os "delays" do código. Importante dar tempo aos servos para atingir posição antes de novo comando. Verifique se servos são digitais ou analógicos: digital = 300Hz, analógico = 50Hz. Biblioteca padrão Servo.h foi feita para analógicos, pode ser modificada para digitais.

Passo 5: O Código

O projeto não é complexo, mas tem muitas variáveis. O mais prudente é defini-las claramente com comentários em arquivo único: ArmDefine.h

Este arquivo também define ângulos mínimo, máximo e iniciais dos servos. O código inclui dois conjuntos de parâmetros para os braços testados (use apenas um grupo):

// MeArm 4-GDL
#define minGrip 15
#define minBase 0
#define minShou 60
#define minElbw 60
#define maxGrip 45
#define maxBase 170
#define maxShou 180
#define maxElbw 150
#define midGrip 30
#define midBase 87
#define midShou 138
#define midElbw 100

/* SS 3-GDL
#define minGrip 75
#define minBase 5
#define minShou 5
#define minElbw 0
#define maxGrip 125
#define maxBase 150
#define maxShou 155
#define maxElbw 0
#define midGrip 100
#define midBase 90
#define midShou 90
#define midElbw 0 */

Cada tipo de braço tem parâmetros diferentes. Sugiro: inicialmente potenciômetros no ponto médio e mapeamento PWM padrão (Max=255, Min=0, Mid=126). Vá variando os pots (um a um) e observe no Serial Monitor (ou LCD) os valores mín/máx onde o braço funciona bem. Esses serão os valores finais para ArmDefine.h.

Para "gravar" conjuntos de coordenadas (passos) que o robô deve executar, uso arrays de dados:

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0; // Índice para array de posições usadas em tarefas gravadas

Não mantenho posições "armazenadas" permanentemente; ao fim do programa, índice volta a zero e robô espera nova sequência. Alternativamente, poderia guardar no EEPROM do Arduino para persistir programas.

Passo 6: Lógica do Programa

O bloco principal (Loop) é simples:

void loop() {
  checkBTcmd();
  defineLocalRemote();
  execTaskCmd = digitalRead(execTaskPin);
  if (execTaskCmd == HIGH || command == "runon") {
    RunProgram();
  } else {
    recArmPosition();
  }
  command = "";
}

A função checkBTcmd() monta string com caracteres que chegam do módulo BT, passa para variável command.

A função defineLocalRemote() analisa command para mudar modo ou disparar alarme. Se alarme acionado no Android, braço deve ir para modo Remoto.

A função RunProgram() prepara LEDs, etc., e invoca ExecuteTask(), que contém a lógica de execução da sequência. Incrementa positionIndex enviando dados de posição ao braço via armPosition(grip, base, shoulder, elbow).

A função que realmente comanda servos e grava "passos" é recArmPosition(). Define posicionamento dos servos via pots ou "sliders" do app Android. A cada mudança, envia coordenadas via armPosition. A leitura real e ativação dos servos ocorre quando comando "SALVAR" ou "PROGRAMAR" é acionado. Nesse momento, índice do array incrementa e passo é armazenado.

Para simplificar, todo código baseado em funções específicas:

Importante: Arduino executa instruções a 16MHz, botões lidos centenas/milhares vezes/seg → debounce essencial no botão de gravação.

O vídeo mostra o braço 4GDL "meArm" sendo programado remotamente via app Android.

Código completo no GitHub: https://github.com/Mjrovai/MJRoBot-Programmed-Arm

Arquivos do projeto: F49C85FIL8CVX0P.ino, FC4OQJNIL8CVX1C.h, FBYPQAMIL8CVX1D.ino, F2SBAXVIL8CVX1E.ino

Passo 7: Conclusão

Kit Braço Robótico 3 Eixos Programável – Controle Local e Remoto com Arduino e Bluetooth

Espero que este projeto ajude outros a entrar no mundo da Eletrônica, Robótica e IoT! Mais projetos no blog: MJRoBot.org

Saudações do sul do mundo! Até o próximo tutorial!

Obrigado,
Marcelo

Código

Trecho de Código #1 (Arduino) - Definições de Parâmetros

// MeArm 4-GDL
#define minGrip 15
#define minBase 0
#define minShou 60
#define minElbw 60
#define maxGrip 45
#define maxBase 170
#define maxShou 180
#define maxElbw 150
#define midGrip 30
#define midBase 87
#define midShou 138
#define midElbw 100

/* SS 3-GDL
#define minGrip 75
#define minBase 5
#define minShou 5
#define minElbw 0
#define maxGrip 125
#define maxBase 150
#define maxShou 155
#define maxElbw 0
#define midGrip 100
#define midBase 90
#define midShou 90
#define midElbw 0 */

Trecho de Código #2 (Arduino) - Arrays de Posição

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0; // Índice para array de posições usadas em tarefas gravadas

Trecho de Código #3 (Arduino) - Loop Principal

void loop() {
  checkBTcmd();
  defineLocalRemote();
  execTaskCmd = digitalRead(execTaskPin);
  if (execTaskCmd == HIGH || command == "runon") {
    RunProgram();
  } else {
    recArmPosition();
  }
  command = "";
}

GitHub

https://github.com/Mjrovai/MJRoBot-Programmed-Arm

Esquemáticos

Braço Robótico

Diagrama no GitHub

Processo de manufatura

  1. Controle Remoto Universal Android com Arduino, 1Sheeld e IR
  2. Como Braços Robóticos Industriais Transformam a Manufatura: Principais Benefícios
  3. Manipuladores Robóticos vs. Braços Robóticos: Diferenças-Chave Explicadas
  4. Crie Animações e Jogos Envolventes em LCD com Arduino UNO
  5. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  6. Controle IoT Remoto de Braço Robótico Personalizado
  7. Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
  8. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  9. Construa um Voltímetro DIY com Arduino e Display Nokia 5110 – Guia Passo a Passo
  10. Braço Robótico Inteligente Controlado por Arduino: Tutorial DIY Fácil