Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Lengan Robot Karton yang Dapat Direkam

Komponen dan persediaan

Arduino UNO
× 1
Servo Berukuran Normal
× 3
Motor servo mikro SG90
× 1
Breadboard (generik)
× 1
Suplai Daya 5V
× 1

Alat dan mesin yang diperlukan

Pistol lem panas (generik)

Aplikasi dan layanan online

Arduino IDE
Python

Tentang proyek ini

Tentang

Ini adalah lengan robot sederhana yang dapat merekam dan memutar ulang posisi. Terbuat dari bahan yang mudah didapat, seperti karton dan lem panas, yang membuatnya mudah dibuat.

Anda mengontrol lengan dengan antarmuka grafis di komputer yang mengirimkan data ke Arduino yang mengontrol lengan. Ada penggeser untuk mengontrol setiap servo, dan tombol untuk merekam posisi dan memutar ulang apa yang telah Anda rekam. Anda juga dapat menyimpan dan membuka rekaman sebelumnya.

Berikut demo aksinya:

Petunjuk

1.) Unduh dan cetak Template Potongan Karton di bagian Custom Parts and Enclosures di bagian bawah halaman. Gunakan templat itu untuk memotong bagian karton.

2.) Pasang bagian lengan menggunakan video di atas sebagai panduan. Pembuatan dimulai pada 0:22 video.

3.) Bangun sirkuit berdasarkan skema di bagian bawah halaman.

4.) Unduh "Robot Arm Arduino Code" di bagian bawah halaman di Bagian Kode di tab kedua. Kemudian unggah itu ke lengan.

5.) Unduh kode "Antarmuka Pengguna Python" di bagian bawah halaman di Bagian Kode di tab pertama. Kemudian, buka. Anda harus menginstal Python untuk menjalankannya, yang dapat diunduh dari sini:https://www.python.org/

Anda juga memerlukan pustaka PySerial untuk Python (https://pypi.org/project/pyserial/). Anda dapat menginstalnya dengan menjalankan "pip install pyserial".

6.) Colokkan lengan, jalankan kode "Python User Interface", dan ketik port COM Arduino (Ini dapat ditemukan di Device Manager di Windows). Sekarang Anda siap menggunakannya!

Jika tidak berhasil, coba tambah time.sleep(0.15) pada baris 20 kode Python ke yang lebih tinggi, seperti 0.2 atau 0.3

Kode

  • Antarmuka Pengguna Python
  • Kode Arduino Lengan Robot
Antarmuka Pengguna 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 ("COM port disetel ke :"+com_port)def send_positions(posisi):pesan ="{0:0=3d}".format(posisi[0])+"{0:0=3d}".format(posisi[1])+" {0:0=3d}".format(posisi[2])+"{0:0=3d}".format(posisi[3])+"{0:0=3d}".format(posisi[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("posisi tersimpan:"+str(posisi_tersimpan))def play_positions():untuk posisi di posisi_simpan:print("bermain:"+str(posisi)) send_positions(posisi); time.sleep(1)def clear_all_positions():global stored_positions saved_positions =[] print("cleared all position")def clear_last_positions():global stored_positions removal =simpanan_posisi.pop() print("dihapus:"+str(dihapus) ) print("posisi tersimpan:"+str(saved_positions))def open_file():global save_positions nama file =filedialog.askopenfilename(initialdir ="/", title ="Pilih File", tipe file =(("File teks", "*.txt*"),("semua file","*.*"))) file =buka(nama file, "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(" file tersimpan")def instruksi():print("1.) Setel port COM Arduino dan klik Enter. Ini dapat ditemukan di Device Manager di Windows") print("2.) Pindahkan servo lengan menggunakan bilah geser") print("3.) Untuk merekam posisi, klik Rekam Posisi") print("4.) Untuk memutar ulang rekaman posisi, klik Putar Ulang Posisi") print("\nUntuk menyimpan apa yang telah Anda rekam, buka File> Simpan File.") print("Untuk membuka file yang disimpan sebelumnya, buka File> Buka File.")window =Tk()window.title("Robot Arm 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 =Skala(jendela, 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 =Skala(jendela , 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 =Skala( jendela, 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 =Skala (jendela, dari_=180, ke=0)servo4_slider.place(x=210, y=100)servo4_label=Label( window,text="Servo 4")servo4_label.place(x=220, y=80)servo5_slider =Skala(jendela, dari_=180, ke=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=Tombol(jendela, teks="Hapus Posisi Terakhir", command=clear_last_positions)clear_button.place(x=120,y=220)clear_button=Tombol(jendela, teks="Hapus Semua Posisi", 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_command(label="Hapus posisi terakhir", command=clear_last_positions)editmenu.add _command(label="Hapus semua posisi", command=clear_all_positions)menubar.add_cascade(label="Edit", menu=editmenu)helpmenu =Menu(menubar, tearoff=0)helpmenu.add_command(label="Cara menggunakan (dicetak di konsol)", 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()])
Kode Arduino Lengan RobotArduino
#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]); delay(500);}

Suku cadang dan penutup khusus

Skema


Proses manufaktur

  1. Arduino Digital Dice
  2. MeArm Robot Arm - Robot Anda - V1.0
  3. Iron Man
  4. Temukan Saya
  5. Arduino 3D-Printed Robotic Arm
  6. Kontrol Humidifier Arduino
  7. MobBob:Robot Arduino DIY Dikendalikan oleh Smartphone Android
  8. Robot Piano Terkendali Arduino:PiBot
  9. Littlearm 2C:Membangun Lengan Robot Arduino Cetak 3D
  10. Arduino Joystick