4.10.1. Sơ đồ phần cứng
Mạch điện giao tiếp vi điều khiển với cảm biến nhịp tim Pulse Sensor như hình 4.35
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 104
4.10.2. Bài tập mẫu
a. Mục đích: biết sử dụng cảm biến Pulse Sensor, lập trình ADC để đo và hiển thị đồ thị giá trị đo được từ cảm biến trên màn hình LCD TFT.
b. Lưu đồ và giải thích lưu đồ: c. Chương trình:
#include "main.h" #include "tft_spi.h" char buffer[40];
volatile uint16_t analog_ph = 0, h_ph = 0;
uint16_t i,j; uint16_t c,h; uint16_t c_t,h_t; uint16_t column1,column2,row1,row2; void grapgh_pulse_sensor_2() { c++; if(c==240) { c=0; c_t=0; tft_fill(100, 0, 300, 240, BLACK); } h_ph=analog_ph/5; tft_fill(300-h_ph, c, 300-h_ph, c, GREEN); tft_draw_line(300-h_t, c_t, 300-h_ph, c); c_t=c; h_t=h_ph; HAL_Delay(10); }
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
Bài mẫu 801. Chương trình đo giá trị cảm biến Pulse Sensor hiển thị trên LCD TFT đoạn dùng bộ ADC2 của vi điều khiển.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 105 {
if(hadc->Instance==hadc2.Instance) {
analog_ph=HAL_ADC_GetValue(&hadc2); }
}
int main(void)
{ HAL_ADC_Start_IT(&hadc2); tft_init(); tft_clear(WHITE); BACK_COLOR=WHITE; POINT_COLOR=RED;
tft_puts14x24(30,1,(int8_t*)"Heart Pulse
",TFT_STRING_MODE_NO_BACKGROUND); tft_fill(100, 0, 300, 240, BLACK); tft_draw_point(20,20); POINT_COLOR=GREEN; i=0;j=200; c=0;h=300; while (1) { grapgh_pulse_sensor_2(); } }
d. Tiến hành biên dịch và nạp. e. Quan sát kết quả:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 106
Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1.KẾT QUẢ
Sau khi thực hiện xong đồ án tốt nghiệp, kết quả nhóm thu được gần như đạt yêu cầu đề ra. Nhóm đã hoàn thành được mô hình kit lập trình vi điều khiển arm kết hợp cảm biến y sinh.
Để bắt đầu cho hệ thống ta cấp nguồn 12VDC bằng Jack căm như hình 5.36
Hình 5.1: Cấp nguồn cho kit thực hành
Sau đó nhấn nút bên dưới nút nhấn và chạy thử một đoạn chương trình của cảm biến Pulse Sensor, kết quả như hình 5.37
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 107 ❖ Sau quá trình làm việc và nghiên cứu nhóm đã đạt được một số kết quả:
− Có thể lập trình được cho vi điều khiển STM32F4VET6
Nhóm đã có kiến thức cơ bản về dòng vi điều khiển STM32F4 và có thể mở rộng kiến thức cho các dòng tương tự của STM32.
− Có thể tính toán, thiết kế và vẽ mạch điện
Tính toán, thiết kế và vẽ mạch là các kỹ năng thiết yếu của một người học điện tử, qua đề tài nhóm đã biết vận dụng các kiến thức đã học để để tính toán và thiết kế các mạch PCB theo yêu cầu.
− Biết cách lập trình bằng phần mềm STM32CubeIDE
Qua quá trình làm việc nhóm đã có kiến thức cơ bản về cách sử dụng phần mềm để lập trình cho cách dòng vi điều khiển STM32.
− Hiểu và sử dụng thư viện HAL
Thư viện HAL là một thư viện mở giúp người lập trình có thể sử dụng một cách dễ dàng mà không cần phải có nhiều kiến thức thao tác với thanh ghi, cho nên rất dễ sử dụng với người bắt đầu. Nhóm đã hiểu và sử dụng những câu lệnh cơ bản của bộ thư viện HAL để thiết kế ra các đoạn chương trình giao tiếp giữa vi điều khiển và các module cảm biến.
Hệ thống sau khi hoàn thành vẫn còn một số lỗi về đi dây PCB, bên cạnh đó vẫn chương hoàn chỉnh được phần code cho tất cả các module.
5.2.NHẬN XÉT VÀ ĐÁNH GIÁ
− Hệ thống hoàn thiện sau 15 tuần nguyên cứu và thi công đã đáp ứng và hoàn thành 90% mục tiêu do nhóm đề ra.
− Kit thực hành thi công có đầy đủ các khối nằm trên 1 mạch PCB. − Đã xây dựng một bộ chương trình lập trình chi tiết cho các module.
− 2 trên tổng số 13 module giao tiếp với vi điều khiển vẫn chưa hoàn thiện code vì chưa tìm thấy thư viện phù hợp với bộ thư viện HAL, bao gồm: module cảm biến nhiệt độ DS18B20 và module MAX30100.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 108
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1.KẾT LUẬN
Với mục tiêu ban đầu là thiết kế và thi công Kit lập trình vi điều khiển ARM kết hợp cảm biến y sinh, đồ án tốt nghiệp đã được hoàn thành theo mục tiêu đề ra và dựa vào các nội dung của đề cương ban đầu. Kit lập trình đã đáp ứng đủ các khối chức năng ban đầu đề ra như: khối led đơn, khối led 7 đoạn quét, khối LCD, khối ma trận phím, khối nút nhấn, khối thời gian thực, khối điều khiển tốc độ động cơ, cảm biến SPO2, cảm biến nhịp tim. Ngoài ra Kit còn có thêm các khối chức năng như: Cảm biến nồng độ cồn, cảm biến nhiệt độ LM35, cảm biến nhiệt độ DS18B20, cảm biến siêu âm, đó là phần phát triển hơn so với mục tiêu. Các khối chức năng sau khi lập trình chạy ổn định. Nhóm đã thiết kế các bài tập mẫu cho từng khối chức năng, đáp ứng nhu cầu tìm hiểu và học tập. Tóm lại, cơ bản dồ án tốt nghiệp đã được hoàn thành ở mức khá so với mục tiêu đã đề ra ban đầu.
6.2.HƯỚNG PHÁT TRIỂN
Từ trong quá trình thực hiện cho đến khi hoàn thành đề tài, nhóm còn nhiều điều cần cải thiện cho Kit lập trình và sẽ định hướng phát triển về sau. Những điều nhóm đề ra bao gồm:
− Sử dụng các thư viện khác để lập trình cho bộ kit ngoài thư viện HAL đã sử dụng như Standard Peripheral Library, lập trình hợp ngữ,…
− Lấy được dữ liệu từ cảm biến MAX30100 bằng cách sử dụng một vi điều khiển Arduino để tận dụng thư viện có sẵn cho MAX30100 và thực hiện lấy dữ liệu từ Arduino về Kit STM32F4.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 109
TÀI LIỆU THAM KHẢO Sách tham khảo
[1] Nguyễn Đình Phú, “Giáo trình Vi xử lí ”, Trường ĐHSPKT, Tp.HCM, 2013. [2] Tổng quang về arduino, https://www.arduino.cc, truy cập ngày 08/05/2020. [3] Sử dụng cảm biến trong y học, Tạp chí tự động hóa ngày nay, số 113, 2010
[4] Nguyễn Tâm Phúc, “Thiết kế kit thực hành vi điều khiển ARM – Cortex M0”, Đồ án tốt nghiệp, Trường ĐH công nghiệp, TP.HCM, 2016.
[5] Phạm Quang Minh, Hồ Văn Trọng, “Thiết kế thi công bộ thí nghiệm vi xử lý giao tiếp kit Intel Galileo” , Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, 2018.
[6] Phạm Văn Khích, “Thiết kế bộ thí nghiệm PIC 18F2455/2550/5555/4550”, NCKH cấp trường, trường ĐHSPKT, TP.HCM, 2008.
[7] Trần Anh Đề, Trần Sơn Lành, “Hệ thống điểm danh bằng vân tay ứng dụng
vi điều khiển ARM”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, tháng 7 năm 2016. [8] “ARM Discloses Technical Details Of The Next Version Of The ARM Architecture” (Thông cáo báo chí). ARM Holdings, 27 tháng 10 năm 2011.
[9] Fitzpatrick, J. (2011). “An Interview with Steve Furber”. Communications of the ACM.
[10] Trương Xuân Thắng, “Giao tiếp với vi điều khiển ARM”, Hà Nội, 2011.
[11] Lõi tùy chỉnh trong thế giới Arm, http://oss.gov.vn, truy cập ngày 08/05/2020. [21] Anshul_Aggarwal, “Introduction to Visual Studio”, geeksforgeeks.org, truy cập 2/6/2020.