Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Brazo robótico de cartón grabable

Componentes y suministros

Arduino UNO
× 1
Servo de tamaño normal
× 3
Micro-servo motor SG90
× 1
Breadboard (genérico)
× 1
Fuente de alimentación de 5 V
× 1

Herramientas y máquinas necesarias

Pistola de pegamento caliente (genérica)

Aplicaciones y servicios en línea

Arduino IDE
Python

Acerca de este proyecto

Acerca de

Este es un brazo robótico simple que puede grabar y reproducir posiciones. Está hecho de materiales fácilmente disponibles, como cartón y pegamento caliente, lo que facilita su construcción.

Controlas el brazo con una interfaz gráfica en la computadora que envía datos al Arduino que controla el brazo. Hay controles deslizantes para controlar cada servo y botones para grabar posiciones y reproducir lo que ha grabado. También puede guardar y abrir grabaciones pasadas.

Aquí hay una demostración en acción:

Instrucciones

1.) Descargue e imprima la Plantilla de recorte de cartón en la sección Piezas y recintos personalizados en la parte inferior de la página. Usa esa plantilla para cortar las partes de cartón.

2.) Ensamble la parte del brazo usando el video de arriba como guía. La compilación comienza a las 0:22 del video.

3.) Construya el circuito basándose en el esquema en la parte inferior de la página.

4.) Descargue el "Código Arduino de Robot Arm" en la parte inferior de la página en la Sección de Código en la segunda pestaña. Luego súbelo al brazo.

5.) Descargue el código de la "Interfaz de usuario de Python" en la parte inferior de la página en la Sección de código en la primera pestaña. Luego, ábrelo. Debe tener Python instalado para ejecutarlo, que se puede descargar desde aquí:https://www.python.org/

También necesitará la biblioteca PySerial para Python (https://pypi.org/project/pyserial/). Puede instalarlo ejecutando "pip install pyserial".

6.) Conecte el brazo, ejecute el código de "Interfaz de usuario de Python" y escriba el puerto COM del Arduino (se puede encontrar en el Administrador de dispositivos en Windows). ¡Ahora está listo para usarlo!

Si no funciona, intente aumentar el time.sleep (0.15) en la línea 20 del código Python a algo más alto, como 0.2 o 0.3

Código

  • Interfaz de usuario de Python
  • Código Arduino del brazo del robot
Interfaz de usuario de Python Python
 de 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 ("Puerto COM configurado en :"+ puerto_com) def posiciones_envío (posición):mensaje =" {0:0 =3d} ". formato (posición [0]) +" {0:0 =3d} ". formato (posición [1]) +" {0:0 =3d} ". Formato (posición [2]) +" {0:0 =3d} ". Formato (posición [3]) +" {0:0 =3d} ". Formato (posición [4 ]) + "\ n" arduino.write (str.encode (mensaje)) 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 ("posiciones guardadas:" + str (posiciones_ guardadas)) def posiciones_plaza ():para la posición en posiciones_ guardadas:print ("reproduciendo:" + str (posición)) send_positions (posición); time.sleep (1) def clear_all_positions ():posiciones_ guardadas globales posiciones_salvadas =[] print ("borró todas las posiciones") def clear_last_positions ():posiciones_ salvadas globales eliminadas =posiciones_guardadas.pop () print ("eliminado:" + str (eliminado) ) print ("posiciones guardadas:" + str (posiciones_guardadas)) def open_file ():posiciones_gravadas globales filename =filedialog.askopenfilename (initialldir ="/", title ="Seleccionar un archivo", filetypes =(("Archivos de texto", "* .txt *"), ("todos los archivos", "*. *"))) file =open (filename, "r") data =file.read () Saved_positions =eval (data) file.close () print ("abierto:" + nombre de archivo) def save_file ():save_file =filedialog.asksaveasfile (mode ='w', defaultextension =". txt") save_file.write (str (posiciones_guardadas)) save_file.close () print (" archivo guardado ") def instrucciones ():print (" 1.) Configure el puerto COM de Arduino y haga clic en Enter. Esto se puede encontrar en el Administrador de dispositivos en Windows ") imprimir (" 2.) Mueva los servos del brazo usando los controles deslizantes ") imprimir ("3.) Para grabar una posición, haga clic en Grabar posición") imprimir ("4.) Para reproducir la posición grabada posiciones, haga clic en Reproducir posiciones ") print (" \ nPara guardar lo que ha grabado, vaya a Archivo> Guardar archivo. ") print (" Para abrir un archivo previamente guardado, vaya a Archivo> Abrir archivo. ") window =Tk () window.title ("Robot Arm Controller 2") window.minsize (355,300) port_label =Label (window, text ="Establecer puerto:"); port_label.place (x =10, y =10); port_input =Entrada (ventana) port_input.place (x =10, y =35) port_button =Button (ventana, texto ="Enter", comando =set_port) port_button.place (x =135, y =32) servo1_slider =Scale (ventana, from_ =180, to =0) servo1_slider.place (x =0, y =100) servo1_label =Etiqueta (ventana, texto ="Servo 1") servo1_label.place (x =10, y =80) servo2_slider =Escala (ventana , from_ =180, to =0) servo2_slider.place (x =70, y =100) servo2_label =Etiqueta (ventana, texto ="Servo 2") servo2_label.place (x =80, y =80) servo3_slider =Scale ( ventana, desde_ =180, a =0) servo3_slider.place (x =140, y =100) servo3_label =Etiqueta (ventana, texto ="Servo 3") servo3_label.place (x =150, y =80) servo4_slider =Escala (ventana, desde_ =180, a =0) servo4_slider.place (x =210, y =100) servo4_label =Etiqueta ( window, text ="Servo 4") servo4_label.place (x =220, y =80) servo5_slider =Scale (window, from_ =180, to =0) servo5_slider.place (x =280, y =100) servo5_label =Etiqueta (ventana, texto ="Servo 5") servo5_label.place (x =290, y =80) save_button =Botón (ventana, texto ="Posición de registro", comando =guardar_posiciones) save_button.place (x =10, y =220 ) clear_button =Botón (ventana, texto ="Limpiar la última posición", comando =clear_last_positions) clear_button.place (x =120, y =220) clear_button =Botón (ventana, texto ="Borrar todas las posiciones", comando =clear_all_positions) clear_button .place (x =120, y =255) play_button =Button (window, text ="Replay Positions", command =play_positions, height =3) play_button.place (x =250, y =220) menubar =Menú (ventana) filemenu =Menu (menubar, tearoff =0) filemenu.add_command (label ="Abrir archivo", comando =open_file) filemenu.add_command (label ="Guardar archivo", comando =guardar_archivo) menubar.add_cascade (etiqueta ="Archivo", menu =filemenu) editmenu =Menu (menubar, tearoff =0) editmenu.add_command (etiqueta ="Borrar última posición", comando =clear_last_positions) editmenu.add _command (label ="Borrar todas las posiciones", command =clear_all_positions) menubar.add_cascade (label ="Edit", menu =editmenu) helpmenu =Menu (menubar, tearoff =0) helpmenu.add_command (label ="Cómo usar (impreso en la consola) ", comando =instrucciones) menubar.add_cascade (label =" Help ", menu =helpmenu) window.config (menu =menubar) while 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 Arduino del brazo robótico Arduino
 #include  Servo servo1; Servo servo2; Servo servo3; Servo servo4; Servo servo5; int servoPositions [5]; void setup () {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]); retraso (500);} 

Piezas y carcasas personalizadas

Esquemas


Proceso de manufactura

  1. Dados digitales Arduino
  2. Brazo robótico MeArm - Su robot - V1.0
  3. Iron Man
  4. Encuéntrame
  5. Brazo robótico Arduino impreso en 3D
  6. Control del humidificador Arduino
  7. MobBob:Robot Arduino DIY controlado por un teléfono inteligente Android
  8. Robot de piano controlado por Arduino:PiBot
  9. Littlearm 2C:Construya un brazo robótico Arduino impreso en 3D
  10. Joystick de Arduino
  11. Podómetro (Arduino 101)