Hcmute thiết kế và thi công kit lập trình arm kết hợp cảm biến y sinh

157 5 0
Hcmute thiết kế và thi công kit lập trình arm kết hợp cảm biến y sinh

Đang tải... (xem toàn văn)

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

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG KIT LẬP TRÌNH ARM KẾT HỢP CẢM BIẾN Y SINH S K C 0 9 MÃ SỐ: SV2021 - 40 S KC 0 9 Tp Hồ Chí Minh, tháng 10/2021 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG KIT LẬP TRÌNH ARM KẾT HỢP CẢM BIẾN Y SINH SV2021 - 40 Chủ nhiệm đề tài : Lê Kim Tĩnh TP Hồ Chí Minh, 10/2021 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CƠNG KIT LẬP TRÌNH ARM KẾT HỢP CẢM BIẾN Y SINH SV2021 - 40 Thuộc nhóm ngành khoa học : Kĩ thuật SV thực : Lê Kim Tĩnh Dân tộc: Kinh Lớp, khoa: 171290 , Điện-Điện tử Ngành học: Kĩ thuật Y sinh Nam, Nữ: Nam Năm thứ:04 /Số năm đào tạo: 04 Người hướng dẫn: Thạc sĩ Nguyễn Thanh Nghĩa TP Hồ Chí Minh, 10/2021 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Luan van MỤC LỤC MỤC LỤC i DANH MỤC BẢNG .v DANH MỤC HÌNH ẢNH vi DANH MỤC TỪ VIẾT TẮT x MỞ ĐẦU a TỔNG QUAN b LÝ DO CHỌN ĐỀ TÀI .1 c MỤC TIÊU d PHƯƠNG PHÁP NGHIÊN CỨU .2 e ĐỐI TƯỢNG NGHIÊN CỨU f PHẠM VI NGHIÊN CỨU Chương CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU 1.2 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM 1.3 VI ĐIỀU KHIỂN STM32F407VE 1.4 GIỚI THIỆU PHẦN CỨNG 20 1.5 GIỚI THIỆU PHẦN MỀM LẬP TRÌNH 32 Chương TÍNH TOÁN VÀ THIẾT KẾ 33 2.1 GIỚI THIỆU 33 2.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG .33 2.2.1 Sơ đồ khối hệ thống .33 2.2.2 Nhiệm vụ chức khối 33 Chương THI CÔNG HỆ THỐNG .48 3.1 GIỚI THIỆU 48 3.2 THI CÔNG HỆ THỐNG 48 3.3 ĐÓNG GÓI BỘ ĐIỀU KHIỂN .59 Chương THIẾT KẾ CÁC BÀI THỰC HÀNH 62 4.1 PHẦN MỀM LẬP TRÌNH STM32CUBEMX 62 4.1.2 Hướng dẫn sử dụng phần mềm 62 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 i Luan van 4.1.3 Cấu trúc chương trình main.c 66 4.2 CẤU HÌNH XUNG CLOCK CHO VI ĐIỀU KHIỂN 72 4.3 Điều khiển LED đơn 75 4.3.1 Sơ đồ phần cứng 75 4.3.2 Cấu hình chân cho vi điều khiển 75 4.3.3 Bài tập mẫu 76 4.4 GIAO TIẾP NÚT NHẤN ĐƠN VÀ MA TRẬN PHÍM 77 4.4.1 Sơ đồ phần cứng 77 4.4.2 Cấu hình chân cho vi điều khiển 77 4.4.3 Bài tập mẫu 78 4.5 GIAO TIẾP VỚI MODULE LED ĐOẠN 82 4.5.1 Sơ đồ phần cứng 82 4.5.2 Cấu hình chân cho vi điều khiển 83 4.5.3 Bài tập mẫu 83 4.6 GIAO TIẾP VỚI LED MATRIX 86 4.6.1 Sơ đồ phần cứng 86 4.6.2 Cấu hình cho vi điều khiển 87 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ấu hình chân cho vi điều khiển 91 4.7.3 Các hàm sử dụng 91 4.7.4 Bài tập mẫu 95 4.8 ĐIỀU KHIỂN ĐỌC CẢM BIẾN LM35 96 4.8.1 Sơ đồ phần cứng 96 4.8.2 Cấu hình chân cho vi điều khiển 96 4.8.3 Bài tập mẫu 97 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 Cấu hình chân cho vi điều khiển .101 4.9.3 Bài tập mẫu 102 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 ii Luan van 4.10 ĐỌC NHIỆT ĐỘ CẢM BIẾN DS18B20 103 4.10.1 Sơ đồ phần cứng 103 4.10.2 Cấu hình cho vi điều khiển 104 4.10.3 Bài tập mẫu 104 4.11 ĐIỀU KHIỂN MODULE THỜI GIAN THỰC DS3231 106 4.11.1 Sơ đồ phần cứng 106 4.11.2 Cấu hình chân vi điều khiển 106 4.11.3 Các hàm sử dụng .107 4.11.4 Bài tập mẫu 108 4.12 ĐỌC DỮ LIỆU CẢM BIẾN MLX90614 111 4.12.1 Sơ đồ phần cứng 111 4.12.2 Cấu hình chân vi điều khiển 111 4.12.3 Bài tập mẫu 111 4.13 ĐỌC DỮ LIỆU CẢM BIẾN NỒNG ĐỘ CỒN MQ3 111 4.13.1 Sơ đồ phần cứng 111 4.13.2 Cấu hình chân vi điều khiển 111 4.13.3 Bài tập mẫu 111 4.13.4 Bài tập mẫu 112 4.14 ĐIỀU KHIỂN MODULE HC06 .114 4.14.1 Sơ đồ phần cứng 114 4.14.2 Cấu hình chân cho vi điều khiển .114 4.14.3 Các lệnh AT command 115 4.14.4 Cấu hình chân cho vi điều khiển .116 4.14.5 Bài tập mẫu 116 4.15 ĐIỀU KHIỂN MODULE NRF24L01 117 4.15.1 Sơ đồ phần cứng 117 4.15.2 Cấu hình cho vi điều khiển 118 4.15.3 Các hàm sử dụng .119 4.15.4 Bài tập mẫu 127 4.16 ĐIỀU KHIỂN MODULE ESP8266 129 4.16.1 Sơ đồ phần cứng 129 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 iii Luan van 4.16.2 Cấu hình chân cho vi điều khiển 129 4.16.3 Các thư viện sử dụng .130 4.16.4 Bài tập mẫu 135 KẾT LUẬN VÀ KIẾN NGHỊ .138 a KẾT LUẬN .138 b KIẾN NGHỊ 138 TÀI LIỆU THAM KHẢO 139 PHỤC LỤC 141 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 iv Luan van DANH MỤC BẢNG Bảng 1.1: Sơ đồ nhớ Bảng 1.2: Địa giới hạn ngoại vi 10 Bảng 3.1: Danh sách linh kiện 50 Bảng 4.1: Giá trị Baud rate 115 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 v Luan van DANH MỤC HÌNH ẢNH Hình 1.1: Cấu trúc vi điều khiển ARM .4 Hình 1.2: Cấu trúc lõi ARM Cortex M0 .6 Hình 1.3: Các phiên ARM Cortex-A Hình 1.4: Các phiên ARM Cortex – R Hình 1.5: Các phiên ARM Cortex-M Hình 1.6: Sơ đồ cấu trúc khối STM32F407 Hình 1.7: Cảm biến nhịp tim nồng độ oxy máu MAX30102 20 Hình 1.8: Cảm biến nhiệt độ DS18B20 21 Hình 1.9: Cảm biến nhiệt độ LM35 22 Hình 1.10: Cảm biến siêu âm HC- SR04 .23 Hình 1.11: Cảm biến nồng độ cồn MQ3 23 Hình 1.12: Cảm biến màu sắc TSC34725 24 Hình 1.13: Arduino Nano 25 Hình 1.14: Sơ đồ chân Arduino Nano 25 Hình 1.15: Cảm biến Nhiệt MLX90614 .26 Hình 1.16: Module phát Bluetooth HC-06 26 Hình 1.17: Module thu phát NRF24L01 .27 Hình 1.18: Module thu phát Wifi ESP ESP8266-01 28 Hình 1.19: Cảm biến nhịp tim Pulse Sensor 29 Hình 1.20: Màn hình TFT LCD 29 Hình 1.21: IC L298 .30 Hình 1.22: Sơ đồ chân IC MAX7219 31 Hình 1.23: IC DS3231 32 Hình 2.1: Sơ đồ khối hệ thống .33 Hình 2.2: Sơ đồ nguyên lý khối nguồn 34 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 vi Luan van Hình 2.3: Sơ đồ nguyên lý khối LED đơn 35 Hình 2.4: Sơ đồ nguyên lý khối LED đoạn 36 Hình 2.5: Sơ đồ nguyên lý khối LED Matrix 36 Hình 2.6: Sơ đồ nguyên lý khối LCD TFT 37 Hình 2.7: Sơ đồ nguyên lý khối động DC 38 Hình 2.8: Sơ đồ nguyên lý khối Realtime 38 Hình 2.9: Sơ đồ nguyên lý nút nhấn 39 Hình 2.10: Sơ đồ nguyên lý Module Bluetooth HC-06 40 Hình 2.11: Sơ đồ nguyên lý Module Wifi esp8266 40 Hình 2.12: Sơ đồ nguyên lý Module RF NRF24l01 40 Hình 2.13: Sơ đồ nguyên lý cảm biến MQ-3 41 Hình 2.14: Sơ đồ nguyên lý cảm biến LM35 42 Hình 2.15: Sơ đồ nguyên lý cảm biến DS18b20 42 Hình 2.16: Sơ đồ nguyên lý cảm biến MLX90614 42 Hình 2.17: Sơ đồ nguyên lý cảm biến Pulse sensor 43 Hình 2.18: Sơ đồ nguyên lý cảm biến MAX30102 44 Hình 2.19: Sơ đồ nguyên lý cảm biến TCS34725 44 Hình 2.20: Sơ đồ nguyên lý cảm biến HC-SR04 45 Hình 2.21: Sơ đồ nguyên lý Kết nối NI-CONECTER 45 Hình 2.22: Sơ đồ ngun lý tồn mạch .47 Hình 3.1: Sơ đồ mạch in PCB .49 Hình 3.2: Sơ đồ linh kiện mạch PCB 50 Hình 3.3: Sơ đồ bố trí linh kiện mặt .53 Hình 3.4: Mạch PCB hoàn thiện 53 Hình 3.5: Lắp ráp khối nguồn 53 Hình 3.6: Lắp ráp khối led đoạn .54 Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 10/10/2021 vii Luan van HAL_Init(); MX_GPIO_Init(); MX_SPI1_Init(); NRF24_Init(); NRF24_TxMode(TxAddress, 10); NRF24_ReadAll(data); while (1) { if (NRF24_Transmit(TxData) == 1) { HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_2); } HAL_Delay(1000); } } c Tiến hành biên dịch nạp d Quan sát kết quả: Bạn quan sát LED ở PIN_E2 chớp tắt việc truyền liệu module diễn thành công Bài tập 014: Chương trình điều khiển module NRF24L01 hoạt động ở chế độ Rx mode, nhận liệu đến thiết bị khác Lưu file chương trình: “Bai_014_NRT24L01_Rx_Mode” Mục đích: Cài đặt được module hoạt động ở chế đồ nhận liệu a Lưu đồ: b Chương trình: #include "main.h" #include "NRF24L01.h" uint8_t data[50]; uint8_t RxAddress[] = {0x00,0xDD,0xCC,0xBB,0xAA}; uint8_t RxData[32]; int main(void) { Số hiệu:HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét:00 Ngày hiệu lực: 10/10/2021 Trang:128/141 Luan van HAL_Init(); MX_GPIO_Init(); MX_SPI1_Init(); NRF24_Init(); NRF24_RxMode(RxAddress, 10); NRF24_ReadAll(data); while (1) { if (isDataAvailable(2) == 1) { NRF24_Receive(RxData); } } c Tiến hành biên dịch nạp d Quan sát kết quả: Dữ liệu nhận về được gán vào biến RxData sinh viên hiển thị kết lên hình LCD TFT để quan sát 4.16 ĐIỀU KHIỂN MODULE ESP8266 4.16.1 Sơ đồ phần cứng Mạch giao tiếp vi điều khiển với module ESP8266 hình: Hình 4.35: Sơ đồ mạch nguyên lý giao tiếp giữa vi điều khiển module ESP8266 4.16.2 Cấu hình chân cho vi điều khiển Hai chân Tx Rx module ESP8266 lần lượt được giao tiếp với chân PA3 PA2 vi điều khiển Số hiệu:HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét:00 Ngày hiệu lực: 10/10/2021 Trang:129/141 Luan van Hình 4.36: Cấu hình chân giao tiếp với module ESP8266 Cấu hình thơng số UART2 vi điều khiển hình Trong mục NVIC Settings đánh dấu tích vào UART2 global interrupt 4.16.3 Các thư viện sử dụng Chương trình thư viện sử dụng cho module ESP8266 được lưu với tên file “ESP8266_HAL.h” “ESP8266_HAL.c” cần sử dụng bạn copy thư mục paste lần lượt vào folder Inc Src Project Chương trình ESP8266_HAL.c khởi tạo websever giao diện điều khiển bật tắt LED A0 cung cấp hàm cho module ESP hoạt động #include "UartRingbuffer_multi.h" #include "ESP8266_HAL.h" #include "stdio.h" #include "string.h" extern UART_HandleTypeDef huart1; extern UART_HandleTypeDef huart2; #define pc_uart &huart1 #define wifi_uart &huart2 Số hiệu:HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét:00 Ngày hiệu lực: 10/10/2021 Trang:130/141 Luan van char buffer[20]; char *Basic_inclusion = " \n\n\ LED CONTROL\nhtml { font-family: Helvetica; \ display: inline-block; margin: 0px auto; text-align: center;}\n\ body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\ h3 {color: #444444;margin-bottom: 50px;}\n.button {display: block;\ width: 80px;background-color: #1abc9c;border: none;color: white;\ padding: 13px 30px;text-decoration: none;font-size: 25px;\ margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n\ button-on {background-color: #1abc9c;}\n.button-on:active \ {background-color: #16a085;}\n.button-off {background-color: #34495e;}\n\ button-off:active {background-color: #2c3e50;}\np {font-size: 14px;color: #888;margin-bottom: 10px;}\n\ \n\n\nESP8266 LED CONTROL\n"; char *LED_ON = "

LED Status: ON

OFF"; char *LED_OFF = "

LED1 Status: OFF

ON"; char *Terminate = ""; /******************************************************************* ******************************************************************/ void ESP_Init (char *SSID, char *PASSWD) { char data[80]; Ringbuf_init(); Uart_sendstring("AT+RST\r\n", wifi_uart); Uart_sendstring("RESETTING.", pc_uart); for (int i=0; i

Ngày đăng: 02/02/2023, 10:15

Tài liệu cùng người dùng

Tài liệu liên quan