Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Bras de robot en carton enregistrable

Composants et fournitures

Arduino UNO
× 1
Servo de taille normale
× 3
Micro-servomoteur SG90
× 1
Planche à pain (générique)
× 1
Alimentation 5V
× 1

Outils et machines nécessaires

Pistolet à colle chaude (générique)

Applications et services en ligne

Arduino IDE
Python

À propos de ce projet

À propos

Il s'agit d'un simple bras robotique qui peut enregistrer et rejouer les positions. Il est fabriqué à partir de matériaux facilement disponibles, comme le carton et la colle chaude, ce qui le rend facile à construire.

Vous contrôlez le bras avec une interface graphique sur l'ordinateur qui envoie des données à l'Arduino qui contrôle le bras. Il y a des curseurs pour contrôler chaque servo, et des boutons pour enregistrer les positions et rejouer ce que vous avez enregistré. Vous pouvez également sauvegarder et ouvrir des enregistrements antérieurs.

En voici une démonstration en action :

Instructions

1.) Téléchargez et imprimez le modèle de découpe en carton dans la section Pièces et boîtiers personnalisés au bas de la page. Utilisez ce gabarit pour découper les pièces en carton.

2.) Assemblez la partie bras en utilisant la vidéo ci-dessus comme guide. La compilation commence à 0:22 de la vidéo.

3.) Construisez le circuit sur la base du schéma en bas de la page.

4.) Téléchargez le "Robot Arm Arduino Code" en bas de la page dans la section Code du deuxième onglet. Ensuite, téléchargez-le sur le bras.

5.) Téléchargez le code "Python User Interface" en bas de la page dans la section Code du premier onglet. Ensuite, ouvrez-le. Vous devez avoir installé Python pour l'exécuter, qui peut être téléchargé à partir d'ici :https://www.python.org/

Vous aurez également besoin de la bibliothèque PySerial pour Python (https://pypi.org/project/pyserial/). Vous pouvez l'installer en exécutant "pip install pyserial".

6.) Branchez le bras, exécutez le code "Python User Interface" et tapez le port COM de l'Arduino (cela peut être trouvé dans le Gestionnaire de périphériques sous Windows). Vous êtes maintenant prêt à l'utiliser !

Si cela ne fonctionne pas, essayez d'augmenter time.sleep(0.15) sur la ligne 20 du code Python à quelque chose de plus élevé, comme 0.2 ou 0.3

Code

  • Interface utilisateur Python
  • Code Arduino du bras robotique
Interface utilisateur PythonPython
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 ("port COM défini sur :"+com_port)def send_positions(position):message ="{0:0=3d}".format(position[0])+"{0:0=3d}".format(position[1])+" {0:0=3d}".format(position[2])+"{0:0=3d}".format(position[3])+"{0:0=3d}".format(position[4 ])+"\n" arduino.write(str.encode(message)) print(message, end='') time.sleep(0.2)saved_positions =[]def save_positions():save_positions.append([servo1_slider.get (), servo2_slider.get(), servo3_slider.get(), servo4_slider.get(), servo5_slider.get()]); print("positions enregistrées :"+str(positions enregistrées))def play_positions() :pour la position dans les positions enregistrées :print("playing :"+str(position)) send_positions(position); time.sleep(1)def clear_all_positions() :positions enregistrées globales save_positions =[] print("efface toutes les positions")def clear_last_positions() :positions enregistrées globales supprimées =save_positions.pop() print("supprimé : "+str(supprimé) ) print("positions enregistrées :"+str(saved_positions))def open_file() :global save_positions filename =filedialog.askopenfilename(initialdir ="/", title ="Sélectionnez un fichier", filetypes =(("Fichiers texte", "*.txt*"),("tous les fichiers","*.*"))) file =open(filename, "r") data=file.read() save_positions=eval(data) file.close() print("opened:"+filename)def save_file():save_file =filedialog.asksaveasfile(mode='w', defaultextension=".txt") save_file.write(str(saved_positions)) save_file.close() print(" fichier enregistré")def instructions():print("1.) Définissez le port COM de l'Arduino et cliquez sur Entrée. Cela se trouve dans le Gestionnaire de périphériques sous Windows") print("2.) Déplacez les servos du bras à l'aide des curseurs") print("3.) Pour enregistrer une position n, cliquez sur Enregistrer la position") print("4.) Pour rejouer les positions enregistrées, cliquez sur Rejouer les positions") print("\nPour enregistrer ce que vous avez enregistré, allez dans Fichier> Enregistrer le fichier.") print(" Pour ouvrir un fichier précédemment enregistré, accédez à Fichier> Ouvrir un fichier.")window =Tk()window.title("Robot Arm Controller 2")window.minsize(355,300)port_label=Label(window,text="Définir le port :");port_label.place(x=10,y=10);port_input=Entry(window)port_input.place(x=10,y=35)port_button=Button(window, text="Enter", command=set_port) port_button.place(x=135,y=32)servo1_slider =Échelle(window, 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 =Échelle(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(window, from_=180, to=0)servo3_slider.place(x=140, y=100)servo3_label=Label(window,text="Servo 3")servo3_label.place(x=150, y=80)servo4_slider =Échelle(vent ow, from_=180, to=0)servo4_slider.place(x=210, y=100)servo4_label=Label(window,text="Servo 4")servo4_label.place(x=220, y=80)servo5_slider =Échelle (window, from_=180, to=0)servo5_slider.place(x=280, y=100)servo5_label=Label(window,text="Servo 5")servo5_label.place(x=290, y=80)save_button=Button(window, text="Record Position", command=save_positions)save_button.place(x=10,y=220)clear_button=Button(window, text="Clear Last Position", command=clear_last_positions)clear_button.place(x =120,y=220)clear_button=Button(window, text="Effacer toutes les positions", command=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 =Menu(window)filemenu =Menu(menubar, tearoff=0)filemenu.add_command(label="Open File", command=open_file )filemenu.add_command(label="Save File", command=save_file)menubar.add_cascade(label="File", menu=filemenu)editmenu =Menu(menubar, tearoff=0)editmenu.add_comman d(label="Effacer la dernière position", command=clear_last_positions)editmenu.add_command(label="Effacer toutes les positions", command=clear_all_positions)menubar.add_cascade(label="Edit", menu=editmenu)helpmenu =Menu(menubar, tearoff=0)helpmenu.add_command(label="Comment utiliser (imprimé dans la console)", command=instructions)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()])
Code Arduino du bras robotiqueArduino
#include Servo servo1;Servo servo2;Servo servo3;Servo servo4;Servo servo5;int servoPositions[5];void setup() { Serial.begin(9600); servo1.attach(3) ; servo2.attache(5) ; servo3.attache(6) ; servo4.attach(9) ; servo5.attach(10);}boucle vide() { 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]); retard (500);}

Pièces et boîtiers personnalisés

Schémas


Processus de fabrication

  1. Dés numériques Arduino
  2. Bras de robot MeArm - Votre robot - V1.0
  3. Iron Man
  4. Trouvez-moi
  5. Bras robotique Arduino imprimé en 3D
  6. Contrôle de l'humidificateur Arduino
  7. MobBob :Robot Arduino DIY contrôlé par smartphone Android
  8. Robot piano contrôlé par Arduino :PiBot
  9. Littlearm 2C :Construire un bras de robot Arduino imprimé en 3D