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

Nghiên cứu chế tạo thiết bị đo đa kênh ứng dụng cho cảm biến miễn dịch trên cơ sở độ dẫn

108 16 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

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 3,56 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO VŨ QUANG KHUÊ TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO QUỐC TẾ VỀ KHOA HỌC VẬT LIỆU -o0o - LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: KHOA HỌC VẬT LIỆU KHOA HỌC VẬT LIỆU ITIMS 2007 - 2009 HÀ NỘI 2009 NGHIÊN CỨU CHẾ TẠO THIẾT BỊ ĐO ĐA KÊNH ỨNG DỤNG CHO CẢM BIẾN MIỄN DỊCH TRÊN CƠ SỞ ĐỘ DẪN VŨ QUANG KHUÊ Hà Nội - 2009 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO QUỐC TẾ VỀ KHOA HỌC VẬT LIỆU -o0o - NGHIÊN CỨU CHẾ TẠO THIẾT BỊ ĐO ĐA KÊNH ỨNG DỤNG CHO CẢM BIẾN MIỄN DỊCH TRÊN CƠ SỞ ĐỘ DẪN VŨ QUANG KHUÊ LUẬN VĂN THẠC SĨ KHOA HỌC VẬT LIỆU KHOÁ ITIMS 2007 - 2009 HƯỚNG DẪN KHOA HỌC : TS Mai Anh Tuấn Hà Nội - 2009 ii LỜI CẢM ƠN Trong thời gian năm học tập làm việc Viện ITIMS - trường Đại Học Bách Khoa Hà Nội giúp ngày hồn thiện kiến thức chun mơn, phương pháp nghiên cứu khoa học, đồng thời trưởng thành phong cách, kinh nghiệm sống Người xin bày tỏ lòng biết ơn sâu sắc gửi lời cảm ơn chân thành thầy giáo, Tiến sỹ Mai Anh Tuấn; Thầy tạo điều kiện ln ln động viên giải khó khăn để tơi hồn thành tốt luận văn Tôi xin gửi lời cảm ơn tới tập thể nhóm Biosensor, Viện ITIMS; đặt biệt nghiên cứu sinh Trần Quang Huy, tiến sỹ Phương Đình Tâm, anh chị bạn nhóm Biosensor - người ln khuyến khích động viên giúp tơi chuyên môn thời gian thực đề tài Tôi xin gửi lời cảm ơn chân thành tới tập thể thầy cô cán Viện ITIMS người đem lại cho kiến thức khoa học tạo điều kiện để thực tốt nhiệm vụ năm học Tơi xin cảm ơn tới tập thể lớp ITIMS khóa 2007 - 2009, người thường xuyên động viên, đóng góp ý kiến trao đổi kiến thức thực nghiệm thời gian học tập Cuối xin gửi lời cảm ơn vô sâu sắc tới gia đình người thân, Ban giám hiệu, cán bộ, giáo viên quan nơi công tác tạo điều kiện cho vật chất tinh thần thời gian theo học Trường Đại Học Bách Khoa Hà Nội Hà Nội, ngày 08 tháng 09 năm 2009 Vũ Quang Khuê iii MỤC LỤC Trang Trang phụ bìa i Lời cảm ơn .ii Mục lục iii Danh mục ký hiệu, chữ viết tắt v Danh mục bảng biểu vii Danh mục hình vẽ, đồ thị .viii Mở đầu Chương TỔNG QUAN VỀ CẢM BIẾN SINH HỌC 1.1 Cảm biến sinh học 1.1.1 Cấu tạo, nguyên lý làm việc cảm biến sinh học 1.1.2 Phân loại cảm biến sinh học 1.2 Ứng dụng cảm biến sinh học 13 1.2.1 Trong y tế dự phòng 13 1.2.2 Phát chuyển đổi gen thực phẩm 14 1.2.3 Quan trắc môi trường 14 1.3 Các thiết bị đo cho cảm biến sinh học 15 1.4 Nguyên lý hệ đo xử lý tín hiệu cảm biến miễn dịch đa kênh 22 1.4.1 Cảm biến miễn dịch sở độ dẫn 22 1.4.2 Nguyên lý hệ đo cho cảm biến miễn dịch đa kênh 24 Chương NGHIÊN CỨU, CHẾ TẠO THIẾT BỊ ĐO ĐA KÊNH 28 2.1 Vi cảm biến độ dẫn đa kênh 28 2.2 Đóng gói chức hóa cảm biến 33 2.2.1 Đóng gói cảm biến đa kênh 33 iv 2.2.2 Chức hóa cảm biến đa kênh 35 2.3 Thiết kế chế tạo hệ đo đa kênh cho cảm biến miễn dịch 37 2.3.1 Thiết kế chế tạo hệ đo đa kênh 37 2.3.1 Khối nguồn 39 2.3.2 Khối phát tín hiệu 39 2.3.3 Khối tách sóng biên độ 41 2.3.4 Khối xử lý tín hiệu giao tiếp máy tính 42 2.3.5 Khối bàn phím 45 2.3.6 Khối hiển thị kết 46 2.3.2 Phát triển phần mềm hiển thị số liệu kết đo 47 Chương KẾT QUẢ VÀ THẢO LUẬN 49 3.1 Đóng gói cảm biến 50 3.1.1 Thông số đế cảm biến sau chế tạo 50 3.1.2 Hàn đóng gói cảm biến 51 3.2 Các đặc tuyến thiết bị đo phần mềm hiển thị số liệu 54 3.2.1 Các đặc tuyến thiết bị 54 3.2.2 Giao diện người dùng phần mềm 60 3.2.3 Đóng gói thiết bị 63 3.3 Xác định Vi rút H5N1 gây bệnh 64 3.4 Thảo luận 70 3.5 Hướng nghiên cứu đề tài 72 Kết luận chung 73 Tài liệu tham khảo 75 Phụ lục Phụ lục v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT TT Kí hiệu APTS PBS PCR ELISA DNA, RNA ISFET MOSFET EDC 10 MIA 11 12 13 14 15 16 17 18 19 20 21 22 AcChE BSA Ig ECL USB LCD UDC UAC IgM Psoc ADC HID Viết tắt cho Aminopropyltriethoxysilane Phosphate Buffered Saline Polymerase Chain Reaction Enzyme-Linked-Immuno Sorbent Assay Deoxyribo Nucleic Axit Ribonucleic Acid Ion Sensitive Field Effect Transistor Metal Oxide Semiconductor Field Effect Transistor Ethy-3-(3-dimethyl aminopropyl)Carbodiimide N - methyl - imidazole Acetyl-Cholinesterase Bovine Serum Albumin Immunoglobulin Electrochemiluminescence Universal Serial Bus Liquid Crystal Display Direct Current Alternating Current Immunoglobulin M Programmable System on Chip Analog-to-Digital Converter Human Interface Devices Nghĩa tiếng việt Chất APTS Dung dịch đệm PBS Phản ứng chuỗi polyme Miễn dịch đánh dấu enzyme Axit nucleic Axit ribonucleic Bóng bán dẫn hiệu ứng trường nhạy ion Bóng bán dẫn cấu trúc ơxít kim loại Chất EDC Chất MIA Chất AcChE Chất BSA Globulin miễn dịch Phản ứng ECL Giao tiếp USB Hiển thị tinh thể lỏng Điện áp chiều Điện áp xoay chiều Kháng thể loại Muy Hệ thống khả trình chip Chuyển đổi số tương tự Chuẩn giao tiếp HID vi 23 24 25 26 LED VB S/N ROM Light Emitting Diode Visual Basic Signal / Noise Programmable Read-Only Memory Điốt phát quang Ngôn ngữ Visual Basic Tín hiệu / Nhiễu Bộ nhớ đọc vii DANH MỤC CÁC BẢNG BIỂU TT Tên Tiêu đề bảng Trang Bảng Tính chất kháng thể 10 Bảng 2.1 Các thông số cảm biến đa kênh 29 Bảng 2.2 Các thông số hàn cảm biến 35 Bảng 3.1 Các thông số cảm biến đế cảm biến 51 Bảng 3.2a Bảng thơng số q trình đo xác định kháng 66 nguyên vi rút H5N1 lần Bảng 3.2b Bảng thơng số q trình đo xác định kháng nguyên vi rút H5N1 lần 67 viii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ TT Tiêu đề hình vẽ Tên Trang Hình 1.1 Cấu tạo cảm biến sinh học Hình 1.2 Cấu tạo cảm biến (A) hệ đo (B) ISFET Hình 1.3 Cấu tạo cảm biến vi điện cực Hình 1.4 Cảm biến thiết bị đo nồng độ thuốc trừ sâu 15 Hình 1.5 Xác định nồng độ thuốc trừ sâu dạng vi dòng 16 Hình 1.6 Mơ hình thiết bị đo xác định nồng độ chất Lactate 18 Hình 1.7 Cảm biến đa kênh với 16 điện cực làm việc 19 Hình 1.8 So sánh độ ổn định làm việc điện cực chế tạo 20 vàng cacbon Hình 1.9 Mơ hình thiết bị xác định cúm gia cầm dựa cảm 21 biến quang Cấu trúc cảm biến vi điên cực 10 Hình 1.10 22 11 Hình 1.11 Sơ đồ thiết lập hệ đo cho cảm biến đa kênh 24 12 Hình 1.12 Sơ đồ điện tương đương cho cảm biến miễn dịch 25 13 Hình 2.1 Mặt nạ chế tạo cảm biến đa kênh 28 14 Hình 2.2 a Kích thước cảm biến đa kênh 29 15 Hình 2.2 b Thơng số chi tiết 01/01của cảm biến 30 16 Hình 2.3 Quy trình chế tạo cảm biến đa kênh 30 17 Hình 2.4 Cảm biến sau cắt từ phiến Silicon 32 18 Hình 2.5 a Đế cảm biến đa kênh thiết kế cho mặt 33 19 Hình 2.5 b Đế cảm biến đa kênh thiết kế cho mặt 33 20 Hình 2.6 Quy trình gia nhiệt cho đế hàn 34 21 Hình 2.7 Quy trình cố định kháng thể vi rút H5N1 lên bề mặt 35 ix cảm biến 22 Hình 2.8 Sơ đồ khối thiết bị đo đa kênh 38 23 Hình 2.9 Sơ đồ nguyên lý khối nguồn 39 24 Hình 2.10 a Sơ đồ khối phát tín hiệu điều chỉnh tần số, b Điều 40 chỉnh biên độ 25 Hình 2.11 Sơ đồ mạch chỉnh lưu nhạy pha dạng tín hiệu 42 26 Hình 2.12 Các môđun PSoC sử dụng thiết bị đa 43 kênh 27 Hình 2.13 Thiết lập phần cứng phân bố chức chân cho 43 CY8C24894 28 Hình 2.14 Ghép nối USB với chíp Psoc CY8C24894 44 29 Hình 2.15 Các chế độ thiết lập cho USB phần mềm 45 Designer 4.4 30 Hình 2.16 Hình ảnh bàn phím thiết lập chế độ hoạt động 46 31 Hình 2.17 a Mơđun LCD b Thiết lập thống số hoạt động 47 32 Hình 2.18 Cửa sổ thiết lập Visual Basic phần mềm 48 hiển thị 33 Hình 3.1 Cảm biến sau chế tạo, cắt thành chip 50 34 Hình 3.2 Đế cảm biến sau chế tạo, gia cơng 51 35 Hình 3.3 Hình ảnh cảm biến sau hàn đóng gói 52 36 Hình 3.4 Cảm biến giao tiếp với mạch thơng qua 53 socket 37 Hình 3.4 Sơ đồ chân cảm biến miễn dịch đa kênh 53 38 Hình 3.5 Tín hiệu đưa vào cảm biến miễn dịch 100 mV, 50 54 kHz mask=PRT4DR & 0xF0; delay(10); if (mask == 0x10)key_number= 'B'; if (mask == 0x20)key_number= '6'; if (mask == 0x40)key_number= '5'; if (mask == 0x80)key_number= '4'; delay(10); PRT4DR =0x08; //row_3=1; scan column mask=PRT4DR & 0xF0; delay(10); if (mask == 0x10)key_number= 'A'; if (mask == 0x20)key_number= '3'; if (mask == 0x40)key_number='2' ; if (mask == 0x80)key_number='1'; delay(10); return key_number;} Phụ lục Mã nguồn phần mềm BS phiên 2.0 Dim i As Integer Dim u As Double Dim aNumber(9) As Byte Dim aIndex As Integer Dim iColumnIndex As Integer Dim bSend(6) As Byte Dim DeviceName As String Dim WriteHandle As Long Dim ReadHandle As Long Dim ReadEvent As Long Dim ReadOverlap As OVERLAPPED Dim PollCounter As Integer Dim ButtonReport(9) As Byte Dim LightsReport(1) As Byte Dim Openned As Boolean Dim SoftButtonValue As Byte Dim RealButtonValue As Byte Dim Bit(3) As Byte Dim Operation As Integer Private Sub cboBienDo_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim intBienDo cboBienDo.Clear rs.Open "Select distinct BienDo from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!BienDo "") Then intBienDo = rs!BienDo cboBienDo.AddItem intBienDo, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboTanSo_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim intTanSo cboTanSo.Clear rs.Open "Select distinct TanSo from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!TanSo "") Then intTanSo = rs!TanSo cboTanSo.AddItem intTanSo, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboNguoiDo_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strNguoiDo cboNguoiDo.Clear rs.Open "Select distinct NguoiDo from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!NguoiDo "") Then strNguoiDo = rs!NguoiDo cboNguoiDo.AddItem strNguoiDo, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboNoiDo_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strNoiDo cboNoiDo.Clear rs.Open "Select distinct NoiDo from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!NoiDo "") Then strNoiDo = rs!NoiDo cboNoiDo.AddItem strNoiDo, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboTenMau1_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strTenMau cboTenMau1.Clear rs.Open "Select distinct TenMau from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!TenMau "") Then strTenMau = rs!TenMau cboTenMau1.AddItem strTenMau, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboTenMau2_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strTenMau cboTenMau2.Clear rs.Open "Select distinct TenMau from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!TenMau "") Then strTenMau = rs!TenMau cboTenMau2.AddItem strTenMau, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboTenMau3_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strTenMau cboTenMau3.Clear rs.Open "Select distinct TenMau from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!TenMau "") Then strTenMau = rs!TenMau cboTenMau3.AddItem strTenMau, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cboTenMau4_GotFocus() OpenDatabase Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim strTenMau cboTenMau4.Clear rs.Open "Select distinct TenMau from Data", cn, adOpenStatic, adLockOptimistic i=0 While Not rs.EOF If (rs!TenMau "") Then strTenMau = rs!TenMau cboTenMau4.AddItem strTenMau, i i=i+1 End If rs.MoveNext Wend End Sub Private Sub cmdSend_Click() bSend(1) = aIndex = If (WriteHandle) Then Call SendReport(bSend(0), 6) End If End Sub Private Sub cmdSave1_Click() 'On Error GoTo DataIncorrect Dim strSQL, strSQL1, strSQL2 As String Dim str Dim intSTT Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset OpenDatabase rs.Open "Select STT from Data", cn, adOpenStatic, adLockOptimistic rs.MoveLast intSTT = rs!STT + If (intSTT 0) Then strSQL1 = strSQL1 & "STT" strSQL2 = strSQL2 & " " & intSTT & " " End If If (cboTenMau1.Text "") Then strSQL1 = strSQL1 & ",TenMau" strSQL2 = strSQL2 & " ,'" & cboTenMau1.Text & "' " Else: GoTo DataIncorrect End If If (cboBienDo.Text "") Then strSQL1 = strSQL1 & ",BienDo" strSQL2 = strSQL2 & " ,'" & cboBienDo.Text & "' " End If If (cboTanSo.Text "") Then strSQL1 = strSQL1 & ",TanSo" strSQL2 = strSQL2 & ", '" & cboTanSo.Text & "' " End If If (txtNhietDo.Text "") Then strSQL1 = strSQL1 & ",NhietDo" strSQL2 = strSQL2 & " ,'" & txtNhietDo.Text & "' " End If If (cboNguoiDo.Text "") Then strSQL1 = strSQL1 & ",NguoiDo" strSQL2 = strSQL2 & ", '" & cboNguoiDo.Text & "' " End If If (txtNgayDo.Text "") Then strSQL1 = strSQL1 & ",NgayDo" strSQL2 = strSQL2 & ", '" & txtNgayDo.Text & "' " End If If (cboNoiDo.Text "") Then strSQL1 = strSQL1 & ",NoiDo" strSQL2 = strSQL2 & ", '" & cboNoiDo.Text & "' " End If If (shape11.FillColor = vbRed) Then strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",True" Else strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",False" End If strSQL = " insert into Data (" & strSQL1 & ") values( " & strSQL2 & ")" cn.Execute (strSQL) MsgBox " Thong tin da duoc luu!", vbOKOnly, "OK" Exit Sub 'DataIncorrect: vbOKOnly, "warning" DataIncorrect: MsgBox " Xin vui long nhap ten mau!", vbOKOnly, "warning" End Sub Private Sub cmdSave2_Click() Dim strSQL, strSQL1, strSQL2 As String Dim str Dim intSTT Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset OpenDatabase rs.Open "Select STT from Data", cn, adOpenStatic, adLockOptimistic rs.MoveLast intSTT = rs!STT + If (intSTT 0) Then strSQL1 = strSQL1 & "STT" strSQL2 = strSQL2 & " " & intSTT & " " End If If (cboTenMau2.Text "") Then strSQL1 = strSQL1 & ",TenMau" strSQL2 = strSQL2 & " ,'" & cboTenMau2.Text & "' " Else: GoTo DataIncorrect End If If (cboBienDo.Text "") Then strSQL1 = strSQL1 & ",BienDo" strSQL2 = strSQL2 & " ,'" & cboBienDo.Text & "' " End If If (cboTanSo.Text "") Then strSQL1 = strSQL1 & ",TanSo" strSQL2 = strSQL2 & ", '" & cboTanSo.Text & "' " End If If (txtNhietDo.Text "") Then strSQL1 = strSQL1 & ",NhietDo" strSQL2 = strSQL2 & " ,'" & txtNhietDo.Text & "' " End If If (cboNguoiDo.Text "") Then strSQL1 = strSQL1 & ",NguoiDo" strSQL2 = strSQL2 & ", '" & cboNguoiDo.Text & "' " End If If (txtNgayDo.Text "") Then strSQL1 = strSQL1 & ",NgayDo" strSQL2 = strSQL2 & ", '" & txtNgayDo.Text & "' " End If If (cboNoiDo.Text "") Then strSQL1 = strSQL1 & ",NoiDo" strSQL2 = strSQL2 & ", '" & cboNoiDo.Text & "' " End If If (Shape21.FillColor = vbRed) Then strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",True" Else strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",False" End If strSQL = " insert into Data (" & strSQL1 & ") values( " & strSQL2 & ")" cn.Execute (strSQL) MsgBox " Thong tin da duoc luu!", vbOKOnly, "OK" Exit Sub vbOKOnly, "warning" DataIncorrect: MsgBox " Xin vui long nhap ten mau!", vbOKOnly, "warning" End Sub Private Sub cmdSave3_Click() Dim strSQL, strSQL1, strSQL2 As String Dim str Dim intSTT Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset OpenDatabase rs.Open "Select STT from Data", cn, adOpenStatic, adLockOptimistic rs.MoveLast intSTT = rs!STT + If (intSTT 0) Then strSQL1 = strSQL1 & "STT" strSQL2 = strSQL2 & " " & intSTT & " " End If If (cboTenMau3.Text "") Then strSQL1 = strSQL1 & ",TenMau" strSQL2 = strSQL2 & " ,'" & cboTenMau3.Text & "' " Else: GoTo DataIncorrect End If If (cboBienDo.Text "") Then strSQL1 = strSQL1 & ",BienDo" strSQL2 = strSQL2 & " ,'" & cboBienDo.Text & "' " End If If (cboTanSo.Text "") Then strSQL1 = strSQL1 & ",TanSo" strSQL2 = strSQL2 & ", '" & cboTanSo.Text & "' " End If If (txtNhietDo.Text "") Then strSQL1 = strSQL1 & ",NhietDo" strSQL2 = strSQL2 & " ,'" & txtNhietDo.Text & "' " End If If (cboNguoiDo.Text "") Then strSQL1 = strSQL1 & ",NguoiDo" strSQL2 = strSQL2 & ", '" & cboNguoiDo.Text & "' " End If If (txtNgayDo.Text "") Then strSQL1 = strSQL1 & ",NgayDo" strSQL2 = strSQL2 & ", '" & txtNgayDo.Text & "' " End If If (cboNoiDo.Text "") Then strSQL1 = strSQL1 & ",NoiDo" strSQL2 = strSQL2 & ", '" & cboNoiDo.Text & "' " End If If (Shape31.FillColor = vbRed) Then strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",True" Else strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",False" End If strSQL = " insert into Data (" & strSQL1 & ") values( " & strSQL2 & ")" cn.Execute (strSQL) MsgBox " Thong tin da duoc luu!", vbOKOnly, "OK" Exit Sub vbOKOnly, "warning" DataIncorrect: MsgBox " Xin vui long nhap ten mau!", vbOKOnly, "warning" End Sub Private Sub cmdSave4_Click() Dim strSQL, strSQL1, strSQL2 As String Dim str Dim intSTT Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset OpenDatabase rs.Open "Select STT from Data", cn, adOpenStatic, adLockOptimistic rs.MoveLast intSTT = rs!STT + If (intSTT 0) Then strSQL1 = strSQL1 & "STT" strSQL2 = strSQL2 & " " & intSTT & " " End If If (cboTenMau4.Text "") Then strSQL1 = strSQL1 & ",TenMau" strSQL2 = strSQL2 & " ,'" & cboTenMau4.Text & "' " Else: GoTo DataIncorrect End If If (cboBienDo.Text "") Then strSQL1 = strSQL1 & ",BienDo" strSQL2 = strSQL2 & " ,'" & cboBienDo.Text & "' " End If If (cboTanSo.Text "") Then strSQL1 = strSQL1 & ",TanSo" strSQL2 = strSQL2 & ", '" & cboTanSo.Text & "' " End If If (txtNhietDo.Text "") Then strSQL1 = strSQL1 & ",NhietDo" strSQL2 = strSQL2 & " ,'" & txtNhietDo.Text & "' " End If If (cboNguoiDo.Text "") Then strSQL1 = strSQL1 & ",NguoiDo" strSQL2 = strSQL2 & ", '" & cboNguoiDo.Text & "' " End If If (txtNgayDo.Text "") Then strSQL1 = strSQL1 & ",NgayDo" strSQL2 = strSQL2 & ", '" & txtNgayDo.Text & "' " End If If (cboNoiDo.Text "") Then strSQL1 = strSQL1 & ",NoiDo" strSQL2 = strSQL2 & ", '" & cboNoiDo.Text & "' " End If If (Shape41.FillColor = vbRed) Then strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",True" Else strSQL1 = strSQL1 & ",KetQua" strSQL2 = strSQL2 & ",False" End If strSQL = " insert into Data (" & strSQL1 & ") values( " & strSQL2 & ")" cn.Execute (strSQL) MsgBox " Thong tin da duoc luu!", vbOKOnly, "OK" Exit Sub vbOKOnly, "warning" DataIncorrect: MsgBox " Xin vui long nhap ten mau!", vbOKOnly, "warning" End Sub Private Sub cmdThoat_Click() Call CloseHIDDevice Unload Me End Sub Private Sub cmdThongke_Click() ThongKe.Show End Sub Private Sub cmdXoa_Click() iColumnIndex = picChannel1.Cls picChannel2.Cls picChannel3.Cls picChannel4.Cls Call drawbackground End Sub Private Sub Form_Load() App.HelpFile = App.Path & "\q.chm" For i = To pic1.Line (4100, 4710 - 400 * i)-(4130, 4710 - 400 * i), vbRed Next For i = To pic1.Line (4100, 2295 - 400 * i)-(4130, 2295 - 400 * i), vbRed Next For i = To pic1.Line (120 + 400 * i, 2420)-(120 + 400 * i, 2470), vbRed Next For i = To pic1.Line (4400 + 400 * i, 2420)-(4400 + 400 * i, 2470), vbRed Next For i = To picChannel1.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel2.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel3.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel4.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next picChannel1.Line (0, 1350)-(3735, 1350), vbRed picChannel2.Line (0, 1350)-(3735, 1350), vbRed picChannel3.Line (0, 1350)-(3735, 1350), vbRed picChannel4.Line (0, 1350)-(3735, 1350), vbRed lblUSB.ForeColor = vbRed iColumnIndex = aIndex = ReadEvent = CreateEvent(0, False, False, 0) If (ReadEvent = 0) Then ErrorExit ("Could not create ReadEvent") ReadOverlap.Offset = ReadOverlap.OffsetHigh = ReadOverlap.hEvent = ReadEvent PollCounter = 100 End Sub Private Sub Poll_Timer() Dim Result As Long PollCounter = PollCounter + If (PollCounter > 30) Then PollCounter = If (Openned) Then Call CloseHIDDevice DeviceName = OpenBiosensorDevice() If (DeviceName = "") Then lblUSB.ForeColor = vbRed Else If (lblUSB.ForeColor = vbRed) Then lblUSB.ForeColor = vbGreen ReadHandle = OpenForRead(DeviceName) WriteHandle = OpenForWrite(DeviceName) Openned = True End If End If If (ReadHandle) Then Call StartRead(ButtonReport(0), 6) Result = WaitForSingleObject(ReadEvent, 80) Call ResetEvent(ReadEvent) If (Result = WAIT_TIMEOUT) Then Result = CancelIo(ReadHandle) Else Call ProcessData End If End If End Sub Public Sub ProcessData() iColumnIndex = iColumnIndex + If (iColumnIndex > 80) Then picChannel1.Cls picChannel2.Cls picChannel3.Cls picChannel4.Cls iColumnIndex = Call drawbackground End If txtNhietDo.Text = ButtonReport(5) picChannel1.DrawWidth = picChannel2.DrawWidth = picChannel3.DrawWidth = picChannel4.DrawWidth = picChannel1.Line (50 + iColumnIndex * 50, 2175 - 40 * ButtonReport(1) - 50)-(60 + iColumnIndex * 50, 2175 - 40 * ButtonReport(1) - 50), vbBlue picChannel2.Line (50 + iColumnIndex * 50, 2175 - 40 * ButtonReport(2) - 50)-(60 + iColumnIndex * 50, 2175 - 40 * ButtonReport(2) - 50), vbRed picChannel3.Line (50 + iColumnIndex * 50, 2175 - 40 * ButtonReport(3) - 50)-(60 + iColumnIndex * 50, 2175 - 40 * ButtonReport(3) - 50), vbBlack picChannel4.Line (50 + iColumnIndex * 50, 2175 - 40 * ButtonReport(4) - 50)-(60 + iColumnIndex * 50, 2175 - 40 * ButtonReport(4) - 50), vbGreen picChannel1.DrawWidth = picChannel2.DrawWidth = picChannel3.DrawWidth = picChannel4.DrawWidth = If ((ButtonReport(1) > 20) And (ButtonReport(1) < 50)) Then shape11.FillColor = vbRed Shape12.FillColor = &H80000016 Else shape11.FillColor = &H80000016 Shape12.FillColor = vbGreen End If If ((ButtonReport(2) > 20) And (ButtonReport(2) < 50)) Then Shape21.FillColor = vbRed Shape22.FillColor = &H80000016 Else Shape21.FillColor = &H80000016 Shape22.FillColor = vbGreen End If If ((ButtonReport(3) > 20) And (ButtonReport(3) < 50)) Then Shape31.FillColor = vbRed Shape32.FillColor = &H80000016 Else Shape31.FillColor = &H80000016 Shape32.FillColor = vbGreen End If If ((ButtonReport(4) > 20) And (ButtonReport(4) < 50)) Then Shape41.FillColor = vbRed Shape42.FillColor = &H80000016 Else Shape41.FillColor = &H80000016 Shape42.FillColor = vbGreen End If End Sub Public Sub StartRead(Buffer As Byte, count As Long) Dim Success, BytesRead As Long Success = ReadFile(ReadHandle, Buffer, count, BytesRead, ReadOverlap) Exit Sub StartReadError: ErrorExit ("Error in StartRead") End Sub Public Sub SendReport(Buffer As Byte, count As Integer) Dim Success, BytesWritten As Long Success = WriteFile(WriteHandle, Buffer, count, BytesWritten, 0) If ((Success = 0) Or (BytesWritten count)) Then ErrorExit ("Error is SendReport") End Sub Public Function OpenBiosensorDevice() As String Dim SystemName As String SystemName = FindHIDInterface(&H4242, &HEE01, &HFF00) OpenBiosensorDevice = SystemName End Function Sub CloseHIDDevice() If (ReadHandle) Then Call CloseHandle(ReadHandle) ReadHandle = If (WriteHandle) Then Call CloseHandle(WriteHandle) WriteHandle = Openned = False End Sub Sub drawbackground() For i = To pic1.Line (4100, 4710 - 400 * i)-(4130, 4710 - 400 * i), vbRed Next For i = To pic1.Line (4100, 2295 - 400 * i)-(4130, 2295 - 400 * i), vbRed Next For i = To pic1.Line (120 + 400 * i, 2420)-(120 + 400 * i, 2470), vbRed Next For i = To pic1.Line (4400 + 400 * i, 2420)-(4400 + 400 * i, 2470), vbRed Next For i = To picChannel1.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel2.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel3.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next For i = To picChannel4.Line (0, 2175 - 400 * i)-(3735, 2175 - 400 * i), &H8000000F Next picChannel1.Line (0, 1350)-(3735, 1350), vbRed picChannel2.Line (0, 1350)-(3735, 1350), vbRed picChannel3.Line (0, 1350)-(3735, 1350), vbRed picChannel4.Line (0, 1350)-(3735, 1350), vbRed End Sub ... Các thiết bị đo cho cảm biến sinh học 15 1.4 Nguyên lý hệ đo xử lý tín hiệu cảm biến miễn dịch đa kênh 22 1.4.1 Cảm biến miễn dịch sở độ dẫn 22 1.4.2 Nguyên lý hệ đo cho cảm biến miễn. .. tiết 01 điện cực cảm biến Trên phiến Si lần chế tạo cảm biến thành công, mặt nạ cho 78 linh kiện cảm biến đa kênh Quy trình chế tạo cho cảm biến đa kênh: Cảm biến đa kênh chế tạo viện ITIMS, trường... triển thiết bị hệ đo đa kênh dành cho cảm biến miễn dịch sở độ dẫn chế tạo trường Đại Học Bách Khoa Hà Nội Vũ Quang Khuê, ITIMS 2007-2009 - 28 - Chương NGHIÊN CỨU, CHẾ TẠO THIẾT BỊ ĐO ĐA KÊNH

Ngày đăng: 28/02/2021, 14:13