Professional Documents
Culture Documents
LÊ THẾ TRUNG
KHÓA 13
HỆ ĐÀO TẠO KỸ SƯ DÂN SỰ DÀI HẠN
NĂM 2019
HỌC VIỆN KỸ THUẬT QUÂN SỰ
LÊ THẾ TRUNG
KHÓA 13
HỆ ĐÀO TẠO KỸ SƯ DÂN SỰ DÀI HẠN
Cán bộ hướng dẫn khoa học: Đại úy, ThS Đặng Trần Huy
NĂM 2019
BỘ QUỐC PHÒNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
HỌC VIỆN KỸ THUẬT QUÂN SỰ Độc lập - Tự do - Hạnh phúc
KHOA KỸ THUẬT ĐIỀU KHIỂN
Phê chuẩn Độ mật: …………...
Ngày …. tháng …. năm ……… Số: ………………...
CHỦ NHIỆM KHOA
Lê Thế Trung
DANH MỤC VIẾT TẮT
MỤC LỤC
1.2.1. Cơ sở lý thuyết............................................................................ 15
2.2.2. Các mạch tính toán sử dụng khuếch đại thuật toán ...................... 25
3.1.3. IC MCP6002............................................................................... 50
TỔNG KẾT...................................................................................................... 61
LỜI MỞ ĐẦU
Các phát minh khoa học và sự phát triển công nghệ đã giúp cuộc sống của
con người trở nên dễ dàng và tiện nghi hơn. Một trong số đó là ứng dụng vào y
khoa giúp các nhân viên y tế có thể thu được những dữ liệu sinh lý quan trọng của
bệnh nhân. Nói một cách chính xác đó là các tín hiệu điện sinh ra trong quá trình
hoạt động của các tổ chức sống mang nguồn thông tin cực kỳ hữu ích trong việc
chẩn đoán và điều trị, trở thành một công cụ đắc lực trong hoạt động khám chữa
bệnh và nghiên cứu khoa học. Ngày nay, việc thu nhận và phân tích tín hiệu điện
sinh học dường như không thể thiếu trong bất kỳ cơ sở y tế lớn nhỏ nào. Nếu một
bệnh viện, một phòng khám hay trên xe cứu thương mà thiếu đi các trang thiết bị
theo dõi thông số sự sống như monitor hay máy đo điện tim, máy đo huyết áp thì
sẽ thật khó khăn trong việc chẩn đoán và thăm khám, có thể gây sai sót ảnh hưởng
trực tiếp đến người bệnh.
Có thể nói nhịp tim chính là một trong các thông số quan trọng đầu tiên
được phát hiện và dùng để chẩn đoán tình trạng của một người. Tim là bộ phận
quan trọng trong hệ tuần hoàn của động vật, với chức năng bơm đều đặn để đẩy
máu theo các động mạch và đem dưỡng khí cùng các chất dinh dưỡng đến các cơ
quan trong cơ thể. Hệ thống tim mạch của con người bao gồm tim, mạch máu và
khoảng năm lít máu mà mạch máu vận chuyển. Đo nhịp tim cho thấy sự lành
mạnh của hệ thống tim mạch của con người, nhịp tim nhanh hay chậm phản ánh
tình trạng bệnh lý hay chỉ đơn giản là sự vận động của cơ thể.
Từ xa xưa, việc đo nhịp tim đã trở nên vô cùng quan trọng nhưng có điều
nó rất kém chính xác và thủ công vì là bắt mạch ở cổ tay. Cách xác định này chỉ
mang tính chất ước lượng, theo kinh nghiệm là chủ yếu và dễ có sai sót. Nhưng
ngày nay, với sự phát triển của công nghệ thì các máy đo nhịp tim ra đời, rất gọn
nhẹ và tiện dụng. Điển hình như máy đo điện tim ECG là một thiết bị hết sức
thông dụng tại các cơ sở y tế, các máy đo nồng độ bão hòa Oxy trong máu và nhịp
tim... Tuy nhiên các thiết bị hiện nay có giá thành khá cao hoặc vận hành phức
tạp, chưa phù hợp với nhiều cá nhân muốn tự theo dõi tại nhà, do vậy tôi chọn đề
7
tài “Xây dựng hệ thống đo nhịp tim thông qua cảm biến quang” cho đồ án tốt
nghiệp của mình. Mục đích của đề tài này là xây dựng được một hệ thống theo
dõi nhịp tim hoàn chỉnh có kết cấu đơn giản, có thể theo dõi và hiển thị nhịp tim
liên tục, đảm bảo độ chính xác. Trong đề tài này, tôi sẽ nghiên cứu và phát triển
một thiết bị theo dõi nhịp tim khi nghỉ ngơi dựa trên mạch xử lý Arduino Mini có
chi phí thấp và sử dụng cảm biến quang học để đo sự thay đổi thể tích máu trên
đầu ngón tay. Nội dung của đồ án gồm có 3 chương:
- Chương 1. Tổng quan về cơ sở lý thuyết và nguyên lý đo nhịp tim
- Chương 2. Cơ sở xây dựng mô hình đo nhịp tim
- Chương 3. Thiết kế mô hình đo nhịp tim
Trong quá trình thực hiện đồ án, tôi đã nhận được sự giúp đỡ chỉ bảo tận
tình của giảng viên ThS. Đặng Trần Huy cùng các thầy cô giáo trong bộ môn Điện
tử y sinh. Tôi xin chân thành gửi lời cảm ơn tới mọi người đã giúp tôi hoàn thành
đồ án tốt nghiệp này.
8
CHƯƠNG 1.
TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT VÀ NGUYÊN LÝ ĐO NHỊP TIM
Tim được cấu thành từ một loại cơ đặc biệt là cơ tim. Tim là một khối cơ
rỗng, được chia thành 4 buồng: 2 tâm nhĩ và 2 tâm thất. Nhĩ phải và nhĩ trái, thành
mỏng, nhận máu tĩnh mạch, đưa xuống thất. Thất phải và thất trái, thành dày, bơm
máu vào động mạch với áp lực cao. Hai tâm nhĩ ngăn cách nhau bởi vách liên nhĩ,
hai tâm thất ngăn cách nhau bởi vách liên thất. Tim được cấu tạo bởi ba lớp: ngoại
tâm mạc, cơ tim và nội tâm mạc.
Nội tâm mạc (hay màng trong tim) mỏng, láng, phủ và dính chặt lên toàn
bộ mặt trong của các buồng tim và liên tiếp với nội mạc các mạch máu.
Thành tâm nhĩ mỏng hơn nhiều so với thành tâm thất, vì nhiệm vụ chủ yếu
của nó là thu nhận máu và co bóp để đẩy máu xuống tâm thất. Còn tâm thất có
nhiệm vụ tống máu vào động mạch phổi và động mạch chủ đi nuôi cơ thể.
Thành của hai tâm thất cũng không hoàn toàn giống nhau. Thành tâm thất
trái dày hơn thành tâm thất phải vì áp lực cần thiết để tống máu chảy trong vòng
tuần hoàn nhỏ khoảng 30mmHg nhỏ hơn rất nhiều so với áp lực tống máu vào
vòng tuần hoàn lớn khoảng 120mmHg. Chính sự khác biệt về áp lực bơm máu
giữa hai tâm thất nên khi tâm thất phải hoạt động thường vặn mình sang bên trái
làm cấu tạo của hai nửa quả tim không đối xứng.
Hệ thống van tim cấu tạo rất phù hợp với chức năng tạo áp lực cho dòng
máu và giúp máu di chuyển một chiều:
- Giữa tâm nhĩ và tâm thất có van nhĩ thất đảm bảo cho máu chỉ chảy một
chiều từ tâm nhĩ xuống tâm thất. Giữa tâm nhĩ phải và tâm thất phải là van
ba lá. Giữa tâm nhĩ trái và tâm thất trái là van hai lá. Van hai lá chắc chắn
hơn van ba lá, phù hợp với lực co bóp mạnh của tâm thất trái.
- Giữa các tâm thất và động mạch chủ, động mạch phổi có van thất động (van
bán nguyệt hoặc van tổ chim) ngăn không cho máu chảy ngược lại.
- Van tim có cấu tạo bởi mô liên kết, không có mạch máu, một đầu gắn cố
định vào mấu lồi ở thành trong của tâm thất bằng các dây chằng, một đầu
gắn với bờ ngăn tâm nhĩ với tâm thất của tim.
Tim không lấy máu trực tiếp từ động mạch chủ mà có hệ thống mạch máu
nuôi dưỡng riêng. Đó là hai động mạch vành xuất phát từ động mạch chủ, từ đấy
lại tiếp tục phân nhánh thành các mao mạch nhỏ hơn đi vào giữa các tế bào cơ tim
cung cấp chất dinh dưỡng và O2.
1.1.2. Chu kỳ hoạt động của tim
Tim đập nhịp nhàng, đều đặn. Khoảng thời gian từ đầu của một tiếng tim
này đến đầu tiếng tim khác gọi là một chu kỳ tim. Trong điện tâm đồ, các hiện
12
tượng cơ học (co và giãn) và những thay đổi về áp lực tâm nhĩ, tâm thất, thể tích
tâm thất và áp lực động mạch chủ trong suốt chu kỳ tim có liên quan với nhau.
Áp lực ở thất trái cao, còn thất phải thì áp lực thấp hơn nhiều vì thành thất
phải mỏng hơn tuy nhiên thể tích tống máu là như nhau. Ở một chu kỳ tim bình
thường, hai tâm nhĩ co trong khi hai tâm thất giãn và ngược lại.
Các giai đoạn của chu kỳ tim: trong điều kiện bình thường tim đập khoảng
75 nhịp trong một phút, thời gian của một chu chuyển tim là 0,8 giây và gồm hai
thì cơ bản là thì tâm thu và thì tâm trương.
tục tăng cao, trong tâm thất trái là 70-80mmHg, trong tâm thất phải
khoảng 100mmHg, áp lực này đủ sức mở van bán nguyệt, tống máu
từ tâm thất sang động mạch.
o Thời kỳ tống máu (0,25 giây): Mở đầu giai đoạn này là giai đoạn cơ
co đẳng trương, áp lực trong tâm thất tiếp tục tăng cao, máu tống
nhanh sang động mạch chủ và động mạch phổi. Thời gian tống máu
nhanh kéo dài khoảng 0,12 giây, tống nhanh 4/5 lượng máu từ tâm
thất vào động mạch; còn 1/5 lượng máu đưa vào trong thời gian tống
máu chậm. Mỗi lần tâm thất co, tống vào động mạch khoảng 70ml,
thể tích này gọi là thể tích tâm thu (Qs). Sau đó tốc độ tống máu chậm
lại, áp suất tâm thất giảm dần, thời gian tống máu chậm kéo dài 0,13
giây. Giai đoạn tống máu là giai đoạn quan trọng nhất trong một chu
chuyển tim.
có xu hướng co về trạng thái cũ, làm máu ở động mạch chủ và động
mạch phổi dội ngược về đóng van tim tổ chim, gây tiếng tim thứ hai.
Áp suất tâm thất tiếp tục giảm, máu từ tĩnh mạch chủ trên và tĩnh mạch
chủ dưới đổ vào tâm nhĩ làm tăng áp suất trong tâm nhĩ, cho đến khi lớn
hơn áp suất ở tâm thất thì van nhĩ thất mở ra, máu rót xuống thất hơn
70% lượng máu có trong tâm nhĩ.
Tâm thất không bơm hết máu, mỗi khi tim bóp, lượng máu còn lại khoảng
50ml, gọi là thể tích cuối tâm thu. Lượng máu này có thể giảm khi sức co của tim
tăng hay sức cản bên ngoài giảm và ngược lại.
Thời kỳ tâm trương toàn bộ thay đổi tùy theo tần số tim, khi nhịp tim nhanh
thời gian tâm trương ngắn lại.
1.1.3. Ý nghĩa của nhịp tim
Nhịp tim Beat per min (BPM) là tốc độ nhịp tim đo bằng số lần co thắt của
tim mỗi phút. Nhịp tim có thể thay đổi theo nhu cầu thể chất của cơ thể, bao gồm
cả nhu cầu hấp thụ oxy và bài tiết carbon dioxide. Nó thường bằng hoặc gần với
xung được đo tại bất kỳ điểm ngoại vi nào. Các hoạt động có thể tạo ra thay đổi
bao gồm tập thể dục, ngủ, lo lắng, căng thẳng, bệnh tật và khi uống thuốc.
Nhịp tim trung bình của người trưởng thành trong khoảng 60 đến 100 lần
mỗi phút. Nếu tim đập dưới 60 lần mỗi phút, đây là nhịp tim chậm. Nếu nó đập
hơn 100 lần mỗi phút, đó là nhịp tim nhanh. Nhịp tim chậm có thể là bình thường
và khỏe mạnh hoặc nó có thể là một dấu hiệu của vấn đề với hệ thống điện tâm
đồ. Đối với một số người, nhịp tim chậm không gây ra vấn đề gì, nó có thể là một
dấu hiệu rất phù hợp. Thanh niên khỏe mạnh và vận động viên thường có tốc độ
dưới 60 nhịp một phút. Đàn ông và phụ nữ từ 65 tuổi trở lên rất có thể bị nhịp tim
chậm cần điều trị. Khi một người già đi, hệ thống điện của tim thường không hoạt
động bình thường, do đó cần phải được theo dõi thường xuyên và định kỳ.
Nhịp tim nghỉ ngơi Resting Heart Rate (RHR) là nhịp tim khi ta nghỉ ngơi
sau 10 phút. Mặc dù vậy, thời điểm tốt nhất để đo RHR là ngay sau khi thức dậy
một cách tự nhiên vào buổi sáng. Nói chung, RHR của một người càng thấp, người
15
đó càng khỏe mạnh vì trái tim không cần phải làm việc chăm chỉ. Nhịp tim nghỉ
ngơi có thể giảm do tập luyện thể dục và thể dục phù hợp. Tuy nhiên, RHR khác
nhau tùy thuộc vào độ tuổi và tình trạng sức khỏe của một người và thời gian
trong ngày.
Bảng 1.1. Nhịp tim nghỉ ngơi dựa trên độ tuổi và giới tính
Nhịp tim nghỉ ngơi
Trẻ sơ sinh (<12 tháng) 100 – 160 BPM
Trẻ nhỏ (1-10 tuổi) 70 – 120 BPM
Vị thành niên (11-17 tuổi) 60 – 100 BPM
Người lớn 60 – 100 BPM
Dựa trên giới tính
Nam 70 BPM
Nữ 75 BPM
Vận động viên 40 – 60 BPM
- Nhiễu do cử động.
- Nhiễu do ánh sáng phòng.
- Tình trạng giảm tưới máu mô (do dùng thuốc, hạ thân nhiệt…).
- Do độ sai tiêu chuẩn của máy (± 2%).
1.2.2. Nguyên lý đo nhịp tim
Nguyên lý của phép đo nhịp tim trong đề tài này là sử dụng nguồn ánh sáng
hồng ngoại có bước sóng 940nm và quá trình hấp thụ ánh sáng của De-oxy
Hemoglobin (HbO2) trong máu trên cơ sở áp dụng định luật Lambert – Beer.
Hình 1.5 Phổ hấp thụ HbO2 ở các bước sóng khác nhau
Định luật Lamber – Beer về sự hấp thụ ánh sáng:
I = Ioe-ε(λ)Cl
Trong đó:
I: cường độ ánh sáng sau khi đi qua môi trường;
Io: cường độ ánh sáng ban đầu;
ε(λ): hệ số hấp thụ của môi trường tại bước sóng λ;
C: nồng độ môi trường;
l: quãng đường ánh sáng truyền qua.
Hình 1.6. Sự hấp thụ ánh sáng trong định luật Lambert – Beer
17
Như vậy, cường độ ánh sáng sau I càng nhỏ tức là ánh sáng bị hấp thụ càng
nhiều hay nồng độ HbO2 càng cao và ngược lại.
Hình 1.7. Sự hấp thụ ánh sáng phụ thuộc nồng độ môi trường
Da và mô xung quanh cũng hấp thụ ánh sáng nhưng đó là một lượng cố
định không đổi, vậy nên ta chỉ quan tâm đến lượng ánh sáng hồng ngoại bị hấp
thụ bởi HbO2.
Hình 1.9. Sự hấp thụ ánh sáng của động mạch và các mô cùng tĩnh mạch
18
Hình 1.14. Thời gian giữa các đỉnh R qua 2 phương pháp đo PPG và ECG
21
Ở tín hiệu ECG, đỉnh R là sự bắt đầu của quá trình tâm thất thu tức là tim
bắt đầu bơm máu đi. Sóng T thể hiện quá trình khử cực thất kết thúc, bắt đầu thì
tâm trương. Như vậy tín hiệu quang điện Photopethysmography (PPG) chiếu qua
da thu được sẽ có điểm cực tiểu chính là lúc bắt đầu máu được bơm đi và đỉnh cao
nhất tương ứng với đỉnh sóng T là lúc tim nghỉ và máu bắt đầu dội ngược về tim.
Đo khoảng thời gian giữa 2 đỉnh R-R sẽ biết được một chu kỳ tim và lấy 60 chia
cho giá trị chu kỳ tim đó sẽ thu được giá trị nhịp tim trên một phút.
Với phương pháp đo bằng cảm biến quang, tín hiệu sẽ bị ảnh hưởng bởi các
tổ chức mô. Tùy vào mỗi người sẽ có 1 dạng sóng thể hiện thì tâm trương khác
nhau:
- Lọc bằng các bộ lọc: Tín hiệu sau khi được khuếch đại đủ lớn sẽ đi qua bộ
lọc thông cao để loại bỏ ngay thành phần 1 chiều chiếm phần lớn tín hiệu
và gây khó khăn trong việc quan sát tín hiệu có ích. Tiếp theo sau là bộ lọc
thông thấp để loại bỏ các nhiễu gợn xung quanh tín hiệu có ích. Sau khi đi
qua các bộ lọc tín hiệu phải đảm bảo đủ lớn và mịn để đưa về bộ xử lý đo
đạc và tính toán ra kết quả.
Hình 1.16. Tín hiệu thô và tín hiệu PPG sau lọc
KẾT LUẬN CHƯƠNG 1
Kết thúc CHƯƠNG 1, ta đã nắm được:
- Cấu trúc cơ bản của tim, một chu kỳ hoạt động của tim, nguyên lý đo nhịp
tim qua đó nắm được phương hướng đo đạc và tính toán nhịp tim.
- Các phương pháp có thể sử dụng để xác định nhịp tim và các điện cực, cảm
biến tương ứng, từ đó linh hoạt trong việc tìm kiếm, xây dựng hệ thống.
- Biết được dạng đặc trưng của tín hiệu, dựa vào đó làm cơ sở nhận biết khi
tiến hành thu nhận thực tế.
23
CHƯƠNG 2.
CƠ SỞ XÂY DỰNG MÔ HÌNH ĐO NHỊP TIM
2.2. CƠ SỞ MẠCH
2.2.1. Định nghĩa bộ khuếch đại thuật toán Op-Amp
Kỹ thuật mạch điện tử hiện nay, đặc biệt là kỹ thuật mạch trong thu nhận
tín hiệu y sinh sử dụng rất nhiều và hiệu quả các bộ khuếch đại thuật toán OP –
AMP. Các bộ khuếc đại này có trở kháng ngõ vào lớn, trở kháng ngõ ra nhỏ, đặc
biệt hoạt động tốt ở các tần số thấp – phù hợp với khoảng tần số của tín hiệu y
sinh.
24
Khuếch đại thuật toán là một khuếch đại ghép trực tiếp (vi sai) với hai ngõ
vào và một ngõ ra. Định nghĩa một bộ khuếch đại thuật toán lý tưởng theo những
đặc tính như sau:
- Có hệ số khuếch đại vô cùng.
- Trở kháng ngõ vào là vô cùng.
- Trở kháng ngõ ra là 0.
Mặc dù trên thực tế, không có bộ khuếch đại nào thỏa mãn hoàn toàn bất
kỳ các yêu cầu trên, nhưng chúng ta xem như mô hình khuếch đại có hệ số khuếch
đại và trở kháng ngõ vào rất lớn, và trở kháng ngõ ra rất nhỏ, đó là những kết quả
sai số nhỏ không đáng kể so với những đặc điểm lý tưởng đó.
Hình 2.1 trình bày kí hiệu chuẩn cho một bộ khuếch đại thuật toán. Chú ý
rằng: hai ngõ vào được đặt là “+” và “-“ và những tín hiệu ngõ vào đã được chỉ rõ
tương ứng vi+ và vi-. Nếu những ngõ vào là các tín hiệu khác pha, thì ngõ ra bộ
khuếch đại sẽ cùng pha với vi+ và ngược pha với vi-. Vì lý do này, ngõ vào cực
dương được gọi là ngõ vào không đảo và ngõ vào âm được gọi là ngõ vào đảo.
Trong nhiều ứng dụng, một trong các ngõ vào bộ khuếch đại được nối đất, nên vo
cùng pha với ngõ vào nếu tín hiệu được nối với ngõ vào không đảo, và vo là ngược
pha với ngõ vào nếu tín hiệu được nối với ngõ vào đảo. Những ý tưởng này được
tóm tắt trong bảng kèm theo hình 2.1.
Hình 2.1. Ký hiệu khuếch đại thuật toán, ngõ vào đảo (-) và không đảo (+)
Về lý thuyết, nếu bộ khuếch đại có hệ số khuếch đại là vô cùng, thì một
điện áp vào rất nhỏ phải cho kết quả ở điện áp ngõ ra là rất lớn. Dĩ nhiên là hệ số
khuếch đại đó không phải là vô cùng, mà chỉ là rất lớn. Tuy nhiên, nó đúng khi
một điện áp ngõ vào rất nhỏ sẽ gây ra khuếch đại điện áp ở ngõ ra để lái tới giới
hạn điện áp dương hoặc âm rất lớn. Thực tế là khuếch đại thuật toán ít khi sử dụng
25
toàn bộ hệ số khuếch đại của nó. Thông qua sử dụng các điện trở hồi tiếp ta có thể
tính toán lựa chọn hệ số khuếch đại cần thiết.
2.2.2. Các mạch tính toán sử dụng khuếch đại thuật toán
Dưới đây là một số mạch ứng dụng sử dụng bộ khuếch đại thuật toán:
a. Mạch khuếch đại
Sơ đồ mạch như hình 2.2 là một mạch khuếch đại đảo. Đây là một ứng dụng
khá hữu ích của bộ khuếch đại thuật toán. Ngõ vào không đảo được nối đất, vin
được nối qua R1 với ngõ vào đảo, và điện trở hồi tiếp Rf được nối giữa ngõ ra và
vi-. Bởi vì sử dụng bộ khuếch đại ở chế độ đảo, nên ta chỉ rõ hệ số khuếch đại điện
áp là –A, vì vậy:
Rf (2.2)
vo = − v
R1 in
là tổ hợp tuyến tính của v1, v2, và v3, và mạch này được gọi là mạch tổ hợp tuyến
tính.
Hình 2.5 trình bày một mạch khuếch đại đảo có thể được sử dụng để cộng
tỉ lệ ba tín hiệu ngõ vào. Chú ý rằng ba tín hiệu ngõ vào v1, v2, và v3 được cung
cấp qua ba điện trở R1, R2, và R3 vào mạch khuếch đại với Rf là điện trở hồi tiếp
(Rc là điện trở bù offset). Ta có quan hệ giữa đầu ra với các đầu vào:
Rf R R (2.5)
vo = − ( v1 + f v2 + f v3 )
R1 R2 R3
Hình 2.7 là một mạch trừ điện áp sử dụng op-amp. Quan hệ giữa đầu ra với
các đầu vào của mạch là:
R3 + R4 R2 R4 (2.7)
vo = ( )( ) v1 − v
R3 R1 + R 2 R3 2
Hình 2.9. Ngõ ra mạch tích phân tại t giây, Et, với sóng ngõ vào
Khi tín hiệu vào mạch tích phân thực tế là tín hiệu DC thì tín hiệu ra sẽ tăng
tuyến tính theo thời gian như trong hình và sẽ đạt đến mức điện áp ngõ ra lớn nhất
có thể có của mạch khuếch đại và quá trình tích phân sẽ dừng ở đó. Nếu điện áp
vào xuống mức âm trong một khoảng thời gian nhất định thì điện tích dương đã
tích luỹ trước đó trừ đi điện tích trong khoảng thời gian xuống mức âm sẽ làm
giảm điện áp ra. Do đó, ngõ vào phải có mức dương và âm theo chu kỳ để tránh
cho ngõ ra của mạch tích phân đạt đến mức giới hạn âm hoặc dương.
Hình 2.10 là mạch tích phân dùng khuếch đại thuật toán. Mạch khuếch đại
có tụ C hồi tiếp về nên là mạch khuếch đại đảo. Bên cạnh những giả thiết của một
mạch khuếch đại lý tưởng thông thường, ta giả thiết ngõ vào offset là 0, thì tín
30
hiệu DC bất kỳ ở ngõ vào sẽ được lấy tích phân như hình 2.9 và cuối cùng sẽ làm
𝑡
cho mạch khuếch đại bão hoà. Dùng ký hiệu chuẩn ∫0 vin(t)dt để biểu diễn tích
phân điện áp v giữa thời điểm 0 và thời điểm t, ngõ ra của mạch là:
−1 t (2.9)
vo(t) = ∫ v dt
R1C 0 in
một vài tần số mà tại đó biên độ ngõ ra phải bắt đầu giảm xuống. Ta thiết kế
mạch khuếch đại vi phân thực tế sao cho tần số gãy nhỏ hơn cả tần số cắt của
mạch khuếch đại để đặc tính độ lợi của nó chỉ dao động trong khoảng tần số thấp
(tránh trường hợp tần số gãy của mạch khuếch đại vi phân cao hơn cả tần số cắt
của mạch khuếch đại). Để làm điều này, ta mắc một điện trở nối tiếp với tụ điện
C ngõ vào như trong hình 2.14:
Vấn đề nảy sinh với bộ lọc thụ động RLC là ở đầu thấp của dải tần thấp.
Các trị số điện cảm tăng khi tần số cần thiết giảm gây ra các vấn đề nghiêm trọng.
Thứ nhất, cuộn cảm là dụng cụ không hoàn hảo do độ hao bên trong, nhưng độ
hao đó lại tăng rõ rệt ở khoảng điện cảm rất lớn cần cho tần số thấp. Những độ
hao lớn đó làm giảm đáng kể hệ số phẩm chất (Q) đối với mỗi cuộn dây và đáp
tuyến lọc có liên quan bị lệch đi nhiều so với dạng cần thiết của chúng. Thứ hai,
kích thước vật lý thực của những trị số điện cảm lớn làm giới hạn ích lợi của
chúng. Thứ ba, giá của những cuộn cảm như thế chắc chắn không rẻ.
Bộ lọc tích cực gồm tổ hợp điện trở, điện dung và một hoặc nhiều dụng cụ
tích cực (chẳng hạn như op-amp) sử dụng hồi tiếp. Về mặt lý thuyết thì những bộ
lọc đó có khả năng đạt được cùng những đáp tuyến như bộ lọc RLC thụ động. Vì
không cần điện cảm nên những khó khăn liên quan tới chúng ở tần số thấp như
vậy là được loại trừ. Quả thực, các bộ lọc tích cực RC làm việc ở tần số của bộ
lọc tích cực tiến rất sát tới dạng lý tưởng và giá, kích thước vật lý của chúng rất
hợp lý.
Mặc dù các bộ lọc tích cực có khả năng khắc phục được phần lớn những
giới hạn tần số thấp của bộ lọc thụ động, song chúng lại có nhược điểm và vấn đề
riêng của chúng. Vì chúng là tích cực nên chúng cần công suất để chúng làm việc
đúng. Sự kiện rất có ý nghĩa là các thành phần tích cực nói chung ít tin cậy hơn
các mạch thụ động. Cuối cùng, các bộ lọc sử dụng hồi tiếp và luôn có khả năng
mất ổn định.
Mặc dù có hạn chế như vậy song việc sử dụng bộ lọc tích cực vẫn phát triển
và hiện nay chúng đóng vai trò rất xuất sắc trong công nghệ lọc. Bộ lọc tích cực
hơn hẳn bộ lọc thụ động áp dụng trong phần lớn tần số thấp và rất thấp. Có dải
tần trong đó có thể sử dụng tốt hoặc bộ lọc thụ động hoặc bộ lọc tích cực tùy thuộc
vào các ràng buộc thiết kế khác nhau. Tuy nhiên, khi lĩnh vực áp dụng rộng tới
dải vô tuyến (RF…) thì bộ lọc RLC lại chiếm ưu thế. Thông thường, trừ một số
ngoại lệ còn thì giới hạn thực tế của phần lớn bộ lọc tích cực RC là cỡ 100KHz
hoặc gần như vậy, và phần lớn bộ lọc tích cực đều được sử dụng xa tần số đó.
35
Dưới đây là một số mạch lọc tích cực sử dụng bộ khuếch đại thuật toán.
Các mạch lọc này thuộc loại Butterworth do có ưu điểm là đáp tuyến biên độ
phẳng cực đại do cấu trúc toán học phát triển nó, đáp tuyến luôn luôn giảm khi
tần số tăng (hình 2.15). Hàm Butterworth là một trong những dạng chủ yếu được
phát triển sâu.
R1
Uv
+ Ura
-
C1
Rt
R0
1
Hình 2.16. Mạch lọc thông thấp bậc một (tần số cắt fc = )
2R1C1
Một mạch lọc thông thấp bậc 1 khác sử dụng hồi tiếp âm để tạo thành bộ
lọc. R và Rt tạo thành một mạch khuếch đại nghịch giúp dễ dàng điều chỉnh hệ số
khuếch đại của bộ lọc (hình 2.17).
Ct
Rt
R
Uv -
Ura
+
1
Hình 2.17. Mạch lọc thông thấp dùng hồi tiếp âm (tần số cắt fc = )
2Rt C t
Hình 2.18 là mạch lọc thông thấp bậc 2. Ở đây sử dụng 2 mạch RC là mạch
R1C1 và R2C2. Vì vậy độ dốc của đáp tuyến biên độ sẽ là 40dB/decade. Để đáp
tuyến bằng phẳng, giá trị khuếch đại của bộ lọc không được lấy lớn hơn 1,586 tức
4dB. Vì vậy thông thường người ta thường chọn: R1=R2; C2=2C1; Rt ≤ 0,586Ro.
37
C2
R2 R1
Uv
+ Ura
-
C1
Rt
R0
1
Hình 2.18. Mạch lọc thông thấp bậc hai (tần số cắt fc = )
2 R1 R2 C1C 2
C1
Uv
+ Ura
-
R1
Rt
R0
1
Hình 2.19. Mạch lọc thông cao bậc một (tần số cắt fc = )
2R1C1
R2=0,5R1
C2 C1
Uv
+ Ura
-
R1
Rt
R0
1
Hình 2.20. Mạch lọc thông cao bậc hai (tần số cắt fc = )
2 R1 R2 C1C 2
38
Để tạo ra các bộ lọc có bậc lớn hơn 2, ta thực hiện ghép nối các mạch bậc
1 và bậc 2 để tạo ra bộ lọc có bậc mong muốn.
Trong khi thiết kế mạch lọc thông thấp, thông cao, đối với loại Butterworth
(như các mạch trên) để đảm bảo các yêu cầu về độ bằng phẳng và độ ổn định cần
có các giới hạn về hệ số khuếch đại trong mạch lọc. Bảng dưới liệt kê các yêu cầu
đó đối với mạch lọc loại bậc 2 đến bậc 7.
Bảng 2.1. Yêu cầu khi thiết kế các bộ lọc thông thấp/cao loại Butterworth
Số cực Trị số khuếch đại cực đại cho phép Độ dốc đáp tuyến biên độ
(dB/decade)
2 1.586(4dB) 40
3 2(6dB) 60
4 2.58(8dB) 80
5 3.29(10dB) 100
6 4.21(12dB) 120
7 5.37(14dB) 140
C2
R4
R1 C1
-
Uv + Ura
R2
R3
1
Hình 2.21. Mạch lọc triệt dải (tần số trung tâm f0 = )
2 R1 R2 C1C 2
Như vậy, kết hợp mạch lọc thụ động RC với khuếch đại thuật toán, ta có
thể tạo ra được các loại mạch lọc cơ bản là thông thấp, thông cao, triệt dải, thông
dải. Những mạch này có đáp ứng được nhu cầu lọc tín hiệu thấp tần trong thu
nhận tín hiệu sinh học, ngoài ra hệ số khuếch đại có thể dễ dàng điều chỉnh được.
Kết hợp với kiến thức về tín hiều cần thu (biên độ tín hiệu, dải tần số của tín hiệu)
để thiết kế và sắp xếp thứ tự lọc một cách hợp lý.
d. Công cụ hỗ trợ thiết kế mạch lọc
Một công cụ rất tiện lợi trong việc hỗ trợ tính toán, thiết kế các mạch lọc
tích cực đó là phần mềm FilterPro. Phần mềm này giúp người dùng nhanh chóng
lựa chọn giá trị linh kiện để tạo nên một bộ lọc với các thông số (như hệ số khuếch
đại, tần số cắt, độ dốc…) mong muốn.
Hình 2.23. Lựa chọn bộ lọc cần thiết kế (thông thấp, thông dải…)
Hình 2.24. Lựa chọn thông số của bộ lọc (khuếch đại, tần số cắt, bậc bộ lọc…)
41
CHƯƠNG 3.
THIẾT KẾ MÔ HÌNH ĐO NHỊP TIM
Arduino Mini là một board vi điều khiển nhỏ nguyên gốc dựa trên
Atmega168, nhưng bây giờ với Atmega328, thường sử dụng trên bo mạch thử và
khi bị hạn chế không gian. Nó có 14 chân digital đầu vào/ra (trong đó 6 chân có
thể được sử dụng như là đầu ra PWM), 8 đầu vào analog và một bộ dao động
thạch anh 16 MHz, tích hợp sẵn ADC. Nó có thể được lập trình qua phần mềm
Arduino IDE thông qua các bộ chuyển đổi USB Serial hoặc USB hoặc RS232.
Bảng 3.1. Thông số cơ bản của Arduino Mini Pro
Chíp điều kiển ATmega328
SRAM 2 KB
EEPROM 1 KB
Chân PWM 6
Mỗi trong số 14 chân digital trên Mini có thể được sử dụng như một đầu
vào hay đầu ra. Chúng hoạt động ở 5V, mỗi chân có thể cung cấp hoặc nhận được
tối đa 40 mA và có một điện trở kéo lên (ngắt kết nối theo mặc định) 20-50 kΩ.
Chân 3, 5, 6, 9, 10, và 11 có thể xuất kết quả ra PWM, xem chi tiết bằng lệnh
48
analogWrite(). Các Mini có 8 đầu vào analog, mỗi trong số đó cung cấp 10 bit độ
phân giải.
Arduino Mini có thể được lập trình với phần mềm Arduino IDE. Để nạp
chương trình Arduino Mini, cần một bộ chuyển đổi USB Serial hoặc USB hoặc
RS232. Các ATmega328 trên Arduino Mini đi kèm với một Bootloader cho phép
tải lên mã mới cho nó mà không sử dụng một hệ thống lập trình trong. Các
Bootloader giao tiếp bằng cách sử dụng giao thức STK500 gốc nhưng có thể bỏ
qua các Bootloader và chương trình ATmega328 với ICSP.
3.1.2. Màn hình LCD 16x2
Trong đó, cụ thể hơn ta có chức năng của từng chân như sau:
- Chân số 1 - VSS: Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển.
- Chân số 2 - VDD: Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC = 5V của mạch điều khiển.
- Chân số 3 - VE: Điều chỉnh độ tương phản của LCD.
- Chân số 4 - RS: Chân chọn thanh ghi. Nối chân RS với logic "0" hoặc logic
"1" để chọn thanh ghi.
Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế
độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc”
- read).
Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong
LCD.
- Chân số 5 - R/W: Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để
LCD ở chế độ đọc.
- Chân số 6 - E: Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của
chân E.
Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh
ghi bên trong nó khi phát hiện một xung xuống (high-to-low transition)
của tín hiệu chân E.
Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện một
xung lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến
khi nào chân E xuống mức thấp.
- Chân số 7 - 14 (D0 đến D7): 8 đường của bus dữ liệu dùng để trao đổi thông
tin với MCU. Có 2 chế độ sử dụng 8 đường bus này:
Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit
DB7.
50
Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit
MSB là DB7.
- Chân số 15 - A: Nguồn dương cho đèn nền.
- Chân số 16 - K: Nguồn âm cho đèn nền.
3.1.3. IC MCP6002
Số lượng mạch 2
Hình 3.6. Sơ đồ nguyên lý khối lọc và khuếch đại tín hiệu lần 1
53
Hình 3.7. Sơ đồ nguyên lý khối lọc và khuếch đại tín hiệu lần 2
c. Xây dựng thuật toán:
Thuật toán đo nhịp tim: Bằng cách tính thời gian giữa 2 lần tín hiệu vượt
ngưỡng sẽ tính được chu kì từ đó tính được tần số (nhịp/phút) của nhịp tim.
HR = 60/(time2 – time1)
d. Sơ đồ mạch hoàn chỉnh:
Hình 3.12. Dạng sóng analog của tín hiệu sau khi qua bộ đệm
Hình 3.12 cho thấy dạng sóng tín hiệu thu được hiển thị trong thời gian
thực. Tín hiệu thu được từ chân Analog A0 của Arduino và kết nối với máy tính.
Dạng sóng này tương tự như dạng sóng tín hiệu đã nhắc tới trong phần lý thuyết.
Sau khi hoàn thành, mô hình đo được đánh giá sơ bộ thông qua việc thử
nghiệm trên một số cá nhân và thực hiện so sánh với thiết bị theo dõi bệnh nhân
đang được sử dụng tại bệnh viện Đa khoa Quốc tế Thu Cúc. Thiết bị theo dõi bệnh
nhân tôi sử dụng để so sánh với mô hình đo nhịp tim lần lượt là Bionet BM5,
OMNI III INFINIUM và Philips Efficia CM150.
Bảng 3.3. Một số kết quả đo thử nghiệm
STT Họ tên/Tuổi Lần Máy của bệnh viện Mô hình của đề tài
đo Nhịp tim(BPM) Nhịp tim(BPM)
1 Lê Thế Trung/23 1 85 87
2 87 89
3 75 75
2 Nguyễn Danh Oánh/24 1 90 91
2 86 86
3 88 85
3 Nguyễn Vũ Dũng/30 1 81 81
2 77 79
3 73 72
58
Một số hình ảnh đo thực tế giữa mô hình thiết kế và các máy monitor:
Hình 3.13. Kết quả đo giữa sản phẩm thiết kế và Monitor BM5
59
Hình 3.14. Kết quả đo giữa sản phẩm thiết kế và Monitor OMNI III
60
Hình 3.15. Kết quả đo giữa sản phẩm thiết kế và Monitor Efficia CM150
TỔNG KẾT
Trong cuộc sống hiện đại lĩnh vực chăm sóc sức khỏe là lĩnh vực được quan
tâm hàng đầu. Song song với việc nghiên cứu, điều trị các loại bệnh mới xuất hiện
và các căn bệnh thế kỷ là việc nghiên cứu chế tạo ra những loại máy có thể theo
dõi thường xuyên chế độ sức khỏe của con người như máy đo huyết áp, máy đo
điện tim, máy đo SpO2.... Ở nước ta chủ yếu là nhập khẩu những thiết bị mà chưa
tự chủ sản xuất được. Chính vì thế đề tài này tập trung nghiên cứu làm chủ quy
trình có thể chế tạo ra được những thiết bị như thế.
Phương pháp đo nhịp tim bằng kỹ thuật không xấm lấn giúp tiết kiệm thời
gian và không tác động đến người bệnh. Tuy nhiên trong những trường hợp như
bệnh nhân có huyết áp thấp, bệnh nhân bị thiếu máu…. thì phép đo này không
chính xác. Vì thế chúng ta cần phải biết được trong những trường hợp nào thì có
thể sử dụng được phép đo này.
Kết quả đo của mô hình đo đạt độ chính xác cao. Những sai số nhỏ là do
các điều kiện khách quan như cử động, đo ở các vị trí khác nhau. Thiết kế tối ưu
các bộ lọc, sử dụng linh kiện chuẩn nên tín hiệu thu được đảm bảo đúng theo yêu
cầu. Mô hình đo có thể làm nhỏ gọn hơn, thiết kế layout chống nhiễu tốt hơn để
chống nhiễu từ bên ngoài.
Mặc dù đã rất cố gắng trong quá trình thực hiện đồ án, tuy nhiên do kiến
thức và kỹ năng còn nhiều hạn chế nên rất khó tránh khỏi những thiếu sót, vì vậy
tôi rất mong nhận được những đánh giá và góp ý quý báu từ các thầy cô.
Tôi xin chân thành cảm ơn!
62
1. GS.TS. Huỳnh Văn Minh – PGS.TS. Hoàng Anh Tiến (đồng chủ biên),
NHỮNG VẤN ĐỀ TIM MẠCH THIẾT YẾU, Nhà xuất bản Đại học Y
dược, Huế 2018.
2. Michael Norris - David Prutchi, DESIGN AND DEVELOPMENT OF
MEDICAL ELECTRONIC INSTRUMENTATION, Nhà xuất bản Wiley,
Hoa Kỳ 2005.
63
PHỤ LỤC
CODE ĐO NHỊP TIM
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 10, 11, 12, 13);
int led = 2;
int reset = 9;
int UpperThreshold = 590;
int LowerThreshold = 560;
int reading = 0;
float BPM = 0.0;
bool IgnoreReading = false;
bool FirstPulseDetected = false;
unsigned long FirstPulseTime = 0;
unsigned long SecondPulseTime = 0;
unsigned long PulseInterval = 0;
const unsigned long delayTime = 10;
const unsigned long delayTime2 = 5000;
const unsigned long delayTime3 = 6000;
unsigned long previousMillis = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
byte customChar1[8] =
{0b00000,0b00000,0b00011,0b00111,0b01111,0b01111,0b01111,0b01111};
byte customChar2[8] =
{0b00000,0b11000,0b11100,0b11110,0b11111,0b11111,0b11111,0b11111};
byte customChar3[8] =
{0b00000,0b00011,0b00111,0b01111,0b11111,0b11111,0b11111,0b11111};
byte customChar4[8] =
{0b00000,0b10000,0b11000,0b11100,0b11110,0b11110,0b11110,0b11110};
64
byte customChar5[8] =
{0b00111,0b00011,0b00001,0b00000,0b00000,0b00000,0b00000,0b00000};
byte customChar6[8] =
{0b11111,0b11111,0b11111,0b11111,0b01111,0b00111,0b00011,0b00001};
byte customChar7[8] =
{0b11111,0b11111,0b11111,0b11111,0b11110,0b11100,0b11000,0b10000};
byte customChar8[8] =
{0b11100,0b11000,0b10000,0b00000,0b00000,0b00000,0b00000,0b00000};
// Timer 1
int myTimer1(long delayTime, long currentMillis){
if(currentMillis - previousMillis >= delayTime){ previousMillis = currentMillis;
return 1;}
else{return 0;}
}
// Timer 2
int myTimer2(long delayTime2, long currentMillis){
if(currentMillis-previousMillis2>=delayTime2){ previousMillis2=currentMillis;
return 1;}
else{return 0;}
}
//Timer 3
int myTimer3(long delayTime3, long currentMillis){
if(currentMillis-previousMillis3>=delayTime3){ previousMillis3=currentMillis;
return 1;}
else{return 0;}
}
void setup(){
lcd.begin(16, 2);
65
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
lcd.createChar(3, customChar3);
lcd.createChar(4, customChar4);
lcd.createChar(5, customChar5);
lcd.createChar(6, customChar6);
lcd.createChar(7, customChar7);
lcd.createChar(8, customChar8);
pinMode(led, OUTPUT);
pinMode(reset, INPUT);
digitalWrite(led, HIGH);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("Starting");
lcd.setCursor(2,1);
lcd.print("Please Wait");
delay(3000);
}
void loop(){
// Ghi thoi gian hien tai
unsigned long currentMillis = millis();
// Su kien 1
if(myTimer1(delayTime, currentMillis) == 1){
reading = analogRead(A0);
// Phat hien suon len nhip tim
if(reading > UpperThreshold && IgnoreReading == false){
if(FirstPulseDetected == false){
FirstPulseTime = millis();
66
FirstPulseDetected = true;
}
else{
SecondPulseTime = millis();
PulseInterval = SecondPulseTime - FirstPulseTime;
FirstPulseTime = SecondPulseTime;
}
IgnoreReading = true;
}
// Phat hien suon xuong nhip tim
if(reading < LowerThreshold && IgnoreReading == true){
IgnoreReading = false;
}
// Tinh nhip tim tren phut
BPM = (1.0/PulseInterval) * 60.0 * 1000;
}
// Su kien 2
if(myTimer2(delayTime2, currentMillis) == 1){
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Calculating");
}
lcd.setCursor(3, 0);
lcd.write(byte(2));
lcd.setCursor(4, 0);
lcd.write(byte(3));
lcd.setCursor(5, 0);
lcd.write(byte(4));
lcd.setCursor(2, 1);
lcd.write(byte(5));
lcd.setCursor(3, 1);
lcd.write(byte(6));
lcd.setCursor(4, 1);
lcd.write(byte(7));
lcd.setCursor(5, 1);
lcd.write(byte(8));
lcd.setCursor(7, 0);
lcd.print("Insert");
lcd.setCursor(7, 1);
lcd.print("Finger");
delay(1500);
}
else{
lcd.clear();
lcd.setCursor(2, 0);
lcd.write(byte(1));
lcd.setCursor(3, 0);
lcd.write(byte(2));
lcd.setCursor(4, 0);
lcd.write(byte(3));
lcd.setCursor(5, 0);
68
lcd.write(byte(4));
lcd.setCursor(2, 1);
lcd.write(byte(5));
lcd.setCursor(3, 1);
lcd.write(byte(6));
lcd.setCursor(4, 1);
lcd.write(byte(7));
lcd.setCursor(5, 1);
lcd.write(byte(8));
lcd.setCursor(7, 1);
lcd.print(bpm);
lcd.print(" BPM");
delay(4000);
}
}
if(digitalRead(reset)==HIGH){
ResetBoard();
}
}
void ResetBoard(){
asm volatile ( "jmp 44");
}