1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Đồ án hcmute) khảo sát kit medical application kinetis k50 và ứng dụng đo nồng độ oxy trong máu và nhịp tim

136 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG KHẢO SÁT KIT MEDICAL APPLICATION KINETIS K50 VÀ ỨNG DỤNG ĐO NỒNG ĐỘ OXY TRONG MÁU VÀ NHỊP TIM GVHD: ThS PHẠM TỶ PHÚ SVTH: NGUYỄN MINH QUÂN MSSV: 12141184 SVTH: LÊ THẾ NHẬT MSSV: 12141158 SKL 0 Tp Hồ Chí Minh, tháng 07/2016 an 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 - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: KHẢO SÁT KIT MEDICAL APPLICATION KINETIS K50 VÀ ỨNG DỤNG ĐO NỒNG ĐỘ OXY TRONG MÁU VÀ NHỊP TIM GVHD: ThS Phạm Tỷ Phú SVTH: Nguyễn Minh Quân MSSV: 12141184 Lê Thế Nhật MSSV: 12141158 Tp Hồ Chí Minh - 7/2016 an 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 - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: KHẢO SÁT KIT MEDICAL APPLICATION KINETIS K50 VÀ ỨNG DỤNG ĐO NỒNG ĐỘ OXY TRONG MÁU VÀ NHỊP TIM GVHD: ThS Phạm Tỷ Phú SVTH: Nguyễn Minh Quân MSSV: 12141184 Lê Thế Nhật MSSV: 12141158 Tp Hồ Chí Minh - 7/2016 an CAM ĐOAN Chúng tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu đồ án trung thực chưa cơng bố cơng trình khác Tp Hồ Chí Minh, ngày … tháng … năm 2016 (Ký tên ghi rõ họ tên) Nguyễn Minh Quân BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Lê Thế Nhật iii LỜI CẢM ƠN Chúng xin chân thành cảm ơn quý thầy cô môn Điện Tử Công Nghiệp trang bị cho em kiến thức giúp đỡ em giải khó khăn q trình làm đồ án Đặc biệt xin chân thành cảm ơn thầy hướng dẫn, Th.S Phạm Tỷ Phú tận tình giúp đỡ trình lựa chọn đề tài hỗ trợ chúng tơi q trình thực Cuối chúng tơi xin cảm ơn gia đình bạn bè khích lệ, giúp đỡ ủng hộ chúng tơi suốt q trình thực đề tài Sinh viên Nguyễn Minh Quân BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Lê Thế Nhật iv MỤC LỤC Nội dung Trang Nhiệm vụ đồ án i Lịch trình ii Cam đoan iii Lời cảm ơn iv Mục lục v Liệt kê hình vẽ ix Liệt kê bảng vẽ xiv Tóm tắt xv CHƢƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung đề tài 1.4 Giới hạn 1.5 Bố cục CHƢƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu kit Medical Application Kinetis K50 2.2 Định nghĩa nhịp tim nồng độ oxy máu 2.3 Nguyên lý Pulse Oximetry 2.4 Mối tương quan số SPO2 nhịp tim với thể 11 2.4.1 Nồng độ oxy máu 11 2.4.2 Nhịp tim 11 CHƢƠNG KHẢO SÁT 12 3.1 Tổng quan module TWR-K53N512 12 3.1.1 Tính module TWR-K53N512 12 3.1.2 Sơ đồ khối module TWR-K53N512 14 3.1.3 Vi điều khiển K53N512 15 3.1.4 Xung hệ thống 15 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an v 3.1.5 Nguồn hệ thống 16 3.1.6 Giao tiếp gỡ lỗi 16 3.1.7 Cổng giao tiếp hồng ngoại 19 3.1.8 Cảm biến gia tốc 20 3.1.8.1 Tổng quan cảm biến gia tốc MMA7660FC 20 3.1.8.2 Mạch giao tiếp IC MMA7600FC với vi điều khiển K53N512 21 3.1.8.3 Các thông số xác định hướng cảm biến MMA7660FC 21 3.1.9 Giao tiếp với biến trở, nút nhấn led 23 3.1.10 Cổng kết nối đa dụng (General Purpose Tower plug-in - twrpi) 25 3.1.11 Giao tiếp cảm ứng chạm (touch interface) giao tiếp với segment lcd 26 3.1.12 Ethernet 28 3.1.13 Cổng kết nối y tế 28 3.1.14 Thiết lập jumper 29 3.2 Tổng quan module vi điều khiển K53N512 33 3.2.1 Module cấu hình điều khiển PORT 33 3.2.1.1 Tổng quan 33 3.2.1.2 Tính 33 3.2.1.3 Các ghi cấu hình PORT 34 3.2.1.4 Thanh ghi truy xuất liệu 35 3.2.2 Module DAC 37 3.2.2.1 Giới thiệu 37 3.2.2.2 Tính 37 3.2.2.3 Các ghi DAC 37 3.2.3 Module ADC 38 3.2.3.1 Giới thiệu 38 3.2.3.2 Tính 38 3.2.3.3 Các ghi ADC 39 3.2.4 Operational Amplifier Module (OPAMP) 45 3.2.4.1 Tính 45 3.2.4.2 Các ghi OPAMP 45 3.2.5 Transimpedance Amplifier Module (TRIAMP) 46 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an vi 3.2.5.1 Tính 46 3.2.5.2 Các ghi TRIAMP 46 3.2.6 Flex Timer 46 3.2.6.1 Giới thiệu 46 3.2.6.2 Tính 46 3.2.7 Secured digital host controller Module ( SDHC) 48 3.2.7.1 Tổng quan 48 3.2.7.2 Tính 48 3.2.8 Touch sense input module (TSI) 50 3.2.9 Các chuẩn giao tiếp 50 3.2.9.1 Inter-Integrated Circuit (I2C) 50 3.2.9.2 Universal Asynchronous Receiver/Trasmitter (UART) 51 3.2.9.3 Chuẩn truyền thông SPI 52 3.2.9.4 Universal Serial Bus (USB) 53 3.3 Tổng quan module kết nối TWR-ELEV 54 3.4 Tổng quan module giao tiếp TWR-SER 55 3.5 Khảo sát ứng dụng y sinh kit Medical Application Kinetis K50 58 3.5.1 Khảo sát ứng dụng đo chức hô hấp phổi 62 3.5.2 Khảo sát ứng dụng đo nồng độ oxy máu 67 3.5.3 Khảo sát ứng dụng đo đường huyết 69 3.5.4 Khảo sát ứng dụng đo huyết áp 72 3.5.5 Khảo sát ứng dụng đo điện tim 75 CHƢƠNG ỨNG DỤNG 79 4.1 Phần mềm lập trình 79 4.2 Ứng dụng cảm biến gia tốc MMA7660 điều khiển led qua máy tính 80 4.2.1 Lưu đồ giải thuật xử lí kit 80 4.2.2 Giao diện máy tính 83 4.3 Ứng dụng đo nồng độ oxy máu nhịp tim 83 4.3.1 Module MED-SPO2 84 4.3.1.1 Sơ đồ khối module MED-SPO2 84 4.3.1.2 Mạch điều khiển led 85 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an vii 4.3.1.3 Bộ chuyển đổi dòng sang áp 86 4.3.1.4 Bộ lọc khuếch đại 86 4.3.1.5 Bộ tạo điện áp tham chiếu 89 4.3.2 Cảm biến SPO2 89 4.3.3 Thiết kế giao diện 90 4.3.4 Quy trình phần mềm thực đo nồng độ oxy máu nhịp tim 92 4.3.5 Các bước thực đo nồng độ oxy máu nhịp tim 94 CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 96 5.1 Ứng dụng cảm biến gia tốc MMA7660FC để xác định trạng thái kit 96 5.1.1 Kết 96 5.1.2 Nhận xét kết 98 5.2 Ứng dụng đo nồng độ oxy máu nhịp tim 99 5.2.1 Kết thống kê 99 5.2.1.1 Kết bạn Trần Hữu Trực (22 tuổi) 99 5.2.1.2 Kết bạn Nguyễn Đăng Khoa (22 tuổi) 101 5.2.1.3 Kết bạn Đào Ngọc Ánh (22 tuổi) 103 5.2.1.4 Kết bạn Lê Thế Nhật (22 tuổi) 106 5.2.1.5 Kết bạn Nguyễn Minh Quân (22 tuổi) 108 5.2.2 Nhận xét kết 110 5.2.3 Đánh giá kết 110 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 111 6.1 Kết luận 111 6.2 Hướng phát triển 112 TÀI LIỆU THAM KHẢO 113 PHỤ LỤC….…… 114 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an viii LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1: Module điều khiển TWR-K53N512 Hình 2.2: Module giao tiếp TWR-SER Hình 2.3: Module kết nối TWR-ELEV Secondary Hình 2.4: Module kết nối TWR-ELEV Primary Hình 2.5: Kit Medical Application Kinetis K50 Hình 2.6: Sự hấp thụ ánh sáng qua mô sống Hình 2.7: Pulse Oximetry truyền xuyên qua phản xạ 10 Hình 3.1: Mặt module TWR-K53N512 13 Hình 3.2: Mặt module TWR-K53N512 13 Hình 3.3: Sơ đồ khối module TWR-K53N512 14 Hình 3.4: Sơ đồ chân MC9S08JM60CLD loại 44 chân 19 Hình 3.5: Mạch giao tiếp hồng ngoại 20 Hình 3.6: Mạch giao tiếp IC MMA7600FC với vi điều khiển PK53N512 21 Hình 3.7: Hai nút nhấn kết nối GPIO/interrupt 24 Hình 3.8: Nút nhấn Reset 24 Hình 3.9: Mạch kết nối led cực cảm biến điện dung 25 Hình 3.10: Mạch kết nối biến trở 25 Hình 3.11: Thanh ghi điều khiển PIN thứ n (PORTx_PCRn) 34 Hình 3.12: Thanh ghi điều khiển chân thấp tồn cục (PORTx_GPCLR) 34 Hình 3.13: Thanh ghi điều khiển chân cao toàn cục (PORTx_GPCHR) 34 Hình 3.14: Thanh ghi cờ báo ngắt (PORx_ISFR) 34 Hình 3.15: Thanh ghi xung clock cho lọc số (PORTx_DFCR) 35 Hình 3.16: Thanh ghi cấu hình độ rộng lọc số (PORTx_DFWR) 35 Hình 3.17: Thanh ghi xuất liệu PORT (GPIOx_PDOR) 35 Hình 3.18: Thanh ghi xuất mức PORT (PORTx_PSOR) 35 Hình 3.19: Thanh ghi xuất mức PORT (PORTX_PCOR) 36 Hình 3.20: Thanh ghi đảo trạng thái ngõ PORT (PORTx_PTOR ) 36 Hình 3.21: Thanh ghi đọc liệu từ PORT (PORTx_PDIR) 36 Hình 3.22: Thanh ghi định hướng liệu PORT (PORTx_PDDR) 36 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an ix CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.2.1.4 Kết đo bạn Lê Thế Nhật (22 tuổi) Bảng 5.4 Kết đo bạn Lê Thế Nhật (22 tuổi) Lần Nhịp tim Nhịp tim Nồng độ oxy Nồng độ oxy không vận vận động máu máu không vận vận động động động 92 110 95 96 86 109 97 98 90 106 97 98 85 106 97 98 85 101 97 98 86 103 97 97 87 99 97 97 86 97 98 97 89 95 97 97 10 85 92 97 97 11 87 93 97 96 12 84 94 97 97 13 86 92 97 97 14 88 91 97 97 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 106 CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 15 91 89 96 97 16 92 93 97 97 17 88 92 97 97 18 90 88 97 97 19 86 90 97 97 20 85 87 97 97 Kết đo trạng thái không vận động vận động bạn Nhật thể Hình 5.19 Hình 5.20 Hình 5.19 Nhịp tim (HR) nồng độ oxy máu (SPO2) bạn Lê Thế Nhật (22 tuổi) trạng thái khơng vận động Hình 5.20 Nhịp tim (HR) nồng độ oxy máu (SPO2) bạn Lê Thế Nhật (22 tuổi) trạng thái vận động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 107 CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.2.1.5 Kết đo bạn Nguyễn Minh Quân (22 tuổi) Bảng 5.5 Kết đo bạn Nguyễn Minh Quân (22 tuổi) Lần Nhịp tim Nhịp tim Nồng độ oxy Nồng độ oxy không vận vận động máu máu không vận vận động động động 89 119 97 95 90 117 97 95 94 113 97 95 96 112 97 95 90 111 97 95 81 110 97 95 82 111 97 95 82 110 97 95 94 99 97 95 10 90 101 97 95 11 88 106 97 95 12 91 104 97 95 13 96 107 97 95 14 85 98 97 95 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 108 CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 15 88 98 97 95 16 87 101 97 95 17 92 96 97 95 18 93 97 97 95 19 83 93 97 95 20 89 93 97 95 Kết đo trạng thái không vận động vận động bạn Quân thể Hình 5.21 Hình 5.22 Hình 5.21 Nhịp tim (HR) nồng độ oxy máu (SPO2) bạn Nguyễn Minh Quân (22 tuổi) trạng thái khơng vận động Hình 5.22 Nhịp tim (HR) nồng độ oxy máu (SPO2) bạn Nguyễn Minh Quân (22 tuổi) trạng thái vận động BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 109 CHƢƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Nhận xét kết 5.2.2 Sau thu kết nhóm thực đề tài có nhận xét sau:  Giao diện viết phần mềm Matlab nhận liệu từ kit Medical Application Kinetis K50 tốt gửi yêu cầu kit gửi liệu ngừng gửi liệu  Ở trạng thái khơng vận động nhịp tim người nằm 90 nhịp/phút  Ở trạng thái vận động khoảng 10 lần đầu nhịp tim trạng thái vận động so với trạng thái không vận động tăng lên nhiều (cao 119), sau nhịp tim giảm dần tới mức nhịp tim trạng thái không vận động  Nồng độ oxy máu trạng thái không vận động so với trạng thái vận động có lúc thấp thường cao chút Đánh giá kết 5.2.3 Theo lý thuyết vận động lượng thể tiêu hao nhiều so với không vận động nên nhịp tim trạng thái vận động tăng cao so với trạng thái không vận động bình thường trở lại sau vận động khoảng thời gian Bên cạnh q trình đốt cháy lượng thể lúc vận động mạnh diễn nhanh nhịp tim tăng lên dẫn tới việc thiếu hụt oxy máu nên nồng độ oxy máu trạng thái vận động giảm chút so với trạng thái khơng vận động Từ số liệu thu nhóm thực đề tài thấy số liệu nhịp tim nồng độ oxy máu đo từ người cho thấy với lý thuyết Kit Medical Application Kinetis K50 nhận liệu từ module MED-SPO2 gửi xử lý tín hiệu nhận lệnh từ giao diện để gửi liệu lên máy tính khơng gửi Giao diện nhận tín hiệu từ kit Medical Application Kinetis K50 hiển thị kết với vẽ đồ thị cách liên tục dừng nhấn nút STOP giao diện tiếp tục nhận dự liệu nhấn nút START BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 110 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau thời gian thực đề tài, nhóm thực đề tài tìm hiểu khảo sát kit Medical Application Kinetis K50 nhóm thấy Kit Medical Application Kinetis K50 kit thí nghiệm có nhiều tính hay đáp ứng nhiều ứng dụng khác y tế Tuy chưa khảo sát toàn kit nhóm thực đề tài cố gắng hiểu biết phần kit Sau khảo sát kit Medical Application Kinetis K50 nhóm thực đề tài thực hai ứng dụng đo nồng độ oxy máu nhịp tim ứng dụng cảm biến gia tốc MMA7660FC Về ứng dụng đo nồng độ oxy máu nhịp tim nhóm thực đề tài hiểu liệu mà kit kit gửi lên máy tính yêu cầu kit gửi liệu lên máy tính dừng gửi, tách số liệu nhịp tim nồng độ oxy máu gói liệu kit gửi lên máy tính để hiển thị với vẽ đồ thị giao diện nhóm Sau tiến hành đo thí nghiệm với người nhóm nhận thấy nồng độ oxy máu nhịp tim có mối liên quan mật thiết với Ở trạng thái vận động, nhịp tim tăng so với trạng thái không vận động nồng độ oxy máu giảm bình thường trở lại sau khoảng thời gian nghỉ ngơi Về ứng dụng cảm biến gia tốc MMA7660FC nhóm thực đề tài xử lý liệu từ trục tọa độ x, y z cảm biến sau gửi lên máy tính qua cáp USB để hiển thị hình ảnh ứng với trạng thái trục x, y z cảm biến xoay cảm biến Sau thực ứng dụng xong nhóm thực đề tài thấy hay cảm biến gia tốc MMA7660FC việc xác định tọa độ để từ đưa kết trục tọa độ x, y z để tử người lập trình dựa vào để tính tốn, phục vụ cho ứng dụng người lập trình Bên cạnh ứng dụng cảm biến gia tốc MMA7660FC, nhóm thấy tốc độ truyền nhận liệu nhanh kit Medical BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 111 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Application Kinetis K50 qua ứng dụng điều khiển led đơn module TWR-K53N512 máy tính trực tiếp nút nhấn module 6.2 HƢỚNG PHÁT TRIỂN Ngồi chương trình đo nồng độ oxy máu nhịp tim, kit Medical Application Kinetis K50 cịn dùng để phát triển nhiều ứng dụng y tế khác đo huyết áp, điện tâm đồ, đường huyết,… phục vụ lĩnh vực nghiên cứu, phát triển ứng dụng ngành điện tử y sinh phịng thí nghiệm Nhóm thực đề tài hiển thị số liệu nhịp tim nồng độ oxy máu lên giao diện chưa vẽ đồ thị nhịp tim y tế, nhóm mong muốn làm điều để ứng dụng trở nên hay hiệu việc chuẩn đốn bệnh người đo Ngồi nhóm thực đề tài mong muốn tự thiết kế module đo nồng độ oxy máu nhóm cịn phụ thuộc vào module MED-SPO2 nhà sản xuất Trên tảng ứng dụng y sinh kit Medical Application Kinetis K50, phát triển ứng dụng phục vụ ngành y tế ứng dụng giám sát sức khỏe không nhà mà ta giám sát từ xa cách sử dụng chuẩn truyền Ethernet mà kit có hỗ trợ với thiết kế nhỏ gọn chi phí thấp BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 112 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Freescale, “K53 Sub-Family Reference Manual”, Freescale, năm 2011 [2] Freescale, “TWR‐K53N512 Quick Start Demo” Freescale, năm 2011 [3] Freescale, “TWR‐K53N512 Tower Module” Freescale, năm 2011 [4] Jorge González, “Freescale Solutions for Electrocardiograph and Heart Rate Monitor Applications” Freescale , năm 2011 [5] Jorge González, ” Spirometer Demo with Freescale Microcontrollers”, Freescale, năm 2011 [6] Santiago Lopez, “Blood Pressure Monitor Fundamentals and Design”, Freescale, năm 2011 [7] Santiago Lopez, “Pulse Oximeter Fundamentals and Design”, Freescale, năm 2011 [8] Miriam Garcia Yanez, “Glucose Meter Fundamentals and Design”, Freescale, năm 2013 [9] Phạm Minh Thuận, Nguyễn Viết Minh, “ Báo Cáo Đồ Án Tốt Nghiệp “, Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM, năm 2015 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 113 PHỤ LỤC PHỤ LỤC a Code giao diện hiển thị vị trí đặt kit điều khiển led phần mềm matlab % hiển thị hình ảnh logo function DemoAccell_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global n t led1_status led2_status; set(handles.btled1,'enable','off'); set(handles.btled2,'enable','off'); t=0; n = serial('COM'); axes(handles.axes1); imshow('logotruong.png'); axes(handles.axes2); imshow('logokhoa.png'); axes(handles.axes3); imshow('twrk53.png'); set(handles.pupcom,'String',getAvailableComPort); % điều khiển led1 function btled1_Callback(hObject, eventdata, handles) global n led1_status ; if( led1_status == 0) fwrite( n ,[2] ); else fwrite( n ,[1] ); end % điều khiển led2 function btled2_Callback(hObject, eventdata, handles) global n led2_status ; if( led2_status == 0) fwrite( n ,[4] ); else fwrite( n ,[3] ); end % nhận liệu từ kit gửi lên máy tính function Read_Data ( obj , event , handles) global n led1_status led2_status kit_status; Data = fread( n , ); led1_status = uint8(Data(1)); led2_status = uint8(Data(2)); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 114 PHỤ LỤC kit_status = uint8(Data(3)); % Đóng giao diện lại kiểm tra cổng com mở đóng cổng com lại function figure1_DeleteFcn(hObject, eventdata, handles) global n t ; if ( t == ) t=0; pause(0.1); fclose(n); end function btok_Callback(hObject, eventdata, handles) global n t led1_status led2_status kit_status kit_tam ; t=1; kit_tam = 0; set(handles.btled1,'enable','on'); set(handles.btled2,'enable','on'); set(handles.btok,'enable','off'); choice = char(get(handles.pupcom,'string')); set( n , 'port',choice); set( n ,'BaudRate',115200); n.BytesAvailableFcnMode = 'Byte'; n.BytesAvailableFcnCount= ; n.BytesAvailableFcn = {@Read_Data,handles}; fopen(n); fwrite( n ,[5] ); while(1) if( t == ) break ; else pause(0.01); %- hiển thị trạng thái led -% if(led2_status == 0) set(handles.btled2,'BackgroundColor','r'); else set(handles.btled2,'BackgroundColor','g'); end BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 115 PHỤ LỤC if(led1_status == 0) set(handles.btled1,'BackgroundColor','r'); else set(handles.btled1,'BackgroundColor','g'); end %- hiển thị trạng thái kit twr_k53 -% if ( kit_tam ~= kit_status ) kit_tam = kit_status; if( kit_status == 1) axes(handles.axes3); imshow('z1.jpg'); elseif ( kit_status == 2) axes(handles.axes3); imshow('z0.jpg'); elseif ( kit_status == 3) axes(handles.axes3); imshow('y1.jpg'); elseif ( kit_status == 4) axes(handles.axes3); imshow('y0.jpg'); elseif ( kit_status == 5) axes(handles.axes3); imshow('x1.jpg'); elseif ( kit_status == 6) axes(handles.axes3); imshow('x0.jpg') end end end end b Code giao diện đo oxy máu nhịp tim - Giao diện chọn cổng com % chọn cổng Com function COM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global n ; axes(handles.axes3); imshow('logotruong.png'); axes(handles.axes4); imshow('logokhoa.png'); n = serial('COM'); set(handles.pupcom,'String',getAvailableComPort); choice = get(handles.pupcom,'string'); set(handles.txtchoice,'string',choice); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 116 PHỤ LỤC % Đóng giao diện chọn cổng com mở giao diện để thực đo function bntOK_Callback(hObject, eventdata, handles) global n a ; a = char(get(handles.pupcom,'String')); close; run SPO2_DATN; - Giao diện thực đo % Thiết lập cổng Com function SPO2_DATN_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global n a t SPO2T HRT SPO2 HR x; HRT = [] ; SPO2T = HRT; t=0; set( n , 'port',a); set( n ,'BaudRate',115200); set(handles.btnStart,'enable','on'); set(handles.btnStop,'enable','off'); % Kết thúc đo % function btnStop_Callback(hObject, eventdata, handles) global n t ; fwrite(n,[82 38],'uint8'); set(handles.btnStart,'enable','on'); set(handles.btnStop,'enable','off'); t = ; fclose(n); % Bắtđầu đo function btnStart_Callback(hObject, eventdata, handles) global SPO2T HRT ; HR =0; HR = SPO2 t = 0; x = 1; HRT = [] ; SPO2T = HRT; cla reset ; set(handles.btnStart,'enable','off'); set(handles.btnStop,'enable','on'); n.BytesAvailableFcnMode = 'Byte'; n.BytesAvailableFcnCount= 71 ; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 117 PHỤ LỤC n.BytesAvailableFcn = {@Read_Data,handles}; fopen(n); fwrite(n,[ 82 37 ], 'uint8'); while(1) % vẽ đồ thị if( read == 1) read = ; SPO2T(x)= SPO2 ; HRT (x)= HR; axes(handles.pt); axis([ , 110 , , 145 ]); plot( SPO2T , 'r' , 'linewidth', ); grid on ; hold on ; plot( HRT , 'b' , 'linewidth', ); if ( x < 110) x=x+1; else x = 1; SPO2T = [] ; HRT = [] ; hold off ; end end if ( t == ) break ; end end % nhận liệu từ kit gửi lên hiển thị lên giao diện function Read_Data ( obj , event , handles) global n read Data SPO2 HR ; ; red = 1; Data = fread( n , 71 ); SPO2 = uint8(Data(3)); HR = uint8(Data(4)); DSPO2 = num2str(Data(3)); DHR = num2str(Data(4)); set(handles.txtSPO2,'string',DSPO2); set(handles.txtHR,'string',DHR); % Đóng giao diện lại kiểm tra cổng com mở đóng lạị function figure1_DeleteFcn(hObject, eventdata, handles) global n t SPO2 HR ; if( strcmp(get(n,'status'),'open') ) fwrite(n,[82 38],'uint8'); fclose(n); else BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 118 PHỤ LỤC pause (0.1); clear all ; end BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an Trang 119 an

Ngày đăng: 27/12/2023, 03:16

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w