RTOS là một hệ điều hành mã nguồn mở. Hãng ST phát triển và tích hợp RTOS trong phần mềm sinh code CubeMX của hãng dưới tên FreeRTOS. RTOS có các đặc tính: thực hiện các tác vụ song song, giao tiếp, trao đổi dữ liệu.
Hình 2.20: Logo phần mềm freeRTOS
RTOS là một hệ điều hành mã nguồn mở. Hãng ST phát triển và tích hợp RTOS trong phần mềm sinh code CubeMX của hãng dưới tên FreeRTOS. RTOS có các đặc tính: thực hiện các tác vụ song song, giao tiếp, trao đổi dữ liệu.
Nhân (kernel) của hệ điều hành giao cho CPU thực hiện việc xử lý các task theo những khoảng thời gian. Nó cũng liên tục kiểm tra mức ưu tiên của các task, xắp xếp các thông điệp từ task và tiến hành lập lịch. Trong một hệ thống chạy RTOS, cũng có các tài nguyên dùng chung cùng với phần được cấp phát riêng cho mỗi task. Hình 2.21 mô tả quá trình kernel điều khiển CPU thực hiện các task theo thứ tự ưu tiên từ cao đến thấp.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
Chương 3. TÍNH TOÁN, THIẾT KẾ VÀ THI CÔNG 3.1.GIỚI THIỆU
Với đề 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”, nhóm sẽ thiết kế tính toán sơ đồ lắp đặt giữa vi điều khiển ARM với các module để tạo thành một hệ thống hoàn chỉnh. Chúng ta cần phải thiết kế một bộ kit thực hành dễ dàng sử dụng với đầy đủ các tính năng để khai thác các tài nguyên có trên vi điều khiển ARM. Kit lập trình vi điều khiển đáp ứng đầy đủ, nhu cầu về tìm hiểu và phát triển các ứng dụng của các loại cảm biến y sinh trong thực tế.
3.2.TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG3.2.1.Thiết kế sơ đồ khối hệ thống 3.2.1.Thiết kế sơ đồ khối hệ thống
Hình 3.1: Sơ đồ khối hệ thống
3.2.2.Chức năng từng khối a. Khối nguồn
Đây là mạch nguồn thiết kế chính có thể lấy ra được nguồn 5V, 3,3V cấp cho vi xử lý và tất cả các khối hoạt động. Nguyên lý hoạt động bắt đầu cấp nguồn 12V một chiều qua Jack DC, led L1 báo nguồn 12V được cấp qua một điện trở 1k hạn dòng cho
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 led. Hai IC ổn áp LM2576 5V và LM2576 3,3V sử dụng nguồn vào 12V để tạo ra điện áp 5V và 3,3V, dòng tối đa là 3A cho mỗi nguồn. Hai tụ 100f ổn định đầu vào cho IC ổn áp. Ngõ ra của IC ổn áp sử dụng diode zener ổn áp và mạch cộng hưởng LC giúp ổn định ngõ ra DC lọc bỏ triệt để dao động. Hai led D21 và D18 báo nguồn 5V và 3,3V đã hoạt động, điện trở 220 hạn dòng cho led báo 5V, điện trở 100 hạn dòng cho led báo 3,3V.
Hình 3.2: Sơ đồ nguyên lý mạch nguồn
Mạch sử dụng relay 12V 10A dòng điện điều khiển 30mA để làm khoá bảo vệ. Hai transistor để tạo trạng thái đóng ngắt cho relay. Transistor được chọn là C1815 thuộc loại NPN dễ dàng điều khiển đóng ngắt với dòng Ic tối đa 150mA đủ để tạo dòng cho relay. Hai transistor Q1 và Q2 được mắc nối tiếp với nhau, cực E của Q1 kết nối với cực C của Q2, cực B của Q1 điểu khiển bởi nguồn 5V, cực B của Q2 điều khiển bởi nguồn 3,3V. Điều này tạo nên bộ khoá chỉ khi 2 nguồn 5V và 3,3V tồn tại thì Q1 và Q2 dẫn tạo nên dòng điện điều khiển relay đóng. Chỉ cần ít nhất một trong 2 nguồn 5V hoặc 3,3V bị ngắt (đoản mạch, quá dòng), lập tức hệ thống Q1 và Q2 sẽ bị ngắt ngay lập tức.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
b. Khối LED đơn
Gồm 8 Led đơn được nối vào 8 chân từ PA0 tới PA7. Có chức năng là dùng để kiểm tra, hiển thị, ứng dụng thay thế trong các bài tập như thực hành các bài led đơn, cảm biến…
Các led được điểu khiển trực tiếp từ ngõ ra của VĐK với mức điện áp 3,3V. Led được sử dụng là led 0805 màu đỏ với các thông số như sau:
− Điện áp hoạt động (Uled): 2,1÷2,6V
− Dòng tối đa (Iled): 10mA
Công thức tính điện trở hạn dòng như sau:
R =U
I =3,3−Uled
Iled = 70 ÷ 120 () (3.1)
Chọn sử dụng điện trở 100
Hình 3.3: Sơ đồ nguyên lý khối LED đơn
c. Khối ma trận phím
Khối ma trận phím gồm ma trận phím 4x4 và 4 nút nhấn đơn được nối trực tiếp đến các chân I/O của VĐK với 4 chân xuất tín hiệu và 4 chân thu tín hiệu. Bốn đèn led báo hiệu nút đã được nhấn, dùng điện trở 100 hạn dòng cho led như trình bày bên trên. Các nút nhấn đơn được kết nối với nguồn 3,3V. Ma trận phím sử dụng dược sắp xếp thành 4 hàng và 4 cột, các chân trên cùng một hàng hoặc trên cùng một cột sẽ được nối với nhau. Ta được 4 đường tín tín hiệu theo hàng và 4 đường theo cột để kết nối với VĐK.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
Hình 3.4: Sơ đồ nguyên lý khối ma trận phím
d. Khối cảm biến nhiệt độ LM35
Khối nhiệt độ LM35 chuyển đổi nhiệt độ thành tín hiệu điện, truyền cho VDK xử lý và hiển thị lên các khối hiển thị và LCD.
Hình 3.5: Sơ đồ nguyên lý khối nhiệt độ LM35
Khối sử dụng 2 cảm biến LM35 được nối tách biệt với nhau và nối đến một bộ Switch chung. Một tụ điện 10uf được nối đến chân tín hiệu của LM35 đến đảm bảo ổn định ngõ ra tín hiệu nhiệt độ của cảm biến. Khi sử dụng, trong một khoảng khắc chỉ sử dụng 1 trong 2 cảm biến LM35 bằng cách bật tắc switch. Việc làm như vậy có thể so sánh sử dụng giữ 2 cảm biến LM35 khác nhau.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
e. Khối cảm biến nhiệt độ DS18B20
Tương tự như khối nhiệt độ LM35 khối nhiệt độ DS18B20 cũng có chức năng đo nhiệt độ môi trường chính xác.
Sử dụng nguồn 3,3V để cấp cho cảm biến hoạt động. Tín hiệu ngõ ra là tín hiệu dạng số, truyền bằng một đường dây nên cần cho đường tín hiệu này bằng một điện trở 4,7k.
Hình 3. 1: Sơ đồ nguyên lý khối nhiệt độ DS18B20
f. Khối cảm biến nhịp tim
Sử dụ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 được nối đến chân PC1. Có chức năng đo được nhịp tim và dạng sóng của nhịp tim hiển thị trên màng hình LCD. Giúp nguyên cứu và ứng dụng sử dụng về sau này.
Hình 3.6:Sơ đồ nguyên lý khối cảm biến nhịp tim
Cảm biến sử dụng nguồn 3,3V, tín hiệu tương tự điện áp quanh mức 1,65V phù hợp với điện áp cho phép tại chân I/O của VĐK.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
g. Khối cảm biến siêu âm
Sử dụng cảm biến siêu âm Ultrasonic HC-SR04. Có chức năng 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.
Chân TRIG nhận tín hiệu điều khiển phát sóng. Điều khiển với tín hiệu mức thấp nên cần phải nối qua một điện trở 10k để khi không có tín hiệu điều khiển thì cảm biến ở trạng thái không phát sóng. Chân ECHO xuất tín hiệu thu nhận sóng trả về đến chân I/O của VĐK. Cả 2 chân TRIG và ECHO đều được nối qua điện trở 100 hạn dòng cho chân điều khiển cảm biến.
Hình 3.7:Sơ đồ nguyên lý khối cảm biến siêu âm
h. Khối cảm biến nhịp tim và SPO2
Sử dụng cảm biến nhịp tim và oxy trong máu MAX30100 được sử dụng để đo nhịp tim và nồng độ Oxy trong máu, thích hợp cho nhiều ứng dụng liên quan đến y sinh. Có chức năng giúp lập trình tìm hiểu rõ về nhịp tim.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Sử dụng cảm biến nồng độ cồn MQ-3, có chức năng đo thể hiện giá trị nồng độ cồn hiển thị lên các khối hiển thị và LCD. Tín hiệu được xuất ra tại ngõ ra của cảm biến là tín hiệu analog. Cảm biến sử dụng nguồn 5V, ngõ ra tương tự với điện áp đỉnh là 5V. Tuy nhiên điện áp cho phép tại chân I/O của VĐK là 3,3V, nên cần có một mạch chia áp để giới hạn lại điện áp trước khi đến chân thu tín hiệu của cảm biến.
Sử dụng mạch chia áp 2K nối tiếp 3K, điện áp tại chân tín hiệu đến cảm biến sẽ như sau:
VMQ−3 =2
3 . Vout (3.2) Sử dụng một diode zener 3,3V mắc song song với điện trở 3K, tạo ra điện áp ổn định ở mức 3,3V nếu sảy ra quá áp bảo vệ chân I/O của VĐK.
Hình 3.9:Sơ đồ nguyên lý khối nồng độ cồn
i. Khối LCD TFT
Khối LCD TFT là một màn hình hiển thị có kích thước 2,2inch, độ phân giải 240x320 điểm ảnh, với 65536 màu. LCD được kết nối theo giao tiếp SPI với 3 chân tín hiệu và 3 chân cho phép. Nguồn cấp là 3,3V và không có khả năng điều chỉnh độ sáng của màn hình.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
Hình 3.10:Sơ đồ nguyên lý khối LCD TFT
3.3.THI CÔNG HỆ THỐNG 3.3.1.Thi công board mạch 3.3.1.Thi công board mạch
❖ Các bước thi công phần cứng
− Mạch in được thiết kế trên phần mềm Proteus
− Thực hiện thi công mạch và tiến hành thi công board mạch.
− Sau khi thi công sẽ dùng đồng hồ để kiểm tra ngõ vào, ngõ ra, thông mạch và ngắn mạch để xem có lỗi trong lúc thực hiện hay không.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
Hình 3.11: Sơ đồ bố trí linh kiện của KIT
Trong Hình 3.11, sơ đồ bao gồm: ở trung tâm là nơi gắn board mạch STM32F407VE và LCD TFT, xung quanh là các 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 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
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
Hình 3.13:Sơ đồ mạch in PCB mặt dưới
Hình 3.12 và 3.13 là sơ đồ mạch in dùng để làm mạch cho kit. ➢ Thống kê linh kiện sử dụng trong hệ thống
Bảng 3.1:Danh sách các linh kiện
STT Tên linh kiện Số lượng
1 Kit STM32F407 1
2 LCD TFT 1
3 Cảm biến siêu âm 1
4 Cảm biến MAX30100 1
5 Cảm biến nhịp tim Pluse sensor 1
6 Cảm biến nồng độ cồn MQ3 1
7 Cảm biến nhiệt độ LM35 2
8 Cảm biến nhiệt độ DS18B20 2
9 IC L298 1
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 11 Transistor A1013 8 12 IC DS3231 1 13 Transistor 2SC1815 2 14 IC LM2576-5 1 15 IC LM2576-3.3 1 16 RELAY 24V 1 17 Động cơ DC 1 18 Nút nhấn 20
19 Trở, tụ , led, diot
Trong bảng 3.1 liệt kê linh kiện để tránh những thiếu sót trong quá trình thi công board mạch nên sẽ liệt kê tất cả các linh kiện được sử dụng trong mạch để tiến hành thi công mạch như trong bảng.
3.3.2.Lắp ráp thi công mô hình
Tiến hành hàn linh kiện vào mạch khi làm mạch.
Hình 3.14:Mạch sau khi thi công
Hình 3.14 thể hiện vị trí các linh kiện trên board mạch - Vị trí số 1: Khối nguồn. 8 9 5 6 7 10 11 12 4 13 2 14 3 1
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 - Vị trí số 2: Khối vi xử lý.
- Vị trí số 3: Khối LED. - Vị trí số 4: Khối LCD TFT.
- Vị trí số 5: Khối cảm biến nhiệt độ LM35. - Vị trí số 6: Khối cảm biến nhiệt độ DS18B20. - Vị trí số 7: Khối động cơ DC.
- Vị trí số 8: Khối ma trận phím.
- Vị trí số 9: Khối cảm biến nhịp tim và SpO2. - Vị trí số 10: Khối cảm biến nhịp tim Pluse sensor. - Vị trí sô 11: Khối cảm biến siêu âm.
- Vị trí số 12: Khối cảm biến nồng độ cồn MQ3. - Vị trí số 13: Khối module thời gian thực DS3231. - Vị trí số 14: Khối LED đơn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
Chương 4. THIẾT KẾ CÁC BÀI THỰC HÀNH
Chương này trình bày về các bài thực hành cho các module của kit thực hành như 8 led đơn, nút nhấn, màn hình LCD TFT, các cảm biến,… Bài thực hành gồm các phần mục: sơ đồ phần cứng, cấu hình chân cho vi điều khiển, các hàm cơ bản, các thư viện sử dụng, các bài tập mẫu và các bài tập ứng dụng.
4.1.PHẦN MỀM LẬP TRÌNH STM32CUBEIDE 4.1.1.Giới thiệu 4.1.1.Giới thiệu
Phần mềm lập trình cho các dòng vi điều khiển STM32 có nhiều chương trình khác nhau, trong đề tài sử dụng phần mềm STM32CubeIDE. Đây là phần mềm miễn phí do hãng ST tạo ra, hỗ trợ cho các dòng vi điều khiển STM32 bao gồm cả chip STM32F4VET6 mà kit thực hành sử dụng, trong phần mềm có tích hợp các công cụ sinh code, soạn thảo, biên dịch và nạp chương trình cho vi điều khiển, rất đơn giản và dễ sử dụng.
Biểu tượng phần mềm STM32CubeIDE sau khi cài đặt xong xuất hiện trong màn hình desktop như sau.
Hình 4.1:Biểu tượng phần mềm STM32CubeIDE
4.1.2.Hướng dẫn sử dụng phần mềm
Phần mềm lập trình cho các dòng vi điều khiển STM32 có nhiều chương trình khác nhau, trong đề tài sử dụng phần mềm STM32CubeIDE. Đây là phần mềm miễn phí do hãng ST tạo ra, trong phần mềm có tích hợp các công cụ sinh code, soạn thảo code và nạp code cho vi điều khiển, rất đơn giản và dễ sử dụng.
Biểu tượng phần mềm STM32CubeIDE sau khi cài đặt xong xuất hiện trong màn hình desktop như sau.
Bước 1: Khởi động phần mềm, giao diện xuất hiện như Hình 4.2. Chọn mục Start New STM32 project.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
Hình 4.2:Giao diện khi khởi động phần mềm
Hình 4.3:Chọn họ vi điều khiển
Bước 2: Giao diện phần chọn Target như hình 4.3. Tìm vi điều khiển STM32F407VET6 bằng cách gõ vào ô tìm kiếm được đánh dấu số 1. Phần đánh dấu số 2 là họ vi điều khiển STM32F4VETx. Chọn “Next” (số 2).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49 Bước 3: Hình 4.4 là cửa sổ gõ tên Project, gõ tên và chọn “Finish” theo thứ tự 1, 2 trong hình.
Bước 4: Hình 4.5 là giao diện của file.ioc tức là file cấu hình các chân của vi điều khiển. Ở đây ta để cấu hình mặc định và không chỉnh sửa gì thêm. Tiến hành sinh code bằng cách nhấn Ctr+S và chọn “yes” khi cửa sổ Question hiện lên như Hình 4.6.
Hình 4.4:Gõ tên của Project
Bước 5: Biên dịch cho chương trình như hình 4.7 minh họa. Chọn file main.c theo đường dẫn Core>Src (số 2) thuộc project “cau_hinh” (số 1). Nhấn biểu tượng cây búa (số 3) hình 4.7. Kết quả biên dịch thành công và dung lượng bộ nhớ vi điều khiển sử dụng sẽ hiển thị lần lượt 1,2 trong Hình 4.8.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
Hình 4.5: Giao diện file.ioc cấu hình chân cho vi điều khiển
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
Hình 4.7:Cửa sổ soạn thảo chương trình của STM32CubeIDE
Hình 4.8:Cửa sổ hiển thị khi biên dịch xong
Bước 6: Nạp code cho vào bộ nhớ Flash của vi điều khiển bằng công cụ Debugger tích hợp sẵn trong phần mềm STM32CubeIDE, nhấn vào biểu tượng đánh dấu số 3 trong hình 4.8. Sau đó, xuất hiện cửa sổ cấu hình Debugger như hình 4. 9 và chọn “OK”.