THIẾT KE VÀ HIỆN THỰC HE THONG

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và chế tạo trạm mặt đất nhận tín hiệu từ vệ tinh LEO dựa trên công nghệ LoRa (Trang 36 - 64)

3.1. Tổng quan hệ thống

Sơ đồ khối thiết kế hệ thống được thê hiện trong hình 3.1:

Antenna

LoRa receiver

Firebase

Elevation motor

Azimuth motor

Hình 3.1. Sơ đồ khối tổng quan hệ thống MCU là khối vi điều khiển có chức năng sử dụng mô hình dự đoán quỹ đạo

vệ tinh (SGP4) và dữ liệu thông tin liên quan đến quỹ đạo bay vệ tỉnh đã được mã hóa ở định dang TLE dé cho ra các thông số cần thiết như: thời gian bắt đầu và kết

thúc khi vệ tinh bay qua vi trí đặt trạm, cao độ (elevation) và góc phương vi

(azimuth) của vệ tinh. Từ đó, vi điều khiển có thé điều khiển hai động cơ bước thông qua chức năng điều chế độ rộng xung (PWM). Bên cạnh đó, khối vi điều khiến có chức năng điều khiển module LoRa thông qua giao thức SPI dé thực hiện việc nhận tín hiệu khi vệ tinh bay qua. Nếu hệ thống nhận được gói tin, khối vi điều khiến sẽ gửi những dữ liệu nhận được đến một cloud database.

RF receiver system là khối bao gồm một module LoRa — E32 400M20S và một antenna hoạt động ở băng tần 433 Mhz. Hệ thống sử dụng module LoRa và

antenna hoạt động ở băng tần 433 Mhz bởi vi các vệ tinh LEO sử dụng cộng nghệ

LoRa hiện tại đang hoạt động ở băng tầng này là chủ yếu.

Dual axis tracking system là khối bao gồm hai động cơ bước được lắp ghép

trên một hệ khung cơ khí (được in 3D). Động cơ bước sẽ đóng vai trò quay hệ

khung cơ khí để phần antenna được hướng theo đúng vị trí có góc phương vị và góc

27

cao độ thích hợp của vệ tinh cần giao tiếp. Một động cơ sẽ quay theo cao độ vệ tinh.

Động cơ còn lại sẽ quay theo góc phương vi của vệ tinh.

Firebase được nhóm sử dụng như một Real-time Database vì khả năng lưu

trữ và tô chức dữ liệu theo thời gian thực. Bên cạnh đó, Grafana là một nên tảng giúp người dùng hiển thị dữ liệu cách trực quan. Nhóm nghiên cứu đã kết hợp khả năng lưu trữ của Firebase và khả năng hiển thị của Grafana nhằm dé dàng theo dõi

di liệu nhận được.

3.2. Thiết kế phần cứng

3.2.1. Giai đoạn sơ khởi

Ở giai đoạn này nhóm đã hiện thực hệ thống phần cứng đơn giản. Nhóm đã

sử dung board ESP32-DEV-KIT, một module LoRa Ra-02 kèm một antenna

monopole kích thước 2.1 cm và một màn hình LCD OLED 0.96-inch dé làm trạm.

28

Hình 3.3. Lắp đặt trạm sơ khởi Phần cứng sơ khởi cho ra kết quả chưa được như mong muốn. Khả năng nhận tín hiệu còn rất yếu, kết nối thông qua dây bus không 6n định và màn hình oled không cần thiết.

& Unknown © Powe:

Leafiet | © OpenStreetMap contributors.

25.09° -11775dBm -15.75dB 3058.24Hz

Mar 19, 2022 12:44 PM (3 hours ago) LoRa@436.703 1147Km

-4322.23Hz @ 5 Stations

& Unknown Mode G@Power Distance Elevat 8: SNR Predicted Dopple

LoRa@437.2 4012Km -996° -12525dBm -17.25dB -9039.28Hz Mar 13, 2022 9:58 PM (6 days ago)

7174.36Hz ® 1 Stations

Hình 3.4. Kết quả trạm sơ khởi hoạt động trong một tuần

29

3.2.2. Giai đoạn hiện tại

Dé khắc phục tình trạng phần cứng kết nối không ổn định, loại bỏ chức năng thừa, cần sử dụng antenna tốt hơn với công kết nối SMA, nhóm nghiên cứu đã thiết

kế một board mạch được thẻ hiện ở hình 3.6:

Hình 3.6. Board mạch điều khiển của hệ thống

30

Board mạch bao gồm các thành phần chính:

e Module ESP32 là đơn vị xử lý trung tâm của hệ thống.

e_ Module LoRa E32-400M20S được thiết kế thêm line RF dé sử dụng cổng kết

nối SMA cho antenna.

© Các pin 32, 33 của module ESP32 dùng dé xuất tín hiệu PWM. Ngoài ra pin

25, 26 dùng dé điều khiển chiều quay của động cơ.

e SD card dùng dé lưu các gói tin và sử dụng như một database khi trạm vào

tình trạng mat kết nối WiFi.

e Board mạch sử dụng nguồn 3.3V thông qua cổng micro-USB.

Sơ đồ kết nối phần cứng của hệ thống được thể hiện ở hình 3.4:

aa Em,

= & | Driver động cơ bước

Động cơ bước TB6600

R | Driver động cơ bước

Động cơ bước TB6600

\. Hệ khung co khi ˆ

Rage SE einer ne Caer -.ấ

Mach diéu khién

Hình 3.7. Sơ đồ kết nối phan cứng

31

sau:

e Trục thang đứng được lắp với một động cơ có thé xoay theo góc phương vị

(0 — 360 độ).

e Truc nằm ngang được lắp với một động cơ có thé xoay theo góc cao độ (0 —

180 độ).

e Mặt phang đặt antenna có phần trục vuông góc với phương nằm ngang có

động cơ điều khién theo góc cao độ.

3.3. Thiết kế phan mềm

3.3.1. Hiện thực dự đoán quỹ đạo vệ tỉnh thông qua mô hình SGP4

Hiện nay, mô hình toán học SGP4 đã được viết thành thư viện mã nguồn mở với nhiều ngôn ngữ lập trình khác nhau. Nhóm sử dụng bộ thư viện SGP4 được viết bằng ngôn ngữ C++ để tích hợp vào mã nguồn và nhúng xuống module ESP32.

Quy trình sử dụng mô hình SGP4 dé lập trình được thé hiện ở hình 3.9:

32

Va

Bước 1 Lấy dữ liệu TLE

từ nền tảng tinyGS

Bước 2 Khởi tạo tọa độ của

vị trí đặt hệ thống

Bước 3 Lây dữ liệu

epoch time

. Sử dụng hàm tính

Đước 4 toán TLE của SGP4

Chọn thời gian bắt đầu

Bước 5 ap hy

góc elevation nhỏ nhất

Hình 3.9. Các bước sử dụng mô hình SGP4 dé dự đoán quỹ đạo vệ tinh

Ở bước đầu tiên khi sử dung mô hình SGP4, ta cần có dữ liệu TLE. Nhóm đã sử dụng bộ dữ liệu TLE của nên tảng tinyGS được công khai dưới hình thức một tập

tin dang text thuộc trang web của tinyGS.

Norby-2

1 99128U 23181.72008102 .88008000 09000-0 000006-08 6 g7

2 99128 97.6652 232.6832 000068008 58.5838 194.4620 15.83665573 ee FEES

1 48ỉ82U 21622AL 23182.99988773 .00025787 @@000+@ 93168-3 @ 9993

2 48082 97.4974 85.2201 80607568 247.5614 112.4825 15.28425342124126 SATLLA-2B

1 51014U 22882AG 23182.01556712 .00053753 @@000+@ 12307-2 @ 9997

2 51014 97.4473 253.9562 0009676 174.6636 185.4769 15.42571827 81135 FossaSat-2E8

1 52779U 22@57AZ 23182.09006166 .06656386 @@000+0 14727-2 0 9994

2 52779 97.5358 301.2998 @@09227 271.6202 88.3986 15.38552617 60956

Hình 3.10. Minh họa dữ liệu TLE của các vệ tinh LoRa đang hoạt động

33

Bộ dữ liệu sẽ gồm tên của các vệ tinh và hai dòng dữ liệu định dạng TLE tương ứng với từng vệ tinh. Mỗi khi muốn dự đoán quỹ đạo vệ tinh của vệ tinh nào

hệ thống cần sử dụng đúng hai dòng đữ liệu định dạng TLE của vệ tinh đó dựa trên việc tìm đúng tên của vệ tinh. Hình 3.11 thể hiện lưu đồ giải thuật lấy bộ dữ liệu

TLE của một vệ tinh:

posStartTLEsLine1 = 0;

count = 0;

Sai findSatName(satName) == true i < posStartTLEsLine1 + 69

tle_line1[i] = 10; tle_line2[i] = '\0'; return TRUE; return FALSE; payloadf[i] != \n'

tle_line1[count] = payload[i];

tle_line2[count] = payload[i + 70];

++count;

++i;

Hình 3.11. Lưu đồ giải thuật lay bộ dữ liệu TLE của một vệ tinh Thông qua kha năng kết nói Internet của module ESP32, hệ thống có thé sử dụng cơ chế HTTP GET để lay dữ liệu TLE từ trang web thuộc nén tảng tinyGS. Toàn bộ dữ liệu TLE sẽ được tải xuống và lưu tại module ESP32. Lúc này, hệ thống cần xử lý

bộ dữ liệu vừa tải về, đó chính là tách đữ liệu TLE của vệ tinh đang cần dự đoán quỹ đạo. Về cơ bản, dữ liệu được lưu dưới dạng chuỗi các ký tự và có sự phân biệt các dòng bởi ký hiệu ‘\n’. Điều này kết hợp với định nghĩa về TLE trước đó, mỗi dong sẽ chứa 69 ký tự. Do vậy, nhóm đã viết giải thuật đơn giản dé trích xuất dòng

dữ liệu TLE của vệ tỉnh đang cần dự đoán. Xuyên suốt quá trình thiết kế giải thuật

và sử dung mô hình dự đoán SGP4 hệ thống sẽ sử dụng tên của vệ tinh dé lấy dữ liệu TLE của vệ tinh đó dé dự đoán cũng như ra quyết định điều khiển.

34

Sau khi có dữ liệu TLE, hệ thống cần sử dụng thêm thời gian epoch đề có thể

dự đoán quỹ đạo. Hệ thống sẽ cập nhật thời gian thực từ NTP server. "NTP" viết tắt của "Network Time Protocol" và là một giao thức mạng dùng đề đồng bộ thời gian giữa các hệ thống máy tính. Có các máy chủ NTP như pool.ntp.org mà bất kỳ ai cũng có thé sử dụng dé yêu cầu thời gian với tư cách là khách hàng. Trong trường hợp này, ESP32 là Máy khách yêu cầu thời gian từ Máy chủ NTP (pool.ntp.org).

Dữ liệu thời gian thực sau khi lây sẽ được khởi tạo trong bộ đếm thời gian thực

(internal Real-Time Clock) của ESP32 và thời gian epoch sẽ được tự động tính toán.

Wi-Fi

2 router Internet

NTP Server

Request Time

RủRRRRRR

@

Receive Time

Hinh 3.12. Lay dữ liệu thời gian thực từ NTP server 3.3.2. Cấu hình thông số module LoRa

Dé nhận được tín hiệu, module LoRa cần cấu hình đúng các thông số: tan sé,

bandwidth (bw), spreading factor (sf), coding rate (cr), preamble length (pl). Những

thông số này được lưu tai server tinyGS. Tuy nhiên các thông số này không được cung cấp công khai. Nếu một phần cứng sử dụng server tinyGS, phần cứng đó sẽ được server cung cấp các thông số đó thông qua cơ chế subcribe của giao thức MOTT. Bên cạnh đó, mỗi vệ tinh khi được đưa vào hoạt động phần lớn sẽ giữ nguyên các thông số LoRa dé phát tín hiệu.

35

Dựa theo kiến thức lý thuyết của giao thức MQTT, nhóm đã sử dụng một^

z

công cụ dong vai trò như một MQTT Client dé subcribe thông tin về thông số cauA

hình LoRa. Khi đăng ký sử dụng dịch vụ server tinyGS, người dùng được cung cấp username và password. Do vậy, nếu một phần cứng có kết nối Internet hoặc một công cụ phần mềm mà sử dụng username và password đã được cung cấp thì sẽ được nhận các thông tin subcribe tương tự như trạm. Điều này giúp nhóm có thông tin và hiện thực khả năng tự cấu hình cho module LoRa không cần thông qua server.

myGS :

matt://matt.tinygs.com:8883/ : Name BD |

. ‡ myGS Validate certificate Encryption (tls) matt.eclipse.org ù# ———————

test.mosquitto.org = Protocol Host

i matt:// + mqtt.tinygs.com

{Username

‡ 954191019 a

MQTT Explorer Q

'Y matt.tinygs.com

Vtinygs

Y 954191019.

-Test_e32_tinygs_LNA_02 (2 topics, 34 messages)

Y Test_e32_tinygs_03

'Y cmnd

sat_pos_oled = [98,38]

Value ÍR ^

QoS: 0

° 07/02/2023 11:19:16 PM

Hình 3.14. Thông tin cấu hình LoRa được lay từ server

36

Bang 3.1. Bảng thông số LoRa của các vệ tinh dang được hỗ trợ

Freq | Bw | Sf | Cr | Sw | Pwr | Cl | Pl | Gain | Cre | Fldro Norbi | 436.703 | 250] 10) 5 | 18} 5 |120/8 | 0 | True 1

GaoFen-7 | 400.45 | 500 | 9) 5 | 18} 5 |120|8) 0 | True 1

GaoFen-

19 400.45 | 500 | 9 | 5 | 18 5 | 120) 8 0 | True 1

FossaSat-

401.7 | 125} 11] 8 | 18 5 | 120) 8 0 | True 1 2E8

FossaSat-

401.7 |125 |1I1| 8 | 18 5 120 | 8 0 | True | 2E11

FossaSat-

401.7 | 125/11] 8 | 18 5 | 120) 8 0 | True 1 2E12

FossaSat-

401.7 |[125 [I1 8 | 18 5 | 120) 8 0 | True 1 Fx14

FossaSat-

401.7 | 125} 11] 8 | 18 5 120 | 8 0 | True 1 FX16

Sapling2 | 4374 | 125 | 7/| 8 | 18} 5 | 120] 8 0 |True} 0

SATLLA-

2B FEES 437.2 | 125); 9] 5 | 18} 5 | 120] 6 0 | True} 0

437.25 |62.5|10) 5 | 42) 5 | 120) 8 0 |True}| 0

Bảng trên là các thông số LoRa của vệ tinh. Bên cạnh các thông số quan trọng cần cấu hình cho module LoRa nhận thì dữ liệu trên tồn tại một số dữ liệu không nhất thiết phải cấu hình cho module LoRa nhận (ví dụ: power (pwr) là công suất phát, hay gain là độ lợi antenna đề xuất cho trạm).

37

Sau khi có thông số LoRa của các vệ tinh, hệ thống có thé tự động cấu hình

cho module LoRa nhận tín hiệu dựa trên việc dự đoán vệ tinh nào sắp dén.

satPass() == true

Cấu hình LoRa

Bật chế độ nhận LoRa

Hình 3.15. Lưu đồ điều khiển chế độ nhận của module LoRa Mục tiêu của trạm sẽ nhận được nhiều gói tin nhất có thể. Do đó, module được đưa vào chế độ nhận liên tục. Module sẽ tạo tín hiệu ngắt mỗi khi nhận được hoàn tất một gói tin. Trình tự hoạt động của chế độ nhận của LoRa được miêu tả qua hình

sau:

38

Mode Request

STAND-BY

Rx Init

4 _

Mode Request Mode Request

Ry Single Rx Continuous

Wait for Wait for

IRQ. IRQ,

RxTimenut AxDone

ah ~ "

Automatic Made Automatic Mode IR

change change a m E Yes STAND-BY STAND-BY “...

| 2

: | No

Yes lãũ

PaylnadCrrErrar „

rd

| Ma

Read Rx Data

|

> New Mode request

Hình 3.16. Chế độ nhận liên tục của LoRa

Trong chế độ này, module LoRa liên tục tìm kiếm phần mở đầu (preamble)

của gói tin. Khi tìm kiếm, hai loại ngắt có thể xảy ra. Một là RxTimeout sẽ không khiến module quay lại chế độ Standby và module sẽ tiếp tục lắng nghe gói tin. Loại ngắt thứ hai có thé xảy ra là RxDone cho biết module LoRa đã nhận được thông báo

và lưu trữ thông báo đó trong bộ đệm dữ liệu FIEO. Sau đó, trước khi đọc dữ liệu từ

bộ đệm, cờ PayloadCrcError và cờ ValidHeader được kiểm tra để đảm bảo đữ liệu nhận được không có lỗi. Nếu không có lỗi, dit liệu có thê được đọc từ FIFO.

39

Ngoài ra một điểm quan trọng khác, đó chính là độ nhậy của bộ thu LoRa. Ở trong module E32-400M20S có sử dụng một chip RF switch nhằm chuyên đổi giữa hai ngõ vào và ngõ ra của chip LoRa. Điều này có nghĩa là mỗi khi sử dụng module E32-400M208S, ta cần điều chỉnh đúng đường đi tín hiệu qua chip RF switch.

sẽ điều khiển thông qua hai chân RXEN va TXEN. Hai chân này sẽ được nối va điều khiển bởi vi điều khiển. Nếu không điều khiển hai chân này, module sẽ xảy ra hiện tượng suy hao qua kênh dẫn. Điều này sẽ làm module không thể nhận được

hoặc bị lỗi gói tin từ vệ tinh.

Bảng 3.2. Bảng điều khiển chế độ nhận và phát của module E32

RXEN TXEN

Chế độ nhận 1 (HIGH) 0 (LOW) Chế độ phát 0(LOW) 1 (HIGH)

40

3.3.3. Tổ chức giải thuật điều khiển hệ thống nhận tín hiệu vệ tinh

Tổ chức phần mềm của hệ thống được thiết kế với mô hình máy trạng thái.

Hệ thống sẽ có ba trạng thái chính. Trong suốt quá trình hoạt động của hệ thống, ở mỗi thời điểm bat kỳ, hệ thống sẽ được biểu diễn bởi duy nhất một trang thái và mỗi trạng thái sẽ bao gồm các hoạt động cụ thé. Hệ thống sẽ đổi trạng thái dựa trên việc

so sánh thời gian hiện tại và thời gian dự đoán vệ tinh bắt đầu xuất hiện hoặc kết thúc quá trình bay qua vị trí đặt hệ thống.

stm Tiny Ground Station J

setup() ; t_now < t_satStop

+ getEpochTimeNow() +findSatEpochinfo() | + now>=t satStart + listenRadio

+ updateTleData() + SleepilistenRadio = = (satComing_params)

+ mySat.site() (default_params)

+ createUpcomingOrderList()

t_now >= t_satStop update & sort == done t_now >= t_satStop

+ updateTleData() + sortUpcomingList()

Hình 3.18. Mô hình máy trạng thái của hệ thống Lợi ích của cách thiết kế phần mềm theo máy trang thái chính là tinh gọn mã nguồn,

dễ dàng bảo trì và nâng cấp. Phía dưới là cách thức hiện thực mô hình máy trạng thái của phần mềm hệ thống.

void loopO{

switch(state.current) {

case STATE_PRE_PASS:

prePass(posInList, epochNow, FOCUS_MODE, state);

break;

41

case STATE_IN PASS:

inPass(posInList, epochNow, state);

break;

case STATE_POST_PASS:

postPass(posInList, totalSat, state);

break;

default:

break;

Hé thong bao gom một trạng thái khởi tạo va ba trạng thai hoạt động chính:

e Trạng thái khởi tao (setup): Ở trạng thái này, hệ thống cần khởi tạo một số

thông số và dữ liệu cần thiết sẽ sử dụng xuyên suốt quá trình hoạt động của

hệ thống. Về cơ bản, hệ thống cần kết nối WiFi dé lay dữ liệu TLE và cập nhật thời gian thực từ NTP server. Bên cạnh đó, hệ thống sẽ khởi tạo tọa độ của vị trí đặt trạm dé dùng cho việc dự đoán quỹ đạo vệ tinh. Ở đề tài này, nhóm đã chon ra 8 vệ tinh để hệ thống dự đoán quỹ đạo và nhận tín hiệu.

Những vệ tinh được chọn dựa trên việc nhóm đã khảo sát khả năng nhận tín

hiệu từ các trạm mặt đất trên thế giới. Trong trạng thái khởi tạo, hệ thong sé

dự đoán thời gian bat đầu bay qua cua 8 vệ tinh này và sắp xếp theo thứ tự từ gần đến xa. Từ đó, hệ thống sẽ có 1 danh sách tuần tự thời gian bay qua của

8 vệ tinh được chọn. Ngoài ra, hệ thống cần khởi tạo chế độ webserver của ESP32 và bật chế độ kết nối đến cơ sở dữ liệu Firebase.

e Trang thái trước khi vệ tinh bay qua (Pre Pass): Điều kiện hệ thong hoat

động trong trang thái này là hệ thống đang doi vệ tinh đến hoặc sau trang thái

42

setup hoàn tất. Ở trạng thái này, hệ thống sẽ lay thời gian bắt đầu bay qua của vệ tinh đầu tiên trong danh sách sắp xếp đã tạo trước đó. Lúc này, hệ thống có hai lựa chọn: một là vào chế độ ngủ dé chờ vệ tinh đến, hai là bật chế độ nhận gói tin với tham số mặc định.

e_ Trạng thái trong khi vệ tinh đang bay qua (In Pass): Điều kiện hệ thống hoạt

động trong trạng thái này là thời điểm hiện tại nằm trong khoảng thời gian vệ tinh bắt đầu bay qua và bắt dầu kết thúc quá trình bay qua. Ở trạng thái này,

hệ thống sẽ cấu hình tham số LoRa giống với tham số cấu hình LoRa của vệ tinh dé bắt đầu nhận tín hiệu.

e Trạng thái sau khi vệ tinh bay qua (Post Pass): Điều kiện hệ thống hoạt động

trong trạng thái này là ngay sau khi một vệ tinh hoàn tat quá trình bay qua vị trí đặt hệ thống. Ở trạng thái này, hệ thống cần cập nhật lại dir liệu TLE từ website tinyGS. Ngoài ra hệ thống phải sắp xếp lại danh sách các vệ tinh sắp

bay qua.

Đối với trạng thái “In Pass”, hệ thong sẽ bật chế độ nhận gói tin cho module LoRa. Trong suốt quá trình đó, mỗi khi nhận được gói tin từ vệ tinh, hệ thống sẽ xử lý gói tin giống như lưu đồ giải thuật sau đây trình bày:

43

Một phần của tài liệu Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế và chế tạo trạm mặt đất nhận tín hiệu từ vệ tinh LEO dựa trên công nghệ LoRa (Trang 36 - 64)

Tải bản đầy đủ (PDF)

(83 trang)