Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông minh và xu hướng Internet vạn vật (IoT) phát triển mạnh mẽ, các thiết bị đeo thông minh (Wearable Devices) ngày càng đóng vai trò quan trọng trong việc hỗ trợ lao động, quản lý vận hành theo thời gian thực và đặc biệt là theo dõi sức khỏe cá nhân. Các thiết bị đeo tay không chỉ đáp ứng nhu cầu tiện ích hàng ngày mà còn hỗ trợ thu thập dữ liệu sinh trắc học và chuyển động liên tục nhằm phục vụ công tác chăm sóc sức khỏe chủ động.
Đồ án tốt nghiệp "Thiết kế và hiện thực giải pháp thiết bị đeo nhỏ gọn dùng chip Nordic và điện thoại Android" được thực hiện bởi sinh viên Đào Nhật Tâm, dưới sự hướng dẫn của ThS. Phạm Công Thiện tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khoa Đào tạo Chất lượng cao, ngành Công nghệ Phần mềm, hoàn thành tháng 07/2020). Mục tiêu trọng tâm của nghiên cứu là tìm hiểu quy trình tích hợp giữa phần cứng nhúng và phần mềm di động, từ đó thiết kế một nguyên mẫu thiết bị đeo có khả năng thu thập dữ liệu gia tốc chuyển động, tính toán số bước chân, ước lượng khoảng cách di chuyển và truyền nhận dữ liệu không dây qua Bluetooth Low Energy (BLE) đến ứng dụng di động Android.
Nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:
- Nghiên cứu tập lệnh, kiến trúc phần cứng và khả năng truyền nhận dữ liệu của vi điều khiển SoC nRF51822 hãng Nordic Semiconductor.
- Tìm hiểu datasheet, cấu hình và giao tiếp với cảm biến quán tính 9 trục GY-9250 9DOF IMU (MPU9250) thông qua chuẩn giao tiếp I2C.
- Sử dụng mạch nạp Segger J-Link EDU và môi trường Arduino IDE (ngôn ngữ C/C++) để lập trình đọc, lọc và xử lý dữ liệu gia tốc thô.
- Xây dựng ứng dụng di động trên nền tảng Android bằng ngôn ngữ Java (trên Android Studio) nhằm kết nối BLE, nhận dữ liệu và hiển thị số bước chân cùng khoảng cách di chuyển.
- Thực nghiệm đếm bước chân trên người thật ở trạng thái đi bộ bình thường, so sánh kết quả thu được từ thiết bị tự chế tạo với ứng dụng thương mại StepApp Pro trên điện thoại Huawei Nova 2i (hệ điều hành Android 8.0) để đánh giá sai số.
Đối tượng nghiên cứu của đề tài gồm:
- Mạch thu phát và đế kit phát triển SoC BLE Bluetooth 4.0 nRF51822.
- Cảm biến quán tính GY-9250 9DOF IMU MPU9250.
- Thiết bị nạp và gỡ lỗi Segger J-Link EDU.
- Môi trường phát triển Arduino IDE (lập trình C/C++) và Android Studio (lập trình Java).
Phạm vi nghiên cứu:
- Phạm vi kỹ thuật: Tập trung vào việc đọc thông số gia tốc 3 trục (Accelerometer $X, Y, Z$) từ cảm biến MPU9250, xử lý tín hiệu phát hiện bước chân, tính khoảng cách và truyền dữ liệu qua giao thức BLE.
- Phạm vi thực nghiệm: Thử nghiệm đo đạc thực tế trên một cá nhân với các đợt đi bộ từ 4 đến 20 bước, so sánh độ lệch số bước với ứng dụng StepApp Pro trên điện thoại di động chạy Android 8.0.
Cơ sở lý thuyết và phương pháp
Về cơ sở lý thuyết, đề tài tổng hợp quá trình hình thành và phát triển của công nghệ thiết bị đeo (Wearable Technology) từ các mốc lịch sử như đồng hồ mặt dây chuyền năm 1500 của Peter Henlein, đồng hồ đeo tay Alberto Santos-Dumont năm 1904, đồng hồ máy tính thập niên 1980, HugShirt năm 2004, đến các dòng vòng đeo tay thông minh hiện đại của Fitbit, Samsung, Apple và thiết bị y tế Embrace của Empatica. Văn bản làm rõ khái niệm thiết bị đeo như một thành phần trong hệ sinh thái Internet of Things (IoT), nơi các cảm biến thu thập thông tin hoạt động sinh học và vận động để truyền tải qua mạng không dây nhằm hỗ trợ chăm sóc sức khỏe, an toàn lao động và tối ưu hóa năng suất.
Phương pháp nghiên cứu trong đồ án kết hợp giữa thiết kế kỹ thuật hệ thống nhúng và thực nghiệm đo lường:
- Phương pháp phân tích và xử lý tín hiệu cảm biến: Dữ liệu gia tốc 3 chiều ($AcX, AcY, AcZ$) từ module MPU9250 được đọc định kỳ qua giao tiếp I2C. Để kiểm soát chu kỳ lấy mẫu mà không làm nghẽn tiến trình xử lý như hàm
delay(), tác giả sử dụng hàm millis() nhằm xác định mốc thời gian sau mỗi giây.
- Thuật toán nhận diện bước chân và tính khoảng cách: Giá trị gia tốc hướng được theo dõi theo ngưỡng biến thiên. Khi giá trị gia tốc hướng thỏa mãn điều kiện ngưỡng biên độ (lớn hơn 1 sau chu kỳ xác định), hệ thống ghi nhận tăng 1 bước chân. Khoảng cách di chuyển được ước tính theo công thức:
$$\text{Distance Walked} = \text{Distance Covered in one step} \times \text{Total Step}$$
Trong đó, chiều dài trung bình của một bước chân được thiết lập ở mức thực nghiệm là $71\text{ cm}$ (tương đương khoảng $0{,}7\text{ m}$). Giá trị tổng hợp độ lớn gia tốc (Norm) được tính bằng căn bậc hai của tổng bình phương 3 trục gia tốc:
$$\text{Norm} = \sqrt{AcX^2 + AcY^2 + AcZ^2}$$
- Nguồn dữ liệu thực nghiệm: Thu thập trực tiếp từ cảm biến MPU9250 kết nối với vi điều khiển nRF51822 trong các bài kiểm tra đi bộ thực tế, đồng thời đối chiếu dữ liệu tương ứng ghi nhận từ ứng dụng StepApp Pro cài đặt trên điện thoại di động thông minh.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc phân tầng phần cứng và phần mềm kết nối không dây tầm ngắn:
1. Thành phần phần cứng
- Vi điều khiển SoC nRF51822: Trang bị nhân 32-bit ARM Cortex-M0, bộ nhớ Flash 128kB/256kB, RAM 16kB/32kB, hỗ trợ ngăn xếp giao thức Bluetooth Low Energy 4.0 ở dải tần 2.4 GHz, công suất phát $+4\text{ dBm}$, độ nhạy thu $-93\text{ dBm}$, nguồn cấp $3{,}3\text{ VDC}$, dải nhiệt độ hoạt động từ $-40^\circ\text{C}$ đến $+105^\circ\text{C}$.
- Đế kit phát triển nRF51822: Cung cấp cổng nạp JTAG 20 chân tương thích với mạch nạp Debugger J-Link, tích hợp IC chuyển đổi USB-UART CP2102 để giao tiếp máy tính, các chân cắm mở rộng I2C, SPI, UART, GPIO và hệ thống nút nhấn, LED thí nghiệm (sử dụng nguồn cấp $5\text{ VDC}$ từ cổng USB).
- Cảm biến GY-9250 9DOF IMU (MPU9250): Tích hợp 3 cảm biến (gia tốc kế, con quay hồi chuyển, từ kế) với 9 trục đo độc lập. Thiết bị sử dụng 3 bộ chuyển đổi ADC 16-bit cho mỗi loại cảm biến, dải đo gia tốc có thể cấu hình $\pm 2g, \pm 4g, \pm 8g, \pm 16g$, hỗ trợ giao tiếp I2C/SPI với 4 chân kết nối cơ bản ($VCC, GND, SCL, SDA$), mức điện áp hoạt động $3\text{--}5\text{ VDC}$.
- Mạch nạp Segger J-Link EDU: Hỗ trợ nạp và gỡ lỗi phần mềm cho nhân ARM Cortex-M với tốc độ tải xuống lên đến $1\text{ MB/s}$, tính năng Virtual COM port (VCOM) và Unlimited Flash Breakpoints.
2. Triển khai phần mềm và thuật toán
- Chương trình nhúng trên vi điều khiển (Arduino IDE): Viết bằng ngôn ngữ C/C++ tích hợp các thư viện chuyên dụng (
BLEPeripheral, Wire). Quy trình xử lý gồm 15 bước:
- Khai báo các thư viện hệ thống và thư viện BLE.
- Định nghĩa sơ đồ chân kết nối I2C và điều khiển.
- Khởi tạo đối tượng ngoại vi BLE Peripheral.
- Tạo dịch vụ gia tốc (Accelerometer Service) và chỉ định mã UUID.
- Cấu hình đặc tính thông báo (Notify Characteristic) cho phép gửi dữ liệu tự động khi có cập nhật mới.
- Khởi tạo BLE Descriptor với UUID quy chuẩn.
- Khai báo các biến lưu trữ giá trị thô và giá trị gia tốc sau chuyển đổi.
- Cấu hình phần cứng trong hàm
setup().
- Thiết lập vòng lặp xử lý liên tục trong hàm
loop().
- Thiết lập và hiệu chỉnh thông số cảm biến.
- Xây dựng hàm đọc và xử lý tín hiệu gia tốc từ MPU9250.
- Xây dựng hàm chuyển đổi dữ liệu thô sang đơn vị đo lường gia tốc hướng.
- Xây dựng hàm xử lý sự kiện khi thiết lập kết nối BLE thành công.
- Xây dựng hàm xử lý sự kiện khi ngắt kết nối BLE.
- Trích xuất dữ liệu gia tốc để tính số bước và truyền tải.
- Ứng dụng di động Android (Android Studio): Phát triển bằng ngôn ngữ Java sử dụng Android SDK. Ứng dụng thực hiện quét tìm thiết bị BLE, thiết lập kết nối với module nRF51822, đăng ký nhận dữ liệu từ Characteristic thông qua cơ chế Notify, phân tích chuỗi dữ liệu nhận được để hiển thị trực quan thông số số bước chân và tổng quãng đường (mét) lên giao diện người dùng.
Nội dung chính theo từng chương
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Chương 1 trình bày tính cấp thiết của việc nghiên cứu và làm chủ công nghệ thiết bị đeo thông minh trong bối cảnh công nghiệp hóa và chăm sóc sức khỏe hiện đại. Tác giả nêu rõ mục tiêu đồ án là làm chủ quy trình kết nối phần cứng từ chip Nordic nRF51822, cảm biến quán tính MPU9250 đến ứng dụng hiển thị trên điện thoại Android. Nội dung chương xác định cụ thể đối tượng nghiên cứu, phạm vi phần cứng, phần mềm, đồng thời phác thảo phương pháp tiếp cận dựa trên việc thu nhận gia tốc 3 trục và công thức tính bước chân theo ngưỡng thời gian và biên độ.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương 2 phân tích chi tiết nguồn gốc và tiến trình phát triển của thiết bị đeo qua các thời kỳ, từ các thiết bị cơ khí đầu tiên đến các hệ thống điện tử hiện đại có khả năng kết nối mạng. Tác giả phân tích thị phần của các dòng thiết bị đeo (trong đó đồng hồ thông minh và tai nghe chiếm phần lớn thị trường, theo sau là vòng đeo tay thể thao), đồng thời nhấn mạnh vai trò của thiết bị đeo trong việc giám sát sức khỏe từ xa, cảnh báo sớm các tình trạng nguy hiểm như bệnh tim mạch hoặc động kinh. Chương này cũng giải thích các khái niệm kỹ thuật cốt lõi như tính toán phổ biến (Ubiquitous computing), phong trào tự định lượng (Quantified self) và giao thức mạng không dây tầm ngắn.
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
Chương 3 là phần trọng tâm về kỹ thuật, mô tả chi tiết sơ đồ khối hệ thống, nguyên lý hoạt động và thông số kỹ thuật của từng linh kiện phần cứng (mạch nRF51822, đế kit nRF51822, cảm biến MPU9250, mạch nạp J-Link EDU). Tác giả trình bày cấu trúc 15 bước lập trình trên Arduino IDE, cơ chế truyền dữ liệu BLE qua các Characteristic và Descriptor, cùng cấu trúc xây dựng ứng dụng Android bằng Java trên Android Studio để tiếp nhận và hiển thị thông tin đo đạc.
CHƯƠNG 4: KẾT QUẢ SO SÁNH, THỰC NGHIỆM, PHÂN TÍCH, TỔNG HỢP
Chương 4 công bố toàn bộ dữ liệu thực nghiệm đếm bước chân khi đi bộ bình thường của tác giả. Dữ liệu từ thiết bị tự tạo được so sánh trực tiếp với kết quả đo của ứng dụng StepApp Pro trên điện thoại Huawei Nova 2i. Chương này cung cấp các bảng dữ liệu về số bước, khoảng cách di chuyển tương ứng, tính toán độ lệch số bước tuyệt đối và tỷ lệ phần trăm sai số, đồng thời phân tích dạng sóng gia tốc tổng hợp để làm rõ nguyên nhân gây ra sai số đo lường.
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Chương 5 tóm tắt các công việc đã hoàn thành trong đồ án, bao gồm việc chế tạo thành công mạch nguyên mẫu thu nhận dữ liệu chuyển động, truyền nhận ổn định qua BLE và hiển thị trên điện thoại Android. Đồng thời, tác giả đề xuất các định hướng nâng cấp hệ thống trong tương lai về mặt thuật toán và thiết kế phần cứng.
Kết quả và đóng góp
1. Kết quả thực nghiệm cụ thể
Hệ thống phần cứng và phần mềm đã hoạt động đồng bộ, cho phép ghi nhận bước chân và ước tính quãng đường di chuyển. Kết quả kiểm tra đi bộ thực tế ghi nhận các thông số sau:
| Hoạt động |
Số bước chân ghi nhận (bước) |
Khoảng cách tính toán ($m$) |
| Đi bộ bình thường |
4 |
2,68 |
| Đi bộ bình thường |
10 |
7,10 |
Kết quả so sánh số bước chân giữa cảm biến phần cứng và ứng dụng StepApp Pro trên điện thoại Huawei Nova 2i (hệ điều hành Android 8.0) được thể hiện qua bảng số liệu:
| Lần thử nghiệm |
Dữ liệu bước chân từ cảm biến |
Dữ liệu bước chân từ ứng dụng điện thoại |
Sự khác nhau (Độ lệch bước) |
| 1 |
4 |
4 |
0 |
| 2 |
8 |
9 |
1 |
| 3 |
10 |
12 |
2 |
| 4 |
15 |
16 |
1 |
| 5 |
20 |
22 |
2 |
Đánh giá tỷ lệ phần trăm sai số (Error %) giữa thiết bị tự chế tạo và ứng dụng tham chiếu:
- Ở mức 4 bước: Sai số ghi nhận là $0%$.
- Ở mức 8 bước: Sai số ghi nhận là $12{,}67%$.
- Ở mức 20 bước: Sai số ghi nhận là $10%$.
- Tỷ lệ lỗi phần trăm trung bình toàn bộ các bài thử nghiệm đạt khoảng $9{,}x%$.
2. Đóng góp kỹ thuật của đề tài
- Hiện thực hóa thành công một giải pháp thiết bị đeo hoàn chỉnh từ tầng phần cứng nhúng đến tầng ứng dụng người dùng, kết hợp vi điều khiển nRF51822 của Nordic và cảm biến 9 trục MPU9250.
- Xây dựng thuật toán xử lý dữ liệu gia tốc 3 trục sử dụng hàm kiểm soát thời gian
millis() và công thức tính độ lớn gia tốc tổng hợp (Norm), giúp phân tách tín hiệu chuyển động bước chân mà không làm gián đoạn vòng quét của vi điều khiển.
- Triển khai thành công ứng dụng Android tiếp nhận dữ liệu không dây qua giao thức BLE, thiết lập giao tiếp hai chiều ổn định giữa thiết bị nhúng và thiết bị di động.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế
- Cảm biến gia tốc MPU9250 luôn tồn tại độ lệch tĩnh (offset) trên mỗi trục đo, cùng với độ nhiễu tín hiệu vốn có của cảm biến quán tính giá rẻ làm cho việc đọc và nhận diện đỉnh sóng gia tốc đôi khi bị sai lệch so với chuyển động thực tế.
- Chiều dài bước chân được cố định ở mức trung bình ($71\text{ cm}$), chưa có cơ chế tự động điều chỉnh linh hoạt theo tốc độ di chuyển hoặc chiều cao cụ thể của từng người dùng khác nhau.
- Vị trí gắn cảm biến trong quá trình thử nghiệm chưa được cố định tối ưu hoàn toàn, gây ảnh hưởng nhất định đến độ ổn định của dữ liệu thu được.
- Phần cứng mới dừng lại ở mức kit thí nghiệm và các module nối dây rời, chưa được thiết kế thành bo mạch in (PCB) nguyên khối thu nhỏ để đeo tay hoàn chỉnh.
2. Hướng nghiên cứu tiếp
- Áp dụng các thuật toán lọc nhiễu nâng cao (như bộ lọc thông thấp hoặc bộ lọc Kalman) nhằm triệt tiêu nhiễu và xử lý triệt để hiện tượng offset của cảm biến gia tốc.
- Nâng cấp thuật toán đếm bước và ước lượng chiều dài bước chân động dựa trên sự thay đổi tần số bước và cường độ gia tốc theo thời gian thực.
- Thiết kế mạch in tùy chỉnh (Custom PCB) tích hợp nRF51822, MPU9250, mạch quản lý nguồn sạc pin Li-Po nhỏ gọn, đóng gói vỏ hộp chuyên dụng cho thiết bị đeo tay.
- Bổ sung thêm các tính năng theo dõi sức khỏe khác (nhịp tim, nồng độ oxy trong máu) và cải tiến giao diện người dùng trên ứng dụng Android nhằm lưu trữ lịch sử vận động vào cơ sở dữ liệu.
Giá trị tham khảo
Tài liệu đồ án này mang lại giá trị tham khảo thực tiễn rõ ràng cho:
- Sinh viên ngành Công nghệ phần mềm, Công nghệ thông tin, Kỹ thuật điện - điện tử: Là tài liệu tham khảo chi tiết về quy trình tích hợp hệ thống IoT từ việc đọc datasheet cảm biến, lập trình vi điều khiển ARM Cortex-M qua Arduino IDE đến lập trình ứng dụng Android kết nối BLE.
- Người nghiên cứu các dự án thiết bị đeo (Wearable) và y tế thông minh: Cung cấp thông số cấu hình cụ thể, quy trình 15 bước thiết lập dịch vụ BLE Peripheral trên vi điều khiển nRF51822 và phương pháp giao tiếp I2C với module cảm biến quán tính 9DOF MPU9250.
- Các đề tài xử lý tín hiệu vận động: Cung cấp phương pháp thực nghiệm đo đạc gia tốc 3 trục ($AcX, AcY, AcZ$), công thức tính Norm gia tốc và phương pháp đánh giá sai số bước chân thực tế so với ứng dụng di động chuẩn.
Câu hỏi thường gặp
1. Tác giả sử dụng vi điều khiển nào và công nghệ giao tiếp không dây gì trong đồ án?
Tác giả sử dụng mạch thu phát SoC nRF51822 của hãng Nordic Semiconductor (nhân ARM Cortex-M0 32-bit) kết hợp đế kit phát triển, sử dụng công nghệ kết nối không dây Bluetooth Low Energy 4.0 (BLE) hoạt động ở băng tần 2.4 GHz để truyền dữ liệu sang điện thoại thông minh.
2. Cảm biến nào được dùng để phát hiện bước chân và kết nối qua chuẩn giao tiếp nào?
Đề tài sử dụng cảm biến GY-9250 9DOF IMU (tích hợp chip MPU9250 đo 9 thông số: 3 trục góc quay Gyroscope, 3 trục gia tốc hướng Accelerometer và 3 trục từ trường Magnetometer). Cảm biến kết nối với vi điều khiển nRF51822 thông qua giao tiếp I2C với 4 chân: $VCC, GND, SCL, SDA$.
3. Thuật toán phát hiện bước chân và ước tính khoảng cách được thực hiện như thế nào?
Hệ thống sử dụng hàm millis() để kiểm tra chu kỳ thời gian 1 giây, đọc giá trị gia tốc hướng từ MPU9250. Nếu biên độ gia tốc vượt qua ngưỡng xác định (lớn hơn 1), biến đếm số bước tăng thêm 1. Khoảng cách được tính theo công thức: $\text{Khoảng cách} = \text{Chiều dài 1 bước} \times \text{Tổng số bước}$, với chiều dài bước chân mặc định là $71\text{ cm}$ ($0{,}7\text{ m}$).
4. Thiết bị nạp code và các môi trường phát triển phần mềm được sử dụng là gì?
Tác giả sử dụng mạch nạp Segger J-Link EDU cắm qua cổng JTAG 20 chân trên đế kit. Phần mềm nhúng cho nRF51822 được lập trình bằng C/C++ trên Arduino IDE (sử dụng thư viện BLEPeripheral), còn ứng dụng trên điện thoại di động được phát triển bằng ngôn ngữ Java trên môi trường Android Studio.
5. Kết quả thử nghiệm so sánh với ứng dụng StepApp Pro trên điện thoại có sai số như thế nào?
Trong các bài kiểm tra từ 4 đến 20 bước đi bộ, thiết bị ghi nhận số bước có độ lệch từ 0 đến 2 bước so với ứng dụng StepApp Pro trên điện thoại Huawei Nova 2i. Tỷ lệ sai số đơn lẻ dao động từ $0%$ đến $12{,}67%$, và tỷ lệ lỗi phần trăm trung bình toàn bài thử nghiệm đạt mức khoảng $9{,}x%$.
Kết luận
Đồ án tốt nghiệp của tác giả Đào Nhật Tâm đã thiết kế và hiện thực hóa thành công một hệ thống thiết bị đeo tay thông minh nguyên mẫu sử dụng vi điều khiển Nordic nRF51822 và cảm biến quán tính 9 trục MPU9250. Hệ thống đã thực hiện tốt việc thu thập tín hiệu gia tốc chuyển động, xử lý nhận diện số bước chân, ước tính quãng đường di chuyển và truyền dữ liệu thời gian thực qua giao thức Bluetooth Low Energy đến ứng dụng di động Android. Dù kết quả đo đạc thực nghiệm vẫn còn mức sai số trung bình khoảng $9{,}x%$ do hiện tượng offset và nhiễu cảm biến, nghiên cứu đã chứng minh tính khả thi của quy trình tích hợp phần cứng - phần mềm nhúng và cung cấp cơ sở kỹ thuật giá trị cho các nghiên cứu phát triển thiết bị đeo thông minh tiếp theo.