THÀNH PHỐ HỒ CHÍ MINHĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT Y SINH GVHD: NGÔ BÁ VIỆT SVTH: NGUYỄN DUY KHÁNH PHẠM BẢO HUY THIẾT KẾ VÀ THI CÔNG HỆ THỐNG THU THẬP VÀ PHÂN LOẠI HÌNH ẢNH NHIỆT BÀN C
Trang 1THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT Y SINH
GVHD: NGÔ BÁ VIỆT SVTH: NGUYỄN DUY KHÁNH
PHẠM BẢO HUY
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG THU THẬP
VÀ PHÂN LOẠI HÌNH ẢNH NHIỆT BÀN CHÂN CỦA BỆNH NHÂN ĐÁI THÁO ĐƯỜNG
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
KHÓA LUẬN TỐT NGHIỆP
NGÀNH KỸ THUẬT Y SINH
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG
HỆ THỐNG THU THẬP VÀ PHÂN LOẠI
Trang 3KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
KHÓA LUẬN TỐT NGHIỆP
NGÀNH KỸ THUẬT Y SINH
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG
HỆ THỐNG THU THẬP VÀ PHÂN LOẠI
Trang 4NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP
Họ tên sinh viên: Nguyễn Duy Khánh MSSV: 20129056
Phạm Bảo Huy MSSV: 20129016 Chuyên ngành: Kỹ thuật Y Sinh Mã ngành: 7520212D
Hệ đào tạo: Đại học chính quy Mã hệ: 1
Khóa: 2020 Lớp: 20129
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG THU THẬP VÀ
PHÂN LOẠI HÌNH ẢNH NHIỆT BÀN CHÂN CỦA BỆNH NHÂN ĐÁI THÁO ĐƯỜNG
II NHIỆM VỤ
1 Các số liệu ban đầu:
Ngôn ngữ lập trình: Python
Tài liệu về biến chứng của bệnh đái tháo đường
Tài liệu về lập trình Arduino
Tài liệu về Simple Handheld Thermal Imager Version 2.0 Imaging Camera+2" 240x320 LCD Display
Tài liệu lập trình VS Code
Tài liệu thiết kế giao diện bằng Qt Designer
Tập dữ liệu “Plantar Thermogram Database for the Study of Diabetic Foot Complications” từ 122 bệnh nhân được chẩn đoán là đái tháo đường và 45 bệnh nhân không mắc đái tháo đường, được tổng hợp từ các bệnh viện và phòng khám ở Mexico
Sử dụng mạng nơ-ron tích chập VGG16 để phân loại ảnh nhiệt bàn chân
Trang 5Nội dung 1: Tìm hiểu lý thuyết về bệnh đái tháo đường, đặc biệt là sự ảnh hưởng của bệnh đái tháo đường khi di căn đến bàn chân
Nội dung 2: Thiết kế và thi công phần cứng của hệ thống để chụp ảnh nhiệt bàn chân
Nội dung 3: Kết nối máy ảnh nhiệt với máy tính
Nội dung 4: Xây dựng và huấn luyện mô hình máy học để hỗ trợ chẩn đoán
Nội dung 5: Thiết kế giao diện để điều khiển và lập trình các chức năng chụp, lưu trữ, hỗ trợ chẩn đoán hình ảnh, thu thập và quản lý thông tin bệnh nhân
Nội dung 6: Tiến hành chạy thử nghiệm và hiệu chỉnh hệ thống
Nội dung 7: Đánh giá kết quả thực hiện
Nội dung 8: Viết báo cáo
Nội dung 9: Bảo vệ luận văn
III NGÀY GIAO NHIỆM VỤ: 19/02/2024
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2024
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Th.S Ngô Bá Việt
CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trang 6Tuần 1
(19/02 – 25/02/2024)
- Gặp GVHD để nghe phổ biến yêu cầu làm
đồ án, tiến hành chọn đề tài thực hiện và viết
đề cương chi tiết
Tuần 2
(26/02 – 03/03/2024)
- Nộp đề cương Khóa luận tốt nghiệp
- Tìm và đọc các tài liệu đã có trước đó liên quan đến đề tài
- Tìm hiểu biến chứng của bệnh đái tháo đường
Tuần 3
(04/03 – 10/03/2024)
- Tìm hiểu về cách sử dụng máy ảnh nhiệt
- Tìm hiểu về cách kết nối, điều khiển máy ảnh nhiệt với vi điều khiển
- Tìm tập dữ liệu hình ảnh nhiệt bàn chân đái tháo đường
- Tìm hiểu và lựa chọn mô hình phù hợp để huấn luyện
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o
Tp Hồ Chí Minh, ngày 19 tháng 02 năm 2024
Trang 7Tuần 4
(11/03 - 17/03)
dùng với vi điều khiển
- Tìm hiểu về cơ sở dữ liệu và cách kết nối cơ
sở dữ liệu với giao diện người dùng
- Lựa chọn linh kiện phù hợp với yêu cầu đề tài
- Viết chương trình xây dựng mô hình máy học phân loại hình ảnh nhiệt bàn chân bằng mạng VGG16
Tuần 5
(18/03 – 24/03/2024)
- Thiết kế sơ đồ khối của hệ thống
- Huấn luyện mô hình
Tuần 6
(25/03 – 31/03/2024)
- Vẽ lưu đồ giải thuật cho các chương trình
- Lựa chọn linh kiện sử dụng cho hệ thống
Tuần 7
(01/04 – 07/04/2024)
- Thiết kế giao diện người dùng
- Thiết kế cơ sở dữ liệu
Tuần 8
(08/04 - 14/04/2024)
Tuần 9
(15/04 - 21/04/2024)
- Thiết kế hệ thống vít me và động cơ bước
- Kết nối vi điều khiển với giao diện để điều khiển vít me và máy ảnh nhiệt
- Viết chương trình điều khiển hệ thống
- Viết chương trình chạy giao diện
- Tính toán vị trí đặt máy ảnh nhiệt
- Mô phỏng mạch, vẽ PCB, thi công mạch in
- Thiết kế mô hình, thi công lắp ráp hệ thống
- Nộp báo cáo tiến độ
Trang 8- Nộp quyển Khóa luận tốt nghiệp.
- Làm bài thuyết trình, thiết kế poster
Tuần 21
(01/07 – 06/07/2024)
- Bảo vệ Khóa luận
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
Trang 9Đề tài “Thiết kế và thi công hệ thống thu thập và phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo đường” là do nhóm tự thực hiện dưới sự hướng dẫn của thầy hướng dẫn Th.S Ngô Bá Việt Mọi tài liệu đề tài tham khảo đều được trích dẫn
ở phần tài liệu tham khảo và hoàn toàn không sao chép từ tài liệu hay công trình đã
có trước đó
Nhóm sinh viên thực hiện đề tài Nguyễn Duy Khánh Phạm Bảo Huy
Trang 10Sau khoảng thời gian thực hiện, nhóm đã hoàn thành đề tài “Thiết kế và thi công mô hình thu thập và phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo đường” Ngoài những cố gắng của từng cá nhân trong nhóm, còn có sự hướng dẫn và giúp đỡ, góp ý của thầy Th.S Ngô Bá Việt Nhóm xin gửi lời cảm ơn và biết ơn sâu sắc đối với thầy đã tạo điều kiện thuận lợi cho nhóm nghiên cứu và thực hiện đề tài Nhờ sự hướng dẫn tận tình, sự động viên và những góp ý quý báu của thầy đã giúp nhóm vượt qua những khó khăn, thử thách và hoàn thiện đồ án một cách tốt nhất.
Đồng thời, nhóm cũng xin gửi lời cảm ơn đến quý thầy cô khoa Điện - Điện
tử và đặc biệt là bộ môn Điện tử Công nghiệp - Y sinh đã tâm huyết giảng dạy, truyền đạt các kiến thức bổ ích trong suốt quá trình học tập tại Trường Đại học Sư Phạm Kỹ Thuật TP.HCM
Chúng con cảm ơn gia đình đã luôn là nguồn động viên to lớn, chỗ dựa vững chắc và luôn tạo điều kiện cho chúng con học tập tốt và thực hiện đề tài Cuối cùng, cảm ơn đến tập thể lớp Kỹ thuật Y sinh khóa 2020 luôn sát cánh, sẵn sàng chia sẻ những kiến thức, giúp đỡ góp phần hoàn thiện đề tài một cách tốt nhất Sự động viên, những lời khuyên chân thành và những giờ phút học tập, thảo luận cùng các bạn đã giúp nhóm mở mang kiến thức và hoàn thiện bản thân Nhóm thực sự trân trọng tình bạn và sự gắn bó mà chúng ta đã có với nhau trong suốt thời gian qua
Với điều kiện thời gian thực hiện đề tài cùng với vốn kiến thức của bản thân còn chưa được chuyên sâu và kinh nghiệm chưa nhiều nên không thể không tránh khỏi những thiếu sót trong đề tài lần này Vì vậy rất mong sẽ nhận được những phản hồi, góp ý của quý thầy cô để nhóm có thể cải thiện và làm tốt hơn trong tương lai
Nhóm xin chân thành cảm ơn!
Nhóm sinh viên thực hiện đề tài Nguyễn Duy Khánh Phạm Bảo Huy
Trang 11TRANG BÌA i
NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP ii
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iv
LỜI CAM ĐOAN vii
LỜI CẢM ƠN viii
MỤC LỤC ix
LIỆT KÊ HÌNH VẼ xii
LIỆT KÊ BẢNG xvi
DANH SÁCH CÁC TỪ VIẾT TẮT xvii
DANH SÁCH CÁC THUẬT NGỮ xviii
TÓM TẮT xix
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 2
1.5 BỐ CỤC 3
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU VỀ ĐÁI THÁO ĐƯỜNG VÀ CÁC BIẾN CHỨNG 4
2.2 NHIỆT ĐỒ BÀN CHÂN CHẨN ĐOÁN ĐÁI THÁO ĐƯỜNG 4
2.3 THU THẬP HÌNH ẢNH VÀ THÔNG TIN BỆNH NHÂN 5
2.3.1 Mục đích 5
2.3.2 Quy trình thu thập hình ảnh 5
2.3.3 Trách nhiệm khi thu thập hình ảnh và thông tin bệnh nhân 6
2.4 MÔ HÌNH MÁY HỌC 7
Trang 122.4.2 Mạng VGG16 9
2.4.3 Kỹ thuật học chuyển giao 9
2.5 PHẦN CỨNG 10
2.5.1 Bộ điều khiển Arduino 10
2.5.2 Máy ảnh nhiệt 12
2.5.3 Động cơ điện 13
2.5.4 Vít me 13
2.6 PHẦN MỀM 14
2.6.1 Phần mềm lập trình 14
2.6.2 Phần mềm thiết kế 16
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 19
3.1 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 19
3.1.1 Thiết kế sơ đồ khối hệ thống 19
3.1.2 Tính toán và thiết kế mạch 20
3.1.3 Sơ đồ nguyên lý toàn mạch 28
3.2 TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH THU THẬP ẢNH NHIỆT BÀN CHÂN 30
3.2.1 Thiết kế mô hình chụp ảnh nhiệt bàn chân 31
3.2.2 Thiết kế bộ vít me và hộp đựng máy ảnh 33
3.3 THIẾT KẾ MÔ HÌNH PHÂN LOẠI HÌNH ẢNH NHIỆT BÀN CHÂN 36
Chương 4 THI CÔNG HỆ THỐNG 41
4.1 THI CÔNG HỆ THỐNG 41
4.1.1 Thi công bo mạch 41
4.1.2 Thi công mô hình 44
4.2 LẬP TRÌNH HỆ THỐNG 47
Trang 134.2.2 Tạo cơ sở dữ liệu 59
4.3 HƯỚNG DẪN SỬ DỤNG VÀ THAO TÁC 66
Chương 5 KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ 73
5.1 KẾT QUẢ THI CÔNG MÔ HÌNH THU THẬP HÌNH ẢNH NHIỆT BÀN CHÂN CỦA BỆNH NHÂN ĐÁI THÁO ĐƯỜNG 73
5.2 KẾT QUẢ GIAO DIỆN ĐIỀU KHIỂN CỦA HỆ THỐNG 74
5.2.1 Kết quả giao diện chính của hệ thống 74
5.2.2 Kết quả giao diện đăng ký và truy xuất thông tin bệnh nhân 74
5.2.3 Kết quả giao diện truy xuất hình ảnh 79
5.2.4 Kết quả giao diện hỗ trợ chẩn đoán 80
5.3 NHẬN XÉT VÀ ĐÁNH GIÁ TÍNH HOẠT ĐỘNG ỔN ĐỊNH CỦA HỆ THỐNG 82
5.4 CHI PHÍ THI CÔNG HỆ THỐNG 87
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 90
6.1 KẾT LUẬN 90
6.2 HƯỚNG PHÁT TRIỂN 90
TÀI LIỆU THAM KHẢO 91
PHỤ LỤC 93
Trang 14Hình Trang
Hình 2.1 Các loại Arduino phổ biến 10
Hình 2.2 Sơ đồ các chân của Arduino UNO R3 11
Hình 2.3 Máy ảnh nhiệt 12
Hình 2.4 Các loại động cơ điện phổ biến 13
Hình 2.5 Vít me 14
Hình 2.6 Giao diện lập trình chính của Arduino IDE 15
Hình 2.7 Giao diện lập trình chính của VS Code 16
Hình 2.8 Giao diện chính của SolidWorks 18
Hình 3.1 Sơ đồ khối hệ thống 19
Hình 3.2 Các chân kết nối của Arduino UNO R3 sử dụng trong hệ thống 21
Hình 3.3 Sơ đồ nguyên lý của khối điều khiển cơ 22
Hình 3.4 Sơ đồ kết nối giữa khối điều khiển cơ với khối xử lý trung tâm 22
Hình 3.5 Sơ đồ nguyên lý của khối chụp ảnh 25
Hình 3.6 Sơ đồ kết nối giữa khối chụp ảnh với khối xử lý trung tâm và máy tính 26
Hình 3.7 Sơ đồ nguyên lý toàn mạch 29
Hình 3.8 Sơ đồ kết nối toàn hệ thống 30
Hình 3.9 Bản vẽ mặt trước và mặt sau của mô hình chụp bàn chân 31
Hình 3.10 Bản vẽ mặt bên của mô hình chụp bàn chân 32
Hình 3.11 Bản vẽ mặt trên và mặt dưới của mô hình chụp bàn chân 33
Hình 3.12 Bản vẽ mô phỏng 3D của mô hình chụp bàn chân 33
Hình 3.13 Mô tả kích thước tính toán khoảng cách đặt máy ảnh nhiệt 34
Hình 3.14 Bản vẽ hộp cố định máy ảnh 35
Hình 3.15 Bản vẽ đế cố định hộp cố định máy ảnh trên con trượt vuông gắn vào vít me 35
Hình 3.16 Mô phỏng 3D hệ thống vít me trượt 36
Hình 3.17 Mô hình mạng VGG16 kết hợp kỹ thuật học chuyển giao 38
Hình 3.18 Mô hình ma trận nhầm lẫn 40
Hình 4.1 Hình mặt sau của mạch in khi thiết kế PCB 41
Trang 15Hình 4.3 Mạch in sau khi hàn các linh kiện 43
Hình 4.4 Nguồn tổ ong đầu vào 220VAC, đầu ra 24VDC 43
Hình 4.5 Bố trí mạch in và nguồn 44
Hình 4.6 Vị trí đặt chân trong hộp chụp bàn chân 44
Hình 4.7 Ống kính chụp ảnh và các dây kết nối với máy ảnh nhiệt 45
Hình 4.8 Động cơ bước, bộ vít me, hộp máy ảnh 46
Hình 4.9 Hộp nguồn được cố định ở mặt sau hộp lớn (bên trái) và vị trí đặt nguồn và mạch in bên trong (bên phải) 46
Hình 4.10 Vị trí đặt chân và bộ vít me bên trong mô hình 46
Hình 4.11 Lưu đồ giải thuật chương trình điều khiển hệ thống 47
Hình 4.12 Lưu đồ giải thuật chương trình chính điều khiển giao diện chính 48
Hình 4.13 Lưu đồ giải thuật chương trình con chụp ảnh 49
Hình 4.14 Lưu đồ giải thuật chương trình con hiển thị và lưu ảnh đã chụp 50
Hình 4.15 Lưu đồ giải thuật chương trình con đăng ký ID mới 51
Hình 4.16 Lưu đồ giải thuật chương trình con quét QR CCCD 53
Hình 4.17 Lưu đồ giải thuật các chương trình con thêm (trái) và cập nhật (phải) dữ liệu bệnh nhân 54
Hình 4.18 Lưu đồ giải thuật các chương trình con xóa (trái) và tìm kiếm (phải) thông tin bệnh nhân 55
Hình 4.19 Lưu đồ giải thuật chương trình truy xuất hình ảnh 57
Hình 4.20 Lưu đồ giải thuật chương trình phân loại hình ảnh nhiệt bàn chân hỗ trợ chẩn đoán bệnh đái tháo đường 58
Hình 4.21 Trang chủ SQLite 59
Hình 4.22 Menu File trong SQLite 59
Hình 4.23 Tạo các trường trong bảng dữ liệu 60
Hình 4.24 Nhấn tùy chọn Browser Table để truy cập dữ liệu bảng 60
Hình 4.25 Giao diện thêm các dữ liệu vào bảng 60
Hình 4.26 Tùy chọn Write Changes trong thanh menu của Sqlite 61
Hình 4.27 Các trường thông tin bệnh nhân đã thiết kế 61
Hình 4.28 Hộp thoại tìm kiếm để mở Command Prompt 62
Trang 16Hình 4.30 Cửa sổ gõ lệnh của Command Prompt 63
Hình 4.31 Tìm kiếm phần mềm Qt Designer trong thanh tìm kiếm 63
Hình 4.32 Giao diện chính của phần mềm Qt Designer 63
Hình 4.33 Giao diện sau khi tiến hành thiết kế 64
Hình 4.34 Lập trình VS Code để gọi và hiển thị giao diện bằng ngôn ngữ python 65
Hình 4.35 Giao diện được hiển thị thành công 65
Hình 4.36 Các bước kết nối với cổng Port Arduino ở giao diện chính 67
Hình 4.37 Vị trí mở giao diện truy xuất và đăng ký thông tin bệnh nhân 67
Hình 4.38 Giao diện của đăng ký và truy xuất thông tin bệnh nhân 67
Hình 4.39 Các bước để đăng ký thông tin bệnh nhân mới 67
Hình 4.40 Các bước truy xuất và cập nhật thông tin bệnh nhân đã đăng ký 68
Hình 4.41 Các bước truy xuất và xóa thông tin bệnh nhân đã đăng ký 69
Hình 4.42 Các bước tìm kiếm thông tin bệnh nhân đã đăng ký 69
Hình 4.43 Các bước chụp hình ảnh nhiệt bàn chân ở giao diện chính 70
Hình 4.44 Truy cập vào giao diện truy xuất ảnh 70
Hình 4.45 Giao diện truy xuất ảnh 70
Hình 4.46 Các thao tác trong giao diện truy xuất ảnh 70
Hình 4.47 Truy cập vào giao diện hỗ trợ chẩn đoán 72
Hình 4.48 Giao diện hỗ trợ chẩn đoán 72
Hình 4.49 Các bước thao tác trong giao diện hỗ trợ chẩn đoán 72
Hình 5.1 Hệ thống đang hoạt động 73
Hình 5.2 Hộp thoại thông báo kết nối thành công 74
Hình 5.3 Hộp thoại thông báo quét QR thành công 74
Hình 5.4 Hộp thoại thông báo thêm dữ liệu bệnh nhân mới thành công 75
Hình 5.5 Hộp thoại xác nhận cập nhật thông tin bệnh nhân 75
Hình 5.6 Hộp thoại thông báo cập nhật thông tin bệnh nhân thành công 75
Hình 5.7 Hộp thoại xác nhận xóa dữ liệu thông tin bệnh nhân 76
Hình 5.8 Hộp thoại thông báo xóa dữ liệu thông tin bệnh nhân thành công 76
Hình 5.9 Kết quả tìm kiếm theo ID bệnh nhân 76
Hình 5.10 Kết quả tìm kiếm gần đúng theo họ và tên bệnh nhân 77
Hình 5.11 Dữ liệu được lưu trong cơ sở dữ liệu 77
Trang 17Hình 5.14 Thông tin về ảnh được tổng hợp vào file Excel 78
Hình 5.15 Giao diện truy xuất ảnh thành công 79
Hình 5.16 Hộp thoại xác nhận xóa ảnh 79
Hình 5.17 Hộp thoại thông báo xóa ảnh thành công 80
Hình 5.18 Đồ thị thể hiện sự thay đổi của giá trị accuracy 80
Hình 5.19 Đồ thị thể hiện sự thay đổi của giá trị loss 81
Hình 5.20 Cửa sổ cho phép người dùng chọn ảnh cần chẩn đoán 81
Hình 5.21 Kết quả sau khi chẩn đoán 81
Hình 5.22 Ma trận nhầm lẫn của mô hình phân loại 85
Trang 18Bảng Trang
Bảng 2.1 Bảng thông số kỹ thuật của Arduino UNO R3 11
Bảng 2.2 Bảng chức năng các chân của Arduino UNO R3 sử dụng trong đề tài 12
Bảng 3.1 Bảng liệt kê các linh kiện cần tính toán 27
Bảng 3.2 Bảng kích thước bàn chân 31
Bảng 3.3 Phân loại và số lượng từng phân loại trong tập dữ liệu 37
Bảng 4.1 Bảng danh sách linh kiện trong mạch in 42
Bảng 5.1 Bảng thống kê thời gian chụp ảnh bàn chân trái 82
Bảng 5.2 Bảng thống kê thời gian chụp ảnh bàn chân phải 83
Bảng 5.3 Thống kê thời gian đưa ra kết quả phân loại 85
Bảng 5.4 Kết quả phân loại sử dụng giao diện hỗ trợ chẩn đoán 86
Bảng 5.5 Bảng danh sách linh kiện được sử dụng để thi công hệ thống 87
Trang 19STT Từ viết tắt Tên đầy đủ
1 CAD Computer-Aided Design
2 CCCD Căn cước công dân
3 CG Control Group
4 CNN Convolutional Neural Network
5 DFU Diabetic Foot Ulcer
6 DIY Do It Yourself
7 DM Diabetes Mellitus
8 GUI Graphical User Interface
9 IDE Integrated Development Environment
10 IDF International Diabetes Federation
11 QR Quick Response
12 VGG Visual Geometry Group
13 VS Visual Studio
Trang 20STT Tên Tiếng Anh Tên Tiếng Việt
1 Activation Function Hàm kích hoạt
2 Average Pooling Lấy mẫu trung bình
3 Confusion Matrix Ma trận nhầm lẫn
4 Convolutional Layer Lớp tích chập
5 Features Map Ma trận ảnh đặc trưng
6 Fully Connected Layer Lớp kết nối đầy đủ
7 Max Pooling Lấy mẫu lớn nhất
8 Pooling Layer Lớp lấy mẫu
9 Transfer Learning Học chuyển giao
Trang 21Trong bối cảnh gia tăng số lượng bệnh nhân đái tháo đường trên toàn cầu, việc
chẩn đoán và điều trị các biến chứng liên quan đến bệnh lý này trở nên vô cùng quan
trọng Một trong những biến chứng phổ biến và nguy hiểm nhất là loét bàn chân do
bệnh đái tháo đường, gây ra những hậu quả nghiêm trọng nếu không được phát hiện
và xử lý kịp thời Sử dụng công nghệ hình ảnh nhiệt, có thể phát hiện sớm những dấu
hiệu bất thường ở bàn chân bệnh nhân Trong bối cảnh đó, việc thiết kế và thi công
một mô hình thu thập và phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo
đường là một giải pháp tiên tiến, giúp nâng cao hiệu quả chẩn đoán và điều trị, đồng
thời giảm thiểu nguy cơ biến chứng và chi phí y tế Đề tài “Thiết kế và thi công mô
hình thu thập và phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo đường”
với mục đích nhằm đáp ứng nhu cầu cấp thiết này
Đề tài này sẽ tiến hành thiết kế và thi công mô hình chụp ảnh nhiệt bàn chân
và hệ thống dùng để điều khiển, thu thập, quản lý, lưu trữ hình ảnh và thông tin bệnh
nhân Hệ thống bao gồm giao diện người dùng, vi điều khiển trung tâm và khối điều
khiển cơ Giao diện người dùng sẽ cung cấp các chức năng như chụp ảnh nhiệt bàn
chân, quản lý, truy xuất thông tin bệnh nhân và lưu trữ hình ảnh Vi điều khiển trung
tâm là Arduino UNO R3 sẽ tiếp nhận và xử lý dữ liệu, điều khiển khối điều khiển cơ
và máy ảnh nhiệt để chụp ảnh Khối điều khiển cơ sẽ điều khiển động cơ bước, giúp
máy ảnh di chuyển giữa hai vị trí chân trái và chân phải Bên cạnh đó, tại giao diện
người dùng có thêm chức năng hỗ trợ chẩn đoán Chức năng này sử dụng mô hình
máy học từ mạng VGG16 đã được huấn luyện từ trước để đưa ra chẩn đoán Mô hình
máy học đã đạt được độ chính xác toàn tập train là 97.21%, giá trị f1-score là 97.22%
và độ chính xác toàn tập validation là 90.61%, giá trị f1-score là 92.23%
Trang 22là rất cao Vào năm 2021, tại Việt Nam có khoảng 2 triệu người tức hơn phân nửa số người bệnh mà không biết mình đang mắc phải căn bệnh này [1]
Việc phát hiện sớm bệnh đái tháo đường đem lại nhiều lợi ích quan trọng, bao gồm cải thiện chất lượng cuộc sống và giảm nguy cơ các biến chứng nguy hiểm Do
đó, việc thúc đẩy các biện pháp sàng lọc và kiểm tra định kỳ có thể là chìa khóa để quản lý bệnh đái tháo đường một cách hiệu quả Sự phát triển của công nghệ chẩn đoán hình ảnh cũng góp một phần nào vào việc phát hiện bệnh đái tháo đường Hiện nay, đã có rất nhiều nghiên cứu về lĩnh vực này, theo tác giả Francis Ring, D.Sc., FIPEM, FRPS, Đơn vị nghiên cứu hình ảnh y tế, Khoa Công nghệ tiên tiến, Đại học Glamorgan, Vương quốc Anh về “Thermal Imaging Today and Its Relevance to Diabetes” (Hình ảnh nhiệt ngày nay và mối liên quan của nó với bệnh tiểu đường) chỉ ra rằng chụp ảnh nhiệt hồng ngoại là một kỹ thuật đáng tin cậy để ghi lại sự phân
bố nhiệt độ trên da và nó là công cụ hữu ích dùng để đánh giá khả năng tưới máu và tuần hoàn máu ngoại biên đối với bệnh đái tháo đường [2] Đồ án tốt nghiệp của Trần Thị Thiêm năm 2023 với đề tài “Thiết kế và thi công thiết bị quản lý thu thập và lưu trữ hình ảnh phục vụ chẩn đoán và đánh giá vết loét bàn chân do đái tháo đường” đã xây dựng một hệ thống thu thập và lưu trữ hình ảnh lâm sàng bằng máy ảnh thường
để phục vụ cho việc chẩn đoán vết loét ở bàn chân do bệnh đái tháo đường [3]
Nhìn thấy được từ mối quan tâm của xã hội về bệnh đái tháo đường, qua những bài báo, đồ án đã khảo sát được, tiến hành thực hiện đề tài về việc chụp ảnh nhiệt để chẩn đoán bệnh đái tháo đường Đề tài “Thiết kế và thi công hệ thống thu thập và
Trang 23phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo đường” chụp ảnh nhiệt từ bàn chân bệnh nhân và hỗ trợ các bác sĩ trong việc chẩn đoán bệnh đái tháo đường
1.2 MỤC TIÊU
Mục tiêu chính của đề tài là thiết kế và thi công một hệ thống thu thập và lưu trữ hình ảnh nhiệt của bàn chân bệnh nhân đái tháo đường Hệ thống này sẽ cho phép người dùng thu thập hình ảnh nhiệt bàn chân thông qua giao diện Đồng thời trong giao diện sẽ có thêm chức năng hỗ trợ chẩn đoán bệnh đái tháo đường dựa trên hình ảnh nhiệt bàn chân đã chụp bằng một mô hình máy học đã được huấn luyện trước
1.3 NỘI DUNG NGHIÊN CỨU
Đề tài “Thiết kế và thi công hệ thống thu thập và phân loại hình ảnh nhiệt bàn chân của bệnh nhân đái tháo đường” đã tiến hành thực hiện những nội dung như sau:
NỘI DUNG 1: Tìm hiểu lý thuyết về bệnh đái tháo đường, đặc biệt là sự ảnh hưởng của bệnh đái tháo đường khi di căn đến bàn chân
NỘI DUNG 2: Thiết kế và thi công phần cứng của hệ thống để chụp ảnh nhiệt bàn chân
NỘI DUNG 3: Kết nối máy ảnh nhiệt với máy tính
NỘI DUNG 4: Xây dựng và huấn luyện mô hình máy học để hỗ trợ chẩn đoán
NỘI DUNG 5: Thiết kế giao diện để điều khiển và lập trình các chức năng chụp, lưu trữ, hỗ trợ chẩn đoán hình ảnh, thu thập và quản lý thông tin bệnh nhân
NỘI DUNG 6: Tiến hành chạy thử nghiệm và hiệu chỉnh hệ thống
NỘI DUNG 7: Đánh giá kết quả thực hiện
NỘI DUNG 8: Viết báo cáo
NỘI DUNG 9: Bảo vệ luận văn
1.4 GIỚI HẠN
Giới hạn của đề tài này bao gồm:
Sử dụng máy ảnh nhiệt tầm xa MLX90640 tích hợp màn hình LCD 2inch với
độ phân giải 320×240 pixel, bộ nhớ Flash 16MB
Phân loại được có hoặc không có sự ảnh hưởng của bệnh đái tháo đường đến bàn chân người bệnh
Trang 24 Chất liệu của hộp chụp: Thép không gỉ bên ngoài và nhựa PVC bên trong
Điều khiển thông qua giao diện máy tính
1.5 BỐ CỤC
Chương 1: Tổng quan
Trình bày tổng quan về lý do chọn đề tài, mục tiêu đề tài, nội dung nghiên cứu, một vài giới hạn của đề tài và bố cục của đồ án
Chương 2: Cơ sở lý thuyết
Trình bày cơ sở lý thuyết về các vấn đề liên quan đến bệnh đái tháo đường, thu thập hình ảnh và thông tin bệnh nhân, mô hình máy học sử dụng, cũng như lý thuyết
về phần cứng và phần mềm cần thiết để thiết kế đề tài
Chương 3: Thiết kế và tính toán
Trình bày các bước tính toán và thiết kế dựa trên những yêu cầu đã đề ra: thiết
kế sơ đồ khối, sơ đồ nguyên lý, giao diện và bản vẽ cho mô hình thu thập hình ảnh nhiệt bàn chân
Chương 4: Thi công hệ thống
Trình bày chi tiết về quá trình thi công và kiểm tra các thành phần của phần cứng, xây dựng và huấn luyện mô hình máy học, triển khai các giao diện cần thiết để người dùng dễ dàng điều khiển hệ thống
Chương 5: Kết quả - Nhận xét - Đánh giá
Trình bày kết quả thu được, tiến hành so sánh và nhận xét kết quả đạt được với yêu cầu của đề tài, từ đó đưa ra đánh giá chung của đề tài
Chương 6: Kết Luận và Hướng Phát Triển
Tổng kết quá trình nghiên cứu, kết quả tổng thể của đề tài, xác định những hạn chế còn sót lại của đề tài Từ đó, đưa ra những đề xuất và hướng phát triển tiếp theo của đề tài trong tương lai
Trang 25Chương 2 CƠ SỞ LÝ THUYẾT
Chương này trình bày lý thuyết về bệnh đái tháo đường; ứng dụng nhiệt đồ bàn chân trong chẩn đoán; mục đích, quy trình, trách nhiệm khi thu thập hình ảnh và thông tin bệnh nhân; mô hình máy học phân loại hình ảnh nhiệt bàn chân; lý thuyết về linh kiện và phần mềm hỗ trợ thiết kế, lập trình hệ thống thu thập
2.1 GIỚI THIỆU VỀ ĐÁI THÁO ĐƯỜNG VÀ CÁC BIẾN CHỨNG
Bệnh đái tháo đường (Diabetes Mellitus - DM) là một rối loạn chuyển hóa đặc trưng bởi tình trạng tăng đường huyết kéo dài Nguyên nhân do cơ thể không sản xuất
đủ insulin hoặc kháng insulin (Insulin là một hormone do tuyến tụy sản xuất, giúp điều hòa lượng đường trong máu) Các yếu tố nguy cơ bao gồm người thân mắc bệnh, môi trường và chỉ số khối cơ thể (BMI) cao [4]
Bệnh đái tháo đường dẫn đến nhiều biến chứng nghiêm trọng: tim mạch, đột quỵ, suy thận, mù lòa, thiếu máu cục bộ, bệnh lý mạch máu ngoại biên Đặc biệt, biến chứng bàn chân do đái tháo đường (Diabetic Foot Ulcer - DFU) là một trong những biến chứng nghiêm trọng nhất, dẫn đến loét, nhiễm trùng và cắt cụt chi Nguyên nhân chính gây ra DFU bao gồm: tổn thương thần kinh và bệnh mạch máu ngoại biên
Tổn thương thần kinh bị tác động bởi ba thành phần sau: cảm giác, vận động,
tự chủ Bệnh lý thần kinh cảm giác ở chân do tổn thương các dây thần kinh cảm giác, khiến bệnh nhân không cảm nhận được các vết thương nhỏ Tổn thương thần kinh vận động dẫn đến yếu cơ, biến dạng cấu trúc bàn chân, gây
áp lực không đều khi đi lại Bệnh lý thần kinh tự chủ gây mất chức năng tự động của các dây thần kinh có thể dẫn đến khô da, nứt nẻ và dễ bị nhiễm trùng
Bệnh mạch máu ngoại biên làm giảm lưu thông máu đến chân, giảm khả năng lành vết thương và tăng nguy cơ nhiễm trùng, dẫn đến hoại tử [5]
2.2 NHIỆT ĐỒ BÀN CHÂN CHẨN ĐOÁN ĐÁI THÁO ĐƯỜNG
Con người thuộc nhóm động vật hằng nhiệt, duy trì nhiệt độ cơ thể gần 37°C nhờ sự cân bằng giữa sinh nhiệt và thải nhiệt, dưới sự kiểm soát của hệ thần kinh tự chủ Công nghệ máy ảnh hồng ngoại được phát triển để phát hiện và theo dõi biến
Trang 26động nhiệt độ này mà không cần tiếp xúc, mang lại sự tiện lợi và độ chính xác cao Máy ảnh hồng ngoại chuyển đổi tia hồng ngoại từ vật thể thành dữ liệu số, mỗi điểm ảnh trên ảnh thể hiện một giá trị nhiệt độ Sự khác biệt nhiệt độ phản ánh thay đổi trong cung cấp máu, viêm nhiễm hoặc tổn thương da và các vấn đề sức khỏe khác
Hình ảnh nhiệt không xâm lấn, không gây đau, đóng vai trò quan trọng trong chăm sóc y tế như hỗ trợ sàng lọc ung thư vú, chẩn đoán rối loạn thần kinh, theo dõi chấn thương mô mềm trong thể thao, giám sát phẫu thuật và đánh giá lưu thông máu Đặc biệt, hình ảnh nhiệt giúp chẩn đoán và theo dõi loét bàn chân ở bệnh nhân đái tháo đường, phát hiện sớm các vùng nguy cơ loét hoặc nhiễm trùng, lưu thông máu kém, cho phép can thiệp kịp thời, giảm nguy cơ cắt cụt chi [6]
2.3 THU THẬP HÌNH ẢNH VÀ THÔNG TIN BỆNH NHÂN
Hình ảnh nhiệt và thông tin bệnh nhân cung cấp thông tin quý báu cho nghiên cứu, giúp hiểu rõ hơn về cơ chế bệnh lý, dùng để huấn luyện các mô hình trí tuệ nhân tạo, phát hiện xu hướng mới và phát triển công nghệ y tế tiên tiến
Trang 27 Chuẩn bị bệnh nhân: Hướng dẫn bệnh nhân quá trình thu thập hình ảnh và các yêu cầu cụ thể, thực hiện các biện pháp an toàn cho các trường hợp đặc biệt
Chọn phương pháp thu hình ảnh: Dựa vào triệu chứng và mục đích chẩn đoán, bác sĩ chọn phương pháp phù hợp như X-quang, siêu âm, cộng hưởng từ, chụp cắt lớp vi tính, chụp ảnh y khoa, chụp ảnh nhiệt
Thực hiện thu hình ảnh: Kỹ thuật viên thực hiện quy trình dưới sự hướng dẫn của bác sĩ, các thiết bị cần được cấu hình đúng và sử dụng một cách chính xác
2.3.3 Trách nhiệm khi thu thập hình ảnh và thông tin bệnh nhân
Trong quá trình thu thập hình ảnh và thông tin y tế, việc tuân thủ các trách nhiệm đạo đức và pháp lý là vô cùng quan trọng Các chuyên gia y tế không chỉ phải đảm bảo sự chính xác và bảo mật của dữ liệu mà còn phải tôn trọng quyền lợi và quyền riêng tư của bệnh nhân Dưới đây là những khía cạnh chính cần được chú ý:
Trước khi thu thập dữ liệu, bệnh nhân phải được cung cấp thông tin chi tiết về mục đích, quy trình và cách sử dụng dữ liệu, họ phải đồng ý tham gia một cách
tự nguyện Tài liệu này cần được lưu trữ cẩn thận để đảm bảo tính minh bạch
Thông tin cá nhân của bệnh nhân phải được bảo mật tuyệt đối, đảm bảo không
có truy cập trái phép và bệnh nhân cảm thấy an tâm khi chia sẻ thông tin y tế
Chất lượng và tiêu chuẩn hóa dữ liệu: Quy trình thu thập dữ liệu phải có tiêu chuẩn rõ ràng để đảm bảo tính chính xác và nhất quán Sử dụng các giao thức chuẩn giúp dữ liệu thu thập có thể so sánh, phân tích và sử dụng hiệu quả
Lưu trữ dữ liệu: Thông tin liên quan đến quá trình thu thập, phân tích và sử dụng dữ liệu phải được ghi chép đầy đủ và lưu trữ một cách hệ thống Hệ thống này phải chống lại truy cập trái phép, mất mát dữ liệu và các mối đe dọa an ninh khác Chỉ những người có thẩm quyền mới được phép truy cập dữ liệu
Trang 28 Tuân thủ nguyên tắc đạo đức: Các chuyên gia y tế phải tôn trọng quyền tự chủ, bảo mật và quyền riêng tư của bệnh nhân Các nghiên cứu và ứng dụng sử dụng dữ liệu y tế phải mang lại lợi ích cho bệnh nhân và cộng đồng
2.4 MÔ HÌNH MÁY HỌC
2.4.1 Mạng nơ-ron tích chập
Mạng nơ-ron tích chập (CNN - Convolutional Neural Network) là mô hình học sâu mạnh mẽ trong xử lý dữ liệu có cấu trúc lưới như hình ảnh và video CNN tự động học và rút trích đặc trưng từ dữ liệu đầu vào qua các lớp tích chập, lớp gộp, lớp kết nối đầy đủ và các hàm kích hoạt [7]
Lớp tích chập:
Lớp tích chập (Convolutional Layer) là thành phần cốt lõi của CNN, chịu trách nhiệm trích xuất đặc trưng từ dữ liệu đầu vào Nó hoạt động bằng cách áp dụng các kernel lên đầu vào để tạo ra các ma trận ảnh đặc trưng (feature maps) Các tham số chính của lớp tích chập bao gồm:
Kernel là một ma trận nhỏ (3x3, 5x5 hoặc 7x7) chứa các trọng số học trong quá trình huấn luyện, quét qua ảnh đầu vào tạo ra ma trận ảnh đặc trưng 2D
Stride: Số bước di chuyển của kernel qua ảnh đầu vào Stride lớn hơn giúp giảm kích thước ma trận ảnh đặc trưng nhưng có thể làm mất thông tin chi tiết Chọn stride phù hợp giúp cân bằng giữa việc giữ lại thông tin chi tiết và giảm
Trang 29Lớp lấy mẫu:
Lớp lấy mẫu (Pooling Layer) chịu trách nhiệm giảm kích thước không gian của các ma trận ảnh đặc trưng mà vẫn giữ lại các thông tin quan trọng Lớp này hoạt động bằng cách áp dụng một phép toán trên các vùng nhỏ của ma trận ảnh đặc trưng
Max Pooling: là phương pháp phổ biến nhất, chia ma trận ảnh đặc trưng thành các vùng nhỏ không chồng lấn và chọn giá trị lớn nhất từ mỗi vùng Điều này giúp giảm kích thước không gian và trích xuất các đặc trưng mạnh mẽ nhất, làm cho mô hình nhạy bén hơn với các đặc điểm nổi bật trong dữ liệu ảnh
Average Pooling: chia ma trận ảnh đặc trưng thành các vùng nhỏ không chồng lấn và tính giá trị trung bình của các phần tử trong mỗi vùng, giúp giữ thông tin tổng quát hơn và làm cho mô hình ổn định hơn trước nhiễu
Lớp kết nối đầy đủ:
Lớp kết nối đầy đủ (Fully Connected Layer) là thành phần quan trọng cuối cùng trong mạng CNN Mỗi nơ-ron trong lớp này kết nối với tất cả các nơ-ron của lớp trước đó, chuyển đổi đầu vào thành một vector phẳng chứa các giá trị từ các ma trận ảnh đặc trưng Lớp kết nối đầy đủ kết hợp các đặc trưng trích xuất từ các lớp trước và đưa ra quyết định cuối cùng, như xác suất của các lớp trong bài toán phân loại ảnh, nâng cao hiệu suất và độ chính xác của CNN
mô hình Một số hàm kích hoạt điển hình:
Hàm sigmoid biến đổi đầu vào thành giá trị trong khoảng (0, 1) Thường áp dụng trong lớp đầu ra của mô hình phân loại nhị phân Tuy nhiên, hàm này có gradient bị tiêu biến, gây khó khăn cho quá trình học sâu Công thức:
𝜎(𝑥) = 1
1 + 𝑒−𝑥 (2.1)
Trang 30 Hàm kích hoạt tanh biến đổi đầu vào thành một giá trị nằm trong khoảng (-1, 1) Tương tự như sigmoid, tanh cũng gặp vấn đề với gradient bị tiêu biến nhưng hoạt động tốt hơn trong việc xử lý các giá trị âm và dương Công thức:
16 lớp bao gồm các lớp tích chập và lớp kết nối đầy đủ Lớp đầu vào có kích thước 224x224x3 (ảnh màu RGB), tiếp theo là 13 lớp tích chập sử dụng kernel 3x3 và stride
1, được tổ chức thành 5 khối Mỗi khối được kết thúc bằng lớp Max Pooling 2x2 với stride 2 Sau đó là 3 lớp kết nối đầy đủ, trong đó 2 lớp đầu tiên có 4096 nơ-ron và sử dụng hàm kích hoạt ReLU Lớp cuối cùng là lớp softmax với số lượng nơ-ron tương ứng với số lớp phân loại, thường là 1000 cho bộ dữ liệu ImageNet [8]
2.4.3 Kỹ thuật học chuyển giao
Học chuyển giao (Transfer Learning) tận dụng kiến thức từ các mô hình đã được huấn luyện trên các nhiệm vụ khác với tập dữ liệu lớn hơn Trong học chuyển giao, kiến thức từ mô hình đã được huấn luyện trên nhiệm vụ khác được tận dụng để cải thiện hiệu suất trên nhiệm vụ mới Quá trình này giúp tiết kiệm thời gian, giảm nguy cơ overfitting và tăng khả năng tổng quát hóa của mô hình
Trang 31 Mô hình được huấn luyện từ trước (Pre-training): Mô hình được huấn luyện trước trên các bộ dữ liệu lớn như ImageNet, với hàng triệu ảnh và hàng ngàn lớp phân loại Các mô hình cơ sở phổ biến như VGG, ResNet, Inception
Tuỳ chỉnh mô hình (Fine-tuning): Trong giai đoạn này, mô hình được điều chỉnh trên tập dữ liệu mới, thường là một tập nhỏ và chuyên biệt hơn Các lớp đầu tiên của mô hình thường được giữ nguyên, trong khi các lớp cuối cùng được cập nhật để học các đặc trưng cụ thể cho nhiệm vụ mới
Áp dụng cho nhiệm vụ mới: Bằng cách tận dụng đặc trưng quan trọng đã học
từ giai đoạn tiền huấn luyện và tinh chỉnh theo dữ liệu cụ thể của nhiệm vụ mới, mô hình có khả năng nhận diện và phân loại các đặc trưng một cách hiệu quả hơn trong các ứng dụng thực tế [9]
2.5 PHẦN CỨNG
2.5.1 Bộ điều khiển Arduino
Arduino là một nền tảng mã nguồn mở giúp tạo và lập trình dự án điện tử, gồm
bo mạch vi điều khiển và môi trường phát triển tích hợp (IDE), được sử dụng trong nhiều lĩnh vực từ DIY đến công nghiệp và giáo dục Arduino tương tác với máy tính qua cổng USB Bo mạch chứa các chân I/O để giao tiếp với các thiết bị ngoại vi và các linh kiện khác như bộ dao động thạch anh, bộ ổn áp và các cổng kết nối để cấp nguồn và nạp chương trình [10] Hình 2.1 là các bo mạch Arduino phổ biến lần lượt
là Arduino UNO, Arduino Mega, Arduino Nano
Đề tài sử dụng Arduino UNO R3 làm bộ xử lý trung tâm Arduino UNO là một trong những bo mạch vi điều khiển phổ biến nhất của nền tảng Arduino Nó được thiết kế dựa trên vi điều khiển ATmega328P, một vi điều khiển mạnh mẽ và linh hoạt Các thông số kỹ thuật của Arduino UNO R3 được mô tả như bảng 2.1
Hình 2.1 Các loại Arduino phổ biến
Trang 32Bảng 2.1 Bảng thông số kỹ thuật của Arduino UNO R3
Vi điều khiển ATmega328P
Bộ nhớ SRAM 2KB, FLASH 32KB, EEPROM 1KB Cổng kết nối USB-B
Số chân I/O kỹ thuật số 14 (6 chân PWM)
Số chân I/O tương tự 6
Điện áp hoạt động 5V
Điện áp đầu vào 7-12V
Dòng điện tiêu thụ trên mỗi chân 20mA
Tần số 16MHz
Sơ đồ chân của Arduino UNO R3 được thể hiện như hình 2.2, có tổng cộng
14 chân đầu vào/ra kỹ thuật số (trong số này có 6 chân có thể làm đầu ra xung PWM,
2 chân Serial dùng giao tiếp UART, 4 chân có thể giao tiếp SPI); có 6 chân đầu vào
là analog với độ phân giải là 10bit, các chân này có thể đọc các giá trị điện áp từ 0 đến 5V và có 2 chân có thể giao tiếp I2C Các chân được sử dụng trong đề tài lần này được liệt kê các chức năng như bảng 2.2
Hình 2.2 Sơ đồ các chân của Arduino UNO R3
Trang 33Sơ đồ chân của Arduino UNO R3 được thể hiện như hình 2.2, có tổng cộng
14 chân đầu vào/ra kỹ thuật số (trong số này có 6 chân có thể làm đầu ra xung PWM,
2 chân Serial dùng giao tiếp UART, 4 chân có thể giao tiếp SPI); có 6 chân đầu vào
là analog với độ phân giải là 10bit, các chân này có thể đọc các giá trị điện áp từ 0 đến 5V và có 2 chân có thể giao tiếp I2C Các chân được sử dụng trong đề tài lần này được liệt kê các chức năng như bảng 2.2
Bảng 2.2 Bảng chức năng các chân của Arduino UNO R3 sử dụng trong đề tài
Tên chân Kí hiệu chân Chức năng
digital D0 đến D13 Chân đầu vào/ra số, hoạt động ở hai mức điện áp 0V và
5V với các dòng vào/ra tối đa trên mỗi chân là 40 mA
2.5.2 Máy ảnh nhiệt
Máy ảnh nhiệt, hay còn gọi là máy ảnh hồng ngoại, sử dụng công nghệ hồng ngoại để phát hiện và hiển thị nhiệt độ của các vật thể Cảm biến trong máy ảnh nhiệt phát hiện bức xạ hồng ngoại và chuyển đổi thành tín hiệu điện tử, xử lý để tạo ra hình ảnh nhiệt, biểu thị các mức nhiệt độ khác nhau bằng các màu sắc khác nhau [11]
và độ chính xác ±2°C Tốc độ làm mới 8Hz cung cấp hình ảnh nhiệt động liên tục và
Trang 34góc nhìn rộng cho phép quan sát khu vực rộng lớn hơn trong một lần quét Dung lượng bộ nhớ 16MB đủ lớn để lưu trữ nhiều hình ảnh nhiệt và dữ liệu quan trọng, trong khi kết nối TYPE-C chuẩn và pin tích hợp 3.7V 600mAh mang lại sự tiện lợi
và thời gian sử dụng dài
2.5.3 Động cơ điện
Động cơ điện chuyển đổi năng lượng điện thành năng lượng cơ học để tạo ra chuyển động [12] Động cơ điện có thể được phân loại theo nhiều tiêu chí khác nhau, nếu dựa theo cấu trúc và nguyên lý hoạt động thì động cơ điện có thể phân thành động
cơ servo, động cơ bước và động cơ truyền động trực tiếp Hình 2.4 lần lượt là động
cơ servo, động cơ bước, động cơ truyền động trực tiếp
Trong đề tài này, để di chuyển qua lại và dừng ở một vị trí chính xác, động cơ bước là lựa chọn phù hợp nhất Động cơ bước chia chuyển động quay thành các bước rời rạc, mỗi bước với một lượng độ cố định, cho phép quay một góc chính xác của trục mà chỉ cần đếm số bước mà không cần dùng đến cảm biến [13] Động cơ bước hoạt động dựa trên sự tương tác giữa phần tĩnh và phần quay Khi một cuộn dây trên phần tĩnh được cấp điện, dòng điện chạy qua tạo ra từ trường, làm rotor xoay Bằng cách cấp điện cho các pha của phần tĩnh theo một trình tự nhất định, rotor xoay từng bước nhỏ theo hướng mong muốn Quá trình này tạo ra chuyển động quay liên tục với độ chính xác cao, cho phép điều khiển vị trí và tốc độ hiệu quả
2.5.4 Vít me
Vít me là một cơ cấu truyền động tuyến tính chuyển đổi chuyển động quay của động cơ thành chuyển động thẳng Mục đích chính của trục vít me là sử dụng ren của nó để đẩy đai ốc trục vít me về phía trước và phía sau theo các bước nhỏ, rất chính xác Khi trục vít xoay, đai ốc được gắn vào sẽ chuyển động theo, biến chuyển
Hình 2.4 Các loại động cơ điện phổ biến
Trang 35động quay thành chuyển động tuyến tính, làm cho vít me trở thành một loại bộ truyền động tuyến tính cơ học Hình 2.5 là hình ảnh trục vít me và con trượt tròn
Hoạt động của vít me dựa trên sự trượt giữa trục vít và các rãnh của đai ốc mà không có vòng bi, dẫn đến ma sát cao và tổn thất năng lượng Ma sát này xảy ra vì trục vít và đai ốc trực tiếp tiếp xúc với nhau trên một diện tích lớn, gây ra sự cản trở chuyển động mượt mà và hiệu quả Tuy nhiên, thiết kế các rãnh đã được cải tiến để giảm thiểu ma sát, nhờ vào các kỹ thuật gia công và chất liệu tiên tiến Vít me thường được làm từ các vật liệu như thép, inox, đồng hoặc nhôm [14]
hỗ trợ quản lý thư viện và bo mạch bên thứ ba một cách dễ dàng Mã được viết trên IDE sau đó được biên dịch thành tệp Hex và tải lên bo mạch Arduino Môi trường IDE bao gồm trình soạn thảo để viết mã và trình biên dịch để biên dịch và tải mã vào
bo mạch Arduino IDE hỗ trợ cả ngôn ngữ lập trình C và C++ [15]
Giao diện của Arduino IDE được thể hiện như hình 2.6, cụ thể là:
1 Vùng công cụ: gồm thanh công cụ (chứa các nút biên dịch, tải lên và mở cửa sổ Serial), menu tùy chọn, kết nối với bo mạch cần nạp chương trình
2 Vùng soạn thảo: đây là vùng viết mã lập trình cho bo mạch
3 Vùng thông báo kết quả đầu ra: chứa cửa sổ kết quả của quá trình biên dịch và cửa sổ Serial
Trang 36Hình 2.6 Giao diện lập trình chính của Arduino IDE
b Ngôn ngữ lập trình Python
Python là một ngôn ngữ lập trình được sử dụng rộng rãi và phổ biến trong các ứng dụng về lập trình web, các phần mềm, khoa học dữ liệu và máy học [16] Bắt đầu phát triển bởi Guido Van Rossum từ năm 1989 và ra mắt phiên bản đầu tiên vào năm
1991, là một ngôn ngữ lập trình mạnh mẽ với nhiều đặc điểm nổi bật Đầu tiên, Python
là một ngôn ngữ thông dịch, không cần biên dịch trước khi chạy, giúp việc phát triển
và thử nghiệm mã trở nên nhanh chóng Cú pháp rõ ràng và gần gũi với ngôn ngữ tự nhiên làm cho Python trở thành một ngôn ngữ linh hoạt và dễ sử dụng
Hệ sinh thái Python phong phú và đa dạng với nhiều thư viện và framework mạnh mẽ Python có thể lập trình trên nhiều phần mềm và môi trường phát triển khác nhau, từ các trình soạn thảo văn bản đơn giản đến các môi trường phát triển tích hợp (IDE) chuyên nghiệp Python cung cấp một loạt các phần mềm và môi trường phát triển cho lập trình viên, gồm IDLE, PyCharm, Visual Studio Code, Jupyter Notebook
c Visual Studio Code
Visual Studio Code (VS Code) là một trình soạn thảo mã nguồn mở miễn phí
do Microsoft phát triển, được ứng dụng để phát triển trang web, ứng dụng di động và phát triển backend [17] Công cụ gỡ lỗi mạnh mẽ và hỗ trợ Git tích hợp sẵn trong VS Code giúp quản lý mã nguồn hiệu quả VS Code tích hợp tính năng tự động hoàn thành mã và gợi ý mã Nó cũng tích hợp terminal, cho phép thực thi các lệnh trực tiếp trong trình soạn thảo Terminal hỗ trợ nhiều shell khác nhau như Bash, PowerShell
và Command Prompt Một số tiện ích mở rộng phổ biến bao gồm Prettier để định dạng mã tự động, ESLint để kiểm tra và sửa lỗi cú pháp JavaScript và Python để hỗ trợ cho Python với tính năng IntelliSense, debugging và testing
Trang 37Giao diện cấu trúc phân cấp của VS Code giúp quản lý tệp và thư mục một cách rõ ràng và hiệu quả, qua sidebar hiển thị cấu trúc cây của toàn bộ dự án Hình 2.7 là giao diện của VS Code, các thành phần trong giao diện này gồm:
1 Thanh menu: bao gồm các lệnh để quản lý tệp, chỉnh sửa văn bản, điều chỉnh giao diện, di chuyển trong mã nguồn, quản lý quá trình chạy và gỡ lỗi ứng dụng, cũng như truy cập vào các tài liệu và trợ giúp
2 Thanh công cụ: chứa các biểu tượng để truy cập nhanh vào các tính năng chính quản lý tệp và thư mục, tìm kiếm, quản lý mã nguồn, chạy và gỡ lỗi
và các tiện ích mở rộng khác
3 Thanh bên: hiển thị nội dung của mục được chọn trong Activity Bar
4 Cửa sổ soạn thảo: là nơi viết và chỉnh sửa mã Có thể thao tác nhiều tệp để xem và chỉnh sửa nhiều tệp cùng lúc
5 Cửa sổ đầu ra: là cửa sổ hiển thị kết quả đầu ra của quá trình biên dịch
6 Thanh trạng thái: hiển thị thông tin nhánh Git đang làm việc, thông báo lỗi, định dạng tệp, vị trí con trỏ trong tệp và các chi tiết khác liên quan đến môi trường phát triển của bạn
Hình 2.7 Giao diện lập trình chính của VS Code
2.6.2 Phần mềm thiết kế
a PyQT, QT Designer
PyQT là bộ thư viện để thiết kế các giao diện đồ hoạ người dùng trên máy tính bằng ngôn ngữ lập trình Python PyQT nổi bật hơn các thư viện khác nhờ có đa dạng các widget và bộ công cụ mạnh mẽ, hỗ trợ đa nền tảng, dễ sử dụng PyQT phát triển dựa trên framework Qt hỗ trợ phát triển ứng dụng đa nền tảng Qt cũng cung cấp các công cụ để kết nối mạng, luồng, biểu thức chính quy, cơ sở dữ liệu SQL, SVG,
Trang 38Để tạo giao diện người dùng trong PyQT, có thể sử dụng QT Designer Qt Designer là một công cụ của Qt cung cấp cho bạn một giao diện người dùng WYSIWYG (What You See Is What You Get) để tạo giao diện GUI cho các ứng dụng PyQt của bạn một cách hiệu quả và nhanh chóng Với công cụ này, bạn có thể tạo giao diện GUI bằng cách kéo và thả các đối tượng QWidget trên một biểu mẫu trống Sau đó, bạn có thể sắp xếp chúng thành một giao diện GUI mạch lạc bằng cách
sử dụng các quản lý bố cục khác nhau
Một số widget phổ biến khi tạo giao diện trong Qt Designer:
- QPushButton: Nút bấm thực hiện lệnh khi nhấn
- QLabel: Hiển thị văn bản hoặc hình ảnh tĩnh
- QLineEdit: Ô nhập một dòng văn bản
- QTextEdit: Ô nhập và chỉnh sửa văn bản đa dòng
- QComboBox: Danh sách thả xuống để chọn một mục
- QCheckBox: Tùy chọn: chọn hoặc bỏ chọn
- QListWidget: Danh sách các mục để chọn
- QTableWidget: Hiển thị dữ liệu dạng bảng
- QProgressBar: Hiển thị tiến trình của một nhiệm vụ
Chuyển đổi nội dung của các tệp ui thành mã Python bằng dòng lệnh pyuic5
đi kèm với PyQt Sau đó, bạn có thể sử dụng mã Python này trong các ứng dụng GUI của mình Bạn cũng có thể đọc trực tiếp các tệp ui và tải nội dung của chúng để tạo
ra giao diện GUI liên quan [19]
b SQLite
SQLite ra đời năm 2000 bởi D Richard Hipp, là một hệ quản trị cơ sở dữ liệu nhẹ, đơn giản Qua nhiều năm, SQLite đã được áp dụng rộng rãi bao gồm trình duyệt web, điện thoại di động và nhiều phần mềm khác Là một thư viện phần mềm cung cấp một hệ quản trị cơ sở dữ liệu quan hệ SQLite sử dụng kiểu dữ liệu động cho các bảng, cho phép bạn lưu trữ bất kỳ giá trị nào trong bất kỳ cột nào, bất kể kiểu dữ liệu
Nó cho phép một kết nối cơ sở dữ liệu duy nhất truy cập nhiều tệp cơ sở dữ liệu đồng thời, mang lại nhiều tính năng hữu ích như kết hợp bảng từ các cơ sở dữ liệu khác nhau hoặc sao chép dữ liệu giữa các cơ sở dữ liệu chỉ với một lệnh SQLite cũng có khả năng tạo ra các cơ sở dữ liệu trong bộ nhớ, giúp tăng tốc độ xử lý [20]
Trang 39c Solidworks
Trong thời đại công nghệ hiện đại, việc sử dụng máy tính và phần mềm CAD (Computer-Aided Design) đã thay thế việc vẽ bản vẽ kỹ thuật bằng tay SolidWorks, một phần mềm CAD phổ biến do Dassault Systèmes phát triển, đặc biệt được ưa chuộng trong việc thiết kế và mô phỏng sản phẩm 3D [21] Nó cung cấp các công cụ mạnh mẽ cho việc tạo bản vẽ kỹ thuật và thực hiện các phân tích Với giao diện dễ
sử dụng và tính linh hoạt, SolidWorks đóng vai trò quan trọng trong nhiều lĩnh vực,
từ thiết kế sản phẩm đến giáo dục và nghiên cứu Giao diện chính như hình 2.8 của phần mềm SolidWorks gồm bốn phần lớn:
1 Thanh công cụ và menu bao gồm thanh tiêu đề, thanh công cụ chuẩn
và thanh công cụ lệnh, giúp người dùng truy cập các lệnh và công cụ thông dụng
2 Khu vực làm việc chính với cửa sổ đồ họa, nơi hiển thị, tương tác với các mô hình 3D và bản vẽ 2D
3 Công cụ hỗ trợ thiết kế và quản lý bao gồm cây tính năng, bảng thuộc tính và trình duyệt tác vụ, hỗ trợ người dùng quản lý và điều chỉnh các đối tượng, tài nguyên
4 Thanh trạng thái và phím tắt cung cấp thông tin trạng thái hiện tại và truy cập nhanh đến các công cụ thường dùng
Hình 2.8 Giao diện chính của SolidWorks
Trang 40Chương 3 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
Chương này tập trung vào việc tính toán và thiết kế hệ thống bao gồm các bước từ thiết kế sơ đồ khối, tính toán chi tiết cho từng khối đến việc vẽ bản thiết kế hoàn chỉnh Đầu tiên, chương này sẽ trình bày sơ đồ khối của hệ thống, mô tả chức năng của từng khối và cách các khối này tương tác với nhau Tiếp theo, tiến hành tính toán và thiết kế chi tiết cho từng khối, xác định các linh kiện cần thiết cùng với thông
số kỹ thuật và cách kết nối giữa chúng Sau đó, sơ đồ nguyên lý toàn mạch và sơ đồ kết nối sẽ được xây dựng để thể hiện mối quan hệ giữa các thành phần trong hệ thống Cuối cùng, bản vẽ thiết kế cho hộp cố định máy ảnh và mô hình thu thập hình ảnh nhiệt bàn chân
3.1 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.1.1 Thiết kế sơ đồ khối hệ thống
Hình 3.1 Sơ đồ khối hệ thống
Hình 3.1 là sơ đồ khối của hệ thống bao gồm các khối như: khối nguồn, khối
xử lý trung tâm, khối chụp ảnh, khối điều khiển cơ, khối giao tiếp người dùng, khối
cơ sở dữ liệu Chức năng của các khối như sau:
- Khối xử lý trung tâm: Khối này có chức năng nhận tín hiệu từ khối giao tiếp người dùng gửi về, kiểm tra dữ liệu đó và đưa ra quyết định, điều khiển hoạt động của khối chụp ảnh và khối điều khiển cơ