Sơ đồ khối của vịng tay

Một phần của tài liệu (Đồ án tốt nghiệp) THIẾT kế THIẾT bị ĐEO TAY PHÁT HIỆN té NGÃ ở NGƯỜI CAO TUỔI (Trang 39)

Chức năng các khối (xem Hình 2 - 1):

• Khối xử lý: xử lý dữ liệu cho hệ thống.

• Khối cảm biến: cung cấp giá trị nhịp tim, SpO2 và gia tốc.

• Khối truyền thơng RF2.4: truyền dữ liệu từ vịng tay đến gateway. • Khối nguồn: cấp nguồn cho hệ thống hoạt động.

• Khối nút nhấn: cung cấp tín hiệu bằng tay.

2.1.1.1. Khối xử lý

Khối xử lý trung tâm của vòng tay: Sử dụng vi điều khiển Atmega328P để thực hiện đọc giá trị từ cảm biến và gửi kết quả về cho gateway.

2.1.1.2. Khối cảm biến

2.1.1.2.1. Cảm biến đo nhịp tim và SpO2

Sử dụng cảm biến MAX30100 để đo nhịp tim và nồng độ oxy trong máu và gửi dữ liệu đến gateway.

2.1.1.2.2. Cảm biến gia tốc

Sử dụng cảm biến GY-521 6DOF IMU MPU6050 để phát hiện người đeo có thể bị ngã và gửi dữ liệu đến gateway.

2.1.1.3. Khối truyền thông RF2.4

Sử dụng module NRF24L01 để giao tiếp giữa vòng tay với gateway.

2.1.1.4. Khối nguồn

Sau khi tính tốn cơng suất tiêu thụ trong bảng dưới đây (xem Bảng 2 - 1), nhóm chọn nguồn là pin lithium 300mAh để cấp nguồn cho vòng tay.

Bảng 2 - 1: Tính tốn cơng suất tiêu thụ của vịng tay

STT Khối chính Hoạt động tiêu thụ Dòng điện lớn nhất 1 Atmega328 Đọc dữ liệu từ cảm biến và gửi dữ

liệu lên cho gateway 30mA

2 Cảm biến

MAX30100 Đo nhịp tim, nồng độ oxy trong máu 20mA

3 Cảm biến gia tốc

MPU6050 Phát hiện ngã 3.9mA

4 Khối truyền thông NRF24L01

Truyền thơng giữa vịng tay và

gateway ≈ 100mA

5 Tổng ≈ 160mA

Chức năng các khối (xem Hình 2 - 2):

• Khối xử lý: xử lý dữ liệu của hệ thống.

• Khối truyền thơng RF2.4: nhận dữ liệu từ vịng tay đến gateway. • Khối truyền thơng: truyền dữ liệu từ gateway đến điện thoại. • Khối cảnh báo: phát loa cảnh báo khi có dấu hiệu té ngã. • Khối nguồn: cấp nguồn cho hệ thống hoạt động.

2.1.2.1. Khối xử lý

Sử dụng chip xử lý trung tâm là module ESP8266 NodeMCU, nhằm để nhận dữ liệu từ vòng tay và gửi dữ liệu lên Firebase của Google thơng qua sóng wifi.

2.1.2.2. Khối truyền thông:

Sử dụng module sim 800L để giao tiếp với điện thoại qua GSM:

2.1.2.3. Khối cảnh báo

Sử dụng cịi chíp để báo âm thanh, và sử dụng transistor 2N3904 phân cực class A để kích mở cịi chip.

2.1.2.4. Khối nguồn

Khối nguồn cần cung cấp được nguồn điện ổn định, đủ để cho các module hoạt động ổn định, từ tính tốn trong bảng dưới đây (xem Bảng 2 - 2), nhóm lựa chọn nguồn từ adapter 5V – 2A để cung cấp nguồn cho gateway hoạt động.

Bảng 2 - 2: Tính tốn cơng suất của gateway

STT Khối chính Hoạt động tiêu thụ Dòng điện lớn nhất 1 ESP8266 Truyền nhận dữ liệu, điều khiển ngoại vi ≈ 200mA

2 NRF24L01 Truyền thơng giữa vịng tay và gateway ≈ 100mA

3 Module

Sim800L Truyền thông giữa gateway và điện thoại 100mA – 2A

4 Tổn hao khác -- ≈ 100mA

2.2. Sơ đồ nguyên lý

2.2.1. Sơ đồ nguyên lý của vịng tay

Hình 2 - 3: Sơ đồ ngun lý của vòng tay

Với các chức năng như đo nhịp tim, nồng độ oxy trong máu, phát hiện ngã, và gửi dữ liệu đọc được cũng như yêu cầu về gateway, vịng tay có cấu tạo như sau (xem

Hình 2 - 3):

• VĐK được sử dụng là Atmega328.

• Khối cảm biến được nối theo chuẩn I2C, các chân SCL, SDA lần lượt được nối vào I/O PC5, PC4 của VĐK.

• NRF24L01 được nối theo chuẩn SPI, các chân MISO-MOSI-SCK-CSN-CE lần lượt được nối vào I/O PB4-PB3-PB5-PB2-PB1 của VĐK.

• Khối đèn báo được nối với chân PC2 của VĐK.

• Khối nút nhấn gồm 2 nút, được nối lần lượt với 2 chân PC0, PC1 của VĐK với mục đích yêu cầu gọi điện cho người thân và tắt cảnh báo (nếu có).

2.2.2. Sơ đồ nguyên lý của gateway

Hình 2 - 4: Mạch nguyên lý của gateway

Với chức năng điều phối, thu tín hiệu từ vịng tay và gửi dữ liệu lên internet cũng như điện thoại, gateway có cấu tạo như sau (xem Hình 2 - 4):

• ESP8266 NodeMCU là VĐK trung tâm.

• Module NRF24L01 được kết nối với D4, D5, D6, D7, D8 của ESP8266 theo chuẩn SPI.

• Module cảnh báo được nối vào chân D3, gồm có transistor phân cực class A để kích cịi báo.

• Header 8P được kết nối theo chuẩn UART, với 2 chân TX, RX kết nối với TX, RX của ESP8266, header sẽ được nối với module sim800l để phục vụ cho việc truyền thông giữa gateway và điện thoại.

2.3.1. Mạch in và mơ phỏng 3D của vịng tay

Mạch của vịng tay được mơ phỏng 3D trên phần mềm Altium (xem Hình 2 - 5).

Hình 2 - 5: Mạch in và mơ phỏng 3D của vịng tay

2.3.2. Mạch in và mô phỏng 3D của gateway

Mạch của gateway được mô phỏng 3D trên phần mềm Altium (xem Hình 2 - 6).

CHƯƠNG 3. LẬP TRÌNH ĐIỀU KHIỂN HỆ THỐNG

3.1. Lưu đồ hoạt động của hệ thống

3.1.1. Hoạt động của hệ thống

Trong quá trình tìm hiểu về NRF24L01, nhận thấy đây là một dịng chip có hiệu năng cao cũng như khả năng truyền tải tốt với tốc độ tối đa có thể đạt được lên tới 2Mbps. Tuy nhiên, dịng chip giá rẻ này cũng có một số nhược điểm như:

- Khả năng truyền tải khoảng cách xa kém.

- Chỉ hỗ trợ truyền tải bán song công (tại một thời điểm chỉ có thể truyền hoặc

nhận, và phải setup trước điều kiện trong phần lập trình). Hệ thống sẽ hoạt động như sau:

- Vịng tay sau khi đo đạc thơng số từ cảm biến sẽ gửi thông tin đến gateway. - Gateway sẽ kiểm tra bản tin đến, sau khi phân tích bản tin sẽ kiểm tra trạng

thái cảnh báo và đưa ra quyết định.

- Gateway sẽ gửi bản tin đã đóng gói đến Firebase của Google qua wifi và gửi

đến điện thoại qua sms.

- Ngồi ra, người dùng có thể chủ động gửi yêu cầu nhờ vào nút nhấn được thiết

kế trên vòng tay.

- Cấu trúc bản tin gửi từ vịng tay đến gateway sẽ gồm 4 byte:

• Byte 1 thể hiện giá trị nhịp tim (lần/phút). • Byte 2 thể hiện giá trị nồng độ oxy trong máu. • Byte 3 thể hiện trạng thái cảnh báo (0 hoặc 1).

• Byte 4 thể hiện yêu cầu nhắn tin đến gateway (0 hoặc 1).

3.1.2. Lưu đồ thuật toán của vịng tay

Vịng tay có nhiệm vụ:

- Đo đạc thơng số từ cảm biến đo nhịp tim, nồng độ oxy trong máu và cảm biến

gia tốc.

Hình 3 - 1: Lưu đồ thuật tốn của vịng tay

Kịch bản hoạt động (xem Hình 3 - 1):

- Sau khi đọc được dữ liệu từ cảm biến, vòng tay sẽ gửi bản tin data có cảnh báo

về gateway.

- Cảm biến gia tốc MPU6050 đo gia tốc của 3 trục, nếu gia tốc 3 trục vượt

ngưỡng cho phép (bị ngã), ta sẽ lập trình phát tín hiệu cảnh báo.

- Vịng tay sẽ gửi bản tin 1 lần sau 10 phút nếu khơng có cảnh báo hoặc ngay

lập tức nếu có cảnh báo. Ngồi ra, nó sẽ gửi u cầu từ người dùng thơng qua 2 nút nhấn được thiết kế trên vịng tay:

• Nút nhấn 1 u cầu gọi điện cho người thân ngay lập tức (nhưng không yêu cầu speak và voice).

• Nhút nhấn 2 yêu cầu tắt cảnh báo (nếu có).

3.1.3. Lưu đồ thuật tốn của gateway

Gateway có nhiệm vụ:

- Nhận dữ liệu từ vịng tay qua sóng RF.

- Cảnh báo còi chip ngay trên mạch nếu mất kết nối wifi hay phát hiện cảnh báo

- Đóng gói bản tin thu được từ vịng tay và gửi lên firebase của google để có thể

theo dõi qua app trên điện thoại.

Hình 3 - 2: Lưu đồ thuật tốn của gateway

Kịch bản hoạt động (xem Hình 3 - 2):

- Gateway sẽ kiểm tra kết nối wifi, nếu khơng thể kết nối sẽ báo cịi, tiếp tục

thực hiện đoạn chương trình tiếp theo.

- Nhận bản tin gửi từ vòng tay qua mạng RF, kiểm tra, phân tích bản tin, sau đó

kiểm tra trạng thái cảnh báo từ bản tin:

• Nếu đúng (phát hiện bất thường như bị ngã) sẽ tự động phát còi cảnh báo, ngay lập tức gửi thông báo lên Firebase của Google, đồng thời gửi tin nhắn đến điện thoại qua sms.

• Nếu nhận được tín hiệu tắt cịi cảnh báo từ vịng tay, thì sẽ ngừng mọi trạng thái cảnh báo.

• Nếu có tín hiệu u cầu gọi điện thoại cho người thân thì thực hiện cuộc gọi cho người thân.

- Đóng gói bản tin và gửi lên firebase của google.

3.1.4. Thuật toán phát hiện té ngã

Bằng các phương pháp nghiên cứu, thực nghiệm về mối quan hệ chuyển động của cơ thể người và gia tốc của từng hoạt động, khi một người có dấu hiệu bị ngã, gia tốc của các điểm tại cổ tay sẽ tăng cao đột ngột do các va chạm vật lý giữa người mà

mơi trường xung quanh. Nhận thấy điều đó, chúng em đã sử dụng cảm biến đo gia tốc 3 trục tự do ứng với hệ không gian 3 chiều để đo gia tốc.

Để phân biệt giữa sự vung tay hoặc những hành động thường ngày và sự té ngã, chúng em đã có sự khảo sát như bảng sau (xem Bảng 3 - 1):

Bảng 3 - 1: Khảo sát gia tốc ba trục với những hoạt động hàng ngày

Hoạt động Gia tốc tại các trục X-Y-Z (m/𝒔𝟐)

Tập thể dục (đo 3 lần) 3-15-9 | 3-6-18 | 12-4-6 Đi bộ (đo 3 lần) 7-9-3 | 12-9-7 | 11-4-8 Ăn cơm (đo 3 lần) 2-4-5 | 5-7-7 | 3-2-5

Té ngã (đo 3 lần) 15-18-14 | 20-17-15 | 21-14-18 Từ bảng số liệu thực nghiệm trên, chúng em thấy rằng đối với những hoạt động thường ngày, những hành động hoàn tồn được kiểm sốt về gia tốc, tốc độ để đảm bảo tính tồn vẹn cho cơ thể (cơ thể con người có thể được chuẩn bị để đón nhận một lực tác động từ 1 phía và cố định), dẫn đến gia tốc sẽ chỉ tăng mạnh ở một chiều hướng nhất định.

Khác với hoạt động thường ngày, sự ngã hoàn tồn khơng thể kiểm sốt, cơ thể sẽ bị tác động từ nhiều phía khi va chạm với môi trường xung quanh cũng như phản xạ tự nhiên để chống lại nguyên nhân va chạm, dẫn đến các hướng chuyển động của cơ thể là hỗn loạn, và sẽ làm gia tốc tăng đột ngột tại tất cả các phía.

Từ đó, thuật tốn phát hiện ngã được phát triển dựa trên nguyên tắc, nếu phát hiện gia tốc tại 3 trục tăng đột ngột khi vượt quá ngưỡng 15m/𝑠2 thì sẽ được đặt vào trạng thái té ngã.

3.1.5. Nguyên lý đo nhịp tim, SpO2

Kỹ thuật được sử dụng để đo nhịp tim trên các thiết bị đeo tay thường là thơng qua thể tích PPG (Photoplethysmography - dùng ánh sáng để đo lường thể tích của một cơ quan trong cơ thể). Bằng cách chiếu các xung ánh sáng lên da và đo lường sự thay đổi của lượng ánh sáng bị hấp thụ, các cảm biến sẽ xác định được lượng máu đến các mô và lớp hạ biểu bì dưới da.

Ở mỗi chu kỳ, máu sẽ được bơm đến các mạch ngoại biên khắp cơ thể. Mặc dù áp suất mỗi lần bơm giảm khi đến da, nhưng cường độ của nó vẫn đủ để tăng các mạch máu và hệ mạch ở mơ dưới da. Nếu thiết bị được gắn bên ngồi da, ngay cả một áp lực rất nhỏ trong hệ thống mạch máu cũng có thể được phát hiện. Sự thay đổi khả năng chuyển đổi theo áp suất này có thể được phát hiện bằng cách sử dụng ánh sáng LED chiếu vào da và đo lượng ánh sáng phản xạ trở lại diode cảm quang. Lượng máu đến mơ trong mỗi chu kỳ thời gian có liên quan đến nhiều hệ thống sinh học khác nhau, vì vậy PPG có thể được sử dụng để theo dõi nhịp tim, nhịp thở và các tuần hoàn toàn thân khác nhau.

Trong đề tài lựa chọn sử dụng cảm biến MAX30100 - phát ra hai bước sóng ánh sáng từ hai đèn LED - một LED đỏ và một LED hồng ngoại - sau đó đo sự hấp thụ của xung huyết (pulsing blood) bằng cách thu tín hiệu thơng qua một bộ cảm biến ánh sáng (photodetector) để xác định nồng độ oxi và nhịp tim.

3.2. Giới thiệu môi trường và công cụ sử dụng

3.2.1. Phần mềm Arduino

Về cơ bản bộ xử lý trung tâm ESP8266 của gateway có khá nhiều phần mềm và mơi trường hỗ trợ trong đó phổ biến nhất phải kể đến Arduino.

Ngôn ngữ Arduino được phát triển dựa trên ngôn ngữ C/C++ nên việc làm quen và lối tư duy logic khá cơ bản và dễ nắm bắt, bên cạnh đó, ưu điểm của C/C++ là tốc độ và lập trình viên có thể dễ dàng quản lý code. Ở đồ án lần này, em sử dụng ngôn ngữ Arduino.

Đây là một phần mềm được phát triển và open source với mục đích giáo dục và đưa kỹ thuật, công nghệ đến gần với đa số người dùng hơn.

3.2.2. Phần mềm Progisp

Để nạp firmware ta thực hiện các bước sau:

Hình 3 - 3: Chạy chương trình nạp Progisp

- Bước 2: Chọn loại chip.

Chọn chim ATmega328P (xem Hình 3 - 4).

Hình 3 - 4: Chọn chip ATmega328P

- Bước 3: Các thơng số quan trọng khi nạp chương trình.

Hình 3 - 5: Các thơng số quan trọng khi nạp code

• Chip Erase: Cho phép xóa chip.

• Program Flash: Nạp file Hex cho chip.

• Verify Flash: Kiểm tra lỗi của chương trình Flash. • Program Eeprom: Nạp file Eeprom cho chip (nếu có). • Verify Eeprom: Kiểm tra lỗi chương trình Eeprom.

• Data Reload: Tự động cập nhật dữ liệu khi có sự thay đổi file Hex với Eeprom.

- Bước 4: Xóa chip (xóa chương trình cũ có trong chip).

Ta có thể xóa chương trình cũ có sẵn trong chip (xem Hình 3 - 6).

- Bước 5: Nạp chương trình Flash.

Để nạp chương trình ta thực hiện các bước sau (xem Hình 3 - 7):

• Bước 1: Chọn Load Flash. • Bước 2: Chọn file hex (.hex). • Bước 3: Chọn Open.

- Bước 6: Nạp chương trình Eeprom (nếu có).

Để nạp chương trình Eeprom ta thực hiện các bước như sau (xem Hình 3 - 8):

• Bước 1: Chọn Load Eeprom. • Bước 2: Chọn file eeprom (.eep). • Bước 3: Chọn Open.

Hình 3 - 7: Nạp chương trình Flash

- Bước 7: Load chương trình.

Để load file hex và eeprom ta chọn Auto (xem Hình 3 - 9).

Hình 3 - 9: Load chương trình

- Bước 9: Hồn thành

Khi hiển thị dòng chữ successfully done tức ta đã hồn thành nạp chương trình (xem Hình 3 - 10).

3.2.3. Giới thiệu về Google Firebase

Firebase là một platform được phát triển từ máy chủ của Google (xem Hình 3 -

11). Nó được dùng như một cơ sở dữ liệu trên nền tảng đám mây hay một công cụ hỗ

trợ việc phát triển phần mềm. Chức năng chính của Google Firebase là cung cấp các tài nguyên phục vụ cho việc xây dựng các dự án ứng dụng. Nổi bật là khả năng đơn giản hóa các thao tác với cơ sở dữ liệu.

Google Firebase được sử dụng lý tưởng nhất là cho các phần mềm với giao diện API đơn giản. Nó phù hợp với cả 2 hệ điều hành phổ biến là IOS và Android. Mục đích mà Google tạo ra Firebase là thu hút lượng lớn người dùng để mang đến nguồn lợi nhuận xoay vòng nhanh.

Dù Google Firebase khơng tốn nhiều chi phí để có thể khai thác tiện ích nhưng những gì nó mang lại khơng thể coi thường. Google Firebase nhanh chóng, đơn giản và rất hiểu người dùng. Đối với các dự án phát triển phần mềm nhỏ và vừa, Google Firebase là lựa chọn chính xác nhất.

Hình 3 - 11: Google Firebase

3.3. Xây dựng giao diện phần mền trên điện thoại

Một phần của tài liệu (Đồ án tốt nghiệp) THIẾT kế THIẾT bị ĐEO TAY PHÁT HIỆN té NGÃ ở NGƯỜI CAO TUỔI (Trang 39)

Tải bản đầy đủ (PDF)

(84 trang)