0

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

118 1 0
  • 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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 25/11/2021, 11:30

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 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 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 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 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 MỤC LỤC TRANG BÌA i NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN v LỜI CẢM ƠN vi MỤC LỤC vii DANH MỤC HÌNH ẢNH xi DANH MỤC BẢNG xiii DANH MỤC VIẾT TẮT xiv TÓM TẮT xv Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ .1 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN .3 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM 2.1.1 Lịch sử hình thành phát triển ARM 2.1.2 Cấu trúc ARM 2.1.3 Các dòng phiên ARM 2.1.4 Các hãng sản xuất dòng chip ARM 2.2 GIỚI THIỆU VỀ PHẦN CỨNG 2.2.1 Cảm biến nhiệt LM35 .9 2.2.2 Cảm biến khoảng cách HC-SR04 10 2.2.3 Cảm biến nồng độ cồn MQ-3 .12 2.2.4 Cảm biến nhịp tim và SpO2 MAX30100 .14 2.2.5 Cảm biến nhịp tim Pulse Sensor 15 2.2.6 Cảm biến nhiệt độ DS18B20 16 2.2.7 IC dịch 74HC595 18 2.2.8 IC thời gian thực DS3231 .20 vii 2.2.9 Động DC 21 2.2.10 Màn hình TFT LCD 22 2.2.11 Chuẩn giao tiếp I2C 23 2.2.12 Chuẩn giao tiếp SPI 24 2.2.13 Bộ xử lý trung tâm STM32F4VET6 25 2.3 GIỚI THIỆU VỀ PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN 33 2.4 PHẦN MỀM HỆ ĐIỀU HÀNH THỜI GIAN THỰC RTOS 34 Chương TÍNH TỐN, THIẾT KẾ VÀ THI CƠNG 35 3.1 GIỚI THIỆU .35 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 35 3.2.1 Thiết kế sơ đồ khối hệ thống 35 3.2.2 Chức khối 35 3.3 THI CÔNG HỆ THỐNG 42 3.3.1 Thi công board mạch 42 3.3.2 Lắp ráp thi cơng mơ hình 45 Chương THIẾT KẾ CÁC BÀI THỰC HÀNH 47 4.1 PHẦN MỀM LẬP TRÌNH STM32CUBEIDE 47 4.1.1 Giới thiệu 47 4.1.2 Hướng dẫn sử dụng phần mềm .47 4.1.3 Cấu trúc chương trình main.c .52 4.2 HÌNH XUNG CLOCK CHO VI ĐIỀU KHIỂN 59 4.3 ĐIỀU KHIỂN LED ĐƠN 62 4.3.1 Sơ đồ phần cứng 62 4.3.2 Cấu hình chân cho vi điều khiển 62 4.3.3 Các hàm sử dụng 63 4.3.4 Bài tập mẫu 64 4.3.5 Các bài tập ứng dụng 68 4.4 GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED ĐƠN 68 4.4.1 Sơ đồ phần cứng 68 4.4.2 Cấu hình chân cho vi điều khiển 69 4.4.3 Bài tập mẫu 71 4.4.4 Các bài tập ứng dụng 77 4.5 GIAO TIẾP MA TRẬN PHÍM VÀ LED ĐƠN 78 viii 4.5.1 Sơ đồ phần cứng 78 4.5.2 Cấu hình chân cho vi điều khiển 78 4.5.3 Các hàm sử dụng 79 4.5.4 Bài tập mẫu 81 4.5.5 Các bài tập ứng dụng 83 4.6 MODULE LED ĐOẠN 83 4.6.1 Sơ đồ phần cứng 83 4.6.2 Các hàm sử dụng 85 4.6.3 Bài tập mẫu 87 4.7 ĐIỀU KHIỂN MODULE LCD TFT 90 4.7.1 Sơ đồ phần cứng 90 4.7.2 Các hàm sử dụng 90 4.7.3 Bài tập mẫu 94 4.7.4 Các bài tập ứng dụng 97 4.8 GIAO TIẾP LM35 VÀ TFT LCD 97 4.8.1 Sơ đồ phần cứng 97 4.8.2 Bài tập mẫu 97 4.8.3 Các bài tập ứng dụng 100 4.9 CẢM BIẾN KHOẢNG CÁCH HCR-04 101 4.9.1 Sơ đồ phần cứng 101 4.9.2 Bài tập mẫu 101 4.10 CẢM BIẾN NHỊP TIM PULSE SENSOR .103 4.10.1 Sơ đồ phần cứng .103 4.10.2 Bài tập mẫu .104 Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 106 5.1 KẾT QUẢ 106 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ 107 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 108 6.1 KẾT LUẬN .108 6.2 HƯỚNG PHÁT TRIỂN 108 TÀI LIỆU THAM KHẢO 109 ix x DANH MỤC HÌNH ẢNH Hình 2.1: Chip vi điều khiển ARM Hình 2.2: Cấu trúc lõi ARM Cortex M0 Hình 2.3: Các hãng sản xuất vi xử lý dựa thiết kế ARM Hình 2.4: Cảm biến nhiệt độ LM35 Hình 2.5: Cảm biến siêu âm HCSR04 11 Hình 2.6: Biểu đờ giai đoạn từ kích hoạt chân Trig đến thu sóng phản xạ 12 Hình 2.7: Cảm biến nờng độ cờn MQ-3 13 Hình 2.8: Cảm biến nhịp tim nờng độ oxy bão hòa máu MAX30100 .14 Hình 2.9: Cảm biến nhiệt độ DS18B20 17 Hình 2.10: Vỏ bên ngồi IC 74HC595 18 Hình 2.11: Sơ đờ chân IC 74HC595 .19 Hình 2.12: Cấu trúc ghi bên IC dịch 74HC595 19 Hình 2.13: Sơ đờ chân IC DS3231 20 Hình 2.14: Động DC 5V 22 Hình 2.15: Màn hình TFT LCD .22 Hình 2.16: Chuẩn giao tiếp I2C 24 Hình 2.17: Chuẩn giao tiếp SPI 25 Hình 2.18: Sơ đờ cấu trúc khối STM32F407 27 Hình 2.19: Giao diện phần mềm 33 Hình 3.1: Sơ đồ khối hệ thống .35 Hình 3.2: Sơ đồ nguyên lý mạch nguồn 36 Hình 3.3: Sơ đồ nguyên lý khối LED đơn .37 Hình 3.4: Sơ đồ nguyên lý khối ma trận phím 38 Hình 3.5: Sơ đồ nguyên lý khối nhiệt độ LM35 38 Hình 3.6: Sơ đồ nguyên lý khối cảm biến nhịp tim .39 Hình 3.7: Sơ đồ nguyên lý khối cảm biến siêu âm 40 Hình 3.8: Sơ đồ nguyên lý khối cảm biến nhịp tim và SpO2 40 Hình 3.9: Sơ đồ nguyên lý khối nồng độ cồn 41 Hình 3.10: Sơ đồ nguyên lý khối LCD TFT 42 Hình 3.11: Sơ đồ bố trí linh kiện KIT .43 Hình 3.12: Sơ đồ mạch in PCB mặt .43 Hình 3.13: Sơ đồ mạch in PCB mặt 44 Hình 3.14: Mạch sau thi công 45 Hình 4.1: Biểu tượng phần mềm STM32CubeIDE .47 Hình 4.2: Giao diện khởi động phần mềm 48 Hình 4.3: Chọn họ vi điều khiển 48 Hình 4.4: Gõ tên Project 49 Hình 4.5: Giao diện file.ioc cấu hình chân cho vi điều khiển 50 Hình 4.6: Cửa sổ Question sinh code 50 Hình 4.7: Cửa sổ soạn thảo chương trình STM32CubeIDE 51 Hình 4.8: Cửa sổ hiển thị biên dịch xong 51 Hình 4.9: Cửa sổ cấu hình Debugger 52 Hình 4.10: Cửa sổ hiển thị nạp code thành công 52 Hình 4.11: Cấu hình chân dao động thạch anh ngoài cho vi điều khiển .59 Hình 4.12: Cấu hình Clock cho vi điều khiển 60 xi Hình 4.13: Chương trình cấu hình Clock cho hệ thống 61 Hình 4.14: Sơ đồ nguyên lý giao tiếp vi điều khiển với module led đơn 62 Hình 4.15: Cấu hình port cho led đơn CubeMX .63 Hình 4.16: Phần code sinh từ CubeMX 63 Hình 4.17: Lưu đồ điều khiển led chớp tắt 65 Hình 4.18: Lưu đồ điều khiển led sáng tắt dần 67 Hình 4.19: Sơ đồ nguyên lý giao tiếp vi điều khiển với nút nhấn đơn .68 Hình 4.20: Cấu hình port cho nút nhấn đơn 69 Hình 4.21: Code cấu hình cho nút nhấn đơn 70 Hình 4.22: Lưu đồ điều khiển led nút nhấn ON và OFF 72 Hình 4.23: Lưu đồ điều khiển led sáng tắt nút ON OFF và INV 73 Hình 4.24: Lưu đồ điều khiển led sáng tắt nút ON OFF và INV – chống dội 75 Hình 4.25: Sơ đồ nguyên lý giao tiếp vi điều khiển với ma trận phím 4x4 78 Hình 4.26: Cấu hình port cho ma trận phím 78 Hình 4.27: Code cấu hình cho ma trận phím 79 Hình 4.28: Sơ đồ nguyên lý giao tiếp vi điều khiển với module led đoạn 84 Hình 4.29: Lưu đồ điều khiển led sáng từ đến module led đoạn 89 Hình 4.30: Sơ đồ nguyên lý giao tiếp TFT LCD và vi điều khiển 90 Hình 4.31: Sơ đồ nguyên lý giao tiếp vi điều khiển và cảm biến LM35 97 Hình 4.32: Lưu đồ chuyển đổi ADC để đọc nhiệt độ từ cảm biến LM35 99 Hình 4.33: Sơ đồ nguyên lý cảm biến siêu âm 101 Hình 4.34: Sơ đồ nguyên lý cảm biến nhịp tim 103 xii DANH MỤC BẢNG Bảng 2.1: Sơ đồ nhớ 28 Bảng 2.2: Địa giới hạn ngoại vi 28 Bảng 2.3: Tập lệnh thao tác với ghi .30 Bảng 3.1: Danh sách linh kiện 44 Bảng 4.1: Bảng liệu điều khiển quét transistor 85 xiii DANH MỤC VIẾT TẮT SPI Serial Peripheral Interface MOSI Master Out Slave In MISO Master In Slave Out SS Slave Select VDK Vi điều khiển I2C Inter-Integrated Circuit SDA Serial Data SCK Serial Clock xiv TÓM TẮT Ứng dụng cảm biến y sinh vào ngành chăm sóc sức khỏe và đời sống hàng ngày là điều thiết yếu Đồng thời, để giúp sinh viên theo ngành Kỹ Thuật Y Sinh có cách tiếp cận cách trực quan loại cảm biến, nhóm chúng em định thực đề tài “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” Hoạt động dựa kết nối vào vi điều khiển và cảm biến với ngơn ngữ lập trình C nhằm thu thập liệu từ cảm biến thông qua vi điều khiển gửi liệu đến thiết bị đầu Mục tiêu đề tài là thi công mơ hình kit thực hành có đầy đủ cảm biến, vi điều khiển, module hiển thị, động board mạch PCB Thông qua kit thực hành này người sử dụng tạo bài thực hành, chạy thử nghiệm kit và ứng dụng vào sản phẩm hoàn chỉnh khác Kết đồ án, nhóm thi cơng hoàn chỉnh mơ hình kit sản phẩm gồm 10 module giao tiếp với vi điều khiển STM32F4VET6 và hệ thống bài thực hành dành cho người bắt đầu làm quen với kit xv CHƯƠNG TỔNG QUAN Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Hiện nay, lập trình với vi xử lý là kỹ cần có kỹ sư điện Sau học xong lý thuyết với mục đích tiếp cận thực tế lập trình điều khiển và ứng dụng vi điều khiển từ đến nâng cao Giúp ôn lại kiến thức học, rèn luyện kỹ lập trình, kỹ gỡ rối, kiểm tra, giám sát, phân tích, suy luận, đánh giá Hiện có nhiều kit giúp hỗ trợ sinh viên lập trình “Kit thực hành vi điều khiển PIC” Ths Nguyễn Đình Phú Trong sử dụng vi điều khiển PIC 18F4550 để điều khiển Module khác Các bài lập trình thiết kế từ đến nâng cao Kết hợp phần cứng với phần mềm để phát huy tối đa kỹ lập trình [1] Trên thị trường có nhiều loại kit lập trình, phổ biến là kit Arduino Arduino tảng mã nguồn mở phần cứng và phần mềm Phần cứng bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model tại trang bị gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác Với cộng đồng lớn, người lập trình tiếp cận dễ dàng, giải đáp thắc mắc, thư viện rộng mở từ phát triển đề tài nhân nâng cao kỹ lập trình [2] Những công nghệ trước sử dụng công nghiệp ứng dụng y tế, và tương lai, cảm biến và hệ thống cảm biến dựa hệ thống điện vi mô thiết kế và chứng nhận, công nghệ khác thích nghi với ứng dụng y học Sự giao thoa công nghệ thông tin và công nghệ sinh học ngành y ngày càng mở rộng và vai trò cản biến ngày càng tăng, nhận tín hiệu, tác động, máy mini ngày càng phổ biến Một vài hệ cảm biến y học vai trò mà thiết bị này có mặt vấn đề chăm sóc sức khỏe [3] Nhận thấy tầm quan trọng nên việc khảo sát, tìm hiểu vi điều khiển nhiều cấp độ khác từ đơn giản đến phức tạp là cần thiết Vì có nhiều đề tài, đồ án tốt nghiệp, thí nghiệm liên quan đến vi điều khiển để phục vụ việc học tập, thực hành, nghiên cứu sinh viên ví dụ như: Nguyễn Tâm Phúc, năm 2016, đề tài BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH b Lưu đồ và giải thích lưu đồ: c Chương trình: #include "main.h" #include "tft_spi.h" int main(void) { tft_init(); tft_clear(WHITE); BACK_COLOR=RED; POINT_COLOR=BLACK; tft_puts14x24(50,1,(int8_t*)"DO AN TOT NGHIEP",TFT_STRING_MODE_NO_BACKGROUND); tft_puts14x24(100,1,(int8_t*)"MAC DUY TAN",TFT_STRING_MODE_NO_BACKGROUND); tft_puts14x24(150,1,(int8_t*)"DUONG THANH TOAN",TFT_STRING_MODE_NO_BACKGROUND); tft_puts14x24(200,1,(int8_t*)"TFT LCD",TFT_STRING_MODE_NO_BACKGROUND); while (1) { } } d Tiến hành biên dịch và nạp e Quan sát kết quả: Bạn thay đổi ký tự tùy ý f Giải thích chương trình: BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 95 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH Bài mẫu 502 Chương trình đếm 00 đến 99 TFT LCD font 14x24 Lưu tên file là “mau_502_tft_lcd_hien_thi_00_99” a Mục đích: biết cách viết chương trình hiển thị số màn hình TFT LCD b Lưu đồ và giải thích lưu đồ: c Chương trình: #include "main.h" #include "tft_spi.h" uint8_t i=0; char buffer[40]; int main(void) { tft_init(); tft_clear(WHITE); BACK_COLOR=WHITE; POINT_COLOR=BLACK; tft_puts14x24(50,1,(int8_t*)"DEM SO:",TFT_STRING_MODE_NO_BACKGROUND); while (1) { sprintf(buffer,"%2d",i); tft_puts26x48(100,1,(int8_t*)buffer,TFT_STRING_MODE_BACKGROUN D); tft_puts14x24(50,1,(int8_t*)"DEM SO:",TFT_STRING_MODE_NO_BACKGROUND); i++; if(i==100) i=0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 96 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH HAL_Delay(100); } } d Tiến hành biên dịch và nạp e Quan sát kết quả: Bạn thay đổi ký tự tùy ý f Giải thích chương trình: 4.7.4 Các tập ứng dụng Bài tập 501 Chương trình đếm giờ, phút, giây TFT LCD font 14x24 Lưu tên file là “bt_501_tft_lcd_hien_thi_gio_phut_giay” 4.8 GIAO TIẾP LM35 VÀ TFT LCD 4.8.1 Sơ đồ phần cứng Mạch điện giao tiếp vi điều khiển với màn hình LCD TFT hình 4.31 Hình 4.31: Sơ đồ nguyên lý giao tiếp giữa vi điều khiển cảm biến LM35 4.8.2 Bài tập mẫu Phần này thực hành ADC và cảm biến nhiệt LM35 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 97 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH ADC dùng để chuyển đổi điện áp tương tự từ cảm biến LM35 nên ta phải biết hệ số chuyển đổi cảm biến Cảm biến LM35 có nhiều loại: LM35C và LM35D: loại LM35C tầm đo từ 40ºC đến 110 ºC và LM35D tầm đo từ 0ºC đến 100 ºC Dòng tiêu thụ cảm biến với nguồn cung cấp 5VDC 50µA Hệ số chuyển đổi tuyến tính nhiệt độ thay đổi 1ºC điện áp thay đổi 10mV Tính tốn độ phân giải ADC: SSADC = 𝑉𝑅𝐸𝐹+ −𝑉𝑅𝐸𝐹− 210 −1 = 𝑉𝑅𝐸𝐹+ −𝑉𝑅𝐸𝐹− 1023 (4.1) Độ phân giải ADC phải độ phân giải cảm biến 10mv: SSLM 35 =10mV Điện áp tham chiếu ADC vi điều có VREF+ =3.3V và VREF-=0V Khi độ phân giải ADC là: SS = 𝑉𝑅𝐸𝐹+ −𝑉𝑅𝐸𝐹− 210 −1 = 3300𝑚𝑉−0 1023 = 3.2mV (4.2) Cảm biến LM35 có nhiều loại: LM35C và LM35D: loại LM35C tầm đo từ 40ºC đến 110 ºC và LM35D tầm đo từ 0ºC đến 100 ºC Dòng tiêu thụ cảm biến với nguồn cung cấp 5VDC là 50µA Hệ số chuyển đổi tuyến tính nhiệt độ thay đổi 1ºC điện áp thay đổi 10mV Độ phân giải ADC là 3.2mV khơng tương thích độ phân giải cảm biến LM35 10mV, tỉ lệ chênh lệch là: 10𝑚𝑉 3.2𝑚𝑉  3.125 Để tính kết lấy kết nhận từ ADC chia cho tỉ lệ chênh lệch Bài mẫu 601 Chương trình đo nhiệt độ hiển thị LCD TFT đoạn dùng ADC1 vi điều khiển Lưu tên file là “mau_601_lm35a” a Mục đích: biết sử dụng cảm biến nhiệt LM35, lập trình ADC để đo và hiển thị nhiệt độ màn hình LCD TFT b Lưu đồ và giải thích lưu đồ: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 98 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH Hình 4.32: Lưu đồ chuyển đổi ADC để đọc nhiệt độ từ cảm biến LM35 c Chương trình: #include "main.h" #include "tft_spi.h" uint16_t adc_value,lm35; char buffer[40]; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { if(hadc->Instance==hadc1.Instance) { adc_value=HAL_ADC_GetValue(hadc); } } int main(void) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 99 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH HAL_ADC_Start_IT(&hadc1); tft_init(); tft_clear(WHITE); BACK_COLOR=WHITE; POINT_COLOR=BLACK; tft_puts14x24(50,1,(int8_t*)"Nhiet LM35:",TFT_STRING_MODE_NO_BACKGROUND); while (1) { lm35 = adc_value/3; sprintf(buffer,"%2d",lm35); tft_puts26x48(100,1,(int8_t*)buffer,TFT_STRING_MODE_BACKGROUND ); tft_puts26x48(100,60,(int8_t*)"*C",TFT_STRING_MODE_NO_BACKGROU ND); } } d Tiến hành biên dịch và nạp e Quan sát kết quả: f Giải thích chương trình: Chương trình void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) có tác dụng ADC chuyển đổi xong kiểm tra xem có ngắt xảy khơng và biến adc_value nhận giá trị trả từ ADC Lệnh HAL_ADC_Start_IT(&hadc1); khởi động ngắt cho ADC1 4.8.3 Các tập ứng dụng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 100 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH Bài tập 601 Chương trình đo nhiệt độ kênh hiển thị LCD TFT dùng ADC trung bình 100 lần Có hiển thị giá trị cài đặt trước (GTCDT) để báo động, giá trị thấp là 35 độ, lớn là 60 độ, điều chỉnh nút nhấn UP DW Khi giá trị đo lớn GTCDT tắt đèn và báo động, nhiệt độ giảm nhỏ GTCDT tắt báo động và nhỏ GTCDT-5 gia nhiệt Lưu tên file là “bt_601_lm35_up_dw” 4.9 CẢM BIẾN KHOẢNG CÁCH HCR-04 4.9.1 Sơ đồ phần cứng Mạch điện giao tiếp vi điều khiển với cảm biến HCR-04 hình 33 Hình 4.33: Sơ đồ nguyên lý cảm biến siêu âm 4.9.2 Bài tập mẫu Bài mẫu 701 Chương trình đo khoảng cách hiển thị LCD TFT Lưu tên file là “mau_701_hcr04” a Mục đích: biết sử dụng cảm biến khoảng cách, lập trình ADC để đo và hiển thị nhiệt độ màn hình LCD TFT b Lưu đồ và giải thích lưu đồ: c Chương trình: BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 101 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH #include "main.h" #include "tft_spi.h" #include "dwt_stm32_delay.h" uint8_t i=0; char buffer[40]; uint32_t time; uint16_t distance,distance_r,n; int Read_HCSR04() { int local_time = 0; HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_SET); DWT_Delay_us(10); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_RESET); while(!HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_4)); while(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_4)) { local_time++; DWT_Delay_us(1); } return local_time; } int main(void) { tft_init(); tft_clear(WHITE); BACK_COLOR=WHITE; POINT_COLOR=BLACK; tft_puts14x24(50,1,(int8_t*)"Khoang cach:",TFT_STRING_MODE_NO_BACKGROUND); tft_puts26x48(100,80,(int8_t*)"cm",TFT_STRING_MODE_NO_BACKGROUND); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 102 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH sprintf(buffer,"%3d",300); tft_puts26x48(100,1,(int8_t*)buffer,TFT_STRING_MODE_BACKGROUND); while (1) { time = Read_HCSR04(); distance = time/58; if((distance0)) { sprintf(buffer,"%3d",distance); tft_puts26x48(100,1,(int8_t*)buffer,TFT_STRING_MODE_BACKGROUND ); tft_puts26x48(100,80,(int8_t*)"cm",TFT_STRING_MODE_NO_BACKGROU ND); } } } d Tiến hành biên dịch và nạp e Quan sát kết quả: f Giải thích chương trình: 4.10 CẢM BIẾN NHỊP TIM PULSE SENSOR 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 hình 4.35 Hình 4.34: Sơ đờ ngun lý cảm biến nhịp tim BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 103 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH 4.10.2 Bài tập mẫu Bài mẫu 801 Chương trình đo giá trị cảm biến Pulse Sensor hiển thị LCD TFT đoạn dùng ADC2 vi điều khiển Lưu tên file là “mau_801_pulse_sensor” 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 từ cảm biế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Ộ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 104 CHƯƠNG THIẾT KẾ CÁC BÀI THỰC HÀNH { 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ả: f Giải thích chương trình: BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH 105 CHƯƠNG KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1 KẾT QUẢ Sau thực xong đồ án tốt nghiệp, kết nhóm thu gần đạt u cầu đề Nhóm hoàn thành 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 Jack căm hình 5.36 Hình 5.1: Cấp ng̀n cho kit thực hành Sau nhấn nút bên nút nhấn và chạy thử đoạn chương trình cảm biến Pulse Sensor, kết hình 5.37 Hình 5.2: Chương trình cảm biến Pulse Sensor BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 106 CHƯƠNG KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ ❖ Sau quá trình làm việc nghiên cứu nhóm đã đạt số kết quả: − Có thể lập trình cho vi điều khiển STM32F4VET6 Nhóm có kiến thức dịng vi điều khiển STM32F4 và mở rộng kiến thức cho dịng tương tự STM32 − Có thể tính tốn, thiết kế và vẽ mạch điện Tính tốn, thiết kế và vẽ mạch là kỹ thiết yếu người học điện tử, qua đề tài nhóm biết vận dụng kiến thức học để để tính tốn và thiết kế mạch PCB theo u cầu − Biết cách lập trình phần mềm STM32CubeIDE Qua q trình làm việc nhóm có kiến thức 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à thư viện mở giúp người lập trình sử dụng cách dễ dàng mà không cần phải có nhiều kiến thức thao tác với ghi, dễ sử dụng với người bắt đầu Nhóm hiểu và sử dụng câu lệnh thư viện HAL để thiết kế đoạn chương trình giao tiếp vi điều khiển và module cảm biến Hệ thống sau hoàn thành số lỗi dây PCB, bên cạnh chương hoàn chỉnh phần code cho tất 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 thi cơng đáp ứng hồn thành 90% mục tiêu nhóm đề − Kit thực hành thi cơng có đầy đủ khối nằm mạch PCB − Đã xây dựng chương trình lập trình chi tiết cho module − tổng số 13 module giao tiếp với vi điều khiển chưa hoàn thiện code chưa tìm thấy thư viện phù hợp với 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 107 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương 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 thiết kế 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 hoàn thành theo mục tiêu đề dựa vào nội dung đề cương ban đầu Kit lập trình đáp ứng đủ khối chức ban đầu đề như: khối led đơn, khối led đ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 Kit cịn có thêm khối chức 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 so với mục tiêu Các khối chức sau lập trình chạy ổn định Nhóm thiết kế tập mẫu cho khối chức năng, đáp ứng nhu cầu tìm hiểu học tập Tóm lại, dồ án tốt nghiệp hoàn thành mức so với mục tiêu đề ban đầu 6.2 HƯỚNG PHÁT TRIỂN Từ trình thực 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 định hướng phát triển sau Những điều nhóm đề bao gồm: − Sử dụng thư viện khác để lập trình cho kit ngoài thư viện HAL sử dụng Standard Peripheral Library, lập trình hợp ngữ,… − Lấy liệu từ cảm biến MAX30100 cách sử dụng vi điều khiển Arduino để tận dụng thư viện có sẵn cho MAX30100 và thực lấy liệu từ Arduino Kit STM32F4 − Sử dụng port chưa sử dụng để mở rộng thêm nhiều module BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 108 PHỤ LỤC 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 arduino, https://www.arduino.cc, truy cập ngày 08/05/2020 [3] Sử dụng cảm biến 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 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ế 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 vân tay ứng dụng vi điều khiển ARM”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, tháng 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 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 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 109 ... TỐN, THI? ??T KẾ VÀ THI CƠNG Chương TÍNH TỐN, THI? ??T KẾ VÀ THI CƠNG 3.1 GIỚI THI? ??U Với đề tài ? ?Thi? ??t kế thi công kit lập trình vi điều khiển arm kết hợp cảm biến y sinh? ??, nhóm thi? ??t kế tính tốn sơ... tài ? ?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? ?? Hoạt động dựa kết nối vào vi điều khiển và cảm biến với ngơn ngữ lập trình C nhằm thu thập liệu từ cảm biến. .. thức học và tìm hiểu 1.2 MỤC TIÊU 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 là kit sử dụng vi điều khiển trung tâm là ARM STM32F4 với khối chức năng: khối
- Xem thêm -

Xem thêm: 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, 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