You are on page 1of 106

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI


KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỀU KHIỂN HỌC

BÁO CÁO NGHIÊN CỨU


KHOA HỌC
Đề tài:
NGHIÊN CỨU, THIẾT KẾ DÂY CHUYỀN
PHÂN LOẠI SẢN PHẨM THEO MÃ
QRCODE

Hà Nội – 2024

1
Người hướng dẫn : Thầy Trần Ngọc Tú
LỜI CẢM ƠN !
Để hoàn thành đề tài NCKH này, lời đầu tiên em xin chân thành cảm ơn
đến thầy Trần Ngọc Tú, thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn
chúng em trong suốt quá trình làm, Trong thời gian làm việc với thầy, chúng em
không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần
làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều
rất cần thiết cho em trong quá trình học tập và công tác sau này.
Trong quá trình hoàn thành đề tài cũng như làm bài báo cáo đề tài, khó
tránh khỏi sai sót, rất mong các thầy, cô bỏ qua. Đồng thời do trình độ lý luận
cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh
khỏi những thiếu sót, chúng em rất mong nhận được ý kiến đóng góp của quý
thầy, cô để em học hỏi thêm được nhiều kinh nghiệm.

Chúng em xin chân thành cảm ơn !

2
Mục lục
LỜI CẢM ƠN !..........................................................................................................
Tóm Tắt:.....................................................................................................................
CHƯƠNG 1 : TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI..........................................
1.1.GIỚI THIỆU VỀ MÃ QR CODE....................................................................9
1.1.1.KHÁI NIỆM....................................................................................................9
1.1.2. Cấu trúc của mã Qr........................................................................................9
1.1.3. Mã QR khác gì so với mã vạch truyền thống..............................................11
1.1.4. Ứng dụng của mã QR trong cuộc sống.......................................................12
1.1.5.Phân loại:.......................................................................................................16
1.2.HỆ THỐNG PHÂN LOẠI SẢN PHẨM........................................................19
1.2.1.Đặt vấn đề......................................................................................................19
1.2.2. Tính cấp thiết của đề tài...............................................................................20
1.2.3. Phương pháp phân loại sản phẩm tự động.................................................22
1.3.GIỚI THIỆU VỀ HỆ THỐNG PHÂN LOẠI SẢN PHẨM BẰNG MÃ QR
.................................................................................................................................24
1.4. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI...........................25
1.5. MỤC TIÊU CỦA ĐỀ TÀI..............................................................................26
1.6. PHƯƠNG PHÁP TIẾP CẬN.........................................................................26
1.6.1. Cách tiếp cận................................................................................................26
1.6.2. Phương thức nghiên cứu.............................................................................27
1.6.3. Nghiên cứu tình hình trong và ngoài nước................................................27
1.7. KẾT LUẬN CHƯƠNG 1...............................................................................28
CHƯƠNG 2..............................................................................................................
CƠ SỞ LÝ THUYẾT..............................................................................................
2.1. Phương án thiết kế..........................................................................................29
2.1.1. Phương án thiết kế băng chuyển sản phẩm................................................29
2.1.2. Lựa chọn khung băng tải.............................................................................35
2.1.3. Lựa chọn mặt băng tải.................................................................................37
2.1.4. Lựa chọn động cơ băng tải..........................................................................38
2.1.5. Phương án đọc mã vạch...............................................................................40
2.1.6. Lựa chọn cơ cấu phân loại..........................................................................42
3
2.1.7. Lựa chọn thiết bị điều khiển........................................................................47
2.2. Thiết kế nguyên lý...........................................................................................52
2.2.1. Nguyên lý hoạt động của hệ thống..............................................................52
2.2.2. Sơ đồ khối của hệ thống...............................................................................52
2.3. Kết luận chương 2...........................................................................................53
CHƯƠNG 3..............................................................................................................
TÍNH TOÁN THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM.......................
Sơ đồ tổng thể của mô hình...................................................................................54
3.1.Tính toán, thiết kế băng tải.............................................................................55
3.1.1. Tính toán thông số cơ bản cho băng tải....................................................55
3.1.2. Thiết kế động cơ của băng tải....................................................................56
3.2.Các thiết bị khác trong hệ thống.....................................................................60
3.2.1.GM65..............................................................................................................60
3.1.2.1. Giới thiệu về GM65....................................................................................60
3.1.2.2. Thông số kĩ thuật của GM65.....................................................................60
3.1.3. Động cơ Servo JGB37-520 35RPM..........................................................63
3.1.4. Module Relay 5V........................................................................................65
3.1.5. STM32F103C8T6.......................................................................................66
3.1.6. Nút nhấn.....................................................................................................68
3.2.Mạch nguồn tổ ong 12V 150W 12.5A.............................................................69
3.2.1.Giới thiệu về mạch nguồn tổ ong watashi 12v..............................................69
3.2.2.Thông số kĩ thuật :.........................................................................................69
3.2.3.Cách lắp đặt...................................................................................................70
3.2.4.Mạch tăng áp DC - DC 12V-35V 400W........................................................70
3.2. Mạch nguồn 5v..........................................................................................72
3.3. Mạch cầu H BTS7960 43A IBT-2 (H05)..................................................72
3.4. Mạch tổng...................................................................................................73
CHƯƠNG 4..............................................................................................................
LẬP TRÌNH ĐIỀU KHIỂN HỆ THỐNG.............................................................
4.1 .Thuật toán chương trình.........................................................................74
4.2.Kết luận và hướng phát triển đề tài.............................................................102
4.2.1Kết luận.........................................................................................................102
4
4.2.2 Hướng phát triển của đề tài.....................................................................104

5
DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG BIỂU

Bảng 1: Cấu hình chân STM32F103C8T6................................................................


Bảng 2: Thông số kỹ thuật của động cơ băng tải......................................................
Bảng 3: Các chế độ quét của GM65..........................................................................
Bảng 4: Thông số kĩ thuật 2 của GM65....................................................................
Bảng 5: Thông số kĩ thuật của module Relay 5V......................................................

6
Tóm Tắt:
Tên đề tài: Nghiên cứu, thiết kế dây chuyền phân loại sản phẩm theo mã
QRCODE
Sinh viên thực hiện:
Đỗ Trung Đức MSV:221632696
Đoàn Văn Hướng MSV:221632732
Phạm Việt Long MSV:
Lê Đức Thắng MSV:
Lê Công Tú MSV:221632800
Lớp: Kỹ thuật điều khiển và Tự động hóa 1
Khóa: 63
Để thực hiện đề tài chúng em tiến hành nghiên cứu các vấn đề cần thiết
như: đặc tính của mã QR, ứng dụng của mã QR trong việc phân loại sản phẩm,
các mô hình phân loại sản phẩm bằng mã QR trong và ngoài nước, … Đồng thời
từ đó áp dụng nghiên cứu thực tế để (khảo sát, thống kê) xây dựng nên phương
pháp tính (phương trình, thuật toán) cho ra kết quả chính xác. Sau đó đưa ra các
phương án thiết kế khác nhau (cách thức phân loại), chọn ra phương án tối ưu
nhất. Cuối cùng tiến hành đi vào khâu thiết kế, chế tạo ra mô hình phân loại thực
tế.
Nội dung thực hiện đề tài bao gồm các bước tiến hành như sau:
• Nghiên cứu mô hình.
• Tính toán, thiết kế mô hình phân loại sản phẩm.
• Chế tạo mô hình phân loại sản phẩm.
• Đánh giá kết quả, thực nghiệm, khắc phục sai sót.
=>Sản phẩm sau khi hoàn thành là: Mô hình phân loại sản phẩm theo mã
QRCODE
Bố cục bao gồm 4 chương như sau:
• Chương 1: Tổng quan nghiên cứu đề tài

7
Ở chương này sẽ tìm hiểu về mã QRCODE, hệ thống phân loại sản phẩm. Đồng
thời tìm hiểu về các hệ thống phân loại sản phẩm, đặt vấn đề, lí do chọn đề tài, ý
nghĩa khoa học và tính thực tiễn của đề tài, mục tiêu và phương pháp tiếp cận đề
tài.
• Chương 2: Cơ sở lý thuyết
Là chương đưa ra và xác định các phương án thiết kế để tính toán là lựa chọn
thiết bị của mô hình. Đồng thời chương 2 cũng thiết kế nguyên lý hoạt động của
mô hình, trình bày sơ đồ khối và sơ đồ nguyên lý của hệ thống.
- Chương 3: Tính toán, thiết kế mô hình phân loại sản phẩm
Là chương tính toán, thiết kế lựa chọn băng tải chuyền động, động cơ. Đồng
thời giới thiệu chi tiết về các linh kiện thiết bị dùng trong mô hình bao gồm:
+ Module quét mã vạch GM65 là công cụ dùng để quét mã vạch của sản phẩm.
+ Hệ thống phân loại sản phẩm theo chiều cao sử dụng cảm biến quang.
+ Hệ thống thanh gạt dùng động cơ Servo MG90S để điều khiển.
+ STM32 dùng để xử lý tín hiệu từ các kết quả đọc được của GM65 và cảm
biến quang để thực hiện các lệnh đã lập trình sẵn.
+ Các thiết bị khác như : cảm biến , relay, nguồn, CB,....
- Chương 4: Lập trình điều khiển hệ thống
Là chương tiến hành thực hiện thiết kế và thi công mô hình từ những thiết bị đã
tính chọn ở chương 3 bao gồm:
+ Đưa ra yêu cầu vận hành của hệ thống.
+ Hoàn thành sơ đồ đấu nối của hệ thống.
+ Lập sơ đồ thuật toán của hệ thống.
+ Hoàn thành mô hình hệ thống.
+ Đánh giá kết quả hoạt động của mô hình.
+ Đưa ra hướng phát triển cho đề tài.

8
CHƯƠNG 1 : TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI
1.1.GIỚI THIỆU VỀ MÃ QR CODE
1.1.1.KHÁI NIỆM

QR Code (mã QR) là viết tắt của Quick response code (Tạm dịch: Mã phản hồi
nhanh), hoặc có thể gọi là Mã vạch ma trận (Matrix-barcode) hay Mã vạch 2 chiều
(2D). Đây là một dạng thông tin được mã hóa để hiển thị sao cho máy có thể đọc
được.
QR Code xuất hiện lần đầu tiên vào năm 1994, được tạo ra bởi Denso Wave (công
ty con của Toyota). QR Code bao gồm những chấm đen và ô vuông mẫu trên nền
trắng, có thể chứa những thông tin như URL, thời gian, địa điểm của sự kiện, mô tả,
giới thiệu một sản phẩm nào đó,...
QR Code cho phép quét và đọc mã nhanh hơn bằng các thiết bị như máy đọc mã
vạch hoặc điện thoại có camera với ứng dụng cho phép quét mã, vô cùng tiện lợi
cho người dùng.

Hình 1.1:Mã QR của Fanpage Công ty Phần mềm FAST


1.1.2. Cấu trúc của mã Qr
Thoạt nhìn, mã QR là một hình vuông lớn được sắp xếp bởi các hình vuông nhỏ,
sắp xếp ngẫu nhiên, phức tạp khó thể đọc và hiểu được. Tuy nhiên, mã QR có các
cấu trúc nhất định để máy có thể nhận dạng được.

9
Hình 1.2: Cấu trúc của một mã QR
Hoa văn định vị (Finder pattern): Các hoa văn định vị nằm ở 3 góc của mã QR.
Mục đích của chúng là biểu thị hướng cho mã, giúp camera có thể xác định được
phạm vi mã cũng như đọc thông tin ngay trong trường hợp mã bị biến dạng.
Thông tin định dạng (Format Information)
Các mẫu định dạng có chức năng sửa lỗi, quyết định mức độ sửa lỗi của mã QR. Để
giúp cho việc cân bằng giữa các ô đen và trắng trên mã, chức năng Mask được thiết
lập. Dựa vào 8 loại nguyên tắc, các thông tin lưu trên mã QR vẫn đảm bảo sự toàn
vẹn cũng như màu sắc của các ô đen trắng để bảo đảm sự cân bằng.
Ngoại trừ vùng thông tin định dạng và hoa văn định vị, các vùng khác của mã QR
có thể tự thiết kế được.
Vùng dữ liệu (Data): Chứa những dữ liệu thực tế.
Mô-đun (Module): Các ô đen mã QR chứa các đoạn mã nhị phân và mang giá trị là
1, các ô trắng có giá trị là 0. Tập hợp các ô chính là các thông tin lưu trữ vào mã
QR.
Ký hiệu căn chỉnh (Alignment pattern): Giúp định hướng mã QR, có thể giải mã
từ mọi góc độ. Ngay cả khi mã đang ngược hoặc ở một góc khác, máy vẫn có thể
đọc được mã một cách dễ dàng.
Mẫu thời gian (Timing pattern): Khi sử dụng mẫu này, máy quét có thể biết được
độ lớn của ma trận dữ liệu.
Thông tin phiên bản (Version pattern): Chỉ định phiên bản của mã QR, được xác
định bởi số lượng mô-đun. Hiện tại, có tất cả 40 phiên bản từ 1 đến 40. Phiên bản 1
gồm 21 mô-đun, mỗi phiên bản tiếp theo sẽ tăng thêm 4 mô-đun cho đến khi đạt đến
phiên bản 40 với tổng số 177 mô-đun. Càng nhiều mô-đun bên trong mã QR, nó sẽ
có nhiều dung lượng lưu trữ hơn.
10
Đối với mục đích tiếp thị, thường dũng mã QR với phiên bản từ 1 đến 7.
Vùng yên tĩnh (Quiet zone): Đây là không gian trống xung quanh mã, cho phép bộ
đọc mã phân biệt mã QR với môi trường xung quanh.
Tại sao hình dáng của mã QR lại là hình vuông?
Không ít người đã rất thắc mắc về vấn đề này. Những lý do mà mã QR luôn có dạng
hình vuông là vì:
• Dung lượng dữ liệu cao hơn: Hình vuông cho phép mã QR đọc được
hai chiều, ví dụ như thông tin theo chiều ngang và chiều dọc. Rất nhiều thông
tin được lưu trữ trong 1 đoạn mã bé nhỏ, điều này biến nó trở thành 1 công cụ
đa năng.
• Tính năng tùy chỉnh: Những mã này cũng có thể được tùy chỉnh để phù
hợp với thiết kế của chiến dịch hoặc trang web. Bên cạnh đó, mã QR có thể
được chỉnh sửa ngay cả sau khi trình bày chúng, hình vuông giúp làm điều
đó.
• Cải thiện khả năng sửa lỗi: Mã QR có thể chịu được nhiều thiệt hại hơn
các mã khác, làm cho sai số biên từ 7 đến 30%, điều này rất quan trọng trong
bộ phận kiểm kê.
• Dễ đọc: Quét mã QR Code có thể được thực hiện trên hầu hết mọi thiết
bị, chỉ cần tải ứng dụng xuống điện thoại thông minh, máy tính để bàn hoặc
máy tính bảng. Ngày nay, các thiết bị đã tích hợp tính năng quét QR ngay trên
các thiết bị.
1.1.3. Mã QR khác gì so với mã vạch truyền thống
 Mã QR sử dụng mã hóa 2 chiều, cho phép chứa nhiều thông tin và có khả
năng đọc nhanh chóng ở nhiều góc độ, bạn có thể dễ dàng quét mã QR ở
nhiều góc độ khác nhau, điều này hỗ trợ rất nhiều cho trải nghiệm người
dùng. Ngược lại, mã vạch truyền thống chỉ sử dụng mã hóa 1chiều và
thường yêu cầu đọc ở gần và theo hướng cụ thể, điều này có nghĩa bạn cần
quét đúng chiều của mã để quét thông tin.
 Mã QR nhỏ gọn, chiếm ít không gian và trông thân thiện hơn khi in trên
sản phẩm hay tài liệu quảng cáo.

11
Hình 1.3:Mã QR nhỏ gọn, tính thẩm mỹ cao
1.1.4. Ứng dụng của mã QR trong cuộc sống
Ngày nay, mã QR ở khắp mọi nơi như trên hộp bánh pizza, tờ rơi, biên lai, bảng
hiệu, cửa hàng. Người tiêu dùng có quét mã QR bằng các ứng dụng (app) hoặc máy
ảnh trên thiết bị di động. Sau khi được quét, mã QR có thể đưa người dùng đến tệp
PDF, trang đích hoặc video hoặc nhắc cuộc trò chuyện bằng tin nhắn văn bản và
hơn thế nữa.
1.1.4.1. Truy xuất thông tin sản phẩm và thanh toán online nhanh chóng
Bằng cách quét mã QR, bạn có thể nhanh chóng đọc được thông tin chi tiết về
sản phẩm như nơi sản xuất, thành phần sản phẩm, cách sử dụng,… Bên cạnh đó,
việc thanh toán bằng mã QR ngày càng phổ biến và ưa chuộng. Người mua hàng dễ
dàng thanh toán bằng cách quét mã QR ở quầy thanh toán hoặc nhân viên sẽ quét
mã ngay trên điện thoại vô cùng tiện lợi và chính xác.

12
Hình 1.4: Truy xuất thông tin sản phẩm nhanh chóng
1.1.4.2. Ứng dụng mã QR Code trong quản lý kho hàng
Đối với các doanh nghiệp, đặc biệt là các doanh nghiệp sản xuất và thương mại
thì quản lý kho hàng hiệu quả là một trong những vấn đề được quan tâm hàng đầu.
Việc ứng dụng một giải pháp quản lý kho tích hợp QR Code, Barcode sẽ giúp doanh
nghiệp mang lại nhiều lợi ích như:
 Kiểm soát hàng hóa hiệu quả
 Giảm bớt các tác vụ thủ công khi kiểm tra mã hàng, mã lô, hạn sử dụng…
 Hạn chế tối đa sai sót, tránh thất lạc hàng hóa trong quá trình nhập, xuất
hàng, kiểm kê…
 Tiết kiệm nhiều thời gian, tiết kiệm chi phí.
 …

13
1.1.4.3. Trong thanh toán và giao dịch mua hàng

Hình 1.5: Barcode hỗ trợ thanh toán hàng hóa và giao dịch
Trong nhiều hệ thống siêu thị, cửa hàng tiện ích đã và đang sử dụng máy đọc
mã vạch để rút ngắn thời gian trong quá trình thanh toán cho khách hang. Đồng
thời giúp nhân viên nhập dữ liệu thông tin của giao dịch vào hệ thống quản trị
bán hàng. Điều này giúp các doanh nghiệp tiết kiệm tối đa chi phí hoạt động,
nâng cao hiệu quả quản trị và từng bước chuyên nghiệp hóa hoạt động kinh
doanh của tổ chức.

1.1.4.4. Ứng dụng tại nhà hàng, khách sạn, cafe


Xem menu, xem các công thức và cách chế biến món ăn, thức uống,…một cách
dễ dàng. Mã QR không chỉ giúp việc xem menu món trở nên nhanh chóng và dễ
dàng mà còn tạo ra một trải nghiệm dịch vụ hiện đại. Bằng cách quét mã trên bảng
menu, bạn có thể xem toàn bộ danh sách món ăn và chọn món dễ dàng. Điều này
không chỉ giúp tiết kiệm thời gian mà còn giúp khách hàng thoải mái khi không còn
nhân viên đứng tại bàn chờ mình chọn món.

14
Hình 1.6:Quét mã QR xem thực đơn dễ dàng

1.1.4.5 Một số ứng dụng khác


Ứng dụng trong truyền thông quảng cáo: Dần thay thế các quảng cáo dưới hình
thức in ấn và phát tờ rơi. Mã QR sẽ đính kèm thông tin thương hiệu trên các ấn
phẩm, bảng hiệu cửa hàng, các bảng quảng cáo, billboard: QR Code (mã vạch ma
trận dưới định dạng 2D) được nhiều đơn vị sử dụng để truyền tải thông tin của mình
tới các đối tượng mục tiêu. Người dùng chỉ cần quét mã QR bằng thiết bị di động là
có thể tiếp cận tới thông điệp mà các doanh nghiệp, tổ chức muốn gửi gắm như
website của doanh nghiệp, thông tin khuyến mãi,...

Hình 1.7: Barcode hỗ trợ trong lĩnh vực

15
1.1.5.Phân loại:
Tùy vào mục đích, dung lượng thông tin cũng như dạng thức thông tin được
mã hóa mà nhiều doanh nghiệp, tổ chức, nhà sản xuất sử dụng nhiều dạng mã
QR khác nhau vào sản phẩm. Những dạng QRcode thường xuyên được sử dụng
là mã QR Model1 và Model2, mã Qr vi mô, mã rMQR, SQRC, đóng khung mã
QR
1.1.5.1.Mã QR Model1 và Model2

Hình 1.8. Mã QR Model 1 và 2


Những mã QR này được nhìn thấy rộng rãi trên các áp phích tiếp thị, TV,
internet và ở mọi nơi.Cả Model 1 và Model 2 trông gần như giống hệt nhau. Nhưng
do sự khác biệt về dung lượng lưu trữ và mức độ sửa lỗi, bất kỳ ai cũng có thể nhận
ra sự khác biệt khi xem xét kỹ hơn. Mã QR Model 1 là thiết kế ban đầu. Nó cũng đã
trở thành nền tảng phát triển cho các loại mã QR tiếp theo. Và vì là mẫu đầu tiên
nên mã QR Model 1 vẫn có dung lượng thấp hơn mẫu thứ 2. Nó có thể lưu trữ tới
1167 ký tự số, 707 chữ và số và 299 ký tự Kanji. Nó cũng có khả năng sửa lỗi và
khả năng quét ít hơn. Mặt khác, mã QR Model 2 có tính năng tốt hơn. Mô hình mã
QR thứ hai có thể nhúng tối đa 7089 ký tự số, 4296 chữ và số, 2953 byte nhị phân
và 1817 ký tự Kanji. Và do mẫu căn chỉnh được bổ sung nên việc phát hiện và đọc
mã QR dễ dàng hơn so với nguyên mẫu.

16
1.1.5.2.Mã QR vi mô

Hình 1.9. Mã QR Vi mô
Từ cái tên, bạn có thể biết đây là phiên bản nhỏ hơn của mã QR gốc. Điều này có
nghĩa là nó lưu trữ ít ký tự hoặc dữ liệu hơn và nhỏ hơn mã QR thông thường.
Nhưng loại mã QR này vẫn có thể mã hóa đủ thông tin.
1.1.5.3. Mã rMQR

Hình 1.10.Mã rMQR


Mã QR vi mô hình chữ nhật (mã rMQR) là phiên bản hình chữ nhật của mã QR
vi mô.

17
Denso Wave coi đây là loại mã QR tiết kiệm không gian vì hình dáng hẹp và
giống dải. Nhưng mặc dù kích thước nhỏ hơn, mã rMQR vẫn có khả năng quét cao
và có thể lưu trữ 219 ký tự chữ và số, 361 ký tự số và 92 ký tự kanji. Khả năng lưu
trữ của nó khiến nó trở thành sự thay thế lý tưởng cho mã vạch tuyến tính để kiểm
kê sản phẩm. Mã rMQR cho phép doanh nghiệp theo dõi sản phẩm của mình và
cung cấp thông tin chi tiết về sản phẩm mà không tốn nhiều dung lượng nhãn sản
phẩm. Hơn nữa, các công ty y tế và dược phẩm sử dụng rMQR để kiểm kê công cụ
và thiết bị.
1.1.5.4. SQRC

Hình 1.11. Mã SQRC


Mã QR ban đầu nhúng thông tin mà khán giả có thể truy cập chỉ bằng cách quét
mã bằng điện thoại thông minh của họ. Mặc dù mang lại lợi ích cho hầu hết các
ngành, Denso Wave vẫn thấy cần có mã QR với tính năng hạn chế quyền truy cập.
Xuất hiện mã QR được trang bị chức năng bí mật (SQRC). Nhìn bề ngoài, nó trông
giống hệt mã QR gốc. Nhưng đằng sau các pixel và mẫu của SQRC là chức năng
hạn chế đọc nhằm ngăn những cá nhân không được phép truy cập vào thông tin
được nhúng. SQRC chứa hai loại thông tin: dữ liệu công khai và dữ liệu riêng tư.
Nó cũng yêu cầu một máy quét mã QR cụ thể, không chỉ thiết bị điện thoại thông
minh của bạn. Khi được quét bằng điện thoại, SQRC sẽ hiển thị một phần thông tin
mở cho công chúng xem, có thể không liên quan gì đến dữ liệu được nhúng. Nhưng
khi quét bằng máy quét SQRC, thiết bị sẽ hiển thị thông tin riêng tư.

18
1.1.5.5. Đóng khung mã QR

Hình 1.12. Hình ảnh đóng khung mã QR


Hãy tưởng tượng một khung hình, nhưng các khung đó là hình ảnh mã QR. Đó
chính là mã QR khung.
Mã QR khung có một khoảng trắng hoặc khung vẽ ở giữa để hiển thị hình ảnh hoặc
logo công ty.
Bạn cũng có thể tùy chỉnh khung vẽ thành nhiều hình dạng khác nhau và thay đổi
màu của mã QR khung.
Đây là cách Denso Wave sử dụng mã QR có thể tùy chỉnh để nâng cao trải nghiệm
mã QR của người dùng.
Trên thực tế, nó có thể mã hóa chữ kanji, bộ ký tự đồ họa 8 bit, ký tự chữ và số và
các ký tự đặc biệt khác.
Và do các mô-đun dữ liệu cô đọng nên mã QR vi mô thường được sử dụng trong
sản xuất và kiểm kê các mặt hàng có kích thước nhỏ, bao gồm cả những mặt hàng
trong phần cứng máy.
1.2.HỆ THỐNG PHÂN LOẠI SẢN PHẨM
1.2.1.Đặt vấn đề
Hiện nay ở nước ta tuy có nhiều sức lao động và việc thuê nhân công cũng
khá rẻ nhưng hầu hết việc sử dụng sức lao động con người là phương pháp thủ
công nên còn nhiều sai sót và không mang tính ổn định cao. Nguồn nhân công
của nước ta dồi dào nhưng nguồn nhân lực chất lượng cao thì lại còn khá hạn
chế, tác phong làm việc chưa có tính kỉ luật cao. Phần lớn doanh nghiệp đều

19
phải đào tạo nghề cho công nhân. Công nhân không lành nghề dẫn đến tình trạng
sản phẩm làm ra có chất lượng thấp, năng suất không cao, sản phẩm làm ra sẽ
không nhiều trong một đơn vị thời gian.
Các hoạt động phân loại hàng hóa, sản phẩm thủ công vẫn còn tốn khá
nhiều thời gian và công sức của nhân công. Những ngành nghề phân loại sản
phẩm độc hại thì công nhân tham gia hoạt động phân loại này còn khá là nguy
hiểm đến sức khỏe cũng như là ảnh hưởng đến năng suất của quá trình.
Tốc độ đổi mới công nghệ ở nước ta còn chậm, chưa đồng đều, chưa có
định hướng phát triển rõ rệt. Đa số các doanh nghiệp nước ta sử dụng các cộng
nghệ tụt hậu so với thế giới từ 1-2 thế hệ, công nghệ mà nước ta đang sử dụng đa
phần là công nghệ nhập khẩu từ các nước tiên tiến, khoảng hơn 50% công nghệ
máy móc được nhập khẩu từ các thập niên trước. Sự lạc hậu trong dây chuyền
phân loại sản phẩm này sẽ làm chậm đi quá trình tạo ra sản phẩm đưa đến người
tiêu dùng.
Trên thế giới đã tạo ra nhiều hệ thống phân loại sản phẩm tiên tiến để tự động
hóa trong sản suất, phân loại. Tạo ra năng suất làm việc lớn, mang lại lợi nhuận
khủng. Khi sản phẩm được hoàn thành, xuất ra sẽ được đưa đên băng chuyền
phân loại và các thiết bị phân loại sẽ thực hiện nhiệm vụ của mình.
Hoạt động phân loại tự động có điểm mạnh là năng xuất và độ chính xác cao,
cần ít sức lao dộng của con người mà vẫn đạt hiệu quả cao nên có thể cạnh tranh
về giá cũng như là chất lượng sản phẩm trên thị trường.
1.2.2. Tính cấp thiết của đề tài
Phân loại sản phẩm là một bài toán lớn đã và đang được ứng dụng rất nhiều
trong cuộc sống hiện nay trên toàn thế giới. Dùng sức lao động của con người,
công việc này còn đòi hỏi sự tập trung cao và có tính lặp lại nên nhân công sẽ
khó mà đảm bảo được sự chính xác trong công việc. Điều này còn chưa kể đến
kinh tế hàng hóa trong nước và thế giới ngày càng phát triển, hàng hóa ngày
càng đa dạng thuộc nhiều chủng loại và của nhiều doanh nghiệp, các sản phẩm
có chi tiết nhỏ mang tính kỹ thuật cao mà mắt thường khó nhận ra. Điều này sẽ
ảnh hưởng trực tiếp đến sản phẩm. vì vậy hệ thống nhận dạng và phân loại sản
phẩm ra đời như một sự phát triển tất yếu của xã hội nhằm đáp ứng nhu cầu này.

20
Hình 1.13: Dây chuyền phân loại cam theo màu sắc và khối lượng
Tùy vào mức độ phức tạp trong yêu cầu mà các hệ thống phân loại phẩm
có quy mô khác nhau. Tuy nhiên chi phí cho các quy mô này là rất lớn, đặc biệt
là đối với nước đang phát triển như Việt Nam. Chính vì thể hiện nay ở Việt Nam
đa số các hệ thống phân loại sản phẩm chỉ được áp dụng vào các hệ thống phân
loại sản phẩm phức tạp, còn một lượng lớn doanh nghiệp vẫn dùng sức lao động
của con người.

Hình 1.14: Hệ thống phân loại sản phẩm thủ công


Bên cạnh những dây chuyền vận chuyển sản phẩm thì một yêu cầu cũng
được đặt ra đó là dây chuyền phân loại sản phẩm. Có rất nhiều loại phân loại sản
phẩm như phân loại theo kích thước, màu sắc, khối lượng, hình ảnh, mã vạch,mã
QR...

21
Ngày nay khoa học kĩ thuật ngày càng phát triển, không những kỹ thuật
điện tử mà trong đó điều khiển tự động hóa cũng đóng vai trò rất quan trọng
trong mọi lĩnh vực đời sống. Đi đôi với sự phát triển nhanh chóng ấy là sự đa
dạng về hàng hóa. Nhằm mục tiêu tăng năng suất lao động, độ chính xác, giảm
sức người và giá thành sản phẩm, nâng cao chất lượng sản phẩm, yêu cầu các
sản phẩm công nghệ càng ngày càng hoàn thiện và tối ưu. Vì thế chúng ta cần
tìm ra giải pháp phân loại sản phẩm tối ưu đáp ứng được các nhu cầu về sự đa
dạng trong hàng hóa như hiện nay.
1.2.3. Phương pháp phân loại sản phẩm tự động
Tùy thuộc vào độ phức tạp yêu cầu của từng sản phẩm mà chúng ta có thể
đưa ra những phương pháp phân loại sản phẩm khác nhau. Trên thị trường hiện
nay có một số phương pháp phân loại sản phẩm được ứng dụng phổ biến như
sau:
- Phân loại sản phẩm theo mã vạch, mã QR .

Hình 1. 15: Hệ thống phân loại sản phẩm theo mã vạch

22
- Phân loại sản phẩm theo màu sắc.

Hình 1.16: Hệ thống phân loại trái cây theo màu sắc
- Phân loại sản phẩm theo kích thước.

Hình 1.17: Hệ thống phân loại sản phẩm theo kích thước
-Phân loại sản phẩm theo khối lượng.

Hình 1.18: Hệ thống phân loại sản phẩm theo khối lượng
23
Vì có rất nhiều phương pháp phân loại khác nhau nên cũng có rất nhiều
thuật toán và hướng giải quyết khác nhau cho từng loại sản phẩm khác nhau.
Các thuật toán này có thể hỗ trợ lẫn nhau. Với xu hướng kinh tế hàng hóa phát
triển, các sản phẩm đa dạng nhiều mẫu mã. Nhưng đi kèm với nó thì mỗi sản
phẩm sẽ có một mã số riêng cho mình. Đối với các phương pháp phân loại sản
phẩm theo màu sắc, kích thước, khối lượng nó chỉ phân loại một lượng hàng hóa
nhất định, ở một chuẩn quy mô nhất định, tính ứng dụng cao nhưng chưa thể
đáp ứng được hết nhu cầu của thị trường.
Điều mà em hướng đến là phân loại đa dạng các loại sản phẩm đưa đến
những giá trị tối ưu. Vì thế chúng em sẽ chọn phương pháp phân loại sản phẩm
bằng mã QRCODE để cho ra mô hình tối ưu nhất.
1.3.GIỚI THIỆU VỀ HỆ THỐNG PHÂN LOẠI SẢN PHẨM
BẰNG MÃ QR
Phân loại sản phẩm bằng mã vạch hiện đang được áp dụng rất nhiều ở mọi
ngành nghề khác nhau, đặc biệt là trong logistic. Hiện tại việc mua hang trên các
trang điện tử là việc hết sức phổ biến, là người Việt Nam hẳn ít ai không biết đến
các sàn thương mại điện tử như Shoppe, Lazada, Tiki,… với lượng đơn hàng
một ngày là rất lớn. Việc phân loại hàng hoá trở nên cần thiết. Với lượng hàng
hoá lớn và đa dạng về mặt hàng, việc phân loại bằng màu sắc, kích thước, cân
nặng gần như là bất khả thi. Việc ra đời của hệ thống phân loại bằng mã QR
code là một giải pháp cho hệ thống phân loại của các sàn thương mại điện tử.
Hệ thống sử dụng máy quét mã vạch để thu nhận mã của sản phẩm. Tín
hiệu sau đó được xử lý theo yêu cầu nhận diện sản phẩm. Hệ thống phân loại sản
phẩm sử dụng có thể kiểm tra và phân loại được nhiều thông tin khác nhau, đáp
ứng được nhiều lĩnh vực công nghiệp.

Hình 1.19: Hệ thống phân loại sản phẩm bằng mã vạch


24
Hệ thống phân loại sản phẩm dựa trên ứng dụng của việc xử lý và phân
tích mã vạch. Hệ thống bao gồm ba phần chính:
- Thứ nhất là bộ phận thu thập thông tin, xử lý và ra quyết định bao gồm
một hệ thống máy quét. Khi một sản phẩm đi qua máy sẽ nhận thông tin
của sản phẩm sau đó gửi về phần mềm nhận dạng và phân loại (đối chiếu
với các dữ liệu về sản phẩm đã được nạp sẵn). Phần mềm sẽ xử lý và xác
nhận, nhận dạng sản phẩm thuộc dạng nào, chất lượng ra sao.
- Thứ hai là bộ phận xử lý tín hiệu hồi đáp, điều khiển và giao tiếp giữa
người và máy bao gồm các nút bấm màn hình và các phím điều khiển.
- Thứ ba là hệ thống cơ khí bao gồm một băng tải và các hệ thống phụ trợ
trong việc phân loại sản phẩm. Khi các sản phẩm đã được nhận dạng thì
hệ thống cơ khí sẽ nhận lệnh và đưa ra đáp ứng phù hợp. Hệ thống phụ trợ
này sử dụng các servo để thực hiện việc gạt sản phẩm phân loại vào các
khoảng đã định sẵn.
Một số ưu điểm của ứng dụng quét mã vạch code vào việc phân loại sản
phẩm so với một số ứng dụng khác có thể ra như sau:
- Linh hoạt trong việc thay đổi mẫu mã sản phẩm phân loại.
- Có khả năng phân loại được nhiều loại sản phẩm khác nhau.
- Phân loại được những sản phẩm phức tạp mà các phương pháp thông
thường không thể phân loại được.
Bên cạnh đó ứng dụng cũng có một số nhược điểm:
- Đòi hỏi đội ngũ kỹ sư bảo dưỡng có kiến thức cơ bản về quản lí sản
phẩm. - Môi trường hoạt động của máy quét là môi trường không quá
khắc nghiệt để đảm bảo máy hoạt động tốt nhất
1.4. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI
Nghiên cứu ứng dụng các máy móc kỹ thuật cao vào các quy trình phân
loại sản phẩm giúp giảm sức lao động con người, giảm giá thành và thời gian
phân loại sản phẩm.
Công việc phân loại và đóng gói sản phẩm đòi hỏi tốc độ đáp ứng cao và
độ ổn định của thiết bị. Công đoạn này cần rất nhiều nhân công làm tăng chi phí
sản xuất. Sử dụng hệ thống phân loại thông minh làm giảm chi phí sản xuất,
giảm chi phí nhân công, nâng cao mức độ tự động hóa cho dây chuyền sản xuất
với ưu điểm là có độ ổn định cao và thời gian làm việc không giới hạn.

25
Hình 1.20: Phân loại hàng hóa tự động

Hình 1.21: Công nhân đang phân loại hàng hóa thủ công
1.5. MỤC TIÊU CỦA ĐỀ TÀI
Với đề tài phân loại sản phẩm theo mã QR thì chúng em muốn đạt đến
mục tiêu:
- Tạo được một mô hình phân loại sản phẩm tiên tiến.
- Đáp ứng đầy đủ yêu cầu phân loại sản phẩm nhanh chóng, an toàn.
- Ứng dụng được những kiến thức đã học được vào trong quá trình thực
hiện đề tài.
- Ứng dụng tốt những kiến thức đã học vào trong mô hình.
- Sử dụng các thiết bị công nghiệp vào mô hình,...
1.6. PHƯƠNG PHÁP TIẾP CẬN
1.6.1. Cách tiếp cận
- Khảo sát cách thức phân sản phẩm theo mã QR code: do chưa có điều
kiện để tham gia khảo sát trực tiếp tại các công ty và các nhà máy sản
xuất: chúng em chủ yếu tìm hiểu thông qua các trang mạng (Google,
Youtube, Tiktok, Facebook,...), để tìm kiếm thêm các thông tin về cách
thức phân loại sản phẩm theo mã QR. Ngoài ra dựa vào tài liệu thầy giáo
hướng dẫn đề tài và các đồ án tốt nghiệp của các anh chị khóa trước đã
26
cung cấp cho chúng em thêm nhiều thông tin bổ ích về đề tài nghiên cứu
khoa học mà chúng em đang thực hiện.
- Nghiên cứu tìm hiểu các hệ thống phân loại sản phẩm đang được sử dụng
hiện nay trong nước và nước ngoài.
- Tiến hành đánh giá phân tích các phương án phù hợp, các phương pháp ít
sai số và đem lại hiệu quả cao nhất.
1.6.2. Phương thức nghiên cứu
- Xác định vấn đề nghiên cứu.
- Nghiên cứu tổng quan trong và ngoài nước cũng như khảo sát phương án
nghiên cứu thiết kế chế tạo mô hình.
- Xây dựng phương pháp phân loại, sắp xếp các giai đoạn phân loại cho
phù hợp dựa trên các khảo sát thực tế.
- Thiết kế mô hình phân loại nhằm đáp ứng mục tiêu yêu cầu đặt ra. - Xây
dựng thuật toán, phương pháp tính toán sao cho sai số thấp và hiệu quả
cao.
- Bắt đầu thực hiện chế tạo, đánh giá thực nghiệm.
1.6.3. Nghiên cứu tình hình trong và ngoài nước
Hiện nay các doanh nghiệp trong và ngoài nước đã nghiên cứu và ứng
dụng rất nhiều hệ thống phân loại sản phẩm theo mã vạch và mã QR code hiện
đại vào quá trình sản xuất như:

Hình 1.22: Hệ thống vận chuyển hàng hóa tại sân bay

27
Hình 1.23: Hệ thống phân loại sản phẩn tại kho
1.7. KẾT LUẬN CHƯƠNG 1
Chương này chúng em đã tìm hiểu về hệ thống phân loại sản phẩm theo
mã QR code. Đồng thời đã tìm hiểu về các hệ thống phân loại sản phẩm trong và
ngoài nước đã được sử dụng rộng rãi trong các các nhà máy, xí nghiệp. Trên cơ
sở đó em đã đưa ra được lý do chọn đề tài và nhu cầu cấp thiết. Để đưa ra được
phương án thiết kế tối ưu nhất cho đề tài này, trong chương tiếp theo em sẽ
nghiên cứu và trình bày cơ sở lý thuyết tổng quát nhất của hệ thống phân loại
sản phẩm.

28
CHƯƠNG 2

CƠ SỞ LÝ THUYẾT
2.1. Phương án thiết kế
Xuất phát từ những khó khăn của doanh nghiệp cũng như đúc kết từ
những kiến thức học được. Nhận thấy tầm quan trọng của các hệ thống phận loại
sản phẩm trong các dây chuyền sản suất. Đây là hệ thống cần cải tiến và thiết kế
mới đáp ứng nhu cầu chuyên môn cao cũng như phù hợp với đặc thù phân loại
được nhiều loại hàng hóa khác nhau. Cũng như là đảm bảo tính ứng dụng nhanh
quy trình xử ảnh mà không mất nhiều thời gian tính toán, lập trình.
2.1.1. Phương án thiết kế băng chuyển sản phẩm
2.1.1.1. Lựa chọn loại băng tải
- Băng tải là thiết bị truyền tải có tính kinh tế cao nhất trong ứng dụng vận
chuyển hàng hóa, vật liệu, sản phẩm với mọi khoảng cách.
- Sử dụng băng tải để vận chuyển sản phẩm giúp nâng cao năng suất và giải
phóng sức lao động mang lại hiệu quả kinh tế cao.
- Tùy vào điều kiện làm việc sẽ có mỗi loại băng tải khác nhau.
❖ Phương án 1: Băng tải con lăn
- Băng tải con lăn là hệ thống vận chuyển hàng hóa được sử dụng khá phổ
biến trong lĩnh vực sản xuất công nghiệp hiện nay, với mục đích nhằm
nâng cao năng suất làm việc cho người lao động.
- Băng tải con lăn được hiểu là một hệ thống bao gồm các con lăn được kết
nối với nhau một cách vững chắc để nâng đỡ, vận chuyển hàng hóa trong
các ngành sản xuất công nghiệp hiện đại. Hệ thống này có thể sử dụng
được cho các loại sản phẩm có trọng lượng từ nhẹ đến rất nặng. Đồng
thời, nó cũng hoạt động rất tốt trong môi trường bụi bặm hoặc có hóa chất
ăn mòn.
- Thông thường, người ta dùng băng tải con lăn để di chuyển các loại hàng
hoá có phần đáy phẳng và cứng (ví dụ như: Thùng carton, sản phẩn có
dạng hình hộp,…)

29
Hình 2.1: Băng tải con lăn
- Với cấu tạo của mặt băng tải là các con lăn, đây cũng là bộ phận chính có
tác dụng truyền động và là thành phần bắt buộc phải có trong băng tải con
lăn.
- Tùy thuộc vào thuộc tính của loại hàng hóa cần vận chuyển mà người ta
có thể sử dụng con lăn với đường kính và số lượng khác nhau. Các vật
liệu thường được sử dụng để chế tạo con lăn có thể kể đến như: inox,
thép, cao su, nhựa, nhôm,…
- Ưu điểm:
+ Băng tải con lăn có độ bền và độ cứng cao. Cho phép chuyển hàng có kích
thước lớn và khối lượng nặng.
+ Băng chuyền dàn con lăn truyền động bằng xích có kích thước nhỏ gọn.
+ Có thể di chuyển theo tuyến thẳng hoặc tuyến cong.
+ Kết cấu dễ dàng cho việc chất tải và dỡ tải.
- Nhược điểm:
+ Trong băng tải con lăn có nhiều dàn con lăn nê đòi hỏi phải kiểm tra và bảo
dưỡng thường xuyên, tốn chi phí lớn.
❖ Phương án 2: Băng tải cao su vân V
- Băng tải cao su vân V là một loại băng tải với dây được thiết kế có các
đường gân chữ V đúc và tích hợp trực tiếp gắn liền với bề mặt trên của
dây băng tải, để tạo độ ma sát và tăng cường lực kéo do tính chất sử dụng
công việc khác nhau nên kích cỡ góc vận chuyển, hình dáng gân theo yêu
cầu cũng khác nhau.

30
Hình 2.2: Băng tải vân cao su V
- Ưu điểm:
+ Băng tải cấu tạo đơn giản ,bền.
+ Có khả năng vận chuyển vâtj liệu theo hướng nằm ngang, nằm nghiêng với
khoảng cách xa.
+ Làm việc êm, năng suất tiêu hao không lớn.
+ Vận chuyển vật liệu rời như cát, đá, than đá,.. từ bến bãi lên tàu,xe dễ dàng.
- Nhược điểm:
+ Chỉ chạy ở tốc độ trung bình,không được cao.
+ Độ nghiêng băng tải nhỏ ( <240).
+ Không thể vận chuyển theo hướng cong ( cần phải bố trí thêm động cơ và
khung băng tải để đổi hướng).
+ Thiết bị vận hành liên tục tì đè lên con lăn. Cần phải thường xuyên kiểm tra và
bảo dưỡng con lăn.
❖ Phương án 3: Băng tải xoắn ốc
- Phạm vi ứng dụng: thường dùng trong công nghiệp thực phẩm và nước
giải khát, bao bì dược phẩm, bán lẻ,….Nó vận chuyển vật liệu, sản phẩm
theo một dòng liên tục.

31
Hình 2.3: Băng tải xoắn ốc
- Ưu điểm:
+ Ngăn chặn các sản phẩm bị trượt và nhào lộn trong quá trình vận chuyển sản
phẩm. Các loại băng tải xoắn ốc được thiết kế với góc nghiêng vừa phải và hợp
lý ( từ 110 trở xuống) giúp cho việc vận chuyển sản phẩm được dễ dàng mà
không sợ chúng lăn ra khỏi hệ thống khi hoạt động.
+ Giảm thiểu năng lượng: Đây là lợi thế so với băng tải bình thường vì hầu hết
các băng tải đó thiết kế thẳng đứng trong khi đó vành trống của băng tải giúp
băng tải xoắn ốc giúp hoạt động khá ổn định, động cơ được thiết kế tại vành đai
trống này di chuyển và tạo ra một năng lượng nhất định, giúp vận chuyển sản
phẩm nhẹ nhàng hơn mà không tốn nhiều năng lượng, tiết kiệm nguồn năng
lượng. + Di chuyển hai chiều lên và xuống. Đây là một trong những tiện ích của
băng tải xoắn ốc. Thông thường, một nhà máy sản xuất sản phẩm cần di chuyển
lên trên, trong khi một số nơi lại cần chuyển sản phẩm xuống. Nên sử dụng băng
tải xoắn ốc, chúng ta có thể kết hợp hai điều này bởi vành đai của nó được thiết
kế đặt biệt, chỉ cần ấn nút có thể thay đổi hướng hoạt động của băng tải một
cách dễ dàng giúp tiết kiệm chi phí trong sản xuất.
+ Băng tải thiết kế nhỏ gọn, tiết kiệm không gian trong nhà máy.
+ Phạm vi hoạt động của băng tải xoắn ốc ứng dụng rộng rãi để vận chuyển các
mặt hàng đóng gói như cahi, thùng carton, các loại thực phẩm,....
- Nhược điểm:
+ Chi phí lắp đặt băng tải xoắn ốc rất cao.
+ Khi đi vào hoạt động băng tải xoắn ốc phải được kiểm tra bảo trì thường
xuyên.
❖ Phương án 4: Băng tải xích
- Băng tải xích là dòng sản phẩm được ứng dụng trong nhiều lĩnh vực sản
xuất công nghiệp dây chuyền giúp việc vận chuyển nguyên liệu, sản phẩm

32
một cách đơn giản nhanh chóng đáp ứng tối đa nhu cầu sử dụng của
khách hàng.
- Có 2 loại băng tải xích chính là băng tải xích nhựa và băng tải xích inox.

Hình 2.4: Băng tải xích


- Băng tải xích có khả năng chịu lực, cường độ và tải trọng cao. Chống chịu
mài mòn và có độ bền tốt. Dễ dàng vận hành, hoạt động êm ái.
- Băng tải xích được sử dụng nhiều trong các nhà máy như:
+ Trong ngành công nghiệp ô tô, xe máy: di chuyển cả một chiếc khung xe ô tô
để đến nơi sơn tĩnh điện, di chuyển cùng lúc nhiều phụ tùng xe máy trên băng tải
xích để lắp ráp thành một chiếc xe hoàn chỉnh.
+ Trong ngành công nghiệp sản xuất các mặt hàng tiêu dùng thiết yếu: vận
chuyển các bao hàng, thùng carton chưa thành phẩm.
+ Dùng trong ngành công nghiệp khai khoáng (khai thác than, đá, quặng, cát,
sỏi,…)
+ Băng tải xích đóng vai trò quan trọng trong công nghệp sản xuất xi măng, sản
xuất phân bón.
❖ Phương án 5: Băng tải cao su PVC
- Phạm vi ứng dụng: được sử dụng phổ biến trong các nghành công nghiệp
như trong dây chuyền sản xuất bánh kẹo, trái cây, rau củ quả, sản phẩm
tươi sống,..

33
Hình 2.5: Băng tải nhựa PVC
- Ưu điểm:
+ Khả năng kháng hóa chất tốt.
+ Chịu được nước và chống hơi nước tốt.
+ Dây băng tải PVC có khả năng chống phóng xạ, chống cháy và chống tĩnh
điện tốt.
+ Hoạt động trong nhiều nghành nghề khác nhau, môi trường khắc nghiệt, khí
hậu ẩm ướt và nhiệt độ thấp.
+ Có khả năng chống dầu mỡ, dung môi, chống mài mòn tốt.
+ Chống rách, co dãn , bong tróc.
+ Dễ dàng vệ sinh, thay thế, sữa chữa, bảo trì khi có sự cố.
- Nhược điểm:
+ Một số hệ thống khó vận chuyển, không vận chuyển các sản phẩm có kích
thước lớn.
+ Đối với các sản phẩm hạt, vụn… Có thế bị hao hụt, rơi vãi trong quá trình vận
chuyển
+ Khi vận chuyển xa và địa hình không thẳng đồi hỏi cần có nhiều hệ thống kết
hợp với nhau.
❖ Kết luận
Từ những đặc điểm cấu tạo, ưu điểm và nhược điểm của các loại
băng tải trên. Chúng em chọn băng tải mặt PVC cho đề tài do có những
đặc điểm phù hợp với việc phân loại sản phẩm.

34
2.1.2. Lựa chọn khung băng tải
- Khung băng tải có nhiều loại: khung sắt, khung nhôm, khung inox,... -
Khung băng tải được thiết kế đơn giản đến phức tạp,tùy thuộc vào nhu
cầu sản xuất và yêu cầu của khách hàng.
- Khung băng tải có nhìu kích thước khác nhau và chia làm 2 loại: khung
băng tải di động và khung băng tải cố định.
- Khung băng tải cố định được thiết kế kiên cố và có khả năng chịu tải lớn.
- Khung băng tải di động được thiết kế vững chắc và có trang bị bánh xe,
giúp băng tải dễ dàng di chuyển. Ngoài ra, còn có loại khung băng tải
nâng hạ với thiết kế đặt biệt giúp băng tải nâng hạ một linh hoạt theo nhu
cầu sử dụng.
❖ Phương án 1: Băng tải khung nhôm
- Hiện nay, nhôm định hình đươc sử dụng rộng rãi trong các lĩnh vực như
băng tải, dây chuyền lắp ráp,….

Hình 2.6: Băng tải khung nhôm định hình


- Ưu điểm:
+ Độ bền cao, do đươc sản xuất theo phương pháp đùn ép, nguyên liệu là nhôm
6063 với chất lượng cao,đảm bảo cho nhom định hình công nghiệp có độ bền
cao.
+ Băng tải khung nhôm định hình được chế tạo bằng tấm nhôm anodized hóa
sang bóng bề mặt, chống xướt, chịu lực tốt.

35
+ Khả năng chống tĩnh điện tốt: Nhôm có hệ số dẫn điện cao so với các vật liệu
khác ( như sắt,inox,..) giúp giải phóng lượng điện dung sinh ra trong quá trình
ma sát, giảm tối đa ảnh hưởng của dòng điện tích tụ, tránh gây ảnh hưởng đến
sản phẩm đặt biện là sản phẩm điện tử.
+ Với trọng lượng nhẹ có thể tháo lắp, di chuyển dễ dàng.
+ Tính linh hoạt khi tháo lắp: băng tải bằng khung nhôm định hình sử dụng các
phụ kiện nhôm định hình như con trượt, ke góc để lắp ráp vì thế có tính linh hoạt
cao, tái sử dụng nhiều lần.
- Nhược điểm:
+ Nhôm dễ bị rỉ sét,bị ăn mòn bởi hóa chất và tác động của thời tiết.
+ Thanh nhôm dễ bị cong vênh khi chịu lực tác động lớn và đột ngột.
+ Chi phí giá thành đầu tư khung nhôm sẽ cao hơn nhiều so với khung thép.
❖ Phương án 2: Băng tải khung thép
- Hệ thống khung tải thép được dùng trong nhiều môi trường làm việc khác
nhau. Với các dạng như băng thẳng, băng nghiêng, băng nhiều tầng,.. đều
được chế tạo dễ dàng với khung thép.

Hình 2.7: Băng tải khung nhôm thép


- Ưu điểm:
+ Khung băng tải thép có độ bền cao được sơn tĩnh điện bề mặt, chống trầy
xước, chịu lực tốt, dễ tháo lắp.
+ Giá thành thấp so với khung nhôm định hình.
- Nhược điểm:
+ Thép dễ bị rỉ sét, bị ăn mòn bởi hóa chấy hay do tác động của thời tiết.
❖ Kết luận

36
Từ hai phương án trên em chọn phương án 1 là băng tải khung nhôm
định hình.

2.1.3. Lựa chọn mặt băng tải


❖ Phương án 1: Băng tải mặt PVC
- Mặt băng tải PVC được sử dụng rộng rãi trong các dây chuyền lắp ráp
trong các lĩnh vực chế biến thực phẩm, dược phẩm, điện tử, thuốc lá, in ấn…
- Bề mặt dây PVC chống nước chịu nhiệt từ (-10 ° C – 80 ° C) có thể chịu
được nhiệt độ 110° C trong một thời gian nhất định.
- Khả năng chống rách, bong tróc và tác động trọng lượng dây PVC nhẹ,
linh hoạt.
- Băng tải PVC (Mặt trên trơn láng hoặc carô – mặt dưới là lớp bố dệt), có
độ dày 1mm, 2mm, 3mm, 4,5mm và 5mm.

Hình 2.8: Kiểu băng tải mặt PVC


❖ Phương án 2: Băng tải mặt PU
- Mặt băng tải PU là một giải pháp đầu tư chi phí hiệu quả nó được sử dụng
rộng rãi trong các dây chuyền lắp ráp trong các lĩnh vực chế biến thực
phẩm, dược phẩm, đóng gói…
- Bề mặt băng PU chống nước chịu nhiệt từ (-10 ° C đến 80 ° C) có thể chịu
được nhiệt độ 110° C trong một thời gian nhất định.
- Trọng lượng nhẹ, linh hoạt.
- Khả năng chống rách, bong tróc và tác động.
- Khả năng chống thấm hơi ẩm, axit, dầu, khí, ánh sáng mặt trời.

37
Hình 2.9: Kiểu băng tải mặt PVC
❖ Kết luận
Dựa vào các phương án trên kết hợp với quá trình làm mô hình nên em
chọn phương án 1 là mặt băng tải PVC.

2.1.4. Lựa chọn động cơ băng tải


- Động cơ điện là máy điện dùng để chuyển đổi năng lượng điện sang năng
lượng cơ học. Hầu hết động cơ điện hiện có hoạt động theo hiệu ứng điện
từ. Một số ít là Động cơ áp điện hoạt động dựa trên hiệu ứng áp điện và
thường là động cơ cỡ nhỏ hoặc siêu nhỏ.
2.1.4.1. Phương án 1: Động cơ DC
- Động cơ DC hay còn gọi là động cơ một chiều, được sử dụng trong dòng
điện một chiều,động cơ DC được cấu tạo từ 2 phần là Stator và Rotor.
Trong đó roto được làm bằng nam châm vĩnh cữu. Khi hoạt động, động cơ
chỉ cần 1 nguồn cấp điện cho Stato.

Hình 2. 10:Động cơ điện DC


- Ưu điểm:
38
+ Phổ biến ngoài thị trường, kích thước nhỏ gọn.
+ Cấu tạo đơn giản giá thành rẻ.
+ Có thể điều chỉnh tốc độ.
+ Moment khởi động lớn.
- Nhược điểm:
+ Gây tiếng ồn ở nhiệt độ cao.
+ Công suất nhỏ.
+ Tuổi thọ ngắn
2.1.4.2. Phương án 2: Động cơ AC
- Động cơ AC động cơ điện xoay chiều hoạt động với dòng điện xoay
chiều. Động cơ gồm có hai phần chính là Stator và Rotor.Stator gồm các
cuộn dây của ba pha điện quấn trên các lõi sắt bố trí trên một vành tròn để
tạo ra từ trường quay.Rotor hình trụ có tác dụng như một cuộn dây quấn
trên lõi thép.Khi mắc động cơ vào mạng điện xoay chiều, từ trường quay
do stator gây ra làm cho roto quay trên trục. Chuyển động quay của rotor
được trục máy truyền ra ngoài và được sử dụng để vận hành các máy công
cụ hoặc các cơ cấu chuyển động khác.

Hình 2. 11:Động cơ điện AC


- Ưu điểm:
+ Ứng dụng nhiều trong công nghiệp.
+ Chịu tải tốt
+ Dễ vận hành trong môi trường liên tục và dài hạn.
- Nhược điểm:

39
+ Moment khởi động nhỏ.
+ Dòng khởi động lớn
2.1.4.3. Kết luận
Từ những ưu, nhược điểm của động cơ AC và động cơ DC chúng em lựa chọn
phương án 1 sử dụng động cơ DC

2.1.5. Phương án đọc mã vạch


2.1.5.1. Phương án 1: Camera

Hình 2. 12: Camera

Ưu điểm : tốc độ xử lý nhanh ,có thể đọc được nhiều loại mã vạch cùng một
lúc;
- Nhược điểm : độ chính xác không cao dễ bị ảnh hưởng bởi môi trường và
chất lượng camera , xử lý khó khăn, yêu cầu lắp đặt phức tạp.

40
2.1.5.2. Phương án 2: Máy quét mã vạch
- Máy đọc mã vạch còn được gọi là máy quét giá hay máy quét điểm bán
POS. Đây là dạng thiết bị đầu vào cầm tay hoặc cố định với mục đích sử
dụng chính là dùng để đọc hay chụp các thông tin chứa trong mã vạch.
- Phần đầu đọc mã vạch sẽ gồm các bộ phận sau: máy quét, bộ giải mã và
cáp USB để kết nối với đầu đọc máy tính. Sau khi đầu quét mã vạch đã
ghi và chụp được mã vạch thành các số hay chữ cái thì lúc này dữ liệu sẽ
được truyền tới máy tính để ứng dụng này có thể hiểu được dữ liệu.

Hình 2. 13: Máy quét mã vạch


- Hiểu một cách đơn giản, máy quét mã vạch được xem là một thiết bị đọc
dữ liệu từ mã vạch mà mã vạch này được in sẵn trên các sản phẩm, hàng
hóa. Sau khi tiếp nhận dữ liệu, máy quét sẽ giải mã các dữ liệu chứa trong
mã vạch và chuyển toàn bộ dữ liệu này qua máy tính đã được kết nối
trước đó. Thông qua phần mềm chuyên dụng nó sẽ phân tích và giải mã
tương ứng với mỗi sản phẩm một cách chính xác.
- Ưu điểm : độ chính xác cao , xử lý tín hiệu dễ dàng , lắp đạt đơn giản.
- Nhược điểm : chỉ đọc được một mã vạch trong một lần quét , giá thàng
cao.
2.1.5.3. Kết luận
Từ những ưu nhược điểm của hai phương án trên kết hợp với thực tế khi
phân loại sản phẩm bằng mã vạch cần phải có độ chính xác cao và không cần
đọc nhiều mã vạch cùng một lúc như vậy em chọn đọc mã vạch bằng máy quét
mã vạch.

41
2.1.6. Lựa chọn cơ cấu phân loại
Trong quá trình nghiên cứu đề tài, dựa vào mục đích cuối cùng của mô
hình là phân loại sản phẩm, em đưa ra được 3 phương án thiết kế cơ cấu phân
loại:
2.1.6.1. Phương án 1: Sử dụng xy lanh
- Xylanh là cơ cấu đang rất thịnh hành ở các nhà xưởng ở mọi hệ thống
khác nhau chứ không chỉ riêng hệ thống phân loại sản phẩm. Xylanh có
2 dạng phổ biến là xylanh khí nén và xylanh thuỷ lực.

Hình 2. 14: Xy lanh


- Nguyên lý: sản phẩm sau khi xác định được khối lượng và quét mã vạch
sẽ được đưa đến đoạn băng tải có gắn các xy lanh phân loại. Tín hiệu trả
về từ thiết bị điều khiển sẽ được đưa đến điều khiển các xy lanh phân
loại, khi sản phẩm đến khu vực cần phân loại, tín hiệu cảm biến trả về
kích hoạt xylanh đi ra đẩy sản phẩm xuống nơi chứa theo từng loại.
- Ưu điểm:
+ Dễ sử dụng, hiệu quả cao.
+ Có khả năng truyền áp lực mạnh với công suất cao.
+ Thiết kế nhỏ gọn, mang tính ứng dụng cao cho nhiều loại máy móc công trình.
+ Độ tin cậy cao trong hoạt động, ít đòi hỏi phải bảo dưỡng thường xuyên.
+ Có thể làm việc ở tốc độ cao mà không sợ va đập mạnh.
+ Theo dõi dễ dàng bẳng áp kế để có điều chỉnh hệ số phù hợp cho các hệ thống
phức tạp.
- Nhược điểm:

42
+ Khi mới hoạt động nhiệt độ hệ thống không ổn định, vận tốc sẽ bị thay đổi khi
độ nhớt trong xylanh thay đổi gây ảnh hưởng đến hệ thống.
+ Tiêu hao chất lỏng trong quá trình dẫn ống và bị rò rỉ ra bên ngoài có thể làm
giảm hiệu suất.
+ Độ toả nhiệt cao khi quá trình hoạt động nhanh công suất lớn.
+ Với xylanh khí nén thì gây tiếng ồn lớn trong thời gian hoạt động.
+ Với xylanh thuỷ lực việc rò rỉ lưu chất ở các khớp nối gây ra nhiều vấn đề về
vệ sinh của nhà máy.
2.1.6.2. Phương án 2: Sử dụng cánh tay robot
Cánh tay robot bản chất được tạo ra từ các khớp nối cơ khí, tạo thành hình
dạng và kết cấu giống như cánh tay con người. Nó có khả năng chuyển động linh
hoạt nhờ vào các trục quay. Cánh tay robot càng nhiều khớp nối và trục quay thì
càng linh hoạt hơn trong việc di chuyển.
- Để điều khiển được cánh tay người ta sử dụng bộ điều khiển. Bộ điều
khiển đảm nhận nhiệm vụ tiến hành các thao tác khi tín hiệu đã được
tiếp nhận và xử lý. Các chức năng hoạt động sẽ được xử lý khác nhau từ
đơn giản cho đến phức tạp.
- Cánh tay robot được áp dụng rộng rãi ở rất nhiều hệ thống khác nhau.
Nó giúp thay thế con người ở nhiều công đoạn trong sản xuất.

Hình 2. 15: Cánh tay robot


- Ưu điểm:

43
+ Chuyển động của cánh tay robot trong thực tế luôn chính xác, trơn tru và
không có động tác dư thừa. Giúp tiết kiệm thời gian sản xuất và chi phí vận
hành cho doanh nghiệp.
+ Cánh tay robot còn có khả năng tham gia vào khâu kiểm tra chất lượng sản
phẩm.
+ Nhờ sự linh hoạt nó có thể đưa hàng hoá đến nhiều vị trí khác nhau.
- Nhược điểm:
+ Điều đầu tiên phải nói đến là chi phí đầu tư cho cánh tay robot là rất lớn.
+ Yêu cầu trình độ kỹ thuật cao nên vận hành sửa chữa rất khó khăn và tốn kém.
2.1.6.3. Phương án 3: Sử dụng thanh gạt
- Thực chất đây là một động cơ Servo có gắn tay gạt lên trục của động cơ.
Dựa và cơ chế có thể điều khiển góc quay, tốc độ quay của động cơ
Servo/Step để điều khiển tay gạt.
- Động cơ servo là thiết bị là điện từ được sử dụng trong công nghiệp. Nó
sử dụng cơ chế phản hồi âm. Từ đó, nó có khả năng chuyển đổi tín hiệu
điện năng thành chuyển động có kiểm soát.
- Có 2 loại động cơ Servo là động cơ DC và AC:
❖ Động cơ Servo AC
- Động cơ AC hoạt động ổn định, đặc tính điều chỉnh của chỉ số phi
tuyến tính cũng như đặc tính cơ học nghiêm ngặt, độ nhạy cao, khả
năng đáp ứng nhanh chóng.
- Servo ac là dạng động cơ đồng bộ ba pha có nam châm vĩnh cửu. Để
giúp quá trình điều khiển được chính xác thì servo loại này sẽ được
tích hợp với encoder có độ phân giải lớn.
- Mỗi hãng sản xuất sẽ tích hợp diver cho servo của mình. 3 chế độ làm
việc của servo ac đó là: momen, tốc độ, vị trí. Yêu cầu ở mỗi chế độ là
người dùng phải điều chỉnh thông số của tải hay ứng dụng cho phù
hợp.

44
Hình 2. 16: Động cơ Servo AC và Drive
- Ưu điểm:
+ Chi phí bảo trì miễn phí. Điểm nổi bật của loại này đó là điều khiển tốc độ tốt,
trên toàn vùng tốc độ điều khiển thật trơn tru, không xuất hiện sự dao động. +
Hiệu suất khi sử dụng servo loại ac cao hơn 90% so với trước đây, ít tỏa ra nhiệt
lượng.
+ Độ chính xác cao khi điều khiển vị trí, điều khiển tốc độ cao, tuy nhiên phụ
thuộc phần nhiều vào độ chính xác của bộ mã hóa.
+ Tiếng ồn thấp, quán tính và momen xoắn thấp.
- Nhược điểm:
+ Chi phí cho động cơ Servo AC là khá cao.
+ Do có cấu tạo đặc biệt khác với các động cơ thường nên việc sửa chữa
cũng khó khăn hơn.
+ Yêu cầu cao trong vấn đề điều khiển và vận hành.
- Đi kèm với động cơ luôn luôn phải có driver.
Động cơ servo không phải là loại động cơ thông thường khi nó hoạt động
dựa trên nguyên tắc PWM (điều chế độ rộng xung). Bộ driver động cơ được
lựa chọn dựa trên thông số động cơ. Bộ driver giúp xử lý xung tín hiệu từ bộ
điều khiển và cấp cho động cơ có thể hoạt động.

45
❖ Động cơ Servo DC
- Động cơ dc servo thường được sử dụng để tạo nên phản ứng momen xoắn
nhanh. Trên thị trường, thiết bị này có tên gọi động cơ servo DC dòng kích
riêng, động cơ DC nam châm vĩnh cửu.
- Động cơ DC sẽ phân chia thành nhiều loại nhỏ như: động cơ series, động
cơ điều khiển shunt, động cơ servo nam châm vĩnh cữu, động cơ chia
dòng. - Trong các nhà máy, những động cơ servo công suất cao sẽ là servo
DC và nó cũng chính là loại được sử dụng nhiều nhất hiện nay.
- Điểm nổi bật của động cơ servo loại DC đó là: động cơ DC có cấu tạo cũng
như hoạt động không phức tạp như AC. So với servo AC thì loại DC ít ồn
hơn, % hoạt động chính xác cao hơn.

Hình 2. 17: Động cơ Servo DC và Drive.


- Ưu điểm:
+ Kiểm soát tốc độ của động cơ một cách chính xác và nhanh chóng.
+ Dễ dàng khi sử dụng, giá thành phải chăng.
+ Nguyên tắc điều khiển của loại dc servo motor này rất dễ dàng. So với loại
khác, tốc độ mo men xoắn rất nhỏ.
- Nhược điểm:
+ Kém bền, động cơ có chổi than nên phải bảo dưỡng và thay định kỳ.
3. Kết luận
Căn cứ từ việc phân tích những ưu, nhược điểm của các phương pháp thiết
kế trên em quyết định lựa chọn phương án thiết kế cuối cùng đó là sử dụng động
cơ server DC để làm cơ cấu phân loại

46
2.1.7. Lựa chọn thiết bị điều khiển
Sau khi nghiên cứu, tìm hiểu chúng em đưa ra được 2 phương án để điều khiển
mô hình phân loại sản phẩm :
2.1.7.1. Phương án 1: Sử dụng PLC S7-1200-1214C
- S7-1200 ra đời năm 2009 dùng để thay thế dần cho S7-200. So với S7-200
thì S7-1200 có những tính năng nổi trội hơn.
- S7-1200 được thiết kế nhỏ gọn, chi phí thấp, và một tập lệnh mạnh giúp
những giải pháp hoàn hảo hơn cho ứng dụng sử dụng với S7-1200.

Hình 2.18: PLC S7-1214


- S7-1200 cung cấp một cổng PROFINET, hỗ trợ chuẩn Ethernet và TCP/IP.
- PLC S7-1200 CPU 1214C có bộ nhớ làm việc 100KB work memory.
- PLC S7-1200 có thể mở rộng các module tín hiệu và các module gắn ngoài
để mở rộng chức năng của CPU. Ngoài ra, có thể cài đặt thêm các module
truyền thông để hỗ trợ giao thức truyền thông khác.
- S7-1200 có các loại module mở rộng sau:
+ Communication module (Module giao tiếp CP).
+ Signal board (Board đọc tính hiệu analog, truyền thông SB).Signal Module
(Moduleđọc tín hiệu SM).
- Các thành phần của PLC S7-1200 bao gồm:
+ 3 bộ điều khiển nhỏ gọn với sự phân loại trong các phiên bản khác nhau giống
như điều khiển AC, RELAY hoặc DC phạm vi rộng. 2 mạch tương tự và số mở
rộng ngõ vào/ra trực tiếp trên CPU làm giảm chi phí sản phẩm.
+ 13 module tín hiệu số và tương tự khác nhau bao gồm (module SM và SB). 2
module giao tiếp RS232/RS485 để giao tiếp thông qua kết nối PTP. Bổ sung 4
47
cổng Ethernet. Module nguồn PS 1207 ổn định, dòng điện áp 115/230 VAC và
điện áp 24 VDC.
- Thông số, đặt tính kỹ thuật:

Hình 2.19: Đặt tính kỹ thuật của PLC S7-1200


-Ưu điểm:
+ Không bị nhiễu, được sử dụng phổ biến trong công nghiệp.
+ Độ chính xác cao.
+ Thực hiện các thuật toán phức tạp.
- Nhược điểm:
+ Giá thành cao.
+ Chi phí thay thế cao.

48
2.1.7.2. Phương án 2: Sử dụng vi điều khiển STM32F103C8T6 Blue Pill

Hình 2.20 :vi điều khiển STM32F103C8T6 Blue Pill

- STM32F103C8T6 là một trong những vi điều khiển tầm trung thuộc họ


STM32F103x8 theo kiến trúc vi mạch RISC. Bo mạch Blue Pill có chi phí thấp có
thể thay thế cho các bo mạch STM khác của hãng STMicroelectronics. Giá của Blue
Pill ở khoảng 2-3 $.

- Bộ vi điều khiển STM32F103C8T6 có các chân GPIO, bộ xử lý, bộ nhớ,


cổng USB, bộ chuyển đổi tín hiệu Analog sang tín hiệu Digital và các thiết bị
ngoại vi khác. Một lõi ARM Cortex với tốc độ đáng kinh ngạc 72 MHz và hiệu
suất năng lượng tương đối.
- Bo mạch STM32F103C8T6 blue-pill có lõi ARM 32-bit Cortex-M3 RISC
với bộ dao động bên trong 4 -16 MHz. Nó là một chip công nghệ flash CMOS.

49
Chip này có 37 chân GPIO và 10 chân Analog. Nó có một số giao thức giao tiếp
hiện đại như CAN và USB.
- Các thiết bị ngoại vi cung cấp khả năng điều khiển vượt trội bo mạch vì nó
hoạt động với điện áp rất thấp, vì vậy nó phù hợp cho các ứng dụng công suất
thấp. Nó có một bộ watchdog và window watchdog timer để bo mạch vận hành
chính xác các dòng lệnh.

Hình 2.21 Sơ đồ chân STM32F103C8T6


Bảng 1:cấu hình chân STM32F103C8T6
Kiểu chân Tên chân Mô tả
1. Điện áp hoạt động đầu ra
-3,3V 2. Chân cấp nguồn ở cổng
Power -5V USB hoặc nguồn 5V bên
-GND ngoài
3. Chân nối đất
Chân ADC độ phân giải 10,
Chân Analog PA0-PA7, PB0-PB1
12-bit
50
PA0-PA15, PB0-PB15,
Chân I / O 37 chân I / O đa chức năng
PC13-PC15
PA0-PA15, PB0-PB15,
Ngắt ngoài Chân ngắt
PC13-PC15
PA0-PA3, PA6-PA10, PB0- 15 chân điều chế độ rộng
PWM
PB1, PB6-PB9 xung
Giao tiếp dữ liệu TX1, RX1, TX2, RX2,
Chân RTS, CTS USART
nối tiếp ( UART ) TX3, RX3
MISO0, MOSI0, SCK0,
SPI MISO1, MOSI1, SCK1, 2 chân SPI
CS0
CAN CAN0TX, CAN0RX Chân Bus của mạng CAN
Chân dữ liệu I2C và chân
I2C SCL1, SCL2, SDA1, SD2
xung nhịp
Đèn LED tích
PC13 Đèn LED chỉ thị
hợp
- Ngắt ngoài: Ngắt phần cứng được thực thi khi phát hiện sự thay đổi của các
tín hiệu bên ngoài.
- PWM: Tổng cộng 15 chân điều chế độ rộng xung để tạo tín hiệu điện áp
tương tự analog từ các đầu ra PWM digital.
- RTS / CTS: Request-to-Send / Clear-to-Send là một giao thức đảm bảo kiểm
soát việc truyền và nhận dữ liệu.
- SPI : giao thức để giao tiếp giữa bộ vi điều khiển và thiết bị ngoại vi.
- CAN: đường bus truyền dữ liệu theo hai hướng.
- I2C : Một giao thức truyền dữ liệu nối tiếp khác để truyền dữ liệu đồng bộ.
- Ưu điểm:
+Tốc độ xử lý nhanh, dễ thay thế khi hư hỏng.
+Giá thành rẻ.
+ Tính bảo mật cao

51
- Nhược điểm:
+Sụt áp, nhiễu làm giảm độ chính xác.
+Chỉ dùng ở khoảng cách gần.
2.1.7.3. Kết luận
Từ những yếu tố trên em đưa ra quyết định sử dụng vi điều khiển
STM32F103C8T6 để điều khiển mô hình phân loại sản phẩm theo mã QR code.
2.2. Thiết kế nguyên lý
2.2.1. Nguyên lý hoạt động của hệ thống
Từ những phương án mà chúng em lựa chọn như trên, nguyên lý mô hình
phân sản phẩm theo mã QRCODE ấu tạo của mô hình phân loại sản phẩm theo
mã QRCODE bao gồm các bộ phận như sau:
+ Băng tải có chức năng vận chuyển sản phẩm.
+ Động cơ băng tải giúp băng tải hoạy động.
+ Cảm biến để quét vật khi đi qua buồng.
+ Máy đọc mã vạch để quét mã vạch của sản phẩm.
+ 3 xi lanh dùng để gạt sản phẩm từ băng tải vào các khay chứa tương ứng.
- Nguyên lý hoạt động : Đưa sản phẩm lên băng tải để tiến hành quét mã
vạch của sản phẩm. Tại buồng đọc mã vạch sẽ tiến hành đọc mã vạch của sản
phẩm về khu vực sản xuất của sản phẩm gửi lên STM32F103C8T6. Cuối cùng
sau khi có được thông tin nơi sản xuất của sản phẩm thông qua mã QRCODE
tiến hành phân loại sản phẩm theo khu vực sản xuất khác nhau ( Miền Bắc, Miền
Trung, Miền Nam).
2.2.2. Sơ đồ khối của hệ thống

52
Hình2.22: Sơ đồ khối của hệ thống
2.3. Kết luận chương 2
Chương 2 là chương đưa ra và xác định các phương án thiết kế để tính toán là
lựa chọn thiết bị của mô hình. Đồng thời cũng thiết kế nguyên lý hoạt động của
mô hình, trình bày sơ đồ khối và sơ đồ nguyên lý của hệ thống. Để đưa ra các
thiết bị cụ thể được sử dụng trong mô hình, trong chương tiếp theo em sẽ trình
bày về phương pháp tính toán và lựa chọn thiết bị cho mô hình.

53
CHƯƠNG 3

TÍNH TOÁN THIẾT KẾ MÔ HÌNH PHÂN LOẠI SẢN PHẨM


Sơ đồ tổng thể của mô hình
Sơ đồ tổng thể của hệ thống được thể hiện qua hình 3. 1: Sơ đồ tổng thể hệ
thống. Hệ thống bao gồm: module quét mã vạch GM65 , cảm biến quang,
STM35 , băng tải, động cơ ĐC điều khiển băng tải, động cơ servo DC, các
relay trung gian, nguồn 24V,…

Hình 3. 1: Sơ đồ tổng thể hệ thống

54
3.1.Tính toán, thiết kế băng tải
3.1.1. Tính toán thông số cơ bản cho băng tải

Hình 3. 2: Hệ thống dẫn động băng tải


Hệ thống dẫn động băng tải gồm :
- Băng tải(1); Động cơ
- Lựa chọn băng dây cao su PVC cho băng tải.
- Chọn kích thước bề rộng của băng tải B = 7 mm.
- Đường kính Tang của băng tải d =25 mm.
- Chiều dài băng tải L= 850 mm.
- điện DC 24V(2).

Hình 3. 3: Hình ảnh băng tải

55
3.1.2. Thiết kế động cơ của băng tải
- Lực kéo trên băng tải F = 40(N).
- Lực kéo sản phẩm trên băng tải F = 5(N).
- Vận tốc băng tải v = 0,3 m/s.
Pt
Công suất động cơ được xác định theo công thức: Pct = η

56
Pct , Pt: là công suất cần thiết trên trục động cơ và công suất tính toán.
Giả thiết hệ dẫn động băng tải làm việc ổn định với tải trọng không đổi ta có:
- Công suất công tác:

F 1× η × v 40× 1000× 0.05


= ≈26
π ×D 3.14 × 25
Với: v = 0.3 m/s (vận tốc băng tải).
F1 = 40N (lực kéo băng tải). F2 = 5N
(lực kéo sản phẩm).
- Hiệu suất hệ dẫn động:
η = η1 . η2 . η . η
2 3 4
Trong đó:
η: hiệu suất trên toàn máy.
η1 = 0.97 : hiệu suất bộ truyền bánh răng.
η2 = 0.995 : hiệu suất của một cặp ổ bi. η3
= 0.75 : hiệu suất của băng chuyền.
η4 = 0.95 : hiệu suất của bộ truyền đai răng.
Tra bảng (2.3) trang 19 - Giáo trình “Tính toán thiết kế hệ dẫn động cơ khí” ta
được:
η1 = 0.97 ; η2 = 0.995 ; η3 = 0.75 ; η4 = 0.95
Do đó:
η = 0.97 . 0.9952 . 0.75 . 0.95 = 0.67
Vậy:

Pct 13.5
Pt =
= η 0.67 = 20.2 (W)
Tính toán tốc độ của động cơ điện một chiều
Số vòng quay của trục máy công tác nlv:
F1 × η × v 40 × 1000 × 0.05
nlv = ≈ 26 (vòng/phút)
π×D
3.14 × 25
Trong đó:
=

v = 0.05 m/s : vận tốc băng tải. D


= 25 mm : đường kính con lăn.
57
Ud: tỉ số truyền ngoài với bộ truyền đai răng. Ud = 1.5 Uh
: tỉ số truyền hộp giảm tốc Uh = 6.5
Vậy tỉ số truyền của hệ dẫn động:
U = Ud × Uh = 1.5 × 6.5 = 9.75
- Số vòng quay sơ bộ của động cơ được tính theo công thức:
n = U × nlv = 9.75 × 25 ≈ 243 (vòng/phút)
- Từ những thông số trên chọn được động cơ cho mô hình là động cơ DC
GA37-520 24V:

Hình 3. 4: Motor DC XD-60GA775

Hình 3. 5: Sơ đồ điều khiển động cơ băng tải

58
- Thông số kỹ thuật:
Bảng 2 : thông số kỹ thuật của động cơ băng tải

Điện áp cung cấp: 24V


Dòng điện tiêu thụ: 3.8A
Công suất: 35W
Tốc độ không tải: 30rpm
Momen xoắn: 19.5kgf.cm=1.9Nm
Kích thước: 130×59×59mm
Tỷ số truyền: 90
Khối lượng: 0.7kg
Đường kính motorK 42mm
Đường kính hộp giảm tốc: 59mm
Đường kính trục motor: 8mm

59
3.2.Các thiết bị khác trong hệ thống
3.2.1.GM65

Hình 3. 6: Module quét mã vạch GM65


3.1.2.1. Giới thiệu về GM65
- Mô-đun đọc mã vạch GM65 là máy đọc mã vạch hiệu suất cao có thể đọc
mã vạch 1D dễ dàng và đọc mã vạch 2D với tốc độ cao. Nó cũng có tốc độ quét
cao cho mã tuyến tính, ngay cả đối với mã vạch trên giấy hoặc màn hình.
- Mô-đun đọc mã vạch GM65 là một máy quét mã vạch tiên tiến, thuật toán
giải mã được phát triển trên thuật toán nhận dạng hình ảnh, có thể dễ dàng đọc
chính xác mã vạch.
- GM65 hoạt động ổn định trong bóng tối và dải nhiệt độ lớn.
3.1.2.2. Thông số kĩ thuật của GM65

60
Bảng 3:Các chế độ quét của GM65
Chế độ quét liên
Chế độ quét mặc định tục
Thông số : 0,1-25,5s;
Thời gian đọc 1 lần 3s
kích thước bước 0,1s.
Thông số : 0,1-25,5s;
Khoảng thời gian đọc 1s
kích thước bước 0,1s.
Đầu ra GBK
GBK, UNICODE, BIG5

USB KBW, serial port,


Giao diện USB BKW
USB VCom

Serial Baud
Rate 9600

Verification
N

Giao diện Data bit


(TTL-232 8

Stop bit
1

CTSRTS
NO

Thời gian Thông số : 0,1-25,5s;


Chế độ nối tiếp 5s
đọc 1 lần kích thước bước 0,1s.

61
Bảng 4: Thông số kĩ thuật 2 của GM65

Thông số Giá trị

Hệ thống quang học CMOS

Bước sóng ánh sáng 617nm

Nguồn sáng LED 6500K

360 độ
o Độ lệch: ± 60 °
Góc đọc o Nghiêng ± 65 °

Góc quét 34 ° (ngang) 26 ° (dọc)

Độ tương phản tối thiểu 30%

Độ phân giải ≥ 0. 1mm

Khoảng Cách đọc 25-250mm

Điện áp làm việc 4.2 – 6VDC

Dòng điện ở chế độ chờ 30mA

Dòng điện ở chế độ quét 120mA

Mức độ ánh sáng 0 – 85000 LUX

Nhiệt độ làm việc 0 – 50 độ C

Độ ẩm hoạt động 10 – 80%

Trọng lượng 40g


UPC/EAN, UPC/EAN with
supplementals, BooklandEAN, ISSN,
UCC Coupon Extended Code, Code
128, GS1-128, ISBT 128, Code 39,
Code 39 Full ASCII, Trioptic Code 39,
Hỗ trợ các loại mã vạch 1D Code 32, Code 93, Code 11, Matrix 2
of 5, Interleaved 2 of 5, Discrete 2 of 5,
Codabar, MSI, Chinese 2 of 5, GS1
DataBar variants, Korean 3 of 5, ISBT
Concat
62
Hỗ trợ các loại mã 2D QR Code, PDF417, Data Matrix

3.1.3. Động cơ Servo JGB37-520 35RPM

Hình 3.7:Động cơ Servo JGB37-520 35RPM


3.1.3.1.Thông số kĩ thuật động cơ JGB37-520 35RPM
- Động cơ DC giảm tốc JGB37-520 DC Geared Motor có cấu tạo bằng kim
loại cho độ bền và độ ổn định cao, được sử dụng trong các mô hình robot, xe,
thuyền,..., hộp giảm tốc của động cơ có nhiều tỉ số truyền giúp bạn dễ dàng lựa
chọn giữa lực kéo và tốc độ (lực kéo càng lớn thì tốc độ càng chậm và ngược
lại), động cơ sử dụng nguyên liệu chất lượng cao (lõi dây đồng nguyên chất, lá
thép 407, vòng tiếp xúc niken, nam châm từ tính mạnh,...) cho sức mạnh và độ
bền vượt trội hơn các loại giá rẻ trên thị trường hiện nay (sử dụng lõi dây nhôm,
nam châm từ tính yếu).
3.1.3.2.Thông số kỹ thuật động cơ Servo JGB37-520 35RPM
 Tỉ số truyền 270:1 (động cơ quay 270 vòng trục chính hộp giảm tốc quay 1
vòng).
 Dòng không tải: 120mA
 Dòng chịu đựng tối đa khi có tải: 1A
 Tốc độ không tải: 35RPM (35 vòng 1 phút)
 Tốc độ chịu đựng tối đa khi có tải: 28RPM (28 vòng 1 phút)
 Lực kéo Moment định mức: 30KG.CM
 Lực léo Moment tối đa: 35KG.CM
 Chiều dài hộp số L: 26.5mm

63
 Số xung Encoder mỗi kênh trên 1 vòng quay trục chính: 11 x 270 = 2970
xung.

64
3.1.4. Module Relay 5V

Hình 3. 8: Relay 5V
3.1.4.1.Khái niệm Relay
- Relay trung gian có chức năng chuyển mạch tín hiệu điều khiển hoặc làm
nhiệm vụ khuếch đại. Trong sơ đồ điều khiển, relay trung gian thông thường
được lắp đặt ở vị trí trung gian. Nó nằm giữa những thiết bị điều khiển công suất
nhỏ và những thiết bị có công suất lớn hơn. làm cầu nối giữa module điều khiển
và các thiết bị đóng cắt động lực.
- Relay trung gian thường được sử dụng chịu tải trung gian cho các cảm
biến, làm các mạch tự giữ, on off, với thiết kế có nhiều tiếp điểm nhờ đó mà ta
có thể chỉ cần sử dụng một tín hiệu có thể điều khiển được nhiểu thiết bị cùng
một lúc.
- Relay trung gian cũng là thiết bị bảo vệ cho các thiết bị báo mức on off,
thay vì sủ dụng ngõ ra các cảm biến để kích van hay đèn… thì thông qua relay
trung gian nó sẽ giúp cảm biến được cách ly hoàn toàn, nếu có sự cố quá tải thì
chỉ hư các tiếp điểm relay trung gian.
3.1.4.2.Giới thiệu về modun Relay 5V
- Module sử dụng Relay 5V, đảm bảo hoạt động ổn định, lâu dài.
- Trên module có opto để cách ly dòng ngược về, hiệu suất ổn định.
- Có thể set các mức cao thấp bằng cách thiết lập jumper trên module.
- Có Led báo nguồn màu xanh, Led báo trạng thái Relay màu đỏ.
- Kết nối module với mạch điều khiển đơn giản.
3.1.4.3.Thông số kĩ thuật của module Relay 5V

65
Bảng 5: Thông số kĩ thuật của module Relay 5V

Thông số Giá trị

Điện áp tải tối đa AC 250V-10A / DC 30V-10A

Điện áp điều khiển 5 VDC

Dòng kích Relay 5mA

Trạng thái kích Mức thấp (0V)

Đường kính Lỗ ốc 3.1 mm

Kích thước 50 × 26 × 18.5 mm

3.1.5. STM32F103C8T6

Hình 3. 9: STM32F103C8T6
3.1.5.1. Giới thiệu về STM32F103C8T6
Bo mạch STM32F103C8T6 blue-pill có lõi ARM 32-bit Cortex-M3 RISC với
bộ dao động bên trong 4 -16 MHz. Nó là một chip công nghệ flash CMOS. Chip
này có 37 chân GPIO và 10 chân Analog. Nó có một số giao thức giao tiếp hiện
đại như CAN và USB.

66
Các thiết bị ngoại vi cung cấp khả năng điều khiển vượt trội bo mạch vì nó
hoạt động với điện áp rất thấp, vì vậy nó phù hợp cho các ứng dụng công suất
thấp. Nó có một bộ watchdog và window watchdog timer để bo mạch vận hành
chính xác các dòng lệnh.
3.1.5.2.Thông số kĩ thuật của kít STM32F103C8T6

 Vi điều khiển: STM32F103C8T6


 Số pin: 48
 Kernel: Cortex-M3
 Tần số hoạt động: 72Mhz
 Bộ nhớ: 64K Byte Flash, 20K Byte SRAM
 Giao tiếp: 2xSPI, 3x UART, 2x I2C, 37 port I/O
 Chuyển đổi ADC: 2x ADC
 Nguồn cấp: 5VDC qua micro USB, được chuyển thành 3.3VDC qua IC nguồn
cấp cho vi điều khiển chính.
 Kích thước: 2,3cm x 5,5cm
 KIT STM32F103C8T6 sử dụng mạch nạp: ST-Link mini, J-Link, USB-TO-
COM

3.1.5.3.Sơ đồ chân kit STM32F103C8T6

Hình 3. 10: Sơ đồ chân kit STM32F103C8T

67
3.1.6. Nút nhấn

Hình 3. 11: Nút nhấn tự giữ


- Định nghĩa : nút nhấn có tác dụng để người dùng tương tác vào để đóng
hoặc mở mạch điện của thiết bị nhằm đưa nó chế độ hoạt động theo một mục
đích nào đó
- Nút nhấn tự giữ thường được sử dụng như một nút nguồn, công tắc chức
năng trong các thiết bị như các hệ thống tủ điện điều khiển trong công nghiệp
như hệ thống chiếu sáng, bơm, quạt, máy nén,...
Nguyên lý hoạt động: Khi nhấn vào đầu nút nhấn tiếp điểm điểm đóng lại hoặc
mở ra tùy vào loại thường mở hay thường đóng, khi tay thả tay ra thì cơ cấu tự
giữ của nút nhấn được gài lại nhờ vào đó mà tiếp điểm giữ được trạng thái khi
buông tay. Khi muốn thay đổi trạng thái nút nhấn ta tiếp tục nhấn vào nút nhấn
thêm lần nữa lúc này cơ cấu gài được mở ra lò xo bên trong bung ra làm nút nhấn
ra trở về vị trí ban đầu.
⇒ Tóm lại thì nút nhấn kiểu này đơn giản là một công tắc với nhấn lần 1 thì đóng
công tắc và nhấn lần 2 thì công tắc mở ra với loại tiếp tiếp điểm thường mở
(NO), và ngược lại với loại tiếp điểm thường đóng (NC).
Ứng dụng: Tắt mở máy, đường dây điện... Nếu muốn có thời gian tác động lâu
hơn theo ý muốn, bạn sẽ dùng loại nút nhấn tự giữ.

68
3.2.Mạch nguồn tổ ong 12V 150W 12.5A
3.2.1.Giới thiệu về mạch nguồn tổ ong watashi 12v

Hình 3. 12: Nút nhấn tự giữ

+ Nguồn tổ ong 12V 12.5A 150W: là thiêt bị cần thiết để sử dụng cung cấp
nguồn cho thiết bị: Đèn led dây 12V, camera giám sát, loa đài, máy tính…, Sở
dĩ gọi là Nguồn tổ ong vì cấu trúc và hình dạng giống như tổ ong. Với chức
năng chính là bộ chuyển đổi nguồn điện từ 220V xoay chiều sang dòng điện
12v một chiều an toàn, phục vụ cho sản phẩm trang trí sử dụng nguồn DC 12V
tiêu biểu như Đèn Led dây 12V.
+ Rất an toàn và nhiều chế độ bảo vệ: Bảo vệ quá áp, Bảo vệ ngắn mạch, Bảo
vệ quá tải.
+ Sản phẩm đạt tiêu chuẩn an toàn cấp III và được kiểm tra chứng chỉ chất
lượng CQC, CB, EMC, CE, RoHS 2.0.
3.2.2.Thông số kĩ thuật :
+ Tên gọi: Nguồn tổ ong 12V 12.5A 100W
+ Điện áp đầu vào: Điện lưới 110-240V AC
+ Điện áp đầu ra: 12V DC (Một chiều)
+ Dòng điện đầu ra: 12.5A (Max)
+ Công suất: 150W (Max)
+ Chức năng bảo vệ: Quá dòng, Quá áp, Quá tải
69
+ Nhiệt độ làm việc: -10 tới 50 độ
+ Chất Liệu: Mạch đồng, vỏ nhôm sơn cách điện
+ Kích thước: R18xC18xD310
+ Tiêu chuẩn an toàn: Class III
+ Chứng chỉ chất lượng: CQC, CB, EMC, CE, RoHS 2.0

3.2.3.Cách lắp đặt

Hình 3.13: Nút nhấn tự giữ

3.2.4.Mạch tăng áp DC - DC 12V-35V 400W

70
Hình 3.14: mạch tăng áp DC-DC 12V-35V 400W
thường được sử dụng trong các mạch chuyển đổi nguồn DC - DC, sử dụng
trong các mạch điện tử tăng điện áp thấp lên điện áp cao. Ứng dụng trong sạc
pin, sạc ắc quy,…Module tăng áp này còn được ứng dụng trong các mô hình
ổn áp từ những động cơ phát điện mini, pin năng lượng mặt trời sử dụng cho
thắp sáng đèn led, sạc ắc quy,…
3.2.4.Thông số kỹ thuật

- Điện áp ngõ vào IN:8.5 - 50V


- Dòng điện đầu vào : 15A ( MAX) - Trên 8A cần tăng cường thêm tản
nhiệt.
- Điện áp ngõ ra OUT:12-60V
- Dòng điện đầu ra : 12A ( MAX) - Trên 7A cần tăng cường thêm tản nhiệt.
( Đầu vào và ra có ký hiệu trên mạch in)
- Điện áp được điều chỉnh bằng biến trở VR1
- Dòng điện tối đa được điều chỉnh bằng biến trở VR2
- Dòng tiêu thụ không tải ( 25mA)

71
- Nhiệt độ hoạt động tối đa :85 độ C
3.2. Mạch nguồn 5v

Hình 3.15: Sơ đồ nguyên lý mạch nguồn 5V


 Chức năng các linh kiện trong mạch
- LM2576: LM2576 là bộ điều chỉnh điện áp hạ áp chế độ chuyển
mạch (Buck Converter) có thể cung cấp điện áp đầu ra cố định 5V.
- Tụ C1, C2 dùng để duy trì sự ổn định điện áp đầu vào.
- Cuộn cảm L1 làm phẳng dạng sóng dòng điện đầu ra, làm dòng ra ổn
định và tránh sụt dòng trên tải.
- Diode D1: diode chỉnh lưu
- Tụ C3, C4, C5 dùng để ổn định điện áp đầu ra, xén điện áp vượt
ngưỡng và tránh sụt áp trên tải. Độ gợn điện áp ra càng thấp, độ ổn định càng
cao.
- LED1, LED2: báo điện áp đầu vào và đầu ra.
- Cầu chì để bảo vệ mạch.
3.3. Mạch cầu H BTS7960 43A IBT-2 (H05)

72
Hình 3.16 Mạch cầu H BTS7960 43A IBT-2 (H05)

 Nguồn cấp : 6 ~ 27VDC.


 Dòng tải tối đa : 43A.
 Tín hiệu logic điều khiển: 3.3 ~ 5V.
 Tần số điều khiển tối đa: 25KHz.
 Tự động shutdown khi sụt áp : để tránh điều khiển động cơ ở mức điện
áp thấp thiết bị sẽ tự shutdown. Nếu điện áp < 5.5V, driver sẽ tự ngắt
điện và sẽ mở lại sau khi điện áp > 5.5V.
 Bảo vệ quá nhiệt : BTS7960 bảo vệ chống quá nhiệt bằng cảm biến
nhiệt tích hợp bên trong. Đầu ra sẽ bị ngắt khi có hiện tượng quá nhiệt.
 Kích thước: 40 x 50 x12mm.
3.4. Mạch tổng

Hình 3.17:mạch tổng

73
Hình 3.18: Mô hình sau khi hoàn thành

CHƯƠNG 4

LẬP TRÌNH ĐIỀU KHIỂN HỆ THỐNG


4.1.Thuật toán chương trình
/* USER CODE BEGIN Header */
/**
**************************************************************
****************
* @file : main.c
* @brief : Main program body
**************************************************************
****************
* @attention

74
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE
file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
**************************************************************
****************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"

/* Private includes ----------------------------------------------------------*/


/* USER CODE BEGIN Includes */
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
#include "string.h"

#include "ILI9341_STM32_Driver.h"
#include "ILI9341_GFX.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/

75
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/


/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/


/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/


SPI_HandleTypeDef hspi1;
DMA_HandleTypeDef hdma_spi1_tx;

TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2;

UART_HandleTypeDef huart2;

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/


76
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_TIM1_Init(void);
static void MX_TIM2_Init(void);
static void MX_USART2_UART_Init(void);
static void MX_SPI1_Init(void);
/* USER CODE BEGIN PFP */
volatile short xung;
int32_t time , last_time_PID , last_time_hang , i_error , d_error , time_test , m
; // code NCKH 2024
uint16_t mb = 0 , mt = 0 , mn = 0 , hang_loi = 0 ;
int8_t dcb_1 , dcb_2 , dcb_3 , dcb_4 , bt1 = 1 , bt2 = 1 , bt3 = 1 , bt4 = 1 ,
T_B, T_T, T_N , button_dc_tang, button_dc_giam , bt_dc_tang = 0 ,
bt_dc_giam = 0;
int8_t dc ;
int8_t a , b , c , d , b_1 , c_1, d_1 ;
uint8_t check_mb , check_mt, check_mn;
float PWM;
float kp = 1 , ki = 0.0091111, kd = 1, error , last_error;
//kp = 1 , ki = 0.009111, kd = 1
char QR[6] , last_QR[6];
char LCD[10];
/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/


/* USER CODE BEGIN 0 */

void PID()
77
{
last_error = error;
error = dc - xung;
i_error += error;
d_error = error - last_error;
last_error = error ;
PWM = dc + (kp * error + ki * i_error + kd * d_error) ;
if(PWM >= 1503)
{
PWM = 1503;
}
if(PWM <= -1503)
{
PWM = -1503;
}
}
void quay()
{
if(PWM > 0)
{
(&htim1)->Instance->CCR2 = 0 ;
(&htim1)->Instance->CCR1 = PWM;

if(PWM < 0)
{
(&htim1)->Instance->CCR1 = 0 ;
78
(&htim1)->Instance->CCR2 = -PWM;
}
if(PWM == 0)
{
(&htim1)->Instance->CCR1 = 0;
(&htim1)->Instance->CCR2 = 0;
}
}

void ktra()
{
dcb_1 = GPIOB->IDR >> 12 & 1, dcb_2 = GPIOB->IDR >> 13 & 1;
dcb_3 = GPIOB->IDR >> 14 & 1, dcb_4 = GPIOB->IDR >> 15 & 1;
if (dcb_1 != bt1)
{
if (dcb_1 == 0)
{
a++;
}
bt1 = dcb_1;
}

if (dcb_2 != bt2)
{
if (dcb_2 == 0)
{
b++;
}
79
bt2 = dcb_2;
}

if (dcb_3 != bt3)
{
if (dcb_3 == 0)
{
c++;
}
bt3 = dcb_3;
}

if (dcb_4 != bt4)
{
if (dcb_4 == 0)
{
d++;
}
bt4 = dcb_4;
}

}
/* USER CODE END 0 */

/**
* @brief The application entry point.
* @retval int
*/
80
int main(void)
{

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */


SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */


MX_GPIO_Init();
MX_DMA_Init();
MX_TIM1_Init();
MX_TIM2_Init();
81
MX_USART2_UART_Init();
MX_SPI1_Init();
/* USER CODE BEGIN 2 */

ILI9341_Init();
HAL_UART_Receive_IT(&huart2, (uint8_t*)QR, sizeof(QR)); // tx
truyen , rx nhan
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
HAL_TIM_Encoder_Start(&htim2, TIM_CHANNEL_1);
HAL_TIM_Encoder_Start(&htim2, TIM_CHANNEL_2);
ILI9341_SetRotation(SCREEN_HORIZONTAL_2); // xoay ngang man
hinh , ngang x , doc y
ILI9341_FillScreen(0x07e0);
// for(uint16_t i = 0 ; i < 321 ; i++)
// {
// for(uint16_t h = 0 ; h < 240 ; h++)
// {
// ILI9341_DrawPixel(i, h, 0x001F);
// }
//
// }

ILI9341_DrawText("Hang Mien Bac: ", FONT4, 40, 12 ,0x001F,0x07E0);


sprintf(LCD,"%d ",mb);
ILI9341_DrawText(LCD, FONT4, 200, 12, 0x001F,0x07e0);
ILI9341_DrawHLine(10, 32, 300, 0x0000);

82
ILI9341_DrawText("Hang Mien Trung: ", FONT4, 40, 42,0x001F,0x07e0);
sprintf(LCD,"%d ",mt);
ILI9341_DrawText(LCD, FONT4, 200, 40, 0x001F,0x07E0);
ILI9341_DrawHLine(10, 62, 300, 0x0000);

ILI9341_DrawText("Hang Mien Nam: ", FONT4, 40, 72,0x001F,0x07E0);


sprintf(LCD,"%d ",mn);
ILI9341_DrawText(LCD, FONT4, 200, 70, 0x001F,0x07E0);
ILI9341_DrawHLine(10, 92, 300, 0x0000);

ILI9341_DrawText("Hang bi loi: ", FONT4, 40, 102,0xf800,0x07E0);


sprintf(LCD,"%d ",hang_loi);
ILI9341_DrawText(LCD, FONT4, 200, 100, 0xf800,0x07E0);
ILI9341_DrawHollowRectangleCoord(9, 95, 290, 125, 0xf800);

ILI9341_DrawText("TONG HANG: ", FONT4, 40, 142,0x001f,0x07E0);

ILI9341_DrawText("TD Motor: ", FONT4, 40, 172,0x001F,0x07E0);

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
83
while (1)
{
time = HAL_GetTick();

if ( time - last_time_PID >= 10)


{

xung = ((&htim2)->Instance->CNT);
(&htim2)->Instance->CNT = 0 ;
last_time_PID = time;
}
ktra();

if (b_1 == b && dcb_2 == 0 && T_B == 5)


{
GPIOB->ODR |= 1<<3;
last_time_hang = time;
T_B = 0;
}

if (c_1 == c && dcb_3 == 0 && T_T == 6)


{
GPIOB->ODR |= 1<<4;
last_time_hang = time;
T_T = 0;
}

if (d_1 == d && dcb_4 == 0 && T_N == 7)


84
{
GPIOB->ODR |= 1<<5;
last_time_hang = time;
T_N = 0;
}
GPIOB->ODR |= 1<<5;

if (time - last_time_hang >= 800)


{
GPIOB->ODR &= ~(1<<3);
GPIOB->ODR &= ~(1<<4);
GPIOB->ODR &= ~(1<<5);
}

button_dc_tang = GPIOB->IDR >> 11 & 1 , button_dc_giam = GPIOB-


>IDR >> 10 & 1;
if(button_dc_tang != bt_dc_tang)
{
if(button_dc_tang == 1)
{
dc++;
if(dc >= 30)
{
dc = 30;
}
}

85
bt_dc_tang = button_dc_tang;
}
if(button_dc_giam != bt_dc_giam)
{
if(button_dc_giam == 1)
{
dc--;
if(dc <= 0)
{
dc = 0;
}
}
bt_dc_giam = button_dc_giam;
}

if(mb - check_mb == 1)
{
sprintf(LCD,"%d ",mb);
ILI9341_DrawText(LCD, FONT4, 200, 12, 0x07E0,0x07E0);
ILI9341_DrawText(LCD, FONT4, 200, 12, 0x001F,0x07E0);
check_mb = mb;

}
if(mt - check_mt == 1)
{

sprintf(LCD,"%d ",mt);
86
ILI9341_DrawText(LCD, FONT4, 200, 40, 0x07E0,0x07E0);
ILI9341_DrawText(LCD, FONT4, 200, 40, 0x001F,0x07E0);
check_mt = mt ;
}
if(mn - check_mn == 1)
{
sprintf(LCD,"%d ",mn);
ILI9341_DrawText(LCD, FONT4, 200, 70, 0x07E0,0x07E0);
ILI9341_DrawText(LCD, FONT4, 200, 70, 0x001F,0x07E0);
check_mn = mn;
}

PID();
quay();

GPIOC->ODR |= GPIO_PIN_13;
m = time - time_test;
time_test = time;

// GPIOC->ODR &= ~(1<<13);


// GPIOC->ODR |= 1<<13;

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */


87
}
/* USER CODE END 3 */
}

/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

/** Initializes the RCC Oscillators according to the specified parameters


* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}

88
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|
RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|
RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) !
= HAL_OK)
{
Error_Handler();
}
}

/**
* @brief SPI1 Initialization Function
* @param None
* @retval None
*/
static void MX_SPI1_Init(void)
{

/* USER CODE BEGIN SPI1_Init 0 */

/* USER CODE END SPI1_Init 0 */


89
/* USER CODE BEGIN SPI1_Init 1 */

/* USER CODE END SPI1_Init 1 */


/* SPI1 parameter configuration*/
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 10;
if (HAL_SPI_Init(&hspi1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN SPI1_Init 2 */

/* USER CODE END SPI1_Init 2 */

/**
90
* @brief TIM1 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM1_Init(void)
{

/* USER CODE BEGIN TIM1_Init 0 */

/* USER CODE END TIM1_Init 0 */

TIM_MasterConfigTypeDef sMasterConfig = {0};


TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};

/* USER CODE BEGIN TIM1_Init 1 */

/* USER CODE END TIM1_Init 1 */


htim1.Instance = TIM1;
htim1.Init.Prescaler = 79;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 1503;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload =
TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{

91
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode =
TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) !
= HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC,
TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC,
TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
92
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput =
TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1,
&sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */

/* USER CODE END TIM1_Init 2 */


HAL_TIM_MspPostInit(&htim1);

/**
* @brief TIM2 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM2_Init(void)
{

/* USER CODE BEGIN TIM2_Init 0 */

93
/* USER CODE END TIM2_Init 0 */

TIM_Encoder_InitTypeDef sConfig = {0};


TIM_MasterConfigTypeDef sMasterConfig = {0};

/* USER CODE BEGIN TIM2_Init 1 */

/* USER CODE END TIM2_Init 1 */


htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 0xFFFF;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.AutoReloadPreload =
TIM_AUTORELOAD_PRELOAD_DISABLE;
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
sConfig.IC1Polarity = TIM_ICPOLARITY_FALLING;
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
sConfig.IC1Filter = 0;
sConfig.IC2Polarity = TIM_ICPOLARITY_FALLING;
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
sConfig.IC2Filter = 0;
if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK)
{
Error_Handler();
}

94
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode =
TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) !
= HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM2_Init 2 */

/* USER CODE END TIM2_Init 2 */

/**
* @brief USART2 Initialization Function
* @param None
* @retval None
*/
static void MX_USART2_UART_Init(void)
{

/* USER CODE BEGIN USART2_Init 0 */

/* USER CODE END USART2_Init 0 */

/* USER CODE BEGIN USART2_Init 1 */

95
/* USER CODE END USART2_Init 1 */
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART2_Init 2 */

/* USER CODE END USART2_Init 2 */

/**
* Enable DMA controller clock
*/
static void MX_DMA_Init(void)
{

/* DMA controller clock enable */


__HAL_RCC_DMA1_CLK_ENABLE();

96
/* DMA interrupt init */
/* DMA1_Channel3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);

/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */

/* GPIO Ports Clock Enable */


__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();

/*Configure GPIO pin Output Level */


HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);

/*Configure GPIO pin Output Level */


97
HAL_GPIO_WritePin(GPIOA, LCD_CS_Pin|LDC_RST_Pin,
GPIO_PIN_SET);

/*Configure GPIO pin Output Level */


HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin,
GPIO_PIN_SET);

/*Configure GPIO pin Output Level */


HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5,
GPIO_PIN_RESET);

/*Configure GPIO pin : PC13 */


GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

/*Configure GPIO pins : LCD_CS_Pin LDC_RST_Pin */


GPIO_InitStruct.Pin = LCD_CS_Pin|LDC_RST_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

/*Configure GPIO pin : LCD_DC_Pin */


GPIO_InitStruct.Pin = LCD_DC_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
98
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LCD_DC_GPIO_Port, &GPIO_InitStruct);

/*Configure GPIO pins : PB10 PB11 */


GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

/*Configure GPIO pins : PB12 PB13 PB14 PB15 */


GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|
GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

/*Configure GPIO pins : PB3 PB4 PB5 */


GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

/* USER CODE BEGIN MX_GPIO_Init_2 */


/* USER CODE END MX_GPIO_Init_2 */
}

/* USER CODE BEGIN 4 */

99
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == huart2.Instance)
{
HAL_UART_Receive_IT(&huart2, (uint8_t*)QR , sizeof(QR));
if(QR[1] != last_QR[1] || QR[3] != last_QR[3] || QR[4] != last_QR[4])
{

if(QR[1] == 66 ) // mien bac


{
mb++;
b_1++;
T_B = 5;

}
if(QR[1] == 84) // mien trung
{
mt++;
b--;
c_1++;
T_T = 6;
}
if(QR[1] == 78)// mien nam
{
mn++;
b--;
c--;
d_1++;
100
T_N = 7;
}
if(QR[1] != 66 && QR[1] != 84 && QR[1] != 78)// hang loai
{
b_1++;
c_1++;
d_1++;
}
for(int i = 0 ; i<6 ; i++)
{
last_QR[i] = QR[i];
}
}

GPIOC->ODR &= ~GPIO_PIN_13;


// GPIOC->ODR &= ~(1<<13);
// GPIOC->ODR |= 1<<13;
}
}
/* USER CODE END 4 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */

101
/* User can add his own implementation to report the HAL error return state
*/
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */
}

#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line
number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

102
4.2.Kết luận và hướng phát triển đề tài
4.2.1Kết luận
Sau thời gian nghiên cứu làm đồ án tốt nghiệp, em đã gặp rất nhiều khó khăn
trong việc vận dụng những kiến thức đã học được vào quá trình áp dụng thực
tiễn để trở nên hợp lý. Qua quá trình thực hiện với thời gian có hạn và gặp
nhiều khó khăn, em đã thiết kế thành công mô hình phân loại sản phẩm theo
mã QRCODE sử dụng STM32F103C8T6 đáp ứng đầy đủ các yêu cầu đề ra.

Hình 4.1: Mô hình sản phẩm


Đánh giá kết quả đạt được:
Kết quả đạt được khi vận hành mô hình là:
Mô hình hoạt động ổn định không bị sự cố kỹ thuật trong quá trình vận hành.
Hệ thống phân loại được 10 – 15 sản phẩm / phút.
Tỉ lệ phân loại lỗi 2%(1 /50 sản phẩm).
Theo kết quả đánh giá thực tế khi vận hành, thử nghiệm mô hình em nhận thấy
có một vài nhược điểm cần được khắc phục như sau:
Tốc độ phân loại còn chậm.

103
Tỉ lệ lỗi của hệ thống còn khá cao.
Hệ thống dễ bị ảnh hưởng bởi các yếu tố bên ngoài gây ảnh hưởng tới kết quả.

104
4.2.2 Hướng phát triển của đề tài
Phân loại sản phẩm là xu hướng của các ngành công nghiệp nên tìm ra một giải
pháp phân loại luôn là vấn đề được đề cập đến. Trong tương lại em muốn hướng
tới phương pháp này sẽ được ứng dụng rộng rãi trong các xí nghiệp, doanh
nghiệp. Đồng thời em sẽ cải thiện hệ thống để hệ thống hoạt động ổn định hơn
trong môi trường công nghiệp:
Cho ra mô hình ứng dụng thực tế.
Thiết kế thêm tay gắp bỏ sản phẩm lên băng tải, thay thế cho công nhân bỏ vào
thủ công như từ trước tới giờ.
Sử dụng PLC thay thế cho arduino nhằm hạn chế xung nhiễu tốt hơn. Thay thế
các sensor công nghiệp có độ chính xác và ổn định hơn.
Làm thêm hệ thống giám sát để thuận tiện trong quá trình giám sát vận hành dây
chuyền.

105
106

You might also like