Đầu ra Mô tả Khoảng giá trị Đơn vị
Tốc độ góc Roll chuẩn hóa Tốc độ góc Roll chuẩn hóa -1÷1 [ ] Tốc độ góc Pitch chuẩn hóa Tốc độ góc Roll chuẩn hóa -1÷1 [ ] Tốc độ góc Yaw chuẩn hóa Tốc độ góc Roll chuẩn hóa -1÷1 [ ]
64
d. Khối PID (2 lớp)
Hình 5.14: Sơ đồ khối mơ phỏng điều khiển PID hai lớp
Khối PID lớp 1:
Đầu vào:
Là hiệu số (sai số) giữa giá trị góc roll và pitch mong muốn (điều khiển) với giá trị góc đo đƣợc từ cảm biến.
Giá trị điều khiển đƣợc chuẩn hóa nhƣ đã nêu ở Khối lọc tín hiệu điều khiển . Bảng 10: Các tín hiệu đầu vào khối PID lớp 1
Đầu vào Mô tả Khoảng giá trị Đơn vị
Roll-Ch1 Sai số góc Roll điều khiển và góc Roll hiện tại -3.57÷3.57 [ ] Pitch-Ch2 Sai số góc Pitch điều khiển và góc Pitch hiện
tại
-3.57÷3.57 [ ]
Ch5 Tín hiệu kích PID hoạt động [ ]
65
Bảng 11: Cái tín hiệu đầu ra khối PID lớp 1
Đầu ra Mô tả Khoảng giá trị Đơn vị
OutPIDRoll Tín hiệu ra của bộ PID đk góc Roll -1÷1 [ ] OutPIDPitch Tín hiệu ra của bộ PID đk góc Pitch -1÷1 [ ]
Khối PID (lớp 2):
Đầu vào:
Bảng 12: Các tín hiệu đầu vào khối PID lớp 2
Đầu vào Mô tả Khoảng giá trị Đơn vị
p - OutPIDRoll Sai số giữa tốc độ góc Roll đo đƣợc với đầu ra của PID góc Roll
-2÷2 [ ]
q - OutPIDPitch Sai số giữa tốc độ góc Pitch đo đƣợc với đầu ra của PID góc Pitch
-2÷2 [ ]
r – Ch4 Sai số giữa tốc độ góc Yaw đo đƣợc với tín hiệu điều khiển tốc độ góc Yaw từ kênh 4
-2÷2 [ ]
Ch5 Tín hiệu kích PID hoạt động [ ]
Đầu ra:
Bảng 13: Các tín hiệu đầu ra khối PID lớp 2
Đầu ra Mô tả Khoảng giá trị Đơn vị
OutPIDRollRate Tín hiệu điều khiển tốc độ góc Roll -1÷1 [ ] OutPIDPitchRate Tín hiệu điều khiển tốc độ góc Pitch -1÷1 [ ] OutPIDYawRate Tín hiệu điều khiển tốc độ góc Yaw -1÷1 [ ]
66 e. Kết quả chọn hệ số PID = 4.8, = 0.18, = 0.04, = 0.1 Hình 5.15: Đồ thị ứng với mức ga thấp nhất Hình 5.16: Đồ thị ứng với mức ga trung bình Hình 5.17: Đồ thị ứng với mức ga cao nhất
67 = 4.5, = 0.15, = 0.04, = 0.1
Hình 5.18: Đồ thị ứng với mức ga thấp nhất
Hình 5.19: Đồ thị ứng với mức ga trung bình
68
Kết quả thu đƣợc khi tiến hành thử nghiệm bộ điều khiển PID 2 lớp trong thực tế Bộ hệ số thứ nhất : =4.8, = 0.18, = 0.04, = 0.1
Hình 5.21: Đồ thị dữ liệu thu đƣợc từ bộ hệ số PID thứ nhất Bộ hệ số thứ 2 : = 4.5, = 0.15, = 0.04, = 0.1 Bộ hệ số thứ 2 : = 4.5, = 0.15, = 0.04, = 0.1
69
Bộ hệ số thứ ba : = 4.6, = 0.15, = 0.04, = 0.1
70
d. Kết quả bay theo quỹ đạo
Kết quả mô phỏng áp dụng bộ điều khiển bay theo quỹ đạo xây dựng ở chƣơng 2
71
CHƢƠNG 6 : THIẾT KẾ VÀ CHẾ TẠO MẠCH ĐIỀU KHIỂN 6.1 Sơ đồ khối chức năng 6.1 Sơ đồ khối chức năng
Với yêu cầu thiết kế đã trình bày ở mục trƣớc, mạch điều khiển trung tâm theo sơ đồ dƣới đây
CẢM BIẾN LA BÀN HMC5883L BỘ THU RC PPM/PWM MUX TS5A23157 U A R T 8 KÊNH ĐIỀU KHIỂN PWM GIAO TIẾP MODULE GPS PC GIAO TIẾP MODULE RF CHUYỂN MỨC 5V÷3.3V TXB0104 G P IO SPI I2C CẢM BIẾN MPU6000 CẢM BIẾN KHÍ ÁP MS5611 P W M SPI CHUYỂN MỨC 5V÷3.3V PCA9306DC IC FLASH AT45DB161 D IN CHUYỂN MỨC 5V÷3.3V TXB0104 U A R T C S G P IO OUT1 OUT2 PPM OUT CẢM BIẾN SIÊU ÂM GPIO GPIO G P IO CHÂN NẠP ISP CHÂN NẠP ISP G P IO G P IO
Module ngoại vi Cảm biến
IC chức năng Vi điều khiển
1 MẠCH NGUỒN AMS1117-3.3V 2 3 4 5 6 VI ĐIỀU KHIỂN ATMEGA32-U2 VI ĐIỀU KHIỂN ATMEGA2560
Hình 6.1: Sơ đồ khối mạch điều khiển phƣơng tiện bay Mạch vi điều khiển phƣơng tiện bay bao gồm 6 khối cơ bản: Mạch vi điều khiển phƣơng tiện bay bao gồm 6 khối cơ bản:
Khối nguồn ổn áp (đƣợc đánh số 1 trên hình vẽ): thực hiện việc chuyển đổi điện áp từ 5V (điện áp đầu vào của mạch điều khiển) sang điện áp 3.3V cấp cho các cảm biến.
72
Vi điều khiển Atmega2560: Đóng vai trị là trung tâm điều khiển các hoạt động. Mọi thuật toán xử lý và điều khiển đƣợc thực hiện tại đây. Đầu vào của vi điều khiển là các tín hiệu nhận từ bộ thu RC (lệnh điều khiển của ngƣời điều khiển) và các cảm biến (trạng thái hiện tại của thiết bị bay). Kết quả đầu ra thu đƣợc là các tín hiệu điều khiển bộ điều tốc của động cơ, gián tiếp tác động tới hoạt động của và trạng thái thiết bị bay.
Vi điều khiển Atmega32U2: Vi mạch tích hợp xử lý tín hiệu PPM nhận đƣợc từ mạch thu RC chuyển sang PWM (kiểu tín hiệu nhận trên vi điều khiển Atmega2560). Ngồi ra, Atmega32U2 đóng vai trị nhƣ một cầu nối chuyển đổi giữa chuẩn giao tiếp UART trên vi điều khiển Atmega2560 với chuẩn giao tiếp USB trên máy tính.
Khối cảm biến: cung cấp về vi điều khiển Atmega2560 các thông số liên quan đến độ cao, các góc quay, gia tốc v.v… trong q trình hoạt động của thiết bị bay.
Khối IC flash AT45DB161D: Lƣu trữ các dữ liệu trong quá trình của bay dƣới dạng log file. Sau q trình bay, có thể sử dụng máy tính kết nối đến mạch điều khiển trung tâm để thu lại log này.
IC chọn kênh MUX TS5A23157: Là bộ dồn kênh, cho phép vi điều khiển Atmega2560 giao tiếp với máy tính cũng nhƣ module RF trên cùng một kết nối UART0.
6.2 Vi điều khiển ATMEGA2560
Vi điều khiển Atmega2560 đóng vai trị bộ não xử lý của mạch điều khiển phƣơng tiện bay. Vi điều khiển Atmega2560 có bốn tín hiệu đầu vào:
Tín hiệu PPM: Tín hiệu từ tay điều khiển Tx đƣợc vi điều khiển Atmega32U2 thu và chuyển đến chân GPIO của Atmega2560. Tín hiệu PPM chứa thơng tin về độ lớn của các tín hiệu điều khiển động cơ.
Tín hiệu cảm biến: Lấy dữ liệu từ các cảm biến từ trƣờng HMC5883L, cảm biến khí áp MS5611, cảm biến MPU6000.
73
Dữ liệu GPS: Nhận các gói bản tin định vị phƣơng tiện bay từ module GPS.
Firmware: Sử dụng các chân đầu vào chuẩn ISP để nạp mã nguồn cho vi điều khiển.
Sau khi nhận các dữ liệu và tín hiệu đầu vào, vi điều khiển Atmega2560 xử lý và đƣa ra các tín hiệu đầu ra:
Tín hiệu PWM: Tín hiệu dùng để cấp cho bộ điều tốc điện tử ESC, điều khiển tốc độ quay của động cơ.
Giao tiếp module RF: Vi điều khiển Atmega2560 gửi các thông số trạng thái nhƣ độ cao, vị trí, tốc độ di chuyển… về trạm mặt đất thông qua module truyển thông RF.
IC Flash: Lƣu các thông số trạng thái góc offset của các cảm biến.
PC: Vi điều khiển Atmega2560 có thể giao tiếp với máy tính thơng qua vi điều khiển Atmega32U2.
Tín hiệu PPM Tín hiệu PWM
Tín hiệu cảm biến Module RF
Firmware
Dữ liệu GPS Dữ liệu Flash
PC
VI ĐIỀU KHIỂN ATMEGA 2560
VI ĐIỀU KHIỂN ATMEGA 2560
Hình 6.2: Tín hiệu vào/ra vi điều khiển Atmega2560
Atmega2560 là vi điều khiển dòng AVR của hãng sản xuất Atmel, đƣợc sử dụng phổ biến trong các ứng dụng lớn nhƣ dự án phát triển board mạch vi xử lý mã nguồn mở Arduino. Do đó, có thể khẳng định Atmega2560 có ƣu điểm là dễ sử dụng do sự phổ biến mã nguồn mở bên cạnh các ƣu điểm khác nhƣ cấu hình mạnh, dễ mua và đƣợc nhà sản xuất hỗ trợ tốt.
Trong sơ đồ nguyên lý, sử dụng thạch anh ngoài 16MHz làm nguồn dao động xung nhịp cho vi điều khiển. Chân reset có tác dụng để khởi động lại vi điều khiển trong các trƣờng hợp cần thiết treo điện áp mức cao, thƣờng sử dụng trở treo
74
2.2÷10KΩ, trong mạch sử dụng giá trị 10 KΩ. Vi điều khiển Atmega2560 có thể nạp mã nguồn bằng hai chuẩn nạp là ISP và bootloader.
Hình 6.3: Sơ đồ nguyên lý vi điều khiển Atmega2560
6.4 Khối vi điều khiển ATMEGA32U2
Vi điều khiển Atmega32U2 có nhiệm vụ chính là cầu nối giao tiếp truyền thông giữa vi điều khiển Atmega2560 với PC và bộ điều khiển RC:
75
PPM/PWM: Tín hiệu từ bộ thu điều khiển Rx dƣới hai dạng điều chế độ rộng xung PWM và điều chế vị trí xung PPM đƣợc đƣa vào Atmega32U2 xử lý.
USB: Atmega32U2 có tác dụng là một IC giao tiếp với PC và vi điều khiển. Tín hiệu đầu ra của Atmega32U2 bao gồm:
Tín hiệu PPM: Tín hiệu từ bộ thu điều khiển đƣợc vi điều khiển xử lý gộp kênh thành dạng PPM 1 kênh và sau đó đƣa đến vi điều khiển Atmega2560.
Tín hiệu MUX: Tín hiệu chọn kênh đầu ra của cổng giao tiếp UART0 trong Atmega2560 với hai đầu kết nối tùy chọn là module RF hoặc nạp mã nguồn thông qua Bootloader.
PPM/PWM Tín hiệu PPM
Tín hiệu MUX USB
VI ĐIỀU KHIỂN ATMEGA32U2
Hình 6.4: Tín hiệu vào, ra vi điều khiển ATMega32U2 Sơ đồ nguyên lý khối vi điều khiển Atmega32U2 Sơ đồ nguyên lý khối vi điều khiển Atmega32U2
Hình 6.5: Sơ đồ nguyên lý khối vi điều khiển Atmega32U2
Atmega32U2 có nhiệm vụ kết nối Atmega2560 với PC bằng cổng USB thơng qua hai dây tín hiệu D+ và D-. Ngoài ra, Atmega32U2 cũng nạp mã nguồn bằng chuẩn nạp ISP 10 chân giống Atmega2560. Atmega32U2 có điện áp hoạt động rộng từ 2.7 ÷ 5.5V tƣơng ứng với tần số xung nhịp thạch anh ngoài biến thiên từ 8 ÷
76
16MHz. Để đảm bảo hoạt động truyền thông tốc độ cao, nhóm nghiên cứu chọn điện áp hoạt động cho Atmega32U2 là 5V và sử dụng thạch anh ngoài 16MHz.
6.5 Khối cảm biến
Mạch điều khiển sử dụng 3 cảm biến MPU6000, MS5611, HMC5883L để đo đạc thông số trạng thái các góc nghiêng của phƣơng tiện bay. Nhƣ đã trình bày trong phần khối mạch nguồn, các cảm biến sử dụng điện áp 3.3V trong khi vi điều khiển Atmega2560 lại dùng 5V nên mức điện áp logic của vi điều khiển và cảm biến trong phù hợp nhau. Vì vậy, nhóm nghiên cứu dùng các IC chuyển mức logic 5V÷3.3V là PCA9306DC và TXB0104 là cầu nối giao tiếp giữa vi điều khiển với cảm biến. Cảm biến khí áp MS5611 và cảm biến MPU6000 cùng có chuẩn giao tiếp SPI nên chung đƣờng dữ liệu. Cảm biến la bàn số HMC5883L sử dụng chuẩn giao tiếp I2C. CẢM BIẾN LA BÀN HMC5883L CẢM BIẾN MPU6000 CẢM BIẾN KHÍ ÁP MS5611 CHUYỂN MỨC 5V÷3.3V PCA9306DC CHUYỂN MỨC 5V÷3.3V TXB0104
Mạch điều khiển trung tâm
77
Sơ đồ thiết kế của cụm cảm biến MPU6000, MS5611 và HMC5883L:
Hình 6.7: Sơ đồ nguyên lý cảm biến MPU6000 và MS5611
Hình 6.8: Sơ đồ nguyên lý cảm biến HMC5883L
6.6 Khối IC flash AT45DB161D
CHUYỂN MỨC 5V÷3.3V TXB0104 IC FLASH AT45DB161D VI ĐIỀU KHIẺN ATMEGA2560
78
IC flash có chức năng ghi dữ liệu là các thơng số offset của các cảm biến. Nhóm đề tài sử dụng TXB0104 chuyển mức logic để giao tiếp giữa Atmega2560 và IC flash.
IC flash AT45DB161D có kích thƣớc bộ nhớ 16MB và có mức điện áp hoạt động là 3.3V nên muốn giao tiếp với vi điều khiển Atmega2560 cần sử dụng IC đệm TXB0104 để chuyển mức điện áp 3.3 sang 5V.
Hình 6.10: Sơ đồ nguyên lý IC Flash AT45DB161D
6.7 Thiết kế mạch in
Từ mạch nguyên lý nhƣ đã phân tích ở phần trên, mạch điều khiển thiết bị bay đƣợc chia thành 2 phần mạch vi điều khiển và mạch cảm biến. Lý do cần tách riêng 2 khối trên thành hai mạch là vì muốn giảm nhiễu tín hiệu cho các cảm biến và giảm thiểu diện tích mạch để dễ dàng lắp đặt trên phƣơng tiện bay.
Mạch vi điều khiển:
Kích thƣớc: 66x89mm
Mạch cảm biến:
79
80
Hình ảnh dƣới là sản phẩm mạch điều khiển đã hoàn thiện khâu hàn linh kiện. Mạch cảm biến đƣợc bố trí gắn cố định ở tầng trên của mạch vi điều khiển.
81
CHƢƠNG 7 : TRUYỀN THÔNG THỜI GIAN THỰC CHO THIẾT BỊ BAY 7.1 Mơ hình truyền thơng
Hình 7.1: Mơ hình hệ thống truyền thơng
Trong quá trính vận hành, các thơng số về vị trí input, output của động cơ, thơng số điều khiển, góc nghiêng, hƣớng, vị trí, vận tốc đƣợc thiết bị bay cập nhật liên tục và gửi về trạm mặt đất thông qua đƣờng truyền RF.
Về phần cứng: tác giả sử dụng bộ thu phát sóng RFD 900MHz để phù hợp với điều khiển trong tầm nhìn thẳng và quãng ngắn (50m). Bộ thu phát sử dụng ở băng tần UHF có bƣớc sóng siêu ngắn từ 10cm-1m nên kích thƣớc anten nhỏ (xấp xỉ bƣớc sóng), dễ dàng lắp đặt trên thiết bị bay.
82
Hình 7.2: Bộ thu phát RFD 900
Giao thức truyền thông đƣợc sử dụng là giao thức MAVLink (Micro Air Vehicle Link). MAVLink là một giao thức đƣợc sử dụng trong các ứng dụng thực
tế điều khiển các thiết bị không ngƣời lái
7.2 Giao thức MAVLink
Cấu trúc một gói dữ liệu MAVLink gồm có 8 trƣờng dữ liệu nhƣ sau: Start of Frame [0] Payload Lengh [1] Packet Sepuence [2] System ID [3] Message ID [5] Component ID [4] Payload [6, n+6] CRC [n+7,n+8]
Hình 7.3: Cấu trúc gói dữ liệu MAVLink. Trong đó, các trƣờng đƣợc gắn chỉ số và mô tả nhƣ bảng dƣới: Trong đó, các trƣờng đƣợc gắn chỉ số và mơ tả nhƣ bảng dƣới:
Bảng 14. Cấu trúc bản tin MAVLink
Field name Index Size Decription
Start-of-frame 0 1 byte Bắt đầu khung. Luôn là 0xFE.
Payload length 1 1 byte Độ dài Payload
Packet sequence 2 1 byte Trình tự gói dữ liệu đƣợc gửi bởi mỗi component. Cho phép phát hiện mất gói (0 - 255).
System ID 3 1 byte ID xác định hệ thống đã gửi bản tin. Cho phép phân biệt các hệ thống trong cùng mạng.
Component ID 4 1 byte
ID xác định component gửi bản tin. Cho phép xác định các component khác nhau trong cùng hệ thống.
Message ID 5 1 byte ID xác định bản tin.
83
CRC (n+7)-
(n+8) 2 bytes Check-sum.
Trƣờng Start-of-frame cho ta biết điểm bắt đầu khung truyền. Phiên bản MAVLink 1.0 có Start-of-frame là 0xFE. Giữa 2 byte có giá trị 0xFE liên tiếp ta xác định đƣợc một bản tin MAVLink.
Một đƣờng truyền MAVLink có thể đƣợc sử dụng bởi nhiều hệ thống, trong mỗi hệ thống lại có nhiều thành phần có thể gửi bản tin MAVLink (khối IMU, GPS,…). Vậy để xác định hệ thống nào gửi bản tin ta dựa vào trƣờng System ID, để xác định thành phần nào trong hệ thống gửi bản tin ta dựa vào Component ID.
Ta chú ý đến trƣờng Message ID. Message ID là thành phần dùng xác định bản tin nhận đƣợc là bản tin nào. Trong MAVLink, mỗi bản tin có một ID xác định, kích thƣớc 1byte. Giá trị ID này nằm trong khoảng [0,255]. Tuy nhiên, trong MAVLink chỉ có 92 bản tin, nên một số giá trị sẽ không là ID của bản tin nào cả.
7.3 Đánh giá độ trễ truyền thông
84
Hình 7.5: Đồ thị trễ truyền bản tin RFD 900 với khoảng cách truyền 10m
Hình 7.6: Đồ thị trễ truyền bản tin RFD 900 với khoảng cách truyền 20m
85
Hình 7.8: Đồ thị trễ truyền bản tin RFD 900 với khoảng cách truyền 100m
86
CHƢƠNG 8 : KẾT QUẢ THỰC NGHIỆM THIẾT BỊ BAY TRONG CÔNG TÁC PCCC
Trong tháng 8/2014 thiết bị bay đƣợc nghiên cứu chế tạo đã đƣợc tham gia thử nghiệm trong đợt tập huấn PCCC của phòng CS PCCC Sơn Tây – Hà Nội Kịch tham gia hỗ trợ PCCC đƣợc thực hiện theo chƣơng 2