3.4.1 Sơ đồ giải thuật của hệ thống:
Hệ thống hoạt động theo giải thuật sau:
Bắt đầu
- Người dùng khởi động phần mềm điều khiển, lựa
chọn vệ tinh cần theo dõi
- Hệ thống tự động quay các trục Az,El về giá trị
ban đâu 0 độ
Thời gian hệ thống có bằng thời gian trong dữ
liệu quỹ đạo vệ tinh
không?
Có
-Lấy dữ liệu góc Az/El -Hiển thị lên giao diện
-Gọi chương trình con điều
khiển góc Az, và El
Cập nhật thông số sau
khi điều khiển lên giao diện Nút Stop trên phần mềm có được ấn không? Không Có Kết thúc Không
32
3.4.2 Sơ đồ giải thuật điều khiển góc phương vị (Azimuth):
Nhận giá trị góc cần điều khiển Az
từ hệ thống
Đọc cảm biến la bàn
Giá trị cảm biến bằng giá trị điều khiển?
Sai Laban nhỏ
hơn Az? Sai
Laban lớn hơn Az? Đúng Bước nghịch Đọc cảm biến la bàn Đúng Bước thuận Đọc cảm biến la bàn Trả về vị trí hiện tại, hiển thị lên
phần mềm Đúng
Kết thúc Sai
Bắt đầu
33
3.4.2.1 Chương trình con move_to
Số bước hơn hơn 200 ?
Đúng Số bước trừ cho 400.
Khởi tạo biến đếm i=0
Biến đếm nhỏ hơn trị tuyệt đối
của số bước?
Đúng
-Bước nghịch Tăng biến đếm lên 1
Sai
Biến đếm j bằng số bước?
Bước thuận Tăng biến đếm j lên 1
Kết thúc Bắt đầu
Đúng Sai Sai
Tính ra số bước cần phải bước.
34
3.4.3 Sơ đồ giải thuật điều khiển góc nghiêng (Elevation):
Bắt đầu
* Nhận giá trị góc El * Đọc cảm biến MPU6050
* khởi tạo biến đếm
Cảm biến có bằng góc El và biến đếm
có nhỏ hơn 5?
Tăng biến đếm lên 1 Đọc giá trị cảm biến MPU6050 Cảm biến nhỏ hơn El ? Đúng Bước nghịch Đọc cảm biến MPU6050 Sai Cảm biến lớn hơn El? Đúng Bước thuận Đọc cảm biến MPU6050 Trả về giá trị kết quả
góc nghiêng hiện tại Sai
Kết thúc
35
CHƯƠNG 4 PHẦN MỀM
Chương này bao gồm các nội dung sau:
Giới thiệu tổng quan về giao diện chương trình Giới thiệu về phần mềm Gpredict
Giải thuật giao tiếp với hệ thống Các giải thuật đồ họa
4.1 TỔNG QUAN VỀ GIAO DIỆN CHƯƠNG TRÌNH 4.1.1 Giao diện chương trình 4.1.1 Giao diện chương trình
Hình 4.1: Giao diện chương trình phần mềm
4.1.2 Chức năng hoạt động
Chức năng hoạt động của chương trình như sau:
Open file: Mở file text đã lưu từ chương trình Gpredict. GPREDICT: Mở chương trình Gpredict.
Run: Khởi động hệ thống.
Stop: Ngừng chương trình giám sát vệ tinh.
Đồ thị truyền: Mở đồ thị truyền dữ liệu từ file text đến hệ thống. Đồ thị kết quả: Mở biều đồ kết quả thực hiện của hệ thống. Đồ thị sai số: Mở đồ thị để xem sai số của hệ thống
36
4.1.3 Giải thuật chương trình phần mềm
Bắt đầu
Hiển thị giao diện cương trình Đọc dữ liệu quỹ đạo từ file text
Nút Run có được nhấn hay không? Thực hiện chương trình hình 3.22 Click các nút tùy chọn khác Kết thúc Có Không
37
4.1.4 Giải thuật thực hiện các nút tùy chọn:
Bắt đầu Đồ họa chương trình Nhấn nút GPREDICT ? Nhấn nút Transmit? Nhấn nút Result? Nhấn nút Error Nhấn nút Help? Đúng Mở chương trình Gpredict
Đúng Xem biểu đồ của dữ liệu
Đúng Xem biểu đồ của kết quả thực hiện
Đúng
Xem biểu đồ sai số của kết quả với dữ
liệu Đúng Hướng dẫn Sai Sai Sai Sai Kết thúc
38
4.2 PHẦN MỀM GPREDICT[9]
4.2.1 Giao diện chương trình Gpredict
Hình 4.4: Giao diện chương trình Gpredict
4.2.2 Xác định trạm thu trên phần mềm Gpredict
Xác định các thông tin của trạm thu trên phần mềm:
Name: Tên của trạm thu.
Description: Đặc tả về trạm thu.
Location: Vị trí trạm thu.
Latitude: Vĩ độ.
Longitude: Kinh độ.
Locator: Ranh giới của trạm thu.
Altitude: Độ cao.
39
4.2.3 Các vệ tinh cần theo dõi trên phần mềm Gpredict
Phần mềm Gpredict cung cấp một số lượng lớn thông tin của các vệ tinh cần theo dõi từ trạm thu mặt đất:
Module Name: Tên nhóm của các vệ tinh được chọn hiện tại.
Ground Station: Trạm thu mặt đất.
Search : Tìm kiếm vệ tinh.
Group: Phân loại nhóm các vệ tinh.
Selected Satellites: Các vệ tinh được lựa chọn.
Properties: Cách thức miêu tả của Module.
: Cho vào danh sách các vệ tinh được theo dõi
: Loại khỏi danh sách các vệ tinh được theo dõi.
Hình 4.6: Giao diện mô tả danh sách các vệ tinh cần theo dõi
4.2.4 Dữ liệu vệ tinh
Để mô tả thông tin của các vệ tinh về thời gian chúng đi qua, góc phương vị, góc ngẩng, khoảng cách thì phần mềm Gpredict cung cấp thông tin được lưu dưới file text.
Data: Dữ liệu của vệ tinh. Time: Mốc thời gian.
Az: Góc phương vị. El: Góc ngẩng.
Range: Khoảng cách từ vệ tinh đến trạm thu. Footp: Vùng phủ sóng của vệ tinh.
Polar: Mô tả đường đi của vệ tinh so với trạm thu trên trục tọa độ.
40
Hình 4.7: Mô tả thông tin dữ liệu của vệ tinh
Hình 4.8: Đường đi của vệ tinh trên trục tọa độ
41
4.3 CÁC GIẢI THUẬT GIAO TIẾP VỚI HỆ THỐNG 4.3.1 Dạng file text của dữ liệu 4.3.1 Dạng file text của dữ liệu
Dữ liệu của hệ thống được lưu dưới dạng tập tin có đuôi *.txt được chia thành các cột bao gồm các thông tin về thời gian vệ tinh đi qua, góc phương vị, gốc ngẩng, khoảng cách từ trạm thu đến vệ tinh,... Để giao tiếp với hệ thống, ta cần lấy các thông tin về thời gian đi cùng với góc phương vị và góc ngẩng trong mỗi hàng của file text được lưu từ phần mềm Gpredict. Trong phần xem dữ liệu trong lương lai của phần mềm Gpredict, ta chọn phần chỉ lưu dữ liệu từ file text.
Hình 4.10: Lưu dữ liệu dưới dạng file text
Thông tin về file text được lưu từ phần mềm Gpredict như sau:
Save in foder: Đường dẫn lưu dữ liệu file text
Save using name : Tên file text được lưu
Save as: Lưu lại lần nữa.File contents: Cách thức lưu lại của file text
4.3.2 Giải thuật truyền dữ liệu từ file text
Giải truyền dữ liệu từ file text xuống hệ thống được thực hiện như sau:
Bắt đâu Mở file text Đọc thời gian dữ liệu Đọc thời gian hệ thống
Thời gian dữ liệu bằng thời gian hệ thống không? Đúng Đọc giá trị góc Az, El Gọi chương trình điều khiển 2 góc Az, El Sai
42
4.4 CÁC GIẢI THUẬT ĐỒ HỌA
4.4.1 Mô phỏng dữ liệu bằng cách vẽ hình trên nền Canvas
Công cụ Canvas là một phần tử của lập trình giao diện đồ họa Tkinter. Từ công cụ Canvas ta có thể lập trình kết xuất đồ họa các đối tượng hai chiều trền giao diện. Để mô phỏng góc phương vị của hệ thống, ta vẽ giao diện giống mô phỏng của la bàn số. Bao gồm các thông tin được ghi:
N: Điểm cực Bắc tương ứng với giá trị 0o S : Điểm cưc Nam tương ứng với giá trị 180o
E: Điểm cực Tây tương ứng với giá trị 270o
W: Điểm cực Đông tương ứng với giá trị 90o
Để mô phỏng góc ngẩng, ta vẽ cung đường tròn với điểm xuất phát là 90o theo cách vẽ của góc phương vị.
Hình 4.12:Mô phỏng góc phương vị và góc ngẩng trên hệ thống
4.4.2 Vẽ hình
Vẽ đường tròn:
Trong giao diện Tkinter để vẽ một hình bầu dục, hình elip hoặc hình tròn là một trường hợp đặt biệt, cần xác định được bởi tọa độ (xo,yo) của góc trên bên trái và tọa độ (x1,y1) của góc dưới bên phải của hình bầu dục như sau:
Hình 4.13: Cách vẽ đường tròn trong phân tử Canvas của giao diện Tkinter
Vẽ đoạn thẳng:
Để vẽ đoạn thẳng trên giao diên Canvas cần xác định được tọa độ hai đầu mút là A(xA,yA) và B(xB,yB). Độ dài của đoạn thẳng được tính bởi công thức sau:
,
43
Hình 4.14: Tọa độ của đoạn thẳng
Vẽ vector hướng từ tâm đến tọa độ tương ứng với dữ liệu :
Để vẽ một vector hướng từ tâm đến đến tọa độ xác định trên hình tròn, ta cần xác định được công thức tìm tọa độ một điểm trên đường tròn:
x=Rcos y=Rsin
trong đó: là góc quay được trên đường tròn. R là bán kính của đường tròn.
44
4.4.3 Giải thuật vẽ hình mô phỏng dữ liệu
Giải thuật vẽ hình trên giao diện để mô phỏng dữ liệu như sau:
Bắt đâu Vẽ tâm và đường tròn Vẽ mô phỏng la bàn số Định dạng đồ họa cho hình mô
phỏng Đọc dữ liệu từ hệ thống Tìm tọa độ (x,y) trên đường tròn tương ứng với dữ liệu Vẽ mũi tên từ tâm đến tọa độ (x,y) trên đường
tròn Cập nhật dữ liệu Bật ngắt Kết thúc Đúng Sai
45
4.4.4 Giải thuật cập nhật và hiển thị dữ liệu ra giao diện chương trình
Giải thuật đọc dữ liệu và hiển thị dữ liệu ra giao diện chương trình như sau:
Bắt đâu
Gán dữ liệu ban đầu là 0 Định dạng đồ họa cho dữ liệu
Đọc dữ liệu từ hệ thống Hiển thị dữ liệu ra giao diện Cập nhật dữ liệu mới Bật ngắt ? Kết thúc Đúng Sai
Hình 4.17: Giải thuật hiển thị dữ liệu và hiển thị dữ liệu ra giao diện
4.4.5 Giới thiệu công cụ MATPLOTLIB
Matplotlib: là một thư viện vẽ đồ thị 2D dành cho ngôn ngữ lập trình Python và mở rộng dành cho việc tính toán dữ liệu của nó là thư viện Numpy. Matplotlib cho phép nhúng một đối tượng của chương trình nhằm mục đích phát họa đồ thị, hình ảnh, biểu đồ, nhiễu xạ… trên bộ công cụ GUI như wxPython, Qt hoặc Gtk+. Ngoài ra Matplot còn có một công cụ đó là “pylab” dựa trên hệ thống phần mềm OpenGL, được thiết kế một cách chặt chẽ giống như như MATLAB.
Numpy: là một gói chương trình phục vụ cho các tính toán khoa học bằng ngôn ngữ lập trình Python.
46 Để sử miêu tả dữ liệu đã thực hiện của hệ thống theo thời gian, ta sử dụng bộ công cụ Matplotlib và Numpy để vẽ đồ thị, thuận tiện cho việc đánh giá kết quả thực hiện được so với yêu cầu cho hệ thống. Đồ thị được vẽ bao gồm:
Tên biểu đồ, các chú thích các trục trên đồ thị.
Hai trục tung để biểu diễn góc phương vị (phía bên trái đồ thị) và góc ngẩng (phía bên phải đồ thị).
Trục hoành biểu diễn cho thời gian tương ứng với giá trị góc phương vị và góc ngẩng của hệ thống.
.
47
KẾT QUẢ
1. Thiết kế được mô hình mô phỏng hệ thống hoạt động
Hình 0.1: Hình ảnh thực tế mô hình hệ thống giá xoay ăng-ten
2. Phần mềm điều khiển và hiển thị của hệ thống
48 3. Một số dữ liệu khi giám sát các vệ tinh:
** Dữ liệu vệ tinh CANX vào 10:06:18 ngày 16/05/2015:
Hình 0.3: Biểu đồ truyền và kết quả
Hình 0.4: Biểu đồ sai số 2015/05/16 10:06:18 146.64 -1.83 3540 6151 2015/05/16 10:07:03 144.51 0.59 3265 6148 2015/05/16 10:07:47 141.99 3.18 2994 6145 2015/05/16 10:08:32 138.97 5.99 2729 6143 2015/05/16 10:09:16 135.28 9.05 2473 6141 2015/05/16 10:10:01 130.68 12.40 2230 6139 2015/05/16 10:10:45 124.84 16.03 2005 6138 2015/05/16 10:11:29 117.34 19.87 1804 6137 2015/05/16 10:12:14 107.69 23.67 1639 6136 2015/05/16 10:12:58 95.58 26.87 1521 6135 2015/05/16 10:13:43 81.36 28.67 1461 6135 2015/05/16 10:14:27 66.39 28.46 1468 6135 2015/05/16 10:15:11 52.51 26.31 1540 6135 2015/05/16 10:15:56 40.90 22.92 1668 6136 2015/05/16 10:16:40 31.73 19.08 1842 6137 2015/05/16 10:17:25 24.64 15.25 2049 6138 2015/05/16 10:18:09 19.13 11.66 2279 6140 2015/05/16 10:18:54 14.79 8.36 2527 6141 2015/05/16 10:19:38 11.32 5.34 2786 6143 2015/05/16 10:20:22 8.50 2.56 3054 6145
49
** Vệ tinh AAU-CUBESAT vào lúc “09:31:00” ngày 10/05/2015
Hình 0.5: Hình ảnh dữ liệu lúc 09:32:24
Hình 0.6: Biểu đồ dữ liệu và kết quả sau khi quay
50
**Vệ tinh AAU-CUBESAT lúc 10:45:00 ngày 16/05/2015
Hình 0.8: Biểu đồ dữ liệu và kết quả
Hình 0.9: Biểu đồ sai số 2015/05/16 10:45:04 164.38 0.00 3329 6153 2015/05/16 10:45:50 164.01 2.89 3024 6150 2015/05/16 10:46:36 163.58 6.11 2719 6147 2015/05/16 10:47:21 163.03 9.80 2416 6144 2015/05/16 10:48:07 162.33 14.14 2117 6142 2015/05/16 10:48:53 161.36 19.44 1825 6140 2015/05/16 10:49:39 159.93 26.19 1544 6139 2015/05/16 10:50:25 157.58 35.19 1283 6137 2015/05/16 10:51:11 153.01 47.63 1057 6137 2015/05/16 10:51:56 140.51 64.33 894 6136 2015/05/16 10:52:42 77.36 78.00 832 6136 2015/05/16 10:53:28 13.73 64.43 893 6136 2015/05/16 10:54:14 1.17 47.69 1056 6136 2015/05/16 10:55:00 356.60 35.24 1282 6137 2015/05/16 10:55:45 354.29 26.22 1543 6138 2015/05/16 10:56:31 352.91 19.46 1824 6139 2015/05/16 10:57:17 352.00 14.15 2116 6140 2015/05/16 10:58:03 351.37 9.80 2415 6142 2015/05/16 10:58:49 350.92 6.11 2718 6144 2015/05/16 10:59:34 350.58 2.88 3023 6146
51
***Nhận xét lấy mẫu:
Qua 3 lần lấy mẫu ta thấy chỉ có ở dữ liệu Vệ tinh AAU-CUBESAT vào lúc “09:31:00” ngày 10/05/2015 là có 2 sai số không đạt với yêu cầu; cụ thể là dữ liệu lần thứ 2, trục Az bị sai gần bằng 2 độ và lần thức 12 trục El sai số gần 4 độ. Theo nhận xét sai số này chỉ là yếu tố khách quan trong quá trình lấy mẫu. Các mẫu còn lại vẫn đúng với yêu cầu đề tài đặt ra.
52
KẾT LUẬN VÀ KIẾN NGHỊ
Sau quá trình nghiên cứu và xây dựng hệ thống giá ăng-ten tự xoay bám theo quỹ đạo của vệ tinh CubeSat. Nhóm đã hoàn thành đúng tiến độ và đạt được yêu cầu đề ra ban đầu:
PHẦN CỨNG:
Thiết kế được mô hình hệ thống giá xoay anten bám theo vệ tinh CubeSat. Hệ thống có thể bám theo một vệ tinh CubeSat bất kỳ.
Sai số góc phương vị và góc ngẫn sau khi điều khiển đạt yêu cầu đưa ra ban đầu (≤ 1 độ ).
PHẦN MỀM:
Xây dựng được phần mềm điều khiển hệ thống với giao diện trực quan, dễ sử dụng.
Hiển thị thông số dữ liệu quỹ đạo vệ tinh. Hiển thị thông số của hệ thống quay được Các biểu đồ trục Az/El.
Biểu đồ sai số các trục giữa dữ liệu quỹ đạo vệ tinh và hệ thống điều khiển.
KIẾN NGHỊ:
Tìm ra các giải thuật điều khiển khác để điều khiển hệ thống tốt hơn. Sử dụng driver cho động cơ bước để có khả năng bước góc bước nhỏ hơn Thiết kế hệ thống giá xoay thực tế, và lắp thử ăng-ten để thu tín hiệu.
53
TÀI LIỆU THAM KHẢO
[1] Nguyễn Duy Khánh, Lê Văn Tươi, LVTN Máy bay tự động – Khoa Công Nghệ, Đại học Cần Thơ, 2014
[2] TS. Phùng Văn Vận: Đề tài KC.01.19 “Nghiên cứu cấu trúc hệ thống viễn thông mặt đất để sử dụng hiệu quả vệ tinh VINASAT – Nội dung 5”,2005.
[4] Hiệu chỉnh cảm biến la bàn HMC5883L
http://blog.bitify.co.uk/2013/11/connecting-and-calibrating-hmc5883l.html
[5] Raspberry website https://www.raspberrypi.org/
[6] Datasheet L293D
[7] Datasheet HMC5883L 3-Axis Digital Compass IC
[8] Datasheet MPU6000 & MU6050 Register Map and Descriptions Revision 4.0.
[9] Gpredict http://gpredict.oz9aec.net/
[10] Python https://www.python.org
[11] Nguyễn Hồng Ân: Hệ pin quan điện bám mặt trời thu năng lượng tối ưu, LVTN – Khoa Công Nghệ, ĐH Cần Thơ, 2011.
[12] Vũ Trọng Thư, Phạm Quang Hưng, Nguyễn Hoàng Giang – “Tiềm năng lớn của vệ tinh siêu nhỏ đáp ứng nhu cầu viễn thông, viễn thám của Việt Nam”, ĐH FPT.