Chương 2 giới thiệu 3 linh kiện chính được sử dụng, cùng trình biên dịch hỗ trợ lập trình cho arduino.
- Giới thiệu một số loại kit arduino được sử dụng phổ biến hiện nay. Đưa ra một số thông số kĩ thuật cũng như đặc trưng của từng loại.
- Giới thiệu trình biên dịch IDE được sử dụng để lập trình cũng như nạp code cho kit arduino.
- Giới thiệu module cảm biến nhịp tim XD-58, cơ chế hoạt động và cấu trúc phần cứng của module.
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ĐO NHỊP TIM 3.1. Ý tưởng thiết kế
Với một mong muốn thiết kế một thiết kích thước nhỏ gọn giúp xác định được nhịp tim của người sử dụng để có thể có đánh giá chung về tinh hình sức khỏe. Thiết bị có thể được kết nối với smart phone qua bluetooth và hiển thị giá trị qua một ứng dụng trên điện thoại. Những dữ liệu này sẽ được lưu lại qua mỗi lần đo như vậy sẽ thuận lợi hơn cho việc theo dõi sự thay đổi của tình trạng sức khỏe trong một thời gian dài. Thiết bị này có thể được tích hợp nhiều chức năng khác như nhiệt độ, huyết áp bệnh nhân và có cảnh báo cần thiết. Tuy nhiên vì thời gian có hạn nên tác giả chỉ thiết kế hệ thống xác định một thông số là nhịp tim của bệnh nhân, và hiển thị giá trị đo trên màn hình LCD. Với hệ thống này thì mọi người có thể tự theo dõi nhịp tim của mình một cách nhanh chóng chính xác, mà không cần đến các thiết bị đắt tiền có chức năng tương đương khác.
Mục tiêu của đề tài hướng đến việc thiết kế một module xác định nhịp tim bằng đầu đo cảm biến gắn trên đầu ngón tay, đồng thời hiển thị thông số đo được về nhịp tim lên màn hình LCD. Phương pháp đo này sẽ không làm ảnh hưởng tới sự lưu thông của máu tại nơi đặt cảm biến. Đầu đo này được thiết kế sao cho bệnh nhân không cảm thấy khó chịu khi gắn để tiến hành đo liên tục trong một khoảng thời gian dài. Với giá thành chấp nhận được, đề tài có thể là một giải pháp hữu ích cho các cá nhân, hộ gia đình, bệnh viện… trong chăm sóc và theo dõi bệnh nhân hoặc trong trường học để tìm hiểu về cơ chế hoạt động của nhịp tim, thực hành vận dụng các kiến thức đã học về điện tử y sinh trong việc thiết kế và thi công một thiết bị đo, giám sát nhịp tim đơn giản và hiệu quả [1].
3.2. Yêu cầu hệ thống
Thiết kế hệ thống đo nhịp tim bằng kit vi điều khiển Arduino Uno sử dụng cảm biến XD-58 cần phải đáp ứng được các yêu cầu sau:
- Điện năng tiêu thụ ít
- Hệ thống dễ vận hành sử dụng
3.3. Giải pháp thiết kế.
Từ hạn chế của phương pháp đo truyền thống và yêu cầu đặt ra của đề tài, tác giả xin đưa ra một giải pháp công nghệ: Thiết kế, xây dựng modul giám sát nhịp tim bệnh nhân sử dụng board điều khiển Arduino và cảm biến đo nhịp tim XD-58. Phương pháp đo này không làm ảnh hưởng tới sự lưu thông của máu tại nơi đặt cảm biến. Hệ thống đo và hiển thị giá trị nhịp tim gồm ba phần.
- Phần thứ nhất là thiết bị cảm biến nhịp tim dựa trên sự thay đổi của độ hấp thụ ánh sáng khi áp suất trong mạch máu thay đổi. Sử dụng module XD-58
- Phần thứ 2 là khối điều khiển trung tâm. Đây là một phần quan trọng của cả hệ thống. Chức năng chính của nó là xử lí tín hiệu thu được từ cảm biến nhịp tim gửi về. Sau đó truyền tín hiệu hiển thị ra LCD.
- Phần thứ 3 là khối hiển thị, giúp hiển thị giá trị nhịp tim mà cảm biến đo được lên màn hình LCD
Các thiết bị phần cứng gồm: - 1 module Arduino Uno
- 1 module cảm biến nhịp tim module XD-58 - Cáp nối USB
- 1 màn hình LCD
Mô hình đề xuất cho hệ thống đo nhịp tim được mô tả trong hình dưới
3.4. Thiết kế hệ thống
Hệ thống được thiết kế để thực hiện chức năng đo và hiển thị số nhịp tim/phút. Tín hiệu nhịp tim đo được dựa vào sự thay đổi cường độ ánh sáng trong mạch máu dội lại cảm biến tương ứng với nhịp đập của tim. Module XD-58 đáp ứng được yêu cầu trên. Thiết bị nhỏ gọn và cho độ chính xác cao. Hệ thống yêu cầu số lượng chân nhập xuất để xử lí dữ liệu ít. Chính vì lí do đó nên Arduino Uno được lựa chọn cho thiết kế. Mặt khác kit Arduino Uno phổ biến và giá thành hợp lý. Trong chương này đưa ra phương pháp thiết kế mạch phần cứng hệ thống và sản phẩm hoàn thiện. Dưới đây là sơ đồ khối của hệ thống
3.4.1. Sơ đồ khối hệ thống
Hình 3.2: Sơ đồ khối hệ thống của thiết bị đo nhịp tim.
3.4.2. Chức năng từng khối
Khối cảm biến: Khi tim co giãn kéo theo sự thay đổi lưu lượng máu trong mạch máu. Cảm biến sẽ ghi nhận được sự thay đổi này và truyền tín hiệu dưới dạng xung về khối vi điều khiển để xử lí.
Khối điều khiển (Arduino Uno): Đây là nơi xử lí dữ liệu của cả hệ thống. Dữ liệu từ cảm biến sẽ được xử lí và truyền tới khối hiển thị.
Khối hiển thị: Có chức năng hiển thị giá trị nhịp tim đo được. Khối nguồn: Đây là khối cung cấp nguồn cho cả hệ thống.
đầu ngón tay,... để dễ kẹp) đầu phát sẽ phát ra ánh sáng đi vào trong da. Dòng ánh sáng đó sẽ bị khuếch tán ra xung quanh, và một phần đi tới quang trở đặt gần đầu phát. Do bị ép vào nên lượng máu ở phần cảm biến sẽ thay đổi, cụ thể khi không có áp lực do tim đập, máu sẽ dồn ra xung quanh, lượng ánh sáng từ đầu phát sẽ về đầu thu nhiều hơn so với khi tim đập, máu chảy qua nơi có cảm biến áp vào.
Sự thay đổi là rất nhỏ, nên phần cảm nhận ánh sáng (quang trở) thường có mạch IC đề khuếch đại tín hiệu thay đổi này, đưa về các mạch lọc, tín hiệu được truyền về khối điều khiển để tính toán ra nhịp tim.
Hình 3.3: Cảm biến nhịp tim - Nguồn: 3-5V. - Dòng tiêu thụ: <4mA. - Ngõ ra: Analog. - Độ dài dây: 61cm. - Đường kính cảm biến: 1.6cm
Gồm 2 thành phần là một đầu phát quang ánh sang xanh (bước sóng 609nm), và một quang trở nhạy với bước sóng ánh sáng mà đầu phát phát ra
3.4.3.2. Khối điều khiển.
Khối xử lí trung tâm làm nhiệm vụ điều khiển và quản lí mọi hoạt động trong hệ thống, tiếp nhận các lệnh từ các thiết bị ngoại vi gửi về đồng thời xử lí và gửi lệnh điều khiển đến các thiết bị ngoại vi. Khối xử lí trung tâm là một module Arduino Uno như hình dưới.
Hình 3.4: Khối xử lí trung tâm sử dụng Arduino Uno 3.4.3.3. Khối hiển thị LCD 16x2
Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị các dòng chữ hoặc số trong bảng mã ASCII. Không giống các loại LCD lớn, Text LCD được chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị một ký tự ASCII. Cũng vì lý do chỉ hiện thị được ký tự ASCII nên loại LCD này được gọi là Text LCD (để phân biệt với Graphic LCD có thể hiển thị hình ảnh).
Hình 3.5: LCD 16x2
Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, việc kết hợp “ẩn” và “hiện” các chấm này sẽ tạo thành một ký tự cần hiển thị. Trong các Text LCD, các mẫu ký tự được định nghĩa sẵn. Kích thước của Text LCD được định nghĩa bằng số ký
3.4.3.4. Khối nguồn.
Khối nguồn có chức năng cấp nguồn cho các khối hoạt động, ở đây điện áp sử dụng là 5V. Nguồn điện này có thể được cấp từ cổng USB của máy tính, sạc điện thoại hoặc pin...
3.5. Phân tích hoạt động của hệ thống
Khi chúng ta thở oxy sẽ vào phổi. Máu mà thành phần quan trọng nhất của máu là Hemoglobine (Hb) sẽ vận chuyển oxy từ phổi đến các nơi cần thiết trong cơ thể để đảm bảo sự sống.
Hình 3.6: Sơ đồ mạch cảm biến dựa trên cảm biến xung.
Cảm biến được gắn trên cơ thể người sử dụng cảm biến nhịp tim được gắn ở đầu ngón tay và mạch hỗ trợ cảm biến nhịp tim được gắn quanh cổ tay. IR LED được sử dụng để chiếu sáng vào ngón tay của người sử dụng bằng ánh sáng hồng ngoại. Khi đó cường độ ánh sáng hồng ngoại phản xạ lại Photo Transistor sẽ thay đổi theo huyết áp trong các đầu ngón tay. Mỗi nhịp tim, máu sẽ đẩy ra các mao mạch ở ngón tay làm thay đổi cường độ phản xạ hồng ngoại, khiến điện áp đầu ra phía trên Photo Transistor thay đổi. Điện áp thay đổi sẽ được đưa qua một mạch lọc thông cao để lọc thành phần một chiều vào mạch với tần số cắt cao:
(3.1).
Sau khi được lọc thông cao, tín hiệu (theo nhịp tim) sẽ được khuếch đại lên với hệ số khuếch đại tối đa lần (C), sau đó được lọc thông thấp với mục đích loại bỏ tạp nhiễu ở tần số cao (do ánh sáng, rung…) với tần số cắt thấp:
(3.2).
Tín hiệu cuối cùng được đưa vào so sánh với điện áp chuẩn qua mạch so sánh để chuyển đổi từ dạng điện áp tương tự sang dạng điện áp số để đưa về xử lý trong khối điều khiển. Tín hiệu cuối cùng tại đầu ra là tín hiệu mức 0 và 1, tương ứng với khi có nhịp đập thì đầu ra mức 1. Xung nhịp tim được đưa về tạo ngắt trên Arduino uno, mỗi khi có ngắt, Arduino sẽ đếm thời gian giữa hai lần xung nhịp đưa về để tính số nhịp tim mỗi phút.Nếu số nhịp tim tính được có dấu hiệu bất thường thì hệ thống sẽ phát tín hiệu cảnh báo thống qua LED.
Lưu đồ thuật toán điều khiển hệ thống.
Sau khi phân tích các yêu cầu của đề tài, vi điều khiển phải thực hiện các công việc nhận và xử lí dữ liệu được gửi về từ cảm biến nhịp tim. Sau đó truyền dữ liệu, hiển thị giá trị cảm biến đo được lên LCD. Từ đó thuật toán điều khiển chương trình sẽ được biển hiện qua lưu đồ sau.
3.6. Thực thi thiết kế
3.6.1 Sơ đồ nguyên lý tổng thể hệ thống
Hình 3.8: Sơ đồ nguyên lý hệ thống.
3.6.2. Sơ đồ mạch in của hệ thống
Sau khi có được mạch nguyên lý, bước tiếp theo tiến hành đi dây và đổ đồng ta sẽ được mạch layout.
Hình 3.10: Sơ đồ mạch in
3.7. Kết quả đạt được
Chuẩn bị các linh kiện cần thiết để lắp ráp vào board đồng.
Hình 3.11: Các linh kiện chính trong hệ thống
Nạp code cho Arduino rồi tiến hành kết nối các linh kiện lại với nhau thành một hệ thống hoàn chỉnh ta được kết quả như dưới đây
Hình 3.12: Hình ảnh sản phẩm hoàn thiện
Hình 3.13: Giá trị phép đo được hiển thị
3.8. Đánh giá kết quả hệ thống đo nhịp tim 3.8.1. Sai sô trong đo lường 3.8.1. Sai sô trong đo lường
Sai số là độ chênh lệch giữa kết quả đo và giá trị thực của đại lượng đo. Nó phụ thuộc vào nhiều yếu tố như: thiết bị đo, phương thức đo, người đo…
Kết quả phép đo nhận được không bao giờ hoàn toàn đúng với trị số thật của tham số cần đo, sai lệch giữa hai trị số đó gọi là sai số đo lường. Dù tiến hành đo lường hết sức cẩn thận và dùng các công cụ đo lường cực kỳ tinh vi ... cũng không thể làm mất được sai số đo lường, vì trên thực tế không thể có công cụ đo lường tuyệt đối hoàn thiện, người xem đo tuyệt đối không mắc thiếu sót và điều kiện đo lường tuyệt
sai số đó trong một phạm vi cần thiết rồi dùng tính toán để đánh giá sai số mắc phải và đánh giá kết quả đo lường.
Tùy theo nguyên nhân gây sai số mà người ta chia sai số thành 3 loại sai số sau: Sai số nhầm lẫn, Sai số hệ thống, và sai số ngẫu nhiên .
a) Sai số nhầm lẫn: Những sai số do người xem đo đọc sai, ghichép sai, thao tác sai, tính sai, vô ý làm sai .... được gọi là sai số chủ quan. Sai số đó làm cho số đo được khác hẳn với các số đo khác.
b) Sai số hệ thống: Sai số hệ thống xuất hiện do cách sử dụng đồng hồ đo khônghợp lý, do bản thân đồng hồ đo có khuyết điểm, hay điều kiện đo lường biến đổi không thích hợp và đặc biệt là khi không hiểu biết kỹ lưỡng tính chất của đối tượng đo lường...
Trị số của sai số hệ thống thường cố định hoặc là biến đổi theo quy luật vì nói chung những nguyên nhân tạo nên nó cũng là những nguyên nhân cố định hoặc biến đổi theo quy luật. Nếu xếp theo nguyên nhân thì chúng ta có thể chia sai số hệ thống thành các loại sau :
- Sai số công cụ : là do thiếu sót của công cụ đo lường gây nên.
- Sai số do sử dụng đồng hồ không đúng quy định : Ví dụ : - Tiến hành đo, có ảnh hưởng của ánh sáng không được che chắn.
- Sai số do chủ quan của người xem đo. Ví dụ: Đọc số sớm hay muộn hơn thực tế, - Sai số do phương pháp : Do chọn phương pháp đo chưa hợp lý, không nắm vững phương pháp đo ...
c) Sai số ngẫu nhiên: Trong quá trình đo lường, những sai số mà không thể tránh khỏi
gây bởi sự không chính xác tất yếu do các nhân tố hoàn toàn ngẫu nhiên được gọi là sai số ngẫu nhiên. Sự xuất hiện mỗi sai số ngẫu nhiên riêng biệt không có quy luật. Nguyên nhân gây sai số ngẫu nhiên là do những biến đổi rất nhỏ thuộc rất nhiều mặt không có liên quan với nhau xảy ra trong khi đo lường, mà ta không có cách nào tính trước được. Vì vậy chỉ có thể thừa nhận sự tồn tại của sai số ngẫu nhiên và tìm cách tính toán trị số của nó chứ không thể tìm kiếm và khử các nguyên nhân gây ra nó. Loại sai số này có tính tương đối và giữa chúng không có ranh giới.
Mỗi sai số ngẫu nhiên xuất hiện không theo quy luật không thể biết trước và không thể khống chế được, nhưng khi tiến hành đo lường rất nhiều lần thì tập hợp rất nhiều sai số ngẫu nhiên của các lần đo đó sẽ tuân theo quy luật thống kê.
Giả sử khi cho đại lượng X nhiều lần lặp lại y hệt các điều kiện giống nhau , ta thu được một dãy các giá trị xi với I = 1,2,...n.
Mỗi giá trị xi gọi là một yếu tố của tập hợp, n là dung lượng của tập hợp Ký hiệu tập hợp {Xi}
- Nếu n hữu hạn dãy xi tạo thành một tập mẫu
- nếu n => vô cùng, tập hợp mẫu trở thành tập tổng quát
- Vậy một tập hợp tổng quát chứa đựng vô số yếu tố và vô số tập hợp mẫu. Mặt khác, khi có 2 tập mẫu nào đó, chúng có thể thuộc về cùng một tập hợp tổng quát hoặc thuôc về hai tập hợp tổng quát khác nhau
xét tập hợp {Xi} dung lượng n. Ở đây sự sai khác giữa các giá trị Xi mang tính ngẫu nhiên. Khi so với trị số trung bình số học Xn, mỗi giá trị Xi sẽ có một độ lệch ngẫu nhiên di
(3.1) Đại lượng ngẫu nhiên di có các tính chất sau
- Dấu (-) hay (+) thay đổi hoàn toàn ngẫu nhiên. Khi n tăng chỉ số dấu (+) càng xấp xỉ số dấu (-)
- Giá trị tuyệt đối |di| cũng thay đổi hoàn toàn ngẫu nhiên nhưng giá trị càng nhỏ sẽ có tần số xuất hiện càng lớn, ngược lại giá trị càng lớn sẽ có tần số xuất hiện