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 đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô

99 292 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 đề Ứng Dụng ARM STM32F4 Discovery Và MATLAB Simulink Trong Thiết Kế Các Bộ Điều Khiển
Chuyên ngành Công Nghệ Kỹ Thuật Ô Tô
Thể loại Đồ Án Tốt Nghiệp
Định dạng
Số trang 99
Dung lượng 3,12 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI (9)
    • 1.1. Tình hình nghiên cứu trong và ngoài nước (9)
      • 1.1.1. Tổng quan tình hình nghiên thuộc lĩnh vực đề tài (9)
      • 1.1.2. Danh mục các công trình liên quan (9)
    • 1.2. Tính cấp thiết của đề tài (9)
    • 1.3. Mục tiêu của đề tài (9)
    • 1.4. Phương pháp và phạm vi nghiên cứu (10)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (11)
    • 2.1. Lịch sử phát triển lý thuyết điều khiển (11)
      • 2.1.1. Điều khiển kinh điển (classical control) (11)
      • 2.1.2. Điều khiển hiện đại (modern control) (11)
      • 2.1.3. Điều khiển thông minh (intelligent control) (12)
    • 2.2. Thành phần cơ bản của hệ thống điều khiển (12)
    • 2.3. Thiết kế bộ điều khiển (13)
      • 2.3.1. Phần loại thiết kế bộ điều khiển (13)
      • 2.3.2. Bộ điều khiển PID (14)
  • CHƯƠNG 3: GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG (17)
    • 3.1. Giới thiệu về MATLAB/SIMULINK (17)
    • 3.2. Giới thiệu về board mạch ARM STM32F407 DISCOVERY (17)
    • 3.3. Các công cụ cần chuẩn bị để làm thí nghiệm (18)
      • 3.3.1. Phần cứng (18)
      • 3.3.2. Phần mềm (0)
  • CHƯƠNG 4: HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK (20)
    • 4.1. Chuyển đổi tín hiệu Analog sang Digital và Digital sang Analog (20)
      • 4.1.1. Giới thiệu chân ADC, DAC (20)
        • 4.1.1.1. Số lượng chân (20)
        • 4.1.1.2. Đặc tính điện áp (20)
      • 4.1.2. Thí nghiệm sử dụng khối ADC (21)
        • 4.1.2.1. Cấu hình khối Regular ADC (21)
        • 4.1.2.2. Điều khiển LED bằng biến trở (23)
      • 4.1.3. Thí nghiệm sử dụng khối DAC (25)
        • 4.1.3.1. Cấu hình khối Regular DAC (25)
        • 4.1.3.2. Tạo tín hiệu tuần hoàn (26)
    • 4.2. Sử dụng Digital Input/Output (27)
      • 4.2.1. Giới thiệu Digital Input/Output (27)
        • 4.2.1.1. Sơ đồ mạch đầu vào (28)
        • 4.2.1.2. Sơ đồ mạch đầu ra (28)
      • 4.2.2. Thí nghiệm sử dụng khối Digital Output (30)
        • 4.2.2.1. Cấu hình khối Digital Output (30)
        • 4.2.2.2. Điều chỉnh thời gian sáng của LED (31)
      • 4.2.3. Thí nghiệm sử dụng khối Digital Input (33)
        • 4.2.3.1. Cấu hình khối Digital Input (33)
        • 4.2.3.2. Điều chỉnh LED bằng nút nhấn (34)
    • 4.3. Sử dụng Timer/Counter (35)
      • 4.3.1. Giới thiệu Timer/Counter (35)
      • 4.3.2. Thí nghiệm sử dụng khối Basic PWM (37)
        • 4.3.2.1. Khái quát PWM (37)
        • 4.3.2.2. Cấu hình khối Basic PWM (38)
        • 4.3.2.3. Điều chỉnh độ sáng của LED dùng PWM (39)
      • 4.3.3. Thí nghiệm sử dụng khối Encoder Read (40)
        • 4.3.3.1. Giới thiệu khối Encoder Read (40)
        • 4.3.3.2. Cấu hình khối Encoder Read (42)
        • 4.3.3.3. Đọc tốc độ động cơ DC dùng khối Encoder Read (43)
      • 4.3.4. Thí nghiệm sử dụng khối Timer IRQ (44)
        • 4.3.4.1. Khái quát ngắt ngoài (44)
        • 4.3.4.2. Cấu hình khối Timer IRQ (44)
        • 4.3.4.3. Điểu khiển LED dùng khối Timer IRQ (45)
    • 4.4. Sử dụng cổng giao tiếp UART (46)
      • 4.4.1. Giới thiệu UART (46)
      • 4.4.2. Thí nghiệm sử dụng khối UART Setup và UART Tx (47)
        • 4.4.2.1. Cấu hình khối UART Setup và UART Tx (47)
        • 4.4.2.2. Truyền một giá trị từ STM32F407 DISCOVERY lên máy tính (49)
      • 4.4.3. Thí nghiệm sử dụng khối Host Serial (49)
        • 4.4.3.1. Cấu hình các khối Host Serial (49)
        • 4.4.3.2. Truyền một giá trị xuống board STM32F407 DISCOVERY (51)
    • 4.5. Sử dụng cổng giao tiếp I2C (53)
      • 4.5.1. Giới thiệu I2C (53)
      • 4.5.2. Giới thiệu cảm biến GY-521 6DOF MPU6050 (54)
      • 4.5.3. Thí nghiệm sử dụng khối I2C (55)
        • 4.5.3.1. Cấu hình khối I2C (55)
        • 4.5.3.2. Thí nghiệm đọc cảm biến GY-521 6DOF MPU 6050 (58)
  • CHƯƠNG 5: MÔ HÌNH DC MOTOR (61)
    • 5.1. Giới thiệu phần cứng mô hình DC motor (61)
      • 5.1.1. DC motor (61)
      • 5.1.2. Mô-đun điều khiển motor (61)
    • 5.2. Xây dựng phương trình động học (62)
      • 5.2.1. Thông số DC motor (62)
      • 5.2.2. Thiết lập phương trình vi phân (63)
      • 5.2.3. Thiết lập hàm truyền (63)
      • 5.2.4. Thiết lập phương trình không gian trạng thái (64)
      • 5.3.2. Giải thuật và kết quả thực nghiệm (66)
      • 5.3.3. So sánh, đánh giá với bộ điều khiển Arduino (69)
  • CHƯƠNG 6: MÔ HÌNH CON LẮC NGƯỢC (75)
    • 6.1. Giới thiệu phần cứng mô hình con lắc ngược (75)
      • 6.1.1. DC motor (75)
      • 6.1.2. Cảm biến góc quay (76)
    • 6.2. Xây dựng phương trình động học (76)
      • 6.2.1. Thông số của con lắc (76)
      • 6.2.2. Thiết lập phương trình vi phân (76)
      • 6.2.3. Thiết lập hàm truyền (79)
    • 6.3. Bộ điều khiển con lắc ngược (79)
      • 6.3.1. Mô hình và sơ đồ mạch điện (79)
      • 6.3.2. Giải thuật và kết quả thực nghiệm (80)
      • 6.3.3. So sánh và đánh giá kết quả với Arduino (81)
  • CHƯƠNG 7: MÔ HÌNH ROBOT TỰ CÂN BẰNG (83)
    • 7.1. Giới thiệu phần cứng mô hình robot cân bằng (83)
      • 7.1.1. DC motor (83)
      • 7.1.2. Module điều khiển động cơ (83)
      • 7.1.3. Cảm biến gia tốc MPU 6050 (84)
    • 7.2. Xây dựng phương trình động lực học (84)
      • 7.2.1. Thông số của Robot cân bằng (84)
      • 7.2.2. Thiết lập phương trình (85)
    • 7.3. Bộ điều khiển robot cân bằngMô hình và sơ đồ mạch điện (89)
      • 7.3.1. Giải thuật (89)
  • CHƯƠNG 8: KẾT LUẬN VÀ ĐỀ NGHỊ (90)
    • 8.1. Kết quả thực hiện (90)
    • 8.2. Hướng phát triển đề tài (90)
  • PHỤ LỤC (92)

Nội dung

CƠ SỞ LÝ THUYẾT

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

Điều khiển là quá trình thu thập và xử lý thông tin nhằm tác động lên hệ thống, giúp hệ thống hoạt động gần gũi với mục tiêu đã định Điều khiển tự động diễn ra mà không cần sự can thiệp 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, phát triển trước năm 1960, sử dụng các phép biến đổi Fourier và Laplace để mô tả hệ thống trong miền tần số và mặt phẳng s Mặc dù chủ yếu áp dụng cho các hệ thống tuyến tính bất biến theo thời gian, lý thuyết này cũng có một số mở rộng cho hệ phi tuyến, chẳng hạn như phương pháp hàm mô tả Nó phù hợp cho việc thiết kế hệ thống một ngõ vào – một ngõ ra (SISO), nhưng gặp khó khăn khi áp dụng cho các hệ thống nhiều ngõ vào – nhiều ngõ ra (MIMO) và các hệ thống có sự 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 bao gồm Nyquist, Bode và quỹ đạo nghiệm số Để áp dụng phương pháp Nyquist và Bode, hệ thống cần được mô tả dưới dạng đáp ứng tần số, bao gồm đáp ứng biên độ và đáp ứng pha, điều này thuận lợi vì có thể đo được thực nghiệm Đối với phương pháp quỹ đạo nghiệm số, hệ thống cần được mô tả bằng hàm truyền, có thể tính từ đáp ứng tần số Hàm truyền của các hệ thống phức tạp thường được xác định thông qua sơ đồ khối hoặc sơ đồ dòng tín hiệu Trong các phương pháp thiết kế kinh điển, việc mô tả chính xác đặc tính động học bên trong hệ thống không phải là yếu tố quan trọng, mà chỉ cần quan tâm đến mối quan hệ giữa ngõ vào và ngõ ra.

Các khâu hiệu chỉnh đơn giản như PID (Proportional Integral Derivative) và hiệu chỉnh sớm trễ pha thường được áp dụng trong 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ố rất rõ ràng, giúp việc lựa chọn khâu hiệu chỉnh phù hợp trở nên dễ dàng hơn.

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

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

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 sử dụng phương trình trạng thái để phân tích và thiết kế hệ thống Mô hình không gian trạng thái có ưu điểm nổi bật trong việc mô tả đặc tính động học bên trong hệ thống thông qua các biến trạng thái, đồng thời 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 tập trung vào hệ tuyến tính, nhưng sau đó đã được mở rộng cho hệ phi tuyến nhờ vào lý thuyết của Lyapunov.

Bộ điều khiển hồi tiếp trạng thái là công cụ chính trong thiết kế hệ thống điều khiển hiện đại, cho phép áp dụng nhiều phương pháp như phân bố cục, điều khiển tối ưu và điều khiển bền vững Sự phát triển của lý thuyết điều khiển số và hệ thống rời rạc đã làm cho lý thuyết điều khiển hiện đại trở nên lý tưởng cho việc thiết kế các bộ điều khiển dưới dạng phần mềm chạy trên vi xử lý và máy tính số Nhờ đó, các bộ điều khiển có thể thực hiện các đặc tính động phức tạp và hiệu quả hơn so với các bộ điều khiển truyền thống như PID hay sớm trễ pha.

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.

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

Chú thích các ký hiệu viết tắt:

- r(t): tín hiệu vào, tín hiệu chuẩn

- cht(t): tín hiệu hồi tiếp

Hệ thống điều khiển bao gồm ba thành phần cơ bản: 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 thu thập thông tin, bộ điều khiển xử lý thông tin và đưa ra quyết định điều khiển, trong khi đối tượng điều khiển chịu tác động từ tín hiệu điều khiển Sơ đồ khối hệ thống điều khiển là cấu hình phổ biến nhất trong thực tế.

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à quá trình tích hợp phần cứng, thuật toán và phần mềm vào hệ thống hiện có nhằm tạo ra một hệ thống mới đáp ứng các yêu cầu về tính ổn định, độ chính xác và khả năng đáp ứng Có hai phương pháp thiết kế chính.

• 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

- 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ế ở dạng này là phương pháp QĐNS, phương pháp biểu đồ

• Điều khiển hồi tiếp trạng thái: Tất cả các trạng thái của hệ thống được phản hồi trở về ngõ vào

- Khi đó, bộ điều khiển sẽ là: r(t) - Kx(t), với K = [k i k 2 k n ] lá vector hồi tiếp trạng thái

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

Bộ điều khiển PID là một hệ thống điều khiển hồi tiếp vòng kín, bao gồm ba thành phần chính: vi phân, tích phân và tỉ lệ Nó được thiết kế để kiểm soát hệ thống với phản ứng nhanh, giảm thiểu độ vọt lố và đảm bảo sai số xác lập bằng không khi các thông số được chọn phù hợp.

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

Hình 2.4 Sơ đồ khối PID triệt tiêu sai số xác lập và giảm dao động

- Hàm truyền của bộ điều khiển P là Kp

- Kp càng lớn thì tốc độ đáp ứng càng nhanh

- Kp càng lớn thì sai số xác lập càng nhỏ

- Kp tăng quá lớn thì vọt lố càng cao, nếu tăng nữa thì hệ thống mất ổn định và dao động không tắt dần

- Hàm truyền của nó là Ki/s

- Ki càng lớn thì độ vọt lố càng ca

- Ki càng lớn thì sai số xác lập càng nhỏ

- Ki càng lớn thì đáp ứng quá độ càng lâu

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

- 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 thiết kế bộ điều khiển PID, có nhiều phương pháp như QĐNS, biểu đồ Bode và phương pháp giải tích, nhưng chúng ít được sử dụng do khó khăn trong việc xây dựng hàm truyền Phương pháp Zeigler – Nichols là một trong những phương pháp phổ biến để thiết kế bộ điều khiển PID Ngoài ra, phương pháp điều chỉnh thủ công cũng được xem là một trong những phương pháp thực nghiệm phổ biến trong quá trình thiết kế bộ điều khiển PID.

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

GIỚI THIỆU PHẦN MỀM VÀ PHẦN CỨNG

Giới thiệu về MATLAB/SIMULINK

MATLAB/SIMULINK là phần mềm được phát triển bởi công ty The MATHWORKS, hoạt động trên hệ điều hành MS-DOS và WINDOWS, nhằm hỗ trợ lập trình cũng như thực hiện các tính toán khoa học và kỹ thuật.

MATLAB là viết tắt của "MATRIX" và "LABORATORY", cho phép người dùng thực hiện các tính toán số với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, cũng như thực hiện các thuật toán phức tạp Được điều khiển thông qua các tập lệnh, MATLAB đơn giản hóa việc giải quyết các bài 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 Với sức mạnh của các câu lệnh trong MATLAB, nhiều vấn đề có thể được giải quyết chỉ bằng một dòng lệnh Ngoài ra, MATLAB còn hỗ trợ mô phỏng với 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à phần mềm mở rộng của MATLAB, được sử dụng để mô hình hóa, mô phỏng và phân tích hệ thống động Phần mềm này cho phép mô tả các hệ thống tuyến tính, phi tuyến, và mô hình trong miền thời gian liên tục hoặc gián đoạn MATLAB/SIMULINK được ứng dụng rộng rãi trong các lĩnh vực như 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 và 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 cả môi trường công nghiệp và hàn lâm, MATLAB/SIMULINK đã trở thành ngôn ngữ tiêu chuẩn cho tính toán khoa học.

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

Board mạch STM32F407 Discovery là một kit vi điều khiển ARM Cortex thế hệ mới, cung cấp kiến trúc chuẩn đáp ứng nhu cầu công nghệ đa dạng Sản phẩm này được ứng dụng rộng rãi trong nhiều lĩnh vực, bao gồm doanh nghiệp, mạng gia đình, công nghệ mạng không dây và hệ thống ô tô.

Board mạch STM32F407 Discovery sử dụng vi điều khiển STM32F407VGT6 với chip 32-bit ARM Cortex-M4F, tích hợp 1MB bộ nhớ Flash và 192KB RAM Bo mạch này còn được trang bị mạch nạp ST-LINK/V2 cùng với các cảm biến 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 và nút Reset.

Hình 3.2 Board mạch ARM STM32F407 DISCOVERY

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

• 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,…)

• 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, Real-Time Workshop, Real- Time Workshop Embedded Coder

• Phần mềm ST Link Utility

HƯỚNG DẪN SỬ DỤNG THƯ VIỆN WAIJUNG TRONG MATLAB/SIMLINK

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

Số chân ADC để tiếp nhận tín hiệu điện áp từ thiết bị bên ngoài và số chân DAC để truyền tín hiệu điện áp đến thiết bị bên ngoài được minh họa trong hình dưới đây.

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

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

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

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

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

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

Lựa chọn ADC clock prescaler để tối ưu hóa tốc độ chuyển đổi

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)

Thêm tiêu đề cho khối

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

Khối này được thiết kế cho các ứng dụng xử lý tín hiệu analog qua phần mềm, chẳng hạn như đọc tín hiệu từ cảm biến nhiệt độ, áp suất, hoặc đo điện áp và dòng điện Đầu ra của khối là các giá trị số trong khoảng từ 0 đến 4095, tương ứng với độ phân giải 12 bit của ADC STM32F4 Nó sẽ thiết lập chức năng đọc ADC và cung cấp giá trị đọc tại mỗi thời gian mẫu.

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

- 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

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

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

Chân Biến trở STM32F407G Discovery

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.7 Hộp thoại Regular DAC

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

Cấu hình Tùy chọn, Gía trị Mô tả

Raw 12 bits (unit 16 left- aligned)

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

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

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ố)

Enable/Disable Bộ nhớ đệm

Read Anx; x=0 đến 15 Checked/Un-checked Chọn chân điều khiển DAC

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

Checked/Un-checked Thêm tiêu đề cho khối

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

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

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

Thí nghiệm sử dụng STM32F407 Discovery để phát tín hiệu tuần hoàn, với hai cổng vào Cổng vào đầu tiên kết nối tín hiệu sóng tam giác tới chân DAC1 (A4) với mức điện áp từ 0-2.5V Cổng vào thứ hai nối tín hiệu sóng hình sin tới chân DAC2 (A5) với mức điện áp từ 0.5-2.5V.

Lưu ý rằng thí nghiệm trên sử dụng tín hiệu từ nguồn Simulink, do đó không phù hợp với tín hiệu có tần số cao vì thời gian tính toán các hàm lượng giác Vì vậy, khi cần tần số cao, thường sử dụng khối Phát Sinh Hàm Tùy Ý (Arbitrary Function Generator).

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

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

Chế độ Floating Input (thả nổi) yêu cầu lắp thêm điện trở bên ngoài (Pull-Up hoặc Pull-Down) vì điện trở không được kết nối trong MCU.

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

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

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 trên các chân của STM34F4 bị giới hạn, với dòng tối đa là 25 mA, ngoại trừ các chân PC13 đến PC15 chỉ cho phép 3 mA Để bảo vệ LED, thường sử dụng điện trở R = 660 Ohm mắc nối tiếp nhằm hạn chế dòng điện.

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

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

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

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

- 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

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 /

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

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

Màn hình Scope Simulink / Sink

Trong khối Pulse Generator, chu kỳ là một tham số quan trọng, ảnh hưởng đến độ rộng xung và thời gian sáng tắt của LED Ví dụ, nếu người dùng muốn LED sáng trong 1 giây và tắt trong 3 giây liên tục, độ rộng xung sẽ được tính theo mối quan hệ giữa thời gian sáng và tắt.

% Độ 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 và nhấn vào biểu tượng Run Sau đó, nháy đúp vào Scope để quan sát sóng xung Mặc dù thực tế người dùng không thể nhìn thấy sự chớp của LED do tốc độ quá nhanh, nhưng vẫn có thể theo dõi tín hiệu.

Mã Simulink “Điều chỉnh thời gian sáng LED” thể hiện rõ sự tương quan giữa sóng xung và trạng thái của LED Khi xung ở mức cao, LED sẽ sáng, và khi xung ở mức thấp, LED sẽ tắt Đặc biệt, LED được bật trong 25% thời gian của chu kỳ và tắt trong 75% còn lại.

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

Cấu hình Tùy chọn Giá trị Mô tả

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

Period secs Chu kỳ (T = Ton + Toff)

Pulse width % Độ rộng xung

Phase delay secs Thời gian delay

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

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

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

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

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 /

Khối Digital đầu vào Digital Input Waijung Bolockset / STM32F4 target /

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

Khi người dùng chạy chương trình trên Chip Peripheral/IO, LED sẽ sáng khi nhấn nút và tắt khi nhả nút Chương trình liên tục gửi tín hiệu khi nút được nhấn và ngừng khi nhả Mô hình này rất phù hợp cho việc điều khiển bằng tay, như trong các ứng dụng máy cẩu và máy nâng.

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

Sử dụng Timer/Counter

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

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:

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

Bộ đếm lên (up counter) bắt đầu từ 0 và đếm đến một giá trị đã được thiết lập trước Khi đạt đến ngưỡng giá trị này, bộ đếm sẽ tự động quay lại 0 và tiếp tục quá trình đếm giống như trước.

Bộ đếm ngược bắt đầu từ một giá trị đã được thiết lập trước và đếm lùi cho đến khi đạt giá trị 0 Khi bộ đếm về 0, nó sẽ tự động khởi động lại từ giá trị ban đầu và tiếp tục quá trình đếm lùi tương tự.

- Up-Down counter: bắt đầu đếm từ 0 đến một giá trị đặt trước, khi đến ngưỡng giá trị đặt trước thì bộ đếm lùi về 0

Prescaler divider là một mạch đếm được sử dụng để giảm tín hiệu tần số cao thành tín hiệu tần số thấp thông qua phép chia số nguyên Người dùng có khả năng lựa chọn giá trị chia trong khoảng từ 0 đến 65535.

Trong STM32F4DISCOVERY, có 17 mô-đun có kết hợp với tín hiệu Clock và trong đó có 14 mô-đun dùng cho Timer

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

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

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

PWM là một tín hiệu dạng sóng tuần hoàn với tần số rời rạc, cho phép có thể điều chỉnh độ rộng xung ở mức cao và mức thấp

Có hai cách điều chỉnh xung:

Dùng công thức tính toán:

% Độ rộng xung: = (𝑡 𝑂𝑁 x 100) / Chu kì

Với Period là chu kì

Việc điều chỉnh độ rộng xung được thực hiện thông qua việc so sánh hai tín hiệu: tín hiệu tam giác và tín hiệu tham chiếu mong muốn.

Trong mô-đun Timer của STM32F407VG DISCOVERY, giá trị Counter được sử dụng để so sánh tín hiệu tam giác với tín hiệu mong muốn Khi giá trị Counter thấp hơn tín hiệu mong muốn, tín hiệu đầu ra sẽ ở mức ON; ngược lại, nếu giá trị Counter cao hơn, tín hiệu đầu ra sẽ ở mức OFF.

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

Ngoài ra giá trị Counter có thể đếm cả cạnh lên và xuống (Up-Down Counter)

Trong phần 4.3.2.2, cấu hình khối Basic PWM được thực hiện thông qua đường dẫn lấy khối PWM trong thư viện Simulink, cụ thể là: Simulink Library >> Waijung Blockset >> STM32F4 target >> On Peripheral Chip >> TIM Hình 4.29 minh họa việc điều chỉnh độ rộng xung với các cạnh lên và xuống.

Chu kì của tín hiệu PWM

Chọn cực tính của xung ‘’Cao hoặc Thấp’’

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

- Điều chỉnh độ rộng xung PWM bằng biến trở

- Điều chỉnh độ rộng xung PWM với nhiều kênh

- Điều chỉnh độ sáng của LED bằng tín hiệu PWM

Giá trị điện áp đầu ra Vout thay đổi theo biến trở kết nối với chân PA5, trong khi LED được kết nối với chân PA0 Biến trở điều chỉnh độ rộng xung của điện áp tại chân PA5; khi điện áp tăng, độ sáng của LED cũng tăng theo, và ngược lại, khi điện áp giảm, độ sáng của LED sẽ giảm.

Khi LED được nối với chân PA1 độ sáng của LED sẽ tăng chậm và sau đó LED tắt, quá trình này sẽ được lặp lại

Khi LED được nối với chân PA2 độ sáng của LED sẽ mạnh sau đó giảm dần rồi tắt và lặp lại như vậy

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

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

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

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

Encoder là thiết bị cơ điện dùng để đo vị trí góc hoặc tốc độ quay của động cơ, bao gồm một đĩa tròn có rãnh gắn vào trục chính Thiết bị này có đầu đọc với 1 - 3 bộ thu phát quang, và đầu ra là xung vuông Độ phân giải của encoder phụ thuộc vào số rãnh trên một vòng, ví dụ như bộ mã hóa 180 số kênh có khả năng đo góc lên tới 2.0 độ.

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

Khi trục bộ mã hóa quay, các khe trên đĩa đi qua cảm biến ánh sáng, cho phép máy dò ảnh ở đầu thu nhận tín hiệu ánh sáng Khi bộ cảm biến kết nối với mạch tín hiệu, hệ thống có khả năng xác định số độ mà động cơ đã xoay.

Hình 4.35 cho thấy các đĩa được xếp chồng lên nhau trong hai hàng Để xác định hướng xoay của động cơ, có thể đo chênh lệch pha giữa tín hiệu kênh A và kênh B Nếu tín hiệu kênh A dẫn trước kênh B, động cơ sẽ quay theo chiều kim đồng hồ (CW); ngược lại, nếu tín hiệu kênh A bị trễ so với kênh B, động cơ sẽ quay ngược chiều kim đồng hồ (CCW), như thể hiện trong hình 4.36 Để phát hiện hướng quay, cần hai bộ mạch giải mã để biểu thị CW và CCW với giá trị 0 và 1 Dựa trên số đọc từ bộ giải mã, tín hiệu đếm sẽ được điều chỉnh tăng hoặc giảm.

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

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

Một lợi thế khác của việc sử dụng tín hiệu với sự khác biệt pha 90 là người dùng có khả năng điều chỉnh độ phân giải của số đếm hiển thị, như thể hiện trong Hình 4.37.

Tín hiệu kênh A được xác định là tín hiệu tham chiếu Khi biên độ tăng và giảm của kênh A đạt 3, số đếm là (x1) Nếu biên độ tăng và giảm của tín hiệu đạt 6, tức là gấp đôi số xung tín hiệu, thì số đếm là (x2).

12 thì số đếm là (x4) gấp 4 lần số xung tín hiệu kênh A

Nếu đĩa bộ mã hóa có 180 kênh, để đếm bốn lần, số kênh trên mỗi chu kỳ sẽ là 180 x 4 = 720 vị trí Do đó, độ phân giải thấp nhất có thể đạt được là 360/720 = 0,5 độ.

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

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

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

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

Cấu hình Tùy chọn Giá trị Mô tả

Channel A, B Kênh đọc tín hiệu encoder

PPR Số xung đếm được khi quay 1 vòng

Reset Counter Chọn/Không chọn

Sample Time giây Thời gian lấy mẫu

Số xung mà encoder đọc được tính:

- Từ 0 đến PPRx4 khi sử dụng cả 2 kênh A và B

- Từ 0 đến PPRx2 khi sử dụng 1 trong 2 kênh A, B

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

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

- Biết cách sử dụng khối Encoder

- Đọc được tốc độ (xung) của DC thông qua khôi Encoder

- Kết nối Encoder với UART hiển thi tốc độ DC lên máy tính

Thí nghiệm sẽ được trình bày rõ trong “Chương 5: Mô hình DC motor”

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

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

Trong các hệ thống nhúng hiện nay, chip vi điều khiển cho phép kết nối với nhiều thiết bị bên ngoài để truyền và nhận thông tin STM32F407VG DISCOVERY hỗ trợ giao tiếp UART, giúp kết nối với các thiết bị như máy tính, mô-đun GPS, và Wi-Fi Giao thức không đồng bộ của UART cho phép truyền và nhận dữ liệu hai chiều một cách dễ dàng Để truyền dữ liệu từ máy tính hoặc nhận dữ liệu lên máy tính, chúng ta sử dụng thư viện UART (UART Setup, UART Tx, UART Rx) trong Waijung Blockset, đồng thời thiết lập phần mềm Terminal để tạo giao diện truyền và nhận dữ liệu.

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

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

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

• UART Setup: Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >>

STM32F4 Target >> On-chip Peripherals >> UART >> UART Setup

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

Cấu hình Tùy chọn, Gía trị Mô tả

UART Module 1| 2| 3| 4| 5| 6 Có 6 mô-đun lựa chọn

Tốc độ truyền dữ liệu của các mô-đun khác nhau có sự khác biệt rõ rệt Khi lựa chọn mô-đun 1 và mô-đun 6, người dùng có thể đạt tốc độ truyền tối đa 10,5 Mbps Trong khi đó, nếu chọn mô-đun 2, 3, 4 hoặc 5, tốc độ truyền cao nhất chỉ đạt 5,25 Mbps Tất cả các mô-đun đều sử dụng 8 bit dữ liệu.

Parity None| Odd| Even Lựa chọn chẵn, lẻ

Tx pin Chọn chân truyền dữ liệu

Rx pin Chọn chân nhận dữ liệu

Khối UART Tx trong vi điều khiển cho phép truyền dữ liệu ra ngoài qua chân Tx, mang lại sự thuận tiện trong việc truyền thông Người dùng có thể chọn một trong ba chế độ dữ liệu để truyền: ASCII Mode, Binary Mode và String Buffer Mode Để truy cập khối Digital Output, hãy vào thư viện Simulink >> Waijung Blockset.

STM32F4 Target >> On-chip Peripherals >> UART >> UART Tx

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

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

Cấu hình Tùy chọn, Giá trị Mô tả

UART Module 1|2|3|4|5|6 Có 6 mô-đun để lựa chọn

Chọn cách truyền dữ liệu:

Blocking: Phải đợi truyền xong dữ liệu này rồi mới xử lí dữ liệu tiếp theo

Non-Blocking : không cần đợi truyền hết dữ liệu mới gửi lên

Có thể cùng lúc truyền dữ liệu khác

Chọn kiểu dữ liệu muốn truyền

Cách kết thúc khi dữ liệu được truyền lên

''\r'' chỉ nhận lên ''\n'' xuống dòng mới ''\r\n'' Nhận lên sau đó xuống dòng mới

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

"-1" thì thời gian lấy mẫu khối UART Tx bằng thời gian lấy

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

- Biết cách hoạt động của khối UART Tx

- Hiểu được cách chọn kiểu dữ liệu ASCII

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

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

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

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

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

Chọn cổng kết nối (Khi cổng chọn là , khối sẽ tự động quét cổng khả dụng)

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

Chọn kiểu truyền dữ liệu

Hình 4.53 Hộp thoại Host Serial Rx 4.4.3.2 Truyền một giá trị xuống board STM32F407 DISCOVERY

- Sử dụng các Host Serial để truyền giá trị từ máy tính xuống board và từ board gửi lên lại máy tính

- Ta cần tạo 2 mô hình bên dưới:

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

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

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

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

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

4.5.1 Giới thiệu I2C Đầu năm 1980 hãng Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit Đây là đường Bus giao tiếp giữa các IC với nhau Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại

Các loại IC bao gồm Vi điều khiển AVR, ARM, chip nhớ như RAM tĩnh, EEPROM, cũng như các bộ chuyển đổi tương tự số (ADC) và số tương tự (DAC) Ngoài ra, còn có các IC điều khiển LCD và LED, đóng vai trò quan trọng trong các ứng dụng điện tử hiện đại.

I2C sử dụng hai đường truyền tín hiệu chính: đường xung nhịp đồng hồ SCL (Serial Clock Line) do Master phát ra với tần số thông thường là 100kHz và 400kHz, có thể đạt tối đa 1MHz và 3.4MHz Đường dữ liệu SDA (Serial Data Line) cho phép truyền dữ liệu theo hai hướng.

Trên bus I2C, nhiều thiết bị có thể được kết nối mà không xảy ra nhầm lẫn, nhờ vào việc mỗi thiết bị được xác định bằng một địa chỉ duy nhất Mối quan hệ chủ/tớ giữa các thiết bị tồn tại trong suốt thời gian kết nối, cho phép mỗi thiết bị hoạt động như thiết bị nhận hoặc truyền dữ liệu, hoặc có thể thực hiện cả hai chức năng Hoạt động truyền nhận phụ thuộc vào vai trò của thiết bị, có thể là chủ (master) hoặc tớ (slave).

Giao thức I2C sử dụng địa chỉ 7 bit, cho phép kết nối tối đa 128 thiết bị, trong đó 112 địa chỉ được sử dụng cho thiết bị, còn 16 địa chỉ dành cho mục đích riêng Bit còn lại xác định chế độ đọc (0) hoặc ghi (1) dữ liệu Điểm mạnh của I2C là hiệu suất cao và sự đơn giản, khi một khối điều khiển trung tâm có thể quản lý toàn bộ mạng thiết bị chỉ với hai chân điều khiển Bên cạnh đó, I2C cũng hỗ trợ chế độ địa chỉ 10 bit, cho phép kết nối lên tới 1024 thiết bị, nhưng thực tế chỉ có 1008 thiết bị có thể sử dụng do 16 địa chỉ dành cho mục đích riêng.

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

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

Cảm biến GY-521 6DOF IMU MPU6050 là thiết bị đo lường được sử dụng để xác định 6 thông số, bao gồm 3 trục góc quay (Gyro) và 3 trục gia tốc hướng (Accelerometer) Đây là một trong những loại cảm biến gia tốc phổ biến nhất trên thị trường hiện nay.

- Giá trị Gyroscopes trong khoảng: ± 250 500 1000 2000 degree/sec

- Giá trị Accelerometer trong khoảng: ± 2g, ± 4g, ± 8g, ± 16g

- Tốc độ truyền dữ liệu: 400 kHz

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

Để giao tiếp với STM32F407G Discovery qua I2C, MPU 6050 hoạt động ở chế độ Slave với tốc độ tối đa 400 kHz Việc cấu hình các thanh ghi của MPU 6050 là cần thiết để thiết lập kết nối I2C hiệu quả.

- Thanh ghi Who_Am_I: chứa giá trị Slave của MPU6050 có giá trị là 0x68

- Thanh ghi Configuration: cấu hình khung đồng bộ lấy mẫu và bộ lọc thông thấp cho cảm biển, mặc định giá trị là 0x00

- Thanh ghi Gyroscope Configuration: cấu hình tầm đo góc xoay hồi vị, ở đây chọn tầm đo có giá trị 0x00 với tầm đo -250 tới 250 độ/s

- Thanh ghi Accelerometer Configuration: Cấu hình tầm đo gia tốc, ở đây chọn tầm đo có giá trị 0x00 với tầm đo từ -2g đến 2g

- Thanh ghi Power Management 1: Chọn nguồn Clock cho MPU, mặc định nguồn Clock là dao động nội thạch anh 8 MHz

- Các thanh ghi dữ liệu Acc: ghi giá trị gia tốc của 3 trục x, y, z

- Các thanh ghi dữ liệu Gyro: ghi các giá trị góc xoay hồi vị của 3 trục x, y, z

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

• I2C Master Setup: Đường dẫn lấy khối Digital Output: Simulink library >> Waijung Blockset >>

STM32F4 Target >> On-chip Peripherals >> I2C >> I2C Master Setup

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

Cấu hình Tùy chọn, giá trị Mô tả

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

Chọn cách truyền dữ liệu:

Blocking: Phải đợi truyền xong dữ liệu này rồi mới xử lí dữ liệu tiếp theo

Non-Blocking : không cần đợi truyền hết dữ liệu mới gửi lên Có thể cùng lúc truyền dữ liệu khác

Ghi chú: Hiện tại trong thư viện Waijung chỉ hỗ trợ Blocking

Duty cycle in fast mode

TLow/Thigh=2 TLow/Thigh/9 Điều chỉnh thời gian High và Low cho Clock ở chế độ Fast

100 | 400 Chọn tốc độ truyền do Master quy định

Timeout (ms) 25 | giá trị khác Xác định timeout bằng đơn vị ms

SDA pin Chọn chân cho SDA

SCL pin Chọn chân cho SCL

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

Thiết bị Tớ (Slave) có chức năng nhận và truyền dữ liệu, yêu cầu người dùng thiết lập địa chỉ 7 bit để giao tiếp với thiết bị Chủ qua giao thức I2C Để lấy khối Digital Output, người dùng có thể truy cập vào thư viện Simulink tại: Waijung Blockset.

STM32F4 Target >> On-chip Peripherals >> I2C >> I2C Master Read/Write

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

Cấu hình Tùy chọn, giá trị Mô tả

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

Giá trị dương Xác định số lượng Byte để nhận dữ liệu

Bytes Read Count Giá trị dương Xác định số lượng Byte để truyền dữ liệu

Thời gian chờ (Wait Write Time) là khoảng thời gian delay không bắt buộc, có thể được sử dụng để tạo độ trễ sau khi nhận giá trị từ I2C trước khi tiến hành truyền đi.

Chú ý: thời gian này có thể làm chậm quá trình xử lí

Sample time (sec) -1 Xác định thời gian lấy mẫu cho hệ thống Hình 4.62 Khối I2C Master Read/Write

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

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

- Giúp người dùng hiểu được cách sử dụng giao tiếp I2C

- Đọc tín hiệu gia tốc và góc quay hồi vị

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

Mô hình simulink trên được chia thành 3 phần chính:

- MPU6050 Initialize: Thiết lập địa chỉ và các thanh ghi của cảm biến MPU6050

- MPU6050 Read: Đọc các giá trị gia tốc và góc xoay hồi vị ở 3 trục x, y, z

- UART Tx: Truyền các giá trị dữ liệu đọc về qua giao tiếp UART Tx

Trong chương trình con MPU Initialize, chúng ta thiết lập địa chỉ cảm biến, chọn tốc độ truyền xung Clock, và xác định tầm đo của gia tốc cũng như góc quay hồi vị, nhằm chuẩn bị cho việc đọc dữ liệu từ cảm biến.

Giá trị dữ liệu trả về có kiểu số nguyên 16 bit (từ -2^15 đến 2^15), do đó cần chuyển đổi sang đơn vị chuẩn trước khi truyền lên máy tính qua giao tiếp UART để nhận dữ liệu Trong đó, giá trị gia tốc tại trục z là lớn nhất do ảnh hưởng của gia tốc trọng trường, trong khi gia tốc tại trục x và y là nhỏ nhất vì chúng song song với bề mặt đất.

Thiết lập MPU6050 Đọc giá trị dữ liệu

Truyền dữ liệu qua giao tiếp UART

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

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)

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)

MÔ HÌNH DC MOTOR

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

5.1.1 DC motor Động cơ một chiều (DC motor) là một thiết bị chuyển đổi điện năng thành cơ năng, nó có hai bộ phận chính là nam chân vĩnh cửu và cuộn dây Ngoài ra nó còn có một chuổi than để liên kết nguồn điện bên ngoài với cuộn dây của motor, khi cuộn dây có điện thì sẽ có từ trường xung quanh cuộn dây Chiều quay của motor phụ thuộc vào chiều điện áp cấp cho motor làm cho motor quay cùng chiều hoặc ngược chiều kim đồng hồ

Động cơ DC là thành phần quan trọng trong nhiều hệ thống điều khiển, cung cấp chuyển động quay cho trục động cơ Nó có thể kết nối với bánh xe hoặc dây đai để tạo ra chuyển động tịnh tiến Để phù hợp với mô hình mô phỏng, chúng ta đã lựa chọn động cơ phù hợp.

• Nguồn cấp cho động cơ: 12-21V

• Tốc độ cao nhất lúc không tải:

• Số xung một vòng của Encoder: 200 xung/vòng

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

Module cầu H sử dụng IC IR2184 và FET IRF3205, cho phép điều khiển dòng cao, phù hợp cho các ứng dụng điều khiển tốc độ và vị trí của động cơ DC.

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

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

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

Mô - men quán tính của rotor J

Hằng số ma sát nhớt motor b

Hằng số lực điện Ke Điện trở R

Cuộn dây có độ tự cảm L

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

Trong điều kiện từ trường không đổi, mô-men xoắn của rotor động cơ tỷ lệ thuận với dòng điện phần ứng i, được xác định bởi hằng số Ki theo phương trình cụ thể.

Sức phản điện động của motor e tỉ lệ với vận tốc góc của trục bởi hằng số Ke

Trong hệ đơn vị SI, hằng số momen xoắn động cơ (Kt) và hằng số sức phản điện động (Ke) của motor có giá trị bằng nhau Vì vậy, chúng ta sẽ sử dụng ký hiệu K để đại diện cho cả hai hằng số này.

Từ hình 5.3, chúng ta có thể thiết lập các phương trình sau đây dựa trên định luật II Newton và định luật Kirchoff Ta có:

Biến đổi Laplace 2 vế phương trình (5-3), (5-4)

Hàm truyền tốc độ của motor

Hàm truyền vị trí của motor

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

Từ 2 phương trình vi phân (5.3) và (5.4), ta có:

Ta có hệ phương trình trạng thái tốc độ của motor:

Cũng từ 2 phương trình vi phân (5.3) và (5.4), ta có:

Ta có hệ phương trình trạng thái vị trí của motor:

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

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

Hình 5.4 Mô hình DC motor

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

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

Sử dụng bộ điều khiển PID để điều chỉnh tốc độ động cơ bằng cách tạo tín hiệu đầu vào dạng xung vuông, giúp đánh giá thời gian đáp ứng của hệ thống Đồng thời, sử dụng encoder với độ phân giải 200 xung để cung cấp tín hiệu phản hồi, từ đó tính toán tốc độ thực tế của động cơ.

Hình 5.6 Giải thuật điều khiển tốc độ động cơ sử dụng STM32F407VG DISCOVERY

Hình 5.7 Khối đọc tốc độ động cơ “Encoder Read”

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

Từ thực nghiệm, ta chọn được cặp PID có kết quả như sau:

• Thời gian đáp ứng: 0.15 giây

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

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

Sử dụng thư viện Matlab hỗ trợ điều khiển động cơ DC, chúng tôi phát triển thuật toán điều khiển và tiến hành so sánh thời gian đáp ứng cùng với hiệu quả của bộ điều khiển.

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

Sau khi lựa chọn các thông số ta được kết quả so sánh sau:

- Arduino: 20 ms, nếu chọn thời gian lấy mẫu của Arduino bằng 1 ms thì motor vẫn quay nhưng dữ liệu truyền lên máy tính bị đơ và chậm

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

• Sử dụng tín hiệu xung vuông đầu vào – Chu kỳ = 10 giây

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ế)

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

• Sử dụng tín hiệu xung vuông đầu vào – Chu kỳ = 1 giây

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ế)

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ế)

• Sử dụng tín hiệu xung sin đầu vào – Tần số = pi

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ế)

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ế)

• Sử dụng tín hiệu xung sin đầu vào – Tần số = 4*pi

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ế)

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ế)

Dựa trên các đồ thị, có thể nhận thấy rằng thời gian đáp ứng của STM32F407 DISCOVERY vượt trội hơn so với ARDUINO MEGA 2560 Bên cạnh đó, khi tần số chu kỳ tín hiệu thay đổi, ARDUINO MEGA 2560 không theo kịp đường mong muốn một cách hiệu quả.

MÔ HÌNH CON LẮC NGƯỢC

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

Con lắc ngược quay là một hệ thống với trọng tâm nằm trên trục quay, khác với các con lắc thông thường có trọng tâm ở dưới, khiến cho việc duy trì sự ổn định khi quay trở nên khó khăn hơn Việc kiểm soát cân bằng của con lắc ngược là thách thức lớn nhất trong quá trình điều khiển Nghiên cứu mô hình thuật toán và động học của con lắc ngược có ý nghĩa quan trọng trong việc kiểm soát tàu vũ trụ, duy trì ổn định cho cánh tay robot, và trong xây dựng các tòa nhà cao tầng.

6.1.1 DC motor Để điều khiển con lắc ta chọn motor thích hợp dựa trên khối lượng, chiều dài của con lắc và chiều dài thanh ngang gắn motor với thanh đứng

Chúng em chọn động cơ Nidec Servo Motor UGFMED-D9MRI21

Do motor có điện áp và công suất tương tự với DC motor đã dùng chương 5 nên chúng em chọn cùng loại cầu H ở trên

Hinh 6.1 DC motor UGFMED-D9MRI21

Cảm biến góc quay là thiết bị xác định vị trí góc quay hoặc vị trí trục quay, hoạt động bằng cách phát ra tín hiệu điện dưới dạng analog và digital theo hướng quay.

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

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

- J: mô-men quán tín của con lắc

- 𝐵 𝑒𝑞 : Hệ số ma sát của con lắc

- 𝛼: góc lệch của thanh lắc so với phương thẳng đứng

- 𝜃: góc lệch của thanh lắc so với phương ngang

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

Ta thiết lập phương trình vi phân từ sơ đồ hệ quy chiếu sau:

Hinh 6.2 Cảm biến góc quay

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

Hình chiếu của hệ con lắc theo phương chiếu bằng được thể hiện trong hình sau:

Hình chiếu con lắc theo phương thắng đứng được thể hiện trong hình sau:

Phương trình chuyển động của con lắc AB theo phương x

=> 𝑥̇ 𝐵𝐴 = [−𝐿𝑐𝑜𝑠(𝛼)]𝑎̇ (6-1) Phương trình chuyển động của thanh lắc AB theo phương y

=> 𝑦̇ 𝐵𝐴 = [−𝐿𝑠𝑖𝑛(𝛼)]𝑎̇ (6-2) Chuyển động của hệ con lắc của chúng ta có tính tương đối giữa thanh lắc, điểm B và thanh liên kết

Công thức vận tốc của vật chuyển động có tính tương đối:

𝑉 𝑡𝑢𝑦𝑒𝑡𝑑𝑜𝑖 = 𝑉 𝑡𝑢𝑜𝑛𝑔𝑑𝑜𝑖 + 𝑉 𝑘𝑒𝑜𝑡ℎ𝑒𝑜 (6-3) Ứng với hệ con lắc, ta có vận tốc của điểm B theo phương X:

𝑥̇ 𝐵 = 𝑟𝜃̇ − ẋ BA = 𝑟𝜃̇ − 𝐿𝑐𝑜𝑠(𝛼)𝛼̇ (6-4) Vận tốc của điểm B theo phương y:

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

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

Từ 2 phương trình (6.4), (6.5) ta có gia tốc của điểm B theo hai phương x và y:

𝑥̈ 𝑟 = 𝑟𝛼̈ − 𝐿𝑐𝑜𝑠(𝛼)𝛼̈ + 𝐿𝑠𝑖𝑛(𝛼)𝛼̇ 2 𝑦̈ 𝐵 = −𝐿𝑠𝑖𝑛(𝛼)𝛼̈ − 𝐿𝑐𝑜𝑠(𝛼)𝛼̇ 2 (6-6) Áp dụng định luật II Newton, ta có:

- Lực tác dụng lên điểm B theo phương x:

- Lực tác dụng lên điểm B theo phương y

=> 𝐴 𝑦 − 𝑚𝑔 = 𝑚 [−𝐿𝑠𝑖𝑛(𝛼)𝛼̈ + 𝐿𝑐𝑜𝑠(𝛼)𝛼̇ 2 ] (6-10) Phương trình chuyển động quay tại điểm B:

3𝑚𝐿 2 𝛼̈ = 𝐴 𝑥 𝐿𝑐𝑜𝑠(𝛼) + 𝐴 𝑦 𝐿𝑠𝑖𝑛(𝛼) (6-12) Thay 6.8, 6.10 vào phương trình 6.12 ta được:

3𝑚𝐿 2 𝛼̈ − 𝑚𝑟𝐿𝑐𝑜𝑠(𝛼)𝜃̈ − 𝑚𝑔𝐿𝑠𝑖𝑛(𝛼) = 0 (6-13) Tượng tự, ta có phương trình chuyển động quay tại điểm O:

=> 𝐽 𝒐 𝜃̈ = 𝑇 𝑙 − 𝐵 𝑒𝑞 𝜃̈ − 𝐴 𝑥 𝑟 (6-15) Thay 6.8 vào phương trình 6.15 ta được phương trình chuyển động của thanh liên kết

Từ 6.13 và 6.16 ta có hệ phương trình chuyển động của con lắc ngược:

Tuyến tính hóa hệ phương trình chuyển động của con lắc với cos(𝛼)=1, sin(𝛼) = 𝛼, 𝛼̇ 2 = 𝜃̇ 2 , ta có:

Biến đổi Laplace hệ phườn trình trên, ta được:

Ta có hàm truyền của hệ thống theo góc lệch của thanh lắc (𝛼)

(43𝐽 𝑜 𝐿 + 13𝑚𝑟 2 𝐿 + 43𝐵 𝑒𝑞 𝐿) 𝑠 2 − 𝐽 0 𝑔 − 𝑚𝑔𝑟 2 − 𝐵 𝑒𝑞 𝑔 (6-20) Hàm truyền của hệ thống theo góc lệch của thanh ngang (𝜃):

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

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

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

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

Từ lý thuyết điều khiển, chúng ta xây dựng thuật toán với tín hiệu đầu vào từ cảm biến góc quay, cho phép xác định giá trị góc thực tế của con lắc Sau đó, giá trị này được so sánh với giá trị mong muốn để tìm ra sai lệch Bộ điều khiển PID sẽ được sử dụng để loại bỏ sai lệch này và xuất ra giá trị điện áp Cuối cùng, bộ chấp hành nhận điện áp để điều chế xung PWM, từ đó điều khiển motor một cách hiệu quả.

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

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

- Hệ thống luôn có dao động nhưng dao động trong khoảng vẫn giữ ổn định được con lắc ngược

- Tác dụng ngoại lực vào ở giây thứ 10 và 40

- Hệ thống ổn định nhưng chưa tốt

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

• Kết quả con lắc ngược dùng Arduino

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

Hình 6.9 Kết quả con lắc ngược dùng Arduino Hình 6.7 Kết quả thực nghiệm dùng STM32F407 DISCOVERY

- Khi ở trang thái ổn định

- Sai số (Error) dùng Arduino lớn hơn và dao động mạnh hơn

MÔ HÌNH ROBOT TỰ CÂN BẰNG

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

Dựa trên nguyên tắc điều khiển con lắc ngược đã làm ở trên chúng em tiến hành xây dựng mô hình robot cân bằng

Chúng em chọn động cơ DC 25GA370 để phù hợp với mô hình

- Tốc độ không tải: 320 RPM

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

Mạch cầu H L298 giúp chúng em có thể điều khiển tốc độ động cơ và chiều quay của động cơ đã chọn một cách dễ dàng và hiệu quả

- Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)

- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V

- Dòng của tín hiệu điều khiển: 0 ~ 36mA

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

MPU-6050 là cảm biến của hãng InvenSense tích hợp 6 trục cảm biến bao gồm:

- Con quay hồi chuyển 3 trục (Gyroscope)

- Cảm biến gia tốc 3 chiều (Accelerometer).

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

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

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

Tên đại lượng Kí hiệu Đơn vị

Khối lượng bánh xe m kg

Hệ số ma sát giữa bánh xe với mặt phẳng fw

Hệ số ma sát giữa động cơ với Robot fm

Mô mem quán tính của động cơ Jm kg.m^2

Hệ số EMF của động cơ Kb V sec/rad

Mô mem xoắn của động cơ Kt Nm/A Điện trở của động cơ rm Ohm

Gia tốc trọng trường g Kg/ m^2

Góc trung bình của bánh trái và phải 𝜃 rad

Góc của bánh trái và phải 𝜃 𝑙,𝑟 rad

Góc nghiêng của phần thân robot 𝜓 rad

Góc xoay của robot 𝜙 rad

Moment phát động theo các phương khác nhau 𝐹 𝜃 , 𝐹 ψ , 𝐹 𝜙 Nm

Moment phát động của động cơ bánh trái, phải 𝐹 𝑙,𝑟 Nm

Dòng điện động cơ bánh trái, phải 𝑖 𝑙 ,𝑖 𝑟 A Điện áp động cơ bánh trái, phải 𝑣 𝑙 , 𝑣 𝑟 V

Xây dựng hệ phương trình trạng thái mô tả hệ thống robot hai bánh tự cân bằng:

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

Sử dụng phương pháp Euler-Lagrange để xây dựng mô hình động học cho robot Giả sử tại thời điểm t = 0, robot di chuyển theo chiều dương của trục x, từ đó thiết lập các phương trình động học liên quan.

Góc tịnh tiến trung bình của hai bánh xe và góc xoay của robot được xác định

Trong đó tọa độ trung bình của Robot trong hệ qui chiếu:

Tọa độ bánh trái trong hệ qui chiếu :

Tọa độ bánh phải trong hệ qui chiếu :

Tọa độ tâm đối xứng giữa hai động cơ trong hệ qui chiếu :

Phương trình động năng của chuyển động tịnh tiến:

2𝑚(𝑥̇ 𝑏 2 + 𝑦̇ 𝑏 2 + 𝑧̇ 𝑏 2 ) (7-6) Phương trình động năng của chuyển động quay :

2𝑛 2 𝐽 𝑚 (𝜃̇ 𝑟 − 𝜓̇) 2 (7-8) là động năng quay của phần ứng động cơ trái và phải

Lấy đạo hàm L theo các biến ta được:

2𝑅 2 (𝐽 𝑤 + 𝑛 2 𝐽 𝑚 ) + 𝑀𝐿 2 𝑠𝑖𝑛 2 𝜓] 𝜙̈ 2 + 2𝑀𝐿 2 𝜓̇𝜙̇ 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜓 = 𝐹 𝜙 (7-16) Momen động lực do động cơ DC sinh ra:

Sử dụng phương pháp PWM để điều khiển động cơ nên chuyển từ dòng điện sang điện áp động cơ:

𝐿 𝑚 𝑖̇̇ 𝑙,𝑟 = 𝑣 𝑙,𝑟 + 𝐾 𝑏 (𝜓̇ − 𝜃̇ 𝑙,𝑟 ) − 𝑅 𝑚 𝑖 𝑙,𝑟 (7-21) Xem điện cảm phần ứng tương đối nhỏ (gần bằng 0), có thể bỏ qua, suy ra:

Từ đó, các moment lực sinh ra:

2𝑅 2 (𝛽 + 𝑓 𝑤 )𝜙̇ (7-26) Thu được phương trình động lực học mô tả chuyển động của robot như sau:

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

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

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

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

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

Ngày đăng: 06/06/2022, 02:27

HÌNH ẢNH LIÊN QUAN

Hình 2.4 Sơ đồ khối PID - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 2.4 Sơ đồ khối PID (Trang 14)
Hình 4.2 Hộp thoại Regular ADC - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.2 Hộp thoại Regular ADC (Trang 22)
Hình 4.3 Code Simulink “Chớp LED bằng điện trở” - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.3 Code Simulink “Chớp LED bằng điện trở” (Trang 24)
4.1.3.1. Cấu hình khối Regular DAC - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
4.1.3.1. Cấu hình khối Regular DAC (Trang 25)
Hình 4.8 Code Simulink “Tạo tín hiệu tuần hoàn” - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.8 Code Simulink “Tạo tín hiệu tuần hoàn” (Trang 27)
4.2.2.1. Cấu hình khối Digital Output - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
4.2.2.1. Cấu hình khối Digital Output (Trang 30)
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 - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
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 (Trang 34)
Hình 4.29 Điều chỉnh độ rộng xung với cạnh lên và xuống 4.3.2.2.   Cấu hình khối Basic PWM - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.29 Điều chỉnh độ rộng xung với cạnh lên và xuống 4.3.2.2. Cấu hình khối Basic PWM (Trang 38)
Hình 4.33 Kết quả lắp mạch “Điều chỉnh độ sáng LED dùng PWM - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.33 Kết quả lắp mạch “Điều chỉnh độ sáng LED dùng PWM (Trang 40)
Hình 4.35 Cấu trúc bộ mã hóa quay - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.35 Cấu trúc bộ mã hóa quay (Trang 41)
4.3.3.2. Cấu hình khối Encoder Read - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
4.3.3.2. Cấu hình khối Encoder Read (Trang 42)
Thí nghiệm sẽ được trình bày rõ trong “Chương 5: Mô hình DC motor”. - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
h í nghiệm sẽ được trình bày rõ trong “Chương 5: Mô hình DC motor” (Trang 44)
Hình 4.43 Chương trình con đọc LED - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.43 Chương trình con đọc LED (Trang 46)
Hình 4.44 Mạch điều khiển LED dùng Timer IRQ - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Hình 4.44 Mạch điều khiển LED dùng Timer IRQ (Trang 46)
Bảng 5- Bảng cân đối xe máy thiết bị thi công của Công ty Cổ phần Sông Đà 12 - Ứng dụng ARM STM32F4 discovery và matlab simulink trong thiết kế các bộ điều khiển   đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô
Bảng 5 Bảng cân đối xe máy thiết bị thi công của Công ty Cổ phần Sông Đà 12 (Trang 48)
w