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

LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA

96 12 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

Định dạng
Số trang 96
Dung lượng 5,93 MB

Cấu trúc

  • Chương 1. MỞ ĐẦU (21)
  • Chương 2. PHẦN MỀM VISUAL STUDIO VÀ MAP OFFLINE (26)
  • Chương 3. CƠ SỞ LÝ THUYẾT (32)
    • 3.2.1. Động cơ Brushless DC và bộ ESC (37)
    • 3.2.2. Động cơ Servo (38)
    • 3.3.1. Cảm biến GPS (39)
    • 3.3.2. Hệ thống IMU tích hợp ARM Cortex-M4 STM32F40x và cảm biến (40)
    • 3.6.1. RC Transmitter (48)
    • 3.6.2. RC Receiver (50)
    • 3.6.3. Mạch driver FPGA (50)
  • Chương 4. TỔNG QUAN TRẠM GIÁM SÁT VÀ ĐIỀU KHIỂN (52)
    • 4.2.1. Các hàm cơ bản của quá trình đọc dữ liệu thông qua cổng COM 36 4.2.2. Phương pháp tách thông số từ dữ liệu nhận được (55)
    • 4.2.3. Phương pháp hiển thị tốc độ, độ cao, góc nghiêng của máy bay . 38 Vẽ quỹ đạo của máy bay, tính toán khoảng cách và góc tạo bởi vị trí máy bay và điểm đến của máy bay (57)
    • 4.4.1. Tìm kiếm địa điểm trên bản đồ offlline, thay đổi đích đến (61)
    • 4.4.2. Chế độ phóng to thu nhỏ màn hình và tự động zoom theo vị trí của máy bay (62)
    • 4.5.1. Cách đọc file .txt và tìm thông tin của chuyến bay (65)
    • 4.5.2. Các chức năng nổi bật của quá trình tường thuật lại quá trình bay 47 Màn hình cài đặt thông số online (66)
  • Chương 5. TỔNG QUAN QUÁ TRÌNH HOẠT ĐỘNG CỦA HỆ THỐNG (68)
    • 5.2.1. Chức năng (69)
    • 5.2.2. Nguyên lý (69)
    • 5.3.1. Giao tiếp cảm biến IMU, GPS và truyền dữ liệu về trạm mặt đất. 52 5.3.2. Giao tiếp với trạm điều khiển tại mặt đất (71)
    • 5.4.1. Bộ điều khiển PID (75)
    • 5.4.2. Điều khiển giữ thăng bằng cho máy bay (76)
    • 5.4.3. Điều khiển giữ độ cao cho máy bay (77)
  • Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (80)
    • 6.1.1. Trạm mặt đất (80)
    • 6.1.2. Sản phẩm phần cứng (85)
    • 6.1.3. Tiến hành bay thử nghiệm (87)
  • TÀI LIỆU THAM KHẢO (95)

Nội dung

PHẦN MỀM VISUAL STUDIO VÀ MAP OFFLINE

Một số ngôn ngữ và phần mềm có chức năng vẽ giao diện

Processing là một ngôn ngữ mã nguồn mở và môi trường phát triển tích hợp (IDE) được thiết kế đặc biệt cho việc phát triển các ứng dụng đồ họa, đa phương tiện, và mô phỏng thiết kế giao tiếp.

Java là ngôn ngữ lập trình hướng đối tượng, độc lập với hệ điều hành, cho phép lập trình viên viết mã một lần và sử dụng ở mọi nơi Hiện nay, Java được ứng dụng rộng rãi, đặc biệt trong các ứng dụng Internet, tối ưu hóa khả năng của nó trong viễn thông, truyền hình và mạng.

LabVIEW là một môi trường lập trình đồ họa mạnh mẽ, cho phép người dùng nhanh chóng phát triển các ứng dụng với giao diện chuyên nghiệp Được sử dụng rộng rãi bởi hàng triệu kỹ sư và nhà khoa học, LabVIEW hỗ trợ việc đo lường, kiểm thử và điều khiển thông qua các biểu tượng trực quan và kết nối tín hiệu Nền tảng này có khả năng tích hợp với nhiều thiết bị phần cứng và hệ điều hành khác nhau, đồng thời cung cấp hàng trăm thư viện sẵn có để phân tích và hiển thị dữ liệu Điều này giúp người dùng tạo ra các thiết bị ảo tùy chỉnh theo nhu cầu cụ thể của họ.

C# là ngôn ngữ lập trình đa mục đích do Microsoft phát triển, thuộc nền tảng NET, phù hợp cho mọi loại hình phát triển phần mềm Những đặc điểm nổi bật của C# bao gồm tính linh hoạt, hiệu suất cao và khả năng hỗ trợ lập trình hướng đối tượng.

 Là ngôn ngữ lập trình đơn giản, hiện đại, dùng cho những mục đích chung chung, và là ngôn ngữ lập trình hướng đối tượng

 C# là ngôn ngữ phát triển phù hợp với nhiều phần mềm và môi trường phát triển

 Source code đơn giản, mạnh mẽ, mềm dẻo, có cú pháp giống C, C++

C# là ngôn ngữ lập trình phổ biến trên toàn cầu, được hỗ trợ mạnh mẽ bởi các chuyên gia của Microsoft Chính vì vậy, tôi đã chọn C# để phát triển trạm mặt đất giám sát máy bay cánh bằng.

Phần mềm Visual Studio 2015 RTM được Microsoft tung ra vào ngày 20 tháng

Vào tháng 7 năm 2015, Visual Studio 2015 đã ra mắt với sự hỗ trợ cho nhiều ngôn ngữ lập trình như C#, Visual Basic, F#, C++, Python, Node.js, và HTML/JavaScript Đây là một công cụ mạnh mẽ cho các dự án có kích thước và độ phức tạp khác nhau, đi kèm với chế độ gỡ lỗi nâng cao và khả năng kiểm tra lỗi cả bằng tay lẫn tự động Visual Studio 2015 mang đến nhiều tính năng hữu ích cho lập trình viên.

 Chọn nền tảng cho ứng dụng của mình

 Nền tảng mobile apps ở C# với Xamarin cho Visual Studio

 Nền tảng mobile apps ở HTML/JavaScript với Apache Cordova

 Nền tảng mobile games ở C# với Unity

 Nền tảng apps and libraries cho native C++

 Universal Windows apps cho bất kì thiết bị Windows 10

Hình 2.1: Một số thiết bị có sử dụng nền tảng Windows

 Lựa chọn thiết bị để Debug

Trong dự án Universal Windows Platform, chúng ta có thể lựa chọn cho mình các thiết bị với nhiều kích cỡ màn hình khác nhau

Hình 2.2: Một số thiết bị tiêu biểu trong dự án Universal Windows Platform

Microsoft đã tích hợp nhiều ứng dụng hiện đại vào Windows 10, trong đó có ứng dụng bản đồ, tương tự như trên các điện thoại thông minh hiện nay Bản đồ trên Windows 10 cung cấp trải nghiệm người dùng tiện lợi và dễ dàng truy cập thông tin địa lý.

Bing Maps cung cấp khả năng tìm đường và chỉ dẫn thông minh, với một tính năng nổi bật cho phép sử dụng offline Điều này cực kỳ hữu ích khi di chuyển đến những khu vực xa xôi, nơi mà mạng di động không ổn định hoặc không có kết nối Wi-Fi Để tiết kiệm pin và đảm bảo khả năng điều hướng, việc tải bản đồ offline cho máy tính chạy Windows 10 là cần thiết.

 Mở nhanh ứng dụng bản đồ (Maps) bằng cách tìm với từ khóa Maps trong thanh Search Windows bên dưới Taskbar

Để truy cập vào các thiết lập của ứng dụng Maps, bạn hãy nhấn vào biểu tượng bánh răng ở góc dưới bên trái của giao diện chính Tiếp theo, chọn tùy chọn "Download or update maps" để tiến hành tải hoặc cập nhật bản đồ.

 Lúc này bạn sẽ được chuyển đến chuyên mục Offline maps Hãy chọn khung Download maps

Hình 2.3: Hướng dẫn tải Offline Maps cho Windows 10

Chọn mục Asian để tải về dữ liệu bản đồ ngoại tuyến cho tất cả các quốc gia trong danh sách hỗ trợ nếu bạn muốn.

 Chọn mục Việt Nam để tải về (dung lượng dữ liệu gần 145MB)

Hình 2.4: Hướng dẫn download bản đồ Việt Nam trên Windows 10

Tích hợp Offline Maps Để tích hợp được Offline Maps ta làm như sau:

1 Mở Visual Studio 2015, chọn File  New Project  Installed 

Templates  Visual C#  Windows  Universal  Blank App (Universal Windows) Blank App là dự án cho ứng dụng Windows mà có thể chạy ở nhiều nền tảng Windows 10

2 Nhấp đôi vào MainPage.xaml để hiệu chỉnh nó

3 Thêm vào namespace mới cho MapControls xmlns:maps="using:Windows.UI.Xaml.Controls.Maps"

4 Thêm vào map control initial XAML, giữa tags

Hình 2.5: Cách thêm MapControl vào XAML

5 Nhấn F5 để chạy ứng dụng Kết quả ở hình 2.6

12 Hình 2.6: Kết quả sau khi đưa được offline map vào C#

CƠ SỞ LÝ THUYẾT

Động cơ Brushless DC và bộ ESC

Động cơ BLDC (động cơ một chiều không chổi than) là loại động cơ đồng bộ sử dụng nam châm vĩnh cửu gắn trên rotor và dòng điện DC ba pha cho cuộn dây stator Các cuộn dây này được bố trí lệch nhau 120 độ trong không gian của stator Nam châm vĩnh cửu trên rotor có nhiệm vụ kích thích động cơ Điểm khác biệt nổi bật của động cơ BLDC so với các động cơ đồng bộ khác là nó cần cảm biến vị trí rotor để hoạt động Nguyên tắc điều khiển của động cơ BLDC là xác định vị trí rotor nhằm điều chỉnh dòng điện vào cuộn dây stator; nếu không có cảm biến, động cơ sẽ không khởi động hoặc thay đổi chiều quay.

ESC (Electronic Speed Controller) là thiết bị điều khiển công suất cho động cơ điện, thường được gọi là điều tốc BEC (Battery Eliminator Circuit) là mạch điện chuyển đổi nguồn từ 12V xuống 5V, cung cấp điện cho Receiver, Servo và các bộ điều khiển, cảm biến thu thập dữ liệu.

Hình 3.9: Sơ đồ kết nối ESC, BEC đến các thiết bị trên máy bay

Động cơ Servo

Động cơ Servo được thiết kế cho hệ thống hồi tiếp vòng kín, trong đó tín hiệu ra của động cơ được kết nối với mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được gửi về mạch điều khiển Nếu có bất kỳ cản trở nào đối với chuyển động của động cơ, cơ cấu hồi tiếp sẽ phát hiện sự sai lệch và mạch điều khiển sẽ điều chỉnh để động cơ đạt được vị trí chính xác Động cơ Servo thường được sử dụng trong điều khiển robot và các mô hình máy bay điều khiển từ xa.

Cấu tạo của một động cơ Servo bao gồm: Động cơ chính, board điều khiển, cảm biến hồi tiếp tín hiệu, hệ bánh răng

Hình 3.10: Cấu tạo động cơ Servo

Để điều khiển động cơ, tín hiệu số được gửi đến mạch điều khiển, khởi động động cơ thông qua chuỗi bánh răng kết nối với vôn kế Vị trí của trục vôn kế cho biết vị trí trục ra của Servo, và khi vôn kế đạt vị trí mong muốn, mạch điều khiển sẽ tắt động cơ Mạch điều khiển nhận xung PWM và xuất ra góc quay tương ứng đến động cơ, như được mô tả chi tiết trong hình 3.13.

Hình 3.11: Sự liên hệ giữ xung PWM và góc quay của Servo

Cảm biến GPS và IMU

Cảm biến GPS

Hệ thống định vị toàn cầu (GPS) hoạt động dựa trên vị trí của các vệ tinh nhân tạo Khi một thiết bị GPS xác định được khoảng cách đến ít nhất ba vệ tinh cùng một lúc, nó có thể tính toán vị trí tọa độ chính xác của thiết bị trên mặt đất.

Hoạt động của GPS dựa trên việc máy thu GPS so sánh thời gian tín hiệu được phát từ vệ tinh với thời gian nhận tín hiệu Sự chênh lệch thời gian này cho phép xác định khoảng cách giữa máy thu và vệ tinh Bằng cách đo khoảng cách tới nhiều vệ tinh khác nhau, máy thu GPS có thể xác định vị trí chính xác của mình.

Máy thu GPS có khả năng xác định vị trí người dùng và hiển thị trên bản đồ điện tử Để tính toán vị trí hai chiều (kinh độ và vĩ độ) cũng như theo dõi chuyển động, máy thu cần nhận tín hiệu từ ít nhất ba vệ tinh.

Bằng cách sử dụng bốn vệ tinh, máy thu GPS có khả năng xác định vị trí ba chiều, bao gồm kinh độ, vĩ độ và độ cao Khi vị trí của người dùng đã được xác định, máy thu GPS có thể cung cấp thêm thông tin như tốc độ và hướng di chuyển.

Hình 3.12: Hệ thống định vị toàn cầu

Hệ thống IMU tích hợp ARM Cortex-M4 STM32F40x và cảm biến

Hệ thống IMU 9-DOF sử dụng vi điều khiển ARM-Cortex M4 STM32F405 cho phép tính toán dấu chấm động, kết hợp với cảm biến 9-DOF ADIS16405, bao gồm ba loại cảm biến: gia tốc ba trục, vận tốc góc ba trục và từ trường ba trục Hệ thống này được phát triển tại phòng thí nghiệm Điều Khiển Tự Động thuộc Bộ môn Tự Động, Đại học Bách Khoa TPHCM.

Hình 3.13: IMU-9DOF được chế tạo tại PTN Bộ môn Tự Động ĐHBK TPHCM

Bên trong IMU, có 9 cảm biến được chia thành 3 loại: cảm biến vận tốc góc (gyroscope), cảm biến gia tốc (accelerometer) và cảm biến từ trường (magnetometer) Các cảm biến này kết hợp lại trên một trục tọa độ 3 chiều trực giao, tạo thành hệ thống cảm biến MARG (Magnetic, Angular rate, and Gravity).

Bộ ước lượng Gia tốc

Hình 3.14: Sơ đồ khối của IMU

Vi điều khiển STM32F40x là dòng vi điều khiển 32 bit của STMicroelectronics sử dụng lõi vi xử lí ARM Cortex-M4F Các ngoại vi hỗ trợ bởi STM32F40x gồm:

 Bộ nhớ: 1 Mbyte bộ nhớ flash, 192 Kbyte SRAM + 4 Kbyte SRAM dự trữ dùng cho RTC

 Điện áp, nguồn clock: 1.8 V – 3.6V, 4 Mhz – 26Mhz thạch anh ngoài

 Chế độ standby tiết kiệm năng lượng

 GPIO: 82 chân (đối với STM32F407)

 ADC: 12 bit, 10 bit, 8 bit hoặc 6 bit, DAC: 12 bit

 16 bộ DMA, 8 kênh trên mỗi DMA

 Hỗ trợ các chuẩn debug:

• JTAG, SWD (Serial Wire Debug)

 Hỗ trợ các giao thức truyền thông :

• Giao tiếp nối tiếp: I2C, USART, SPI, I2S, CAN (2.0B), SDIO, USB 2.0, Ethernet

• Giao tiếp song song FSMC: Flash, SRAM, PC Card…

 8 đến 14 bit giao tiếp camera đến 54Mbyte/s

 Bộ tạo giá trị ngẫu nhiên (analog random number generator)

GPIO (General Purpose In/Out)

Dòng STM32F407 có 100 chân, trong đó khoảng 80 chân có thể sử dụng cho chức năng GPIO, được chia thành 5 port: PA, PB, PC, PD và PE, mỗi port gồm 16 chân Các chân xuất có thể được thiết lập ở chế độ push-pull, open-drain, hoặc có điện trở pull-up/pull-down, cùng với khả năng điều chỉnh tốc độ clock để tiết kiệm năng lượng Các chân nhập có thể được cấu hình ở chế độ floating, pull-up/pull-down hoặc analog, và tất cả đều có thể cài đặt làm ngắt ngoài Đặc biệt, hầu hết các chân đều có tính chất "5V tolerant", cho phép giao tiếp trực tiếp với các IC ngoài có mức logic 0-5V.

Bên ngoài bộ SysTickTimer của lõi, STM32F407 sở hữu 14 timer, có khả năng sử dụng cho định thời, tạo độ trễ và PWM Các timer này được phân chia thành 3 nhóm, mỗi nhóm có những tính năng riêng biệt, phù hợp cho các ứng dụng cụ thể.

 Timer điều khiển cao cấp: (Advanced-control timers) TIM1 & TIM8

• Timer 16 bit với bộ đếm counter tự lấy lại giá trị đặt (auto- reload) và bộ chia trước 16 bit (prescaler) lập trình được

• Có thể dùng cho capture, PWM có dead-time…

 Timer dùng cho mục đích chung chung: (General-purpose timers)

• TIM2 đến TIM5: 16 hoặc 32 bit

• Các timer này đều có khả năng “auto-reload” và bộ chia trước 16 bit lập trình được

• Dùng timer này cho capture, PWM…

 Timer cơ bản: (Basic Timer) TIM6 & TIM7

• 16 bit với bộ đếm lên, bộ chia 16 bit

• Dùng cho tạo khảng thời gian chuẩn để xử lí các tác vụ

• Dùng clock cho bộ DAC

Giao thức truyền thông nối tiếp UART đã trở nên phổ biến trong các thiết bị hiện đại Luận văn này sử dụng khối UART để truyền dữ liệu từ IMU lên máy tính STM32F407 được trang bị 4 bộ USART (1,2,3,6) và 2 bộ UART (4,5) cho phép truyền thông song công, bất đồng bộ hoặc đồng bộ Trong nghiên cứu, chúng tôi tập trung vào truyền thông bất đồng bộ với cấu hình 8 bit dữ liệu, 1 stop bit và không sử dụng parity Đặc biệt, các bộ USART hỗ trợ DMA, giúp tiết kiệm thời gian xử lý của vi xử lý khi nhận và gửi lượng lớn dữ liệu.

Hình 3.15: Định dạng 1 ký tự khi truyền bằng UART Các bước cài đặt để gửi và nhận qua USART trong phần mềm:

 Bật clock cho bus APB của ngoại vi USART

 Bật clock cho các Port của các chân liên quan là TX, RX

 Cài đặt chức năng USART cho các chân liên quan TX, RX

Để cài đặt bộ USART, cần thiết lập các thông số như baud rate 115200, dữ liệu 8 bit, 1 stop bit, không sử dụng Parity Đồng thời, cần cho phép hoạt động của cả bộ thu và bộ phát, kích hoạt cờ ngắt báo nhận và gửi xong, cũng như cho phép sử dụng DMA cho cả hai bộ này.

 Cài đặt DMA: (có chi tiết trong phần DMA)

 Cài đặt ngắt cho bộ thu và bộ phát ( phải xóa các cờ trong ngắt)

Giao thức nối tiếp đồng bộ SPI thường được sử dụng để giao tiếp với các loại cảm biến, trong đó một chip hoạt động như Master và nhiều chip khác đóng vai trò Slave Để thực hiện giao thức này, cần có 4 dây kết nối.

 CS: (Chip Select) chọn Slave giao tiếp với Master

 TX: xuất dữ liệu (còn gọi là MOSI: Master Out Slave In)

 RX: nhận dữ liệu (còn gọi là MISO: Master In Slave Out)

 CLK: chân clock đồng bộ dữ liệu được điều khiển bởi Master

Quá trình truyền nhận trên đường truyền SPI tóm tắt như sau:

• Master sẽ kéo chân CS xuống mức thấp để chọn Slave

Dữ liệu 8 bit được chuyển đổi từ chế độ song song sang chế độ nối tiếp qua đường TX Tùy thuộc vào loại cảm biến, cần thiết lập bit Read/Write và địa chỉ thanh ghi trong thiết bị Slave trước khi thực hiện truyền dữ liệu.

• Master phải kéo chân CS xuống mức thấp để chọn Slave

• Sau đó bắt đầu truyền dữ liệu 8 bit báo cho Slave địa chỉ thanh ghi cần đọc về

• Các chu kì sau Master phải tiếp tục giữ clock trên đường CLK bằng cách ghi giá trị giả không có ý nghĩa ra TX (dummy write)

Và bộ thu sẽ đọc giá trị gửi về trên RX từ Slave

Các bước cài đặt để gửi và nhận bằng SPI trong phần mềm:

 Bật clock cho khối ngoại vi SPI, cho các port ứng với các chân có liên quan đến SPI

 Cài đặt chức năng chân CS là dạng digital, output còn các chân CLK, TX,

RX là chức năng SPI

 Thiết lập các thông số cho SPI: truyền 2 hướng, dữ liệu 8 bit hay 16 bit, bit LSB đi trước và đóng vai trò là Master

 Cho phép SPI và DMA trên SPI

 Cài đặt DMA cho SPI: địa chỉ nguồn, địa chỉ đích, độ dài khối dữ liệu…

 Cài đặt các ngắt truyền và nhận hay DMA

DMA (Direct Memory Access) cho phép truyền dữ liệu tốc độ cao giữa các thiết bị ngoại vi và vùng nhớ, cũng như giữa các vùng nhớ với nhau mà không cần sự can thiệp của lõi vi xử lý Nhờ vào bus riêng của DMA, lõi vi xử lý có thể thực hiện các tác vụ khác, tiết kiệm thời gian cho các phép toán Các đặc điểm nổi bật của DMA trong STM32F407 bao gồm khả năng tối ưu hóa hiệu suất và giảm thiểu độ trễ trong quá trình truyền dữ liệu.

 Có 2 bộ DMA (DMA1, DMA2) mỗi bộ điều khiển 8 stream, trên mỗi stream có bộ ghép kênh xử lí 8 yêu cầu (request)

 Mỗi stream có thể cài đặt dùng cho chuyển dữ liệu 3 nhóm từ:

• Ngoại vi tới vùng nhớ (peripheral-to-memory)

• Vùng nhớ tới ngoại vi

• Vùng nhớ tới vùng nhớ

 Có 4 bộ FIFO dùng cho:

• FIFO mode: phần mềm chọn cỏc mức dựng FIFO ẳ, ẵ , ắ hoặc đầy FIFO

• Direct mode: chuyển dữ liệu trực tiếp không quan FIFO

 Các stream có thể cài đặt 4 cấp độ ưu tiên: rất cao, cao, trung bình, thấp (very high, high, medium, low)

 Số lượng khối dữ liệu truyền trên DMA có thể lên tới 65535

 Có 5 cờ đi kèm quá trình truyền DMA để kiểm soát là:

• Truyền được một nữa ( Half-transfer reached)

• Truyền xong hoàn toàn (Transfer complete)

• Truyền có lỗi (Transfer error)

• FIFO có lỗi (FIFO error)

• Truyền ở chế độ trực tiếp có lỗi (Direct mode error)

Các bước cài đặt sử dụng DMA:

 Cài đặt trước ngoại vi sử dụng (như USART và SPI trên) trong đó cho phép ngắt DMA

• Chọn địa chỉ gửi và nhận cho nguồn và đích Địa chỉ có thể là thanh ghi trong phần cứng hoặc địa chỉ biến lưu trữ tự đặt

• Chọn dùng FIFO hay không và 4 mức tương ứng

• Một số tùy chọn khác nếu cần

 Thiết lập các thông số như trên DMA trên kênh này

 Cho phép ngắt hoặc không ngắt 5 cờ báo DMA ở trên

 Mỗi khi muốn ta sẽ cho phép DMA

Module phát sóng RF SV611

SV611 là một module thu phát FSK tần số 433MHz với hiệu suất cao và kích thước nhỏ gọn Nó cung cấp công suất ổn định, độ nhạy cao, khoảng cách truyền dẫn xa và tốc độ dữ liệu nhanh Module này tự động thiết lập để thay đổi thông tin liên lạc, nhận dữ liệu và điều khiển truyền dẫn Với giao diện UART, việc truyền dữ liệu không dây trở nên dễ dàng chỉ với dữ liệu UART Người sử dụng có thể linh hoạt thiết lập các thông số như tốc độ truyền UART, tần số, công suất đầu ra, tốc độ dữ liệu, độ lệch tần số và băng thông.

Module truyền dữ liệu không dây là lựa chọn lý tưởng cho thiết kế sản phẩm, có khả năng ứng dụng rộng rãi trong lĩnh vực truyền dữ liệu Trong luận văn, module này được sử dụng để truyền dữ liệu từ cảm biến đã được xử lý qua vi điều khiển đến trạm mặt đất.

Hình 3.16: Module truyền sóng RF Hình 3.17: Sơ đồ chân RF

Các chân của module thu phát sóng RF được mô tả cụ thể trong bảng sau:

VCC Nguồn cấp từ 2.4-3.6V DC

DTX Chân truyền tín hiệu

DRX Chân nhận tín hiệu

CONFIG Chân cấu hình, set ở mức cao cho mode cài đặt và mức cao cho mode giao tiếp không dây

ENABLE Đạt mức thấp khi trong mode truyền tín hiệu, mức cao khi quay về cơ chế ngủ để tiết kiệm năng lượng

TEST Chân cho phép ngắt kết nối

ANT Chân kết nối mạch với anten phát sóng thông qua điện trở 50Ω Bảng 3.1: Sơ đồ chân module RF Điều khiển máy bay cánh bằng

RC Transmitter

RC Transmitter là thiết bị điều khiển mô hình máy bay, bao gồm các thành phần chính như ăng-ten truyền sóng, tay cầm, thạch anh tạo dao động, các stick điều khiển, màn hình hiển thị thông số cài đặt và nguồn điện.

Hình 3.18: RC Transmitter Chức năng của các kênh trên một bộ điều khiển được thể hiện trong hình 3.16

Hình 3.19: Các kênh điều khiển cơ bản

RC Receiver

RC Receiver là thiết bị quan trọng trên máy bay, giúp thu nhận tín hiệu từ bộ phát để điều khiển động cơ theo ý muốn của người sử dụng Mỗi bộ thu thường có từ sáu đến tám kênh, với mỗi kênh bao gồm ba chân: nguồn, đất và chân tín hiệu.

Hình 3.20: Sơ đồ kết nối bộ receiver với các động cơ

Mạch driver FPGA

FPGA là một chip silicon chứa nhiều khối logic có thể tái cấu hình (Configurable Logic Blocks - CLB) được liên kết bằng các kết nối khả trình (Programmable Interconnect) Các khối vào ra được bố trí xung quanh chip, tạo ra kết nối với bên ngoài Bên trong mỗi khối logic CLB có bảng LUT (Look-Up Table) và các phần tử nhớ như Flip-Flop Bảng LUT với nhiều đầu vào và một đầu ra hình thành các mạch logic tổ hợp nhỏ Một chip FPGA có thể chứa hàng nghìn đến hàng trăm nghìn CLB, cho phép thực hiện nhiều chức năng phức tạp.

Hình 3.21: Mô tả Look-Up Table

 Ứng dụng FPGA thiết kế mạch giao tiếp động cơ

Mục tiêu của dự án là thiết kế mạch giao tiếp cho 4 động cơ, bao gồm 3 động cơ Servo để điều khiển các góc cánh và 1 động cơ brushless, đóng vai trò là động cơ kéo chính cho máy bay Mạch giao tiếp này sẽ đảm nhận nhiều chức năng quan trọng trong việc vận hành máy bay.

 Giải mã góc quay động cơ chốt giá trị góc quay 4 kênh tại các thời điểm cố định

 Chuyển mode manual và auto sử dụng kênh 5 của remote

 Có các chân sử dụng để giao tiếp với vi xử lý

TỔNG QUAN TRẠM GIÁM SÁT VÀ ĐIỀU KHIỂN

Các hàm cơ bản của quá trình đọc dữ liệu thông qua cổng COM 36 4.2.2 Phương pháp tách thông số từ dữ liệu nhận được

Quá trình đọc ghi dữ liệu được tiến hành như hình 4.3

Edit UART() Use ListAvailablePorts() to list device

WriteAsync() send to data to com port Interrupt

Analyze And Display Data Yes

Setting Baud rate, Parity, StopBits,

Để bắt đầu quá trình đọc và ghi dữ liệu, cần hiệu chỉnh Listbox để hiển thị các cổng Com kết nối với máy tính thông qua hàm EditUART() và ListAvailablePorts() Sau khi lựa chọn thiết bị, quá trình sẽ tiếp tục.

Khi nhấn nút Connect, chương trình sẽ cài đặt thời gian cập nhật dữ liệu, tốc độ baud, Parity, StopBits và DataBits Sau khi nhấn nút Send, hàm WriteAsync() sẽ gửi dữ liệu từ ô sendText ra cổng nối tiếp Để đọc dữ liệu, chương trình sử dụng một timer với chu kỳ ngắt 1ms, sau đó tiến hành đọc và phân tích dữ liệu thu được Việc phát hiện ký tự ‘\n’ và các chuỗi GPGGA, GPVTG cho phép tách biệt từng thông số trong chuỗi dữ liệu nhận được.

Hình 4.3: Giao diện truyền nhận UART khi chưa có dữ liệu

Hình 4.4: Giao diện màn hình khi có dữ liệu

4.2.2 Phương pháp tách thông số từ dữ liệu nhận được

Dữ liệu sau khi được đưa vào cổng COM và nhận bằng giao thức UART có danh như sau:

Chúng ta sẽ đợi đến khi nhận được ký tự "\r" thì bắt đầu xử lý

 Nếu chuỗi bắt đầu bằng " GPV " (được kiểm tra bằng hàm: (-1 !=

Dữ liệu từ chỉ số "GPV" được tách ra để xác định hướng chuyển động và vận tốc của máy bay Nếu vận tốc đọc được nhỏ hơn 1 m/s, do sai số từ dao động của máy bay, ta coi hướng vận tốc là không đổi.

 Nếu chuỗi bắt đầu bằng "GPG" (được kiểm tra bằng hàm: (-1 !=

Dữ liệu được lấy từ chỉ số "GPG" trong Data.Temp.IndexOf, sau đó tách chuỗi để lấy thời gian và cộng thêm 7 giờ để phù hợp với múi giờ Việt Nam Tiếp theo, tiến hành tách lấy vĩ độ, kinh độ và độ cao Cuối cùng, hiển thị tốc độ, độ cao và vị trí của máy bay trên màn hình giao diện.

 Nếu chuỗi không bắt đầu với ký tự ‘G’, ta sẽ tách chuỗi này lấy góc roll, pitch và yaw và hiển thị nó.

Phương pháp hiển thị tốc độ, độ cao, góc nghiêng của máy bay 38 Vẽ quỹ đạo của máy bay, tính toán khoảng cách và góc tạo bởi vị trí máy bay và điểm đến của máy bay

Sau khi hiện bản đồ ta sẽ tiến hành vẽ các cảm biến để hiển thị dữ liệu nhận được theo nguyên tắc sau:

Lấy một tấm hình đã vẽ đủ các giá trị tầm đo và có chia vạch

Hình 4.5: Ảnh của vận tốc và độ cao

Hình 4.6: Ảnh của góc pitch và yaw

Tạo một ô textbox để hiển thị giá trị cảm biến, với vị trí cố định và các giá trị được làm tròn để dễ nhìn Dựa vào giá trị cảm biến hiện tại, hình ảnh sẽ được di chuyển lên hoặc xuống, và xoay theo chiều hoặc ngược chiều kim đồng hồ, tạo sự sinh động cho hiển thị Phương pháp này có ưu điểm là thời gian xử lý nhanh, chỉ cần thực hiện phép dời tọa độ mà không cần vẽ lại toàn bộ hình ảnh.

Vẽ quỹ đạo của máy bay, tính toán khoảng cách và góc tạo bởi vị trí máy bay và điểm đến của máy bay

Sau khi nhận được tọa độ của máy bay, chúng ta tiến hành vẽ lại lộ trình bay bằng cách kết nối vị trí cũ và mới của máy bay bằng một đường thẳng, và đường thẳng này sẽ được giữ nguyên.

Chúng tôi vẽ một đường thẳng từ máy bay đến vị trí đích, giúp người điều khiển dễ dàng bay đến mục tiêu Đường thẳng này sẽ được cập nhật khi có sự thay đổi dữ liệu Dựa vào tọa độ của máy bay và điểm đích, chúng tôi tính toán khoảng cách một cách chính xác.

R = 6372803; dlon = lon2 - lon1; dlat = lat2 - lat1; a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2; c = 2 * atan2( sqrt(a), sqrt(1-a) ); d = R * c; dalt = alt2 - alt1; distance = sqrt(d^2 + dalt^2)

Bằng cách sử dụng tọa độ của máy bay, chúng ta có thể tính toán góc giữa máy bay và đích đến thông qua công thức sau: dlon = lon2 - lon1; phi = atan2(sin(dlon)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(dlon)).

Khi phi công nắm rõ khoảng cách và góc, họ có khả năng điều khiển máy bay đến đích một cách chính xác và đúng giờ, từ đó giúp trạm mặt đất dễ dàng trong việc điều tiết và giám sát hoạt động của máy bay.

Các chức năng của một trạm mặt đất hoàn chỉnh

Trên màn hình giao diện này chúng ta sẽ thiết kế bộ phận hiển thị:

 Các góc Roll, Pitch, Yaw

 Độ cao, vận tốc của máy bay

 Tọa độ hiện tại của máy bay trên bản đồ

 Khoảng cách giữa máy bay và đích đến

 Góc tạo bởi máy bay và đích đến

 Thời gian hiện tại mà cảm biến gửi về

 Góc xoay của bản đồ

Chúng ta thiết kế thêm các textbox và nút nhấn với chức năng như sau:

 Textbox để nhập và tìm kiếm địa điểm trên bản đồ

 1 nút nhấn để kết nối cổng Com

 1 nút nhấn để bật tắt chế độ auto-zoom

 1 nút nhấn để chọn đọc từ file txt

 Nút nhấn để tăng giảm tốc độ khi đọc dữ liệu từ file txt

 1 nút nhấn tạm dừng khi đang đọc dữ liệu để phân tích dữ liệu ở thời điểm hiện tại

Hình 4.7: Màn hình giao diện trạm mặt đất hoàn chỉnh

Tìm kiếm địa điểm trên bản đồ offlline, thay đổi đích đến

Trên màn hình có một ô textbox để người dùng nhập địa điểm cần tìm Hàm

The function "await MapLocationFinder.FindLocationsAsync(StrDestination, myMap.Center)" will be executed to locate the specified position on the map, add a marker for the house at that location, and retrieve the coordinates of the found location, which will be stored in two variables representing the destination's latitude and longitude.

Hình 4.8: Kết quả tìm kiểm tỉnh Quảng Ngãi trên bản đồ

Nếu chương trình không xác định được địa điểm nhập vào, bạn có thể nhấp đúp vào bản đồ để lấy tọa độ Sau đó, hãy nhấn nút "Get" để chọn địa điểm này làm nơi máy bay hạ cánh.

Hình 4.9: Lấy cồn cát trên sông Trà Khúc làm đích đến của máy bay.

Chế độ phóng to thu nhỏ màn hình và tự động zoom theo vị trí của máy bay

Màn hình giao diện có 2 chế độ được thay đổi bằng nút “1 Screen”

Trong chế độ 2 màn hình, phần hiển thị cho cảm biến chiếm 1/3 diện tích màn hình với nền hồng giúp dễ dàng nhận diện các thông số quan trọng, trong khi 2/3 còn lại được sử dụng để hiển thị bản đồ, máy bay và quỹ đạo bay.

Hình 4.10: Màn hình giao diện ở chế độ “2 Screen”

Trong chế độ 1 màn hình, bản đồ hiển thị toàn màn hình, cho phép các cảm biến được vẽ trực tiếp lên bản đồ, giúp người điều khiển dễ dàng quan sát phạm vi rộng hơn.

Chương trình không chỉ hỗ trợ chế độ phóng to màn hình mà còn tích hợp chế độ auto zoom, cho phép thu thập toàn bộ các điểm máy bay đã đi qua Bằng cách sử dụng hàm await myMap.TrySetViewBoundsAsync(GeoboundingBox.TryCompute(geoPositions), null, MapAnimationKind.None) do C# cung cấp, người dùng có thể dễ dàng zoom toàn bộ những điểm máy bay đã bay qua, từ đó giúp việc quan sát và theo dõi quá trình bay trở nên nhanh chóng và thuận tiện hơn.

Hình 4.11: Zoom tất cả những điểm máy bay đã đi qua ở chế độ “1 Screen”

Để quan sát vị trí máy bay và đích đến, bạn chỉ cần nhấn nút Zoom Normal Chương trình sẽ tự động hiển thị cả vị trí hiện tại của máy bay và đích đến, đồng thời điều chỉnh bản đồ sao cho hai điểm này nằm ở trung tâm với mức zoom phù hợp.

Hình 4.12: Zoom cả vị trí máy bay và đích đến ở chế độ “2 Screen”

Vẽ lại quá trình bay theo dữ liệu đã thu trước

Chế độ bay offline được mô phỏng thông qua chương trình GCS trên mặt đất, giúp người dùng có cái nhìn tổng thể về quỹ đạo bay Điều này cũng cho phép đưa ra nhận xét về khả năng điều khiển trong chế độ tự động.

Cách đọc file txt và tìm thông tin của chuyến bay

Tạo một browser để người dùng load file Đọc dòng data trong file

Xử lý data để lấy thời gian trong dữ liệu vừa đọc

Dữ liệu thời gian != null

Hiển thời gian bắt đầu của quá trình bay Đưa con trỏ và cuối file, sau đó dời ngược về 2000 ký tự Đọc dòng data

Xử lý và lấy dữ liệu thời gian Hết file

Hiển thị thời gian cuối cùng đọc được, đây chính là thời gian kết thúc quá trình bay

Hình 4.13: Giải thuật lấy thông tin của file

Các chức năng nổi bật của quá trình tường thuật lại quá trình bay 47 Màn hình cài đặt thông số online

Chương trình tích hợp thanh cuộn cho phép người dùng dễ dàng chọn mốc thời gian để xem dữ liệu, đồng thời cung cấp thêm một thanh cuộn khác để điều chỉnh tốc độ xem lại dữ liệu theo ý muốn.

Hình 4.14: Các thanh cuộn để thay đổi thời gian và tốc độ

Ứng dụng còn được trang bị các nút nhấn cho phép người dùng tạm dừng hoặc tiếp tục quá trình mô phỏng, cũng như điều chỉnh tốc độ mô phỏng bằng cách tăng hoặc giảm tốc độ Ngoài ra, còn có nút nhấn để tải lại file txt một cách dễ dàng.

Hình 4.15: Phím chức năng của quá trình mô phỏng

Màn hình cài đặt thông số online

Hình 4.16: Màn hình cài đặt thông số của quá trình bay

Màn hình có chức năng chọn cổng COM sau đó kết nối với bộ RF giúp cài đặt các thông số cho cho quá trình bay tự động

Một listbox sẽ hiển thị các cổng COM đang kết nối với máy tính, cho phép người dùng dễ dàng lựa chọn Cài đặt mặc định cho các cổng này là tốc độ baud.

57600, 8 bit data, 1 bit stop, No Parity

 1 nút nhấn để kết nối đến cổng UART và bắt đầu quá trình đọc dữ liệu

 Các ô textbox để nhập Kp, Ki, Kd, Setpoint cho các góc roll, picth, yaw và độ cao

 1 listbox hiện tọa độ các điểm mong muốn máy bay đi qua

 Các nút nhấn Upload các thông số lên máy bay

 1 nút nhấn để xóa các điểm cũ và cập nhật các vị trí mong muốn khác

Khi nhấn nút Upload, chương trình sẽ thiết lập thời gian timeout Nếu không nhận được phản hồi từ máy bay trong khoảng thời gian này, dữ liệu gửi đi sẽ được coi là lỗi và người dùng cần nhấn lại nút Upload.

TỔNG QUAN QUÁ TRÌNH HOẠT ĐỘNG CỦA HỆ THỐNG

Chức năng

Mạch có vai trò chính là nhận tín hiệu từ Remote Control qua switch kênh 5, xác định chế độ điều khiển (auto hoặc manual) và giải mã tín hiệu điều khiển thành tín hiệu Digital Đồng thời, nó thực hiện việc đọc song song tuần tự qua cổng 8 bit.

Nguyên lý

Tín hiệu điều khiển bằng tay được truyền qua bộ receiver và được xử lý bởi mạch FPGA trước khi xuất ra các Servo và ESC Tín hiệu từ Switch kênh 5 của bộ điều khiển Remote Control có hai mức, 0 và 1, với mức 0 tương ứng với tín hiệu PWM tần số 73Hz và độ rộng xung 1ms, còn mức 1 có độ rộng xung 2ms Mạch xác định chế độ điều khiển dựa trên độ rộng xung PWM, với 0 là chế độ manual và 1 là chế độ auto Trong chế độ auto, FPGA xuất tín hiệu kích cho vi điều khiển và bắt đầu xử lý tín hiệu điều khiển, trong khi ở chế độ manual, FPGA nhận tín hiệu từ Remote Control để điều khiển động cơ máy bay.

Mạch vi xử lý STM32F4

Remote Control User File txt

Hình 5.2: Chức năng của vi điều khiển trong hệ thống

Vi điều khiển đóng vai trò trung tâm trong hệ thống, thực hiện các nhiệm vụ quan trọng như giao tiếp với cảm biến và phân tích dữ liệu cần thiết cho chế độ bay tự động Nó không chỉ thực hiện giải thuật PID kết hợp với module FPGA để xuất xung PWM cho động cơ, mà còn thiết lập mối liên hệ tương tác với trạm điều khiển ở mặt đất thông qua module phát sóng SV611.

Truyền dữ liệu từ các cảm biến về mặt đất giúp trạm điều khiển mô phỏng chính xác và trực quan tình hình cũng như quỹ đạo bay hiện tại của máy bay, từ đó nâng cao hiệu quả giám sát.

Nhận lệnh từ trạm điều khiển cho phép điều chỉnh các thông số như Ki, Kp, Kd, giá trị setpoint và các điểm hành trình bay, giúp tối ưu hóa quá trình điều khiển và nâng cao tính linh hoạt trong hoạt động.

Giao tiếp cảm biến IMU, GPS và truyền dữ liệu về trạm mặt đất 52 5.3.2 Giao tiếp với trạm điều khiển tại mặt đất

Sau khi tìm hiểu về thiết bị cảm biến và chuỗi tín hiệu mà chúng gửi, chúng tôi đã sử dụng chip STM32F4 để xử lý tín hiệu nhận được và gửi tín hiệu đã xử lý đến trạm mặt đất Cảm biến IMU/GPS truyền dữ liệu qua giao thức UART với chu kỳ 10ms cho dữ liệu IMU và 100ms cho dữ liệu GPS, mỗi chu kỳ chứa ít nhất 80 byte và tối đa 250 byte khi nhận đầy đủ tín hiệu GPS Do đó, vi xử lý cần được cấu hình để nhận dữ liệu qua giao thức UART bằng cơ chế DMA nhằm đảm bảo không làm gián đoạn chương trình chính.

Hình 5.3: Chuỗi dữ liệu nhận được từ cảm biến

STM32F4 giao tiếp với cảm biến qua UART2 với tốc độ baud 460800, sử dụng buffer_DMA_UART2 để lưu trữ dữ liệu Chương trình liên tục kiểm tra buffer_DMA_UART2 để xác định xem có ký tự ‘\r’ hay không, chỉ ra rằng cảm biến đã nhận một dòng dữ liệu Khi phát hiện ký tự này, ta trích xuất và xử lý dòng dữ liệu, đồng thời loại bỏ nó khỏi buffer_DMA_UART2 Nếu dữ liệu là từ IMU, ta sẽ lấy các thông số góc roll, pitch, yaw; còn nếu dữ liệu từ GPS, ta thu thập tọa độ địa lý, độ cao và hướng của máy bay Các thông số góc giúp kiểm soát và duy trì giá trị cân bằng, cho phép điều khiển máy bay theo các giá trị này khi chuyển sang chế độ tự động Cuối cùng, ta giữ độ cao của máy bay ổn định với các góc cánh ở trạng thái cân bằng, trong khi hồi tiếp tọa độ hiện tại để điều khiển máy bay theo quỹ đạo đã định.

Để truyền dữ liệu về trạm mặt đất, chúng ta sử dụng giao thức UART kết hợp với cơ chế DMA Mỗi 100 ms, vi xử lý nhận 10 chuỗi IMU và 1 chuỗi GPS, nhưng chỉ truyền 1 chuỗi GPS và 1 chuỗi IMU về trạm mặt đất Cách làm này giúp giảm quá tải trên đường truyền và cung cấp đủ dữ liệu để chương trình trạm điều khiển mặt đất mô phỏng chính xác trạng thái của máy bay.

5.3.2 Giao tiếp với trạm điều khiển tại mặt đất Để thiết kế một trạm điều khiển phục vụ máy bay cánh bằng thì việc giao tiếp giữa trạm điều khiển và máy bay là cực kỳ quan trọng Ngoài việc truyền dữ liệu về trạm điều khiển ở mặt đất với mục đích mô phỏng trạng thái, quỹ đạo của máy bay, trạm điều khiển còn tác động lại với máy bay đó là truyền thông tin để máy bay cân bằng độ cao, thay đổi trực tiếp các thông số PID Quá trình điều chỉnh các hệ số Kp, Ki, Kd trong quá trình điều khiển là vấn đề hết sức quan trọng và cấp thiết Để gửi chính xác dữ liệu và máy bay cập nhật đúng dữ liệu cần phải có sự tương tác chặt chẽ trạm điều khiển và máy bay, nên ta cần quy ước chuẩn frame giao tiếp giữa chúng

‘!’ Code ‘,’ Kp ‘,’ Ki ‘,’ Kd ‘,’ Setpoint ‘,’ Checksum ‘@’

Bảng 5.1: Kiến trúc chung của Frame truyền

‘!’ ‘0’ ‘,’ Kp ‘,’ Ki ‘,’ Kd ‘,’ Setpoint ‘,’ Checksum ‘@’

Bảng 5.2: Frame truyền thông số góc roll

‘!’ ‘1’ ‘,’ Kp ‘,’ Ki ‘,’ Kd ‘,’ Setpoint ‘,’ Checksum ‘@’

Bảng 5.3: Frame truyền thông số góc pitch

‘!’ ‘2’ ‘,’ Kp ‘,’ Ki ‘,’ Kd ‘,’ Setpoint ‘,’ Checksum ‘@’

Bảng 5.4: Frame truyền thông số góc yaw

‘!’ ‘3’ ‘,’ Kp ‘,’ Ki ‘,’ Kd ‘,’ Setpoint ‘,’ Checksum ‘@’

Bảng 5.5: Frame truyền thông số độ cao

‘!’ ‘4’ ‘v’ east_utm ‘k’ north_utm … Checksum ‘@’ Bảng 5.6: Frame truyền tọa dộ các điểm máy bay cần đi qua

Vi điều khiển nhận dữ liệu và kiểm tra checksum trước khi gửi tín hiệu xác nhận Nếu dữ liệu được nhận đúng, máy bay sẽ gửi một frame gồm 4 byte.

Bảng 5.7: Frame xác nhận đúng Còn nhận sai dữ liệu thì sẽ gửi về frame gồm 4 byte:

Bảng 5.8: Frame xác nhận saiKhi nhận được thông tin từ máy bay gửi về, các trạng thái xác nhận sẽ được thông báo trên trạm điều khiển

Waiting for IMU/GPS, Receive Command

Get Current value of Roll, Pitch, Yaw Angle

Get Current value of Latitude, Longitude, Altitude, Heading of Velocity

Update Path for Flight Convert Geography to UTM axis Use Standley algorithm control Yaw Angle

Add 1 frame IMU and 1 frame GPS to Buffer_Data_Tran_to_GS

Buffer_Data_Tran_to_GS

Config UART, DMA, Interrupt, GPIO, PID

Send Buffer_Data_Tran_to_GS to GS

Hình 5.4: Lưu đồ giải thuật chương trình trên STM32F405

Chương trình chính sẽ kiểm tra trạng thái của chân PA8 để xác định chế độ bay đang sử dụng Nếu chân PA8 ở mức 1, điều này cho thấy chế độ bay tự động đang hoạt động Khi đó, chương trình sẽ gọi các hàm PID để điều khiển xuất xung cho các động cơ.

Chương trình ngắt DMA cho phép vi điều khiển nhận dữ liệu từ trạm điều khiển bằng cách phát hiện ký tự kết thúc frame lệnh Khi xác định đúng kiểu dữ liệu, vi điều khiển sẽ thực hiện yêu cầu và gửi frame xác nhận về trạm điều khiển.

56 Điều khiển máy bay giữ thăng bằng và độ cao

Bộ điều khiển PID

Bộ điều khiển hồi tiếp vòng kín, đặc biệt là bộ điều khiển PID, là một trong những thiết bị được sử dụng phổ biến trong ngành công nghiệp PID controller kết hợp ba loại điều khiển: điều khiển tỉ lệ, điều khiển tích phân và điều khiển vi phân, giúp tối ưu hóa hiệu suất và độ chính xác trong quá trình điều khiển.

Bộ điều khiển được thiết kế để triệt tiêu sai số xác lập, tăng tốc độ đáp ứng và giảm độ vọt lố, nhờ vào việc lựa chọn thông số phù hợp.

Hình 5.6: Đáp ứng mong đợi của hệ thống

57 Ảnh hưởng của các thông số Kp, Ki, Kd tới đáp ứng ngõ ra:

 Kp càng lớn thì tốc độ đáp ứng càng nhanh, sai số xác lập càng nhỏ (nhưng không thể triệt tiêu)

 Ki càng lớn thì đáp ứng quá độ càng chậm, sai số xác lập càng nhỏ (có thể triệt tiêu), độ vọt lố càng tăng

 Kd càng lớn thì đáp ứng quá độ càng nhanh, độ vọt lố càng nhỏ, rất nhạy với nhiễu tần số cao

⇒ Để có được đáp ứng ngõ ra tốt nhất, ta phải kết hợp và lựa chọn các thông số

Kp, Ki, Kd một cách thận trọng và tỉ mỉ, với các phương pháp như: chỉnh định bằng tay, phương pháp Ziegler–Nichols, chỉnh định dùng phần mềm, …

Điều khiển giữ thăng bằng cho máy bay

Mục tiêu của đề tài là duy trì sự thăng bằng cho máy bay và điều khiển động cơ BLDC để đạt độ cao mong muốn Trước khi chuyển từ chế độ manual sang auto, máy bay cần được điều khiển gần vị trí thăng bằng để tránh thay đổi trạng thái đột ngột Khi chuyển đổi chế độ, vi điều khiển sẽ sử dụng ngắt ngoài trên chân PA8 để cập nhật giá trị đặt cho các góc roll và pitch, với giá trị ban đầu là 0 Chương trình phục vụ ngắt sẽ cập nhật các góc và reset giá trị tích lũy trong bộ điều khiển PID Hệ thống liên tục lấy mẫu giá trị góc roll, pitch, yaw từ cảm biến IMU với chu kỳ 10ms, cung cấp giá trị hồi tiếp cho bộ điều khiển PID.

Lỗi (Error) là sự khác biệt giữa tín hiệu đặt (Setpoint) và tín hiệu hồi tiếp (Measured_Value) Trong điều khiển PID, Setpoint là giá trị mong muốn, Measured_Value là giá trị hiện tại Các thành phần quan trọng bao gồm tích phân (Integral) và vi phân (Derivative), cùng với dt là khoảng thời gian lấy mẫu Công thức tính toán điều khiển PID được xây dựng dựa trên những yếu tố này.

Derivative = (Error - Previous_Error)/dt

Để điều chỉnh hệ thống PID, công thức được sử dụng là Output = Kp * Error + Ki * Integral + Kd * Derivative Bắt đầu với Ki = Kd = 0, tăng Kp cho đến khi đạt được giá trị thiết lập, chú ý đến độ vọt ló và thời gian quá độ ngắn nhất Sau khi xác định giá trị Kp, giữ nguyên và tiếp tục điều chỉnh Ki; Ki sẽ giúp giảm vọt ló nhưng đồng thời giảm thời gian quá độ và giảm sai số về 0 Cuối cùng, tăng Kd để giảm vọt ló nhưng có thể làm kéo dài thời gian quá độ, điều chỉnh sao cho vọt ló quay lại trong vùng cho phép.

Tín hiệu Output với tần số 73Hz và độ rộng xung từ 1ms đến 2ms được gửi đến đối tượng điều khiển để cập nhật giá trị hiện tại Cảm biến sẽ hồi tiếp tín hiệu này để tính toán sai số mới Bộ điều khiển tiếp tục tính toán các giá trị vi phân và tích phân của sai số, sau đó xuất tín hiệu điều chỉnh.

‘output’, cứ thế lặp đi lặp lại

Đề tài này sử dụng ba vòng điều khiển PID để quản lý các góc cánh của máy bay: Roll, Pitch và Yaw Mỗi vòng điều khiển đảm bảo các góc cánh bám sát giá trị setpoint, trong đó góc Roll và Pitch được đặt ở 0, còn góc Yaw theo hướng hiện tại của máy bay Từ sai số giữa góc setpoint và các góc cập nhật, hàm PID sẽ tính toán độ rộng xung cần thiết để điều khiển các Servo Nếu hiệu suất ngõ ra không đạt yêu cầu, các thông số Kp, Ki, Kd có thể được điều chỉnh từ trạm mặt đất Với chu kỳ lấy mẫu 10ms, tín hiệu ngõ ra có độ phân giải cao giúp Servo hoạt động mượt mà, giữ cho máy bay ổn định và thăng bằng tốt.

Điều khiển giữ độ cao cho máy bay

Chương trình PID điều khiển máy bay giữ độ cao dựa vào tín hiệu hồi tiếp độ cao trong chuỗi GPGGA của tín hiệu GPS với thời gian lấy mẫu 100ms Để đọc độ rộng xung của kênh điều khiển tốc độ động cơ, chúng ta kết nối chân CH3 của Receiver với chân PB15 của vi điều khiển Chương trình được cấu hình để ngắt mỗi micro giây, trong đó biến clk_1microsec được tăng lên 1 đơn vị mỗi khi vào ngắt Chân PB15 được thiết lập để ngắt ngoài ở cả cạnh lên và cạnh xuống; khi có ngắt cạnh xuống, biến clk_1microsec sẽ được reset.

Trong chế độ điều khiển bằng tay, giá trị clk_1microsec được sử dụng làm độ rộng xung của CH3 trên Receiver Khi chuyển từ chế độ manual sang auto, giá trị độ rộng xung hiện tại được lấy làm đầu vào cho bộ điều khiển PID độ cao Ngõ ra của bộ PID được giới hạn trong khoảng 1.11ms đến 1.92ms để đảm bảo máy bay có sự thay đổi tốc độ chậm, phù hợp với đặc tính động lực học và tăng tính ổn định trong bay tự động Chương trình điều khiển giúp máy bay duy trì độ cao theo giá trị đặt ngay khi chuyển sang chế độ tự động, và cho phép điều chỉnh độ cao theo yêu cầu từ mặt đất Nếu ngõ ra chưa đạt yêu cầu, các thông số Kp, Ki, Kd có thể được điều chỉnh từ trạm mặt đất, giúp tìm ra bộ số PID tối ưu cho từng điều kiện môi trường, từ đó cải thiện khả năng điều khiển quỹ đạo của máy bay.

Sử dụng thuật toán Standley điều khiển quỹ đạo máy bay

Bộ điều khiển Stanley là bộ điều khiển bám quỹ đạo được sử dụng trong robot Stanley, một chiếc xe tự hành đã giành chiến thắng trong cuộc thi DARPA Grand Challenge 2005 Bộ điều khiển này tính toán góc lái theo công thức.

Góc lệch 𝜓 giữa góc heading của xe và tiếp tuyến tại điểm gần xe nhất trên quỹ đạo, cùng với khoảng cách 𝑒(𝑡) từ xe đến điểm gần xe nhất, được gọi là cross track error.

Thành phần 𝜓 của góc lái giúp duy trì xe di chuyển song song với quỹ đạo mong muốn, trong khi thành phần thứ hai có tác dụng giảm thiểu lỗi đường chéo (cross track error).

Hình 5.7: Mô tả các thông số trong thật toán standley

Các điểm mà máy bay cần bay qua được đánh dấu trên bản đồ, sau đó trạm điều khiển sẽ chuyển đổi các điểm từ hệ tọa độ địa lý sang hệ tọa độ UTM.

(Universal Transverse Mercator) và gửi tọa độ các điểm này lên máy bay

Khi nhận tín hiệu điều khiển, máy bay sẽ duy trì thăng bằng và độ cao, sau đó điều chỉnh quỹ đạo Sử dụng thuật toán Standley, chúng ta tính toán góc lái, từ đó xác định giá trị cho góc yaw Việc điều khiển rudder kết hợp với việc giữ thăng bằng sẽ giúp máy bay bay theo quỹ đạo mong muốn.

Ngày đăng: 28/12/2021, 10:22

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đặng Anh Tùng, "Xây dựng bộ ước lượng góc quay ba trục," trong Luận văn đại học, Đại học Bách khoa Thành phố Hồ Chí Minh, 2012 Sách, tạp chí
Tiêu đề: Xây dựng bộ ước lượng góc quay ba trục
[2] Nguyễn Xuân Thanh và Hồ Nhật Tân, “Thiết kế trạm điều khiển mặt đất phục vụ điều khiển máy bay cánh bằng,” trong Luận văn đại học, Đại học Bách khoa Thành phố Hồ Chí Minh, 2014 Sách, tạp chí
Tiêu đề: Thiết kế trạm điều khiển mặt đất phục vụ điều khiển máy bay cánh bằng,” trong "Luận văn đại học, Đại học Bách khoa Thành phố Hồ Chí Minh
[3] Nguyễn Đình Huân và Trần Văn Quốc, "Xe phun thuốc trừ sâu tự động dựa vào hệ thống định vị đo động thời gian thực," trong Luận văn đại học, Đại học Bách khoa Thành phố Hồ Chí Minh, 2015 Sách, tạp chí
Tiêu đề: Xe phun thuốc trừ sâu tự động dựa vào hệ thống định vị đo động thời gian thực
[7] G. Baddeley, "GPS - NMEA sentence information," 2001. [Online]. Available: http://aprs.gids.nl/nmea/ Sách, tạp chí
Tiêu đề: GPS - NMEA sentence information
[8] Microsoft, "Maps and location overview," Microsoft , 19 9 2016. [Online]. Available: https://msdn.microsoft.com/en-us/windows/uwp/maps-and-location/index Sách, tạp chí
Tiêu đề: Maps and location overview
[9] Microsoft, "Universal Windows Platform (UWP) app samples," GitHub, Inc and Microsoft, 2016. [Online]. Available:https://github.com/Microsoft/Windows-universal-samples. [Accessed 1 12 2016] Sách, tạp chí
Tiêu đề: Universal Windows Platform (UWP) app samples
[4] Sebastian Thrun, "Stanley: The Robot that Won the DARPA Grand Khác

HÌNH ẢNH LIÊN QUAN

Hình 3.7: Sơ đồ kết nối động cơ với bộ điều khiển - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 3.7: Sơ đồ kết nối động cơ với bộ điều khiển (Trang 36)
Hình 3.9: Sơ đồ kết nối ESC, BEC đến các thiết bị trên máy bay - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 3.9: Sơ đồ kết nối ESC, BEC đến các thiết bị trên máy bay (Trang 38)
Hình 3.14: Sơ đồ khối của IMU - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 3.14: Sơ đồ khối của IMU (Trang 41)
Hình 3.16: Module truyền sóng RF  Hình 3.17: Sơ đồ chân RF - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 3.16: Module truyền sóng RF Hình 3.17: Sơ đồ chân RF (Trang 47)
Hình 3.20: Sơ đồ kết nối bộ receiver với các động cơ - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 3.20: Sơ đồ kết nối bộ receiver với các động cơ (Trang 50)
Sơ đồ tổng quát của hệ thống - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
Sơ đồ t ổng quát của hệ thống (Trang 68)
Hình 6.13: Hình ảnh máy bay trên không trung ngày 27/11/2016 - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 6.13: Hình ảnh máy bay trên không trung ngày 27/11/2016 (Trang 91)
Hình 6.15: Hình ảnh chụp từ camera trên máy bay - LUẬN VĂN TỐT NGHIỆP XÂY DỰNG TRẠM MẶT ĐẤT VÀ ĐIỀU KHIỂN MÁY BAY CÁNH BẰNG    KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA
i ̀nh 6.15: Hình ảnh chụp từ camera trên máy bay (Trang 92)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w