Tải bản đầy đủ (.pdf) (67 trang)

XÂY DỰNG THUẬT TOÁN CHO PHƯƠNG TIỆN GIAO THÔNG ỨNG DỤNG GPS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.69 MB, 67 trang )

1

MỤC LỤC
MỤC LỤC ................................................................................................................. 1
C

N

MỞ ẦU ................................................................................................ 3

TÍNH CẤP THIẾT CỦA Ể TÀI ...................................................................... 3
MỤC TIÊU KHOA HỌC. ................................................................................... 4
NỘI DUNG CÔNG VIỆC THỰC HIỆN ........................................................... 4
C
N 1: C SỞ LÝ THUYẾT XÂY DỰNG THUẬT TOÁN
ỜNG
DẪN ỊN TR ỚC. ............................................................................................... 5
1.1 LÝ THUYẾT. ................................................................................................. 5
1.1.1 Tìm đường đi ngắn nhất trên bản đồ ......................................................... 5
1.1.2 L t uy t
t u t to n ti u i u v đ n đường ngắn n ất. ................... 5
1 ỨN DỤN
DỰN T UẬT
ỜN
ỊN TR ỚC DỰA
TRÊN DIJKSTRA ............................................................................................. 10
1.2.1 T u t đ n đường ngắn n ất. .................................................................. 10
1.2.2 Hướng dẫn sử dụng: ................................................................................ 12
1.2.3 Các hàm chứ năng trong p ần m m mô phỏng ..................................... 23
C
N


: C SỞ XÂY DỰN MÔ ÌN
Ố T ỢNG THỰC NGHIỆM
KIỂM TRA
ỜNG DẪN TỐ U ................................................................... 24
2.1 TỔNG QUAN VỀ V
ỀU KHIỂN PIC .................................................. 24
2.1.1 Ngôn ngữ l p trình và mạch nạp cho PIC ............................................... 24
2.1.2 Sơ đồ chân vi đi u khi n ......................................................................... 26
2.2 TỔNG QUAN VỀ GPS ................................................................................ 26
2.2.1 Các thành phần của hệ thống .................................................................. 27
2.2.2 Nguyên tắ đ nh v .................................................................................. 33
2.3 CÁC THÀNH PHẦN CHÍNH CỦA ỘN C ....................................... 35
2.3.1 Sơ đồ tổng qu t đi u khi n hệ thống. ...................................................... 35
2.3.2 Cảm bi n la bàn CMPS-03...................................................................... 36
2.3.3 Module GPS EM - 410............................................................................ 43
2.3.4 Mạch công suất dùng L298 ..................................................................... 46
2.3.5 Sơ đồ khối xử lý trung tâm...................................................................... 47
2.3.6 Mạch chuy n đổi USB – COM ............................................................... 48
2.3.7 Mạch hi n th dùng LCD 16x2 ............................................................... 48


2

C
N 3: ỨNG DỤNG VÀ MÔ PHỎNG THUẬT TOÁN
ỜNG DẪN
NGẮN NHẤT TRÊN BẢN Ồ GOOGLE .......................................................... 51
3.1 GIỚI THIỆU PHẦN MỀM ......................................................................... 51
3.2 QUÁ TRÌNH THIẾT KẾ PHẦN MỀM ..................................................... 55
3.2.1 Tạo il lưu toạ độ ................................................................................... 55

3.2.2 Q trìn đ
il .txt .............................................................................. 56
3.2.3 Gửi ữ liệu o MCU ủ động ơ ......................................................... 57
3.2.4 C p n t GPS tr n Googl m p .............................................................. 58
C
C

N 4: ỨNG DỤN
ỀU KHIỂN MÔ HÌNH THỰC NGHIỆM TRÊN
SỞ THUẬT TOÁN ỊN TR ỚC TỐ U ............................................... 60
4.1 GIỚI THIỆU QUÁ TRÌNH TRUYỀN DỮ LIỆU. .................................... 60
4

S

Ồ THỰC HIỆN. .................................................................................. 62

ẾT LUẬN ............................................................................................................. 64
TÀI LIỆU THAM KHẢO ..................................................................................... 67


3

C
 TÍN

CẤP T

NG MỞ ẦU


ẾT CỦA Ể TÀ

Trong quá trình phát tri n nhanh chóng và toàn diện của khoa h c và công
nghệ, máy móc càng ngày càng trở nên t ông min
đ phục vụ

ơn và được sử dụng nhi u ơn

o on người v nhi u mặt, quân sự ũng n ư ân sự. Những hệ thống

ơ giới được sử dụng hiện n y được tự động hóa không ngừng đ tạo nên sự thu n
tiện
x

o on người ũng n ư cải ti n khả năng oạt động của hệ thống. Ví dụ n ư
ơi được l p trìn đ chạy tự động theo bản đồ, máy bay quân sự k ông người

lái, robot tự hành hoạt động trong những môi trường độc hại, các tàu lặn tự hành
ùng đ khảo s t đ a hình ứng dụng trong ngành dầu lử …và rất nhi u những ứng
dụng ơ giới khác có th hoạt động ở ch độ tự động. Và n n tảng cho những ứng
dụng ơ giới tự động đó chính là khả năng tự đ nh v .
Ngày xư , k i on người muốn đi qu một khu vự nào đó mới n ư là rừng
hay là sa mạc h phải đ lại dấu v t n ư là đánh dấu l n đường, bẻ một àn
x

đ nh v trí củ mìn đã đi qu . Tuy n i n, s u này k i đi i n t ì đ x

trí của mình h không th dựa vào các v t đượ đ n
vì sao trên trời, sử dụng l
s on ưt


àn đ x

ây đ
đ nh v

ấu, h dự vào t i n văn

đ n p ương ướng và

độ lệch của các vì

h sẽ đ nh v được v trí của h trên bi n. Tuy nhiên, những p ương

p p này ó độ chính xác không cao và phụ thuộc rất nhi u vào thời ti t
Ngoài ra trên Google map những đ a hình khá hi m trở mà on người

ư

tạo n n được lộ trìn đường đi ụ th hay một bản đồ chi ti t n ư s mạc, không
gian trên bi n…đ dễ dàng di chuy n theo lộ trình trên Google map.
Khi một động ơ i

uy n trên lộ trìn đường đi ó sẵn trên Google map,

ơ ấu nhi u lựa ch n củ đường đi k i n chúng ta không th nh n thấy được con
đường ngắn nhất mà

ng t đ ng đi.



4

Dựa vào những vào n ưng ti u

í tr n, đ tài đã mở ra một giải pháp: Xây

dựng một thu t to n đường dẫn đ n trướ

o p ương tiện giao thông ứng dụng

GPS.
 MỤC T ÊU

OA

ỌC

 Xây dựng thu t to n đường dẫn đ n trướ

o p ương tiện giao thông.

Đường dẫn ngắn nhất.
Đảm ảo gó

ẻl i ủ

đường ẫn n toàn

o p ương tiện gi o


thông.
 Ứng dụng GPS trong đi u kiện mô ìn p ương tiện giao thông.
 Đảm bảo đi u kiện p ương tiện giao thông bám theo quĩ đạo đường dẫn
đ n trước.
 NỘ DUN

CÔN

V ỆC T ỰC

ỆN

 Tìm hi u thu t to n đường đường dẫn đ n trước ngắn nhất.
 Thi t k và ứng dựng thu t to n đường dẫn đ nh trước ngắn nhất.
 T i t k và ứng ụng p ần m m

n đường đi đ n trướ ngắn n ất từ

Goodgle map
 Đảm ảo góc bẻ l i n toàn

o động ơ

 Xây dựng và ứng dụng phần m m truy n dữ liệu từ Google map xuống cho
động ơ.
 Thực nghiệm mô hình thực t


5


C

N

1: C

SỞ LÝ T U ẾT

DỰN

DẪN ỊN

T UẬT TOÁN

ỜN

TR ỚC

1 1 LÝ T U ẾT.
1.1.1 Tìm đường đi ngắn nhất trên bản đồ
Có rất nhi u thu t to n tìm đường đi ngắn nhất trên bản đồ n ư: Dijkstra,
Bellman – Ford, Heuristic, Giải thu t A* n ưng t

n thu t to n ijkstr

o: Đó

là thu t to n tìm được lời giải chính xác và tốn ít chi phí nhất. Ý tưởng của thu t
toán Dijkstra là sử dụng phép duyệt lan truy n, bắt đầu duyệt từ đỉnh xuất phát, tại

mỗi đỉnh tính khoảng cách từ đỉnh xuất p t đ n
đó

đỉnh k củ đỉnh đ ng xét, sau

n đỉnh ti p theo sao cho khoảng cách từ đỉn đó đ n đỉn

nhất (so với

n đầu là nhỏ

đỉnh k khác), duyệt đ n khi gặp đượ đỉnh cuối thì dừng lại hoặc

k ông òn đỉnh k thì dừng lại.
1.1

L thu t c c thuật to n tiêu bi u v đ nh đường ngắn nhất

1.1

1 Tìm đường đi ngắn nhất bằng giải thuật Dijkstra
Thu t toán Dijkstra, mang tên của nhà khoa h

m y tín người Hà Lan Edsger

Dijkstra, là một thu t toán giải quy t ài to n đường đi ngắn nhất nguồn đơn trong
một đồ th không có cạnh mang tr ng số âm.
Có rất n i u giải t u t đã đượ p t tri n đ giải ài to n tìm đường đi ngắn
n ất giữ một ặp đỉn . Giải t u t Dijkstr là một giải t u t đ giải ài to n đường
đi ngắn n ất nguồn đơn tr n một đồ t

k ông âm. Nó x

ó tr ng số ạn mà tất ả

đ n đường đi ngắn n ất giữ

i đỉn

tr ng số đ u

o trướ , từ đỉn a đ n

đỉn b.
Ở mỗi đỉn v, giải t u t Dijkstr x
kv: mang giá tr

ool n x

B n đầu ta khởi tạo tất cả

đ n 3 t ông tin: kv, dv và pv.

đ nh trạng t i được ch n củ đỉnh v.
đỉnh v

ư được ch n, ng ĩ là:

kv = false,  v  V.
dv: là chi u ài đường đi mà t tìm t ấy


o đ n thời đi m đ ng xét từ a đ n v.


6

Khởi tạo, dv = , v  V \{a}, da = 0.
pv: là đỉn trước củ đỉnh v tr n đường đi ngắn nhất từ a đ n b. Đường đi ngắn
nhất từ a đ n b có dạng {a,...,pv,v,...,b}. Khởi tạo, pv = null, v V.
S u đây là

ướ

ủ giải t u t Dijkstr :

B1. K ởi tạo: Đặt kv:= false v  V; dv:= ,v  V \ {a}, da:=0.
B2. Ch n v  V sao cho kv = false và dv = min {dt / t V, kt = false}
N u dv =  thì kết thúc, không tồn tại đường đi từ a đ n b.
B3. Đ n

ấu đỉnh v, kv:= true.

B4. N u v = b thì kết thúc và db là độ ài đường đi ngắn nhất từ a đ n b.
Ngược lại n u v  b sang B5.
B5. Với mỗi đỉnh v k với u mà kv = false, ki m tra
N u dv > du+ w(u,v) thì dv:= du + w(u,v)
Ghi nhớ đỉnh v: pu:= v.Quay lại B2.


7


Begin

n, C = (cij), a, b

d(a) = 0
d(v) =   v  a
K(i) = False  i  n

S

v K
Đ
Ch n v  K s o

o [v] đạt min

K = K \ {v}
S

V K&k v
Đ
d(u) = min(d(u), d(v) + w(v,u))
d(b)

End
Hình 1.1: Thu t toán Dijkstra
1.1.2.2 Thuật toán Bellman – Ford
Thu t toán BELLMAN-FORD chỉ có giá tr
tr ng lượng bất kỳ.


o

đồ th không có chu trình, có


8

Nguy n l t u t to n:
 Gán các giá tr

n đầu.

 Ch n đỉnh s1 làm gốc.
 M rk = [1,0…0] ; [1] = 0 ; Pr[1] = 1.
 Ở mỗi ước lặp :
 Ch n đỉn k

ư đ n

ấu sao cho tất cả đỉn trước củ k đã đ n
-

ng ĩ là : M rk[k] = 0 và j

ấu rồi ,

(k) : Mark[j]= 0

 C p nh t Mark : Mark[k] =1 ;
-


 Tính d[k] = min { d[i] + a[i, k]: i
ĐỘ PHỨC TẠP: O(nm). O(n3) C o

(k)}, và Pr[k] là chỉ số đạt min.

đồ th dầy, i.e., những đồ th mà m ≈ n².

1.1.2.3 Thuật giải Heuristic
T u t giải H uristi k ông p ải là t u t to n, vì nó k ông đảm ảo đượ
một ti u

í ủ t u t to n đó là tín đ ng, y u ầu đối t u t giải H uristi là tìm r

lời giản gần đ ng và ó t

ấp n n đượ . Trong t ự t

ó rất n i u ài to n n u

sử ụng t u t to n t ì tốn rất n i u t ời gi n, vì độ p ứ tạp ủ nó qu lớn, trong
k i đó n u sử ụng t u t giải H uristi t ì
đ ng một

n n



t ông tin ó í , p ải i t


T u t to n: Ki m tr tất ả
Haminton. Với một đồ t
t uộ vào

tìm đượ một đ p n gần

giải iệu quả, y u ầu đối với t u t giả H uristi là p ải

on người. Nói tóm lại là m ng tín

n n t o n!,

ót

óng và iệu quả ơn.

Đ đư r một
i t t n ụng

ng t

v n ụng tri t ứ và kin ng iệm

on người.
trường ợp, tín tr ng số tất ả

u trìn

n đỉn . Độ p ứ tạp là n!, v y số p ép to n sẽ tăng rất


ỉ ần đồ t

l n ỡ 1000 là số p ép tín l n ỡ k*1000! (k p ụ

ài đặt t u t to n

ng t ).


9

T u t giải H uristi : n u t sử ụng một
ng iệm ủ

, đó là sử ụng kin

on người, k i đi tr n n ững đoạn đường ngắn t ì sẽ ó một

ngắn, từ mỗi đỉn t
k ông qu y l i
ư

k

n đ n k ti p s o

o ạn nối ó gi tr n ỏ n ất và

đỉn đã tới, n ư v y t sẽ ó đượ một


u trìn n ỏ, n ưng

ắ là n ỏ n ất. T u t giải này ó t n là N r st N ig

t u t giải này

u trìn

ỉ là n2, ng ĩ là với một ngàn đỉn

ors. Độ p ứ tạp ủ

ng t

ỉ ần làm k oảng vài

triệu p ép to n là xong.
Tuy v y, vì
quả t u đượ vẫn
on người ơn,

ng t mới

ỉ sử ụng một ít kin ng iệm on người n n k t

ư tốt lắm, n u

ng t sử ụng n i u ki n t ứ m ng tín

ng t sẽ t u đượ k t quả tốt ơn.


1.1.2.4 Giải thuật A*
A* (A sao) là một thu t to n tìm đường đi ngắn nhất trong đồ th . Thu t toán
này tìm một đường đi từ một nút khởi đầu tới một nút đí

o trước (hoặc tới một

nút thỏa mãn một đi u kiện đí ). T u t toán này sử dụng đ n gi kin ng iệm đ
x p loại từng n t t o ướ lượng v tuy n đường tốt nhất đi qu n t đó. T u t toán
này duyệt các nút theo thứ tự củ đ n gi

uristi này. Do đó, thu t toán A* là

một ví dụ của tìm ki m theo lựa ch n tốt nhất (best-first search).
Đ

i t n ững tuy n đường nào ó k ả năng sẽ ẫn tới đí , A* sử ụng một

đ n gi kin ng iệm v k oảng

từ đi m ất kỳ

trường ợp tìm đường đi, đ n gi này ó t
đ n gi xấp xỉ t ường ùng
Đi m k
đ n k oảng

o k oảng

là k oảng


đường

im

y - một

ủ đường gi o t ông.

iệt ủ A* đối với tìm ki m t o lự
đã đi qu . Đi u đó làm

o trướ tới đí . Trong

n tốt n ất là nó òn tín

o A* "đầy đủ" và "tối ưu", ng ĩ là, A*

sẽ luôn luôn tìm t ấy đường đi ngắn n ất n u tồn tại một đường đi n ư t . A*
k ông đảm ảo sẽ

ạy n n

một môi trường ạng m

ung,

ơn

t u t to n tìm ki m đơn giản ơn. Trong

uy n ất đ đ n đí

ót

là trướ

t p ải đi


10

v p í x đí

và uối ùng mới qu y lại. Trong trường ợp đó, việ t ử

t o t ứ tự "gần đí
1.2 ỨN

DỤN

ơn t ì đượ t ử trướ " ó t
DỰN

T UẬT

n t

gây tốn t ời gi n.

ỜN


ỊN

TR ỚC DỰA

TRÊN DIJKSTRA
1 1 Thuật đ nh đường ngắn nhất
Mô phỏng thu t to n tìm đường đi ằng Dijkstra trên Goodgle map
Trong đ tài, chúng tôi sử dụng bản đồ google map làm n n tảng. Vì v y, ngoài
những ưu đi m mà google map mang lại (Tính chính xác của bản đồ, khoảng cách,
cự ly, t

độ v t l …),

ng t vẫn phải chấp nh n các hạn ch mà google map

ràng buộc n ư:
-

Không th can thiệp vào thu t to n tìm đường đi ủa google map.

-

Việc ch n đi m A đ n đi m B trong google map không phải là thu t toán
tìm đường ngắn nhất, mà là thu t to n tìm đường có th đi tối ưu n ất. Việc
xét tính tối ưu ủa google map là một vấn đ cần xem xét. Tuy nhiên, trong
phạm vi bài vi t này có th đ c p đ n 1 vài đặ đi m mà googl t ường xét
tới:
Đường lớn, đường nhỏ, đường cao tố ,…
Đường 1 chi u, đường 2 chi u,…

Đường t ông t o ng, đường t ường kẹt xe (dựa vào tỉ lệ rating của
người ùng, …),…

N u chúng ta muốn tái hiện lại việc tìm ki m đường đi ủa google map, việ đầu
tiên phải làm là mô hình hóa bản đồ thực t . Vì v y, có th xây dựng một

ương

trình mô hình hóa 1 khu vực bản đồ nhỏ (vì n u mô hình hóa toàn bộ bản đồ là
không khả thi, dữ liệu quá lớn,…), và áp dụng thu t to n tìm đường đi ngắn nhất
dựa vào Dijstra.


11

Trong trường hợp này, các cạnh có tr ng số của Dijkstra chính là khoảng cách giữa
các node trong bản đồ google map.
C

tín năng trong

ương trìn

- C ương trìn mô p ỏng việ tìm đường đi ngắn nhất áp dụng thu t toán
Dijkstra và so sánh k t quả với Google map.
- Tạo mô hình hóa bản đồ google map bằng thủ công
- Lưu và lo

lại mô hình bản đồ


N ư phiên bản trướ đó đã đ c p,
dùng phải nh p

ương trìn k ông ó ữ liệu, đòi ỏi người

t ông tin ơ ản sau mới có th mô hình hóa bản đồ google

map:
độ node: tính theo latitude và longitude

-

T

-

Khoảng cách giữa 2 node

Sau khi mô hình hóa 1 vùng bản đồ google map, ta có th lưu vùng

ản đồ này

t àn 1 il đ sau này cần thì load lại dữ liệu
Bản t ân

ương trìn k ông lấy dữ liệu theo chuẩn của google n n il lưu vùng

bản đồ mô phỏng ũng sẽ khác với il lưu ủ p ần m m.
Hướng dẫn thao tác:
-


Thao tác mô hình hóa google map

-

T ot

tìm đường đi ngắn nhất

-

T ot

lưu và lo

-

Thao tác nạp dữ liệu cho thi t b

il

ản đồ mô hình

Trong thao tác mô hình hóa bản đồ google map, xét vùng bản đồ trên google map
(n ư ìn 1), t g i n n:
-

T

độ đi m đặt bắt đầu


-

T

độ đi m đặt k t thúc

-

T

độ tại các giao lộ (ngã 3, ngã 4, đường cụt)


12

Với những đi m ta ghi nh n được, ta sẽ tạo được các node trong mô hình bản đồ
(n ư ìn 2). Lưu

rằng việc ghi nh n các node bao gồm cả việc cho bi t v trí đ a

lý của node.
1

ướng dẫn sử dụng:

1.2.2.1 C

tạo no


Giả sử trên giao diện

ương trìn , ó 1 k u vực bản đồ ó đ a hình sau:

Hình 1.2: Bản đồ trên mô hình Google map
Bướ 1: X

đ nh vùng google muốn mô phỏng

Giao diện

ương trìn mô p ỏng:

Hình 1.3: Giao diện

ương trìn mô p ỏng.


13

Từ bản đồ này, ta xây dựng mô hình hóa của google map (khu vự được khoanh
vùng màu đỏ), sau áp dụng thu t to n ijkstr tìm đường đi ngắn nhất và so sánh
k t quả googl đư r .
Ti p tục lần lượt tạo các node tại các giao lộ đã đ n trước bằng cách click vào nút
“Tạo mới dữ liệu” sau ch n đi m bắt đầu. Mụ đí
là đ x

đ nh t

ủa việc ch n lại đi m bắt đầu


độ củ đi m đ ng đ c p

Hình 1.4: Mô phỏng đường đi ngắn nhất
Bước 2: Ghi nh n đi m bắt đầu trên google

Hình 1.5: Ch n đi m đầu

o

ương trìn


14

Bước 3: Tạo node bắt đầu trong

ương trìn mô p ỏng

-

Click vào vùng trống đ tạo 1 node.

-

Đi n thông tin t

độ node vào tạo (tạo độ lấy 3-4 số th p phân, phần

nguyên và phần th p phân cách nhau bởi dấu .):


Hình 1.6: Nh p khoảng cách cho từ t

độ

Ch n OK. Xuất hiện node vừa tạo xong.

Hình 1.7: No
Thao tác này lặp lại

1 được hình thành trên phần m m

ođ nk ix

đ n đầy đủ:


15

Tất cả các giao lộ
N ư v y, với vùng bản đồ vừa xác nh n tr n googl m p, t
phỏng các node sau:

Hình 1.8: Tạo node 2 từ google map

Hình 1.9: No

2 được xuất hiện.

ó được bản đồ mô



16

Hình 1.10: X

đ nh v trí thứ 10

Ti p tục thực hiện, k t quả là ta ghi nh n được 12 node của vùng bản đồ vứa xác
đ nh

Hình 1.11: C

no

Lưu : C o p ép người ùng được tạo thêm
-

Node bắt đầu

-

Node k t thúc

được k t thúc


17

Hai node này có th k ông được ghi chú trên vùng bản đồ googl m p, n ưng vẫn

x

đ n được t

Bước 4: X
-

độ củ 2 đi m này

đ nh khoảng cách giữa các node:

Dựa vào google map, có th đo khoảng cách giữa 2 node gần nhât

Hình 1.12: X
Sau khi bi t khoảng

đ nh khoảng các từ google map

, đư vào ản đồ mô phỏng n ư 1 t ông số tr ng số giữa 2

node

Hình 1.13: Nh p thông số cho 2 node


18

Hình 1.14: Khoảng cách hi n th trên giao diện
-


Ấn nút tạo mới dữ liệu đ ti n àn đo k oảng cách giữa 2 node ti p theo

Hình 1.15: Tạo mới dữ liệu từ google map
Ti p tục thực hiện tuần tự

o đ n khi liên k t toàn bộ các node trên bản đồ


19

Hình 1.16: khoảng

được xác l p trên toàn mi n.

 Tìm đường đi ngắn nhất
Với vùng bản đồ demo phía trên, ta ti n àn tìm đường đi giữ no
ta sẽ thấy:
Bản đồ Google map:

Hình 1.17: Ki m tr đường tối ưu tr n googl m p

1 đ n node 6,


20

Bản đồ giả l p:

Hình 1.18: Phần m m hi n th đường đi ngắn n ất nhất
Xem xét k t quả: Cả 2


ương trìn

ùng tìm r một đường đi với khoảng

gần

ằng nhau.
T ot

tìm đường đi tr n

ương trìn mô p ỏng.

-

Bướ 1: Cli k vào n t “Làm mới”

-

Bước 2: Click ch n vào node 1

-

Bướ 2: Cli k vào n t “Tìm đường đi”

-

Bước 3: Click ch n node 6


Cli k vào n t “Làm mới” đ tìm lại đường đi

o

no

k

.

Cli k vào n t “Xó ” đ tạo lại vùng bản đồ mô phỏng.
1.2.2.2 Lưu và load lại bản đồ giả lập.
-

Lưu ản đồ: Cli k vào n t “Lưu il ”  Ch n đường dẫn và đặt tên cho file
muốn lưu. Fil lưu ó ạng *.sys


21

Hình 1.19: Lưu il t

độ

-Load lại bản đồ:
Bướ 1: Cli k vào n t “Xó ”  li k n t “Lo

il ”  Ch n file cần load 

Open


Hình 1.20: T o t



Bước 2: Ch n il đã lưu trướ đó  Open

il đ load mới.


22

1.2.2.3 Nạp dữ liệu
Quá trình nạp dữ liệu tới thi t b sẽ không khác so với phần m m GPS_Control.
C ương trìn tự động trích xuất t

độ của từng no

trong đường đi ngắn nhất

bằng cổng COM.
Thi t l p thông số cổng COM khi bắt đầu gửi dữ liệu.
Thao tác thực hiện:
Cli k vào “Nạp dữ liệu” đ thi t l p cổng COM và truy n dữ liệu xuống thi t b .

Hình 1.21: Mô phỏng nạp dữ liệu
Ch n k t nối đ bắt đầu gửi.

Hìn 1.22: C


n ổng k t nối động ơ


23

Hìn 1.23: Nạp t àn

ông

Trường hợp gửi thất bại sẽ nh n thông báo:

Hình 1.24: Phản hồi lỗi
Lưu đồ thu t toán hàm gửi vẫn n ư p ần m m GPS_Control, chỉ khác nhau trong
việc lấy nguồn dữ liệu (từ google map hoặc cấu trúc bằng tay).
N ư v y, quá trình mô phỏng thu t to n tìm đường đi ngắn nhất trên google map
oi n ư oàn tất.
1.2.3 C c hàm chức năng trong phần m m mô phỏng

Hàm tri n khai thu t toán Dijkstra bằng C#.
Lưu : Vì đây là àm

uẩn, n n qu trìn

ài đặt là giống nhau. Còn v lưu đồ hay

diễn giải thu t toán, chúng ta có th tham khảo các tài liệu khác.


24


C

N

2: C

ỂM TRA
2.1 TỔN

SỞ
ỜN

DỰN
DẪN TỐ

QUAN VỀ V

ỀU



ÌN

Ố T ỢN

T ỰC N

ỆM

U

ỂN P C

PIC là vi t tắt củ “ Progr m l Int llig nt Comput r”, ó t
“m y tín t ông min k ả trìn ” o ãng G n nr l Instrum nt đặt t n

tạm d ch là
o vi đi u

khi n đầu tiên của h : PIC1650 được thi t k đ dùng làm các thi t b ngoại vi cho
vi đi u khi n CP1600. Vi đi u khi n này s u đó được nghiên cứu phát tri n thêm
và từ đó ìn t àn n n òng vi đi u khi n PIC ngày nay.
Các kí hiệu củ vi đi u khi n PIC:
PIC12xxxx: độ dài 12 bit
PIC16xxxx: độ dài 14 bit
PIC18xxxx: độ dài 16 bit
C: PIC có bộ nhớ EEPROM (chỉ có 16C84 là EEPROM)
F: PIC có bộ nhớ flash
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp
LV: tương tự n ư LF, đây là kí iệu ũ
Bên cạn đó một số vi đi u khi n có kí hiệu xxFxxx là EEPROM, n u có thêm
chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash).
Ngoài ra còn có thêm một òng vi đi u khi n PIC mới là dsPIC.
2.1.1 Ngôn ngữ lập trình và mạch nạp cho P C
Ngôn ngữ l p trình cho PIC rất đ

ạng. Ngôn ngữ l p trình cấp thấp có

MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ l p
trình cấp


o ơn

o gồm C, B si , P s l, … Ngoài r

l p trìn được phát tri n àn ri ng

òn ó một số ngôn ngữ

o PIC n ư PICB si , MikroB si ,…


25

Đây ũng là một dòng sản phẩm rất đ

ạng àn

o vi đi u khi n PIC. Có

th sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hạng Mi ro ip n ư:
PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II. Có th dùng các
sản phẩm này đ nạp

o vi đi u khi n k

Dòng sản phẩm chính thống này ó ưu t

t ông qu

là nạp được tất cả


ương trìn MPLAB.
vi đi u khi n PIC,

o, và t ường gặp rất nhi u k ó k ăn trong qu trìn mu

tuy nhiên giá thành rất
sản phẩm.
Ngoài l

o tín năng

nhi u mạch nạp được thi t k
mạch nạp

o p ép n i u ch độ nạp khác nhau, còn có rất
àn

o vi đi u khi n PIC. Có th sơ lược một số

o PIC n ư s u:

- JDM programmer: mạch nạp này ùng
nạp

vi đi u khi n PIC có hỗ trợ tín năng nạp

ương trìn nạp Icprog cho phép
ương trìn điện áp thấp ICSP


(In Circuit Serial Progamming). Hầu h t các mạch nạp đ u hỗ trợ tín năng nạp
ương trìn này.
- WARP-13A và MCP-USB: hai mạch nạp này giống với mạch nạp
PICSTART PLUS do nhà sản xuất Microchip cung cấp, tương t í
MPLAB, ng ĩ là t

d

ót

ùng

khiên PIC mà không cần sử dụng một

với trình biên

ương trìn MPLAB đ nạp

o vi đi u

uơng trìn nạp khác, chẳng hạn ICprog.

- Mạch nạp Universal củ Wili m: đây k ông p ải là mạch nạp chuyên dụng
àn

o PIC n ư P16PRO40.
Các mạch nạp k tr n ó ưu đi m rất lớn là đơn giản, rẻ ti n, hoàn toàn có

th tự lắp ráp một cách dễ dàng, và m i thông tin v sơ đồ mạch nạp, cách thi t k ,
thi công, ki m tr và


ương trìn nạp đ u dễ àng tìm được và download miễn phí

thông qua Internet. Tuy nhiên các mạch nạp tr n ó n ượ đi m là hạn ch v số vi
đi u khi n được hỗ trợ bên cạn đó mỗi mạch nạp cần được sử dụng với một
ương trìn nạp thích hợp


×