1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế và thi công KIT lập trình ARM kết hợp cảm biến y sinh

157 8 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết kế và thi công KIT lập trình ARM kết hợp cảm biến y sinh
Tác giả Lê Kim Tĩnh
Người hướng dẫn Thạc sĩ Nguyễn Thanh Nghĩa
Trường học Trường Đại học Sư phạm Kỹ thuật TP Hồ Chí Minh
Chuyên ngành Kỹ thuật Y sinh
Thể loại báo cáo tổng kết đề tài nghiên cứu khoa học của sinh viên
Năm xuất bản 2021
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 157
Dung lượng 8,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để có thể lập trình được vi điều khiển ARM cần có một phần mềm dễ dàng sử dụng mà STM32CubeMX là một trong những phần mềm nổi bật.. MỤC TIÊU Thiết kế và thi công Kit lập trình vi

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Trang 2

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

Chủ nhiệm đề tài : Lê Kim Tĩnh

TP Hồ Chí Minh, 10/2021

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

Trang 3

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 hiện : Lê Kim Tĩnh Nam, Nữ: Nam

Trang 4

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 1

a TỔNG QUAN 1

b LÝ DO CHỌN ĐỀ TÀI 1

c MỤC TIÊU 2

d PHƯƠNG PHÁP NGHIÊN CỨU 2

e ĐỐI TƯỢNG NGHIÊN CỨU 2

f PHẠM VI NGHIÊN CỨU 2

Chương 1 CƠ SỞ LÝ THUYẾT 3

1.1 GIỚI THIỆU 3

1.2 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM 3

1.3 VI ĐIỀU KHIỂN STM32F407VE 8

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 2 TÍNH TOÁN VÀ THIẾT KẾ 33

2.1 GIỚI THIỆU 33

2.2 TÍNH TOÁ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ụ và chức năng từng khối 33

Chương 3 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 4 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

Trang 5

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

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 7 Đ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

Trang 6

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

Trang 7

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

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

Trang 8

DANH MỤC BẢNG

Bảng 1.1: Sơ đồ bộ nhớ 9

Bảng 1.2: Địa chỉ giới hạn của các ngoại vi 10

Bảng 3.1: Danh sách các linh kiện 50

Bảng 4.1: Giá trị Baud rate 115

Trang 9

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

DANH MỤC HÌNH ẢNH

Hình 1.1: Cấu trúc cơ bản của 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 bản của ARM Cortex-A 7

Hình 1.4: Các phiên bản ARM Cortex – R 7

Hình 1.5: Các phiên bản của ARM Cortex-M 8

Hình 1.6: Sơ đồ cấu trúc các khối của STM32F407 9

Hình 1.7: Cảm biến nhịp tim và nồng độ oxy trong 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 của 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 của 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

Trang 10

Hình 2.3: Sơ đồ nguyên lý khối LED đơn 35

Hình 2.4: Sơ đồ nguyên lý khối LED 7 đ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 cơ 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ơ đồ nguyên lý toàn mạch 47

Hình 3.1: Sơ đồ mạch in PCB 49

Hình 3.2: Sơ đồ linh kiện trên mạch PCB 50

Hình 3.3: Sơ đồ bố trí linh kiện mặt trên 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 7 đoạn 54

Trang 11

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 viii

Hình 3.7: Lắp ráp khối led Matrix 54

Hình 3.8: Lắp ráp khối led đơn 55

Hình 3.9: Lắp ráp khối LCD TFT 55

Hình 3.10: Lắp ráp khối cảm biến nồng độ cồn và nhiệt độ 55

Hình 3.11: Lắp ráp khối cảm biến nhịp tin và SPO2 56

Hình 3.12: Lắp ráp khối cảm biến màu sắc và khối đo khoảng cách 56

Hình 3.13: Lắp ráp khối nút nhấn 56

Hình 3.14: Lắp ráp khối thời gian thực và SSR 57

Hình 3.15: Lắp ráp khối động cơ 57

Hình 3.16: Lắp ráp khối nạp 57

Hình 3.17: Lắp ráp các khối giao tiếp không dây 58

Hình 3.18: Lắp ráp khối nạp 58

Hình 3.19: Lắp ráp hoàn chỉnh Board mạch 59

Hình 3.20: Thiết kế phần thân của hộp 60

Hình 3.21: Thiết kế hộp đựng Kit 60

Hình 3.22: Thi công hộp đựng Kit 61

Hình 4.1: Biểu tượng phần mềm STM32CubeIDE 62

Hình 4.2: Giao diện khi khởi động phần mềm 63

Hình 4.3: Chọn họ vi điều khiển 63

Hình 4.4: Cấu hình cho vi điều khiển 64

Hình 4.5: Cấu hình xung cho vi điều khiển 64

Hình 4.6: Cửa sổ Project Manage 65

Hình 4.7: Cửa sổ hiển thị khi biên dịch xong 65

Hình 4.8: Cấu hình Clock cho vi điều khiển 74

Hình 4.9: Chương trình cấu hình Clock cho hệ thống 74

Hình 4.10: Sơ đồ nguyên lý giao tiếp vi điều khiển với module 8 led đơn 75

Trang 12

Hình 4.11: Cấu hình port cho 8 led đơn trong CubeMX 75

Hình 4.12: Sơ đồ nguyên lý giao tiếp vi điều khiển với ma trận phím 4x4 77

Hình 4.13: Cấu hình port cho nút nhấn đơn và ma trận phím 78

Hình 4.14: Sơ đồ nguyên lý giao tiếp vi điều khiển với module led 7 đoạn 83

Hình 4.15: Cấu hình port cho LED 7 đoạn 83

Hình 4.16: Sơ đồ nguyên lý giao tiếp vi điều khiển với module Led Matrix 86

Hình 4.17: Cấu hình port cho LED 7 Matrix 87

Hình 4.18: Sơ đồ nguyên lý giao tiếp giữa TFT LCD và vi điều khiển 90

Hình 4.19: Cấu hình giao tiếp SPI1 cho màn hình LCD TFT 91

Hình 4.20: Sơ đồ mạch nguyên lý giao tiếp giữa vi điều khiển và cảm biến LM35 96

Hình 4.21: Cấu hình chân ADC cho vi điều khiển 96

Hình 4.22: Cửa sổ Parameter Settings 97

Hình 4.23: Cửa sổ NVIC Setting 97

Hình 4.24: Sơ đồ nguyên lý cảm biến siêu âm 101

Hình 4.25: Sơ đồ mạch giao tiếp với cảm biến DS18B20 104

Hình 4.26: Cấu hình chân giao tiếp với cảm biến DS18B20 104

Hình 4.27: Sơ đồ mạch nguyên lý giao tiếp vi điều khiển với module DS3231 106

Hình 4.28: Cấu hình chân cho vi điều khiển giao tiếp với module DS3231 107

Hình 4.29: Sơ đồ nguyên lý giao tiếp giữa vi điều khiển và cảm biến MQ-3 111

Hình 4.30: Biểu đồ thể hiện độ nhạy đặc trưng cảm biến MQ-3 112

Hình 4.31: Sơ đồ mạch nguyên lý giao tiếp giữa vi điều khiển và module HC06 114

Hình 4.32: Cấu hình chân giao tiếp với module HC-06 115

Hình 4.33: Sơ đồ mạch nguyên lý giao tiếp giữa vi điều khiển và module NRF 118

Hình 4.34: Cấu hình chân vi điều khiển giao tiếp với module NRF 118

Hình 4.35: Sơ đồ mạch nguyên lý giao tiếp giữa vi điều khiển và module ESP 129

Hình 4.36: Cấu hình chân giao tiếp với module ESP8266 130

Trang 13

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 x

DANH MỤC TỪ VIẾT TẮT

ARM Advanced RISC Machine

A/D Analog to Digital

ADC Analog to Digital Converter

ASIC Application Specific Integrated Circuit

CPU Central Processor Unit

HTML HyperText Markup Language

HTTP HyperText Transfer Protocol

RISC Reduced Instructions Set Computer

SPI Serial Peripheral Interface

SQL Structured Query Language

TCP Transmission Control Protocol

TFT Thin Film Transistor

URL Uniform Resource Locator

USB Universal Serial Bus

VDC Volt Direct Current

WIFI Wireless Fidelity

WPA Wi-Fi Protected Access

Trang 14

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI

1 Thông tin chung:

- Tên đề 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

- Chủ nhiệm đề tài: Lê Kim Tĩnh Mã số SV: 17129051

- Lớp: 171290 Khoa: Điện-Điện tử

- Thành viên đề tài:

- Người hướng dẫn: Thạc sĩ Nguyễn Thanh Nghĩa

2 Mục tiêu đề tài:

- Thiết kế kit lập trình

- Thu thập điều khiển thiết bị ngoại vi

- Xây dựng thư viện hoàn chỉnh

3 Tính mới và sáng tạo:

- Kit lập trình với vi điều khiển ARM

- Kết hợp các cảm biến y sinh

4 Kết quả nghiên cứu:

- Kit lập trình ARM

- Điều khiển các module từ đơn giản đến phức tạp

- Thư viện điều khiển

- Cuốn báo cáo kết quả

5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và khả năng áp dụng của đề tài:

- Phục vụ cho học tập lập trình và lập trình với cảm biến y sinh

6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu

có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):

Ngày tháng năm

SV chịu trách nhiệm chính thực hiện đề tài

(kí, họ và tên)

1 Phan Hoàng Nam 17129028 171290 Điện-Điện tử

2 Nguyễn Thu Trà 17129055 171290 Điện-Điện tử

Trang 15

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 xii

Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề

tài (phần này do người hướng dẫn ghi):

Ngày tháng năm

Người hướng dẫn

(kí, họ và tên)

Trang 16

MỞ ĐẦU

a TỔNG QUAN

Đỗ Minh Phương đã nghiên cứu và trình bày đề tài: Xử lý ảnh video theo thời gian thực trên Kit STM32[1] Bài báo cáo này đã trình bày nghiên cứu, thiết kế hệ thống thu nhập và xử lý luồng ảnh video thời gian thực trên Kit STM32 Nghiên cứu này đã phát triển được công cụ giúp thu thập, xử lý, phân tích luồng ảnh thu được từ video, hiển thị ảnh theo thời gian trên màn LCD và truyền tải ảnh về máy tính

Đồ án tốt nghiệp của Nguyễn Châu Ngân và Trần Thị Linh Đa với đề tài: Thiết

kế và thi công hệ thống điểm danh nhân viên sử dụng vi điều khiển ARM Nghiên cứu này đã dùng vi điều khiển ARM STM32F103VET6 để thu nhận tín hiệu từ thẻ RFID để hoàn thành đề tài [2]

Cùng với sự phát triển không ngừng của khoa học công nghệ, việc học tập nghiên cứu và sử dụng vi điều khiển ARM ngày càng được chú trọng hơn Từ đó các đề tài nghiên cứu về vi điều khiển ARM ngày càng nhiều Để có thể lập trình được vi điều khiển ARM cần có một phần mềm dễ dàng sử dụng mà STM32CubeMX là một trong những phần mềm nổi bật Phần mềm cho phép xử lý những tín hiệu thu nhận từ STM32 cung cấp mã code để người dùng lập trình

Ứng dụng của cảm biến y sinh vào việc chăm sóc sức khỏe và đời sống hàng ngày

là một điều thiết yếu Cùng với đó, việc sử dụng các cảm biến y sinh trong môi trường học tập cho các bạn sinh viên ngành kỹ thuật Y sinh càng thiết thực hơn Đồng thời, giúp các bạn sinh viên vận dụng tốt những kiến thức đễ lập trình được các cảm biến đã được học

b LÝ DO CHỌN ĐỀ TÀI

Hiện nay, lập trình với vi xử lý là một kỹ năng cần có của một kỹ sư điện Sau khi 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 của vi điều khiển từ cơ bản đến nâng cao Giúp ôn lại các kiến thức đã học, rèn luyện

kỹ năng lập trình, kỹ năng gỡ rối, kiểm tra, giám sát, phân tích, suy luận, đánh giá Có rất nhiều bộ kit giúp hỗ trợ sinh viên lập trình như “Kit thực hành vi điều khiển PIC” của Ths Nguyễn Đình Phú Trong đó sử dụng vi điều khiển PIC 18F4550 để điều khiển

7 Module khác nhau Các bài lập trình được thiết kế từ cơ bản đế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ỹ năng lập trình [3]

Trang 17

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:2/141

Trên thị trường có rất nhiều kit lập trình đã dạng Trong đó phổ biến nhất là lập trình Arduino Arduino một nền tảng mã nguồn mở phần cứng và phần mềm Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 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 nhau Với cộng đồng lớn, người lập trình có thể tiếp cận dễ dàng, giả đáp các thắc mắc, thư viện rộng mở từ đó phát triển đề tài của các nhân cũng như nâng cao

kỹ năng lập trình [4]

Qua tóm tắt trên, nhóm quyết định làm đề 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” Kit sẽ được sử dụng vi điều khiển trung tâm là ARM STM32F4, cùng các khối chức năng và các cảm biến khác nhau để hỗ trợ cho người lập trình nói chung và sinh viên nói riêng có công cụ để áp dụng những kiến thức đã được học và tìm hiểu

c 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 cùng với khối chức năng: 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, cảm biến

áp lực và các cảm biến khác

d PHƯƠNG PHÁP NGHIÊN CỨU

Phương pháp tham khảo tài liệu: Tham khảo các tài liệu về lập trình ARM và cách sử dụng phần mềm STM32CubeMX

Phương pháp thực nghiệm khoa học: Trực tiếp thu thập dữ liệu và lập trình ứng dụng các cảm biến sau đó hiển thị lên màn hình

e ĐỐI TƯỢNG NGHIÊN CỨU

Đối tượng nghiên cứu chính của đề tài là tín hiệu từ các cảm biến, lập trình hoạt động cho các cảm biến, cách thức truyền dữ liệu tín hiệu lên màn hình

f PHẠM VI NGHIÊN CỨU

Phạm vi nghiên cứu là tập trung vào xây dựng một hệ thống lập trình điều khiển các cảm biến y sinh từ lúc thu tín hiệu đến lúc hiển thị tín hiệu

Trang 18

Chương 1 CƠ SỞ LÝ THUYẾT

1.1 GIỚI THIỆU

Sau khi lựa chọn được đề tài, để hiểu rõ hơn về tính thực thi và một số lý thuyết liên quan đến đề tài, nhóm chúng tôi xin được trình bày một số nội dung chính sau: Tổng quan về vi điều khiển ARM, Lý thuyết về vi điều STM32F407VE, giới thiệu sơ lược về Wifi, Bluetooth, RF, cũng như phần cứng và phần mềm được sử dụng để thực hiện đề tài này

1.2 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM

1.2.1 Mô tả sơ lược về vi điều khiển ARM

ARM là một loại vi điều khiển 32bit và 64bit kiểu RISC, ARM lúc đầu được đặt tên theo công ty Acorn (ban đầu ARM có nghĩa là Acorn RISC Machine, trong đó RISC

là một cách thiết kế vi xử lý) sau này do có thêm nhiều công ty cùng phát triển và một

số lý do khác, người ta thống nhất gọi ARM là Advance RISC Machine ARM được sử dụng rộng rãi trong các thiết kế nhúng [5]

Ngày nay, hơn 75% CPU 32bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32 bít được sản xuất nhiều nhất thế giới Bộ xử lý CPU của ARM hiện diện trong 95% smartphone, 90% ổ đĩa cứng, 40% truyền hình kĩ thuật số và set top box, 15% trong vi điều khiển, 20% trong máy tính di động và có mặt trên rất nhiều lĩnh vực,

từ TV cho đến các hệ thống tự động hóa và máy móc công nghiệp [6]

1.2.2 Cấu trúc cơ bản của ARM

Cấu trúc ARM bao gồm các đặc tính của RISC nổi bật như: Cấu trúc nạp/lưu trữ, không cho phép truy xuất bộ nhớ không thẳng hàng, tập lệnh trực giao, file thanh ghi lớn gồm 16x32-bit, chiều dài mã máy cố định là 32bit để dễ giải mã và thực hiện pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy [7]

Trang 19

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:4/141

Hình 1.1: Cấu trúc cơ bản của vi điều khiển ARM

a Các tính chất nổi bật

− Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này làm giảm việc phải viết các tiêu đề rẽ nhánh cũng như bù cho việc không có một bộ dự đoán rẽ nhánh

− Trong các lệnh số học, để chỉ ra điều kiện thực hiện, người lập trình chỉ cần sửa mã điều kiện

− Có một thanh ghi dịch 32-bit, có thể sử dụng với chức năng tính toán với hầu hết các lệnh số học và việc tính toán địa chỉ

− Có các kiểu định địa chỉ theo chỉ số rất mạnh

− Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi

− Kích thước miếng bán dẫn nhỏ hơn, bộ xử lý đơn giản đòi hỏi ít transistor hơn, do đó kích thước cần dùng nhỏ lại dành vùng diện tích trống để tăng các chức năng như bộ nhớ cache, chức năng quản lý bộ nhớ…

− Thời gian phát triển một sản phẩm ngắn hơn (do kĩ thuật đơn giản)

− Cấu hình mạnh hơn: Khi ta đặt ra các chỉ lệnh phức tạp tuy nó gần gũi với ngôn ngữ cấp cao, nhưng như thế vô tình cũng làm các chỉ lệnh khác phức

Trang 20

tạp lên và để thực thi một chỉ lệnh như vậy cần tốn nhiều chu kì xung nhịp Trong khi đó nếu dùng RISC chỉ mất một chu kì xung nhịp cho mỗi lệnh, khi

ta phân nhỏ vấn đề phức tạp thành các vấn đề đơn giản thì cách giải quyết sẽ tốt hơn

− Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều thanh ghi (ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn liên tục và có hiệu quả (các lệnh đều có thời gian thực hiện giống nhau và có cùng dạng)

− Thời gian cần thiết để thiết kế bộ điều khiển là ít Điều này góp phần làm giảm chi phí thiết kế

− Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà

ta thường gặp trong bộ điều khiển

− Có một số ít lệnh (thông thường dưới 100 lệnh)

− Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và định

vị gián tiếp thông qua một thanh ghi)

− Có một số ít dạng lệnh (một hoặc hai)

− Các lệnh đều có cùng chiều dài

− Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ

− Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã các

vi lệnh làm cho thời gian thực hiện lệnh kéo dài

− Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu

kỳ máy

b Lõi của Vi điều khiển ARM

− Lõi xử lý ARM là một khối chức năng được kết nối bởi các bus dữ liệu, các mũi tên thể hiện cho dòng chảy của dữ liệu, các đường thể hiện cho bus dữ liệu, các ô biểu diễn trong hình là một khối hoạt động hoặc một vùng lưu trữ Cấu hình này cho thấy các dòng dữ liệu và các thành phần tạo nên một bộ xử

lý ARM

− Tập lệnh ARM nằm trong hai nguồn thanh ghi Rn và Rm, kết quả được trả về thanh ghi đích Rd Nguồn toán hạng được đọc từ thanh ghi đang sử dụng trên bus nội bộ A và B tương ứng

− Khối số học và logic ALU hay bộ nhân MAC lấy các giá trị từ thanh ghi Rn

và Rm từ bus A, B và tính toán ra kết quả

Trang 21

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:6/141

− Mô hình thanh ghi theo kiến trúc Registry file giao tiếp với bộ nhớ thông qua các lệnh load – store và ALU để tính toán địa chỉ được lưu trong các thanh ghi

− Incrementer: bộ gia tăng cho thanh ghi địa chỉ

Hình 1.2: Cấu trúc lõi ARM Cortex M0

1.2.3 Phân loại các phiên bản của ARM

Để đáp ứng yêu cầu khắt khe và đa dạng của các hệ thống nhúng, bộ xử lý ARM Cortex được chia thành 3 dòng, được biểu hiện bằng các ký tự sau tên Cortex như dòng:

A, R, M

a Dòng A

Bộ vi xử lý ARM Cortex A là bộ xử lý có hiệu suất cao cung cấp một loạt các giải pháp cho các thiết bị thực hiện nhiệm vụ tính toán phức tạp, chẳng hạn như lưu trữ một nền tảng phong phú hệ điều hành (OS), và hỗ trợ nhiều ứng dụng phần mềm Tất

cả các bộ xử lý Cortex-A đặc biệt cung cấp hiệu suất 32bit cho máy tính cao cấp, với bộ

vi xử lý Cortex-A72 mới và cả Cortex-A57 và Cortex-A53 bộ xử lý kết hợp cung cấp hiệu suất 32-bit và 64-bit cho thế hệ điện thoại di động, mạng và máy chủ sản phẩm

được mô tả trong Hình 1.3 [7]

Trang 22

Hình 1.3: Các phiên bản của ARM Cortex-A

Các bộ vi xử lý có sẵn trong đơn lõi và đa lõi cung cấp lên đến bốn đơn vị xử lý với khả năng tích hợp các khối xử lý đa phương tiện NEON Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2 Ứng dụng của dòng A bao gồm: điện thoại thông minh, netbook, eReaders, TV kỹ thuật số, home Gateway, máy chủ và mạng

b Dòng R

Bộ vi xử lý Cortex R có hiệu suất vượt trội cho các ứng dụng thời gian thực, thời gian xử lý nhúng đã được phát triển cho các ứng dụng nhúng thời gian thực, nhu cầu về điện năng thấp, ngắt được cân bằng với hiệu suất vượt trội và khả năng tương thích mạnh

mẽ với nền tảng hiện tại Ứng dụng của dòng R bao gồm: hệ thống phanh ô tô, các giải phá hệ thống truyền lực, bộ ưu trữ khối lượng, Networking và in ấn

Hình 1.4: Các phiên bản ARM Cortex – R Tương tự như dòng A, các phiên bản của dòng R được thể hiện trong Hình 1.4

Bộ xử lý Cortex R dành cho các hệ thống đòi hỏi khắc khe về tính thời gian thực Hỗ

Trang 23

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:8/141

trợ các tập lệnh ARM, Thumb và Thumb-2 Các bộ vi xử lý Cortex R gồm có R4, Cortex-R5, Cortex-R7

Hình 1.5: Các phiên bản của ARM Cortex-M

Bộ xử lý Cortex M Chỉ hỗ trợ tập lệnh Thumb-2 Các bộ vi xử lý Cortex M gồm

có Cortex M0, Cortex M0+, Cortex M3, Cortex M4, Cortex M7

1.3 VI ĐIỀU KHIỂN STM32F407VE

STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụng như F0, F1, F2, F3, F4, … STM32F407 thuộc họ F4 dựa trên lõi RISC 32bit ARM Cortex -M4 hiệu suất cao hoạt động ở tần số lên tới 168MHz Lõi Cortex-M4 có độ chính xác đơn vị dấu phẩy động (FPU) hỗ trợ tất cả các hướng dẫn và loại dữ liệu xử lý

dữ liệu chính xác đơn ARM Nó cũng thực hiện một bộ đầy đủ các hướng dẫn DSP và

bộ bảo vệ bộ nhớ (MPU) để tăng cường bảo mật ứng dụng Mạch nạp cũng như công cụ lập trình khá đa dạng và dễ sử dụng

Trang 24

Hình 1.6: Sơ đồ cấu trúc các khối của STM32F407

1.3.2 Cấu trúc bộ nhớ, thanh ghi

Bộ nhớ chương trình, bộ nhớ dữ liệu, thanh ghi và cổng I/O được tổ chức trong cùng một không gian địa chỉ 4Gbyte tuyến tính Các byte được mã hóa trong bộ nhớ ở định dạng endian nhỏ Byte được đánh số thấp nhất trong một từ được coi là byte có ý nghĩa nhỏ nhất và byte được đánh số cao nhất Tất cả các vùng nhớ không được phân bổ cho các bộ nhớ và thiết bị ngoại vi trên chip đều được coi là Reserved [9]

Bảng 1.1: Sơ đồ bộ nhớ

0xFFFF FFFF

0xE000 0000

Block 7 512MB Các ngoại vi nội của Cortex M4

Trang 25

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:10/141

0xDFFF FFFF

0xC000 0000

Block 6 512MB Không sử dụng 0xBFFF FFFF

0xA000 0000

Block 5 512MB Các thanh ghi FSMC 0x9FFF FFFF

0x8000 0000

Block 4 512MB FSMC bank3 và bank4 0x7FFF FFFF

0x6000 0000

Block 3 512MB FSMC bank1 và bank2 0x5FFF FFFF

0x4000 0000

Block 2 512MB Ngoại vi 0x3FFF FFFF

0x2000 0000

Block1 512MB SRAM 0x1FFF FFFF

0x0000 0000

Block 0 512MB Code Tổ chức bộ nhớ của ARM Cortex M4 có dung lượng là 4GB được chia làm 8 block từ Block 0 đến Block 7 mỗi block có dung lượng là 512MB Địa chỉ giới hạn của các ngoại vi trong Arm Cortex M4 được mô tả trong bảng 1.2 dưới đây

Bảng 1.2: Địa chỉ giới hạn của các ngoại vi

0xA000 0000 - 0xA000 0FFF FSMC control register AHB3 0x5006 0800 - 0x5006 0BFF RNG

AHB2

0x5006 0400 - 0x5006 07FF HASH

0x5006 0000 - 0x5006 03FF CRYP

0x5005 0000 - 0x5005 03FF DCMI

Trang 26

0x4001 5400 - 0x4001 57FF SPI6

APB2 0x4001 5000 - 0x4001 53FF SPI5

Trang 27

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:12/141

15[1:0]

MODER

14[1:0]

MODER13[1:0]

MODER12[1:0]

MODER11[1:0]

MODER10[1:0]

MODER9[1:0]

MODER8[1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MODE

R7[1:0]

MODER6[1:0]

MODER5[1:0]

MODER4[1:0]

MODER3[1:0]

MODER2[1:0]

MODER1[1:0]

MODER0[1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Bits 2y:2y+1 MODERy [1:0]: Bit cấu hình Port x (y = 0 15)

Những bit này được viết bằng phần mềm để cấu hình I/O mode

• 00: Input (trạng thái reset)

• 01: General purpose output mode

• 10: Alternate function mode

Trang 28

OT4

OT0

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Bits 31:16 Không sử dụng, giữ ở giá trị reset

Bits 15:0 OTy: Bit cấu hình Port x (y = 0…15)

Những bit này được viết bằng phần mềm để cấu hình I/O mode

0: Output push-pull (trạng thái reset)

1: Output open - drain

Thanh ghi GPIO port tốc độ output (GPIOx_OSPEEDR) (x = A I/J/K)

R15 [1:0]

OSPEED

R14 [1:0]

OSPEEDR13 [1:0]

OSPEEDR12 [1:0]

OSPEEDR11 [1:0]

OSPEEDR10 [1:0]

OSPEEDR9 [1:0]

OSPEEDR8 [1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OSPEED

R7[1:0]

OSPEED

R6[1:0]

OSPEEDR5[1:0]

OSPEEDR4[1:0]

OSPEEDR3[1:0]

OSPEEDR2[1:0]

OSPEED R1[1:0]

OSPEEDR0 1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Những bit này được viết bằng phần mềm để cấu hình tốc độ I/O output

• 00: Low speed

Trang 29

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:14/141

15[1:0]

PUPDR

14[1:0]

PUPDR13[1:0]

PUPDR12[1:0]

PUPDR11[1:0]

PUPDR10[1:0]

PUPDR9[1:0]

PUPDR8[1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PUPDR

7[1:0]

PUPDR

6[1:0]

PUPDR5[1:0]

PUPDR4[1:0]

PUPDR3[1:0]

PUPDR2[1:0]

PUPDR1[1:0]

PUPDR0[1:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Bits 2y:2y+1 PUPDRy[1:0]: Bit cấu hình Port x (y = 0 15

Những bit này được viết bằng phần mềm để cấu hình I/O pull-up or pull-down

Trang 30

2

IDR1

1

IDR1

0

IDR9

IDR8

IDR0

r r r r r r r r r r r r r r r r Bits 31:16 Reserved, giữ ở giá trị reset

Bits 15:0 IDRy: Port input data (y = 0 15)

Những bit này chỉ đọc và chỉ có thể truy cập ở chế độ word Các bit bày chứa giá trị đầu vào của cổng I / O tương ứng

Thanh ghi GPIO port output data (GPIOx_ODR) (x = A I/J/K)

ODR11

ODR10

ODR9

ODR8

ODR7

ODR6

ODR5

ODR4

ODR3

ODR2

ODR1

ODR0

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Bits 31:16 Reserved, giữ ở giá trị reset

Bits 15:0 ODRy: Port output data (y = 0 15)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 BR1

Những bit này chỉ ghi và truy cập bằng chế độ word, half-word hoặc byte Việc đọc các bit này trả về giá trị 0x0000

• 0: Không có hành động nào đối với bit ODRx tương ứng

• 1: Reset bit ODRx tương ứng

Trang 31

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:16/141

Note: If both BSx and BRx are set, BSx has priority

Bits 15:0 BSy: Port x set bit y (y= 0 15)

Những bit này chỉ ghi và truy cập bằng chế độ word, half-word hoặc byte Việc đọc các bit này trả về giá trị 0x0000

• 0: Không có hành động nào đối với bit ODRx tương ứng

• 1: Set bit ODRx tương ứng

Thanh ghi khóa cấu hình cổng GPIO (GPIOx_LCKR) (x = A I/J/K)

Thanh ghi này được sử dụng để khóa cấu hình của các bit cổng khi một chuỗi ghi đúng được áp dụng cho bit 16 (LCKK) Giá trị của bit [15: 0] được sử dụng để khóa cấu hình của GPIO Trong chuỗi ghi, giá trị của LCKR [15: 0] không được thay đổi Khi chuỗi LOCK đã được áp dụng trên một bit cổng, giá trị của bit cổng này không còn có thể được sửa đổi cho đến khi MCU tiếp theo hoặc thiết lập lại ngoại vi

Chú ý: Một chuỗi ghi cụ thể được sử dụng để ghi vào thanh ghi GPIOx_LCKR Chỉ cho phép truy cập từ (dài 32 bit) trong chuỗi ghi này

1.3.5 Thanh ghi ADC

Các thanh ghi ngoại vi phải được ghi ở mức word (32 bit) Truy cập đọc có thể được thực hiện bằng byte (8 bit), half-word (16 bit) hoặc word (32 bit)

Thanh ghi trạng thái ADC (ADC_SR)

‒ Bit 5 OVR: Overrun (tràn)

Bit này được thiết lập bởi phần cứng khi dữ liệu bị mất (ở chế độ đơn hoặc ở chế độ kép / ba) Nó được xóa bằng phần mềm Phát hiện overrun chỉ được bật khi DMA = 1 hoặc EOCS = 1

Trang 32

0: Không có tràn xảy ra

1: Có Overrun xảy ra

‒ Bit 4 STRT: Cờ khởi động kênh thường

Bit này được thiết lập bởi phần cứng khi bắt đầu chuyển đổi kênh thông thường

Nó được xóa bằng phần mềm

0: Không có chuyển đổi kênh thường nào khởi động

1: Chuyển đổi kênh thường vừa mới khởi động

‒ Bit 3 JSTRT: Cờ khởi động kênh Injected

Bit này được thiết lập bởi phần cứng khi bắt đầu chuyển đổi nhóm được chèn Bit được xóa bằng phần mềm

0: Không có chuyển đổi nhóm Injected khởi động

1: Có nhóm Injected vừa mới khởi động

‒ Bit 2 JEOC: Kết thúc chuyển đổi kênh Injected

Bit này được thiết lập bởi phần cứng vào cuối quá trình chuyển đổi tất cả các kênh được chèn trong nhóm Bit bị xóa bởi phần mềm

0: Chuyển đổi chưa hoàn thành

1: Hoàn thành chuyển đổi

‒ Bit 1 EOC: Kết thúc chuyển đổi kênh thường

Bit này được thiết lập bởi phần cứng vào cuối quá trình chuyển đổi của nhóm kênh thông thường Nó bị xóa bằng phần mềm hoặc bằng cách đọc thanh ghi ADC_DR

0: Chuyển đổi chưa hoàn thành (EOCS=0), hoặc chuỗi chuyển đổi chưa hoàn thành (EOCS=1)

1: Chuyển đổi hoàn thành (EOCS=0), hoặc chuỗi chuyển đổi hoàn thành complete (EOCS=1)

‒ Bit 0 AWD: Cờ analog watchdog

Bit này được thiết lập bởi phần cứng khi điện áp được chuyển đổi vượt qua các giá trị được lập trình trong các thanh ghi ADC_LTR và ADC_HTR Nó được xóa bằng phần mềm

0: Không có sự kiện analog watchdog event xảy ra

1: Sự kiện analog watchdog xảy ra

Thanh ghi điều khiển ADC 1 (ADC_CR1)

• Địa chỉ bù: 0x04

Trang 33

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:18/141

• Giá trị reset: 0x0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

Reserved

OVRIE

DE

N

JAWDEN Reserved

rw rw rw rw rw

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DISCNUM

[2:0]

JDISCE

O

AWDSG

L

SC

AN

JEOCIE

AWDIE

EOC

IE AWDCH[4:0]

rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw Bits 31:27 Reserved, phải giữ ở giá trị reset

‒ Bit 26 OVRIE: Cho phép ngắt tràn

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt ngắt tràn

0: Tắt ngắt tràn

1: Bật ngắt tràn Một ngắt được sinh ra khi bit OVR được đặt

‒ Bits 25:24 RES[1:0]: Độ phân giải

Các bit này được viết bằng phần mềm để chọn độ phân giải của chuyển đổi 00: 12-bit (15 ADCCLK cycles)

01: 10-bit (13 ADCCLK cycles)

10: 8-bit (11 ADCCLK cycles)

11: 6-bit (9 ADCCLK cycles)

‒ Bit 23 AWDEN: Bật Analog watchdog trên những kênh thường

Bit này được đặt hoặc xóa bởi phần mềm

0: Tắt Analog watchdog trên kênh thường

1: Bật Analog watchdog trên kênh thường

‒ Bit 22 JAWDEN: Bật Analog watchdog trên những kênh Injected

Bit này được đặt hoặc xóa bởi phần mềm

0: Analog watchdog disabled on injected channels

1: Analog watchdog enabled on injected hannels

‒ Bits 21:16 Reserved, phải giữ ở giá trị reset

‒ Bits 15:13 DISCNUM[2:0]: Đếm kênh ở chế độ không liên tục

Trang 34

Các bit này được viết bởi phần mềm để xác định số lượng kênh thông thường sẽ được chuyển đổi ở chế độ không liên tục, sau khi nhận được kích hoạt bên ngoài

000: 1 kênh

001: 2 kênh

111: 8 kênh

‒ Bit 12 JDISCEN: Đếm kênh Injected ở chế độ không liên

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt chế độ không liên tục trên các kênh được chèn của một nhóm

0: Tắt chế độ không liên tục trên kênh Injected

1: Bật chế độ không liên tục trên kênh Injected

‒ Bit 11 DISCEN: Đếm kênh thường ở chế độ không liên tục

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt chế độ Không liên tục trên các kênh thông thường

0: Tắt chế độ không liên tục trên kênh thường

1: Bật chế độ không liên tục trên kênh thường

‒ Bit 10 JAUTO: Tự động chuyển đổi nhóm Injected

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt chuyển đổi nhóm được chèn tự động sau khi chuyển đổi nhóm thông thường

0: Tắt tự động chuyển đổi nhóm Injected

1: Bật tự động chuyển đổi nhóm Injected

‒ Bit 9 AWDSGL: Kích hoạt watchdog trên một kênh trong chế độ quét

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt analog watchdog trên kênh được xác định bởi các bit AWDCH [4: 0]

0: Analog watchdog được bật trên tất cả các kênh

1: Analog watchdog bật trên một các kênh

‒ Bit 8 SCAN: chế độ quét

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt chế độ Quét Trong chế độ Quét, các đầu vào được chọn thông qua các thanh ghi ADC_SQRx hoặc ADC_JSQRx được chuyển đổi

0: Tắt chế độ quét

1: Bật chế độ quét

Trang 35

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:20/141

‒ Bit 7 JEOCIE: Cho phép ngắt các kênh Injected

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt kết thúc ngắt chuyển đổi cho các kênh Injected

0: Tắt ngắt JEOC

1: Bật ngắt JEOC Một ngắt được sinh ra khi bit JEOC được đặt

‒ Bit 6 AWDIE: Kích hoạt ngắt Analog watchdog

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt ngắt analog watchdog

0: Tắt ngắt Analog watchdog

1: Bật ngắt Analog watchdog

‒ Bit 5 EOCIE: Kích hoạt ngắt cho EOC

Bit này được thiết lập và xóa bằng phần mềm để bật / tắt ngắt kết thúc chuyển đổi

0: Tắt ngắt EOC

1: Bật ngắt EOC Một ngắt được sinh ra khi bit EOC được đặt

‒ Bits 4:0 AWDCH[4:0]:Các bit lựa chọn kênh Analog watchdog

Chúng chọn kênh đầu vào để được bảo vệ bởi analog watchdog

1.4 GIỚI THIỆU PHẦN CỨNG

Từ những phần lý thuyết được tìm hiểu ở trên, nhóm quyết định lựa chọn phần cứng để thực hiện đề tài này với các cảm biến để thu tín hiệu và hiển thị trên màn hình LCD TFT 2.2 Inch

1.4.1 Cảm biến nhịp tim và nồng độ oxy trong máu

a Mô tả

Hình 1.7: Cảm biến nhịp tim và nồng độ oxy trong máu MAX30102

Hình 1.7 chính là Module cảm biến MAX30102, đây là module có khả năng đo

được nồng độ Oxy trong máu và nhịp tim Đó là một cảm biến quang học, nó phát ra hai bước sóng ánh sáng từ hai đèn LED - một LED đỏ và một LED hồng ngoại - sau đó đo

Trang 36

sự hấp thụ của xung huyết (pulsing blood) bằng cách thu tín hiệu thông qua một bộ cảm biến ánh sáng (photodetector) Sự kết hợp màu LED đặc biệt này được tối ưu hóa để đọc

dữ liệu ở đầu ngón tay [10]

Cảm biến nhịp tim và Oxy trong máu MAX30100 được ứng dụng nhiều trong lĩnh vực y sinh, cảm biến sử dụng phương pháp đo quang phổ biến hiện nay, với thiết

kế và chất liệu mắt đo từ chính hãng Maxim cho độ chính xác và độ bền cao, độ nhiễu thấp Ngoài ra, cảm biến sử dụng giao tiếp I2C rất dễ tiếp cận với Arduino

Hình 1.8 chính là IC cảm biến nhiệt độ DS18B20 được thiết kế với độ phân giải

từ 9 – 12bit Với chuẩn giao tiếp 1-Wire (1 chân Data duy nhất) rất dễ kết nối và lập trình, cảm biến có chất lượng tốt, độ bền cao [11]

b Thông số kỹ thuật

• Điện áp hoạt động: 3 – 5 (VDC)

• Dòng điện tiêu thụ: 1 – 1.5 (mA)

• Nhiệt độ đo được: -55 đến +125 (ºC)

• Độ chính xác: ± 0.5 (ºC)

• Độ phân giải: 9 – 12bit

• Thời gian phản hồi: < 750 (ms)

• Chuẩn giao tiếp: digital TTL 1- Wire

Trang 37

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:22/141

1.4.2 Cảm biến nhiệt độ LM35

a Mô tả

Hình 1.9: Cảm biến nhiệt độ LM35

Hình 1.11 chính là cảm biến nhiệt độ LM35 nhóm sử dụng cho đề tài này Loại

cảm biến này có điện áp Analog đầu ra tuyến tính theo nhiệt độ thường được sử dụng

để đo nhiệt độ của môi trường hoặc theo dõi nhiệt độ của thiết bị, cảm biến có kiểu chân TO-92 với chỉ 3 chân rất dễ giao tiếp và sử dụng [12]

K: là điện áp đầu ra của LM35: K = 10mV/oC

t: nhiệt độ môi trường (oC)

U: điện áp đầu ra

1.4.3 Cảm biến siêu âm

a Mô tả

Cảm biến siêu âm Ultrasonic HC-SR04 được sử dụng để nhận biết khoảng cách

từ vật thể đến cảm biến nhờ sóng siêu âm, cảm biến có thời gian phản hồi nhanh, độ chính xác cao, phù hợp cho các ứng dụng phát hiện vật cản, đo khoảng cách bằng sóng siêu âm [13]

Trang 38

Hình 1.10: Cảm biến siêu âm HC- SR04

Hình 1.10 mô tả cho cảm biến mà nhón sử dụng Cảm biến này sử dụng đầu dò

để gửi và nhận xung siêu âm chuyển tiếp thông tin về một vật thể ở gần Sóng âm tần

số cao phản xạ từ các ranh giới để tạo ra các mẫu tiếng vang riêng biệt [14]

Hình 1.11: Cảm biến nồng độ cồn MQ3

Hình 1.11 là cảm biến nồng độ cồn MQ3 mà nhóm sử dụng trong đề tài Cảm

biến có độ nhạy cao với các khí gas, alcohol, ethanol [16]

b Thông số kỹ thuật

• Điện áp hoạt động: 5VDC

Trang 39

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:24/141

(Hình 1.13) Với Arduino chúng ta có thể xây dựng các ứng dụng điện tử tương tác với

nhau thông qua phần mềm và phần cứng hỗ trợ [18]

Trang 40

Hình 1.13: Arduino Nano

Với hình 1.14 là sơ đồ chân của Arduino Nano, mỗi chân trên mạch Arduino

Nano có chức năng cụ thể Do đó, dựa vào từng chức năng khác nhau mà lựa chọn chân phù hợp

Hình 1.14: Sơ đồ chân của Arduino Nano

• Dòng DC tối đa trên chân I/O: 40 mA

• Dòng DC tối đa trên chân 3.3V: 50 mA

• Bộ nhớ flash: 32KB

• Dòng ra tối đa: 500 mA

• Kích thước: 18.5x43 mm

Ngày đăng: 07/09/2022, 21:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Đình Phú, “Giáo trình Vi xử lý”, Trường ĐHSPKT, Tp.HCM, 2013 Sách, tạp chí
Tiêu đề: Giáo trình Vi xử lý
[5] ARM Holdings, “ARM Discloses Technical Details Of The Next Version Of The ARM Architecture”, 27/10/2011 Sách, tạp chí
Tiêu đề: ARM Discloses Technical Details Of The Next Version Of The ARM Architecture
[6] Fitzpatrick, J. (2011), “An Interview with Steve Furber”. Communications of the ACM Sách, tạp chí
Tiêu đề: An Interview with Steve Furber
Tác giả: Fitzpatrick, J
Năm: 2011
[7] Trương Xuân Thắng, “Giao tiếp với vi điều khiển ARM”, Hà Nội, 2011 Sách, tạp chí
Tiêu đề: Giao tiếp với vi điều khiển ARM
[8] Geoffrey Brown, “Discovering the STM32 Microtroller”, 8/01/2013 Sách, tạp chí
Tiêu đề: Discovering the STM32 Microtroller
[9] STMicroelectronics, “STM32F405xx STM32F407xx”, 14/08/2020 Sách, tạp chí
Tiêu đề: STM32F405xx STM32F407xx
[10] Maxim Integrated, “MAX30102: High-Sensitivity Pulse Oximeter and Heart- Rate Sensor for Wearable Health”, 2018.[11] Sách, tạp chí
Tiêu đề: MAX30102: High-Sensitivity Pulse Oximeter and Heart-Rate Sensor for Wearable Health
[12] Texas Instruments, “LM35 Precision Centigrade Temperature Sensors”, 12/2017 Sách, tạp chí
Tiêu đề: LM35 Precision Centigrade Temperature Sensors
[13] Elijah J. Morgan, “HC-SR04 Ultrasonic Sensor”, 16/11/2014 Sách, tạp chí
Tiêu đề: HC-SR04 Ultrasonic Sensor
[14] NanJing Top Power ASIC Corp, “TP4056 1A Standalone Linear Li-lon Battery Charger with Thermal Regulation in SOP-8”, p6v2uc.cloudfront.net Sách, tạp chí
Tiêu đề: TP4056 1A Standalone Linear Li-lon Battery Charger with Thermal Regulation in SOP-8
[15] “MQ-3 Alcohol Gas Sensor”, components101.com, 7/10/2018 Sách, tạp chí
Tiêu đề: MQ-3 Alcohol Gas Sensor
[17] Texas Advanced Optoelectronic Solutions Inc., “TSC3472 color light-to- digital converter with ir filter”, 8/2012 Sách, tạp chí
Tiêu đề: TSC3472 color light-to-digital converter with ir filter
[18] “Arduino Nano - Nhỏ, tiện lợi, mang trên mình tinh hoa của Arduino Uno”, arduino.vn, 22/07/2014 Sách, tạp chí
Tiêu đề: Arduino Nano - Nhỏ, tiện lợi, mang trên mình tinh hoa của Arduino Uno
[19] Melexis Inspires Engineering, “MLX90614 family”, 13/8/2019 Sách, tạp chí
Tiêu đề: MLX90614 family
[20] Stan, “HC-06 Bluetooth module datasheet and configuration with Arduino”, 25/05/2014 Sách, tạp chí
Tiêu đề: HC-06 Bluetooth module datasheet and configuration with Arduino
[21] Ai – Thinker, “ESP-01 WiFi Module V1”, 16/05/2017, Thâm Quyến - Trung Quốc Sách, tạp chí
Tiêu đề: ESP-01 WiFi Module V1
[22] Paul Badger, “Pulse Sensor II: Getting the Lights On”, 29/06/2012 Sách, tạp chí
Tiêu đề: Pulse Sensor II: Getting the Lights On
[23] NEC LCD Technologies, “TFT Color LCD Module”, 05/2010 Sách, tạp chí
Tiêu đề: TFT Color LCD Module
[24] Lê Việt Anh, “Sử dụng IC MAX7219 để điều khiển LED Ma trận 8x8 - Shiftout 16 bit”, 03/07/2016, Arduino.vn Sách, tạp chí
Tiêu đề: Sử dụng IC MAX7219 để điều khiển LED Ma trận 8x8 - Shiftout 16 bit
[2] Tổng quang về arduino: https://www.arduino.cc/ Link

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w