1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Chế Tạo Robot Scara Điều Khiển Bằng Python

68 1,4K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 7,81 MB

Nội dung

Robot là cơ cấu đa chức năng có khả năng lập trình được dùng để dichuyển nguyên vật liệu, các chi tiết, các dụng cụ thông qua các truyền động được lậptrình trước.. Robot có cánh tay với

Trang 1

ĐỒ ÁN KỸ THUẬT ROBOT

TRƯỜNG ĐẠI HỌC NHA TRANG

KHOA CƠ KHÍ - -

SVTH:TRÌNH ĐÌNH THI

PHẠM HỒNG NHỰT LÂM HOÀNG NGỌC THẠCH LỚP: 56CDT

GVHD: NGUYỄN THIÊN CHƯƠNG

NHATRANG 7/12/2017

NỘI DUNG: THIẾT KẾ CHẾ TẠO CÁNH

TAY ROBOT SCARA

Trang 2

Robot ứng dụng rộng rãi và đóng vai trò quan trọng trong sản xuất cũng nhưtrong đời sống Robot là cơ cấu đa chức năng có khả năng lập trình được dùng để dichuyển nguyên vật liệu, các chi tiết, các dụng cụ thông qua các truyền động được lậptrình trước Khoa học robot chủ yếu dựa vào các phép toán về đại số ma trận.

Robot có thể thao tác như con người và hợp tác một cách thông minh

Robot có cánh tay với nhiều bậc tự do và có thế thực hiện các chuyển độngnhư tay người và điều khiển được bằng máy tính hoặc có thể điều khiểnbằng chươngtrình được nạp sẵn trong chip trên bo mạch điều khiển robot

Để hệ điều khiển robot có độ tin cậy, độ chính xác cao, giá thành hạ và tiếtkiệm năng lượng thì nhiệm vụ cơ bản là hệ điều khiển robot phải đảm bảo giá trị yêucầu của các đại lượng điều chỉnh và điều khiển Ngoài ra, hệ điều khiển robot phảiđảm bảo ổn định động và tĩnh, chống được nhiễu trong và ngoài, đồng thời không gâytác hại cho môi trường như: tiếng ồn quá mức quy định, sóng hài của điện áp và dòngđiện quá lớn cho lưới điện v.v

Trang 3

Mục Lục

CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT SCARA 3

1.1 Giới thiệu Robot Scara: 3

1.2 Phân loại robot công nhiệp: 4

1.2.1 Phân loại theo kết cấu: 4

1.2.2 Phân loại theo hệ thống truyền động: 4

1.2.3 Phân loại theo ứng dụng: 4

1.3.4 Phân loại theo phương pháp điều khiển 4

CHƯƠNG 2: THIẾT KẾ, CHẾ TẠO ROBOT 5

2.1 Cơ sở khoa học: 5

2.2Bản thiết kế bằng Solidworks : 5

2.3 Danh sách linh kiện: 6

2.3.1 Cơ khí: 6

2.3.2 Phần điện tử: 10

2.3.3 Chi tiết in: 15

2.4 Các bước chế tạo lắp ráp: 18

2.4.1 Cơ khí 18

2.4.2 Phần sơ đồ mạch điện: 25

CHƯƠNG 3: CHƯƠNG TRÌNH ĐIỀU KHIỂN VÀ PHẦN ĐỆM 29

3.1 Chương trình điều khiển bằng python 29

3.1.1 Các bước viết ra giao diện chương trình python 29

3.2 Chương trình đệm arduino 56

3.3 Hiệu chỉnh máy 57

3.4 Ứng dụng 58

Chương 4 : Kết Luận 66

4.1 Kết quả đạt được 66

4.2 Các mặt còn hạn chế 66

4.3 Hướng phát triển tương lai 66

Trang 4

-CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT SCARA

1.1 Giới thiệu Robot Scara:

Scara Robot ra đời vào năm 1979 tại trường đại học Yasamaski (Nhật Bản) dùng

trong việc lắp ráp Đó là tay máy scara đặc biệt gồm hai khớp quay và một khớp trượt,nhưng cả ba khớp đều có trục song song với nhau Kết cấu này làm cho tay máy cứngvững hơn theo phương thẳng đứng nhưng kém cứng vững hơn theo phương ngang.Loại này chuyên dùng trong công việc lắp ráp với tải trọng nhỏ theo phương đứng TừScara là viết tắt của chữ “Selective Compliance Articulated Robot Actuato ”

Scara Robot được nhiều hãng chế tạo để phục vụ có nhiều mục đích khác nhau

như hàn, lắp ráp, vận chuyển, khoan, doa,… Các hãng chuyên sản xuất Robot Scaranhư General motor, Hitachi, Mitsubishi, IBM, MOTOMAN, EPSON, PANASONIC,SONY,… Ngày nay, các hãng tiếp tục hoàn thiện bộ điều khiển và kết cấu cơ khí đểngày càng được linh hoạt hơn

Scara Robot có vùng không gian hoạt động có dạng hình trụ Đây là loại cấu hình

dễ thực hiện nhất được ứng dụng cho robot là dạng khớp nối bản lề và kế đó là khớptrượt Dạng này phổ biến nhất trong ứng dụng công nghiệp bởi vì chúng cho phép cácnhà sản xuất robot sử dụng một cách trực tiếp và dễ dàng nhờ các khâu và khớp hợplại có nhiều ưu điểm

Về mặt hình học, cấu hình dạng khớp nối bản lề với ba trục quay bố trí theophương thẳng đứng là dạng đơn giản và có hiệu quả nhất trong trường hợp yêu cầugắp đặt và đặt chi tiết theo phương thẳng Trong trường hợp này bài toán tọa độ hoặcquỹ đạo chuyển động đối với robot chỉ cần giải quyết ở hai phương x và y còn lạibằng cách phối hợp ba chuyển động quay quanh ba trục song song với trục z

Scara Robot luôn là chủ đề được quan tâm nhiều trong lĩnh vực tự động hóa bởi

tính ứng dụng thực tiễn của nó trong xã hội hiện nay nói chung và trong ngành côngnghiệp nói riêng Mỗi cánh tay đều có một cơ cấu khác nhau, do đó có các phươngtrình động học , động lực học cũng khác nhau cho nên việc tính toán và điều khiểnmỗi loại cánh tay máy là rất phức tạp Có thể thấy tay máy là một đề tài không mớinhưng nó mang tính chất khó, nghiên cứu và ứng dụng cao

Scara Robot là một trong những robot phổ biến nhất trong công nghiệp Chuyển

động của robot này rất đơn giản nhưng lại phù hợp với các dây chuyền và ứng dụnghữu hiệu trong nhiệm vụ nhặt và đặt sản phẩm Robot Scara (Selectively CompliantArticulated Robot Arm) có nghĩa là tay máy lắp ráp chọn lọc

Cấu trúc động học loại tay máy này thuộc hệ phỏng sinh, có các trục quay, cáckhớp đều là thẳng đứng Nó có cấu tạo hai khớp ở cánh tay, một khớp ở cổ tay và một

Trang 5

1.2 Phân loại robot công nhiệp:

1.2.1 Phân loại theo kết cấu:

Theo kết cấu của tay máy người ta phân thành robot kiểu tọa độ Đề các, kiểutọa độ trụ, kiểu tọa độ cầu, kiểu tọa độ góc, robot kiểu scara

1.2.2 Phân loại theo hệ thống truyền động:

- Hệ truyền động điện: thường dùng các loại động cơ điện 1 chiều (DC) hoặc cácđộng cơ bước (step motor) Loại truyền động này dễ điều khiển, kết cấu gọn gàng

- Hệ truyền động thủy lực: có thể đạt được công suất cao, đáp ứng những điềukiện làm việc nặng Tuy nhiên hệ thống thướng có kết cấu cồng kềnh, khó xử lýkhi điều khiển

- Hệ truyền động khí nén: có kết cấu gọn nhẹ hơn do không cần dẫn ngược nhưnglại phải gắn liền với trung tâm tạo ra khí nén Hệ này làm việc với công suất trungbình và nhỏ, kém chính xác

1.2.3 Phân loại theo ứng dụng:

Dựa vào ứng dụng của robot trong sản xuất như: robot sơn, robot hàn, robot lắpráp, robot chuyển phôi…

1.3.4 Phân loại theo phương pháp điều khiển.

- Robot điều khiển hở (mạch điều khiển không có các quan hệ phản hồi)

- Robot điều khiển kín: sử dụng các cảm biến, mạch phản hồi để tăng độ chínhxác và mức độ linh hoạt khi điều khiển

Trang 6

CHƯƠNG 2: THIẾT KẾ, CHẾ TẠO ROBOT

2.1 Cơ sở khoa học:

Thiết kế của tay Scara gồm 3 khâu 1 khớp tịnh tiến và 2 khớp quay, Tay A cóchiều dài 110mm, tay B là 85mm Thiết kế được vẽ trên Solidwork theo cơ cấu truyềnđộng qua pully và dây đai

Với yêu cầu thiết kế cánh tay robot Scara ứng dụng để vẽ Chúng em đưa ra cáctiêu chí như sau:

- Cơ khí :

+ Đáp ứng yêu cầu môn học (thiết kế cánh tay Scara với 3 khâu, 1 khớp tịnhtiến, và 2 khớp quay và đầu kẹp viết để vẽ)

+ Nhỏ gọn, đẹp, chắc chắn, hạn chế độ rê nhất có thể tại các khớp nối

+ Vật liệu chi tiết nhẹ, tiết kiệm chi phí

- Điều khiển:

+ Đơn giản, tiết kiệm chi phí

+ Phù hợp với quy mô thiết kế, và công suất robot

Trang 7

Hình 1 Robot Scara trên bản vẽ Solidwords

2.3 Danh sách linh kiện:

2.3.1 Cơ khí:

Hình 2.1 Trục vitme

Trang 8

Hình 2.2Thanh trượt

Hình 2.3Bạc đạn 13-5

Hình 2.4 Ốc vít

Trang 9

Hình 2.5Con trượt LM8UU

Hình 2.6Dây đai GT2

Hình 2.7Puly GT2, bước răng 2mm

Trang 10

Hình 2.8Bạc đạn giữ vitme

Hình 2.9Khớp nối mềm 5x8

Trang 11

2.3.2 Phần điện tử:

2.3.2.1 Mạch Arduino Uno:

Hình 2.10 Mạch Arduino Uno

-Một số thông số kỹ thuật của Arduino Uno

Vi điều khiển ATmega328 họ 8bit

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA

Điện áp vào khuyên dùng 7-12V DC

Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Trang 12

2.3.2.2: Mạch CNC Shield:

Hình 2.12 Mạch CNC Shield

CNC shield V3 là board mở rộng của Arduino UNO R3 dùng để điều khiển các máyCNC mini Board có 4 khay dùng để cắm các mô đun điều khiển động cơ bướcA4988, khi đó board có thể điều khiển3 trục X, Y, Z và thêm một trục thứ 4 tùy chọntrên các máy CNC mini

Đặc điểm nổi bật:

- Tương thích GRBL (mã nguồn mở chạy trên Arduino UNO R3 để điều khiển CNCmini)

- Hỗ trợ lên tới 4 trục (trục X, Y, Z và một trục thứ tư tùy chọn)

- Hỗ trợ tới 2 Endstop (cảm biến đầu cuối) cho mỗi trục

- Tính năng điều khiển Spindle

- Tính năng điều khiển dung dịch làm mát khi máy hoạt động

- Sử dụng các mô đun điều khiển động cơ bước, giúp tiết kiệm chi phí khi thay thế,nâng cấp

- Thiết lập độ phân giải bước động cơ bằng jump đơn giản

- Thiết kế nhỏ gọn, các đầu nối tiêu chuẩn thông dụng

- Điện áp nguồn cấp đa dạng từ 12V tới 36V

Trang 13

2.3.2.3 Mạch điều khiển động cơ stepper drivers A4988

Hình 2.13 Stepper drvivers A4988

A4988 là một driver điều khiển động cơ bước cực kì nhỏ gọn, hỗ trợ nhiều chế độ làmviệc điều chỉnh được dòng ra cho động cơ , tự ngắt điện khi quá nóng

Mạch Arduino điều khiển trực tiếp 2 chân sung và chiều trên A4988 là chân STEP vàchân DIR

 cấp Điện áp tối thiểu: 8 V

 Điện áp logic 1 tối thiểu: 3 V

 Điện áp logic 1 tối đa: 5.5 V

 MS1 , MS2 , MS3 : điều khiển chế độ của độngcơ

 Độ phân giải: full, 1/2, 1/4, 1/8, và 1/16

 Tín hiệu điều khiển : STEP, DIR

 Khích chân enable ở mức thấp thì driver hoạtđộng

 Chân sleep va reset luôn được nối với nhau vìkhi hết hoạt động tự động reset driver về 0

 Chân Vmot và GND nguồn cung cấp cho độngcợ

 Chân VDD và GND nguồn nuôi driver

* Muốn động cơ quay nhanh ta điều khiển chế độ của driver, khi động cơ đi quá nhanh sẽdẫn tới sai số ảnh hưởng đến sản phẩm mà ta gia công

Trang 14

Các chế độ điều khiển của driver A4988:

Hình 2.14 Các chế độ điều khiển A4988

2.3.2.4 Động cơ Servo

Hình 2.15 Động cơ Servo

Động cơ RC Servo 9G là động phổ biến dùng trong các mô hình điều khiển nhỏ và đơn giản như cánh tay robot Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM

Khối lượng : 9g

Kích thước: 22.2x11.8.32 mm

Momen xoắn: 1.8kg/cm

Trang 15

Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát

xung của vi điều khiển Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển gócquay theo ý muốn

2.3.2.5 Động cơ bước Nema 17

- Cường độ định mức 1.5A, mô men giữ 0.55 Nm, góc quay mỗi bước 1.8 °

- Dây nối dài 1m, đầu dây chuẩn XH2.54 Tương thích với đầu ra động cơ bước trênmạch RAMPS 1.4 hoặc CNC shield V3

- Công suất phù hợp cho máy in 3D và CNC mini

- Ít tỏa nhiệt, chuyển động êm

- Khối lượng: 400g

2.3.2.5 Công tắc hành trình Module

Trang 16

Hình 2.17 Công tắc hành trình Module

Công tắc hành trình máy in 3D được sử dụng trong các thiết kế máy in 3D để xác định điểm của hành trình trục, công tắc được thiết kế dễ sử dụng với dây cắm đi kèm, đèn báo kích hoạt Ngoài việc sử dụng cho máy in 3D công tắc có thể được sử dụng cho nhiều mục đích khác nhau

2.3.3 Chi tiết in:

Trang 17

Motor bot Motor top

Trang 18

Arm bottom Bánh răng GT2

Arm A1

Trang 19

Tay 1

Tay 2

2.4 Các bước chế tạo lắp ráp:

2.4.1-Cơ khí

B1 : Lắp 3 thanh trượt vào Bot , Lắp Đai ốc vít me để giữ vít me

B2 : Cố định LM8UU và Bạc đạn vào M-Top B3: Tương tự B2 với Motor bot

Trang 20

B4+B5 : Gắn động cơ bước vào Motor bot và Motor top

B6 :Cố định Puly GT2 vào 2 động cơ bước (có thể làm trước B4, B5)

Trang 21

B7 + B8 : Cố định Arm A và Arm A1 với Motor bottom

Trang 22

B9 : Cố định Arm B với Motor top

B10 : Lắp các khớp ở B8 vào trục thanh trượt phi 8

Trang 23

B11 : Lắp con trượt tròn vào spacer fix, 2 cái, sau đó cho vào 2 trục còn lại của tirenphi 8

B12 : Lắp B9 vào khớp với 3 trục Cố định khoảng cách giữa Bot và Top bằng 2 bulong 2 bên (đo đúng kích thước 2 bên = 4.8cm)

Trang 24

B13: Lắp bạc đạn khớp với Arm A1 và Arm B, Bulong phi 8 giữ trục

B14 : Lắp dây đai cho các bánh răng và puly

Trang 25

B15:Lắp động cơ bước vào Top

B16: Cố định động cơ bước và vitme bằng khớp nối mềm , Lắp vào 3 thanh trượt

Trang 26

B17: Cố định động cơ Servo vào Gá tay gắp vật, sau đó lắp Gá tay gắp vật với Arm B

Trang 27

2.4.2 Phần sơ đồ mạch điện:

Hình 3.1 Sơ đồ mạch điện

Bước 1: Lắp mạch Arduino Uno với CNC Shield

Trang 28

B2: Sau đó cắm các Jump vào mạch CNC Shield để đưa mạch về điều khiển động cơ bước với vi bước 1/16

B3: Cắm Drive A4988 vào 3 ô trên mạch CNC Shield để điều khiển 3 trục Z , khớp 1, khớp 2.

Trang 29

B4: Nối dây điều khiển động cơ bước và động cơ Servo với mạch CNC Shield

Trang 30

B6 : Cố định công tắc hành trình hạn chế góc quay của các khớp và trục Z

Trang 31

CHƯƠNG 3: CHƯƠNG TRÌNH ĐIỀU KHIỂN VÀ

PHẦN ĐỆM

3.1 Chương trình điều khiển bằng python

Hình 3.2 Giao diện python

3.1.1 Các bước viết ra giao diện chương trình python

Bước 1 : Tạo bảng làm việc SCARA Nhóm 6 TNT, File ,Help

Trang 32

from tkinter import*

import serial

import serial.tools.list_ports

import time #import the time library

from math import sin, cos

f=Frame(parent)

Label(f,text=text1,fg=clr1,anchor=W,width=w1,justify=LEFT,font=("Arial",size1,'bold')).pack(side=LEFT)

v=StringVar()

Label(f,textvariable=v,fg=clr2,anchor=W,width=w1,justify=LEFT,font=("Arial",size2)).pack(fill=X,side=RIGHT)

Trang 34

#hiển thị vi trí theo thứ tự ưu tiên trc sau,, widget nào lập trỉnh trc thì ưu tiên vị trí trc

Trang 35

fcon.pack(side=BOTTOM)

def onConnect(self):

Trang 36

if self.arduino is None or not self.arduino.isOpen():

Trang 37

print('Disconnection established successfully')

Bước 3 : Tạo bảng hiển thị Tọa độ , Góc khớp cánh tay Robot

lf1=LabelFrame(self,text='Current position')

fl11,self.v11=create_frame_label(lf1,'X:','$ $',w1=8,w2=8) fl11.grid(row=1,column=0)

fl12,self.v12=create_frame_label(lf1,'Y:','@ @',w1=8,w2=8) fl12.grid(row=1,column=1)

fl13,self.v13=create_frame_label(lf1,'Z:','* *',w1=8,w2=8) fl13.grid(row=1,column=2)

Trang 38

fl14,self.v14=create_frame_label(lf1,'KHOP 1:','^ ^',14,16,'black','orange') fl14.grid(row=2,column=0)

fl15,self.v15=create_frame_label(lf1,'KHOP 2:','^ ^',14,16,'black','orange') fl15.grid(row=2,column=1)

fl16,self.v16=create_frame_label(lf1,'TRUC Z:','^ ^',14,16,'black','orange') fl16.grid(row=2,column=2)

if self.arduino is not None and self.arduino.isOpen():

print('G21' + 'X' + str(X) + 'Y' + str(Y)+ 'Z' + str(Z))

self.arduino.write(bytes('G21 ' + 'X' + str(X) + 'Y' + str(Y)+

Trang 39

#valT = self.et47.get()#TOOL

if self.arduino is not None and self.arduino.isOpen():

print('G21' + 'X' + str(valR0) + 'Y' + str(valR1)+ 'Z' + str(valR2))

self.arduino.write(bytes('G21' + 'X' + str(valR0) + 'Y' + str(valR1) +

Trang 40

bt52 = Button(lf5, height=2,width=6,text = '<< Y-',font =("Broadway", 12,'bold'),command=self.cb_send_Yg)

Trang 41

lf4=LabelFrame(self,text='Move to Angles',relief=SUNKEN)

self.et46,self.v46=create_frame_entry(lf4,'Z Axis:',5)

self.et44,self.v44=create_frame_entry(lf4,'Arm A:',5)#44 X, 45 Y, 46 Z self.et45,self.v45=create_frame_entry(lf4,'Arm B:',5)

Trang 43

self.arduino.write(bytes('G90'+'\n', 'utf-8')) #tuyêt dôi

else:

self.t=1

print('G91')

if self.arduino is not None and self.arduino.isOpen():

self.arduino.write(bytes('G91'+'\n', 'utf-8')) #tuong dôi

self.gcodeEnt.bind('<Return>', (lambda event:self.gcodeSender()))

f33.pack(expand=YES, side=BOTTOM,fill=X, padx=5, pady=5)

Trang 44

Bước 7 : Chương trình điều khiển động học thuận

Trang 45

def cb_send_Yt(self): # y+

s=float(self.et57.get())

s1=float(self.v15.get())

s2= s1+s

Trang 50

self.arduino.write(bytes('G90'+'G0'+'X' + str(denta_1) + 'Y' + str(denta_1+denta_2) + 'Z' + str(self.et33.get()) + '\n','utf-8'))

Trang 52

A2 = float(((math.pow(X2, 2) + math.pow(Y2, 2) - math.pow(110, 2) - math.pow(120, 2)) / (2*110*120)))

Trang 53

self.arduino.write(bytes('G90'+'G0'+'X' + str(denta_11) + 'Y' +

str(denta_11+denta_21) + 'Z' + str(20) + '\n','utf-8'))

self.arduino.write(bytes('G90'+'G0'+'X' + str(denta_11) + 'Y' +

str(denta_11+denta_21) + 'Z' + str(self.et33.get()) + '\n','utf-8'))

self.arduino.write(bytes('G90'+'G0'+'X' + str(denta_12) + 'Y' +

str(denta_12+denta_22) + 'Z' + str(self.et82.get()) + '\n','utf-8'))

Ngày đăng: 25/03/2018, 00:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w