Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Roboterarm aus beschreibbarem Karton

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Normaler Servo
× 3
SG90 Micro-Servomotor
× 1
Breadboard (generisch)
× 1
5-V-Netzteil
× 1

Notwendige Werkzeuge und Maschinen

Heißklebepistole (generisch)

Apps und Onlinedienste

Arduino-IDE
Python

Über dieses Projekt

Über

Dies ist ein einfacher Roboterarm, der Positionen aufzeichnen und wiedergeben kann. Es besteht aus leicht erhältlichen Materialien wie Pappe und Heißkleber, wodurch es leicht zu bauen ist.

Sie steuern den Arm mit einer grafischen Schnittstelle auf dem Computer, die Daten an den Arduino sendet, der den Arm steuert. Es gibt Schieberegler, um jedes Servo zu steuern, und Schaltflächen zum Aufzeichnen von Positionen und zum Wiedergeben des Aufgenommenen. Sie können auch vergangene Aufnahmen speichern und öffnen.

Hier ist eine Demo davon in Aktion:

Anleitung

1.) Laden Sie die Karton-Ausschnittsvorlage im Abschnitt Benutzerdefinierte Teile und Gehäuse unten auf der Seite herunter und drucken Sie sie aus. Verwenden Sie diese Schablone, um die Kartonteile auszuschneiden.

2.) Montieren Sie das Armteil mit dem obigen Video als Anleitung. Der Build beginnt bei 0:22 des Videos.

3.) Bauen Sie die Schaltung basierend auf dem Schaltplan unten auf der Seite auf.

4.) Laden Sie den "Robot Arm Arduino Code" unten auf der Seite im Code-Bereich im zweiten Tab herunter. Dann lade das auf den Arm hoch.

5.) Laden Sie den Code "Python User Interface" unten auf der Seite im Code-Bereich im ersten Tab herunter. Dann öffnen Sie es. Sie müssen Python installiert haben, um es auszuführen, das hier heruntergeladen werden kann:https://www.python.org/

Sie benötigen außerdem die PySerial-Bibliothek für Python (https://pypi.org/project/pyserial/). Sie können es installieren, indem Sie "pip install pyserial" ausführen.

6.) Stecken Sie den Arm ein, führen Sie den Code "Python User Interface" aus und geben Sie den COM-Port des Arduino ein (diesen finden Sie im Geräte-Manager unter Windows). Jetzt können Sie es verwenden!

Wenn es nicht funktioniert, versuchen Sie, time.sleep(0.15) in Zeile 20 des Python-Codes auf etwas höher zu erhöhen, z. B. 0.2 oder 0.3

Code

  • Python-Benutzeroberfläche
  • Roboterarm Arduino-Code
Python-BenutzeroberflächePython
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 ("COM port set to :"+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():saved_positions.append([servo1_slider.get (), servo2_slider.get(), servo3_slider.get(), servo4_slider.get(), servo5_slider.get()]); print("gespeicherte Positionen:"+str(saved_positions))def play_positions():für Position in gespeicherten_positions:print("playing:"+str(position)) send_positions(position); time.sleep(1)def clear_all_positions():global saved_positions saved_positions =[] print("alle Positionen gelöscht")def clear_last_positions():global saved_positions entfernt =saved_positions.pop() print("entfernt:"+str(entfernt) ) print("saved positions:"+str(saved_positions))def open_file():global saved_positions filename =filedialog.askopenfilename(initialdir ="/", title ="Select a File", filetypes =(("Text files", "*.txt*"),("all files","*.*"))) file =open(filename, "r") data=file.read() saved_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(" gespeicherte Datei")def Instructions():print("1.) Stellen Sie den COM-Port des Arduino ein und klicken Sie auf Enter. Dies finden Sie im Geräte-Manager in Windows") print("2.) Bewegen Sie die Servos des Arms mit den Schiebereglern") print("3.) Um eine Position aufzuzeichnen, klicken Sie auf Record Position") print("4.) Um die aufgezeichnete Positionen, klicken Sie auf Replay Positions") print("\nUm zu speichern, was Sie aufgenommen haben, gehen Sie zu Datei> Datei speichern.") print("Um eine zuvor gespeicherte Datei zu öffnen, gehen Sie zu Datei> Datei öffnen.")window =Tk()window.title("Roboterarm-Controller 2")window.minsize(355,300)port_label=Label(window,text="Set 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 =Scale(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 =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( 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 =Scale (Fenster, von_=180, bis=0)servo4_slider.place(x=210, y=100)servo4_label=Label( 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=Label (window,text="Servo 5")servo5_label.place(x=290, y=80)save_button=Button(window, text="Position aufnehmen", command=save_positions)save_button.place(x=10,y=220 )clear_button=Button(window, text="Letzte Position löschen", command=clear_last_positions)clear_button.place(x=120,y=220)clear_button=Button(window, text="Alle Positionen löschen", 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="Datei öffnen", command=open_file)filemenu.add_command(label="Datei speichern", command=save_file)menubar.add_cascade(label="Datei", menu=filemenu)editmenu =Menu(menubar, Tearoff=0)editmenu.add_command(label="Letzte Position löschen", command=clear_last_positions)editmenu.add _command(label="Alle Positionen löschen", command=clear_all_positions)menubar.add_cascade(label="Edit", menu=editmenu)helpmenu =Menu(menubar, Tearoff=0)helpmenu.add_command(label="Verwendung (gedruckt) in der Konsole)", command=instructions)menubar.add_cascade(label="Help", menu=helpmenu)window.config(menu=menubar)während True:window.update() if(port_opened):send_positions([servo1_slider.get (), servo2_slider.get(), servo3_slider.get(), servo4_slider.get(), servo5_slider.get()])
Roboterarm Arduino CodeArduino
#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 (servoPositionen [2]); servo4.write (servoPositions[3]); servo5.write (servoPositions[4]); Verzögerung(500);}

Kundenspezifische Teile und Gehäuse

Schaltpläne


Herstellungsprozess

  1. Arduino Digital Dice
  2. MeArm-Roboterarm – Ihr Roboter – V1.0
  3. Iron Man
  4. Finde mich
  5. Arduino 3D-gedruckter Roboterarm
  6. Arduino-Befeuchtersteuerung
  7. MobBob:DIY-Arduino-Roboter, der von einem Android-Smartphone gesteuert wird
  8. Arduino-gesteuerter Klavierroboter:PiBot
  9. Littlearm 2C:Erstellen Sie einen 3D-gedruckten Arduino-Roboterarm
  10. Arduino-Joystick