THIẾT KẾ, CHẾ TẠO ROBOT SCARA 3 BẬC TỰ DO - Pdf 50

Báo cáo: Đồ án kỹ thuật
Robot
Nhóm 3

THÀNH VIÊN TRONG NHÓM:
Đinh Tiến Vinh
Bùi Xuân Tường
Lê Đức Trung
Lê Thanh Tùng
Nguyễn Thanh Luân
Trương Quang Dũng

Page
1


LỜI NÓI ĐẦU
Vào đầu thế kỉ trước, con người đã có ý tưởng tạo ra những cỗ máy thay
thế mình trong các công việc nặng nhọc, nhàm chán, nguy hiểm. năm 1940,
robot đầu tiên ra đời tại Mĩ, làm nhiệm vụ vận chuyển các hoạt chất phóng xạ.
đến thập kỉ 80, trên thế giới đã có tới 40 nghìn robot thuộc 500 kiểu, do 200
hãng tham gia sản xuất. Ngày nay, robot được sử dụng rộng rãi trong sản xuất,
nghiên cứu khoa học và đời sống. Đó là thiết bị không thể thiếu trong quá trình
sản xuất, đặc biệt là hệ thống sản xuất linh hoạt. Robot ngày càng phát triển,
khéo léo và thông minh, được coi là sản phẩm điển hình của ngành kĩ thuật Cơ
điện tử.
Trước xu thế phát triển đó, hầu hết các trường đại học kỹ thuật ở Việt
Nam đã đưa môn “kỹ thuật robot” vào giảng dạy trong chương trình chính khóa.
Môn học này được giảng dạy chủ yếu cho các chuyên ngành cơ khí, song các
khía cạnh riêng biệt của nó như kỹ thuật điều khiển, lập trình, mô phỏng cũng
được các ngành khác quan tâm. Trong phạm vi của học phần, được sự giảng dạy

Đề tài
Tự thiết kế một Robot cánh tay Scara và điều khiển.

1.2.
-

Sản phẩm thiết kế của nhóm
Yêu cầu của đề tài
Thiết kế giao diện điều khiển bằng ngôn ngữ lập trình PYTHON và sử
dụng vi điều khiển arduino.
Giải và điều khiển robot theo động học thuận, động học nghịch .
Định vị tọa độ cho robot.
Làm ra được 1 ứng dụng cho robot.

Page
3


Chương 2: Thiết kế, chế tạo robot
2.1. Thiết kế
Thiết kế của tay Scara gồm 3 khâu 1 khớp tịnh tiến và 2 khớp xoay, tay A
có chiều dài là 110 mm, tay B là 115 mm. Thiết kế được vẽ trên Solidwork theo
cơ cấu truyền động bánh răng.
Sau khi thiết kế tổng cộng gồm 12 chi tiết lưu thành file .STL và in 3d để
lắp ráp.

Hình ảnh thiết kế tổng thể robot

Page
4

PWM).
 16 đầu vào analog.
 4 UARTs (cổng nối tiếp phần cứng).
 1 thạch anh 16 MHz.
 1 cổng kết nối USB.
Page
7


 1 jack cắm điện.
 1 đầu ICSP.
 1 nút reset.

Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển.
Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng
FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng
ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB. Ngoài
ra, Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số lượng
chân và nhiều tính năng mạnh mẽ hơn, nên các bạn vẫn có thể lập trình cho con
vi điều khiển này bằng chương trình lập trình cho Arduino Uno R3.
Chức năng: Là một bo mạch vi xử lý được dùng để lập trình tương tác với
các thiết bị phần cứng như động cơ. Để kết nối và làm việc Arduino với phần
mềm python... điều khiển cánh tay Robot.

2.3.2. Mạch RAMPS 1.4
RAMP 1.4 (Reprap Arduino Mega Pololu Shield) là board mở rộng
cắm trên Arduino Mega 2560, dùng để điều khiển cánh tay Robot
và điều khiển các máy in 3D Reaprap (mã nguồn mở Marlin).
RAMPS 1.4 có 5 khay dùng để lắp mô đun điều khiển các động cơ
bước A4988 cho cánh tay Robot, các mạch công suất điều khiển

chế độ full bước.
• Chế độ 1/8 bước : mỗi tín hiệu điều khiển, động cơ quay một góc bằng 1/8 so
với chế độ full bước.
• Chế độ 1/16 bước : mỗi tín hiệu điều khiển, động cơ quay một góc bằng 1/16
so với chế độ full bước.
Để thiết lập chế độ điều khiển bước, sử dụng các jump trên board RAMPS 1.4
như hình sau.

Như hình trên thì mỗi vị trí driver A4988 có 3 jump (MS1, MS2…) để chọn
chế độ điều khiển.

Robot của nhóm đùng ở chế độ vi bước 1/16 nên cắm cả 3 jump.
2.4. Lắp ráp robot
- Sau khi in 3D hết tất cả chi tiết, ta tiến hành lắp ráp robot.
- Quá trinh lắp ráp: robot được láp ráp từ cụm nhỏ rồi đến tổng thể của 1
con robot hoàn chỉnh.
- Đầu tiên chúng ta lắp phần đế để đỡ robot, gồm có:

Page
10


Sau đó, ráp thành:

Page
11


Page
12

17


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
Giao diện và chương trình điều khiển robot được lập trình toàn bộ trên
phần mềm PYTHON.

Để điều khiển được robot thì ta phải giải được động học thuận và động học
nghịch: Bảng Move to Coordinate ( điều khiển theo động học nghịch) và Move
toAngle (động học thuận).
Giải động học thuận
Động học thuận là khi ta biết 3 góc xoay của động cơ sẽ tìm ra tọa độ
x,y,z.
Đầu tiên vẽ tay robot và phân tích động học ra giấy.

Page
18


Lập bảng phân tích từng khâu

Nhân các ma trận A1, A2, A3 với nhau và tìm ra phương trình tọa độ x và
y. Do Scara robot có khớp 1 là khớp tịnh tiến nên chỉ có phương trình x, y.

Việc tiếp theo ta chỉ cần vận kiến thức lập trình và đưa 3 phương trình này
vào PYTHON bằng thư viện math:
Px = (lengthArmB * math.cos(theta1) * math.cos(theta2)) - (lengthArmB
* math.sin(theta1) * math.sin(theta2)) + (lengthArmA * math.cos(theta1))
Py = (lengthArmB * math.sin(theta1) * math.cos(theta2)) + (lengthArmB

Py = toadoy.get()
Pz = toadoz.get()
Page
21


denta = ((math.pow(Px, 2) + math.pow(Py, 2) - math.pow(lengthArmA, 2) math.pow(lengthArmB, 2)) / (2 * lengthArmA * lengthArmB))
denta2 = math.acos(denta)
denta_2 = denta2 * 180/math.pi

s_q = math.atan2(Py, Px)
q = ((math.pow(Px, 2) + math.pow(Py, 2) + math.pow(lengthArmA, 2) math.pow(lengthArmB, 2)) / (2 * lengthArmA * math.sqrt(math.pow(Px, 2) +
math.pow(Py, 2))))
dentaq = math.acos(q)
denta1 = s_q - dentaq
denta_1 = denta1 * 180/math.pi
Tính góc ra xung
position[1] = int (denta_1 * ((200 * 16) * 32/9) / 360)
position[2] = int (denta_2 * ((200 * 16) * 32/9) / 360)
position[3] = int ((Pz * 3200)/8)
Lấy góc theta1 và theta2 suy ra từ động học nhân với tổng số xung quay
được 1 vòng và chia cho 360 độ.
Còn trục z sử dụng vít me tịnh tiến có bước ren là 8mm, nên lấy chiều dài
cần tịnh tiến nhân tổng số xung và chia cho 8mm.
Sử dụng giao diện

Page
22



Như đã trình bày ở mục trước, hầu hết chương trình điều khiển chính
được viết trên PYTHON nên arduino chỉ có nhiệm vụ là nhận chuỗi dữ liệu từ
PYTHON gửi xuống rồi tiến hành sắp xếp và tách lây dữ liệu và điều khiển
động cơ bước theo mong muốn.
Sau khi PYTHON gửi chuỗi dữ liệu xuống, arduino tiến hành nhận và tìm
vị trí của các kí tự A,B,C,D,...
while(Serial.available()>0)
{
digitalWrite(13, HIGH);
recever = Serial.read();
Serial.println(recever );

if(recever=='A'){position_A = count_number_string;}
if(recever=='B'){position_B = count_number_string;}
if(recever=='C'){position_C = count_number_string;}
if(recever=='D'){position_D = count_number_string;}
if(recever=='E'){position_E = count_number_string;}
if(recever=='F'){position_F = count_number_string;}
if(recever=='G'){position_G = count_number_string;}
if(recever=='H'){position_H = count_number_string;}
if(recever=='I'){position_I = count_number_string;}
if(recever=='Z'){position_Z = count_number_string;}

count_number_string++;
Page
24


a[count_number_string]=recever;
}


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status