Đề tài “Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc” là mô hình sử dụng xử lý ảnh kiểm tra lỗi vỉ thuốc theo kích thước, hình dạng và màu sắc vàng, hồng, trắng, đỏ, nâu,
Trang 1i
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
-
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH
HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC
SVTH:
Nguyễn Hoàng Thông-13141347
Lê Minh Phúc-14141234
Tp Hồ Chí Minh - 1/2020
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
-
ĐỒ ÁN TỐT NGHIỆP
NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH
HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC
GVHD: PGS.TS Nguyễn Thanh Hải SVTH:
Nguyễn Hoàng Thông-13141347
Lê Minh Phúc-14141234
Tp Hồ Chí Minh - 1/2020
Trang 3Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH HỆ THỐNG KIỂM
TRA LỖI VỈ THUỐC
II NHIỆM VỤ
1 Các số liệu ban đầu:
- Sử dụng board Arduino Uno R3 để thực hiện điều khiển làm bộ xử lý trung
tâm
- Sử dụng Webcam Logitech C270p để thu nhận ảnh
- Kiểm tra 7 loại vỉ thuốc với hình dạng, kích thước, màu sắc và số lượng viên
thuốc khác nhau
- Mô hình băng tải loại bỏ được vỉ thuốc lỗi và có báo hiệu khi phát hiện lỗi
2 Nội dung thực hiện:
- Nghiên cứu về board Arduino Uno R3
- Tìm hiểu về các module camera
- Tiến hành thiết kế mô hình băng tải bảo đảm ánh sáng, màu sắc, diện tích
- Tiến hành thi công lắp ráp hệ thống
- Lập trình kết nối điều khiển
- Chạy thử nghiệm hệ thống
- Cân chỉnh và hoàn thiện hệ thống
- Viết báo cáo
- Báo cáo đề tài tốt nghiệp
III NGÀY GIAO NHIỆM VỤ: 10/10/2019
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 07/01/2020
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Nguyễn Thanh Hải
CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 4BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y
Tuần 12,13
(04/11 – 16/11)
Lập trình xử lý ảnh kiểm tra lỗi, lập trình điều khiển Servo,đèn và chuông cảnh báo hoạt động
Trang 6Đề tài này là do nhóm đồ án tự thực hiện dựa vào một số tài liệu và công trình nghiên cứu, không sao chép từ tài liệu hay công trình đã có trước đó Nếu có sao chép nhóm đồ án hoàn toàn chịu trách nhiệm
Tp Hồ Chí Minh, ngày 25 tháng 12 năm 2019 Sinh viên thực hiện đề tài 1: Sinh viên thực hiện đề tài 2:
Nguyễn Hoàng Thông Lê Minh Phúc
Trang 7vi
LỜI CẢM ƠN
“Uống nước nhớ nguồn, ăn quả nhớ kẻ trồng cây” là truyền thống mang giá trị nhân văn vô cùng quý báu mà từ xưa đến nay ông cha ta đã răng dạy và gìn giữ cho đến tận ngày hôm nay Chính vì lẽ đó mà nhóm nghiên cứu luôn luôn vô cùng tỏ lòng biết ơn chân thành đến tất cả mọi người đã giúp đỡ nhóm tận tình trong thời gian qua
để hoàn thành tốt đề tài đồ án tốt nghiệp “Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc” Và điều vô cùng đặc biệt hơn mà không thể không nhắc đến
đó là sự hướng dẫn vô cùng tận tình của Thầy PGS.TS Nguyễn Thanh Hải và các Thầy Cô trong bộ môn Điện Tử Công Nghiệp – Y Sinh, Khoa Điện-Điện Tử đã giúp
đỡ hết sức nhiệt tình nhóm trong suốt quá trình nghiên cứu và hoàn thành đề tài được giao Quả đúng với câu “Không Thầy đố mày làm nên” Vì thế, trong lời đầu tiên của cuốn báo cáo đồ án tốt nghiệp này, nhóm muốn dành lời cảm ơn chân thành sâu sắc đến Thầy PGS.TS Nguyễn Thanh Hải và các Thầy Cô trong bộ môn Điện Tử Công Nghiệp – Y Sinh, khoa Điện-Điện Tử của Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chính Minh Đồng thời nhóm nghiên cứu cũng thể hiện sự biết ơn đối với
các bạn cùng lớp đã góp ý kiến xây dựng đề tài được hoàn thiện hơn Không thể quên
được, nhóm nghiên cứu xin gửi lời cảm ơn đến những đấng sinh thành dưỡng dục đã luôn hỗ trợ, động viên và cũng là niềm động lực lớn lao để nhóm có thể hoàn thành
Một lần nữa, xin chân thành cảm ơn!
Sinh viên thực hiện 1 Sinh viên thực hiện 2
Nguyễn Hoàng Thông Lê Minh Phúc
Trang 8TRANG BÌA Error! Bookmark not defined.
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii
LỜI CAM ĐOAN v
LỜI CẢM ƠN vi
MỤC LỤC vii
LIỆT KÊ HÌNH VẼ x
LIỆT KÊ BẢNG VẼ xiii
TÓM TẮT xiv
Chương 1: TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 2
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN CỦA ĐỀ TÀI 3
1.5 BỐ CỤC 3
Chương 2: CỞ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH 4
2.2 KHÔNG GIAN MÀU CỦA ẢNH 6
2.2.1 Không gian màu RGB 7
2.2.2 Không gian màu HSV 8
2.2.3 Chuyển đổi RGB sang HSV 9
2.3 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH 10
2.3.1 Điểm ảnh 10
2.3.2 Ảnh số 11
2.3.3 Phân loại ảnh 11
2.3.4 Quan hệ giữa các điểm ảnh 11
2.3.5 Chuyển đổi ảnh màu sang ảnh xám 12
2.3.6 Nhị phân hóa ảnh 13
2.3.7 Lọc nhiễu 14
2.3.8 Phương pháp phát hiện biên 14
2.3.9 Phân đoạn ảnh 15
Chương 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG 16
3.1 THIẾT KẾ PHẦN CỨNG 16
3.1.1 Khối thu nhận ảnh 17
Trang 9viii
3.1.2 Khối điều khiển 17
3.1.3 Khối chấp hành 20
a Mô tả động cơ DC 20
b Mô tả động cơ Servo 20
c Mô tả Module Relay 4 kênh 21
d Mô tả Buzzer: 22
e Mô tả đèn báo hiệu: 22
3.1.4 Khối nguồn 23
a Nguồn cấp cho động cơ DC, đèn báo 24VDC 23
b Nguồn cấp cho Arduino Uno R3 24
c Nguồn cấp cho động cơ Servo, Module Relay 5VDC 24
3.2 SƠ ĐỒ KẾT NỐI HỆ THỐNG 25
3.3 NGUYÊN LÝ HOẠT ĐỘNG 26
Chương 4: THI CÔNG HỆ THỐNG 27
4.1 GIỚI THIỆU 27
4.2 THI CÔNG HỆ THỐNG 27
4.2.1 Thiết kế giao diện 27
4.2.2 Thi công mô hình 28
4.3 LƯU ĐỒ GIẢI THUẬT HỆ THỐNG 33
4.3.1 Lưu đồ tìm và nhận dạng vỉ thuốc 34
a Tiền xử lý ảnh 35
b Nhị phân hóa ảnh 37
c Lưu đồ tìm vỉ thuốc 38
d Giới thiệu hàm regionprops 39
e Lưu đồ nhận dạng vỉ thuốc 41
f Bộ chuyển đổi RGB sang HSV 42
g Phân ngưỡng 43
4.3.2 Lưu đồ giải thuật kiểm tra lỗi vỉ thuốc 46
4.4 TÀI LIỆU HƯỚNG DẪN THAO TÁC 47
Chương 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 49
5.1 KẾT QUẢ TỔNG QUAN 49
5.2 KẾT QUẢ ĐẠT ĐƯỢC 49
5.2.1 Giao diện chương trình 49
5.2.2 Kết quả mô hình hệ thống thực tế 50
5.2.3 Kết quả kiểm tra 50
5.2.4 Kết quả mô hình hệ thống hoạt động 51
Trang 105.3 NHẬN XÉT VÀ ĐÁNH GIÁ 56
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57
6.1 KẾT LUẬN 57
6.2 HƯỚNG PHÁT TRIỂN 57
TÀI LIỆU THAM KHẢO PHỤ LỤC
Trang 11LIỆT KÊ HÌNH VẼ
Hình 2.1:Các bước cơ bản trong xử lý ảnh [4] 5
Hình 2.2:Không gian màu RGB [3] 7
Hình 2.3:Hệ tọa độ màu RGB [3] 8
Hình 2.4:Không gian màu HSV [3] 9
Hình 2.5: Các lân cận ảnh [1] 11
Hình 2.6:Chuyển ảnh màu thành ảnh xám [1] 13
Hình 2.7:Lược đồ xám [1] 13
Hình 2.8:Ảnh xám và ảnh nhị phân [1] 14
Hình 2.9:Hình tách biên 14
Hình 3.1: Sơ đồ khối của hệ thống phân loại lỗi vỉ thuốc 16
Hình 3.2: Webcam Logitech C270p 17
Hình 3.3: Mặt trước và mặt sau của board Arduino UNO R3 18
Hình 3.4: Động cơ DC 20
Hình 3.5: Động cơ RC Servo MG996R 20
Hình 3.6: Kích thước động cơ RC Servo MG996R 21
Hình 3.7: Module Relay 4 kênh 21
Hình 3.8: Buzzer 22
Hình 3.9: Đèn báo hiệu 22
Hình 3.10: Nguồn tổ ong 24V – 5A 23
Hình 3.11: Cáp nối USB Tybe B 24
Hình 3.12: Sơ đồ nguyên lý mạch hạ áp LM2596 24
Hình 3.13: Hình ảnh thực tế mạch hạ áp LM2596 24
Hình 3.14: Sơ đồ kết nối hệ thống 25
Hình 4.1: Giao diện chương trình 28
Hình 4.2: Vị trí đặt Webcam Logitech C270p 29
Hình 4.3: Vị trí đặt động cơ Servo 1 29
Hình 4.4: Vị trí đặt động cơ Servo 2 30
Hình 4.5: Vị trí đặt 2 máng chứa vỉ thuốc lỗi 30
Hình 4.6: Vị trí đặt động cơ DC 31
Hình 4.7: Vị trí đặt board Arduino Uno R3 31
Hình 4.8: Mô hình nhìn từ trên xuống 32
Hình 4.9: Mô hình nhìn từ một bên 32
Trang 12Hình 4.11: Lưu đồ giải thuật hệ thống 33
Hình 4.12: Lưu đồ tìm và nhận dạng vỉ thuốc 34
Hình 4.13: Sơ đồ hoạt động của bộ lọc trung bình 35
Hình 4.14:Ảnh RGB gốc của vỉ thuốc 36
Hình 4.15: Ảnh nhị phân của vỉ thuốc 10 viên vàng 37
Hình 4.16: Ảnh nhị phân của vỉ thuốc 10 viên hồng 37
Hình 4.17: Lưu đồ tìm vỉ thuốc 38
Hình 4.18: Hàm regionprops 39
Hình 4.19: Qũy đạo đường F1MF2 39
Hình 4.20: Đường elip 40
Hình 4.21: Minh họa cho thuật toán tìm độ tròn đối tượng 40
Hình 4.22: Lưu đồ nhận dạng vỉ thuốc 41
Hình 4.23: Sơ đồ bộ chuyển đổi RGB sang HSV 42
Hình 4.24: Ảnh khi được chuyển đổi sang HSV 42
Hình 4.25: Sơ đồ bộ phân ngưỡng 43
Hình 4.26: Ảnh nhị phân của vỉ thuốc khi đã được phân ngưỡng thích hợp. 43
Hình 4.27: Các bước dạng vỉ thuốc cùng hình dáng, kích thước 44
Hình 4.28: Minh họa cho các bước nhận dạng vỉ thuốc cùng hình dáng, kích thước 45
Hình 4.29: Lưu đồ giải thuật kiểm tra lỗi vỉ thuốc 46
Hình 4.30: Công tắc cho phép 47
Hình 4.31: Giao diện chương trình 47
Hình 4.32: Cho vỉ thuốc vào mô hình 48
Hình 4.33: Giao diện chương trình hiển thị 48
Hình 5.1: Giao diện chương trình 50
Hình 5.2: Mô hình thực tế 50
Hình 5.3: Các vỉ thuốc đã kiểm tra được 51
Hình 5.4: Giao diện kiểm tra lỗi vỉ thuốc 10 viên vàng 51
Hình 5.5: Vỉ thuốc 10 viên vàng đi qua phòng chụp 52
Hình 5.6: Kiểm tra vỉ thuốc 10 viên vàng không bị lỗi qua giao diện 52
Hình 5.7: Vỉ thuốc10 viên vàng không bị lỗi 53
Hình 5.8: Kiểm tra vỉ thuốc 10 viên vàng bị lỗi qua giao diện 53
Hình 5.9: Vỉ thuốc10 viên vàng bị lỗi 54
Hình 5.10: Kiểm tra sai loại vỉ thuốc thành vỉ 10 viên nâu qua giao diện 54
Hình 5.11: Vỉ thuốc 10 viên nâu bị lỗi sai loại vỉ 55
Trang 13Hình 5.12: Kết quả cuối cùng khi kiểm tra vỉ hồng 10 viên 55
Trang 14
Bảng Trang
Bảng 3.1: Thông số kỹ thuật của Arduino Uno R3 18 Bảng 5.1: Kết quả khảo sát 56
Trang 15TÓM TẮT
Ngày nay, việc dùng xử lý ảnh là rất phổ biến trong công nghiệp sản xuất cũng như trong việc kiểm tra sản phẩm Đề tài “Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc” là mô hình sử dụng xử lý ảnh kiểm tra lỗi vỉ thuốc theo kích thước, hình dạng và màu sắc (vàng, hồng, trắng, đỏ, nâu, xanh lá) và đếm số lượng viên thuốc đúng có trong vỉ thuốc nhằm loại bỏ vỉ thuốc bị thiếu thuốc Ở đây sử dụng các đặc điểm riêng biệt của từng vỉ thuốc và màu sắc của từng viên thuốc để đi nhận dạng
và sau đó đếm số lượng viên thuốc Kết quả thực hiện của đề tài đã nhận dạng được những vỉ thuốc với kích thước khác nhau và các viên thuốc có màu sắc khác nhau (vàng, hồng, trắng, đỏ, nâu, xanh lá) cùng với việc đếm được số viên thuốc theo màu sắc của từng viên thuốc Đề tài phân loại được lỗi vỉ thuốc, đóng hộp được đủ số hộp thuốc cài đặt, thống kê được số vỉ thuốc lỗi và số vỉ thuốc không lỗi Đầu tiên vỉ thuốc trên băng tải đi qua sẽ được Webcam Logitech C270p thu thập dữ liệu hình ảnh sau
đó máy tính sẽ xử lý và phân tích hình ảnh vỉ thuốc rồi truyền tín hiệu cho Arduino Uno R3 điều khiển Servo loại bỏ vỉ thuốc lỗi đồng thời điều khiển đèn và buzzer báo hiệu
Trang 16Chương 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay, với sự phát triển mạnh mẽ của khoa học và công nghệ, con người ngày càng đạt được những bước tiến quan trọng trong các lĩnh vực: điện tử, tự động hóa, công nghệ thông tin Đồng hành với các lĩnh vực đó, xử lý hình ảnh đã và đang đạt được nhiều thành tựu vượt bậc đáng kể và ngày càng trở nên thiết yếu trong cuộc sống Các loại thiết bị công nghệ hiện đại hiện nay được sử dụng rất nhiều và chiếm một vị trí then chốt trong các ngành nghề, nhằm giúp cải thiện được năng suất làm việc để đạt được hiệu quả cao và giảm tải công việc cho con người
Chúng ta có thể thấy trong cuộc sống hằng ngày, kỹ thuật xử lý hình ảnh được ứng dụng trong việc phát hiện các đám cháy ở nhà kho hay phân xưởng, giám sát an ninh ở các khu vực trọng điểm của quốc gia, phát hiện các lỗi trên bề mặt vật thể, phát hiện người và báo động, nhận dạng đường đi cho ôtô chạy tự động Tùy vào từng ứng dụng cụ thể mà chúng ta sẽ có những hệ thống xử lý ảnh khác nhau Một số ví
dụ cho thấy xử lý ảnh được ứng dụng trong công nghiệp: Trong công nghiệp đóng gói, người ta sử dụng hệ thống xử lý ảnh để kiểm tra xem các sản phẩm đã được dán nhãn chưa hoặc kiểm tra nhãn hiệu bao bì có đúng với thành phần chuẩn bị được đóng gói không Hay trong lĩnh vực điện, điện tử xử lý ảnh dùng để phát hiện sự thiếu sót các mối hàn sau khi hàn các chân linh kiện vào board mạch
Các ngành công nghiệp đóng gói, dược phẩm cũng như trong lĩnh vực điện, điện tử là những ngành đòi hỏi sự chính xác trong kiểm tra đầu ra, và để thay thế con người trong việc kiểm tra thành phẩm với một tốc độ và sự chính xác cao, công nghệ
xử lý ảnh ra đời và không ngừng phát triển để ngày càng hoàn thiện hơn
Hiện nay cũng có rất nhiều bài nghiên cứu của sinh viên cũng làm về xử lý ảnh, đồ án tốt nghiệp của Nguyễn Hiền Minh và Phan Thanh Phong “Ứng dụng xử
lý ảnh trong hệ thống phân loại sản phẩm” sử dụng Raspberry Pi3 Model B kết hợp với Module camera Raspberry Pi V1.3 để chụp ảnh và phân loại màu sắc sản phẩm hiển thị kết quả đếm ra LCD [1] Đồ án tốt nghiệp của Phan Thành Hưng và Trần Văn Thạch nghiên cứu về “Thiết kế và thi công hệ thống đếm số lượng trong ảnh sử
Trang 17CHƯƠNG 1 TỔNG QUAN
dụng kít Arduino hiển thị LCD”, trong đó sử dụng module Arduino Uno R3 để xuất kết quả đếm ra LCD thông qua phần mềm trên máy tính với ảnh đầu vào là ảnh tế bào, ảnh cây, ảnh vỉ thuốc chụp sẵn Nghiên cứu sử dụng thuật toán đánh nhãn để đếm đối tượng cùng với phần mềm có 3 chương trình đếm ứng với 3 đối tượng tế bào, cây, thuốc với độ chính xác cao và hoạt động ổn định [2] Đồ án tốt nghiệp của
Võ Hoàng Sĩ và Nguyễn Quang Vũ “Thiết kế và thi công mô hình phân loại trái cây chín dựa vào màu sắc”, trong đó sử dụng module Arduino Uno R3, Webcam Logitech C270p với mục đích là thiết kế và thi công được mô hình phân loại trái cà chua khi chín có màu đỏ và khi chưa chín có màu xanh dùng kỹ thuật xử lý ảnh để xử lý màu sắc [3]
Nhận thấy, trong sản xuất công nghiệp, nông nghiệp cũng như trong y dược việc kiểm tra ngoại quan đối với số lượng và chất lượng thuốc là vô cùng quan trọng,
vô cùng cần thiết và không thể phủ nhận được Từ những suy nghĩ trên nên chúng em
đã tìm hiểu và đi tới quyết định chọn đề tài: “Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc” nhằm đáp ứng được nhu cầu thực tiễn Ý tưởng cốt lõi của việc kiểm tra số lượng thuốc trong vỉ là phân tích ảnh từ các dữ liệu thu được bởi webcam, qua hệ thống xử lý ảnh loại bỏ những vỉ thuốc bị thiếu thuốc, bị lỗi
1.2 MỤC TIÊU
Thiết kế và thi công mô hình hệ thống nhận biết và kiểm tra lỗi vỉ thuốc Dựa vào kích thước của vỉ thuốc để nhận biết loại vỉ thuốc (màu viên thuốc ,số lượng viên thuốc từng vỉ) Dựa vào màu sắc mặc định của các viên thuốc trong từng vỉ thuốc để loại bỏ vỉ thuốc có một hoặc nhiều viên thuốc bị thiếu hay khác màu (lỗi màu) Đếm được số lượng cụ thể viên thuốc đúng có trong vỉ Đếm được số lượng cụ thể viên thuốc bị lỗi trong vỉ Có cảnh báo khi hệ thống hoạt động và khi phát hiện vỉ thuốc bị lỗi Xác định vỉ thuốc không bị lỗi để đóng hộp
- NỘI DUNG 1: Nghiên cứu tài liệu xử lý ảnh, vi điều khiển
- NỘI DUNG 2: Nghiên cứu, tìm hiểu Webcam Logitech C270p
- NỘI DUNG 3: Nghiên cứu, tìm hiểu động cơ Servo và board Arduino Uno R3
- NỘI DUNG 4: Thiết kế, xây dựng phần cứng của mô hình
Trang 18- NỘI DUNG 5: Nghiên cứu, tìm hiểu các thuật toán và các hàm áp dụng cho việc
xử lý và đếm số lượng viên đúng cũng như viên thuốc lỗi trong từng vỉ thuốc
- NỘI DUNG 6: Xây dựng chương trình điều khiển mô hình giao tiếp giữa Matlab
và Arduino
- NỘI DUNG 7: Chạy thử nghiệm, cân chỉnh và sửa lỗi mô hình
- NỘI DUNG 8: Viết báo cáo luận văn
- NỘI DUNG 9: Báo cáo đề tài tốt nghiệp
1.4 GIỚI HẠN CỦA ĐỀ TÀI
- Đề tài này chỉ tập trung vào việc xác định đúng loại vỉ thuốc, màu sắc viên thuốc,
số lượng viên thuốc đúng màu, số lượng viên thuốc sai màu và số lượng viên thuốc thiếu trong một vỉ thuốc Không đánh giá được chất lượng và biến dạng của từng viên thuốc trong vỉ thuốc
- Không thể kiểm tra lỗi toàn bộ các loại vỉ thuốc có trên thị trường
- Mô hình chỉ hoạt động trong nhà với môi trường khô ráo, điều kiện chiếu sáng ổn định
1.5 BỐ CỤC
Chương 1: Tổng quan
Đặt vấn đề, mục tiêu, nội dung nghiên cứu, giới hạn của đề tài, bố cục
Chương 2: Cơ sở lý thuyết
Giới thiệu về xử lý ảnh, không gian màu của ảnh, những vấn đề trong xử lý ảnh
Chương 3: Tính toán thiết kế hệ thống
Thiết kế phần cứng, sơ đồ kết nối hệ thống, nguyên lý hoạt động
Chương 4: Thi công hệ thống
Giới thiệu, thi công hệ thống, lập trình hệ thống, lưu đồ giải thuật kiểm tra lỗi
vỉ thuốc, tài liệu hướng dẫn, thao tác
Chương 5: Kết quả_nhận xét_đánh giá
Kết quả tổng quan, kết quả đạt được, nhận xét đánh giá
Chương 6: Kết luận và hướng phát triển
Kết luận, hướng phát triển
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương 2: CỞ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó
Xử lý ảnh hiện nay là một trong những lĩnh vực được quan tâm và chú trọng đầu tư, là một lượng kiến thức cơ bản giúp cho các kỹ sư kỹ thuật và cử nhân công nghệ thông tin áp dụng vào làm việc trong thực tế Xử lý ảnh là kỹ thuật áp dụng trong việc tăng cường và xử lý các ảnh thu nhận từ các thiết bị như camera, webcam…
Do đó, xử lý ảnh đã được ứng dụng và phát triển trong rất nhiều lĩnh vực quan trọng như: [1]
- Trong lĩnh vực quân sự: xử lý và nhận dạng ảnh quân sự
- Trong lĩnh vực giao tiếp người máy: nhận dạng ảnh, xử lý âm thanh, đồ họa
- Trong lĩnh vực an ninh, bảo mật: nhận diện khuôn mặt người, nhận diện vân tay, mẫu mắt
- Trong lĩnh vực giải trí: trò chơi điện tử
- Trong lĩnh vực y tế: Xử lý ảnh y sinh, chụp X quang, MRI, công cụ hướng dẫn cho người mù và phương tiện đi lại tự trị
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền từ Luân đôn đến New York từ những năm 1920 Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955 Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh số được thuận lợi hơn Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo
Trang 20như mạng nơ-ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu được nhiều kết quả khả quan hơn [1]
Mô tả cụ thể các bước trong xử lý ảnh sau đây:
Hình 2.1:Các bước cơ bản trong xử lý ảnh [4]
Thu nhận ảnh: ảnh được thu nhận từ nhiều nguồn khác nhau: máy ảnh, máy quay phim, webcam, ảnh vệ tinh, có thể là ảnh màu hoặc ảnh đen trắng Với mục đích: biến đổi các thông tin hình ảnh về các cấu trúc được lưu trữ trong máy tính, có thể hiển thị ra các thiết bị ngoại vi [4] Trong đề tài này, ảnh được thu nhận từ webcam loại logitech sẽ cho hình ảnh trung thực khi sử dụng trong môi trường đủ ánh sáng
Tiền xử lý ảnh: sau khi ảnh được thu nhận, ảnh có thể bị nhiễu, độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn.[4]
Phân đoạn hay còn gọi là phân vùng ảnh: chính là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn, phân tích, nhận dạng ảnh Mục đích là tìm ra các đặc trưng của ảnh, xây dựng quan hệ giữa chúng dựa vào các đặc trưng cục bộ Với các thao tác: tìm biên, tách biên, làm mảnh đường biên, phân loại đối tượng Sử dụng các phương pháp: phát hiện biên cục bộ, dò biên, phân vùng theo miền đồng nhất, phân vùng dựa theo đường biên Đây là phần phức tạp khó khăn nhất trong xử lý ảnh
và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.[4]
Biểu diễn ảnh: đầu ra ảnh sau khi được phân đoạn chứa các điểm ảnh của vùng ảnh cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho việc xử lý tiếp theo bằng máy tính.[4]
Trang 21CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được Dựa vào phần tử đặc trưng của ảnh đó là pixel, ta có thể biểu diễn ảnh bằng hàm toán học, hoặc các ma trận điểm.[4]
Nhận dạng ảnh: là quá trình xác định ảnh, liên quan đến mô tả đối tượng mà người ta muổn đặc tả về nó Thường đi sau quá trình trích chọn các đặc tính của đối tượng, quá trình này thường thu được bằng cách so sánh với mẫu chuẩn ban đầu.Nội suy ảnh: là phán đoán theo ý nghĩa trên cơ sở nhận dạng Ứng dụng trong đề tài, sau khi ảnh được phân tích và xử lý xong, quá trình nhận dạng màu sắc của ảnh được thực hiện so sánh với ảnh ban đầu được chụp từ webcam Dựa trên cơ sở nhận dạng,
ta biết được màu sắc là màu gì Theo lý thuyết về nhận dạng, các mô hình toán học
về ảnh được phân theo hai loại nhận dạng ảnh cơ bản: nhận dạng theo tham số và nhận dạng theo cấu trúc Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự, nhận dạng vân tay, nhận dạng mã vạch, nhận dạng khuôn mặt người.[4]
Cơ sở tri thức: ảnh là một đối tượng phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường thu nhận ảnh, dẫn đến ảnh bị nhiễu Trong nhiều khâu
xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho việc xử lý, người ta còn mong muốn bắt chước quy trình tiếp nhận và xử
lý ảnh theo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử
lý theo các phương pháp trí tuệ con người Vì vậy, các cơ sở tri thức được phát huy
và phát triển.[4]
Không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học Trên thực tế, có rất nhiều không gian màu khác nhau được mô hình để sử dụng vào những mục đích khác nhau như: RGB, HSV, CMYK, HSL, HIS
Trong đó, RGB và HSV là hai không gian màu cơ bản và ứng dụng nhiều nhất Trong đề tài này sử dụng ảnh thu thập từ webcam có không gian màu RGB chuyển đổi sang HSV rồi sau đó xử lý
Trang 222.2.1 Không gian màu RGB
RGB là một không gian màu cơ bản trong xử lý ảnh, được sử dụng phổ biến cho việc xử lý và lưu trữ dữ liệu ảnh số Mỗi điểm màu được biểu diễn bởi không gian màu RGB đều là sự pha trộn của 3 thành phần màu cơ bản (Red: màu đỏ, Green: màu xanh lá cây, Blue: màu xanh da trời) để mô tả các màu sắc khác [3]
Hình 2.2:Không gian màu RGB [3]
Không gian màu RGB được chuẩn hóa như sau:
Trang 23CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Hình 2.3:Hệ tọa độ màu RGB [3]
Nếu như một ảnh số được mã hóa bằng 24bit, nghĩa là 8bit cho kênh R, 8bit cho kênh G, 8bit cho kênh B, thì mỗi kênh màu này sẽ nhận giá trị từ 0-255 Với mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác nhau, như vậy mô hình RGB có thể biểu diễn hơn 16 triệu màu
Chẳng hạn màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương ứng (0, 0, 0), màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0), màu đỏ có giá trị (255, 0, 0), màu xanh lục có giá trị (0, 255, 0), màu xanh lam có giá trị (0, 0, 255) và một số màu khác Tính chất cần chú ý của không gian màu này đó
là tính bất biến đối với bề mặt, kết hợp với phép chuyển đổi đơn giản từ không gian màu RGB cơ bản mà không gian màu RGB chuẩn hóa ngày càng được sử dụng rộng rãi trong lĩnh vực nhận dạng
Tuy nhiên, do tính tương quan cao giữa các kênh, giá trị cảm nhận không đồng nhất, sự pha trộn giữa dữ liệu thành phần màu và dữ liệu về độ sáng mà không gian màu RGB không được ưa chuộng sử dụng cho việc phân tích màu cũng như trong các thuật toán nhận dạng dựa trên màu sắc.[3]
2.2.2 Không gian màu HSV
HSV là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác máy tính Hệ không gian này dựa vào 3 thông
số sau để mô tả màu sắc: H = Hue: màu sắc; S = Saturation: độ đậm đặc, sự bảo hòa;
V = Value: giá trị cường độ sáng Hàm rgb2hsv và hsv2rgb chuyển đổi ảnh giữa các không màu RGB và HSV Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón [3]
Trang 24Hình 2.4:Không gian màu HSV [3]
Đi theo vòng tròn từ 0 - 360 độ là trường biểu diễn màu sắc (H) Theo như cách biểu diễn không gian màu theo hình trụ như trên, giá trị độ sáng (V) được biểu diễn bằng cách đi từ dưới đáy hình trụ lên và nằm trong khoảng từ 0 đến 1 Ở đáy hình trụ V có giá trị là 0 là tối nhất và trên đỉnh hình trụ thì V có giá trị là 1 là độ sáng lớn nhất Đi từ tâm hình trụ ra ngoài mặt trụ là giá trị bão hòa của màu sắc (S) có giá trị từ 0 đến 1 Giá trị S = 0 ứng với tâm hình trụ là chỗ mà màu sắc nhạt nhất, giá trị
S = 1 ở ngoài mặt trụ là nơi mà giá trị màu sắc đậm đặc nhất
Như vậy ứng với mỗi giá trị (H, S, V) sẽ cho ta một màu sắc mà ở đó mô tả đầy đủ thông tin về màu sắc, độ đậm đặc và độ sáng của màu đó.[3]
2.2.3 Chuyển đổi RGB sang HSV
Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B) Giá trị R, G,
B thay đổi trong phạm vi từ 0 đến 255 được chia cho 255 và tạo thành R', G', B' có giá trị thay đổi từ 0 đến 1 Ta chuyển sang không gian màu HSV như sau: [3]
Trang 25CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Tính toán giá trị S (Saturation):
S = {0 𝑘ℎ𝑖 M = 0 C
Ví dụ: Cho một pixel có giá trị R = 200, G = 180, B = 70 Chuyển giá trị pixel từ RGB sang HSV.[3]
360 = 18
360 = 0.05 Tính toán giá trị S (Saturation):
Vì M ≠ 0 nên:
S = 0.49
0.78 ≈ 0.63 Tính toán giá trị V (Value):
tiết Một triệu pixel thì tương đương với 1 megapixel
Trang 262.3.2 Ảnh số [1]
Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm ảnh càng làm cho tấm ảnh trở nên thực và sắc nét hơn Một hình ảnh là một tín hiệu hai chiều, nó được xác định bởi hàm toán học f(x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc Các giá trị của f(x, y) tại bất kỳ điểm nào là cung cấp các giá trị điểm ảnh (pixel) tại điểm đó của một hình ảnh
2.3.3 Phân loại ảnh [1]
Mức xám của điểm ảnh là cường độ sáng, gán bằng một giá trị tại điểm đó Các mức ảnh xám thông thường: 16, 32, 64, 128, 256 Mức được sử dụng thông dụng nhất là 265, tức là dùng 1byte để biểu diễn mức xám Trong đó:
- Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ sử dụng
1 bit dữ liệu trên 1 điểm ảnh
- Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau
- Ảnh màu: Là ảnh kết hợp của 3 màu cơ bản lại với nhau để tạo ra một thế giới màu sinh động Người ta thường dùng 3byte để mô tả mức màu, tức là có khoảng
16,7 triệu mức màu
2.3.4 Quan hệ giữa các điểm ảnh [1]
Lân cận điểm ảnh: được nói một cách hài hước như là hàng xóm của các điểm ảnh Có 2 loại lân cận cơ bản là lân cận 4 và lân cận 8
Hình 2 5: Các lân cận ảnh [1]
Trang 27CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
4 điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là (x+1, y), (x-1, y), (x,y+1), (x, y-1) ký hiệu là tập N4(p) 4 điểm ảnh lân cận 4 theo đường chéo có tọa
độ lần lượt là (x+1, y+1), (x+1, y+1), (x-1, y+1), (x-1, y-1) ký hiệu là tập ND(p) Tập
8 điểm ảnh lân cận 8 là hợp của 2 tập trên:
N8(p) = N4(p) + ND(p) (2.9)
2.3.5 Chuyển đổi ảnh màu sang ảnh xám [1]
Thông thường ảnh được thu về trước khi qua quá trình xử lý là những ảnh màu Đa số ảnh màu được tao ra bằng việc sử dụng các tổ hợp thích hợp của các cường độ ánh sáng đỏ (RED), xanh lục GREEN) và xanh lam (BLUE) Mỗi điểm ảnh được biểu thị bởi 24 bit thông tin Nó tương ứng với mỗi 8 bit cho màu đỏ, xanh lá cây và xanh lam, tạo thành một tổ hợp 256 các giá trị có thể, hay 256 mức cường độ cho mỗi màu Với hệ thống như thế, khoảng 16,7 triệu màu rời rạc có thể tái tạo
Như vậy tương ứng với một bức ảnh có độ phân giải HD sẽ chứa 1280 x 720
x 24 = 22.118.400 bit, điều này sẽ gây độ phức tạp rất lớn cho việc xử lý Vì vậy, ta cần giảm số bit thông tin biểu diễn 1 pixel để việc xử lý thuận tiện hơn bằng cách chuyển đổi từ ảnh màu sang ảnh xám
Trong ảnh xám, mỗi pixel có giá trị 8 bits thông tin Ở mức này, cấu trúc ảnh vẫn giữ nguyên, giá trị ma trận ảnh đơn giản rất nhiều, phù hợp với quá trình xử lý chỉ quan tâm đến cấu trúc ảnh mà không cần đến màu sắc ảnh Công thức tổng quát được sử dụng phổ biến đổi ảnh màu thành ảnh xám là:
P = aCr + bCb + cCg (2.10) Trên thực tế trong tài liệu phần mềm matlab cung cấp là hàm chuyển đổi ảnh màu sang ảnh xám rbg2gray() có định nghĩa sẵn các trọng số a, b, c cụ thể trong công thức dưới đây:
P = 0.299 * Cr + 0.587 * Cg + 0.114 * Cb (2.11) Trong đó: Cr, Cb, Cg là các giá trị mức màu R, B, G Tùy theo mức độ thu nhận ảnh màu gốc hoặc tùy theo các thiết bị thu nhận mà hệ số a, b, c có các giá trị khác nhau sao cho (a+b+c) <=1
Do ảnh đôi khi được chụp ở nơi quá sáng hay quá tối sẽ làm cấu trúc ảnh sau khi chuyển đổi thành ảnh xám sẽ không rõ ràng, để có thể làm nổi bật cấu trúc ảnh
Trang 28lên Ta có thể dựa vào lược đồ xám để điều chỉnh độ tương phản giúp ảnh rõ hơn Vậy lược đồ xám là gì?
dễ bị đồng hóa) Đây chỉ là bước xử lý cho các ảnh có ít chi tiết
Để nhị phân hóa ảnh, ta dựa vào ngưỡng xám trung bình, nếu lớn hơn thì đưa giá trị về 1, nhỏ hơn thì đưa về 0 (thực chất là mức 0 và 255 thể hiện 2 màu đen và trắng)
Trang 29CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Hình 2.8:Ảnh xám và ảnh nhị phân [1]
2.3.7 Lọc nhiễu [1]
Ảnh thu nhận được thường sẽ bị nhiễu nên cần phải loại bỏ nhiễu Các toán tử không gian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơn nhiễu, nổi biên Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hoặc lọc phi tuyến (trung vị, giả trung vị, lọc đồng hình) Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở
lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua, để lọc nhiễu người
ta thường dùng lọc thông thấp (theo quan điểm tần số không gian) hay lấy tổ hợp tuyến tính để san bằng (lọc trung bình) Để làm nổi cạnh (ứng với tần số cao), người
ta dùng các bộ lọc thông cao, lọc Laplace
2.3.8 Phương pháp phát hiện biên [1]
Biên là một trong những vấn đề ta cần quan tâm trong xử lý ảnh Vì ở giai đoạn phân đoạn ảnh chủ yếu dựa vào biên
Hình 2.9:Hình tách biên [1]
Điểm biên: Một điểm ảnh được coi là điểm biên nếu có sự thay đổi nhanh hoặc đột ngột về mức xám (hoặc màu) Ví dụ trong ảnh nhị phân, điểm đen gọi là điểm
Trang 30biên nếu lân cận nó có ít nhất một điểm trắng Đường biên (đường bao: boundary): tập hợp các điểm biên liên tiếp tạo thành một đường biên hay đường bao
Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhận dạng ảnh Thứ hai, người ta sử dụng biên làm phân cách các vùng xám (màu) cách biệt Ngược lại, người ta cũng sử dụng các vùng ảnh để tìm đường phân cách Tầm quan trọng của biên: để thấy rõ tầm quan trọng của biên, xét ví dụ sau: khi người họa sỹ muốn vẽ một danh nhân, họa sỹ
chỉ cần vẽ vài đường nứt tốc họa mà không cần vẽ một cách đầy đủ
Như vậy, phát hiện biên một cách lý tưởng là phát hiện được tất cả các đường biên trong các đối tượng Định nghĩa toán học của biên ở trên là cơ sở cho các kỹ thuật phát hiện biên Điều quan trọng là sự biến thiên giữa các điểm ảnh thường nhỏ, trong khi đó biến thiên độ sáng của điểm biên thường là khá lớn khi qua biên
2.3.9 Phân đoạn ảnh [1]
Phân đoạn ảnh là bước then chốt trong xử lý ảnh Giai đoạn này nhằm phân tích ảnh thành các vùng có cùng tính chất nào đó dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng mức xám, cùng màu hay cùng độ nhóm
Quá trình phân đoạn ảnh nhằm tách đối tượng cần khảo sát ra khỏi phần nội dung còn lại của ảnh, hay phân chia các đối tượng trong ảnh thành những đối tượng riêng biệt Như vậy quá trình phân đoạn ảnh là quá trình giảm bớt số lượng thông tin trong ảnh và chỉ giữ lại những thông tin cần thiết cho ứng dụng Do đó phân đoạn ảnh
là quá trình loại bỏ các đối tượng không quan tâm trong ảnh Có nhiều phương pháp phân đoạn ảnh khác nhau Trong đó quá trình phân đoạn ảnh sử dụng một ngưỡng giá trị xám để phân đoạn ảnh ra thành các đối tượng và nền là phương pháp đơn giản nhất Lúc này các điểm ở bên dưới ngưỡng giá trị xám thuộc về nền còn những điểm ảnh ở bên trên ngưỡng giá trị xám thuộc về đối tượng Phương pháp phân đoạn ảnh này hiệu quả lớn đối với ảnh nhị phân, văn bản in hay đồ họa
Trang 31CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
Chương 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
Đề tài: “Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc” mục tiêu chính là kiểm tra, đếm số lượng viên thuốc và loại bỏ được vỉ thuốc bị lỗi Đề tài chỉ xây dựng với mô hình nhỏ và gọn không làm thành dây chuyền sản xuất Công việc thiết kế bao gồm những công việc chính sau:
Hình 3.1:Sơ đồ khối của hệ thống phân loại lỗi vỉ thuốc
Chức năng của từng khối:
- Khối nguồn: cung cấp nguồn điện cho hệ thống hoạt động
- Khối thu nhận ảnh: trong hệ thống sử dụng webcam giao tiếp với máy tính để chụp ảnh và cho hình ảnh trung thực, rõ nét nhất của vỉ thuốc
- Khối PC và xử lý dữ liệu ảnh: sử dụng laptop tích hợp sẵn những công cụ lập trình
có nhiệm vụ thu nhận, lưu trữ và xử lý, nhận dạng vỉ thuốc thông qua hình ảnh đã được chụp từ webcam
- Khối điều khiển: hệ thống sử dụng bộ điều khiển trung tâm là Arduino Uno R3 có nhiệm vụ nhận tín hiệu từ máy tính để điều khiển khối chấp hành
- Khối chấp hành: bao gồm 2 động cơ servo có nhiệm vụ loại bỏ vỉ thuốc bị lỗi, 1 động cơ DC điều khiển kéo băng tải vận chuyển sản phẩm và cuối cùng là đèn,
buzzer báo hiệu
Hoạt động của hệ thống:
Khối thu nhận ảnh là Webcam Logitech C270p sẽ thu thập dữ liệu hình ảnh sau đó truyền tới khối PC và xử lý dữ liệu ảnh là máy tính Máy tính xử lý và phân
Trang 32tích hình ảnh vỉ thuốc rồi truyền dữ liệu về khối điều khiển là Arduino Uno R3 Arduino Uno R3 sẽ xuất tín hiệu điều khiển xuống để điều khiển khối chấp hành
- Quay video lên tới 1280 x 720 pixel
- Bộ cảm biến ảnh VGA (640 x 480 pixel)
- Công nghệ tinh thể lỏng Logitech Fluid Crystal
- Ảnh lên tới 3.0 megapixel
- USB 2.0 tốc độ cao được chứng nhận
- Kẹp phổ dụng phù hợp với máy tính xách tay, màn hình LCD hoặc CRT
- Webcam có dây dài 1.5m
3.1.2 Khối điều khiển
Chức năng của Arduino Uno là nhận tín hiệu từ PC tiến hành phân tích xử lý, điều khiển hoạt động của động cơ, Servo, đèn và buzzer báo hiệu Với yêu cầu trên
ta đều có thể sử dụng nhiều loại vi điều khiển làm khối xử lý Nhưng ở đây ta chọn Kit Arduino Uno R3 vì nó là một trong những Kit phổ biến với nhiều chức năng, giá thành rẻ hơn các vi điều khiển khác
Board Arduino UNO R3 là một board điều khiển dựa trên vi điều khiển Atmega328 Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân
Trang 33CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
đầu vào analog, 14 chân I/O tín hiệu số tương thích với nhiều board mở rộng khác nhau Nó có thể nạp chương trình qua cổng USB, cấp nguồn qua USB, adapter hoặc nguồn khác nên đây chính là board mạch mà chúng em sử dụng làm bộ xử lý trung tâm chính trong đề tài
Hình 3.3:Mặt trước và mặt sau của board Arduino UNO R3
Bảng 3.1:Thông số kỹ thuật của Arduino Uno R3
Vi điều khiển Atmega328 họ 8bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Trang 34Nhóm chân nguồn:
- Chân GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
- Chân 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
- Chân 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
- Chân Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
- Chân IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này và nó luôn là 5V Mặc dù vậy không được lấy nguồn 5V
từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
- Chân RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
Một số chân digital có các chức năng đặc biệt như sau:
- 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân
này nếu không cần thiết
- Chân PWM (~): 3, 5, 6, 9, 10 và 11: chân này cho phép xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite()
- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao
thức SPI với các thiết bị khác
- LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng Chân Analog (A0 – A5) cung cấp độ phân giải tín hiệu 10bit để đọc giá trị điện áp trong khoảng 0V – 5V Đặc biệt, chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các
thiết bị khác
Trang 35CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
3.1.3 Khối chấp hành
Trong mô hình hệ thống này khối chấp hành sử dụng: 1 động cơ DC, 2 động
cơ Servo, module relay 4 kênh, buzzer và đèn báo hiệu các hoạt động của mô hình hệ thống
a Mô tả động cơ DC
Động cơ một chiều DC (Direct Current) là động cơ một chiều dùng để điều khiển trực tiếp băng tải hoạt động có cấu tạo gồm hai dây (dây nguồn và dây tiếp đất) Khi bạn cung cấp năng lượng thì động cơ DC sẽ bắt đầu quay, chuyển điện năng thành cơ năng và quay với cường độ RPM rất cao (số vòng quay/ phút)
b Mô tả động cơ Servo
Động cơ RC Servo MG996R dùng điều khiển góc từ 0 đến 180 độ, ứng dụng chế tạo robot, mô hình Trong đề tài, động cơ RC Servo MG996R được dùng để hoạt động gạt sản phẩm vào vị trí đã quy định Động cơ có lực kéo mạnh, các khớp và bánh răng được làm hoàn toàn bằng kim loại nên có độ bền cao, động cơ được tích hợp sẵn driver điều khiển động cơ bên trong theo cơ chế phát xung – quay góc nên rất dễ sử dụng Sử dụng 2 động cơ Servo, 1 động cơ Servo dùng để gạt sản phẩm lỗi
thiếu thuốc đúng, động cơ Servo còn lại dùng để gạt sản phẩm lỗi khác loại
Hình 3.5:Động cơ RC Servo MG996R
Trang 36Tốc độ quay: 0.17sec/60degree (4.8v), 0.14sec/60degree (6v)
Dòng hiện tại: 500mA – 900mA (6V)
Phạm vi nhiệt độ: 0 ºC – 55 ºC
Kết nối: Đỏ: Vcc (V+), Nâu: GND (V-), Cam: tín hiệu (Signal)
Kích thước động cơ:
Hình 3.6:Kích thước động cơ RC Servo MG996R
c Mô tả Module Relay 4 kênh
Hình 3.7:Module Relay 4 kênh Module Relay 4 kênh 5V dùng để điều khiển đóng ngắt động cơ DC và điều khiển các đèn báo hiệu các trạng thái hoạt động của mô hình hệ thống Module Relay
4 kênh 5V gồm 4 relay, điện áp hoạt động 5V điều khiển đầu ra tối đa 220VAC/10A
và 30VDC/10A Đầu vào IN1, IN2, IN3 IN4 nhận tín hiệu cực thấp Module relay 4 kênh nhỏ thiết kế gọn chuyên nghiệp, khả năng chống nhiễu tốt và khả năng cách điện tốt, an toàn đáng tin cậy Có sẵn header rất tiện dụng khi kết nối với vi điều khiển Trong module đã có sẵn mạch kích relay sử dụng IC cách ly quang và transistor giúp cách ly hoàn toàn mạch vi điều khiển với rơ le bảo đảm vi điều khiển hoạt động
ổn định Mạch điều khiển relay 4 kênh này sử dụng chân kích mức Thấp (0V): khi có tín hiệu 0V vào chân IN thì relay sẽ nhảy qua thường Mở của Relay
Trang 37CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
- Điện thế đóng ngắt tối đa: AC 250V ~ 10A, DC 30V ~ 10A
- IN1, IN2, IN3, IN4: tín hiệu đầu vào, hoạt động mức thấp
- Có đèn báo đóng ngắt trên Relay
d Mô tả Buzzer:
Hình 3.8:BuzzerCòi Buzzer báo động 3~24VDC được sử dụng để phát ra âm thanh lớn khi cấp nguồn, ứng dụng trong các hệ thống chống trộm, cảnh báo, Còi Buzzer sẽ kêu khi phát hiện vỉ thuốc bị lỗi cho tới khi vỉ thuốc bị loại bỏ
Thông số kỹ thuật:
- Điện áp hoạt động: 3 ~ 24VDC
- Dòng điện tiêu thụ: 30mA 12V, 40mA 24V
- Biên độ âm thanh: lên đến 100dB
Trang 38hoạt động và tắt khi mô hình hệ thống dừng hoạt động Đèn báo hiệu màu vàng và đỏ
sẽ nhấp nháy khi mô hình hệ thống phát hiện vỉ thuốc bị lỗi cho tới khi vỉ thuốc bị loại bỏ thì tắt
a Nguồn cấp cho động cơ DC, đèn báo 24VDC:
Đề tài sử dụng nguồn tổ ong 24V – 5A có sẵn, là nguồn 1 chiều mini Đổi nguồn trực tiếp nhỏ gọn và trọng lượng nhẹ
Hình 3.10:Nguồn tổ ong 24V – 5A
Thông số kỹ thuật:
- Bộ cấp nguồn: AC: 100V - 220V, DC: 24V - 5A
- Điện áp đầu vào: 100V ~ 220V AC
- Tần số: 50Hz
- Điện áp đầu ra: 24VDC
- Dòng điện đầu ra: 5A
- Chất liệu vỏ: Vỏ kim loại / Đế nhôm
- Trọng lượng 320 gram, có đèn LED nguồn
- Kích thước: 130 x 99 x 41 mm
Động cơ DC 24V hoạt động với Imax=0.12A Đèn báo hoạt đông với Imax=20mA Vậy dòng điện tổng là 140mA, phù hợp với việc lựa chọn nguồn trên
Trang 39CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ HỆ THỐNG
b Nguồn cấp cho Arduino Uno R3
Đề tài sử dụng nguồn nuôi arduino từ cổng USB laptop có điện áp đầu ra: 5VDC, dòng điện 500mA phù hợp với dãy điện áp hoạt động của arduino Chương trình trên máy tính cũng giao tiếp với arduino qua cổng này qua giao thức UART bằng cáp nối USB Type B như hình
Hình 3.11: Cáp nối USB Tybe B
c Nguồn cấp cho động cơ Servo, Module Relay 5VDC
Các thiết bị này có điểm chung là điều hoạt động tốt với điện áp 5VDC, chỉ khác dòng điện hoạt động Do dòng ra tối đa của chân 5V từ arduino là Imax = 500mA nên không đủ để cấp cho các thiết bị
- Động cơ Servo MG996R hoạt động với dòng điện Imax = 900x2mA
- Module Relay 5V hoạt động với dòng kích Ikích = 5mA
Dòng điện tổng khoảng 1805 mA, vì vậy nhóm quyết định sử dụng mạch hạ áp LM2596 để chuyển điện áp 24VDC – 5A từ nguồn tổ ong còn 5VDC – 3A để cấp cho các thiết bị này như hình 3.12 và hình 3.13
Hình 3.12: Sơ đồ nguyên lý mạch hạ áp LM2596
Hình 3.13: Hình ảnh thực tế mạch hạ áp LM2596
Trang 403.2 SƠ ĐỒ KẾT NỐI HỆ THỐNG
Việc tính toán thiết kế là công việc không thể thiếu khi thực hiện bất cứ đề tài nào, chính công việc này sẽ quyết định phần lớn đến kết quả của đề tài Mọi thiết bị, linh kiện cần được tính toán lựa chọn kỹ lưỡng mới đem đến kết quả tốt cho đề tài Chính vì vậy cần phải có sơ đồ mô tả cụ thể kết nối toàn bộ hệ thống như hình 3.14
Hình 3.14:Sơ đồ kết nối hệ thống
Giải thích sơ đồ kết nối:
Webcam Logitech C270p và Board Arduino Uno R3 kết nối với máy tính qua cổng USB Máy tính có nguồn nuôi là pin của máy tính cung cấp nguồn để Webcam Logitech C270p và Board Arduino Uno R3 hoạt động Mô hình sử dụng kit điều khiển Arduino Uno R3 kết hợp với Module Relay 4 kênh để điều khiển động cơ DC kéo băng tải và 3 đèn báo hiệu Với Module Relay 4 kênh: kết nối chân COM với chân V+ của động cơ DC và đèn báo, chân NO nối với chân V+ của nguồn tổ ong 24V Kết nối chân V+, V- của Module Relay 4 kênh lần lượt với chân 5V và GND của ngõ
ra mạch hạ áp LM2596, còn chân tín hiệu IN1 sẽ được nối với chân số 12, IN2 được nối với chân số 7, IN3 được nối với chân số 6, IN4 được nối với chân số 5 của Arduino Uno Với động cơ servo: kết nối chân V+, V- lần lượt với chân 5V và chân GND của ngõ ra mạch hạ áp LM2596 Còn chân tín hiệu của servo 1 nối với chân số 9, chân tín hiệu của servo 2 nối với chân số 10 của kit Arduino Uno Với Buzzer: kết nối chân V+, V- lần lượt với chân số 11 và GND của kit Arduino Uno Tín hiệu ra từ công tắc cho phép được nối tới chân số 2 của kit Arduino Uno