BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
KHOA KỸ THUẬT VÀ CÔNG NGHỆ
BÁO CÁO
KỸ THUẬT ĐỊNH VỊ DẪN ĐƯỜNG
Đề tài:
Mô phỏng hiển thị mục tiêu
Radar trên màn hình máy tính.
Giáo viên hướng dẫn: Th.S Nguyễn Tường Thành
Sinh viên thực hiện:
Lớp:
Nguyễn Minh Tự
Nguyễn Thanh Tú
Nguyễn Thị Thu Thủy
Trần Công Huy
Cao Văn Phúc Thiện
Nguyễn Hữu Quang
Điện Tử - Truyền Thông K35
Quy Nhơn, Tháng 11 Năm 2015
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
MỤC LỤC:
MỤC LỤC:...................................................................................................................2
GIỚI THIỆU ĐỀ TÀI...................................................................................................3
Chương I: LÝ THUYẾT CHUNG...............................................................................4
I.Giới thiệu chung về Radar.....................................................................................4
1.Khái niệm Radar................................................................................................4
2.Nguyên tắc hoạt động........................................................................................4
3.Phân loại Radar..................................................................................................4
4.Mục tiêu của Radar............................................................................................5
5.Nguyên lý cơ bản của xung Radar....................................................................5
6.Tính toán cự ly...................................................................................................6
1.Hai nguyên tắc chủ động và thụ động:..............................................................7
3.Bốn bước của quá trình nhận biết tin tức về mục tiêu:.....................................8
III.Tính năng kỹ thuật – chiến thuật của Radar.....................................................11
1.Tính năng kỹ thuật...........................................................................................11
2.Radar xung.......................................................................................................13
V.Giới thiệu kỹ thuật Target Tracking...................................................................14
2.Concial Scan (Quét dạng nón ).......................................................................18
Chương II: XÂY DỰNG PHẦN MỀM MÔ PHỎNG RADAR...............................19
I.Lưu đồ thuật toán.................................................................................................19
II.Code chương trình mô phỏng hiển thị mục tiêu Radar trên màn hình PC........20
III.Kết quả mô phỏng.............................................................................................51
Chương III. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.............................................54
TÀI LIỆU THAM KHẢO..........................................................................................54
ĐTVT-K35-Nhóm4
Page 2
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
GIỚI THIỆU ĐỀ TÀI
Yêu cầu bài tập lớn:
Bằng các kiến thức về đồ họa và sử dụng ngôn ngữ lập trình C++ để thực
hiện đề tài: “Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính
PC”. Quá trình thực hiện chương trình được viết bằng ngôn ngữ C trên nền
Turbo C Version 3.1 và giải quyết được các vấn đề sau đây:
- Tổng quan về màn hình hiển thị được chia làm 4 phần, thuận tiện cho quá
trình quan sát: màn hình quét chung, màn hình thể hiện các phương
pháp quét, bảng hiển thị các thông số, phần còn lại là các phím điều
khiển.
- Mô phỏng quỹ đạo của 6 mục tiêu khác nhau trên cùng 1 màn hình
Radar.
- Hệ thống Radar có thể làm việc ở chế độ quét tất cả các mục tiêu hoặc
bám sát từng mục tiêu riêng biệt.
- Hệ thống thước đo cự ly được trang bị với 4 loại cho độ chính xác, và
độ tin cậy cao: Quét thẳng, quét tròn, quét xoắn và nhìn vòng . Với
thước xoắn có thể tăng số vòng của thước lên để cho độ chính xác cao
hơn tùy vào người sử dụng .
- Trong quá trình sử dụng các loại thước đo để xác định vị trí mục tiêu thì
người quan sát vẫn có thể nhìn thấy quỹ đạo của mục tiêu nhờ vào màn
hình chung, màn hình này luôn luôn hiển thị quỹ đạo mục tiêu trong quá
trình quét.
- Chiều và tốc độ quét sóng của Radar có thể thay đổi được tùy vào người
sử dụng.
- Hệ thống Radar sẽ tính toán và hiển thị các thông số về mục tiêu: Cự
Ly, Góc, Phương Vị, Độ Cao và Vận Tốc trên bảng thông số. Đồng thời
có các thông báo về thời điểm hiện tại của mục tiêu mà đài có thể quan
sát.
- Chương trình được điều khiển bởi hệ thống các nút điều khiển một cách
dễ dàng.
Chúng em xin chân thành cảm ơn thầy Th.s Nguyễn Tường Thành đã
hướng dẫn chúng em trong quá trình thực hiện đồ án này và giúp chúng em
nắm vững hơn về kiến thức lập trình , đồ họa và mô phỏng chương trình. Do
hạn chế về mặt thời gian cũng như về kinh nghiệm lập trình còn ít nên
chương trình còn có nhiều sai sót, rất mong nhận được sự đóng góp ý kiến
của thầy và các bạn!!!
ĐTVT-K35-Nhóm4
Page 3
Bài tập lớn: Kỹ thuật định vị dẫn đường
I.
GVHD: Nguyễn Tường Thành
Chương I: LÝ THUYẾT CHUNG
Giới thiệu chung về Radar.
1. Khái niệm Radar.
- Radar (Radio Detection and Ranging) là hệ thống thiết bị tìm kiếm
(detect) và xác định vị trí (ranging) của đối tượng thông qua việc thu, phát và
xử lý sóng điện từ.
2.
Nguyên tắc hoạt động.
- Hệ thống Radar sơ cấp (hay Radar mode P): Phát sóng định hướng về
phía mục tiêu rồi nhận tín hiệu phản xạ từ mục tiêu về. Từ hai tín hiệu
phát bức xạ và tín hiệu phản xạ thu được mà Radar xử lí đo được các
thông số về tọa độ hay vị trí của mục tiêu. Các thông số tọa độ và thông
số chuyển động mà Radar xác định được gọi là tin tức về mục tiêu.
- Hệ thống Radar thứ cấp (hay Mode S): Hệ thống có thể bức xạ, chiếu xạ
hỏi bằng các các mã hỏi quy ước về phía mục tiêu, trên mục tiêu có gắn
hệ thống thiết bị thu và phát trả lời lại cũng theo mã quy ước. Từ hai tín
hiệu hỏi và phát trả lời mà Radar xác định được các thông số tọa độ và
chuyển động của mục tiêu và nhiều thông tin khác về mục tiêu.
3. Phân loại Radar.
a. Phân loại theo phương pháp định vị.
- Hệ thống Radar chủ động (Active Radar): Thực hiện phát, thu và xử lý
tín hiệu sóng điện từ phản xạ từ Radar.
+ Radar sơ cấp (Primary Radar)
+ Radar thứ cấp (Secondary Radar)
ĐTVT-K35-Nhóm4
Page 4
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
- Hệ thống Radar thụ động (Passive Radar): Chỉ thu và xử lý tín hiệu sóng
điện từ bức xạ từ mục tiêu Radar. Radar thụ động để cảnh giới và canh
gác từ xa thường dùng trong an ninh, quốc phòng.
b. Phân loại theo phân bố anten thu phát.
- Hệ thống Radar tập trung.
- Hệ thống Radar phân bố.
c. Phân loại theo nguyên tắc bức xạ tín hiệu.
- Radar liên tục (CW Radar) (Continuous Wave)
- Radar xung (Pulse Radar)
4. Mục tiêu của Radar
- Mục tiêu của Radar là tất cả các đối tượng có khả năng phản xạ sóng
điện từ nằm trong tầm phát hiện của trạm Radar.
- Mục tiêu của Radar có thể là các mục tiêu bay như : máy bay, tên lửa, vệ
tinh, đầu đạn hạt nhân,cũng có thể là các mục tiêu khác như xe tăng, tàu,
thuyền, tàu ngầm….
- Mục tiêu quan sát: + Mục tiêu nhân tạo.
+ Mục tiêu tự nhiên.
- Mục tiêu giả: là những đối tượng không cần quan sát nhưng lại xuất hiện
trong vùng phủ sóng của trạm Radar, gây nhiễu đối với các mục tiêu cần
quan sát.
- Tham số xác định vị trí:
• 3D: M (D, φ, β ) hoặc M ( H, φ, β ) trong đó: H = D sin (β)
• 2D: M (D, φ )
- Quỹ đạo mục tiêu: tập hợp các vị trí của mục tiêu theo thời gian.
5. Nguyên lý cơ bản của xung Radar.
ĐTVT-K35-Nhóm4
Page 5
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
• Độ rộng xung PW- Pulse Width
– Thời gian bức xạ tín hiệu trong một chu kỳ bức xạ.
• Tần số lặp xung PRF - Pulse Repetition Frequency
– Số xung phát trong một giây.
• Thời gian lặp xung PRT - Pulse Repetition Time (PRT=1/PRF)
• PW ảnh hưởng đến :
– Phạm vi phát hiện mục tiêu của Radar.
– Cự ly tối thiểu và tối đa có thể phát hiện mục tiêu.
• PRF xác định:
– Cự ly tối đa phát hiện mục tiêu.
6. Tính toán cự ly.
Tại trạm Radar, sóng điện từ được bức xạ ra không gian, phạm vi giám
sát của Radar tùy thuộc vào công suất của máy phát. Khi gặp phải vật thể lạ,
sóng điện từ sẽ bị vật thể lạ hấp thụ một phần, một phần sẽ bị phản xạ lại
trạm, tín hiệu thu được sẽ được xử lý để biết chính xác tọa độ, cũng như vị trí
của vật thể đó trong không gian.
ĐTVT-K35-Nhóm4
Page 6
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Các tham số cần xác định:
II.
Nguyên Tắc Nhận Tin Tức Về Mục Tiêu:
1. Hai nguyên tắc chủ động và thụ động:
- Hệ thống Radar chủ động gồm có Radar sơ cấp và Radar thứ cấp.
Tin tức về mục tiêu là tin tức vị trí mục tiêu :( D,
( D,
, H hay β, Vxt ) hoặc
, Vxt ).
2. Các tính chất sau của sóng điện từ để Radar có thể nhận
biết được mục tiêu:
- Trong môi trường đồng nhất, đẳng hướng sóng điện từ truyền thẳng,
truyền với một vận tốc trung bình là 3.108 m/s.
- Khi sóng điện từ truyền trong môi trường truyền sóng gặp phải môi
trường thứ hai không đồng nhất với môi trường thứ nhất thì xảy ra tán
xạ, phản xạ sóng điện từ. Hiện tượng này xảy ra trên biên giới của hai
môi trường. Chỉ có một phần diện tích bề mặt xung quanh của mục tiêu
ĐTVT-K35-Nhóm4
Page 7
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
gây ra hiện tượng phản xạ gọi là diện tích phản xạ hiệu dụng. Nhờ có
năng lượng phản xạ mà Radar phát hiện ra được mục tiêu.
- Khi chiếu xạ sóng điện từ vào mục tiêu đang chuyển động thì xảy ra hiệu
ứng doppler. Hiệu ứng doppler là hiệu ứng dịch tần của f tín hiệu phản
xạ so với chiếu xạ, do vậy :
Fpxa = Fchxa ± ΔF = Fchxa ± Fdoppler
Trong đó:
ΔF gọi là tần số Doppler.
Dấu + khi mục tiêu tiến tới gần nguồn chiếu xạ.
Dấu – khi mục tiêu tiến ra xa nguồn chiếu xạ.
3. Bốn bước của quá trình nhận biết tin tức về mục tiêu:
Bước 1: Phát hiện mục tiêu (Detection):
Ở bước này Radar phải quay anten để quét cánh sóng sục sạo tìm kiếm
mục tiêu trong vùng không gian cần quan sát. Đó là một góc khối không gian
cần quan sát (Ω )هrồi đi tới quyết định có hay không có mục tiêu trong Ω với
một xác suất phát hiện đúng hay không đúng cho trước. Để đảm bảo bước này
thì xác suất phát hiện đúng lớn hơn rất nhiều so với xác suất phát hiện sai.
Bước 2: Đo đạc tham số: Đo đạc thông số tọa độ và thông số chuyển động
của mục tiêu (Measurement ~ Ranging):
Mục tiêu M ( Dm,
, Hm, Vxt )
a. Đo Dm (cự ly, khoảng cách, tầm xa). Có nhiều phương pháp đo D:
ĐTVT-K35-Nhóm4
Page 8
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Đo Dm thông qua đo td là khoảng thời gian đo nhờ Radar bức xạ xung chủ
động, sơ cấp.
Đo Dm trong khoảng cách ngắn với độ chính xác cao và chỉ có một mục
tiêu bằng cách đo độ di tần Δf nhờ Radar chủ động sơ cấp bức xạ liên tục, đo
độ di pha Δ
.
b. Đo tọa độ góc để định hướng:
Đo góc
, người ta đo góc quay của Radar trong mặt phẳng ngang so với
phương chính bắc; cho tới khi trục của cánh sóng chiếu xạ vào mục tiêu.
Đo
và β không dùng Radar : Người ta sử dụng phương pháp đo pha,
phương pháp biên độ hoặc phương pháp biên độ pha. Phương pháp đo pha có
thể đồng thời đo được cả
và β cùng một lúc khi bố trí hệ thống đo có 2
đường đáy.
c. Đo H:
Từ Radar sơ cấp đo D và β ta tính được H= D. sinβ, ngoài ra H còn được
đo bằng áp kế đo cao là áp lực kk trên 1 cm2 được gắn trên máy bay. Từ việc
xác định áp suất không khí để suy ra độ cao.
H còn được xác định bằng máy thu GPS.
d. Đo vận tốc Vxt:
Ta có :
Fpxa = Fchxa ± ΔF = Fchxa ± Fdoppler
Mà: Fdoppler = (2*Fchxa .Vxt)/C
do đó, đo được Fdoppler sẽ tính được Vxt:
Vxt= (λcxa* Fdoppler)/2
Bước 3: Phân biệt mục tiêu (Display):
ĐTVT-K35-Nhóm4
Page 9
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Bước 4: Nhận biết mục tiêu:
- Chỉ thực hiện được với Radar chủ động thứ cấp.
- Radar chủ động thứ cấp là hệ thống Radar có khả năng trao đổi thông
tin (truyền số liệu) với đối tượng (mục tiêu).
- Quá trình trao đổi số liệu giữa M và RS được thực hiện khi M nằm lọt
trong búp sóng Radar.
- Thời gian trao đổi số liệu phụ thuộc vào tốc độ quét cánh sóng và kích
thước búp sóng của trạm Radar.
ĐTVT-K35-Nhóm4
Page 10
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Radar thứ cấp truyền các tín hiệu được mã hóa đến bộ phát đáp của mục tiêu.
- Transponder phúc đáp bằng bản tin được mã hóa với các thông tin của
đối tượng ( Airplane )
- Một Transponder có thể thiết lập tối đa khoảng 4096 mã nhận dạng Identifying Codes
- Trong lĩnh vực quân sự, các Transponders được gọi là IFF
(Identification, Friend or Foe).
III. Tính năng kỹ thuật – chiến thuật của Radar.
1. Tính năng kỹ thuật.
- Nguyên tắc xây dựng đài Radar: phương pháp nhận tín hiệu Radar, dạng
dao động bức xạ, phương pháp gia công tín hiệu trong máy thu.
- Tần số sóng mang của dao động bức xạ hay bước sóng λ.
- Quy luật điều chế dao động bức xạ.
- Công suất bức xạ trung bình Ptb và công suất đỉnh Pd.
- Dạng và độ rộng của giản đồ anten.
- Độ nhạy của máy thu theo công suất Ptmin hay năng lượng.
2. Tính năng chiến thuật.
- Vùng quan sát: Radar có nhiệm vụ quan sát mục tiêu trong phạm vi này.
Vùng quan sát giới hạn bởi cự ly cực đại Dmax và cực tiểu Dmin và các
góc quan sát trong mặt phẳng ngang và đứng.
- Chu kỳ quét Tq: là thời gian để Radar quét hết vùng quan sát một lần.
- Các tọa độ được đo.
- Độ chính xác đo các tọa độ và tốc độ mục tiêu.
- Độ tin cậy sử dụng: độ tin cậy nêu lên khả năng hoàn thành chức năng
của đài trong một khoảng thời gian xác định. Thông thường độ tin cậy
được biểu thị bởi xác suất đài làm việc trong một khoảng thời gian đã
cho.
- Khả năng chống nhiễu: là khả năng duy trì được các chỉ tiêu kỹ thuật của
đài Radar trong điều khiển có nhiễu tác động.
ĐTVT-K35-Nhóm4
Page 11
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
- Về tính năng chiến thuật đôi, người ta còn kể thêm những điều kiện làm
việc của đài: tính chất của mục tiêu, điều kiện thời tiết, vị trí triển khai…
- Các tính năng chiến thuật của đài Radar xác định bởi tính năng kỹ thuật
của nó.
Các hệ thống Radar.
1. Radar liên tục.
IV.
Dạng tín hiệu bức xạ của Radar liên tục:
Sơ đồ khối của hệ thống Radar liên tục:
ĐTVT-K35-Nhóm4
Page 12
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
2. Radar xung.
Dạng tín hiệu bức xạ của Radar xung:
Sơ đồ khối hệ thống Radar xung:
ĐTVT-K35-Nhóm4
Page 13
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Các thành phần chính của hệ thống radar xung bao gồm:
– The Transmitter: bao gồm 1 bộ tạo dao động và 1 bộ điều chế xung.
– The Antenna system: nhiệm vụ phát năng lượng sóng điện từ từ máy
phát tới môi trường truyền dẫn và nhận tín hiệu phản xạ từ phía mục
tiêu.
– The receiver: khuếch đại tín hiệu nhận được bởi và xác định mục tiêu.
– Interfaces: hiển thị giao diện của hệ thống điện tử.
V.
Giới thiệu kỹ thuật Target Tracking.
Dùng để đo mối quan hệ của phạm vi (Range), góc phương vị, góc
ngẩng, và vận tốc. Bằng cách sử dụng các thông số đo được Radar có thể có
các giá trị tiếp theo.
Target Tracking rất quan trọng với các hệ thống Radar dùng trong quân
sự, cũng như đối với các hệ thống Radar dùng trong dân sự.
• Kĩ thuật tracking được chia làm 2 loại:
- Tracking phạm vi và vận tốc
- Tracking góc
• Những giới hạn của hệ radar quét dùng cơ khí:
- Thay đổi vị trí của anten chậm
- Thời gian tương tác bị giảm
- Xuất hiện vùng mù không quan sát được mục tiêu trong vùng này.
- Xảy ra lỗi cơ khi nếu hệ thống không được bảo trì sau một quá trình
hoạt động.
• Hệ thống điện tử:
- Tăng tốc độ dữ liệu.
- Thay đổi vị trí búp sóng ngay lập tức.
- Loại trừ được lỗi cơ khí xảy ra trong khi hệ thống hoạt động.
- Hoạt động ở nhiều chế độ.
- Quan sát và bám nhiều mục tiêu cùng lúc.
Để thực hiện được các chức năng như vậy thì hệ thống radar cần phải
sử dụng một hệ thống anten thông minh và linh động, ví dụ : phased array
(mảng đồng pha).
• Kiến trúc Phased Array:
ĐTVT-K35-Nhóm4
Page 14
Bài tập lớn: Kỹ thuật định vị dẫn đường
ĐTVT-K35-Nhóm4
GVHD: Nguyễn Tường Thành
Page 15
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Khái niệm tổng quát của
Anten mảng
pha (Phased
Array) là một mẫu của sự kết
hợp giữa các phần tử về điện
để tạo ra búp sóng của Radar
có một hướng riêng biệt. Hệ
thống Anten sử dụng các phần
tử dịch pha để lái búp sóng của
Radar về những sector được
quét. Nguồn sóng vô tuyến tạo
ra dạng sóng của Radar mà
được chia vào những đường
riêng được gọi là các kênh
nguyên tố mỗi kênh chứa một
phần tử dịch pha và một bộ
khuêch đại. Một mẫu bức xạ lý
tưởng từ một phần tử Anten
đơn bao phủ sector được quét
với độ mạnh tín hiệu giảm mạnh ngoài sector đó. Khi tất cả các phần tử dịch
pha của mảng được sắp xếp thẳng hàng thì mảng sẽ tạo ra một búp sóng chính
theo hướng quét mong muốn.
Ví dụ mảng tuyến tính của K phần tử:
ĐTVT-K35-Nhóm4
Page 16
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Trong các ứng dụng Phased Array cho phép chuyển gần như lập tức từ một
mục tiêu này đến một mục tiêu khác, và dò tìm trong chế độ bám mục tiêu.
• Các nguyên tắc bám mục tiêu:
– Nguyên lý cơ bản và quan trọng : Năng lượng sóng phản xạ quay trở
lại từ mục tiêu mạnh nhất trên trục của búp sóng, và giảm dần khi xa
khỏi trục.
– Các phương pháp tracking:
- Sequential Lobing
- Conical Scan
- Monopulse
1. Sequential Lobing
ĐTVT-K35-Nhóm4
Page 17
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
2. Concial Scan (Quét dạng nón ).
3. Monopulse.
- Hệ thống Radar Monopulse nói chung là giống với hệ thống quét nón.
- Điểm khác là sử dụng 4 búp sóng.
ĐTVT-K35-Nhóm4
Page 18
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
Chương II: XÂY DỰNG PHẦN MỀM MÔ PHỎNG RADAR.
I.
Lưu đồ thuật toán.
Bắt
đầu
Khởi tạo đồ hoạ
Khởi tạo MT
Kiểm tra phím
ESC
Kiểm tra phím Bắt
MT
Hiển thị MT cần bắt
Hiển thị tất cả các
MT
Kiểm tra phím
T
Quét Thẳng
Kiểm tra phím
R
Quét Tròn
Kiểm tra phím
X
Quét Xoắn
Kiểm tra phím
V
Nhìn Vòng
Kiểm tra phím
U
Trợ Giúp
Kiểm tra phím I
Giới Thiệu
Kết Thúc
ĐTVT-K35-Nhóm4
Page 19
Bài tập lớn: Kỹ thuật định vị dẫn đường
II.
GVHD: Nguyễn Tường Thành
Code chương trình mô phỏng hiển thị mục tiêu Radar
trên màn hình PC.
#include<graphics.h>
#include<iostream.h>
#include<dos.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<stdlib.h>
#include<alloc.h>
#include<bios.h>
//----------------------Khai bao cac ham va bien ---------------------------//
void khoitaodh();
// Khoi tao do hoa
void frame(int x1,int y1,int x2,int y2,int b,int put,int mau_nen);
void button(int i,int j);
// De ve cac nut bam
void mainframe();
// Ve , trang tri mainframe man hinh
void vehinhtron(int Xt,int Yt,int Radius,int mau);
void quettron(int ox,int oy);
// Ve man hinh quet tron
void quetthang(int ox,int oy);
void quetxoan(int ox,int oy);
void nhinvong(int ox,int oy);
void mhchung(int ox,int oy);
// Ve man hinh quet chung
void quetchung(int ox,int oy);
// Ve thanh quet o man quet chung
void thongso();
// Ve bang de hien thi thong so
void message(int i,int j);
// ve phuong phap quet
void thongbaomt(int i);
void so_qtr(int m);
// Ve so kich thuoc tren man hinh quet tron
void so_nv(int ox,int oy,int m); // Ve so kich thuoc tren man hinh nhin vong
void so_qth(int m);
// Ve so kich thuoc tren man hinh quet thang tren
void soqth();
// Ve so kich thuoc tren man hinh quet thang duoi
void veMT(int ox,int oy,int a,int b,int mau);
// ve vi tri muc tieu tren man hinh va cac loai thuoc
void veMT1(int ox,int oy,int a,int b,int mau);
void veMT2(int ox,int oy,int mau);
void veMT3(int ox,int oy,int mau);
void vsl();
ĐTVT-K35-Nhóm4
Page 20
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
void vsl1();
void slbandau();
void Sound();
void hienso(int i);
void PPquet(int m0,int n0);
void tinh(int j,float mt1,float mt2);
int sosanh(int i);
void manquet(int i);
void showmouse();
void hidemouse();
int loadmouse();
int click();
int clickR();
int clickL();
int getX();
int getY();
int mousein(int x1,int y1,int x2,int y2);
void mouse();
void mouse1();
unsigned long int tg(void);
void thuc_hien_cht() ;
void taonhieuqth(int ox,int oy,float dmax);
void taonhieuqtr(int ox,int oy, float r);
void nhieuquetxoan(int ox,int oy);
void gioithieu();
//-----------Cac bien dung chung cho toan bo chuong trinh------------------int ht=0,bt=0,bc,d,stop=0,chan=0;
int dem1=0;
int q=1,Dmax=200,ax,ay,k=1,T=10, chieu=1,sovong=6;
unsigned long int t_tr,t_ht;
int xmt,ymt,m=1,n=0,m1,n1,tx,ty,td=0,mau=9,dem=0;
double Mt[7][5],mttruoc[7][5];
char st[7][5][9];
//-----------------------Chuong trinh chinh---------------------------------//
void main(void)
{
khoitaodh();
loadmouse();
gioithieu();
thuc_hien_cht();
ĐTVT-K35-Nhóm4
Page 21
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
}
//------------------------Ham khoi tao do hoa----------------------------//
void khoitaodh()
{ int graphdriver = DETECT, graphmode;
initgraph(&graphdriver, &graphmode, " c:\\tc\\bgi ");
}
//--------------------------- Khoi tao chuot-------------------------------//
/*--Dung ngat 0x33--*/
int loadmouse(void)
{ struct REGPACK reg;
reg.r_ax = 0x0000 ;
intr(0x33, ®);
if (reg.r_ax==0xFFFF) return 1;
else return 0;
}
void showmouse()
{ struct REGPACK reg;
reg.r_ax = 0x0001 ;
intr(0x33, ®);
}
void hidemouse()
{ struct REGPACK reg;
reg.r_ax = 0x0002;
intr(0x33, ®);
}
int click(void)
{ struct REGPACK reg;
int i=0;
do { reg.r_ax = 0x0003;
intr(0x33, ®);
if (((reg.r_bx&1)==1)||((reg.r_bx&2)==2)) i=1;
else i=0;
} while ((i==0)&&(!kbhit()));
return i;
}
int getX(void)
{ struct REGPACK reg;
reg.r_ax = 0x0003;
intr(0x33, ®);
return reg.r_cx;
ĐTVT-K35-Nhóm4
Page 22
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
}
int getY(void)
{
struct REGPACK reg;
reg.r_ax = 0x0003;
intr(0x33, ®);
return reg.r_dx;
}
int clickR(void)
{
struct REGPACK reg;
reg.r_ax = 0x0003;
intr(0x33, ®);
if ((reg.r_bx&2)==2) return 1;
else return 0;
}
int clickL(void)
{
struct REGPACK reg;
reg.r_ax = 0x0003;
intr(0x33, ®);
if ((reg.r_bx&1)==1) return 1;
else return 0;
}
int mousein(int x1,int y1,int x2,int y2)
{ if(getX()<x2&&getX()>x1&&y1
else return 0;
}
//--------------------------- Thuc hien chuong trinh ----------------------//
void thuc_hien_cht()
{
lai:
setbkcolor(0);
settextstyle(0,0,0);
mainframe();
slbandau();
vsl();
PPquet(m,n);
loadmouse();
button(16,0);
showmouse();
do
{
ĐTVT-K35-Nhóm4
Page 23
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
if(clickL()&&mousein(260,106,320,128))
{
hidemouse();
stop++;
if (stop==1){ delay(100); button(16,1); message(m,n); PPquet(m,n);}
else { stop=0; delay(100); button(16,1); goto lai;}
}
//Bat dau
if(clickL()&&mousein(540,446,624,466))
{ hidemouse();
button(18,1);delay(500);closegraph();exit(1);
}
//thoat
if(clickL()&&mousein(540,415,624,435))
{ hidemouse(); button(17,1); delay(200);
button(17,0); gioithieu();mainframe();message(m,n);vsl();PPquet(m,n);
} //Gioi thieu
delay(200);
}
while(!kbhit());
char ch; vsl();
do
{
ch=getch();
switch(ch)
{ case 13: stop++;
if (stop==1){ delay(100); button(16,1);
message(m,n); PPquet(m,n);}
else { stop=0; delay(100); button(16,1); goto lai;}break;
case 27: exit(1); break;
case 'T','t': m=1; td=0;
PPquet(1,n); break;
case 'R','r': m=2; td=0;
PPquet(2,n); break;
case 'X','x': m=3; td=0;
PPquet(3,n); break;
case 'V','v': m=4; td=0;
PPquet(4,n); break;
case 'A','a': button(11,1); delay(20); button(11,0);
T=T-1;if(T<2) T=2;
PPquet(m,n); break;
case 'G','g': button(12,1); delay(20); button(12,0);
T=T+1;if(T>40) T=40;
PPquet(m,n); break;
case 'D','d': button(15,1); thongbaomt(4); break;
case 'U','u': button(14,1);
do{thongbaomt(3);}while(getch()!=0x0d);
ĐTVT-K35-Nhóm4
Page 24
Bài tập lớn: Kỹ thuật định vị dẫn đường
GVHD: Nguyễn Tường Thành
mainframe();vsl();message(m,n);PPquet(m,n); break;
case 'I','i': button(17,1);delay(100);button(17,0);
do{gioithieu();}while(getch()!=0x0d);
mainframe();vsl();message(m,n);PPquet(m,n); break;
case 'O','o': button(18,1);delay(500);button(18,0);closegraph();exit(1);
break;
case 'C','c': button(19,1); chieu=-chieu; q=q+chieu; vsl();
delay(50); button(19,0); PPquet(m,n);break;
case 48: n=0; PPquet(m,0); break;
case 49: n=1; PPquet(m,1); break;
case 50: n=2; PPquet(m,2); break;
case 51: n=3; PPquet(m,3); break;
case 52: n=4; PPquet(m,4); break;
case 53: n=5; PPquet(m,5); break;
case 54: n=6; PPquet(m,6); break;
case 42:
slbandau();PPquet(m,n); break;
case 0x49: if(Dmax<400)Dmax=Dmax+100;else Dmax=400;goto lai;
case 0x51: if(Dmax>200)Dmax=Dmax-100;else Dmax=200;goto lai;
case 43 : if(sovong==10)sovong=10;else sovong=sovong+2;goto lai;
//dau + de tang so vong tren man hinh quet
case 45 : if(sovong==6)sovong=6;else sovong=sovong-2;goto lai;
//dau - de giam so vong tren man hinh quet
default: vsl(); message(m,n); PPquet(m,n);break;
}
} while(ch!=27);
getch();
cleardevice();
nosound();
}
//--------------------Khoi tao ham thoi gian-----------------------------//
unsigned long int tg(void)
{ static struct time ti;
unsigned long int t;
gettime(&ti);
t=((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti.ti_hund;
return t;
}
//------------------------Ham hien bang thong so---------------------------//
void thongso()
{ int i,j;
ĐTVT-K35-Nhóm4
Page 25