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 do robô de papelão gravável

Componentes e suprimentos

Arduino UNO
× 1
Servo de tamanho normal
× 3
Micro servo motor SG90
× 1
Breadboard (genérico)
× 1
Fonte de alimentação 5V
× 1

Ferramentas e máquinas necessárias

Pistola de cola quente (genérica)

Aplicativos e serviços online

Arduino IDE
Python

Sobre este projeto





Sobre


Este é um braço robótico simples que pode registrar e reproduzir posições. É feito de materiais facilmente disponíveis, como papelão e cola quente, o que o torna fácil de construir.

Você controla o braço com uma interface gráfica no computador que envia dados para o Arduino que controla o braço. Existem controles deslizantes para controlar cada servo e botões para registrar as posições e reproduzir o que você gravou. Você também pode salvar e abrir gravações anteriores.

Aqui está uma demonstração disso em ação:





Instruções


1.) Baixe e imprima o modelo de recorte de papelão na seção de peças personalizadas e gabinetes na parte inferior da página. Use esse modelo para cortar as partes de papelão.

2.) Monte a parte do braço usando o vídeo acima como guia. A construção começa em 0:22 do vídeo.

3.) Construa o circuito com base no esquema na parte inferior da página.

4.) Baixe o "Código do Arduino do Robot Arm" na parte inferior da página na seção de código na segunda guia. Em seguida, carregue isso no braço.

5.) Baixe o código "Interface do usuário Python" na parte inferior da página na seção de código na primeira guia. Então, abra-o. Você deve ter o Python instalado para executá-lo, que pode ser baixado aqui:https://www.python.org/

Você também precisará da biblioteca PySerial para Python (https://pypi.org/project/pyserial/). Você pode instalá-lo executando "pip install pyserial".

6.) Conecte o braço, execute o código "Python User Interface" e digite a porta COM do Arduino (pode ser encontrada no Gerenciador de Dispositivos no Windows). Agora você está pronto para usá-lo!

Se não funcionar, tente aumentar o time.sleep (0.15) na linha 20 do código Python para algo maior, como 0.2 ou 0.3

Código

  • Interface do usuário Python
  • Código do Arduino do braço do robô
Interface do usuário Python Python
 from tkinter import * from tkinter import filedialogimport serialimport timeport_opened =Falsedef set_port ():global port_opened, arduino com_port =port_input.get () arduino =serial.Serial (com_port, 9600) port_opened =True print ("Porta COM definida como :"+ com_port) def send_positions (position):message =" {0:0 =3d} ". format (position [0]) +" {0:0 =3d} ". format (position [1]) +" {0:0 =3d} ". Formato (posição [2]) +" {0:0 =3d} ". Formato (posição [3]) +" {0:0 =3d} ". Formato (posição [4 ]) + "\ n" arduino.write (str.encode (message)) print (message, end ='') time.sleep (0.2) saved_positions =[] def save_positions ():saved_positions.append ([servo1_slider.get (), servo2_slider.get (), servo3_slider.get (), servo4_slider.get (), servo5_slider.get ()]); print ("posições salvas:" + str (posições_guardadas)) def posições_de_play ():para a posição em posições_guardadas:print ("posições salvas:" + posição (posição)) posições_de_site (posição); time.sleep (1) def clear_all_positions ():global saved_positions saved_positions =[] print ("limpou todas as posições") def clear_last_positions ():global saved_positions removed =saved_positions.pop () print ("removido:" + str (removido) ) print ("posições salvas:" + str (posições_guardadas)) def open_file ():nome_do_arquivo global salvo =filedialog.askopenfilename (initialdir ="/", title ="Selecione um arquivo", filetypes =(("Arquivos de texto", "* .txt *"), ("todos os arquivos", "*. *"))) arquivo =abrir (nome do arquivo, "r") dados =arquivo.read () salvar_posições =eval (dados) arquivo.close () print ("aberto:" + nome do arquivo) def save_file ():save_file =filedialog.asksaveasfile (mode ='w', defaultextension =". txt") save_file.write (str (saved_positions)) save_file.close () print (" arquivo salvo ") def Instructions ():print (" 1.) Defina a porta COM do Arduino e clique em Enter. Isso pode ser encontrado no Gerenciador de Dispositivos no Windows ") print (" 2.) Mova os servos do braço usando os controles deslizantes ") imprimir ("3.) Para gravar uma posição, clique em Gravar Posição") imprimir ("4.) Para reproduzir a posição gravada posições, clique em Repetir Posições ") print (" \ nPara salvar o que você gravou, vá para Arquivo> Salvar Arquivo. ") print (" Para abrir um arquivo salvo anteriormente, vá para Arquivo> Abrir Arquivo. ") window =Tk () window.title ("Robot Arm Controller 2") window.minsize (355,300) port_label =Label (window, text ="Definir porta:"); port_label.place (x =10, y =10); port_input =Entrada (janela) port_input.place (x =10, y =35) port_button =Botão (janela, texto ="Enter", comando =set_port) port_button.place (x =135, y =32) servo1_slider =Escala (janela, from_ =180, to =0) servo1_slider.place (x =0, y =100) servo1_label =Label (window, text ="Servo 1") servo1_label.place (x =10, y =80) servo2_slider =Scale (window , from_ =180, to =0) servo2_slider.place (x =70, y =100) servo2_label =Label (window, text ="Servo 2") servo2_label.place (x =80, y =80) servo3_slider =Scale ( janela, de_ =180, a =0) servo3_slider.place (x =140, y =100) servo3_label =Etiqueta (janela, texto ="Servo 3") servo3_label.place (x =150, y =80) servo4_slider =Escala (janela, from_ =180, to =0) servo4_slider.place (x =210, y =100) servo4_label =Label ( janela, texto ="Servo 4") servo4_label.place (x =220, y =80) servo5_slider =Escala (janela, de_ =180, a =0) servo5_slider.place (x =280, y =100) servo5_label =Etiqueta (janela, texto ="Servo 5") servo5_label.place (x =290, y =80) save_button =Botão (janela, texto ="Posição de registro", comando =save_positions) save_button.place (x =10, y =220 ) clear_button =Botão (janela, texto ="Limpar última posição", comando =clear_last_positions) clear_button.place (x =120, y =220) clear_button =Botão (janela, texto ="Limpar todas as posições", comando =clear_all_positions) clear_button .place (x =120, y =255) play_button =Botão (janela, texto ="Replay Positions", command =play_positions, height =3) play_button.place (x =250, y =220) menubar =Menu (janela) filemenu =Menu (menubar, tearoff =0) filemenu.add_command (label ="Abrir Arquivo", command =open_file) filemenu.add_command (label ="Salvar Arquivo", command =save_file) menubar.add_cascade (label ="Arquivo", menu =filemenu) editmenu =Menu (menubar, tearoff =0) editmenu.add_command (label ="Limpar a última posição", command =clear_last_positions) editmenu.add _command (label ="Limpar todas as posições", command =clear_all_positions) menubar.add_cascade (label ="Editar", menu =editmenu) helpmenu =Menu (menubar, tearoff =0) helpmenu.add_command (label ="Como usar (impresso no console) ", comando =instruções) menubar.add_cascade (label =" Ajuda ", menu =helpmenu) window.config (menu =menubar) enquanto True:window.update () if (port_opened):send_positions ([servo1_slider.get (), servo2_slider.get (), servo3_slider.get (), servo4_slider.get (), servo5_slider.get ()]) 
Código do Arduino do braço do robô Arduino
 #include  Servo servo1; Servo servo2; Servo servo3; Servo servo4; Servo servo5; int servoPosições [5]; configuração vazia () {Serial.begin (9600); servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); servo5.attach (10);} void loop () {while (Serial.available ()) {String input =Serial.readStringUntil ('\ n'); servoPositions [0] =input.substring (0,3) .toInt (); servoPositions [1] =input.substring (3,6) .toInt (); servoPositions [2] =input.substring (6,9) .toInt (); servoPositions [3] =input.substring (9,12) .toInt (); servoPositions [4] =input.substring (12,15) .toInt (); } servo1.write (servoPositions [0]); servo2.write (servoPositions [1]); servo3.write (servoPositions [2]); servo4.write (servoPositions [3]); servo5.write (servoPositions [4]); atraso (500);} 

Peças personalizadas e gabinetes

Esquemas


Processo de manufatura

  1. Dados digitais Arduino
  2. Braço do robô MeArm - Seu robô - V1.0
  3. Homem de Ferro
  4. Encontre-me
  5. Arduino 3D-Printed Robotic Arm
  6. Controle do umidificador Arduino
  7. MobBob:DIY Arduino Robot Controlado por Smartphone Android
  8. Robô de piano controlado por Arduino:PiBot
  9. Littlearm 2C:Construir um braço de robô Arduino impresso em 3D
  10. Joystick Arduino