Khối xử lý trung tâm

Một phần của tài liệu THIẾT kế THIẾT bị đo NHỊP TIM và CẢNH báo QUA điện THOẠI, có CODE (Trang 27)

Chức năng: Dùng để xử lý nhận và gửi dữ liệu, nhận giữ liệu từ cảm biến nhịp tim và gửi dữ liệu cho LCD16x2, module sim800L.

Linh kiện sử dụng: PIC16F877A là loại vi xử lý phổ biến, được học về lý thuyết trong môn vi điều khiển và thực hành ở trường, giá thành phù hợp.

PIC 16F877A là một dòng PIC phổ biến hiện nay, đủ mạnh về tính năng, bộ nhớ đủ cho hầu hết các ứng dụng thông thường. Đặc biệt có cổng giao tiếp UART của pic để giao tiếp với module sim ta sử dụng hai chân RC6, RC7.

Hình 3.19 Vi điều khiển PIC 16F877A

Thông số kỹ thuật của linh kiện: - CPU: 8 – bit

- Số chân: 40 chân - Số chân I/O: 35 chân

- Số Port: 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập - Các cổng giao tiếp gồm có: UART, SPI, I2C

- Tần số hoạt động tối đa: 20MHz

- 2 bộ định thời 8 bits (Timer 0 và Timer 2) - 1 bộ định thời 16 bits (Timer 1)

- 35 tập lệnh có độ dài 14 bits - Bộ nhớ chương trình 8K x 14 bit - Bộ nhớ dữ liệu 3698x8 byte RAM - 256x8 byte EEPROM

Hình 3.21 Vi điều khiển PIC 16F877A trong protues 3.1.3. Khối cảm biến

Chức năng: Cảm biến nhịp tim dạng quang Pulse Sensor sử dụng nguyên lý đo nhịp tim bằng ánh sáng với kích thước nhỏ gọn và giao tiếp Analog rất dễ sử dụng, phù hợp cho các ứng dụng điện tử y sinh.

Hình 3.22 Cảm biến nhịp tim ngoài thực tế

Thông số kỹ thuật:

- Nguồn đầu vào: 3 – 5V - Dòng tiêu thụ: < 4mA - Ngõ ra: Analog

- Độ dài dây đo: 61 cm (24 inch)

- Đường kính cảm biến: 1.6 cm (0.625 inch)

Cảm biến hoạt động dựa trên một sensor quang đo nhịp tim cùng với bộ khuếch đại tín hiệu và lọc nhiễu. Nguyên lý tương đối đơn giản, ta sẽ cần 3 thành phần LED, LDR và vi điều khiển. LED và LDR được bố trí như hình sau:

Hình 3.23 Nguyên lý hoạt động của cảm biến khi ngón tay đặt vào

Trạng thái hoạt động thì LED luôn phát ra ánh sáng và LDR sẽ thu ánh sáng phản xạ từ LED. Cảm biến hoạt động với 2 trường hợp như sau:

TH1: Khi có máu dẫn trong mạch máu (mạch máu giãn ra), ánh sáng từ LED sẽ bị hấp thụ nhiều hơn, dẫn đến cường độ ánh sáng mà LDR thu được sẽ ít hơn.

TH2: Khi không có máu dẫn (mạch máu co lại), ánh sáng từ LED sẽ không bị hấp thụ bởi máu, và do đó cường độ ánh sáng LDR thu được là lớn hơn.

Từ đó, ta có thể nhận biết được sự thay đổi, qua đó xác định được thời điểm máu dẫn trong mạch máu, tức thời điểm tim đập.

Hình 3.24 Sơ đồ nguyên lý cảm biến pulse sensor

 D1 – Reverse mount super bright green LED: nguồn phát sáng, qua đó phản xạ bởi cơ thể người được đọc bởi cảm biến ánh sáng.

 R1: trờ hạn dòng cho LED D1.

 Khối U1 – Ambient Light Sensor: khối cảm biến ánh sáng, có tín hiệu ngõ ra là dòng thay đổi theo cường độ ánh sáng nhận vào.

 R2: điện trở tải cho khối U1.

 C2: tụ lọc tín hiệu trước khi vào bộ lọc thông cao.

 C3, R4, R5, R6, U2: phần tử cấu thành bộ lọc thông cao tích cực mô hình Sallen – key nhằm tránh nhiễu 50 Hz.

 R3, R4: trở phân áp cho U2 có thể hoạt động với nguồn đơn.

 D2: diode bảo vệ được lắp tại nguồn, chức năng bảo vệ mạch trong trường hợp cấp nguồn ngược.

Hình 3.25 Sơ đồ nguyên lý cảm biến nhịp tim trong proteus

Cảm biến nhịp tim gồm 3 chân: 1 chân nguồn cấp 3V, 1 chân nối đất và 1 chân tín hiệu sẽ được đưa vào chân số 3 của LM385. Lúc này chân số 2 và số 3 của LM385 bất đầu so sánh. Lấy điện áp so sánh là 3V, nếu trường hợp điện áp lớn hơn 3V thì sẽ cho ra 1 tín hiệu ở mức cao (3V). Nếu điện áp dưới 3V thì sẽ cho ra 1 tín hiệu ở mức thấp (0V).

Sau đó sẽ qua thêm 1 bộ so sánh nữa lý do pic 16f877a sử dụng điện áp 5V. Lúc này lấy điện áp so sánh là 2V, nếu trường hợp điện áp lớn hơn 2V thì sẽ cho ra 1 tín hiệu ở mức cao (5V). Nếu điện áp dưới 2V thì sẽ cho ra 1 tín hiệu ở mức thấp (0V). Sau đó chân out được nối vào RD3.

3.1.4. Khối nút nhấn

Nút nhấn start sẽ có nhiệm vụ ấn vào bắt đầu đo nhịp tim. Lúc bình thường nút nhấn hở, ngõ vào có điện trở kéo lên nguồn nên mức logic là 1.

Khi có ta nhấn phím thì ngắn mạch ngõ vào xuống đất làm ngõ vào ở mức logic 0, khi nhã phím thì ngõ vào trở về lại mức logic 1.

Kiểm tra xem có nhấn hay không bằng cách kiểm tra mức logic nếu bằng 1 thì không nhấn, bằng 0 thì có nhấn.

Hình 3.26 Nút nhấn start trong proteus

Nút nhấn Reset: Nguồn cấp vào chân Vpp của Pic là nguồn 5VDC đi qua điện trở phân áp 10K Ohm, sau điện trở ta mắc song song nút nhấn Reset và nối GND. Khi không nhấn nút, nguồn sẽ đổ vào Pic và kích chân Vpp lên mức 1, khi đó hệ thống hoạt động, còn nếu nhấn nút thì nguồn sẽ đổ về GND, chân Vpp sẽ xuống mức 0 =>hệ thống sẽ được Reset.

Linh kiện sử dụng: nút nhấn 2 chân

Hình 3.28 Nút nhấn 2 chân ngoài thực tế

3.1.5. Khối hiện thị

Chức năng: dùng để hiện thị nhịp tim lên cho người dùng Linh kiện sử dụng: màng hình LCD16x2

Ngày nay thiết bị hiển thị LCD rất quen thuộc với mọi người và được sử dụng rộng rãi trong các ứng dụng của vi điều khiển. LCD có nhiều ưu điểm so với các dạng hiển thị khác. Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn ít tài nguyên hệ thống và giá thành rẻ.

Thông số kỹ thuật:

- Chân cấp nguồn Vcc-GND 2.7V đến 5.5V - Điện áp ra mức cao (DB0-DB7) Min 2.4V - Điện áp ra mức thấp (DB0-DB7) Max 0.4V - Dòng điện cấp nguồn 350uA đến 600uA

Hình 3.30 Màng hình LCD16x2 trong proteus

3.1.6. Khối Module Sim

Chức năng: Như một điện thoại có kích thước nhỏ dùng để gửi tin nhắn thông báo nhịp tim vượt ngưỡng cho người thân.

Linh kiện sử dụng: Module Sim 800L

Hình 3.31 Module SIM800L ngoài thực tế

Chức năng các chân của module sim 800l

 VCC: Nguồn vào 4.2V ( hoạt động ổn định)

 TXD: Chân truyền Uart TX.

 RXD: Chân nhận Uart RX.

 DTR: Chân UART DTR, thường không sẽ không sử dụng.

 SPKP, SPKN: Ngõ ra âm thanh, nối với loa để phát âm thanh.

 MICP, MICN: Ngõ vào âm thanh, phải gắn thêm Micro để thu âm thanh.

 Reset: Chân khởi động lại Sim800L (thường không xài).

 RING: Báo có cuộc gọi đến

 GND: Chân Mass, cấp 0V.

Nguồn cấp từ 3.4V đến 4.3V nhưng Module Sim800L chỉ kết nối ổn định ở mức điện áp 4.2V – 4.3V.

RXD và TXD là hai chân để giao tiếp với Pic ở port C theo chuẩn UART RS232 nên RXD sẽ được nối với chân RC6(TX), TXD sẽ được nối với chân RC7(RX) của Pic. Chức năng của Diode D5 là diode loại Si để giảm áp từ nguồn 5V xuống còn 4.3V cho Module Sim kết nối ổn định.

Hình 3.32 Module SIM800L trong proteus

3.1.7. Khối cảnh báo

Chức năng: Dùng để cảnh báo thành tiếng kêu cho người dùng nếu nhịp tim vượt ngưỡng cho phép.

Linh kiện sử dụng: Còi chíp cảnh báo 5VDC (Buzzer 5VDC)

Thông số kỹ thuật:

- Nguồn đầu vào : 3.5V - 5.5V

- Dòng điện tiêu thụ: <25mA

- Tần số cộng hưởng: 2300Hz ± 500Hz

- Biên độ âm thanh: >80 dB

- Nhiệt độ hoạt động: từ-20 °C đến +70 °C

- Kích thước : Đường kính 12mm, cao 9,7mm

Hình 3.34 Còi cảnh báo trong proteus

Gồm một điện trở 330 Ohm có tác dụng phân áp, một transitor C1815 NPN có tác dụng như một công tắc và một còi Buzzer 5VDC.

Ta nối chân “loa” vào chân RE0 của Pic, khi chân RE0 lên mức 1(nhịp tim ổn định) thì nguồn sẽ đổ vào GND, ngược lại nguồn sẽ đổ từ Buzzer xuống và phát tín hiệu cảnh báo.

3.2. Một số linh kiện phụ 3.2.1. Thạch anh

Để tốc độ xử lý của PIC16F877A được nhanh nhất, ta chọn thạch anh loại 20MHz có trị số khá bền vững, hầu như rất ít bị ảnh hưởng bởi các điều kiện môi trường bên ngoài. Chức năng dùng để tạo ra khối dao động tao xung để đếm cho timer.

Hình 3.35 Thạch anh 20MHz ngoài thực tế

Hình 3.36 Thạch anh trong proteus 3.2.2. LED đơn

LED là viết tắt của Light – Emitting – Diode có nghĩa là “đi - ốt phát sáng” là một nguồn sáng phát sáng khi có dòng điện tác động lên nó. Chức năng trong mạch khi có một nhịp tim thì đèn LED đỏ sẽ nhấp nháy một lần

Hình 3.37 LED đơn ngoài thực tế

3.2.3. Tính chọn điện trở

Mức logic 0 làm led tắt, mức logic 1 làm led sáng, điện áp của led là 2v, dòng qua led chọn 10Ma, điện trở hạn dòng cho led được tính như sau:

 Có thể dùng điện trở 300 hoặc 330

3.3. Sơ đồ nguyên lý tổng quát

Hình 3.39 Sơ đồ nguyên lý tổng quát trong proteus

3.4. Thiết kế mô hình

CHƯƠNG 4. GIẢI THUẬT VÀ THUẬT TOÁN 4.1. Nguyên lý hoạt động của hệ thống

Sử dụng nguồn điện 12VDC-3A để cấp cho hệ thống, sau đó qua module LM2596 hạ áp xuống 5VDC -3A để cấp nguồn cho khối xử lý vi điều khiển PIC16F877A và khối cảnh báo, khối hiển thị. Sau đó nguồn 5VDC – 3A qua diode để còn điện áp 4.2V cung cấp cho module SIM800L. Cùng lúc đó nguồn 5VDC – 3A qua LM1117 – 3.3V để tạo điện áp 3V cung cấp cho cảm biến nhịp tim.

Sau khi cấp nguồn xong màng hình LCD16x2 sẽ xuất hiện dòng chữ là “ KHOI DONG SIM….,VUI LONG CHO…..” sau khoảng 10s để module sim kiểm tra sim nếu sim hoạt động sẽ gửi về số điện thoại 1 tin nhắn là “ KHOI DONG THANH CONG”.

Tiếp theo để đo nhịp tim ta nhấn nút Start lúc này màng hình LCD16x2 sẽ hiển thị dòng chữ là “ BAT DAU DO…..,KHONG BO TAY RA” và người dùng cầm cảm biến nhịp tim bằng ngón tay cái và ngón tay chỏ một cách thoải mái trong 20s. Cảm biến nhịp tim sẽ đo được nhịp tim của người dùng và trả về tính hiệu analog từ đó qua bộ so sánh thành tín hiệu digital . Nhịp tim sẽ được so sánh với giá trị đặt trước là nhỏ hơn 40bmp và lớn hơn 110bmp.

Sau khi đi đo nhịp tim xong sẽ hiển kết quả lên màng hình LCD16x2 “NHIP TIM,….(BMP)” nếu nhịp tim vượt ngưỡng đã đặt trước thì sẽ gửi về điện thoại 1 tin nhắn “VUOT NGUONG CHO PHEP, NHIP TIM:……” đồng thời còi cảnh báo sẽ được kích hoạt

4.2. Lưu đồ giải thuật

Begin

Khởi tạo phần cứng

Kiểm tra nút start

Sai Biến tt = 0 Đúng Tắt LED Báo nhịp tim Bắt đầu Sai Biến tt1 = 1 Đúng Biến tt1 = 0 Sai Vượt ngưỡng Đúng Bật loa Gửi tin nhắn Tắt loa

CHƯƠNG 5. THỰC NGHIỆM 5.1. Tiến trình thực nghiệm

Hình 5.41 Mạch cảm biến nhịp tim hoàn chỉnh

Hình 5.43 Nhịp tim đo được vào hiển thị lên LCD16x2

Hình 5.45 Tin nhắn được gửi từ module sim khi khởi động thành công và nhịp tim lớn hơn 110bmp

Hình 5.46 Tin nhắn được gửi từ module sim khi tay không chạm cảm biến nhịp tim bằng 0

5.2. Kết quả thực nghiệm Số lần đo Nhịp tim đo bằng mạch thiết kế(bmp) Nhịp tim đo bằng thủ công(bmp) Độ chênh lệch(bmp) 1 90 87 3 2 93 90 3 3 87 87 0 4 96 93 3 5 84 86 2 6 90 91 1 7 90 88 2 8 86 86 0 9 88 88 0 10 87 89 2

Bảng 2 số liệu thống kê nhịp tim sau 10 lần đo 5.3. Kết luận thực nghiệm

- Mạch truyền tín hiệu tốt và tốc độ xử lý nhanh - Độ sai số không qua lớn

- Người dùng dễ thao tác và sử dụng - Module Sim hoạt động ổn định - Có tính ứng dụng vào thực tế cao

CHƯƠNG 6. KẾT LUẬN 6.1. Ưu điểm

- Nhịp tim đo khá chính xác

- Module sim 800L giao tiếp đúng và nhanh chóng gửi tin nhắn gửi về điện thoại - Pic 16f877A xử lý nhanh hoạt động tốt

6.2. Nhược điểm

- Cảm biến nhịp tim lấy dữ liệu chưa được tốt, độ sai số tương đối - Linh kiện sử dụng rẻ dẫn đến hoạt động lâu ngày sai số hoặc hư hỏng - Khối cảnh báo kêu to

6.3. Hướng phát triển

- Đề tài chưa được hoàn thiện tốt nhất do sử dụng linh kiện còn rẻ tiền, có thể khắc phục bằng cách thay thế bằng các linh kiện khác và bổ sung thêm cảm biến oxy trong máu đo nồng độ bão hòa oxy trong máu, cảnh báo té ngã, thêm các thông số y sinh khác như huyết áp, điện nhiệt, điện tâm đồ.

- Có thể phát triển thêm cảnh báo và giám sát qua máy tính, internet, lưu trữ dữ liệu áp dụng trong lĩnh vực y tế ,hay cho người thân và gia đình.

TÀI LIỆU THAM KHẢO

[1]Nguyễn Đình Phú – Nguyễn Trường Duy, Giáo trình kỹ thuật số, Nhà xuất bản Đại học Quốc gia Tp Hồ Chí Minh

[2]Nguyễn Hữu Phương, Xử lý tín hiệu số, Nhà xuất bản Đại học Quốc gia Tp Hồ Chí Minh [3] https://circuitdigest.com/microcontroller-projects/heartbeat-monitoring-using-pic- microcontroller-and-pulse-sensor [4] https://dongtay.net.vn/vi/benh-hoc/roi-loan-nhip-tim/1445-nhip-tim-bao-nhieu-la- binh-thuong.html [5] https://mobitool.net/mach-so-sanh-dien-ap-op-amp.html [6] https://circuitdigest.com/microcontroller-projects/gsm-interfacing-with-pic16f877a

PHỤC LỤC

#INCLUDE <16F877a.H> #FUSES HS #USE DELAY(CLOCK=20M)

#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)

#define LCD_ENABLE_PIN PIN_b2 // dinh nghia theo lcd (phan cung) #define LCD_RS_PIN PIN_b4

#define LCD_RW_PIN PIN_b3

#define LCD_DATA4 PIN_D7 #define LCD_DATA5 PIN_D6 #define LCD_DATA6 PIN_D5 #define LCD_DATA7 PIN_D4

#include <lcd.c>

#define cb pin_d3 #define led pin_c0 #define loa pin_e0 #define nn pin_a0

signed int32 xung,luu,bmp,bdn; int1 tt,tt1;

#int_timer1 // tran thi ngat 1 lan. khi tran la dat gia tri 65535 void ngat_timer() // ngat timer moi lan 100ms

{

if(tt==1) // co nhan bat dau do {

bdn++; // sau 100ms no tang len 1 don vi set_timer1(3036); // gia tri bat dau if(input(cb)==1) // co nhip tim

{

output_high(led); // bat led

delay_ms(50); // chong nhieu cam bien

xung++; // tang xung

while(input(cb)==1); // cho xung xuong muc 0 }

else output_low(led); // khong co nhip

if(bdn>=200) // 200*100ms = 20000ms = 20s {

bdn=0;

setup_timer_1(T1_DISABLED); // khong cho dem

xung=0;

tt=0; // chot trang thai tt1=1; bmp=luu*3; // 20s quy 1p = 60s output_low(led); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // mo timer } } } void xoa_tin_nhan() {

printf("AT+CMGD=1,4\r\n"); // xoa tin nhan delay_ms(500);

}

void gui_tin_nhan(unsigned char tn) {

printf("AT+CMGS=\"+84768882367\"\r\n"); delay_ms(500);

switch(tn) {

case 1: printf("KHOI DONG THANH CONG "); break;

case 2: printf("VUOT NGUONG CHO PHEP, NHIP TIM:%ld ",bmp); break;

}

delay_ms(500);

putc(26); // xuong dong nhan nut gui delay_ms(500);

}

void khoi_dong_sim() {

lcd_gotoxy(1,1);

lcd_putc("KHOI DONG SIM..."); lcd_gotoxy(1,2);

lcd_putc("VUI LONG CHO....");

delay_ms(1000); // cho 10s de module sim hoat dong

printf("AT\r\n"); delay_ms(1000); // kiem tra có sim khong

printf("ATE1\r\n"); delay_ms(1000); // cho phep ket noi module sim voi pic printf("AT+IPR=9600\r\n"); delay_ms(1000); // toc do truyen 9600

printf("AT&W\r\n"); delay_ms(1000); // luu lai gia tri cai

printf("AT+CMGF=1\r\n"); delay_ms(1000); // chuyen tin nhan tu string sang text va nguoc lai

printf("AT+CNMI=2,2,0,0,0\r\n"); delay_ms(1000); // doc cac tin nhan chua duoc doc printf("AT+CMGD=1,4\r\n"); delay_ms(1000); // xoa cac tin nhan da doc

delay_ms(200);

gui_tin_nhan(1); // gui tin nhan bao khoi dong thanh cong delay_ms(500);

xoa_tin_nhan(); }

void nn_start() {

if(input(nn)==0) // co nhan khong {

delay_ms(20); // chong doi

Một phần của tài liệu THIẾT kế THIẾT bị đo NHỊP TIM và CẢNH báo QUA điện THOẠI, có CODE (Trang 27)