1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng Dụng Arm Stm32F4 Discovery Và Matlab Simulink Trong Thiết Kế Các Bộ Điều Khiển.pdf

105 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Ứng dụng Arm STM32F4 Discovery và Matlab Simulink trong thiết kế các bộ điều khiển
Tác giả Nguyễn Trung Hiếu, Trần Anh Tuấn, Lê Quang Tài
Người hướng dẫn PTS. Nguyễn Văn A
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Kỹ thuật ô tô
Thể loại Đề án tốt nghiệp
Năm xuất bản 2018
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 105
Dung lượng 5,67 MB

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

Nội dung

Untitled THÀNH PHỐ HỒ CHÍ MINH BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT Tp Hồ Chí Minh, tháng 20 SKL007931 NGÀNH CNKT Ô TÔ i LỜI CẢM ƠN Nhóm chúng em xin chân thành cảm ơn các quý thầy t[.]

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

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

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

 697+

SKL00793 1

ĈӖÈ17Ӕ71*+,ӊ3 NGÀNH CNKT Ô TÔ

Ӭ1*'Ө1*$50670)',6&29(5<9¬ 0$7/$%6,08/,1.7521*7+,ӂ7.ӂ&È&%Ӝ

Trang 4

đó đã giúp chúng em hoàn thành tập đồ án này và là hành trang để chúng em bước vào đời

Hơn hết nhóm gửi lời cảm ơn sâu sắc đến Thạc sĩ Giảng viên NGUYỄN TRUNG HIẾU Giáo viên hướng dẫn đề tài, người thầy đã tận tình hướng dẫn, chỉ bảo kịp thời, tạo

điều kiện, động viên và giúp đỡ chúng em rất nhiều về mặt tinh thần cũng như kiến thức

để chúng em vượt qua những ngày tháng khó khăn trong quá trình thực hiện đồ án này Bên cạnh đó chúng em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã hết lòng ủng hộ, giúp đỡ và góp ý cho nhóm em trong suốt quà trình thực hiện

Mặc dù đã rất cố gắng và nỗ lực nhiều, nhưng do kiến thức ít ỏi cũng như thời gian nghiên cứu là có hạn nên những thành quả đạt được không tránh khỏi những thiếu sót Do

đó chúng em kính mong nhận được những sự đóng góp, chỉ dạy của quý thầy cô để chúng

em hoàn thiện đồ án được tốt hơn

Nhóm chúng em xin chân thành cảm ơn!

Tp Hồ Chí Minh, ngày … tháng năm 2018

Nhóm sinh viên thực hiện

TRẦN ANH TUẤN

LÊ QUANG TÀI

Trang 5

TÓM T ẮT

Trong thời đại hiện nay với sự phát triển không ngừng của khoa học kỹ thuật Lĩnh vực điều khiển đã và đang là một trong những ngành có vai trò rất quan trọng trong đời sống

xã hội, của nền công nghiệp, kinh tế quốc dân… Bất cứ ở một vị trí nào một công việc gì

mỗi người trong chúng ta đều phải tiếp cận với điều khiển, nó là khâu quan trọng cuối cùng quyết định sự thành bại trong mọi hoạt động của chúng ta

Điều khiển vị trí hay tốc độ là một trong những vấn đề cơ bản nhất của lý thuyết điều khiển, từ đó ứng dụng vào điều khiển các vấn đề phức tạp hơn như con lắc ngược, robot cân bằng Cùng với việc cải tiến và giải quyết một số hạn chế của đề tài trước qua việc ứng

dụng board ARM STM32F407 DISCOVERY

Vì những lí do trên chúng em quyết định chọn đề tài “Ứng dụng ARM STM32F4 Discovery và Matlab/Simulink trong thiết kế các bộ điều khiển”

Trang 6

M ỤC LỤC

L ỜI CẢM ƠN i

TÓM TẮT ii

M ỤC LỤC iii

DANH M ỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU vi

DANH MỤC CÁC HÌNH vii

DANH M ỤC CÁC BẢNG x

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1

1.1 Tình hình nghiên c ứu trong và ngoài nước 1

1.1.1 Tổng quan tình hình nghiên thuộc lĩnh vực đề tài 1

1.1.2 Danh mục các công trình liên quan 1

1.2 Tính c ấp thiết của đề tài 1

1.3 Mục tiêu của đề tài 1

1.4 Phương pháp và phạm vi nghiên cứu 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3

2.1 L ịch sử phát triển lý thuyết điều khiển 3

2.1.1 Điều khiển kinh điển (classical control) 3

2.1.2 Điều khiển hiện đại (modern control) 3

2.1.3 Điều khiển thông minh (intelligent control) 4

2.2 Thành phần cơ bản của hệ thống điều khiển 4

2.3 Thi ết kế bộ điều khiển 5

2.3.1 Phần loại thiết kế bộ điều khiển 5

2.3.2 Bộ điều khiển PID 6

CHƯƠNG 3: GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG 9

3.1 Giới thiệu về MATLAB/SIMULINK 9

3.2 Gi ới thiệu về board mạch ARM STM32F407 DISCOVERY 9

3.3 Các công cụ cần chuẩn bị để làm thí nghiệm 10

3.3.1 Phần cứng 10

3.3.2 Phần mềm 10

CHƯƠNG 4: HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK 12

4.1 Chuyển đổi tín hiệu Analog sang Digital và Digital sang Analog 12

4.1.1 Giới thiệu chân ADC, DAC 12

4.1.1.1 Số lượng chân 12

4.1.1.2 Đặc tính điện áp 12

4.1.2 Thí nghiệm sử dụng khối ADC 13

4.1.2.1 Cấu hình khối Regular ADC 13

4.1.2.2 Điều khiển LED bằng biến trở 15

4.1.3 Thí nghiệm sử dụng khối DAC 17

4.1.3.1 Cấu hình khối Regular DAC 17

4.1.3.2 Tạo tín hiệu tuần hoàn 18

4.2 S ử dụng Digital Input/Output 19

4.2.1 Giới thiệu Digital Input/Output 19

Trang 7

4.2.1.1 Sơ đồ mạch đầu vào 20

4.2.1.2 Sơ đồ mạch đầu ra 20

4.2.2 Thí nghiệm sử dụng khối Digital Output 22

4.2.2.1 Cấu hình khối Digital Output 22

4.2.2.2 Điều chỉnh thời gian sáng của LED 23

4.2.3 Thí nghiệm sử dụng khối Digital Input 25

4.2.3.1 Cấu hình khối Digital Input 25

4.2.3.2 Điều chỉnh LED bằng nút nhấn 26

4.3 Sử dụng Timer/Counter 27

4.3.1 Giới thiệu Timer/Counter 27

4.3.2 Thí nghiệm sử dụng khối Basic PWM 29

4.3.2.1 Khái quát PWM 29

4.3.2.2 Cấu hình khối Basic PWM 30

4.3.2.3 Điều chỉnh độ sáng của LED dùng PWM 31

4.3.3 Thí nghiệm sử dụng khối Encoder Read 32

4.3.3.1 Giới thiệu khối Encoder Read 32

4.3.3.2 Cấu hình khối Encoder Read 34

4.3.3.3 Đọc tốc độ động cơ DC dùng khối Encoder Read 35

4.3.4 Thí nghiệm sử dụng khối Timer IRQ 36

4.3.4.1 Khái quát ngắt ngoài 36

4.3.4.2 Cấu hình khối Timer IRQ 36

4.3.4.3 Điểu khiển LED dùng khối Timer IRQ 37

4.4 Sử dụng cổng giao tiếp UART 38

4.4.1 Giới thiệu UART 38

4.4.2 Thí nghiệm sử dụng khối UART Setup và UART Tx 39

4.4.2.1 Cấu hình khối UART Setup và UART Tx 39

4.4.2.2 Truyền một giá trị từ STM32F407 DISCOVERY lên máy tính 41

4.4.3 Thí nghiệm sử dụng khối Host Serial 41

4.4.3.1 Cấu hình các khối Host Serial 41

4.4.3.2 Truyền một giá trị xuống board STM32F407 DISCOVERY 43

4.5 S ử dụng cổng giao tiếp I2C 45

4.5.1 Giới thiệu I2C 45

4.5.2 Giới thiệu cảm biến GY-521 6DOF MPU6050 46

4.5.3 Thí nghiệm sử dụng khối I2C 47

4.5.3.1 Cấu hình khối I2C 47

4.5.3.2 Thí nghiệm đọc cảm biến GY-521 6DOF MPU 6050 50

CHƯƠNG 5: MÔ HÌNH DC MOTOR 53

5.1 Gi ới thiệu phần cứng mô hình DC motor 53

5.1.1 DC motor 53

5.1.2 Mô-đun điều khiển motor 53

5.2 Xây d ựng phương trình động học 54

5.2.1 Thông số DC motor 54

5.2.2 Thiết lập phương trình vi phân 55

5.2.3 Thiết lập hàm truyền 55

5.2.4 Thiết lập phương trình không gian trạng thái 56

5.3 Bộ điều khiển DC mtor 57

Trang 8

5.3.1 .Mô hình và sơ đồ mạch điện 57

5.3.2 Giải thuật và kết quả thực nghiệm 58

5.3.3 So sánh, đánh giá với bộ điều khiển Arduino 61

CHƯƠNG 6: MÔ HÌNH CON LẮC NGƯỢC 67

6.1 Gi ới thiệu phần cứng mô hình con lắc ngược 67

6.1.1 DC motor 67

6.1.2 Cảm biến góc quay 68

6.2 Xây d ựng phương trình động học 68

6.2.1 Thông số của con lắc 68

6.2.2 Thiết lập phương trình vi phân 68

6.2.3 Thiết lập hàm truyền 71

6.3 B ộ điều khiển con lắc ngược 71

6.3.1 Mô hình và sơ đồ mạch điện 71

6.3.2 Giải thuật và kết quả thực nghiệm 72

6.3.3 So sánh và đánh giá kết quả với Arduino 73

CHƯƠNG 7: MÔ HÌNH ROBOT TỰ CÂN BẰNG 75

7.1 Gi ới thiệu phần cứng mô hình robot cân bằng 75

7.1.1 DC motor 75

7.1.2 Module điều khiển động cơ 75

7.1.3 Cảm biến gia tốc MPU 6050 76

7.2 Xây d ựng phương trình động lực học 76

7.2.1 Thông số của Robot cân bằng 76

7.2.2 Thiết lập phương trình 77

7.3 B ộ điều khiển robot cân bằngMô hình và sơ đồ mạch điện 81

7.3.1 Giải thuật 81

CHƯƠNG 8: KẾT LUẬN VÀ ĐỀ NGHỊ 82

8.1 Kết quả thực hiện 82

8.2 Hướng phát triển đề tài 82

DANH M ỤC TÀI LIỆU THAM KHẢO 83

PHỤ LỤC 84

Trang 9

DANH M ỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU

PID Proportional Intergral Derivative

Trang 10

DANH M ỤC CÁC HÌNH

Hình 2.1 Sơ đồ khối hệ thống điều khiển 5

Hình 2.2 Sơ đồ khối hiệu chỉnh nối tiếp 5

Hình 2.3 Sơ đồ khối hồi tiếp trạng thái 6

Hình 2.4 Sơ đồ khối PID 6

Hình 2.5 Sơ đồ khối bộ điều khiển P 7

Hình 2.6 Sơ đồ bộ điều khiển D 8

Hình 3.1 Phần mềm MATLAB & SIMULINK 9

Hình 3.2 Board mạch ARM STM32F407 DISCOVERY 10

Hình 4.1 Khối Regular ADC 14

Hình 4.2 Hộp thoại Regular ADC 14

Hình 4.3 Code Simulink “Chớp LED bằng điện trở” 16

Hình 4.4 Kết quả lắp mạch “biến trở điều khiển LED” 16

Hình 4.5 Kết quả đồ thị khi văn biến trở 17

Hình 4.6 Khối Regular DAC 17

Hình 4.7 Hộp thoại Regular DAC 17

Hình 4.8 Code Simulink “Tạo tín hiệu tuần hoàn” 19

Hình 4.9 Khối tạo tần số cao 19

Hình 4.10 Đồ thị xuất xuất 2 xung tam giác và sin 19

Hình 4.11 Sơ đồ mạch Pull-Up Input 20

Hình 4.12 Sơ đồ mạch Pull-Down Input 20

Hình 4.13 Sơ đồ mạch Push-Pull Output khi P-MOS mở 21

Hình 4.14 Sơ đồ mạch Push-Pull Output khi P-MOS đóng 21

Hình 4.15 Khối Digital Output 22

Hình 4.16 Hộp thoại Digital Output 22

Hình 4.17 Code Simulink “Điều chỉnh thời gian sáng LED” 23

Hình 4.18 Cách Run mô hình trên Simulink 24

Hình 4.19 Thiết lập khối Pulse Generator 24

Hình 4.20 Kết quả lắp mạch “Điều chỉnh thời gian sáng LED” 25

Hình 4.21 Đồ thị tín hiệu sáng LED 25

Hình 4.22 Khối Digital Input 25

Hình 4.23 Hộp thoại Digital Input 26

Hình 4.24 Code Simulink “Điều khiển LED bằng nút nhấn” 26

Hình 4.25 Kết quả lắp mạch “Điều khiển LED bằng nút nhấn” 27

Hình 4.26 Sự hoạt động của Timer/Counter khi Prescaler thay đổi từ 1 đến 4 28

Hình 4.27 Cách điều chỉnh độ rộng xung 29

Hình 4.28 Điều chỉnh độ rộng xung với cạnh lên 29

Hình 4.29 Điều chỉnh độ rộng xung với cạnh lên và xuống 30

Hình 4.30 Khối Basic PWM 30

Hình 4.31 Khối hộp thoại Basic PWM 30

Hình 4.32 Code Simulink “điều chỉnh độ sáng Led dùng PWM” 31

Hình 4.33 Kết quả lắp mạch “Điều chỉnh độ sáng LED dùng PWM 32

Hình 4.34 Kết quả đồ thị “Điều chỉnh độ sáng LED dùng PWM” 32

Hình 4.35 Cấu trúc bộ mã hóa quay 33

Trang 11

Hình 4.36 Tín hiệu từ kênh A, kênh B lệch pha nhau 90 độ 33

Hình 4.37 Giao diện tín hiệu xung vuông 34

Hình 4.38 Khối Encoder read 34

Hình 4.39 Khối hộp thoại Encoder Read 35

Hình 4.40 Hộp thoại khối Timer IRQ 36

Hình 4.41 Khối Timer IRQ 36

Hình 4.42 Code simulink “điều khiển LED dùng khối Timer IRQ” 37

Hình 4.43 Chương trình con đọc LED 38

Hình 4.44 Mạch điều khiển LED dùng Timer IRQ 38

Hình 4.45 Khối UART Setup 39

Hình 4.46 Khối UART Tx 39

Hình 4.47 Khối hộp thoại UART Tx 40

Hình 4.48 Code simulink “truyền một giá trị từ Board mạch lên máy tính 41

Hình 4.49 Kết quả lắp mạch “Truyền giá trị từ Board lên máy tính” 41

Hình 4.50 Kết quả gửi lên máy tính qua phần mềm Terminal 41

Hình 4.51 Hộp thoại Host Serial Setup 42

Hình 4.52 Hộp thoại Host Serial Tx 42

Hình 4.53 Hộp thoại Host Serial Rx 43

Hình 4.54 Mô hình code nạp xuống board 43

Hình 4.55 Mô hình chạy chế độ inf trên máy tính 44

Hình 4.56 Kết quả lắp mạch “Thí nghiệm truyền giá trị xuống board” 44

Hình 4.57 Đồ thị khi điều chỉnh Slider gửi giá trị xuống board 44

Hình 4.58 Sơ đồ kết nối các thiết bị trên I2C 45

Hình 4.59 Cảm biến GY-521 6DOF MPU6050 46

Hình 4.60 Khối I2C Master Setup 48

Hình 4.61 Khối hộp thoại I2C Master Setup 48

Hình 4.62 Kh ối I2C Master Read/Write 49

Hình 4.63 Khối hộp thoại I2C Master Read/Write 49

Hình 4.64 Code Simulink “Đọc cảm biến MPU6050” (1) 50

Hình 4.65 Code Simulink “Đọc cảm biến MPU6050” (2) 51

Hình 4.66 Giá trị gia tốc đọc về lúc cân bằng (đỏ - trục x; vàng – trục y; xanh – trục z) 51 Hình 4.67 Đọc giá trị góc lúc đặt cân bằng (đỏ - trục x; vàng – trục y; xanh – trục z) 52

Hình 5.1 Động cơ DC 53

Hình 5.2 Module cầu H 54

Hình 5.3 Mạch điện phần ứng và sơ đồ chuyển động rotor 54

Hình 5.4 Mô hình DC motor 57

Hình 5.5 Sơ đồ mạch điện điều khiển tốc độ DC motor 58

Hình 5.6 Giải thuật điều khiển tốc độ động cơ sử dụng STM32F407VG DISCOVERY 59 Hình 5.7 Khối đọc tốc độ động cơ “Encoder Read” 59

Hình 5.8 Chương trình hiển thị kết quả trên máy tính (real-time) 60

Hình 5.9 Kết quả điều khiển tốc độ DC motor 60

Hình 5.10 Giải thuật điều khiển tốc độ động cơ sử dụng Arduino Mega 2560 61

Hình 5.11 Kết quả đồ thị sử dụng Arduino Mega 2560 – thời gian lấy mẫu 1 ms 61

Hình 5.12 Kết quả của bộ điều khiển STM32F407 DISCOVERY – xung vuông, chu kỳ 10ms (đỏ - mong muốn; đen – thực tế) 62

Trang 12

Hình 5.13 Kết quả của bộ điều khiển ARDUINO MEGA 2560 – xung vuông, chu kỳ

10ms (đen - mong muốn; đỏ – thực tế) 62

Hình 5.14 Kết quả của bộ điều khiển STM32F407 DISCOVERY – xung vuông, chu kỳ 1ms (đỏ - mong muốn; đen – thực tế) 63

Hình 5.15 Kết quả của bộ điều khiển ARDUINO MEGA 2560 – xung vuông, chu kỳ 1ms (đỏ - mong muốn; đen – thực tế) 63

Hình 5.16 Kết quả của bộ điều khiển STM32F407 DISCOVERY – xung sin, tần số pi (đỏ - mong muốn; đen – thực tế) 64

Hình 5.17 Kết quả của bộ điều khiển ARDUINO MEGA 2560 – xung sin, tần số pi (đỏ - mong muốn; đen – thực tế) 64

Hình 5.18 Kết quả của bộ điều khiển STM32F407 DISCOVERY – xung sin, tần số 4*pi (đỏ - mong muốn; đen – thực tế) 65

Hình 5.19 Kết quả của bộ điều khiển ARDUINO MEGA 2560 – xung sin, tần số pi (đỏ - mong muốn; đen – thực tế) 65

Hình 6.1 Sơ đồ vật thể tự do hệ con lắc 68

Hình 6.2 Hình con lắc theo phương chiếu thẳng bằng 69

Hình 6.3 Hình con lắc theo phương chiếu thẳng đứng 69

Hình 6.4 Mô hình con lắc ngược 71

Hình 6.5 Sơ đồ mạch điện điều khiển con lắc ngược 72

Hình 6.6 Giải thuật điều khiển con lắc ngược 72

Hình 6.7 Kết quả thực nghiệm dùng STM32F407 DISCOVERY 73

Hình 6.8 Kết quả thực nghiệm con lắc ngược 73

Hình 6.9 Kết quả con lắc ngược dùng Arduino 73

Hình 7.1 DC motor 25GA370 75

Hình 7.2 Cầu H L298 76

Hình 7.3 MPU 6050 76

Hình 7.4 Sơ đồ tính toán robot cân bằng 77

Hình 7.6 Cẩm biến MPU6050 gá trên robot 81

Hình 7.5 Mô hình robot cân bằng 81

Hình 7.7 Sơ đồ mạch điện robot cân bằng 81

Hình 7.8 Giải thuật điều khiển robot cân bằng 81

Hình 9.1 Giao diện Website Waijung Blockset (1) 83

Hình 9.2 Giao diện Website Waijung Blockset (2) 83

Hình 9.3 Biểu tượng phần mềm Matlab/Simulink 84

Hình 9.4 Thư viện phần mềm Simulink (1) 84

Hình 9.5 Thư viện phần mềm Simulink (2) 85

Hình 9.6 Demo trong Simulink 85

Hình 9.7 Giao diện sau khi nạp thành công 86

Hình 9.8 Run file setup 87

Hình 9.9 Chọn Next để tiếp tục cài đặt 88

Hình 9.10 Qúa trình cài đặt 89

Hình 9.11 Hai cửa sổ hiện ra chọn Next và Finish 89

Hình 9.12 Mô-đun UART CP2102 89

Hình 9.13 Kết nối UART với máy tính 89

Hình 9.14 Giao diện thiết lập UART Setup (trái) và giao diện UART Tx (phải) 90

Hình 9.15 Giải nén phần mềm 90

Trang 13

DANH M ỤC CÁC BẢNG

Bảng 4.1 Số lượng chân mô-đun ADC 12

Bảng 4.2 Đặc tính điện mô-đun ADC 13

Bảng 4.3 Đặc tính điện mô-đun DAC 13

Bảng 4.4 Mô tả các chức năng trong khối ADC 15

Bảng 4.5 Nối dây biến biến trở 16

Bảng 4.6 Mô tả khối Regular DAC 18

Bảng 4.7 Đặc tính dòng điện 21

Bảng 4.8 Các khối Simulink cho điều chỉnh thời gian sáng của LED 23

Bảng 4.9 Mô tả khối Pulse Genertor 24

Bảng 4.10 Các khối Simulink cho thí nghiệm “Điều khiển LED bằng nút nhấn” 27

Bảng 4.11 Cấu hình các mô-đun Timer 28

Bảng 4.12 Mô tả khối hộp thoại Encoder Read 35

Bảng 4.13 Mô tả khối hộp thoại Timer IRQ 37

Bảng 4.14 Mô tả khối hộp thoại UART Setup 39

Bảng 4.15 Mô tả khối hộp thoại UART Tx 40

Bảng 4.16 Bảng mô tả khối hộp thoại I2C Setup 48

Bảng 4.17 Mô tả Khối hộp thoại I2C Master Read/Write 49

Bảng 5.1 Thông số mô hình hóa DC motor 54

Bảng 7.1 các đại lượng, kí hiệu, đơn vị trong phương trình 76

Trang 14

CHƯƠNG 1 : TỔNG QUAN ĐỀ TÀI

1.1 Tình hình nghiên cứu trong và ngoài nước

1.1.1 T ổng quan tình hình nghiên thuộc lĩnh vực đề tài

Trong nước: Hiện nay có nhiều đề tài nghiên cứu dùng các lý thuyết điều khiển khác

nhau: PID, Fuzzy, LQR, đề điều khiển robot cân bằng, con lắc ngược thông qua điều khiền tốc độ và vị trí của DC motor Tuy nhiên con lắc ngược và đặc biệt là robot cân bằng cũng luôn đặt ra nhiều vấn đề khó khăn đối với lý thuyết điều khiển cũng như thiết bị điều khiển chung vì nó là hệ phi tuyến

Ngoài nước: Công trình nghiên cứu chủ yếu là thiết kế hoàn chỉnh một module điều

khiển duy nhất từ phần xử lý tín hiệu, xử lý và tính toán trung tâm, công suất

1.1.2 Danh m ục các công trình liên quan

• Nghiên cứu của Mai Tuấn Đạt (Đại học Bách Khoa -thành phố Hồ Chí Minh) với

đề tài “Xe hai bánh tự cân bằng di chuyển trên địa hình phẳng”

• Trương Lê Hữu Phát – Lê Phước Vạn, Đồ án tốt nghiệp “Robot hai bánh tự cân

bằng dùng LQR”, Tp Hồ Chí Minh, 2016

• Nguyễn Tùng Lâm – Nguyễn Tường Duy, Đồ án tốt nghiệp “Thiết kế chế tạo bộ

KIT thí nghiệm phục vụ môn học điều khiển tự động”, Tp Hồ Chí Minh, 2016

1.2 Tính c ấp thiết của đề tài

Môn học ứng dụng điều khiển tự động trên ô tô là môn học được áp dụng cho sinh viên năm 3 ngành công nghệ kỹ thuật ô tô của trường Đại học Sư phạm Kỹ thuật TPHCM Môn

học này trang bị cho sinh viên các kiến thức về hệ thống điều khiển tự động Mặc dù đã

có một số ví dụ minh họa và mô hình giảng dạy nhưng qua thời gian thì một số mô hình cũng đã trở nên hư hỏng cần phải phục chế lại Thêm vào đó với việc dùng Board Arduino Mega 2560 để Kit mô hình DC motor và con lắc ngược cũng có một số hạn chế như là trong một số thời điểm cần đáp ứng nhanh thì vẫn chưa thực hiện được do tốc độ xử lí của Arduino chưa cao

Từ vấn đề trên chúng em thấy cần thiết phải nghiên cứu và ứng dụng một Board mạch khác có bộ nhớ và tốc độ xử lí nhanh hơn để đáp ứng cho vào các mô hình trên mà cụ thể

là Board ARM STM32F407 DISCOVERY

1.3 Mục tiêu của đề tài

Trang 15

Tìm hiểu các thiết bị ngoại vi và hướng dẫn sử dụng Board ARM STM32F407 DISCOVERY khi nhúng vào Matlab/Simulink

Đọc được tín hiệu cảm biến tốc độ và vị trí, cảm biến gia tốc để điều khiển các mô hình điều khiển

Điều khiển tốc độ và vị trí DC motor khi thay đổi các tín hiệu đầu vào (hằng số, xung vuông và sóng sin) và tăng dần thời gian đáp ứng

Dựa vào bài toán vị trí DC motor điều khiển con lắc ngược và robot cân bằng

Khôi phục cải tiến lại mô hình DC motor và con lắc ngược Thiết kế, chế tạo robot cân

bằng

Điều khiển, lấy kết quả thực nghiệm các mô hình và so sánh kết quả điều khiển dùng Board Arduino Mega 2560

1.4 Phương pháp và phạm vi nghiên cứu

Phương pháp nghiên cứu kết hợp giữa lý thuyết và thực nghiệm, nghiên cứu các tài liệu

về lý thuyết điều khiển tự động và các tài liệu có liên quan, dựa vào phần tính toán mô

phỏng của các đề tài trước để hiểu được lý thuyết thuật toán và mô phỏng Tìm hiểu các thiết bị ngoại vi và bảng dữ liệu của Board ARM STM32F407 để thiết lập mô hình điều khiển

Phạm vi nghiên cứu gồm điều khiển vị trí, tốc độ DC motor, cân bằng con lắc ngược chuyển động quay và robot cân bằng Từ đó, chúng em đánh giá kết quả lý thuyết và kết quả thực nghiệm dựa trên mô phỏng và thực nghiệm đồng thời đưa ra các so sánh về tốc

độ xử lí của 2 board mạch Arduino và ARM STM32F407 Cuối cùng chúng em đưa ra

nhận xét và đề xuất hướng phát triển đề tài

Trang 16

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT

2.1 Lịch sử phát triển lý thuyết điều khiển

Định nghĩa điều khiển: Điều khiển là quá trình thu nhập thông tin, xử lý thông tin và

tác động lên hệ thống để đáp ứng của hệ thống “gần” với mục đích định trước Điều khiển

tự động là quá trình điều khiển không cần sự tác động của con người

2.1.1 Điều khiển kinh điển (classical control)

Lý thuyết điều khiển kinh điển (trước 1960) mô tả hệ thống trong miền tần số (phép

biến đổi Fourier) và mặt phẳng s (phép biến đổi Laplace) Do dựa trên các phép biến đổi này, lý thuyết điều khiển kinh điển chủ yếu áp dụng cho hệ thống tuyến tính bất biến theo

thời gian, mặc dù có một vài mở rộng để áp dụng cho hệ phi tuyến, thí dụ phương pháp hàm mô tả Lý thuyết điều khiển kinh điển thích hợp để thiết kế hệ thống một ngõ vào –

một ngõ ra (SISO: single-input/single-output), rất khó áp dụng cho các hệ thống nhiều ngõ vào – nhiều ngõ ra (MIMO: multi-input/multi-ouput) và các hệ thống biến đổi theo thời gian

Các phương pháp phân tích và thiết kế hệ thống trong lý thuyết điều khiển kinh điển

gồm các phương pháp Nyquist, Bode, và phương pháp quỹ đạo nghiệm số Để thiết kế hệ

thống dùng phương pháp Nyquist và Bode cần mô tả hệ thống dưới dạng đáp ứng tần số (đáp ứng biên độ và đáp ứng pha), đây là một thuận lợi vì đáp ứng tần số có thể đo được bằng thực nghiệm Mô tả hệ thống cần để thiết dùng phương pháp quỹ đạo nghiệm số là hàm truyền, hàm truyền cũng có thể tính được từ đáp ứng tần số Hàm truyền của các hệ

thống phức tạp được tính bằng cách sử dụng sơ đồ khối hay sơ đồ dòng tín hiệu Mô tả chính xác đặc tính động học bên trong hệ thống là không cần thiết đối với các phương pháp thiết kế kinh điển, chỉ có quan hệ giữa ngõ vào và ngõ ra quan trọng

Các khâu hiệu chỉnh đơn giản như hiệu chỉnh vi tích phân tỉ lệ PID (Proportional Integral Derivative), hiệu chỉnh sớm trễ pha,… thường được sử dụng trong các hệ thống điều khiển kinh điển Ảnh hưởng của các khâu hiệu chỉnh này đến biểu đồ Nyquist, biểu

đồ Bode và quỹ đạo nghiệm số có thể thấy được dễ dàng, nhờ đó có thể dễ dàng lựa chọn được khâu hiệu chỉnh thích hợp

2.1.2 Điều khiển hiện đại (modern control)

Từ khoảng năm 1960 đến nay

Trang 17

Kỹ thuật thiết kế hệ thống điều khiển hiện đại dựa trên miền thời gian Mô tả toán học dùng để phân tích và thiết kế hệ thống là phương trình trạng thái Mô hình không gian

trạng thái có ưu điểm là mô tả được đặc tính động học bên trong hệ thống (các biến trạng thái) và có thể dễ dàng áp dụng cho hệ MIMO và hệ thống biến đổi theo thời gian Lý thuyết điều khiển hiện đại ban đầu được phát triển chủ yếu cho hệ tuyến tính, sau đó được

mở rộng cho hệ phi tuyến bằng cách sử dụng lý thuyết của Lyapunov

Bộ điều khiển được sử dụng chủ yếu trong thiết kế hệ thống điều khiển hiện đại là bộ điều khiển hiện đại là bộ điều khiển hồi tiếp trạng thái Tùy theo cách tính vector hồi tiếp

trạng thái mà ta có phương pháp phân bố cục, điều khiển tối ưu, điều khiển bền vững,…

Với sự phát triển của lý thuyết điều khiển số và hệ thống rời rạc, lý thuyết điều khiển

hiện đại rất thích hợp để thiết kế các bộ điều khiển là các chương trình phần mềm chạy trên vi xử lý và máy tính số Điều này cho phép thực thi được các bộ điều khiển có đặc tính động phức tạp hơn cũng như hiệu quả hơn so với các bộ điều khiển đơn giản như PID hay sớm trễ pha trong lý thuyết điều khiển kinh điển

2.1.3 Điều khiển thông minh (intelligent control)

Điều khiển kinh điển và điều khiển hiện đại, gọi chung là điều khiển thông thường (conventional control) có khuyết điểm là để thiết kế được hệ thống điều khiển cần phải

biết mô hình toán học của đối tượng Trong khi đó thực tế có những đối tượng điều khiển

rất phức tạp, rất khó hoặc không thể xác định được mô hình toán Các phương pháp điều khiển thông minh như điều khiển mờ, mạng thần kinh nhân tạo, thuật toán di truyền mô

phỏng/bắt chước các hệ thống thông minh sinh học, về nguyên tắc không cần dùng mô hình toán học để thiết kế hệ thống, do đó có khả năng ứng dụng thực tế rất lớn Khuyết điểm của điều khiển mờ là quá trình thiết kế mang tính thử sai, dựa vào kinh nghiệm của chuyên gia Nhờ kết hợp logic mờ với mạng thần kinh nhân tạo hay thuật toán di truyền

mà thông số bộ điều khiển mờ có thể thay đổi thông qua quá trình học hay quá trình tiến hóa, vì vậy khắc phụ được khuyết điểm thử sai Hiện nay các bộ điều khiển thông thường

kết hợp với các kỹ thuật điều khiển thông minh tạo nên các bộ điều khiển lai điều khiển các hệ thống phức tạp với chất lượng rất tốt

2.2 Thành ph ần cơ bản của hệ thống điều khiển

Trang 18

- u(t): tín hiệu điều khiển

Hình 2.1 Sơ đồ khối hệ thống điều khiển

Để thực hiện được quá trình điều khiển như định nghĩa ở trên, một hệ thống điều khiển

bắt buộc gồm có ba thành phần cơ bản là thiết bị đo lường (cảm biến), bộ điều khiển và đối tượng điều khiển Thiết bị đo lường có chức năng thu nhập thông tin, bộ điều khiển

thực hiện chức năng xử lý thông tin, ra quyết định điều khiển và đối tượng điều khiển chịu

sự tác động của tín hiệu điều khiển Hệ thống điều khiển trong thực tế rất đa dạng, sơ đồ

khối trên là cấu hình của hệ thống điều khiển thường gặp nhất

2.3 Thi ết kế bộ điều khiển

2.3.1 Ph ần loại thiết kế bộ điều khiển

Thiết kế là toàn bộ quá trình bổ sung các thiết bi phần cứng cũng như thuật toán, phần

mềm vào hệ cho trước để được hệ mới thỏa mãn yêu cầu về tính ổn định, độ chính xác, đáp ứng quá độ Có 2 cách thiết kế:

• Hiệu chỉnh nối tiếp: thêm các bộ điều khiển nối tiếp với hệ hở cho trước

Hình 2.2 Sơ đồ khối hiệu chỉnh nối tiếp

Trang 19

- Các bộ điều khiển thường được sử dụng: sớm pha, trễ pha, sớm trễ pha, P, PI,

- Phương pháp thiết kế: phân bô cực, LQR

2.3.2 Bộ điều khiển PID

Bộ điều khiển PID là bộ điều khiển hồi tiếp vòng kín, kết hợp ba bộ điều khiển vi phân,

tích phân, tỉ lệ Nó có chức năng điều khiển hệ thống đáp ứng nhanh, vọt lố thấp, sai số

xác lập bằng không nếu chọn thông số phù hợp

Mục tiêu điều khiển của bộ PID là giảm độ vọt lố (POT), giảm thời gian xác lập (t),

Hình 2.3 Sơ đồ khối hồi tiếp trạng thái

Hình 2.4 Sơ đồ khối PID

Trang 20

triệt tiêu sai số xác lập và giảm dao động

Trang 21

• Bộ điều khiển D

- Phải sử dụng kết hợp với khâu P hoặc khâu I

- Kd càng lớn thì độ vọt lố càng nhỏ

- Kd càng lớn thì đáp ứng quá độ càng nhanh

- Khâu D rất nhạy với nhiễu tần số cao

Trong thực tế, thiết kế bộ điều khiển PID bằng nhiều phương pháp như QĐNS, dùng

biểu đồ Bode, hay phương pháp giải tích nhưng rất ít dùng do khó khăn trong việc xây

dựng hàm truyền Một trong những phương pháp phổ biến để thiết kế bộ điều khiển PID

là phương pháp Zeigler – Nichols Và phương pháp điều chỉnh thủ công cũng là một trong

những phương pháp thực nghiệm phổ biến để thiết kế bộ điều khiển PID

Hình 2.6 Sơ đồ bộ điều khiển D

Trang 22

CHƯƠNG 3 : GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG

3.1 Giới thiệu về MATLAB/SIMULINK

MATLAB/SIMULINK là một chương trình viết cho máy tính PC hoạt động trong môi trường MS-DOS và môi trường WINDOWS nhằm hỗ trợ cho lập trình, các tính toán khoa

học và kỹ thuật được thiết kế với công ty “The MATHWORKS”

Thuật ngữ MATLAB được viết tắt của hai từ MATRIX và LABORATORY MATLAB được điều khiển với các tập lệnh, tác động qua bàn phím Nó cho phép tính toán số với ma

trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn

ngữ lập trình truyền thống như C, C++, và Fortran Các câu lệnh trong MATLAB rất mạnh

và có những vấn đề chỉ cần một câu lệnh là đủ giải quyết bài toán Mô phỏng trong MATLAB sẽ cho ta hình ảnh tọa độ không gian hai chiều (2D) và ba chiều (3D)

Hình 3.1 Phần mềm MATLAB & SIMULINK

SIMULINK là một phần mềm mở rộng của MATLAB (1 Toolbox của Matlab) dùng

để mô hình hóa, mô phỏng và phân tích một hệ thống động Nó cho phép mô tả hệ thống tuyến tính, hệ phi tuyến, các mô hình trong miền thời gian liên tục, hay gián đoạn hoặc

một hệ gồm cả liên tục và gián đoạn MATLAB/SIMULINK được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học Với hàng triệu kỹ sư

và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB/SIMULINK là ngôn ngữ của tính toán khoa học

3.2 Gi ới thiệu về board mạch ARM STM32F407 DISCOVERY

Trang 23

Board mạch STM32F407 Discovery là một loại kit thuộc họ vi điều khiển ARM Dòng ARM Cortex KIT STM32F4 Discovery là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn cho nhu cầu đa dạng về công nghệ Nó được ứng dụng vào rất nhiều thị trường khác nhau bao gồm các ứng dụng doanh nghiệp, mạng gia đình, cộng nghệ mạng không dây và các hệ thống ô tô

Board mạch STM32F407 Discovery có vi điều khiển chính là STM43F04VGT6 microcontroller tích hợp với chip 32-bit ARM Cortex-M4F, 1MB bộ nhớ Flash, 192Kb RAM Bo mạch tích hợp sẵn mạch nạp ST-LINK/V2 và các cảm biến khác như cảm biến gia tốc LIS302DL, bộ xử lý âm thanh MP45DT02, đèn LED thông báo trạng thái nguồn, nút nhấn, nút Reset

Hình 3.2 Board mạch ARM STM32F407 DISCOVERY

3.3 Các công cụ cần chuẩn bị để làm thí nghiệm

3.3.1 Ph ần cứng

• STM32F4 DISCOVERY

• Mạch chuyển USB UART CP2102

• Mạch điều khiển động cơ L298N

• Cáp nối, dây điện và linh kiện điện tử (điện trở, LED,…)

• Máy đo xung Hantek

ần mềm

Trang 24

• Hệ điều hành Windows 8.1 trở xuống (tốt nhất nên sử dụng Window 7)

• Phần mềm MATLAB có cái các công cụ: Simulink, Time Workshop, Time Workshop Embedded Coder

Real-• Thư viện Waijung Block

• Phần mềm ST Link Utility

• Phần mềm Terminal

• Phần mềm Hantek6022BE

Trang 25

CHƯƠNG 4 : HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG

MATLAB/SIMLINK

4.1 Chuy ển đổi tín hiệu Analog sang Digital và Digital sang Analog

4.1.1 Gi ới thiệu chân ADC, DAC

• Đặc tính điện áp của mô-đun ADC

- Điện áp chuyển đổi từ 0V đến VREF+

- Điện áp nguồn từ 1.8V đến 3.6V

• Đặc tính điện áp của mô-đun DAC

- Điện áp cấp ra 0.2V đến 3.6V

Trang 26

Bảng 4.2 Đặc tính điện mô-đun ADC

Bảng 4.3 Đặc tính điện mô-đun DAC

4.1.2 Thí nghiệm sử dụng khối ADC

4.1.2.1 Cấu hình khối Regular ADC

Đường dẫn lấy khối Regular ADC: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> ADC >> Regular ADC

Trang 27

Hình 4.1 Khối Regular ADC

Hình 4.2 Hộp thoại Regular ADC

Trang 28

Bảng 4.4 Mô tả các chức năng trong khối ADC

ADC Module 1, 2, 3 Có 3 mô-đun để lựa chọn

Output Date Type Double

Single Raw (unint16)

Lựa chọn kiểu dữ liệu cho mỗi cổng ra ADC

ADC Prescaler Auto, 2, 4, 6,

Checked/Un-Chọn chân điều khiển ADC

Sample Time (sec) -1 Thời gian lấy mẫu (chọn giá trị "-1" thì thời

gian lấy mẫu khối ADC bằng thời gian lấy mẫu hệ thống)

Enable custom port

labels

checked

Checked/Un-Thêm tiêu đề cho khối Custom output port

labels

, Tên mỗi tiêu đề cách nhau dấu phẩy

Sử dụng khối này cho ứng dụng cần xử lý tín hiệu analog bằng phần mềm Ví dụ, đọc tín hiệu analog từ cảm biến (nhiệt độ, áp suất,…), đo điện áp và dòng điện từ cảm biến Đầu ra của khối là các giá trị số từ 0 đến 4095 (STM32F4 ADC có độ phân giải 12 bit)

Khối này sẽ thiết lập chức năng đọc ADC và trả về giá trị đọc trong mỗi thời gian mẫu

4.1.2.2 Điều khiển LED bằng biến trở

• Mục đích:

- Cho phép người dùng “đọc’’ tín hiệu từ Analog từ khối Regular ADC

- Hiểu được chức năng của biến trở và ứng dụng vào điều khiển LED

• Tiến hành:

Biến trở như hình có chức năng là để thay đổi giá trị điện áp đầu vào

- LED 1 bắt đầu sáng tại 0.5V

- LED 2 bắt đầu sáng tại 1V

- LED 3 bắt đầu sáng tại 1.5V

Trang 29

- LED 4 bắt đầu sáng tại 2V

Hình 4.3 Code Simulink “Chớp LED bằng điện trở”

Bảng 4.5 Nối dây biến biến trở

Hình 4.4 Kết quả lắp mạch “biến trở điều khiển LED”

Trang 30

Hình 4.5 Kết quả đồ thị khi văn biến trở

4.1.3 Thí nghi ệm sử dụng khối DAC

4.1.3.1 Cấu hình khối Regular DAC

Đường dẫn lấy khối Regular DAC: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> DAC

Hình 4.6 Khối Regular DAC

Hình 4.7 Hộp thoại Regular DAC

Trang 31

Bảng 4.6 Mô tả khối Regular DAC

Input Type Volts (double)

Raw 12 bits (unit 16 aligned)

left-Raw 8 bits (uint8) Volt (single) Raw 12 bits (unint 16 right-aligned)

Lựa chọn kiểu dữ liệu

DAC1 (A4)

DAC2 (A5)

Checked/Un-checked Chọn chân điều khiển DAC

Input Vref voltage (between 0 - 3.3V)

raw data (between 0 - 4095)

Chọn giá trị ngưỡng (giá trị điện áp hoặc giá trị số)

-1 Thời gian lấy mẫu (chọn giá trị "-1" thì

thời gian lấy mẫu khối DAC bằng thời gian lấy mẫu hệ thống)

Khối DAC nhận đầu vào là một trong hai tín hiệu: điện áp (0 - 3.3V) hoặc dữ liệu thô (từ 0 - 4095)

4.1.3.2 Tạo tín hiệu tuần hoàn

• Mục đích:

- Tạo ra tín hiệu tuần hoàn

• Tiến hành:

Thí nghiệm này sẽ sử dụng STM32F407 Discovery để phát ra tín hiệu tuần hoàn, có hai

cổng vào Cổng vào đầu tiên sẽ gắn tín hiệu sóng tam giác với chân DAC1 (A4) mức điện

áp từ 0-2.5V Cổng đầu vào thứ hai nối tín hiệu sóng hình sin với chân DAC2 (A5) mức điện áp 0.5-2.5V

Trang 32

Chú ý: thí nghiệm ở trên lấy nguồn tín hiệu từ nguồn Simulink nên nó không phù hợp

với tín hiệu cần tần số cao do mất thời gian tính toán các hàm lượng giác Vì thế thường dùng khối Arbitrary Function Generator khi cần tần số cao

• Kết quả đo xung:

4.2 S ử dụng Digital Input/Output

4.2.1 Giới thiệu Digital Input/Output

Hình 4.8 Code Simulink “Tạo tín hiệu tuần hoàn”

Sử dụng Khối rate transion

để điều chỉnh tín hiệu liên tục (đường đen) thành tín

hi ệu rời (đường đỏ)

Hình 4.9 Khối tạo tần số cao

Hình 4.10 Đồ thị xuất xuất 2 xung tam giác và sin

Trang 33

4.2.1.1 Sơ đồ mạch đầu vào

• Pull-Up Input (điện trở kéo lên)

Hình 4.11 Sơ đồ mạch Pull-Up Input

Khi nhấn công tắc thì MCU sẽ hiểu là mức LOW

• Pull-Down Input (điện trở kéo xuống)

Khi nhấn công tắc thì MCU sẽ hiểu là mức HIGH

Hình 4.12 S ơ đồ mạch Pull-Down Input

• Floating Input (thả nổi)

Điện trở không được kết nối trong MCU nên khi chọn chế độ này cần lắp thêm điện trở bên ngoài (Pull-Up hoặc Pull-Down)

4.2.1.2 Sơ đồ mạch đầu ra

• Push-Pull Output

Mạch điều khiển bên trong có 2 con MOSFET: P-MOS và N-MOS:

- Trạng thái HIGH: P-MOS mở và N-MOS đóng, điện áp đầu ra bằng VDD

- Trạng thái LOW: P-MOS đóng và N-MOS mở, điện áp đâu ra bằng Ground

Trang 34

Hình 4.13 Sơ đồ mạch Push-Pull Output khi P-MOS mở

Nếu mắc LED theo mạch hình 4.13 trên thì LED sáng khi trạng thái “1”

Hình 4.14 Sơ đồ mạch Push-Pull Output khi P-MOS đóng

Nếu mắc LED theo mạch hình 4.14 thì LED sáng khi trạng thái “0”

Ưu điểm chọn Push-Pull Output:

- Thích hợp hệ thống yêu cầu đóng ngắt với tần số cao

- Điều khiển trực tiếp đến các thiết bị

Nhược điểm chọn Push-Pull Output:

- Dòng điện bị giới hạn Các chân của STM34F4 chịu dòng lớn nhất 25 mA (ngoài trừ PC13 – PC15 là 3 mA) Vì vậy ta thường sử dùng điện trở R = 660 Ohm mắc nối tiếp với LED để hạn dòng

Bảng 4.7 Đặc tính dòng điện

Trang 35

• Open-Drain Output

Chân output được cấp nguồn ngoài (Vext), đèn sáng ở trạng thái “0”

Ưu điểm chọn Push-Pull Output:

- Sử dụng nguồn điện áp ngoài (Vext) nên có thể dùng nguồn điện áp cao hơn VDD Nhược điểm chọn Push-Pull Output:

- Dòng điện không được quá 25 mA

4.2.2 Thí nghiệm sử dụng khối Digital Output

4.2.2.1 Cấu hình khối Digital Output

Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> I/O >> Digital Output

Hình 4.15 Khối Digital Output

Chọn cổng (A, B, C, D, E hoặc H) Tần số đầu ra (2, 25, 50, 100)

Chọn mạch Push-Pull hoặc Open-Drain

Chọn chân điều khiển

Trang 36

4.2.2.2 Điều chỉnh thời gian sáng của LED

• Mục đích :

- Giúp người dùng mô phỏng thực tế

- Biết cách sử dụng khối Pulse Generator để điều chỉnh thời gian sáng của LED

• Tiến hành:

Bảng 4.8 Các khối Simulink cho điều chỉnh thời gian sáng của LED

Khối thiết lập Target Setup Waijung Bolockset / STM32F4 target /

Device Configuration

Khối đầu ra Digital Input Waijung Bolockset / STM32F4 target / On

Chip Peripheral / IO

Kh ối tạo xung Pulse Generator Simulink / Sources

Chú ý: Trong khối Pulse Generator có một tham số quan trọng gọi là chu kì, dùng để tính ra độ rộng xung, nó quyết định thời gian sáng và tắt của LED Ví dụ người dùng muốn sáng trong 1 giây, tắt trong 3 giây và quá trình này xảy ra liên tục Như vậy độ rộng xung được tính bằng mối quan hệ sau:

% Độ rộng xung: (thời gian LED sáng) x 100/ chu kì

Ở đây chu kì là thời gian LED sáng + thời gian LED tắt = 1 + 3 =4 s

Vậy % độ rộng xung là (1) x 100 / 4 = 25%

Người dùng có thể thiết lập khối Pulse Generator như hình bên dưới và chọn vào biểu tượng Run như hình , sau đó nháy đúp vào Scope để xem sóng xung như hình Trên thực

tế người dùng không thể thấy được sự chớp của LED do tốc độ quá nhanh Nhưng ta vẫn

Hình 4.17 Code Simulink “Điều chỉnh thời gian sáng LED”

Trang 37

có thể liên tượng được bằng việc nhìn vào sóng xung, thời điểm xung ở mức cao tương ứng với LED sáng, còn ngược lại mức thấp LED tắt đồng thời ta nhìn vào cả chu kì thì

lấy LED sáng ở 25% của chu kì và tắt ở 75% của chu kì

Hình 4.18 Cách Run mô hình trên Simulink

Hình 4.19 Thiết lập khối Pulse Generator Bảng 4.9 Mô tả khối Pulse Genertor

Pulse Type Time Based

Sample Based

Xung dựa trên thời gian mô phỏng Xung dựa trên thời gian mẫu Times Use Simulatione

times Use external signal

Chọn kiểu mô phỏng: sử dụng tín hiệu mô

phỏng

Sử dụng tín hiệu bên ngoài

Trang 38

• Kết quả:

4.2.3 Thí nghi ệm sử dụng khối Digital Input

4.2.3.1 Cấu hình khối Digital Input

Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >> STM32F4 Target >> On-chip Peripherals >> I/O >> Digital Input

Hình 4.22 Khối Digital Input Hình 4.20 Kết quả lắp mạch “Điều chỉnh thời gian sáng LED”

Hình 4.21 Đồ thị tín hiệu sáng LED

Trang 39

Hình 4.23 Hộp thoại Digital Input

4.2.3.2 Điều chỉnh LED bằng nút nhấn

• Mục đích:

- Giúp người dùng đọc giá trị nút nhấn bằng khối Digital Input

- Giúp người dùng hiểu được mục đích của thí nghiệm qua đó ứng dụng vào thực

tế

• Tiến hành

Chọn cổng (A, B, C, D, E, F, G, H, I) Tần số đầu vào (2, 25, 50, 100)

Ch ọn mạch Pull-Up hoặc Pull-Down

Chọn chân điều khiển

Trang 40

Bảng 4.10 Các khối Simulink cho thí nghiệm “Điều khiển LED bằng nút nhấn”

Kh ối thiết lập Target Setup Waijung Bolockset / STM32F4 target /

Device Configuration

Kh ối Digital đầu vào Digital Input Waijung Bolockset / STM32F4 target / On Chip Peripheral / IO Khối Digital đầu ra Digital Output Waijung Bolockset / STM32F4 target /

On Chip Peripheral / IO Khi người dùng chạy chương trình này LED sẽ sáng khi nhấn nút và LED tắt khi nhả nút Chương trình sẽ luôn gửi tín hiệu khi nhấn nút và ngừng gửi khi nhả nút Chúng ta

thấy mô hình này phù hợp cho việc điều khiển bằng tay như máy cẩu, máy nâng…

• Kết quả

Hình 4.25 Kết quả lắp mạch “Điều khiển LED bằng nút nhấn”

4.3 Sử dụng Timer/Counter

4.3.1 Gi ới thiệu Timer/Counter

Mỗi vi điều khiển điều có một tín hiệu Clock giúp xử lí chương trình, thông thường Clock thường có tín hiệu Digital với tần số cao và được thiết lập cả trong và ngoài quá trình xử lí dữ liệu Tốc độ của Clock ảnh hưởng đến khả năng xử lí của Vi điều khiển nhanh hoặc chậm

Tín hiệu Clock được sử dụng nhiều trong các mô-đun như mô-đun ADC, các mô-đun giao tiếp và đặc biệt là các mô-đun Timer

• Đặc điểm của mô-đun Timer:

- Thanh ghi của bộ đếm có 16 bit kiểu dữ liệu số nguyên, khi có một cạnh lên hoặc một tín hiệu bên ngoài vào cổng của Timer thì bộ điếm sẽ hoạt động

Ngày đăng: 23/06/2023, 18:50

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