Để khuếch đại được tín hiệu hàng milivolt đến vài chục milivolt thành tín hiệu ngõ ra ở mức hàng volt thì nhóm sẽ chọn hệ số khếch đại là 51:
Với G = 1+50𝑘
𝑅𝑔 = 51 => Rg = 1 kOhm
Hình 3. 3. Các mạch lọc thơng thấp, thơng cao được sử dụng.
Để lấy được ngõ ra là những tín hiệu ECG ta cần chọn giải thông từ 0.5hz – 100hz
Lọc thông thấp (Low pass):
Fc = 1
2𝜋 ×√𝑅1𝑅2𝐶1𝐶2 = 100 Hz (3.1)
Chọn R1 = 5,1K Ohm , R2 = 10K Ohm , C1 = 220 nF
(Ta chọn linh kiện giá trị sát với giá trị linh kiện có trên thị trường)
Ta tính được giá trị C2 = 100 nF
Lọc thông cao (High pass):
Fc = 1
2𝜋 ×√𝑅1𝑅2𝐶1𝐶2 = 0, 5 Hz (3.2)
Chọn R1 = 15K Ohm , R2 = 33K Ohm , C1= 20 uF
(Ta chọn linh kiện giá trị sát với giá trị linh kiện có trên thị trường)
Ta tính được giá trị C2 = 11 uF
Hình 3. 4. Mạch lọc Notch
Hệ thống, cơ thể sinh học của chúng ta sẽ bị ảnh hưởng từ điện lưới xoay chiều 50hz từ các thiết bị xung quanh nên cần thêm mạch lọc Notch chặn ở Fn=50hz
Fn = 1
4𝜋 ×√𝑅𝐶 = 50 Hz (3.3)
Chọn R = 15k Ohm , ta tính được C= 100nF
(Ta chọn linh kiện giá trị sát với giá trị linh kiện có trên thị trường)
Hình 3. 5. Sơ đồ nguyên lý mạch tiền xử lý ECG xử lý ECG
Giải thích sơ đồ nguyên lý:
- Các tín hiểu ở 2 điện cực LA, RA được đưa vào các op-amp U1A, U1B để khuếch đại đệm
- 2 tín hiệu sau khi khuếch đại đệm, đưa vào ngõ vào (2), (3) của op-amp khuếch đại đo lường INA114, ở đây tín hiệu được khuếch đại với hệ số 51 lần như tính tốn ở trên
- Tín hiệu sau ngõ ra của INA114 tiếp tục được đi qua các mạch lọc thông thấp, thông cao bậc 2 với hệ số khuếch đại là 1 và tần số cắt lần lượt là 0.5hz và 100hz, theo tần số yêu cầu của 1 tín hiêu ECG
- Để loại bỏ các nhiễu do mạng lưới điện 50hz gây ra, cho tín hiệu đi qua mạch lọc chặn Notch
- Tín hiệu cuối cùng của ngõ ra được khuếch đại đệm 1 lần nữa ở op-amp U12A để tránh méo tín hiệu.
Trong q trình thiết kế, tìm linh kiện cho mạch nhóm em đã tìm hiểu được module AD8232 với thiết kế tương đương mạch ECG với các cấu tạo từ các khối như cơ sở lý của mạch ECG. Nhóm em đã quyết định sử dụng module AD8232 có sẵn trên thị trường để linh hoạt trong q trình thực hiện tồn bộ hệ thống và dễ dàng thay thế khi bị hư hỏng về lâu về dài.
➢ Mạch cảm biến đo SpO2 sử dụng MAX30100
Hình 3. 7. Sơ đồ nguyên lý mạch cảm biến MAX30100.
➢ Giải thích sơ đồ nguyên lý
Nguồn cung cấp cho cảm biến từ 1.8 V– 5.5 V. Tuy nhiên nguồn 3.3 V được khuyến khích sử dụng để cảm biến hoạt động tốt nhất.
- Tụ điện C1, C2, C4, C5, C6, C7 mục đích để lọc nguồn trước khi đi vào các khối chức năng.
- Khối U1 bộ điều khiển cảm biến led hồng ngoại chính của MAX30100 - Khối U2 là khối IC ổn áp nguồn.
- Khối U3 mạch giảm áp 3.3 V - 1.8 V.
- Điện trở R1, R2 điện trở 4.7 K kéo lên của chuẩn giao tiếp I2C. Kết quả SpO2 cuối cùng được tính theo cơng thức sau:
SpO2 = 180 – 25 x R Với R = 𝐴𝐶𝑟𝑚𝑠 𝑟𝑒𝑑 𝐴𝐶 𝑟𝑒𝑑 𝐷𝐶𝑟𝑚𝑠 𝑖𝑟 𝐷𝐶 𝑖𝑟 = log 𝐼𝑎𝑐 × 𝑏ướ𝑐 𝑠ó𝑛𝑔 á𝑛𝑔 𝑠á𝑛𝑔 đỏ log 𝐼𝑑𝑐 × 𝑏ướ𝑐 𝑠ó𝑛𝑔 á𝑛𝑔 ℎồ𝑛𝑔 𝑛𝑔𝑜ạ𝑖
b. Tính tốn và thiết kế khối mạch điều khiển trung tâm và khối Wifi
VDK STM32F407 thuộc dòng Vi điều khiển lõi ARM có tốc độ xử lý cao, bộ ADC có độ phân giải lớn, tốc độ lấy mẫu nhanh, bộ nhớ RAM tích hợp rất nhiều phù hợp với việc điều khiển LCD kích thước lớn nên nhóm em sẽ chọn Vi điều khiển này để làm khối xử lý trung tâm.
STM32F407VET6 cũng giống như các vi điều khiển khác, để Vi điều khiển hoạt động được tối thiểu ta phải có mạch reset và mạch tạo xung clock cho Vi điều khiển.
Hình 3. 9. Mạch Reset vi điều khiển mức thấp và mạch tạo dao động.
Giải thích sơ đồ nguyên lý
Sơ đồ nguyên lý của khối xử lý trung tâm được giải thích theo bảng sau : Bảng 3.1: Sơ đồ kết nối chân vi điều khiển
FSMC 1 bộ giao tiếp màn hình LCD
( 16 chân dữ liệu, 4 chân điều khiển,3 chân điều khiển cảm ứng và 2 chân nguồn )
Chuẩn truyền thông sử dụng
1 UART giao tiếp ESP8266 Node MCU (PA2,PA3) 1 I2C giao tiếp màn hình cảm ứng (PB6,PB7)
Oscillator ( tạo dao động) Thạch anh 8Mhz (PC14,PC15) Điện áp hoạt động 3.3V được cấp từ mạch giảm áp Bộ tạo tạo thời thực Thạch Anh 32.768kHz ( PH0,PH1) Mach nạp ST-Link v2 SW_DIO,SW_CLK ( PA13,PA14)
Tụ điện lọc nguồn (100nF,10Uf)
C8,…,C12,C21,…,C29 chống nhiễu cơng nghiệp
Hình 3. 11. Sơ đồ nguyên lý kết nối giữa ESP8266 và MCU.
Sau khi chuyển đổi ADC từ tín hiệu ngõ ra của khối đọc tín hiệu điện tim, kết quả sẽ được xử lý, tính tốn đưa ra số nhịp tim trên mỗi phút. Sau đó MCU sẽ gửi dữ
- Tụ C17 giúp ổn định nguồn cho NodeMCU Esp.
- 2 Chân TX,RX thuộc chuẩn giao tiếp UART, nối chéo với TX,RX ở chân PA2, PA3 của STM32F407.
liệu bao gồm giá trị sau chuyển đổi ADC và số nhịp tim trên phút đến Esp8266 (qua
2 chân TX, RX của giao tiếp UART). Esp8266 sẽ sử dụng kết quả sau chuyển đổi
ADC và số nhịp tim trên phút để hiển thị thông tin số nhịp và sóng ECG lên webserver.
c. Tính tốn và thiết kế khối mạch nguồn
Bảng 3.2: Dòng điện tiêu thụ của các mạch sử dụng
Tên linh kiện Điện áp định mức Dòng điện định mức
ESP8266 5VDC 200mA
STM32F407VET6 3.3VDC 240mA
LCD 7 inch 3.3VDC 180mA
Với các thông số như trên ta sẽ chọn nguồn điện có dòng ra cực đại là 1A trở lên để đáp ứng được điện năng tiêu thụ cho toàn bộ hệ thống (bao gồm sự tiêu thụ không đáng kể của khối ngõ vào). Để đảm bảo về sự chính xác trong đo lường tín hiệu ta cần tránh những mạch nguồn xung gây nhiễu cho hệ thống, vì vậy nhóm đã sử dụng mạch nguồn IC LM317 để đáp ứng tất cả các yêu cầu như trên.
Hình 3. 12. Mạch nguồn IC LM317
Các tụ C1,C2 đóng vai trò ổn định nguồn ra, vào. Điện trở R1,R2 sẽ xác định Vout, nhóm sẽ thay dùng biến trở ở vị trí R2 để linh hoạt trong khả năng cân chỉnh hệ thống sau thi công.
Hình 3. 13. Sơ đồ kết nối LCD với vi điều khiển STM32F407.
➢ Giải thích sơ đồ nguyên lý
• Chân 2,36,34 : nối GND.
• Chân 25, 33: Cấp nguồn 3.3V từ mạch giảm áp LM2596.
• Tụ điện C1 10uF: lọc nhiễu 50Hz cơng nghiệp.
• Chân 3,…,18: chân lấy dữ liệu truyền song song từ chân vi điều khiển.
• Chân 19: tín hiệu cho phép LCD hoạt động thường là mức thấp.
• Chân 20: Chọn ghi dữ liệu hay đọc dữ liệu trong thanh ghi.
• Chân 21: Chân ghi dữ liệu.
• Chân 22: Chân đọc dữ liệu.
Để lập trình được cho LCD ta cần hiểu chính xác về cấu trúc thanh ghi bên trong RA8875. Giống như những Driver LCD khác, RA8875 cơ bản cũng bao gồm một số thanh ghi cấu hình và các thanh ghi chức năng cho LCD. Ở đây nhóm em sẽ đề cập sâu vào việc hiển thị 1 điểm ảnh tức là việc ghi vào 1 ô bộ nhớ của bộ nhớ đệm được ánh xạ cho LCD trên RA8875. Để làm được việc đó chúng ta sẽ làm việc trên các thanh ghi: 0x46, 0x47, 0x48, 0x49 và lệnh ghi dữ liệu 0x02
Dưới đây là Function mô tả việc ghi 1 ô dữ liệu trên bộ nhớ đệm của RA8875 cũng tức là xuất ra 1 điểm ảnh trên LCD.
void gotoXY(uint16_t x,uint16_t y) {
LCD_CmdWrite(0x46); // Chọn thanh ghi 8bit cao của vị trí hàng ngang
LCD_DataWrite(x); // Ghi giá trị 8bit cao của vị trí hàng ngang
LCD_CmdWrite(0x47); // Chọn thanh ghi 8bit thấp của vị trí
hàng ngang
LCD_DataWrite(x>>8); // Ghi giá trị 8bit thấp của vị trí hàng ngang
LCD_CmdWrite(0x48); // Chọn thanh ghi 8bit cao của vị trí hàng dọc
LCD_DataWrite(y); // Ghi giá trị 8bit cao của vị trí hàng dọc
LCD_CmdWrite(0x49); // Chọn thanh ghi 8bit thấp của vị trí
hàng dọc
LCD_DataWrite(y>>8); // Ghi giá trị 8bit thấp của vị trí hàng dọc }
void drawPixel(uint16_t x,uint16_t y,uint16_t color) {
gotoXY(x,y); // gọi lại function trên để xác định tạo độ x,y trên màn hình cũng chính là vị trí ơ nhớ ta chuẩn bị ghi giá trị vào
LCD_CmdWrite(0x02); // lệnh ghi vào bộ nhớ đệm
LCD_DataWrite(color); // ghi giá trị vào bộ nhớ đệm, giá trị này là 16bit màu theo format 565
}
3.4. SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH Sơ đồ nguyên lý Sơ đồ nguyên lý
Hình 3. 14. Sơ đồ nguyên lý board xử lý trung tâm, module wifi và LCD hiển thị.
Mạch đọc tín hiệu điện tim sẽ khuếch đại, lọc nhiễu từ tín hiệu của các điện cực trên cơ thể, ngõ ra sẽ là tín hiệu analog từ 0 - 3.3V, đây cũng là tín hiệu ECG. Tín hiệu này được đưa vào khối xử lý trung tâm, qua bộ chuyển đổi ADC1 và sử dụng thuật toán xác định đỉnh sóng để đo được thời gian các đỉnh sóng liên tiếp từ đó tính được số nhịp trên mỗi phút, đồng thời dựa vào dữ liệu sau chuyển đổi ADC để vẽ nên đồ thị dạng sóng ECG. Tín hiệu của cảm biến MAX30100 thì lại là dạng số đã được chuyển đổi và lưu vào Rom tích hợp trên cảm biến. Các kết quả trên bao gồm đồ thị dạng sóng ECG và số nhịp tim trên phút, nồng độ SpO2 được chuyển tới mạch giao tiếp Wifi qua chuẩn giao tiếp UART ở các chân PA2,PA3 để thực hiện các chức năng tương ứng là đưa kết quả lên Web server và hiển thị ra LCD qua bộ FSMC.
3.5. LƯU ĐỒ GIẢI THUẬT VÀ PHẦN MỀM LẬP TRÌNH Lưu đồ giải thuật Lưu đồ giải thuật
Hình 3. 15. Lưu đồ của tồn bộ hệ thống
Giải thích lưu đồ chương trình: Khởi tạo các giá trị câu hình cho các ngoại vi
cần sử dụng trên vi điều khiển như I2C, UART, FSMC, … cấu hình giao diện ban đầu cho LCD, sau đó đọc các tín hiệu của khối ngõ vào từ bộ ADC, I2C. Trong quá trình đọc kiểm tra kết nối giữ vi điều khiển với các bộ ngoại vi I2C, ADC nếu khơng
có kết nối sẽ hiển thị ra kết quả là 0 cho nhịp tim và nồng độ SpO2, nếu có kết nối tiến hành xử lý và và tính tốn nhịp tim, SpO2 và vẽ dạng sóng ECG, tiếp tục hiển thị lên LCD và gửi dữ liệu lên web server.
.
Giải thích lưu đồ chương trình con tính tốn nhịp tim: Lấy mẫu tín ADC hiệu
tại một mốc đặt trước trên sườn lên của tín hiệu sau đó dùng timer xác định mốc thời gian t1, tiếp tục xác định mẫu từ ADC tại mốc đặt trước đó ở sườn lên tiếp theo, sau đó dùng timer xác định mốc thời gian t2, chu kì của sóng: t = t2 – t1
Phần mềm lập trình
Để lập trình cho MCU STM32 nhóm đã sử dụng trình biên dịch Keil C v5 chuyên dùng để hổ trợ cho các MCU ARM để phát triển và debug chương trình bằng ngơn ngữ C/C++ - một ngơn ngữ hàng đầu cho lập trình nhúng vì sự gắn kết chặt chẽ giữa ngơn ngữ lập trình và nền tảng phần cứng.
Hình 3. 17. Giao diện chính của Keil C V5. Các cơng cụ Build Các cơng cụ Build
chương trình
Cửa sổ quản lý thư viện
Các công cụ debug chương trình
Cửa sổ soạn thảo chương trình
Cửa sổ hiển thị thơng báo lỗi của chương trình
Hướng dẫn sử dụng phần mêm lập trình.
Bước 1: Thêm tất cả các thư viện mong muốn vào cửa sổ (2)
Hình 3. 18. Cửa sổ chứ các thư viện cho project.
Bước 2: Code lập trình C được soạn thảo ở cửa sổ (3)
Hình 3. 19. Cửa sổ soạn thảo của chương trình Cửa sổ (2) quản lý thư viện Cửa sổ (2) quản lý thư viện
Bước 3: Sau khi lập trình xong sử dụng cơng cụ biên dịch chương trình (1), sau
đó sử dụng kiểm tra kết quả build ở cửa số (4), cửa sổ này cho phép chúng ta biết được số lỗi, lỗi như thế nào trong quá trình lập trình:
Hình 3. 20. Cơng cụ biên dịch và kết quả sau biên dịch
Bước 4: Kiểm tra kết quả nếu khơng có lỗi thì hãy nạp chương trình vào vi điều khiển bằng cơng cụ (5) như hình dưới:
Cơng cụ (1) biên dịch
Cửa sổ (4) thông tin lỗi của code
Hình 3. 21. Cơng cụ nạp chương trình vào vi điều khiển. Công cụ (5) biên dịch Công cụ (5) biên dịch
CHƯƠNG 4: THI CÔNG HỆ THỐNG
4.1 GIỚI THIỆU
Sau khi hồn thành việc tính tốn các thơng số hoàn chỉnh cho mạch, chúng ta bắt đầu thi công vẽ PCB lắp ráp mạch, chạy thực tế và cân chỉnh thệ thống.
4.2 THI CƠNG HỆ THỐNG:
Thi cơng bo mạch:
Trước khi vẽ mạch nguyên lý và mạch in PCB, chúng ta cần liệt kê danh sách tất cả linh kiện sử dụng. Dưới đây là bảng tóm tắt tất cả linh kiện sử dụng trong việc thi công board xử lý trung tâm.
Bảng 4.1: Danh sách linh kiện
STT Tên linh kiện Giá trị Số lượng Đóng gói
1 VDK STM32F407 1 SMD 100- LQFP
2 Hàng Rào Cái Đôi 2.54mm
40 Chân 2 Hàng Cao 8.5mm 1 Chấn cắm xuyên lỗ
2 LED Xanh Dương Trong
Suốt 1 0805 SMD
3 Thạch Anh 2 Chân 8Mhz 1 SMD
4 Thạch Anh 2x6mm 32.768kHz 1 Chân cắm xuyên lỗ
5 Tụ Gốm 100nF
(0.1uF) 50V 1 0805 SMD
6 Tụ Gốm 10uF 16V 3 0805 SMD
7 Tụ Gốm 2.2uF 50V 5 0805 SMD
8 Điện Trở 620 Ohm
5% 1 0805 SMD
9 Điện Trở 10 kOhm
5% 6 0805 SMD
10 Đầu Nối Nguồn DC 2.1mm 1 Chân cắm xuyên lỗ
11 Nút Nhấn 3.5x6mm Cao
Dựa và mạch nguyên lý đã trình bày ở chương 3, nhóm tiến hành vẽ mạch PCB:
Hình 4. 1. PCB của board xử lý trung tâm.
Hình 4. 3. Hình ảnh thực tế board mạch mặt sau.
Lắp ráp và kiểm tra
a. Lắp ráp module nguồn
Tiến hành lắp ráp và hàn các linh kiện của module nguồn. Tiến hành đo và kiểm tra nguồn vào và ra xem đúng sai, cân chỉnh cho đúng đầu vào 5VDC sau mạch giảm áp còn 3.3V DC.
b. Tiến hành thực hiện hàn chip dán STM32F4, các linh kiện khác:
Sau khi đã hoàn thành hàn linh kiện lên board. Kiểm tra mạch xem board có bị đứt hay chập mạch khơng. Nếu có, nhẹ thì có thể chỉnh sửa lại, nặng thì phải làm lại board khác.
4.2.2. Đóng gói và thi cơng mơ hình:
Dùng phần mềm SketchUp để vẽ các chi tiết tạo thành đầu dò cảm biến SpO2
Hình 4. 5. Ảnh 3D bản vẽ đầu dò gắn cảm biến SpO2.
Hộp của thiết bị được vẽ từ CorelDraw với kích thước 21cm x 14cm x 7cm
4.2.3. Thi cơng hộp mơ hình:
Sau khi vẽ bằng CorelDraw, xuất ra file dxf cho vào máy cắt mica để gia cơng các mặt của hộp.
Hình 4. 7. Mơ hình hệ thống hồn chỉnh khi lắp tất cả linh kiện vào trong hộp.
4.3. LẬP TRÌNH CHO HỆ THỐNG a. Phần mềm lập trình ESP8266 a. Phần mềm lập trình ESP8266
Trong đề tài này người thực hiện sử dụng trình biên dịch Arduino IDE vì nó tiện lợi và hỗ trợ tốt hơn cho người sử dụng.