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

Braço Robótico de Solda Automatizado

Componentes e suprimentos

Motor de passo 28BYJ-48 com módulo de driver ULN2003
× 1
Arduino UNO
× 1
Servo motor TowerPro MG955
× 1
MÓDULO I2C SERIAL LCD 1602
× 1
Módulo Stepdown
× 1
OpenBuilds NEMA 17 Stepper Motor
× 1

Ferramentas e máquinas necessárias

Cortador a laser (genérico)
Conjunto de brocas de corte de ferramenta rotativa para Dremel

Aplicativos e serviços online

Arduino IDE
Microsoft Visual Studio 2015

Sobre este projeto





Introdução


A ideia deste projeto veio à minha mente acidentalmente quando eu estava procurando as diferentes habilidades dos braços robóticos, então descobri que há alguns que cobrem essa área de uso (Soldagem automatizada e braço robótico de soldagem).

Na verdade eu já tive uma experiência antes de construir projetos semelhantes, mas desta vez o projeto foi muito útil e eficaz.





Antes de decidir o formato dele, vi muitos aplicativos e outros projetos, especialmente no campo da indústria. Projetos de código aberto me ajudaram muito a descobrir o formato certo e adequado.





Isso se deve à ciência por trás da alimentação visual de nossos cérebros.





Etapa 1:Design






No começo eu vi muitos projetos profissionais que não foram capazes de implementar devido à complexidade.

Então decidi fazer meu próprio produto inspirado nos outros projetos, então usei o Google Sketch up 2017 pro. Cada parte foi projetada para ser montada lado a lado em uma ordem específica, conforme mostrado na próxima imagem.

E antes de montá-lo tive que testar as peças e escolher o ferro de soldar adequado, isso aconteceu desenhando um projeto de acabamento virtual como guia para mim.

Esses desenhos mostram a forma real em tamanho real do acabamento e as dimensões corretas de cada peça para escolher o ferro de solda certo.





Etapa 2:operação e instalação


Durante o trabalho enfrentei alguns obstáculos que temos que anunciar.

1. Os braços eram muito pesados ​​para serem segurados pelos pequenos motores de passo, e corrigimos isso na próxima versão ou impressão cortada a laser.





2. Como o modelo era feito de material plástico, o atrito da base giratória era alto e os movimentos não eram suaves.





A primeira solução foi comprar um motor de passo maior, capaz de suportar o peso e o atrito, e redesenhamos a base para caber em um motor de passo maior.

Na verdade, o problema se acalma e o motor maior não o corrige, e isso ocorre porque o atrito entre duas superfícies de plástico ao lado não consegue ajustar o potenciômetro por cento. A posição de rotação máxima não é a corrente máxima que o driver pode fornecer. Você deve usar a técnica indicada pelo fabricante, onde mede a tensão girando a panela.

Em seguida, mudei totalmente o desenho da base e coloquei um servo motor com engrenagem de metal no lugar de mecanismo de engrenagens.

3. Voltagem



A placa Arduino pode ser alimentada pelo conector de alimentação DC (7 - 12V), pelo conector USB (5V) ou pelo pino VIN da placa (7-12V). Fornecer tensão através dos pinos de 5 V ou 3,3 V ignora o regulador e decidimos comprar um cabo USB especial que suporta 5 V do PC ou qualquer fonte de alimentação.

para que os motores de passo e os outros componentes funcionem corretamente com apenas 5 volts e para proteger as peças de qualquer problema, corrigimos o módulo de redução.

O módulo abaixador é um conversor buck (conversor abaixador) é um conversor de energia DC para DC que reduz a tensão (enquanto aumenta a corrente) de sua entrada (alimentação) para sua saída (carga) e também mantém a estabilidade ou a tensão.





Etapa 3:modificações






Após algumas modificações, mudamos o design do modelo reduzindo o tamanho dos braços e fazendo um orifício adequado para a engrenagem do servo motor, conforme mostrado.

E durante o teste, o servo motor conseguiu girar o peso 180 graus corretamente porque seu alto torque significa que um mecanismo é capaz de lidar com cargas mais pesadas. Quanta força de giro um servomecanismo pode produzir depende de fatores de projeto - tensão de alimentação, velocidade do eixo, etc.

Também usar I2c foi bom porque ele usa apenas dois pinos, e você pode colocar vários dispositivos i2c nos mesmos dois pinos. Por exemplo, você pode ter até 8 mochilas de LCD + LCDs em dois pinos! A má notícia é que você precisa usar o pino i2c de 'hardware'.





Etapa 4:suporte ou garra do ferro de solda






A pinça foi fixada usando um servo motor de engrenagem de metal para suportar o peso do ferro de solda.
  servo.attach (9, 1000, 2000); servo.write (constrain (ângulo, 10, 160));  

No início tínhamos um obstáculo que era o motor balançando e vibrando até que encontramos um código complicado que fornece anjos de restrições.

Porque nem todos os servos têm 180 graus de rotação completos. Muitos não o fazem.

Então, escrevemos um teste para determinar onde estão os limites mecânicos. Use servo.write Microseconds em vez de servo.write Eu gosto mais disso porque permite que você use 1000-2000 como o intervalo base. E muitos servos darão suporte fora dessa faixa, de 600 a 2400.

Então, tentamos valores diferentes e vemos de onde você tira o buzz que indica que você atingiu o limite. Então, apenas fique dentro desses limites ao escrever. Você pode definir esses limites ao usar servo.attach (pin, min, max)

Encontre a verdadeira amplitude de movimento e certifique-se de que o código não tente empurrá-lo além das paradas finais; a função constrain () do Arduino é útil para isso.





Etapa 5:codificação










O ambiente Arduino usando bibliotecas pode ser estendido por meio do uso de bibliotecas, assim como a maioria das plataformas de programação. Bibliotecas fornecem funcionalidade extra para uso em esboços, por exemplo, trabalhar com hardware ou manipular dados. Para usar uma biblioteca em um esboço.
  #include AccelStepper.h # include MultiStepper.h # include Servo.h # include Wire.h #include LiquidCrystal_I2C.h  




















Código

  • Steppers X Y código Z
Steppers X Y código Z Arduino
 #include "AccelStepper.h" // AccelStepper SetupAccelStepper stepperX (1, ​​2, 3); // 1 =Interface do Easy Driver // UNO Pino 2 conectado ao pino STEP do Easy Driver // Pino UNO 3 conectado ao pino DIR do Easy Driver AccelStepper stepperZ (1, 5, 6); // 1 =Interface do Easy Driver // UNO Pino 5 conectado ao pino STEP do Easy Driver // Pino UNO 6 conectado ao pino DIR do Easy DriverAccelStepper stepperY (7, 8, 9); // 1 =Interface do Easy Driver // UNO Pino 5 conectado ao pino STEP do Easy Driver // Pino UNO 6 conectado ao pino DIR do Easy Driver // Stepper Travel Variableslong TravelX; // Usado para armazenar o valor de X inserido no Serial Monitorlong TravelZ; // Usado para armazenar o valor Z inserido no Serial Monitorlong TravelY; // Usado para armazenar o valor Y inserido no Serial Monitorint move_finished =1; // Usado para verificar se a movimentação foi concluídavoid setup () {Serial.begin (9600); // Inicie o monitor serial com velocidade de 9600 Bauds // Imprima as instruções no monitor serial no início Serial.println ("Insira a distância de viagem separada por uma vírgula:X, Z"); Serial.print ("Insira os valores de movimento agora:"); // Definir velocidade máxima e aceleração de cada stepper stepperX.setMaxSpeed ​​(500.0); // Definir velocidade máxima do eixo X stepperX.setAcceleration (500.0); // Aceleração do eixo X stepperZ.setMaxSpeed ​​(250.0); // Definir velocidade máxima do eixo Z mais lenta para rotação stepperZ.setAcceleration (250.0); // Aceleração do eixo Z stepperY.setMaxSpeed ​​(250.0); // Definir velocidade máxima do eixo Y mais lenta para rotação stepperY.setAcceleration (250.0); // Aceleração do eixo Y} void loop () {while (Serial.available ()> 0) {// Verifique se os valores estão disponíveis no Buffer Serial move_finished =0; // Defina a variável para verificar o movimento do Steppers TravelX =Serial.parseInt (); // Coloca o primeiro valor numérico do buffer na variável TravelX Serial.print (TravelX); Serial.print ("X Viagem,"); TravelZ =Serial.parseInt (); // Coloca o segundo valor numérico do buffer na variável TravelZ Serial.print (TravelZ); Serial.print ("Z Travel,"); TravelY =Serial.parseInt (); // Coloca o segundo valor numérico do buffer na variável TravelY Serial.print (TravelY); Serial.println ("Viagem Y"); stepperX.moveTo (TravelX); // Define a nova posição de movimento para o X Stepper stepperZ.moveTo (TravelZ); // Define a nova posição de movimento para Z Stepper stepperY.moveTo (TravelY); // Define a nova posição de movimento para Z Stepper delay (1000); // Aguarde 1 segundo antes de mover os Steppers Serial.print ("Movendo os Steppers para a posição ..."); } // Verifique se os Steppers alcançaram a posição desejada if ((stepperX.distanceToGo ()! =0) || (stepperZ.distanceToGo ()! =0) || (stepperY.distanceToGo ()! =0)) {stepperX .corre(); // Mova o Stepper X para a posição stepperZ.run (); // Mova o Stepper Z para a posição stepperY.run (); // Mova o Stepper y para a posição} // Se o movimento for concluído exibir a mensagem no Monitor Serial if ((move_finished ==0) &&(stepperX.distanceToGo () ==0) &&(stepperZ.distanceToGo () ==0) &&(stepperY.distanceToGo () ==0)) {Serial.println ("CONCLUÍDO!"); Serial.println (""); Serial.println ("Insira os valores do próximo movimento (0,0,0 para redefinir):"); // Prepare-se para os novos valores do monitor Serial move_finished =1; // Redefine a variável de movimentação}} 

Esquemas


Processo de manufatura

  1. Makerarm:Um braço robótico mega-legal para fabricantes
  2. Projetando controles de motor para sistemas robóticos
  3. O controlador do motor integra o núcleo Arm Cortex-M0
  4. O projeto de referência simplifica o controle do motor robótico industrial
  5. Braço robótico:como é feito?
  6. Braços robóticos na manufatura e seus benefícios
  7. Servo motor para braço robótico:O que vai acontecer?
  8. Células robóticas permitem a disposição automatizada de peças
  9. Mercado de braços robóticos crescerá para US$ 14,78 bilhões até 2026
  10. O braço robótico industrial - um boom de fabricação