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

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Componentes e Materiais

Aplicativos e Serviços Online

Sobre o Projeto

Sempre admirei tecnologias de manufatura moderna e o papel crucial de robôs em áreas como movimentação de materiais, montagem, soldagem, corte e armazéns. Construir este braço robótico foi um desafio. Comecei com um design simples de 2016 (fortzeroas), mas decidi não controlá-lo manualmente. Criei uma aplicação de automação em C# Windows Application com interface semelhante a softwares industriais.

Passo 1: Materiais

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Material principal: MDF (2mm para estrutura, 4mm para base). Plantas disponíveis para download no último passo; imprima, cole no MDF, recorte e fure. Usei ferramenta rotativa para cortar e furar. Para a base, improvise.

Passo 2: Pintura e Estilo

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Usei as mesmas plantas para criar decalques e formas geométricas no Photoshop, imprimir e colar com cola branca para aparência realista.

Passo 3: Montagem da Estrutura

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Montagem simples: fixe os servos com parafusos. Usei palitos de madeira grossos e cola instantânea para unir lados direito e esquerdo, reduzindo peso.

Passo 4: Garra (Mecanismo de Pinça)

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Dobrei duas hastes metálicas com alicate, furei peça de madeira de 3mm e fixei com cola instantânea.

Passo 5: Fabricação da Base

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Base em MDF 4mm (17cm x 10cm), furo para servo de base 9g. Para reduzir atrito, usei tubo de papelão forte (2.5cm altura, 10cm diâmetro) com furo para eixo do servo.

Passo 6: Eletrônica

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Com mais de dois servos, use fonte externa. Usei três micro servos 9g e um servo grande. Testei virtualmente no Tinkercad. Alimentação: 4 pilhas AA (6V). Fiz protoboard e depois dock de expansão simples para Arduino Nano.

Passo 7: Código Arduino

  1. Baixe e instale Arduino IDE mais recente: arduino.cc
  2. Conecte Arduino via USB.
  3. Tools > Board > selecione sua placa.
  4. Copie e cole o código na IDE.
  5. Verifique (✔) e faça upload (➤).

Passo 8: Aplicação de Automação

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Minha parte favorita: automatizar projeto Arduino via PC. Inicialmente usei Processing 3 para simular servos e encontrar ângulos fixos. Gravei arrays de ângulos (Base, Ombro, Cotovelo, Garra) e usei na aplicação Windows.

Funcionalidades:

  1. Controle de Movimento: Modo manual via trackbars/teclado:
    • Garra: botões abrir/fechar.
    • Base: trackbar ou setas ←/→.
    • Ombro: trackbar ou setas ↑/↓.
    • Cotovelo: trackbar ou teclas W/S.
  2. Gravação de Movimento: Clique "Rec. Position" (ou tecla R) para salvar posição atual. Aplicação detecta qual motor moveu e salva em lista. Botão "Start Auto mode" reproduz sequência.
  3. Monitoramento: Interface gráfica desenha gráfico de cada passo + tabela com ângulo e tempo exato.

Passo 9: Atualizações (Ago 2018)

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R
Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Refiz o design em corte a laser (MDF 3mm) com modificações, incluindo joystick personalizado.

Código

Task.ino (Arduino)
int delayT = 350;
void Home() {
  MyServo0.write(valGripper); delay(15);
  MyServo.write(valBase); delay(30);
  MyServo2.write(valShoulder); delay(30);
  MyServo3.write(valElbow); delay(delayT);
}
void Pick() {
  MyServo.write(4); delay(delayT);
  MyServo3.write(125); MyServo2.write(95); delay(delayT);
  MyServo0.write(50); delay(delayT);
  MyServo0.write(2); delay(delayT);
  MyServo2.write(60); MyServo3.write(80); delay(delayT);
  Serial.println("Object Picked");
}
void Drop() {
  MyServo.write(145); delay(delayT);
  MyServo2.write(80); delay(15);
  MyServo3.write(115); delay(delayT);
  MyServo0.write(40); delay(delayT);
  MyServo3.write(90); delay(delayT);
  Serial.println("Object Dropped");
}
void Playback() {
  char* command = strtok(ByteReceived, "&");
  while (command != 0) {
    char* separator = strchr(command, ':');
    if (separator != 0) {
      *separator = 0;
      int servoId = atoi(command);
      ++separator;
      int angle = atoi(separator);
      if (servoId = 1) { MyServo.write(angle); delay(delayT); }
      else if (servoId = 2) { MyServo2.write(angle); delay(delayT); }
      else if (servoId = 3) { MyServo3.write(angle); delay(delayT); }
    }
    command = strtok(0, "&");
  }
}
RobotArm.ino (Arduino)
// written by AhmedAzouz
#include <Servo.h>
Servo MyServo, MyServo2, MyServo3, MyServo0;
char ByteReceived;
int MyPosition, MyPosition2, MyPosition3, MyPositionG;
int runCounter = 0;
int ledPin = A5;
int valGripper = 30, valBase = 70, valShoulder = 25, valElbow = 150;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  digitalWrite(13, LOW);
  MyServo0.attach(12); MyServo.attach(11); MyServo2.attach(13); MyServo3.attach(10);
  MyServo0.write(valGripper); delay(15);
  MyServo.write(valBase); delay(30);
  MyServo2.write(valShoulder); delay(30);
  MyServo3.write(valElbow); delay(300);
}

void loop() {
  Serial.print("Base: "); Serial.print(valBase); Serial.print("\t");
  Serial.print("Shou: "); Serial.print(valShoulder); Serial.print("\t");
  Serial.print("Elbow: "); Serial.print(valElbow); Serial.print("\t");
  Serial.print("Grip: "); Serial.println(valGripper);

  while (Serial.available() > 0) {
    ByteReceived = Serial.read();
    switch (ByteReceived) {
      case 'n': digitalWrite(ledPin, HIGH); Serial.println("LED is on"); break;
      case 'f': digitalWrite(ledPin, LOW); Serial.println("LED is off"); break;
      case 'l': MyPosition = MyServo.read() + 2; MyServo.write(MyPosition); Serial.print("Base\t"); Serial.println(MyServo.read()); delay(15); break;
      case 'r': MyPosition = MyServo.read() - 2; MyServo.write(MyPosition); Serial.print("Base\t"); Serial.println(MyServo.read()); delay(15); break;
      case 'u': MyPosition2 = MyServo2.read() + 2; MyServo2.write(MyPosition2); Serial.print("Elbow\t"); Serial.println(MyServo2.read()); delay(15); break;
      case 'd': MyPosition2 = MyServo2.read() - 2; MyServo2.write(MyPosition2); Serial.print("Elbow\t"); Serial.println(MyServo2.read()); delay(15); break;
      case 'w': MyPosition3 = MyServo3.read() + 2; MyServo3.write(MyPosition3); Serial.print("Shoulder\t"); Serial.println(MyServo3.read()); delay(15); break;
      case 's': MyPosition3 = MyServo3.read() - 2; MyServo3.write(MyPosition3); Serial.print("Shoulder\t"); Serial.println(MyServo3.read()); delay(15); break;
      case 'o': MyServo0.write(30); Serial.print("Gripper Open\t"); Serial.println(MyServo0.read()); delay(15); break;
      case 'c': MyServo0.write(1); Serial.print("Gripper Close\t"); Serial.println(MyServo0.read()); delay(15); break;
      case 'q': digitalWrite(ledPin, HIGH); Serial.println("Default Dropped activated!"); Pick(); Drop(); Home(); digitalWrite(ledPin, LOW); break;
      case 'h': Home(); digitalWrite(ledPin, LOW); break;
      default: digitalWrite(ledPin, HIGH); Serial.println("Automatic mood activated!"); Pick(); Playback(); Home(); digitalWrite(ledPin, LOW); break;
    }
  }
}

Peças Personalizadas e Gabinetes

f98t2axin238k2n_khGWAEIqdl.skp (SketchUp)

Esquemáticos

Construa um Braço Robótico Preciso Controlado por PC com Arduino Nano e Servos Tower Pro MG996R

Processo de manufatura

  1. Makerarm: O Braço Robótico Desktop All‑in‑One para Makers
  2. Como Braços Robóticos São Construídos: Design e Função
  3. Como Braços Robóticos Industriais Transformam a Manufatura: Principais Benefícios
  4. Braços Robóticos Industriais: Impulsionando Eficiência de Produção e Valor da Força de Trabalho
  5. Braços Robóticos Hidráulicos na Manufatura: Guia de Especialista
  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. Mercado de Robôs SCARA Alcançará US$14,78 Bi até 2026, Impulsionando Crescimento da Automação
  10. Braços Robóticos Industriais: Impulsionando a Revolução na Manufatura