Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 72

ĐẠI HỌC QUỐC GIA HÀ NỘI

ĐẠI HỌC CÔNG NGHỆ

BẢN BÁO CÁO CUỐI KỲ

MÔN HỌC: MÔ PHỎNG VÀ THIẾT KẾ HỆ CƠ ĐIỆN TỬ


NHÓM 12

Hà Nội, ngày 7 tháng 5 năm 2023


BẢN BÁO CÁO CUỐI KỲ

Môn học: Mô phỏng và thiết kế hệ cơ điện tử


Giảng viên hướng dẫn: TS. Trần Cường Hưng
ThS: Nguyễn Quang Nhã

NHÓM 12
ĐỀ TÀI: Xuất nhập kho bằng mã vạch sử dụng cánh tay robot 4 bậc
tự do.
Thành viên nhóm:
STT Họ Và Tên Mã Sinh Viên
1 Nguyễn Vũ Phúc 19021092
2 Bùi Tuấn Thành 19021114
3 Mai Đình Trinh 19021125
4 Hứa Quang Trường 19020161
5 Nguyễn Thọ Toàn 19021122
MỤC LỤC

MỞ ĐẦU....................................................................................................................... 1
CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT CÔNG NGHIỆP...........................................1
1.1. Khái niệm về robot công nghiệp.......................................................................1
1.2. Cấu trúc chung của robot công nghiệp.............................................................1
1.3. Cấu trúc chung của robot công nghiệp.............................................................2
1.4. Phân loại...........................................................................................................3
CHƯƠNG 2: ROBOT 4 BẬC TỰ DO..........................................................................7
2.1. Bậc tự do của robot..........................................................................................7
2.2. Thiết kế robot 4 bậc tự do.................................................................................7
2.3. Động học thuận..............................................................................................10
2.4. Động học nghịch............................................................................................13
CHƯƠNG 3: MÔ PHỎNG HOẠT ĐỘNG ROBOT TRÊN MATLAB......................17
3.1. Thiết lập các khối điều khiển trong simulink..................................................17
3.2. Các thao tác tạo giao diện trên phần mềm matlab..........................................17
3.3. Kết quả mô phỏng..........................................................................................19
CHƯƠNG 4: MÔ HÌNH THỰC TẾ............................................................................23
4.1. Các linh kiện sử dụng.....................................................................................23
4.1.1. Raspberry Pi 3B...................................................................................23
4.1.1.1. Cấu trúc phần cứng...........................................................................24
4.1.1.2. Thông số kỹ thuật.............................................................................26
4.1.1.3. Sơ đồ chân GPIO..............................................................................27
4.1.1.4. Ứng dụng..........................................................................................29
4.1.2. Servo SG90..........................................................................................30
4.1.3. Servo mg996........................................................................................31
4.1.4. Dây cắm...............................................................................................32
4.1.5. Mô hình in 3D robot.............................................................................32
4.1.6. Breadboard...........................................................................................33
4.2. SolidWorks.....................................................................................................33
4.2.1. Lịch sử hình thành................................................................................33
4.2.2. Một số tính năng của SolidWorks........................................................33
4.2.3. Hướng dẫn thiết kế 2D và 3D trong SolidWorks..................................35
4.2.3.1. Vẽ 2D................................................................................................35
4.2.3.2. Vẽ 3D................................................................................................40
4.3. Xử lý ảnh........................................................................................................42
4.3.1. Khái niệm về Barcode..........................................................................42
4.3.2. Mã vạch 1D..........................................................................................43
4.3.3. Thiết lập thực nghiệm...........................................................................49
4.4. Phần lập trình nhúng và giao diện..................................................................52
4.4.1. Giới thiệu về phần mềm QT creator và framework QT........................52
4.4.2. Bước tiến hành phát triển phần mềm....................................................53
4.4.3. Thiết kế phần mềm:..............................................................................59
CHƯƠNG 5: KẾT LUẬN...........................................................................................64
TÀI LIỆU THAM KHẢO...........................................................................................65
DANH MỤC HÌNH ẢNH
Hình 1:Robot 6 bậc tự do...............................................................................................3
Hình 2: Dạng Decac.......................................................................................................4
Hình 3: Dạng hình trụ....................................................................................................4
Hình 4: Dạng hình cầu...................................................................................................5
Hình 5: Dạng khớp nối..................................................................................................5
Hình 6: Robot quay........................................................................................................5
Hình 7: Động học vòng hở.............................................................................................6
Hình 8: Động học vòng kín............................................................................................6
Hình 9: Chân đế.............................................................................................................7
Hình 10: Bàn xoay.........................................................................................................8
Hình 11: Trục truyền động 1..........................................................................................8
Hình 12: Trục truyền động 2..........................................................................................9
Hình 13: Tay gắp...........................................................................................................9
Hình 14: Hình mô phỏng.............................................................................................10
Hình 15: Các góc được biểu diễn trong bảng DH........................................................12
Hình 16: Giao diện mô phỏng điều khiển....................................................................19
Hình 17: Mô phỏng động học thuận............................................................................20
Hình 18: Động học thuận vị trí 1.................................................................................20
Hình 19: Kiểm tra động học nghịch.............................................................................21
Hình 20: Vị trí 2........................................................................................................... 21
Hình 21: Động học nghịch...........................................................................................22
Hình 22: Raspberry Pi Model 3B.................................................................................24
Hình 23: Cấu trúc phần cứng của Raspberry Pi Model 3B..........................................24
Hình 24: Sơ đồ chân....................................................................................................27
Hình 25: Servo SG90...................................................................................................30
Hình 26: Servo mg996.................................................................................................31
Hình 27: Mô hình thực tế.............................................................................................32
Hình 28: Breadboard....................................................................................................33
Hình 29: Mã vạch........................................................................................................43
Hình 30: Mã UPC........................................................................................................44
Hình 31: Mã code 39...................................................................................................45
Hình 32: Mã vạch INTERLEAVED 2 OF 5................................................................45
Hình 33: Sơ đồ triển khai.............................................................................................50
Hình 34: Dữ liệu được đẩy lên Firebase......................................................................52
Hình 35: Cấu trúc chương trình...................................................................................53
Hình 36: Giao diện GUI...............................................................................................59

DANH MỤC BẢNG


Bảng 1: Bảng DH.........................................................................................................12
Bảng 2: Thông số Raspberry Pi 3B..............................................................................26
Bảng 3: Các loại mã thông dụng..................................................................................47
Bảng 4: Mã hóa chẵn lẻ...............................................................................................48
Bảng 5: Mã hóa nhị phân.............................................................................................49
MỞ ĐẦU

Robot công nghiệp là robot được sử dụng trong sản xuất công nghiệp. Theo tiêu
chuẩn AFNOR của Pháp. Khái niệm về robot công nghiệp là một cơ cấu chuyển động
tự động có thể lập trình, lặp lại các chương trình, tổng hợp các chương trình đặt ra trên
các trục tọa độ, có khả năng định vị, định hướng, di chuyển các đối tượng vật chất như
chi tiết, đạo cụ, gá lắp theo những hành trình thay đổi đã được chương trình hóa nhằm
thực hiện các nhiệm vụ công nghệ khác nhau.
Mục tiêu của bài tập lớn là thực hiện mô phỏng cánh tay robot 4 bậc tự do, thiết
kế mô hình in 3D, nhận diện được mã vạch và đẩy dữ liệu lên Firebase, điều khiển
cách tay gắp đồ vật khi nhận được mã từ Firebase. Bản báo cáo này của nhóm chúng
em gồm 5 chương: Chương 1 sẽ giới thiệu tổng quan về robot công nghiệp. Chương 2
sẽ giới thiệu các lý thuyết về robot 4 bậc tự do (Động học thuận và nghịch). Chương
thứ 3 sẽ nói về phần thiết kế mô phỏng mô hình cánh tay robot trên MATLAB.
Chương thứ 4 trình bày về mô hình thực tế và chương cuối cùng sẽ đưa ra kết luận,
tổng kết cũng như hướng phát triển đề tài trong tương lai.

1
CHƯƠNG 1: GIỚI THIỆU VỀ ROBOT CÔNG NGHIỆP

1.1. Khái niệm về robot công nghiệp


Robot công nghiệp là robot được sử dụng trong sản xuất công nghiệp. Theo tiêu
chuẩn AFNOR của Pháp. Khái niệm về robot công nghiệp là một cơ cấu chuyển động
tự động có thể lập trình, lặp lại các chương trình, tổng hợp các chương trình đặt ra trên
các trục tọa độ, có khả năng định vị, định hướng, di chuyển các đối tượng vật chất như
chi tiết, đạo cụ, gá lắp theo những hành trình thay đổi đã được chương trình hóa nhằm
thực hiện các nhiệm vụ công nghệ khác nhau.
Theo tiêu chuẩn RIA của Mỹ ,Robot institute of America. Khái niệm về robot
công nghiệp là một tay máy vạn năng có thể lặp lại các chương trình, được thiết kế để
di chuyển vật liệu, chi tiết, dụng cụ, hoặc các thiết bị chuyên dùng thông qua các
chương trình chuyển động có thể thay đổi để hoàn thành các nhiệm vụ khác nhau.
Theo tiêu chuẩn TOCT 25686-85 của Nga. Robot công nghiệp là một máy tự
động, được đặt cố định hoặc di động được, liên kết giữa một tay máy và một hệ thống
điều khiển theo chương trình, có thể lặp đi lặp lại để hoàn thành các chức năng vận
động và điều khiển trong quá trình sản xuất.
Do đó, robot công nghiệp có thể được hiểu là những thiết bị tự động linh hoạt.
Thực hiện các chức năng theo chương trình đã được lập trình sẵn. Với đặc điểm có thể
lập trình lại được, robot công nghiệp là thiết bị tự động hóa và ngày càng trở thành bộ
phận không thể thiếu được của các hệ thống sản xuất linh hoạt.

1.2. Cấu trúc chung của robot công nghiệp


Khái niệm về robot công nghiệp được khai sinh vào năm 1954 khi một robot có
khả năng nhấc lên và đặt xuống các vật thể được cấp bằng sáng chế tại Hoa Kỳ. Năm
1975 công ty Unimation đã bắt đầu có lợi nhuận từ sản phẩm robot đầu tiên. Chiếc
robot công nghiệp được đưa vào ứng dụng đầu tiên, năm 1961, ở một nhà máy ô tô của
General Motors tại Trenton, New Jersey Hoa Kỳ.

1
Năm 1967, Nhật Bản mới nhập chiếc robot công nghiệp đầu tiên từ công ty
AMF. Đến năm 1990 có hơn 40 công ty Nhật Bản, trong đó có những công ty
khổng lồ như công ty Hatachi và công ty Mitsubisi, đã đưa ra thị trường quốc tế
nhiều loại robot nổi tiếng.
Từ những năm 80, nhất là vào những năm 90, do áp dụng rộng rãi các tiến bộ
kỹ thuật về vi xử lý và công nghệ thông tin, số lượng robot công nghiệp đã gia
tăng, giá thành giảm đi rõ rêt, tính năng đã có nhiều bước tiến vượt bậc. Nhờ vậy
robot công nghiệp đã có vị trí quan trọng trong các dây chuyền sản xuất hiện đại.
Đối với robot công nghiệp, liên kết nhiều robot tạo ra khả năng làm việc với
người đã được đưa vào sử dụng thực tế. Ví dụ, CR-35iA, một robot hợp tác được
sản xuất bởi FANUC Corp. vào năm 2015 và Coro Co-robot do Life Robotics Inc.
sản xuất vào năm 2015, có thể làm việc với người mà không cần hàng rào an toàn.
Ngoài ra, NEXTAGE, được sản xuất bởi Kawada Robotics Corp. vào năm 2011,
có cấu trúc bắt chước phần thân trên của con người và robot có thể thực hiện các
nhiệm vụ mà trước đây cần được thực hiện bởi công nhân.

1.3. Cấu trúc chung của robot công nghiệp


Tay máy (Manipulator): Là cơ cấu cơ khí gồm các khâu, khớp. Chúng hình thành
cánh tay (arm) để tạo các chuyển động cơ bản, cổ tay (wrist) tạo nên sự khéo léo, linh
hoạt và bàn tay (hand) hoặc phần công tác (end effector) trực tiếp hoàn thành các thao
tác trên đối tượng.
Hệ thống cảm biến: gồm các sensor và thiết bị chuyển đổi tín hiệu khác. Hệ
thống sensor trong giúp robot nhận biết trạng thái của các cơ cấu và các sensor ngoài
nhận biết trạng thái của môi trường.
Cơ cấu chấp hành: tạo chuyển động cho các khâu của máy tay. Nguồn động lực
là động cơ các loại: Điện, thủy lực, khí nén hoặc kết hợp. Hệ thống điều khiển
(controller): Thường là hệ thống điều khiển số có máy tính giám sát và điều khiển hoạt
động của robot.

2
1.4. Phân loại
Phân loại theo số bậc tự do: 3 bậc, 4 bậc,…

Hình 1:Robot 6 bậc tự do


Phân loại theo hệ thống truyền động:
- Robot truyền động bằng điện.
- Robot truyền động bằng khí nén.

3
- Robot truyền động bằng thủy lực.
- Robot truyền động hỗn hợp.
Phân loại theo dạng hình học:
- Dạng Decac: Sử dụng 3 đường trượt vuông góc với nhau trong không gian là
các trục tọa độ x,y,z. Robot chuyển động theo 3 trục tọa độ. Sử dụng các khớp tịnh
tiến, phạm vi làm việc của robot được mở rộng theo hình chữ nhật.

Hình 2: Dạng Decac


- Dạng hình trụ: Trục cơ bản là một trụ dọc, robot chuyển động lên và xuống dọc
theo trục. Bằng các chuyển động quay quanh trục, tịnh tiến dọc trục phạm vi làm việc
của robot được mở rộng theo một hình trụ bao quanh trục cơ bản.

Hình 3: Dạng hình trụ


- Dạng hình cầu: Sử dụng các khớp lồng vào nhau, giúp cho robot có khả năng
chuyển động lên hoặc xuống theo chiều ngang của trục quay. Dạng đa khớp nối cho
phép Robot mở rộng khoảng không gian làm việc theo hình cầu.

4
Hình 4: Dạng hình cầu
- Dạng khớp nối: Gồm hai phần tử thẳng tương ứng với cánh tay và cẳng tay. Các
phần tử này được ghép nối với nhau bởi hai khớp tương ứng với khớp bả vai và khớp
khuỷu tay. Cổ tay được nối với cẳng tay.

Hình 5: Dạng khớp nối


- Robot quay:

Hình 6: Robot quay


Phân loại theo cấu trúc động học:
- Động học vòng hở: Là một chuỗi động học hở với một khâu cố định gọi là đế
và các khâu động, trong đó các khâu động được bố trí nối tiếp với nhau. Mỗi khâu
động được liên kết hay nối động với một khâu khác nhờ các khớp liên kết.

5
Hình 7: Động học vòng hở
- Động học vòng kín: Là một chuỗi động học kín, ở đó mỗi khâu luôn luôn được
liên kết với ít nhất hai khâu khác.

Hình 8: Động học vòng kín

6
CHƯƠNG 2: ROBOT 4 BẬC TỰ DO

2.1. Bậc tự do của robot


Bậc tự do là số khả năng chuyển động của một cơ cấu (chuyển động quay hoặc
tịnh tiến). Để dịch chuyển được một vật trong không gian, cơ cấu chấp hành của robot
phải đạt được một số bậc tự do. Nhìn chung cơ hệ của robot thường là một cơ cấu hở.
Do đó bậc tự do của nó có thể tính theo công thức:
F=λ ( n− j−1 )+ ∑ f i −f p

Trong đó:
λ : Là số bậc tự do của cơ cấu trong không gian ( λ=6 ¿
n: Là tổng số khâu trong cơ cấu
j: Là tổng số khớp trong cơ cấu
∑ f i: Là tổng số bậc tự do của khớp trong cơ cấu
f p : Là tổng số bậc tự do thừa của cơ cấu

2.2. Thiết kế robot 4 bậc tự do


Chi tiết 1:

Hình 9: Chân đế

7
Chi tiết 2:

Hình 10: Bàn xoay


Chi tiết 3:

Hình 11: Trục truyền động 1

Chi tiết 4:

8
Hình 12: Trục truyền động 2
Chi tiết 5:

Hình 13: Tay gắp


Hoàn thiện mô hình mô phỏng:

9
Hình 14: Hình mô phỏng
2.3. Động học thuận
Với bài toán động học thuận vị trí, số liệu đầu vào là giá trị biến khớp và đầu ra
là vị trí và hướng của khâu cuối tại một thời điểm nhất định (chưa xét đến biến thiên
theo thời gian).
Phương pháp Denavit-Hartenberg: Trước hết, ta cần xác định mỗi hệ trục tọa
độ gắn với từng khâu của Robot. Ký hiệu các hệ toạ độ này từ 0 đến n, kể từ giá cố
định trở đi. Như vậy, hệ tọa độ O0 X 0 Y 0 Z 0được gắn với giá cố định (khâu 0) sẽ là một
hệ tọa độ cố định và thường được chọn làm hệ tọa độ toàn cục (global coordinate
system). Hệ tọa độ On X n Y n Z n được gắn với khâu cuối (khâu thao tác cuối). Nhiệm vụ
của bài toán động học thuận vị trí của Robot có thể được quy về nhiệm vụ định vị và
định hướng On X n Y n Z n so với O0 X 0 Y 0 Z 0.
Sau khi đã thiết lập được hệ trục tọa độ, nhiệm vụ tiếp theo là xác định thông số
của phép biến đổi giữa các hệ trục tọa độ trung gian, hay còn gọi là bộ thông số
Denavit Hatenberg (bộ thông số D-H).
Gọi:
θi là góc giữa trục X i−1và trục X i ;
d i là khoảng cách giữa trục X i−1 và trục X i ;
a i là khoảng cách giữa trục Zi−1 và trục Zi ;
α i là góc giữa trục Zi−1 và trục Zi .

10
Nếu khớp thứ i là khớp quay thì θi là biến khớp, thông số còn lại là hằng số.
Ngược lại, nếu khớp thứ i là khớp tịnh tiến thì d i là biến khớp, thông số còn lại là hằng
số. Các bước xây dựng phương trình động học Robot theo phương pháp D-H:

11
Hình 15: Các góc được biểu diễn trong bảng DH
Ta có bảng DH như sau:
a α d θ

Khớp 1 a1 90 ° d1 θ1

Khớp 2 a2 0 0 θ2

Khớp 3 a3 0 0 θ3

Khớp 4 a4 0 0 θ4

Bảng 1: Bảng DH

Trong đó:
a: Khoảng cách của 2 trục z.
α : Góc hợp giữa 2 trục z.
d: Khoảng cách giữa 2 trục x.
θ : Góc hợp giữa 2 trục x.
Ma trận chuyển đổi tổng quát từ hệ i sang i+1:

[ ]
cosθ −cos α∗sinθ sin α∗sinθ a∗cosθ
sinθ cos α∗cosθ −sin α∗cosθ a∗sinθ
0 sin α cos α d
0 0 0 1
Ma trận chuyển đổi từ hệ 0 sang hệ 1: (Lấy thông số khâu 1)

12
[ ]
cosθ1 0 sin θ1 a 1∗cosθ 1
sin θ1 0 −cosθ1 a 1∗sinθ 1
T1 =
0 1 0 d1
0 0 0 1
Ma trận chuyển đổi từ hệ 1 sang hệ 2:

[ ]
cosθ 2 −sin θ2 0 a 2∗cosθ2
sin θ2 cosθ2 0 a2∗sin θ2
T2 =
0 0 1 0
0 0 0 1
Ma trận chuyển đổi từ hệ 2 sang hệ 3:

[ ]
cosθ 3 −sin θ3 0 a 3∗cosθ 3
sin θ3 cosθ3 0 a 3∗sin θ3
T3 =
0 0 1 0
0 0 0 1
Ma trận chuyển đổi từ hệ 3 sang hệ 4:

[ ]
cosθ 4 −sinθ 4 0 a 4∗cosθ 4
sin θ4 cosθ 4 0 a 4∗sin θ 4
T4 =
0 0 1 0
0 0 0 1
Do đó, ma trận chuyển đổi từ hệ 0 sang hệ 4:

[ ]
r 11 r 12 r 13 Px
r r r Py
T =T 1 ×T 2×T 3 ×T 4= 21 21 23
r 31 r 32 r 33 Pz
0 0 0 1
P (Px,Py,Pz): Tọa độ
Px=cos θ1∗( a1+ a3∗cos ( θ2 +θ3 ) + a2∗cos ( θ2 ) +a 4∗cos ⁡(θ 2+ θ3 +θ4 ))
Py=sin θ1∗(a 1+ a3∗cos ( θ2 +θ3 ) +a 2∗cos ( θ 2 ) +a 4∗cos ⁡(θ 2+θ 3+ θ4 ))
Pz=d 1 +a3∗sin ( θ2 +θ3 ) + a2∗sin ( θ 2) + a4∗sin(θ 2+ θ3 +θ4 )¿
R: Hướng

2.4. Động học nghịch


Bài toán động học ngược Robot là nội dung nghiên cứu cơ sở để phục vụ cho
việc điều khiển chuyển động của Robot theo quỹ đạo cho trước. Về cơ bản, dữ liệu đầu
vào của bài toán là thông số động học của khâu thao tác cuối, dữ liệu đầu ra cần tính
toán là thông số động học khớp.
Ta có:
T =T 1 ×T 2×T 3 ×T 4

13
Nhân 2 vế trên với ma trận nghịch đảo của T1 là T 1−1 ta thu được:
T 1 x T =( T 1 x T 1 ) × ( T 2 ×T 3× T 4 )
−1 −1

Ở mỗi vế của phương trình trên ta sẽ tính được một ma trận có kích cỡ4x4 như
sau:

[ ][ ]
¿ ¿ ¿ I1 ¿ ¿ ¿ K1
¿ ¿ ¿ I2 ¿ ¿ ¿ K2
=
¿ ¿ ¿ I3 ¿ ¿ ¿ K3
0 0 0 1 0 0 0 1

{
I 1 =K 1
Ta thấy: I 2 =K 2
I 3 =K 3
Sử dụng matlab ta tính được:

{
I 1=Px∗cos ( θ1 ) + Py∗sin ⁡(θ1 )
I 2=Pz−d 1
I 3=Px∗sin ( θ1 ) −Py∗cos(θ 1)

{
K 1=a 3∗cos ( θ 2+θ 3 ) +a2∗cos ( θ 2) +a 4∗cos ⁡(θ2 +θ3 +θ4 )
K 2=a3∗sin ( θ2 +θ3 ) + a2∗sin ( θ 2 )+ a4∗sin ⁡(θ2 +θ3 +θ 4)
K 3=0
Ta sẽ chọn giá trị ban đầu cho tổng 3 góc: θ2 +θ3 +θ 4=0
 Tính góc θ1
Ta có: I 3=K 3

 Tính góc θ3

{
Ta có: I = K
2 2
I 1= K 1

Ta đặt:

14
 Tính góc θ2

Ta có:

Ta thay sin ⁡(θ2 ) vào phương trình (1) ta được:

15
Ta thay cos ⁡(θ2 ) vào phương trình (2) và làm tương tự như tìm cos ⁡(θ2 ) ta được:

 Tính góc θ 4

Ta có:

16
CHƯƠNG 3: MÔ PHỎNG HOẠT ĐỘNG ROBOT TRÊN
MATLAB

3.1. Thiết lập các khối điều khiển trong simulink


Sử dụng Simscape để chuyển đổi MultiMultibody Link để chuyển mô hình từ
SolidWorks sang Matlab.
Thiết lập các khối điều khiển trong simulink như sau:

Khối Slider gain: cho phép ta thay đổi các giá trị góc.
Khối Joint Actuator: có nhiệm vụ truyền các thông số như góc, vận tốc góc, gia
tốc góc vào khớp xoay.

3.2. Các thao tác tạo giao diện trên phần mềm matlab
Khởi tạo một file .fig Trên Command Window, gõ “guide” để tạo file cho việc
thiết lập giao diện
Chọn các khối Slider, Static Text, Edit text, Panel, Push Button

17
Điều chỉnh các thông số của các khối: kích chuột phải vào khối và chọn Property
Inspector, sau đó thay đổi các thông số cho phù hợp với bài toán.

Thiết lập chức năng cho khối, ta vào View CallBacks => Chọn CallBack

18
Sau khi thực hiện các thao tác trên ta thu được một giao diện hoàn thiện như sau:

Hình 16: Giao diện mô phỏng điều khiển


3.3. Kết quả mô phỏng
Ta sẽ tiến hành chạy chương trình mô phỏng bằng cách nhấn vào nút ‘RUN’, ở
chế độ này robot sẽ hoạt động theo động học thuận.

19
Hình 17: Mô phỏng động học thuận

{
Px=314.67
Khi nhấn DEFAULT, ta có vị trí của robot là: Py=0
Pz=40.28

Hình 18: Động học thuận vị trí 1


Khi nhập vị trí cho Px = 314.67, Py = 0, Pz = 40.28 để mô phỏng động học nghịch
ta thấy vị trị của robot trùng với vị trí DEFAULT. Do đó ta có thể kết luận việc
tính toán động học nghịch cho robot là chính xác.

20
Hình 19: Kiểm tra động học nghịch
Ta tiến hành kiểm thử lại lần 2 với các giá trị góc theta khác ta có vị trí mới của

{
Px=313.8607
robot sẽ là: Py=10.9603
Pz=23.6588

Hình 20: Vị trí 2


Ta tiếp tục nhập các giá trị Px = 313.8607, Py = 10.9603, và Pz = 23.6588 vừa thu
được vào inverse kinematic. Chọn chế độ động học nghịch bằng cách nhấn inverse.
Kết quả các giá trị góc trả về gần trùng khớp. Do vậy, ta kết luận robot đã làm việc
tương đối chính xác.

21
Hình 21: Động học nghịch

22
CHƯƠNG 4: MÔ HÌNH THỰC TẾ

4.1. Các linh kiện sử dụng


4.1.1. Raspberry Pi 3B
Raspberry Pi 3 là một board máy tính đơn nhỏ, giá rẻ, kích thước chỉ bằng một
thẻ tín dụng, tiết kiệm điện năng (vì nguồn điện cung cấp cho RPi chỉ có 5V) được
giới thiệu bởi Raspberry Pi Foundation, đi kèm với CPU, GPU, cổng USB và các chân
I/O và có khả năng thực hiện một số chức năng đơn giản như một máy tính thông
thường.
Máy tính nhỏ bé này được phát triển với mục đích làm cho quá trình học máy
tính trở nên dễ dàng để một học sinh trung bình có thể nhận được lợi ích và dự đoán
những gì một máy tính tiên tiến có thể làm.
Raspberry Pi 1 (Model B thế hệ đầu tiên) ra đời vào năm 2012 và sớm nổi tiếng
về sự dễ sử dụng và tính sẵn có. Tương tự, Raspberry Pi 2 được giới thiệu vào tháng 2
năm 2015 với một chút cải tiến về thiết kế có thêm RAM so với phiên bản trước.
Được giới thiệu vào năm 2016, Raspberry Pi 3 Model B đi kèm với bộ xử lý lõi
tứ cho thấy hiệu năng mạnh mẽ gấp 10 lần Raspberry Pi 1. Và tốc độ của Raspberry Pi
3 cao hơn 80% so với Raspberry Pi 2.
Phần cứng Raspberry đã trải qua một số biến thể về hỗ trợ thiết bị ngoại vi và
dung lượng bộ nhớ. Mỗi bổ sung mới đều đi kèm với một chút cải tiến về mặt thiết kế
trong đó các tính năng nâng cao được thêm vào trong thiết bị để nó có thể thực hiện
càng nhiều chức năng càng tốt như một máy tính thông thường.
WiFi và Bluetooth không có trong các phiên bản cũ hơn (Pi 1 và Pi 2), được
thêm vào trong phần bổ sung mới của thiết bị này (Pi 3), cho phép duy trì kết nối với
các thiết bị ngoại vi mà không cần sự tham gia của bất kỳ kết nối vật lý nào.
Raspberry Pi Foundation gần đây đã ra mắt Raspberry Pi 3 Model B + vào ngày
14 tháng 3 năm 2018, đây là phiên bản gần đây nhất của Raspberry Pi 3 trưng bày tất
cả các thông số kỹ thuật được giới thiệu trong Pi 3 Model B, với cải tiến bổ sung bao
gồm khởi động mạng, khởi động USB và nguồn qua Ethernet, điều này làm cho thiết
bị trở nên hữu ích ở những nơi khó tiếp cận.

23
Hình 22: Raspberry Pi Model 3B
4.1.1.1. Cấu trúc phần cứng

Hình 23: Cấu trúc phần cứng của Raspberry Pi Model 3B

24
Raspberry Pi 3 Model B đi kèm với bộ xử lý lõi tứ 64 bit, trên một board mạch
với các tính năng WiFi và Bluetooth và USB.
Nó có tốc độ xử lý từ 700 MHz đến 1,4 GHz trong đó bộ nhớ RAM dao động từ
256 đến 1GB.
CPU của thiết bị này được coi là bộ não của thiết bị chịu trách nhiệm thực thi các
câu lệnh dựa trên hoạt động toán học và logic.
GPU (bộ xử lý đồ họa) là một chip tiên tiến khác được tích hợp trong board mạch
có chức năng tính toán hình ảnh. Board mạch được trang bị cáp lõi video Broadcam
chủ yếu được sử dụng để chơi các trò chơi video thông qua thiết bị.
Pi 3 đi kèm với các chân GPIO (General Purpose Input Output) rất cần thiết để
duy trì kết nối với các thiết bị điện tử khác. Các chân đầu ra đầu vào này nhận lệnh và
hoạt động dựa trên chương trình của thiết bị.
Cổng Ethernet được tích hợp trên thiết bị này để thiết lập một đường giao tiếp
với các thiết bị khác. Bạn có thể kết nối cổng Ethernet với bộ định tuyến để duy trì kết
nối cho internet.
Board có bốn cổng USB được sử dụng có thể sử dụng để kết nối với bàn phím,
chuột hoặc có thể kết nối USB 3G để truy cập internet và thẻ SD được thêm vào để lưu
trữ hệ điều hành.
Đầu nối nguồn điện là một phần cơ bản của board mạch được sử dụng để cung
cấp nguồn 5 V cho bo mạch. Bạn có thể sử dụng bất kỳ nguồn nào để thiết lập nguồn
cho board mạch, tuy nhiên, bạn ưu tiên kết nối cáp nguồn qua cổng USB của máy tính
xách tay để cung cấp 5 V.
Pi 3 hỗ trợ hai tùy chọn kết nối bao gồm HDMI và RCA Video. Cổng HDMI
được sử dụng để kết nối LCD hoặc TV, có thể hỗ trợ cáp phiên bản 1.3 và 1.4. Cổng
RCA Video được sử dụng để kết nối các màn hình TV đời cũ sử dụng jack cắm 3,5mm
mà không hỗ trợ cổng HDMI.
Cổng USB được tích hợp trên board mạch được sử dụng để khởi động thiết bị. Vì
RPi chạy hệ điều hành Linux, nên chỉ cần cắm bàn phím và chuột vào là có thể sử
dụng mà không cần cài thêm driver.
Vi xử lí Broadcom BCM2837, ARMv8 (64bit) quad-core
Broadcom VideoCore IV, OpenGL ES 2.0,OpenVG
GPU
1080p60 , 400 MHz
Tốc độ xử lý 1.2 Ghz
Power Ratings 800mA @ 5V
RAM (chia sẻ với GPU) 1GB LPDDR2 (900Mhz)

25
Bộ nhớ Micro SD
GPIO 40
4xUSB 2.0
10/100mb Ethernet
Kết nối wifi 802.11 n
Bluetooth 4.1
CSI, DSI
Video & audio 1080p HDMI, stero audio 3.5mm jack
Kích thước 85x56mm
Bảng 2: Thông số Raspberry Pi 3B
4.1.1.2. Thông số kỹ thuật
- -1,4 GHz 64 bit, Bộ xử lý lõi tứ Broadcom BCM2387 ARM Cortex-A53,
nhanh hơn 10 lần so với Raspberry Pi 1.
- RAM 1GB (LPDDR2 SDRAM) cho phép bạn chạy các ứng dụng nâng cao
- 802.11 b/g/n Wireless LAN
- On-board Bluetooth 4.1
- 4 cổng USB 2.0
- Ethernet 300Mbit/s
- 40 chân GPIO
- HDMI hỗ trợ phiên bản 1.3/1.4 và Composite RCA (PAL and NTSC)
- 10/100 BaseT Ethernet socket
- Camera interface (CSI), để kết nối với camera
- Display interface (DSI): được sử dụng để kết nối Raspberry Pi với màn hình
cảm ứng
- Khe cắm thẻ microSD: đễ lưu trữ dữ liệu
- Micro USB power source
- VideoCore IV multimedia/3D graphics core @ 400MHz/300MHz

26
4.1.1.3. Sơ đồ chân GPIO

Hình 24: Sơ đồ chân


Có nhiều cách đánh số, ký hiệu cho các chân GPIO của Raspberry Pi. Ở đây,
chúng ta chỉ đề cập đến hai cách đánh số chính, đó là kiểu BCM và kiểu BOARD.
Đánh số theo kiểu BCM là cách ký hiệu các chân theo đúng chức năng của nó.
Trong hình 2 ở trên, hai cột dọc, ngoài cùng ở hai bên với các ô như GPIO 2, GPIO 3,
GPIO 14, GPIO 15, 3.3V, GND… đó là cách đánh số theo kiểu BCM.
Đánh số theo kiểu BOARD là cách đánh số các chân GPIO dựa trên vị trí của
chân trên header. Trên header của Raspberry Pi, các chân GPIO được chia làm hai
hàng, mỗi hàng 20 chân. Hai mươi chân hàng bên trái đánh số là 1, 3, 5, 7, 9, …, 39.
Hai mươi chân còn lại, hàng bên phải đánh số là 2, 4, 6, 8, 10 …, 40. Thông thường,
chúng ta dùng cách đánh số theo kiểu BOARD.
GPIO của Raspberry Pi 3 model B có tất cả 40 chân, được chia làm hai hàng, mỗi
hàng 20 chân, một hàng gồm các chân đánh số lẽ từ 1–39, một hàng gồm các chân
đánh số chẵn từ 2–40 (đánh số theo mạch – BOARD number).
GPIO của Raspberry Pi 3 model B gồm có:
- 2 chân có mức điện áp 3.3V (chân số 1 và chân số 17).
- 2 chân có mức điện áp 5V (chân số 2, chân số 4).
- 8 chân Ground (0V) (chân số 6, 9, 14, 20, 25, 30, 34 và 39).

27
- 28 chân GPIO (chân số 3, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 24,
26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 40).
Cùng với chức năng đơn giản của các chân ngõ vào và ngõ ra, các chân GPIO
cũng có thể thực hiện nhiều chức năng khác nhau. Một số chân cụ thể là:
Các chân I2C: Raspberry Pi sử dụng chuẩn giao tiếp I2C để giao tiếp với các
thiết bị tương thích với Inter-Integrated Circuit (một giao thức truyền thông nối tiếp
hai dây tốc độ thấp). Chuẩn giao tiếp này yêu cầu vai trò chủ-tớ giữa cả hai thiết bị.
I2C có hai kết nối: SDA (Serial Data) và SCL (Serial Clock). Chúng hoạt động bằng
cách gửi dữ liệu đến và sử dụng kết nối SDA, và tốc độ truyền dữ liệu được điều khiển
thông qua chân SCL.
- Data: (GPIO 2), Clock (GPIO 3)
- EEPROM Data: (GPIO 0), EEPROM Clock (GPIO 1)
Các chân UART: Các chân giao tiếp nối tiếp hoặc UART (Universal
Asynchronous Receiver/Transmitter – Bộ thu / phát không đồng bộ đa năng) cung cấp
cách thức giao tiếp giữa hai bộ vi điều khiển hoặc máy tính. Chân TX được sử dụng để
truyền dữ liệu nối tiếp và chân RX được sử dụng để nhận dữ liệu nối tiếp đến từ một
thiết bị nối tiếp khác. Có 2 chân liên quan đến giao tiếp UART.
- TX (GPIO14)
- RX (GPIO15)
Các chân SPI: SPI (Serial Peripheral Interface) là một giao thức được sử dụng
cho giao tiếp chủ-tớ. Raspberry Pi sử dụng giao thức này để giao tiếp nhanh chóng
giữa một hoặc nhiều thiết bị ngoại vi. Dữ liệu được đồng bộ hóa bằng đồng hồ (SCLK
tại chân GPIO 11) từ thiết bị chính (Raspberry Pi) và dữ liệu được gửi từ Raspberry Pi
tới thiết bị SPI bằng chân MOSI (Master Out Slave In). Nếu thiết bị SPI cần giao tiếp
lại với Raspberry Pi, thì nó sẽ gửi dữ liệu trở lại bằng chân MISO (Master In Slave
Out). Có 5 chân liên quan đến giao tiếp SPI:
- GND: Kết nối tất cả các chân GND của tất cả các thành phần tớ (slave) và bo
mạch Raspberry Pi 3 với nhau.
- SCLK: Tín hiệu đồng hồ của SPI. Kết nối tất cả các chân SCLK với nhau.
- MOSI (Master Out Slave In): Chân này được sử dụng để gửi dữ liệu từ chủ
(master) đến tớ (slave).
- MISO (Master In Slave Out): Chân này được sử dụng để nhận dữ liệu từ slave
đến master.
- CE (Chip Enable): Chúng tôi cần kết nối một chân CE cho mỗi thiết bị slave
(hoặc các thiết bị ngoại vi) trong mạch của chúng ta. Theo mặc định, chúng ta có hai

28
chân CE nhưng chúng ta có thể cấu hình nhiều chân CE hơn từ các chân GPIO có sẵn
khác.
Các chân SPI trên bo mạch Raspberry Pi 3B:
- SPI0: GPIO 9 (MISO), GPIO 10 (MOSI), GPIO 11 (SCLK), GPIO 8 (CE0),
GPIO 7 (CE1)
- SPI1: GPIO 19 (MISO), GPIO 20 (MOSI), GPIO 21 (SCLK), GPIO 18 (CE0),
GPIO 17 (CE1), GPIO 16 (CE2)
Các chân GPIO chịu mức điện áp tối thiểu là 3V, tối đa là 5V. Nếu mức điện áp
nằm ngoài giới hạn này sẽ làm hỏng mạch. Thông thường, chúng ta nên sử dụng một
mạch mở rộng để kết nối với các thiết bị ngoại vi, không nên kết nối trực tiếp các thiết
bị, linh kiện điện tử vào GPIO trên Raspberry Pi.
Các chân PWM : PWM (Pulse Width Modulation – Điều chế độ rộng xung) là
một kỹ thuật phổ biến được sử dụng để thay đổi độ rộng của các xung trong một chuỗi
xung. PWM có nhiều ứng dụng như điều khiển độ sáng của đèn LED, điều khiển tốc
độ của động cơ DC, điều khiển động cơ servo hoặc nơi bạn phải lấy ngõ ra analog
bằng các thiết bị kỹ thuật số.
- Phần mềm PWM có sẵn trên tất cả các chân
- Phần cứng PWM chỉ khả dụng trên các chân này: GPIO 12, GPIO 13, GPIO 18,
GPIO 19

4.1.1.4. Ứng dụng


Raspberry Pi 3B đi kèm với một loạt các ứng dụng với mục đích thực hiện hầu
hết các chức năng như máy tính để bàn. Sau đây là những ứng dụng chính của Pi 3B:
- Máy chơi game
- Máy nghe nhạc, máy đọc sách
- Camera an ninh, quan sát từ xa
- Tự đông hóa tòa nhà
- Điều khiển robot
- Internet Radio
- Máy pha cà phê

29
4.1.2. Servo SG90

Hình 25: Servo SG90


Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông
thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng
xung PWM) với góc quay nằm trong khoảng bất kì từ 0 º- 180 º.
Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín. Tín hiệu ra của
động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ
được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển động
quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong
muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.
Thông số kỹ thuật:
- Khối lượng: 9g
- Kích thước: 21 x 12 x 22 mm
- Điện áp hoạt động: 4.8-5VDC
- Tốc độ: 0.12sec/ 60 deg (4.8VDC)
- Lực kéo: 1.6 Kg.cm

PWM
Vcc
GND

30
4.1.3. Servo mg996

Hình 26: Servo mg996


Thông số kỹ thuật:
- Chủng loại: Analog RC Servo.
- Điện áp hoạt động: 4.8~6.6VDC
- Lực kéo:
- 3.5 kg-cm (180.5 ozin) at 4.8V-1.5A
- 5.5 kg-cm (208.3 ozin) at 6V-1.5A
- Tốc độ quay:
- 0.17sec / 60 degrees (4.8V no load)
- 0.13sec / 60 degrees (6.0V no load)
- Kích thước: 40mm x 20mm x 43mm
- Trọng lượng: 55g

31
4.1.4. Dây cắm

4.1.5. Mô hình in 3D robot

Hình 27: Mô hình thực tế

32
4.1.6. Breadboard

Hình 28: Breadboard


4.2. SolidWorks
4.2.1. Lịch sử hình thành.

SolidWorks được phát triển bởi một công ty phần mềm có tên SolidWorks
Corporation. Công ty này được thành lập vào năm 1993 bởi Jon Hirschtick, một kỹ sư
cơ khí đến từ Massachusetts Institute of Technology (MIT), và nhóm các kỹ sư khác.
Sản phẩm đầu tiên của SolidWorks Corporation là phần mềm SolidWorks 95,
được phát hành vào năm 1995. Đây là một trong những phần mềm CAD/CAM đầu
tiên sử dụng công nghệ đồ họa 3D trên máy tính cá nhân.
Với tính năng dễ sử dụng và giá cả phải chăng, SolidWorks đã trở thành một
trong những phần mềm CAD/CAM phổ biến nhất trên thị trường. SolidWorks
Corporation đã được mua lại bởi Dassault Systèmes, một công ty phần mềm đa quốc
gia có trụ sở tại Pháp, vào năm 1997.
Kể từ đó, SolidWorks đã phát triển nhanh chóng và có mặt trên hơn 100 quốc gia
trên toàn thế giới. Các phiên bản SolidWorks mới nhất được phát hành với nhiều tính
năng tiên tiến và nâng cao, đáp ứng nhu cầu của người dùng trong các lĩnh vực khác
nhau, từ sản xuất đến kỹ thuật cơ khí và thiết kế sản phẩm. Hiện nay, SolidWorks vẫn
là một trong những phần mềm CAD/CAM hàng đầu trên thị trường.

4.2.2. Một số tính năng của SolidWorks.


SolidWorks là một trong những phần mềm CAD/CAM hàng đầu hiện nay và nó
cung cấp rất nhiều tính năng cho người dùng để tạo ra các sản phẩm phức tạp. Dưới
đây là một số tính năng của SolidWorks mà người dùng có thể tận dụng để thiết kế và
sản xuất sản phẩm của mình:

33
- Tính năng tạo hình 3D: SolidWorks cung cấp nhiều công cụ để tạo ra các hình
3D từ các bộ phận đơn giản đến phức tạp. Các công cụ này bao gồm extrude, revolve,
loft, sweep, và các công cụ tạo hình khác. Với các công cụ này, người dùng có thể tạo
ra các hình dạng độc đáo và phức tạp cho sản phẩm của mình.
- Tính năng tạo bản vẽ kỹ thuật: SolidWorks cho phép người dùng tạo ra các bản
vẽ kỹ thuật cho các sản phẩm của mình. Các bản vẽ này cung cấp thông tin chi tiết về
kích thước, hình dạng và các tính năng khác của sản phẩm. SolidWorks cũng cho phép
người dùng tạo ra các mẫu bản vẽ kỹ thuật để tiết kiệm thời gian.
- Tính năng lắp ráp: SolidWorks cung cấp các công cụ để lắp ráp các bộ phận của
sản phẩm. Các công cụ này cho phép người dùng kiểm tra tính năng của sản phẩm và
giúp giảm thiểu các lỗi trong quá trình sản xuất.
- Tính năng phân tích tính năng: SolidWorks cho phép người dùng phân tích tính
năng của sản phẩm để đảm bảo rằng sản phẩm đáp ứng được các yêu cầu kỹ thuật và
tiêu chuẩn an toàn. Các tính năng này bao gồm phân tích độ cứng, phân tích độ bền và
phân tích độ chịu tải.
- Tính năng CAM: SolidWorks tích hợp với các công cụ CAM để tạo ra các
chương trình gia công. Các công cụ này cho phép người dùng thiết kế và sản xuất các
sản phẩm chính xác và hiệu quả hơn.
- Tính năng quản lý dữ liệu: SolidWorks cung cấp các công cụ để quản lý dữ liệu
sản phẩm của người dùng. Các công cụ này cho phép người dùng quản lý các phiên
bản sản phẩm và chia sẻ dữ liệu với các thành viên khác trong đội ngũ thiết kế và sản
xuất.
SolidWorks là một phần mềm rất mạnh mẽ và linh hoạt, được sử dụng trong
nhiều lĩnh vực, từ thiết kế sản phẩm đến kỹ thuật chế tạo và sản xuất. Nó cung cấp các
công cụ để tạo ra các sản phẩm đa dạng, từ các bộ phận đơn giản đến các sản phẩm
phức tạp, và hỗ trợ các chuẩn mực và tiêu chuẩn khác nhau.
Ngoài ra, SolidWorks còn tích hợp với các phần mềm khác, như SOLIDWORKS
Simulation để phân tích tính năng của sản phẩm, SOLIDWORKS Electrical để thiết kế
hệ thống điện và SOLIDWORKS Composer để tạo ra các tài liệu hướng dẫn sử dụng
sản phẩm.

34
Với SolidWorks, người dùng có thể tạo ra các sản phẩm chất lượng cao và giảm
thiểu thời gian và chi phí sản xuất. Nó cũng có khả năng tương tác với các phần mềm
khác, giúp người dùng tối ưu hóa quy trình thiết kế và sản xuất.

4.2.3. Hướng dẫn thiết kế 2D và 3D trong SolidWorks.


4.2.3.1. Vẽ 2D.
Khởi động SolidWorks ta click chuột trái 2 lần vào biểu tượng:

Sau đó, cửa sổ xuất hiện. Sau đó, ta vào File → New. Để vào môi trường
làm
việc với SolidWorks.

Part: Mục thiết kế vẽ chi tiết, máy móc, khuôn mẫu…


Assembly: Mục lắp ráp, mô phỏng, chuyển động….

35
Drawing: Mục xuất bản vẽ các hình chiếu để gia công.
Sau đó, ta vào mục vẽ click vào Part → Ok. Môi trường thiết kế xuất hiện.

Tại mục 1: Là không gian vẽ thiết kế.


Mục 2: Thanh quản lý vẽ: Tại thanh này bao gồm những mặt phẳng để
chọn vẽ và khi vẽ tất cả đều được lưu và chỉnh sửa trên thành này.
Front Plane: Mặt phẳng đứng nhìn từ trước vào, còn gọi là hình chiếu đứng.
Top Plane: Mặt phẳng bằng nhìn từ trên xuống, còn gọi là hình chiếu bằng.
Right Plane: Mặt phẳng bên phải nhìn từ phải sang, còn gọi là hình chiếu
cạnh.
Lưu ý: Khi vẽ chúng ta phải xác định đúng mặt phẳng của chi tiết mà vẽ.
Mục 3: Mục Sketch: Cho phép vẽ tất cả các lệnh 2D, bao gồm các lệnh có
chức năng như sau:

Ghi kích thước.

36
Vẽ đường thẳng.

Vẽ hình rãnh then.

Vẽ đường tròn.

Vẽ đường tròn qua 3 điểm.

Vẽ đa giác.

Bo góc biên dạng.

Cắt biên dạng.

Tạo đường biên dạng giống nhau với khoảng cách nhất định.

Tạo biên dạng đối xứng.

Nhân hàng và cột đối tượng

Di chuyển đối tượng

Tạo đường biên dạng theo điểm

Lấy lại biên dạng trên 3D

Vẽ hình Elip
Thao tác vẽ biên dạng ta làm như sau:

37
Click trái chuột chọn mặt phẳng Font Plane sẽ xuất hiện biểu tượng , ta
click vào.
Lưu ý, khi vẽ trong Solidworks ta phải ràng buột đầy đủ kích thước và theo
hình học: Thẳng hàng, đồng tâm, song song… Cách đơn giản nhất ta vẽ
điểm cố định đầu tiên tại gốc toạ độ như sau:

Đầu tiên, vẽ đường thẳng click vào biểu tượng , sau đó click 1 điểm

tại gốc toạ độ và vẽ liên tục như hình. Khi kết thúc lệnh ta thoát lệnh
bằng cách nhấn ESC trên bàn phím.

38
Sau đó, ta gán kích thước thì vào lệnh rồi click vào đoạn thẳng
muốn lấy kích thước và nhập kích thước và nhấn Enter. Khi hoàn thành kết
quả biên dạng sẽ có màu đen như hình:

39
Để thay đổi kích thước, click chuột trái 2 lần vào kích thước muốn thay
đổi, nhập kích thước thay đổi và nhấn Enter, để xoá biên dạng đã vẽ, click vào
biên dạng muốn xoá và nhấn Delete trên bàn phím và nhấn Yes.

4.2.3.2. Vẽ 3D
Bước 1: Ta chọn mặt Top Plane và vẽ lại như hình:

Bước 2: Sau đó, chọn lệnh Extruded Boss/Base để tạo khối biên dạng với
kích thước là 20mm.

Bước 3: Sau đó, ta tiếp tục chọn mặt phẳng sketch trên bề mặt sẳn có và vẽ
theo biên dạng:

40
Bước 4: Sau đó, chọn lệnh Extruded Boss/Base để tạo khối biên dạng với
kích thước là 20mm. Kết quả ta được:

Bước 5: Sau đó, ta tiếp tục chọn mặt phẳng sketch trên bề mặt sẳn có và vẽ
theo biên dạng:

41
Bước 6: Sau đó, chọn lệnh Extruded Cut để cắt khối biên dạng với kích
thước là 10mm. Kết quả ta được:

4.3. Xử lý ảnh
4.3.1. Khái niệm về Barcode
Mã vạch là phương pháp lưu trữ và truyền tải thông tin bằng một lọai ký hiệu gọi
là ký mã vạch. Ký hiệu mã vạch hay gọi tắt cũng là mã vạch, là 1 ký hiệu tổ hợp các
khoảng trắng và vạch thẳng để biểu diễn các mẫu ký tự, ký hiệu và các con số. Sự thay

42
đổi trong độ rộng của vạch và khoảng trắng biểu diễn thông tin số hay chữ số dưới
dạng mà máy có thể đọc được.
Mã số mã vạch được thu nhận bằng một máy quét mã vạch, là một máy thu nhận
hình ảnh của mã vạch in trên các bề mặt và chuyển thông tin chứa trong mã vạch đến
máy tính hay các thiết bị cần thông tin này. Nó thường có một nguồn sáng kèm theo
thấu kính, để hội tụ ánh sáng lên mã vạch, rồi thu ánh sáng phản xạ về một cảm quang
chuyển hóa tín hiệu ánh sáng thành tín hiệu điện. Ngoài ra, nhiều máy quét mã vạch
còn có thêm mạch điện tử xử lý tín hiệu thu được từ cảm quang để chuyển thành tín
hiệu phù hợp cho kết nối với máy tính.
Mã vạch tùy thuộc vào mục đích sử dụng mà người ta chia ra làm nhiều loại mã
vạch khác nhau, trong đó các dạng thông dụng trên thị trường mà ta thấy gồm UPC,
EAN, Code 39, Interleaved 2of 5, Codabar và Code 128. Ngoài ra, trong 1 số loại mã
vạch người ta còn phát triển làm nhiều Version khác nhau, có mục đích sử dụng khác
nhau, thí dụ UPC có các version là UPC-A, UPC-B, UPC-C, UPC-D và UPC-E; EAN
có các version EAN-8, EAN-13, EAN-14, Code 128 gồm Code 128 Auto, Code 128-
A, Code 128-B, Code 128-C.
Để đọc các được các ký hiệu mã vạch thì ta cần phải dùng một máy quét mã vạch
để đọc các loại mã vạch vào chương trình xử lý. Thông thường thì các loại mày quét
này được tích hợp sẵn một phần mềm để nhận dạng mã vạch, tùy theo tính chất của
công việc mà máy quét các máy quét khác nhau có thể đọc được các loại mã vạch khác
nhau.

4.3.2. Mã vạch 1D
Đây là một mã vạch tuyến tính thông thường, được cấu tạo bởi các sọc đen trắng
xếp sen kẽ lẫn nhau. Nó có một hàng duy nhất các thanh mã vạch tương tự như hang
rào. Mã vạch được gọi là “một chiều” bởi vì tất cả các dữ liệu được mã hóa trong
chiều rộng ngang. Tăng nội dung dữ liệu chỉ có thể đạt được bằng cách tăng chiều
rộng. Bên ngoài một điểm nhất định mã vạch trở nên quá rộng để quét một cách dễ
dàng.

Hình 29: Mã vạch


43
Một số loại mã 1D hiện nay
Mã vạch UPC: UPC là 1 lọai ký hiệu mã hóa số được ngành công nghiệp thực
phẩm ứng dụng vào năm 1973. Ngành công nghiệp thực phẩm đã phát triển hệ thống
này nhằm gán mã số không trùng lặp cho từng sản phẩm. Người ta sử dụng UPC như
“giấy phép bằng số” cho các sản phẩm riêng lẽ. UPC gồm có 2 phần: phần mã vạch
mà máy có thể đọc được và phần số mà con người có thể đọc được.Số của UPC gồm
12 ký số, không bao gồm ký tự. Đó là các mã số dùng để nhận diện mỗi một sản phẩm
tiêu dùng riêng biệt.

Hình 30: Mã UPC

Nhìn ký hiệu UPC như hình bên ta thấy tổng cộng gồm 12 ký số: Ký số thứ 1: Ở
đây là số 0, gọi là ký số hệ thống số (number system digit) hoặc còn gọi là “Family
code”. Nó nằm trong phạm vi của 7 con số định rõ ý nghĩa và chủng lọai của sản phẩm
như sau:
5 - Coupons: Phiếu lĩnh hàng hóa
4 - Dành cho người bán lẽ sử dụng
3 - Thuốc và các mặt hàng có liên quan đến y tế.
2 - Các món hàng nặng tự nhiên như thịt và nông sản.
0, 6, 7 - Gán cho tất cả các mặt hàng khác như là một phần nhận diện của nhà sản
xuất.
Mã vạch UPC được phát triển thành nhiều phiên bản như UPC-A, UPC-B, UPC-
C, UPC-D và UPC-E trong đó UPC-A được coi như phiên bản chuẩn của UPC, các
phiên bản còn lại được phát triển theo những yêu cầu đặc biệt của ngành công nghiệp.

44
Mã EAN: Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái sang phải
- Mã quốc gia: hai hoặc ba con số đầu.
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số.
- Mã mặt hàng: có thể là năm, bốn, hoặc ba con số tùy thuộc vào mã doanh
nghiệp.
- Số cuối cùng là số kiểm tra.
- Mã số EAN-8 gồm 8 con số có cấu tạo như sau:
- Ba số đầu là mã số quốc gia.
- Bốn số sau là mã mặt hàng.
- Số cuối cùng là số kiểm tra.
Mã vạch code 39: Code 39 được phát triển sau UPC và EAN là ký hiệu chữ và
số thông dụng nhất. Nó không có chiều dài cố định như UPC và EAN do đó có thể lưu
trữ nhiều lượng thông tin hơn bên trong nó. Do tính linh họat như vậy, Code 39 được
ưa chuộng rộng rãi trong bán lẻ và sản xuất. Bộ ký tự này bao gồm tất cả các chữ hoa,
các ký số từ 0 đến 9 và 7 ký tự đặc biệt khác.

Hình 31: Mã code 39

Mã vạch INTERLEAVED 2 OF 5: Interleaved 2 of 5 là một lọai mã vạch chỉ


mã hóa ký số chứ không mã hóa ký tự. Ưu điểm của Interleaved 2 of 5 là nó có độ dài
có thể thay đổi được và được nén cao nên có thể lưu trữ được nhiều lượng thông tin
hơn trong một khỏang không gian không lớn lắm.

Hình 32: Mã vạch INTERLEAVED 2 OF 5 45


Các loại mã vạch ma trận
Các loại ma trận như Data Matrix,Maxicode,Softstrip,Vericode.Với sự phát
triển của mã ma trận, ta thấy rằng ngành mã vạch đã thực sự phát triển theo một hướng
khác: Cơ sở dữ liệu. Một ngày nào đó, bạn sẽ có trong tay một chiếc đĩa mềm, hoặc
Flashdisk trong đó chỉ toàn là các mã ma trận lưu trữ danh sách của các VIP mà không
sợ bị các Hacker bẻ khoá. Vì chỉ có máy quét mới có thể “bẻ khoá” được mã vạch, hơn
thế nữa không phải máy quét nào cũng có thể đọc được mã vạch này.
Bảng dưới đây mô tả công dụng mã hoá của các loại mã vạch thông dụng
Loại mã vạch Ngành nghề sử dụng. Lý do
UPC Công nghiệp thực phẩm. Cần mã số chứ khoogn
Các nhà buôn bán lẻ. cần mã chữ.
Siêu thị, hàng tiêu dung. Mật độ cao, đáng tin cậy.
Sử dụng ở Bắc Mỹ và Cần mã kiểm lỗi.
Canada.
EAN Giống như UPC. Giống như trên
Sử dụng cho các nước
khác không thuộc Bắc.
Mỹ.
Code 39 Bộ quốc phòng. Cần mã hóa cả chữ lẫn số.
Ngành y tế. Dễ in.
Công nghiệp nhôm. Rất an toàn, không có mã
Các nhà sản xuất bản sách kiểm lỗi.
định kỳ.
Các cơ quan hành chính.
Interleaved 2 of 5 Phân phối, lưu kho. Dễ in.
Các sản phẩm không phải Kích thước nhỏ gọn.
là thực phẩm.
Các nhà sản xuất, nhà
buôn bán lẻ.

46
Hiệp hội vận chuyển
container.
Codabar Ngân hàng máu. Rất an toàn.
Thư viện. Dày dặt.
Thư tín chuyển phát nhanh
trong nước.
Công nghiệp xử lý phim
ảnh.
Code 128 Công nghiệp chế tạo. Cần dung lượng 128 ký tự.
Vận chuyển container.
Bảng 3: Các loại mã thông dụng
Mã vạch EAN-13: Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái
sang phải
- Mã quốc gia: hai hoặc ba con số đầu
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số
- Mã mặt hàng: có thể là năm, bốn, hoặc ba con số tùy thuộc vào mã doanh
nghiệp
- Số cuối cùng là số kiểm tra
Từ năm 1995 đến tháng 3/1998, EAN-VN cấp mã M gồm bốn con số và từ
tháng 3/1998, theo yêu cầu của EAN quốc tế, EAN-VN bắt đầu cấp mã M gồm 5 con
số.Mã vạch EAN là loại mã vạch sử dụng riêng để thể hiện mã số EAN. Mã vạch EAN
có những tính chất sau đây:
- Chỉ thể hiện các con số (từ O đến 9) với chiều dài cố định (13 hoặc 8 con số).
Là mã đa chiều rộng, tức là mỗi vạch (hay khoảng trống) có thể có chiều rộng từ 1 đến
4 môđun. Do vậy, mật độ mã hoá cao nhưng độ tin cậy tương đối thấp, đòi hỏi có sự
chú ý đặc biệt khi in mã.
- Mã vạch EAN có cấu tạo như sau: Kể từ bên trái, khu vực để trống không ghi
ký hiệu nào cả, ký hiệu bắt đầu, ký hiệu dãy số bên trái, ký hiệu phân cách, ký hiệu
dãy số bên phải, số kiểm tra, ký hiệu kết thúc, sau đó là khoảng trống bên phải. Toàn

47
bộ khu vực mã vạch EAN-13 tiêu chuẩn có chiều dài 37,29 mm và chiều cao là
25,93mm.
Trong mã vạch, mỗi số được thể hiện bằng 2 vạch và 2 khoảng trắng. Một cấu
hình được sử dụng cho các số bên trái "L", trong khi cấu hình còn lại sử dụng cho các
số bên phải "R". (Điều này không mâu thuẫn với phương thức mã hóa chẵn lẻ của
EAN-13, do nếu quy đổi thành EAN-13 thì UPC-A có số đầu tiên bằng 0 và khi số đầu
tiên của EAN-13 bằng 0 thì các số có số thứ tự từ 2 đến 7 (1 đến 6 trong UPC-A) được
mã hóa theo tính lẻ).
Điều này được sử dụng để làm cho mã vạch có thể được quét ngược hay hay
xuôi, giúp cho máy quét có thể xác định từ hướng nào các mã được quét và làm cho nó
được đăng ký chính xác vào máy tính. Nếu như không có điều này, sản phẩm có thể dễ
dàng bị đăng ký sai. Mỗi số có 4 dạng mã hóa, trong đó 2 được sử dụng trong UPC-A
và 3 trong EAN.
Cấu trúc của mã vạch EAN-13: Các vạch bảo vệ trái - 6 số kể từ số thứ hai đến
số thứ bảy - các vạch bảo vệ trung tâm - 5 số tiếp theo (8-12)- số kiểm tra - các vạch
bảo vệ phải.
Việc mã hóa của 6 số từ vị trí thứ 2 đến vị trí thứ 7 phụ thuộc vào giá trị của số
đầu tiên theo quy tắc chẵn -lẻ dưới đây:
2 3 4 5 6 7
0 Lẻ Lẻ Lẻ Lẻ Lẻ Lẻ
1 Lẻ Lẻ Chẵn Lẻ Chẵn Chẵn
2 Lẻ Lẻ Chẵn Chẵn Lẻ Chẵn
3 Lẻ Lẻ Chẵn Chẵn Chẵn Lẻ
4 Lẻ Chẵn Lẻ Lẻ Chẵn Chẵn
5 Lẻ Chẵn Chẵn Lẻ Lẻ Chẵn
6 Lẻ Chẵn Chẵn Chẵn Lẻ Lẻ
7 Lẻ Chẵn Lẻ Chẵn Lẻ Chẵn
8 Lẻ Chẵn Lẻ Chẵn Chẵn Lẻ
9 Lẻ Chẵn Chẵn Lẻ Chẵn Lẻ
Bảng 4: Mã hóa chẵn lẻ

48
Chuỗi mã hóa chẵn hay lẻ của các giá trị số từ 0 đến 9 được liệt kê trong bảng
sau:
Giá trị số Lẻ Chẵn
0 0001101 0100111
1 0011001 0110011
2 0010011 0011011
3 0111101 0100001
4 0100011 0011101
5 0110001 0111001
6 0101111 0000101
7 0111011 0010001
8 0110111 0001001
9 0001011 0010111
Bảng 5: Mã hóa nhị phân
Cách tính số kiểm tra trong mã vạch,ví dụ mã vạch 893 3481 00106 : Cộng
tổng giá trị của các số ở thứ tự lẻ bắt đầu được tính từ phải sang trái của dãy MS (trừ
số C), ta có : 6 + 1 + 0 + 8 + 3 + 9 = 27 (1).
Nhân tổng của (1) với 3, ta có: 27 x 3 = 81 (2)
+ P -893 - nhóm 1.
+ M -4602 - nhóm 2.
+ I -00107 - nhóm 3.
+ C -8 - nhóm 4.
Cộng tổng giá trị của các số ở thứ tự chẵn còn lại, ta có:
0 + 0 + 1 + 4 + 3 + 8 = 16 (3).
Cộng giá trị (2) với (3), ta có: 81 + 16 = 97 (4)
Lấy giá trị của (4) làm tròn theo bội số của 10 (tức là 100) sát nhất với giá trị
của (4) trừ đi giá trị của (4) ta có: 100 - 97 = 3. Như vậy C = 3.
Trong trường hợp này mã số EAN - VN 13 có MSHH đầy đủ là
Quy ước: Các bit có giá trị 1 được in bằng mực đen thành một đường thẳng
đứng, các bit có giá trị 0 không được in (hoặc được in bằng mực trắng) thành một

49
đường thẳng đứng có cùng độ rộng với bit có giá trị 1. Các vạch bảo vệ trái và phải có
giá trị bit là 101. Các vạch bảo vệ trung tâm có giá trị bit là 01010.

4.3.3. Thiết lập thực nghiệm


Thực tế cho thấy, việc quét mã vạch từ camera vẫn còn đang là một bài toán
phức tạp còn nhiều khó khăn và thách thức.
Sơ đồ triển khai

Hình 33: Sơ đồ triển khai


Bước đầu tiên cần phải tiến hành viết code cho chương trình. Ngôn ngữ lập
trình là Python. Và được thực hiện trên phần mềm Pycharm. Thêm các thư viện như
Opencv-python, Numpy, Pyzbar để có thể chạy được chương trình.
Tiếp theo, tìm kiếm, rà soát và sửa các đoạn code bị lỗi. Vì nếu code bị lỗi thì
chương trình sẽ không chạy được. Vì vậy phải đảm bảo code được viết đúng và hoàn
chỉnh.
Sau khi đã kiểm tra lỗi và chỉnh sửa lỗi code xong, sẽ tiến hành chạy chương
trình. Camera của máy tính sẽ được bật lên.
Đưa các hình ảnh hay sản phẩm có mã vạch chiếu lên camera để hệ thống nhận
diện và tiến hành quét mã. Hệ thống bắt đầu thu nhận hình ảnh và chuẩn bị quét mã, để
biết thông tin của hai mã. Cuối cùng hệ thống sau khi quét mã xong sẽ cho ra kết quả.
Thông tin của mã vạch sẽ là hàng số tương ứng với hàng số có trên mã.

50
Từ việc lấy nguồn dữ liệu cho hệ thống và thiết lập thực nghiệm. Thì sẽ bắt đầu
tiến hành thực nghiệm chương trình. Tạo một môi trường ảo trước khi tiếp tục cài đặt.
Sử dụng các gói như:
- Opencv-python: Thư viện mã nguồn mở cho thị giác máy tính, học máy và xử
lý ảnh. Nó đi kèm với BarcodeCodeDetector lớp tích hợp, giúp giải mã mã vạch.
- Numpy: Làm việc hiệu quả với ma trận và mảng, tốc độ xử lý nhanh.
- Pyzbar: Nhận dạng và giải mã mã vạch mà sẽ hiển thị cho máy ảnh. Thêm
thông tin được lưu trữ dưới dạng văn bản trên mã vạch.
Thêm khai báo nhập sau vào đầu tệp Python
Import cv2
Import numpy as np
From pyzbar.pyzar import decode
Tiếp theo, chúng ta đang bật camera của máy tính bằng OpenCV. Nếu có một
máy ảnh bên ngoài, thì phải thay đổi giá trị 0 thành 1 tùy thuộc vào thiết bị.
cap = cv2.VideoCapture(0)
Tiến hành chạy một vòng lặp while để tiếp tục chạy chức năng giải mã. “Detect”
có vai trò là giải mã mã QR trong hình ảnh khi nó được tìm thấy bằng detect() phương
pháp. Trả về chuỗi đầu ra được mã hóa UTF8 hoặc chuỗi trống nếu không thể giải mã
được mã.
while True:
success, img = cap.read()
for barcode in decode (img):
myData = barcode.data.decode('utf-8')
print(myData)
pts = np.array([barcode.polygon],np.int32)
pts = pts.reshape((-1,1,2))
Sau đó sử dụng cv2.polylines để vẽ các đường kẻ. Các thông số như sau: đối
tượng được vẽ đến, tọa độ, màu sắc và độ dày.
cv2.polylines(img,[pts],True,(255,0,255),5)
pts2 = barcode.rect
Cv2.putText sẽ cho hiển thị nội dung bên trong của mã vạch. Chúng sẽ xuất ra
màn hình là: ảnh, màu viền của mã sau khi quét
cv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
0.9,(255,0,255),2)
Hiển thị ảnh lên cửa sổ giao diện.
cv2.imshow(‘Result’,img)
cv2.waitKey(1)
Khi đã nhận diện được mã vạch, tiếp tục đẩy dữ liệu thu được lên Firebase

51
Hình 34: Dữ liệu được đẩy lên Firebase
4.4. Phần lập trình nhúng và giao diện
4.4.1. Giới thiệu về phần mềm QT creator và framework QT.
QT Creator là một môi trường phát triển tích hợp (IDE) được sử dụng để phát
triển ứng dụng đa nền tảng bằng cách sử dụng framework QT. Được phát triển bởi Tập
đoàn The Qt Company, QT Creator là một phần mềm mã nguồn mở và miễn phí, hỗ
trợ nhiều ngôn ngữ lập trình như C++, Python, JavaScript, và nhiều ngôn ngữ khác.
QT là một framework ứng dụng đa nền tảng mạnh mẽ, cho phép phát triển các
ứng dụng đồ họa tương tác và giao diện người dùng (GUI) đáng tin cậy trên nhiều nền
tảng, bao gồm Windows, macOS, Linux, Android và iOS. Đặc điểm nổi bật của QT là
khả năng tái sử dụng mã nguồn (code reusability), giúp tăng hiệu suất phát triển và
giảm thời gian và công sức.
QT Creator cung cấp một loạt các tính năng hỗ trợ phát triển ứng dụng QT, bao
gồm:
Trình biên dịch và gỡ lỗi tích hợp: QT Creator tích hợp trình biên dịch và gỡ lỗi
cho các ngôn ngữ lập trình QT và hỗ trợ nhiều công cụ và tính năng giúp người phát
triển dễ dàng xác định và khắc phục lỗi trong quá trình phát triển ứng dụng.
Thiết kế giao diện người dùng (GUI): QT Creator cung cấp trình thiết kế GUI
kéo và thả (drag-and-drop) cho phép người phát triển dễ dàng tạo ra giao diện người
dùng trực quan và tương tác.
Quản lý dự án: QT Creator cho phép người phát triển quản lý và tổ chức dự án
của mình, bao gồm tạo, xóa và sắp xếp các tệp tin, thư mục, và tài nguyên liên quan
đến dự án.
Hỗ trợ đa nền tảng: QT Creator hỗ trợ phát triển đa nền tảng, cho phép người
phát triển xây dựng và kiểm tra ứng dụng trên nhiều nền tảng khác nhau từ một môi
trường duy nhất.

52
Gỡ lỗi và kiểm thử: QT Creator cung cấp các công cụ và tính năng để gỡ lỗi và
kiểm thử ứng dụng, giúp người phát triển tìm ra và sửa lỗi một cách hiệu quả

4.4.2. Bước tiến hành phát triển phần mềm


Xác định các chức năng phần mềm
- Thiết kế một kho hàng thông minh. Được vận hành bởi cách tay robot 4 bậc tự
do có chức năng đưa các sản phẩm có trong danh sách của sever về vị trí trong kho.
- Phần mềm gồm 3 chức năng chính:
+ Điều khuyển cách tay robot 4 bộc tự do.
+ Có giao diện GUI để thực hiện các thao tác
+ Nhận mã code từ xa và tín hiệu điều khuyển trên servo.
Xây dựng đối tượng và logic phần mềm.
- Cấu trúc chương trình:

Hình 35: Cấu trúc chương trình


- Các đối tượng cần xây dựng:
+ Động cơ servo
+ Robot điều khuyển
+ Data local
+ GUI
+ Động cơ Servo : Điều khuyển động của động cơ Servo .

53
- Gồm 2 thuộc tính góc của Servo và chân điều khuyển trên PI, và 2 phương
thương thức set góc và lấy giá trị của góc.

54
- Cánh tay Robot 4 bậc tự do : gồm 4 động cơ servo điều khuyển chuyển động
của cách tay

55
56
- Đối tượng đồng bộ hóa dữ liệu dữa Firebase và dữ liệu local:

57
58
4.4.3. Thiết kế phần mềm:
Giao diện GUI:

Hình 36: Giao diện GUI

- Phần Log dữ liệu( bên phải): dùng ghi lại các hoạt động của cách tay Robot

59
- Phần hiển thị thông tin kho hàng: Gồm tên hàng,mã Serial,và ngày nhập kho
- Nút Xuất kho và Nhập kho : Có chức năng điều khuyển cách tay robot .
- Code điều khuyển chính:
+ File head.

+ File cpp:

60
61
62
63
CHƯƠNG 5: KẾT LUẬN

Mục tiêu đề ra ban đầu là thực hiện mô phỏng cánh tay robot 4 bậc tự do, thiết kế
mô hình in 3D, nhận diện được mã vạch và đẩy dữ liệu lên Firebase, điều khiển cách
tay gắp đồ vật khi nhận được mã từ Firebase đều đã được hoàn thiện. Các chức năng
cơ bản đều có thể đáp ứng được. Tuy nhiên, do kiến thức còn nhiều thiết sót, một vài
chức năng vẫn chưa chạy hoàn hảo và còn tồn đọng một vài sai sót. Các thành viên
đều hoàn thành tốt nhiệm vụ được giao, đảm bảo tiến độ cho từng tuần và hoàn thiện
tốt các chức năng khi hoàn thiện sản phẩm cuối cùng.
Hướng phát triển trong tương lai sẽ là hoàn thiện và sửa chữa lại những thiết sót
của từng phần theo góp ý và nhận xét của các thầy. Có thể phát triển đề tài theo hướng
một hệ thống xuất nhập hàng thông minh, tích hợp nhiều cách tay robot trong đó. Mỗi
cánh tay sẽ là một nhánh của cả hệ thống. Dữ liệu xuất và nhập sẽ được gửi lên giao
diện giám sát chung, từ đó có thể dễ dàng kiểm soát được lượng xuất nhập hàng cũng
như vị trí của từng sản phẩm một cách dễ dàng và tự động hóa.

64
TÀI LIỆU THAM KHẢO

Bankman, I. (. (2008). Handbook of medical image processing and analysis.


Điện tử tương lai. (n.d.). Retrieved from https://dientuviet.com/tim-hieu-ve-cac-chan-
gpio-cua-raspberry-pi/
Thông tin về mã vạch. (n.d.). Retrieved from https://anhong.com.vn/tat-ca-nhung-dieu-
ban-can-biet-ve-ma-vach/
Viblo. (n.d.). Retrieved from https://viblo.asia/p/phat-hien-ma-vach-trong-anh-bang-
cach-su-dung-opencv-aWj5338G56m

65

You might also like