6M ch hin th dùng LCD 16x2

Một phần của tài liệu Giải thuật tìm đường đi ngắn nhất ứng dụng GPS trong giao thông (Trang 37)

LI NịI ĐU

3.1. 6M ch hin th dùng LCD 16x2

Ngày nay, thi t b hi n th LCD (Liquid Crystal Display) đ ợc sử d ng trong r t nhi u các ng d ng c a VĐK. LCD có r t nhi u u đi m so v i các d ng hi n th khác: Nó có kh năng hi n th kí tự đa d ng, trực quan (chữ, s và kí tự đ họa), d dàng đ a vào m ch ng d ng theo nhi u giao th c giao ti p khác nhau, t n r t ít tài nguyên h th ng và giá thành rẻầ

Khi s n xu t LCD, nhà s n xu t đư tích hợp chíp đi u khi n (HD44780) bên trong l p v và ch đ a các chân giao ti p c n thi t. Các chân này đ ợc đánh s th tự và đặt tên nh :

Chân Tên Ch c năng

1 VSS Chân n i đ t cho LCD, khi thi t k m ch ta n i chân này v i GND c a m ch đi u khi n

2 VDD Chân c p ngu n cho LCD, khi thi t k m ch ta n i chân này v i VCC=5V c a m ch đi u khi n

3 Vee Chân này dùng đ đi u ch nh đ t ơng ph n c a LCD.

4 RS

Chân chọn thanh ghi (Register select). N i chân RS v i logic ắ0” (GND) hoặc logic ắ1” (VCC) đ chọn thanh ghi.

+ Logic ắ0”: Bus DB0-DB7 s n i v i thanh ghi l nh IR c a LCD ( ch đ ắghi” - write) hoặc n i v i b đ m đ a ch c a LCD ( ch đ ắđọc” - read)

+ Logic ắ1”: Bus DB0-DB7 s n i v i thanh ghi dữ li u DR bên trong LCD.

5 R/W

Chân chọn ch đ đọc/ghi (Read/Write). N i chân R/W v i logic ắ0” đ LCD ho t đ ng ch đ ghi, hoặc n i v i logic ắ1” đ LCD ch đ đọc.

6 E

Chân cho phép (Enable). Sau khi các tín hi u đ ợc đặt lên bus DB0-DB7, các l nh ch đ ợc ch p nh n khi có 1 xung cho phép c a chân E.

+ ch đ ghi: Dữ li u bus s đ ợc LCD chuy n vào(ch p nh n) thanh ghi bên trong nó khi phát hi n m t xung (high-to-low

transition) c a tín hi u chân E.

+ ch đ đọc: Dữ li u s đ ợc LCD xu t ra DB0-DB7 khi phát hi n c nh lên (low- to-high transition) chân E và đ ợc LCD giữ

bus đ n khi nào chân E xu ng m c th p.

7-14 DB0 - DB7

Tám đ ng c a bus dữ li u dùng đ trao đ i thông tin v i MPU. Có 2 ch đ sử d ng 8 đ ng bus này :

+ Ch đ 8 bit : Dữ li u đ ợc truy n trên c 8 đ ng, v i bit MSB là bit DB7.

+ Ch đ 4 bit : Dữ li u đ ợc truy n trên 4 đ ng t DB4 t i DB7, bit MSB là DB7

Bảng 3.3: Chức năng các chân của LCD 16x2

Ghi chú : ch đ ắđọc”, nghĩa là MPU s đọc thông tin t LCD thông qua các chân DBx.

Còn khi ch đ ắghi”, nghĩa là MPU xu t thông tin đi u khi n cho LCD thông qua các chân DBx

3.1.7 MÔ HỊNH T NG QUÁT ĐI U KHI N H TH NG

Gii thích:

 Tín hi u tọa đ đ ợc thu t Modun GPS EM 410, chuy n đ i RS232 sang chuẩn USB giao ti p và đ ợc hi n th trên màn hình máy tính

 USB 3G có nhi m v nh n thông tin b n đ t Google Map hoặc Google Earth

 Tín hi u t máy tính đ ợc giao ti p v i PIC thông qua m ch chuy n đ i USB ậ UART

 C m bi n la bàn đ ợc g n vào PIC đ nh n thông tin v h ng đi cho Robot

 M ch đ ợc c p ngu n 12V t Acqui. Ngu n cho c m bi n, LCD và vi đi u khi n đ ợc c p qua m ch chuy n 12V sang 5V dùng IC n áp LM35

 Tín hi u đi u khi n s đ ợc c p cho m ch công su t L298 đ đi u khi n đ ng cơ cho Robot tự hành ch y theo h ng ta mong mu n.

3.1.8 L U Đ C A H TH NG

Lấy tọa độ GPS tại vì trị xuất phát

So sánh với tọa độ biết trước tiếp theo

Quay Robot theo hướng định trước. Tính toán tọa độ

chứa điểm tiếp theo Cho Robot chạy có hiệu chỉnh theo góc gốc và tính

toán cho điểm sau

Điểm hiện tại trùng điểm yêu cầu Stop Motor NO YES Start Hình 3.9: Lưu đồ của hệ thống

3.2 THI T K PH N M M

3.2.1 Ph n m m nh n tín hi u t GPS

Đ ợc vi t bằng ngôn ngữ C# v i giao di n hi n th nh sau:

Hình 3.10: Giao diện phần mềm nh n tín hiệu từ GPS

Khi ta g n module GPS và chọn đúng c ng COM thì trên màn hình s hi n th kinh đ và vĩ đ t i v trí ta đang đ ng

Đ bi t v trí trên b n đ Google Map ta b m vào nút Map Location

3.2.2 Tìm đ ng đi ng n nh t trên b ng đ

Có r t nhi u thu t toán tìm đ ng đi ng n nh t trên b n đ nh ng ta chọn thu t toán dijkstra do: Đó 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 phát đ n các đ nh k c a đnh dang xét, sau đó chọn đnh ti p theo sao cho kho ng cách t đ nh đó đ n đ nh ban đ u là nh nh t(so v i các đ nh k khác), duy t đ n khi gặp đ ợc đnh cu i thì d ng l i hoặc không còn đ nh k thì d ng l i.

3.2.2.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ọc máy tính ng i Hà Lan Edsger Dijkstra, là m t thu t toán gi i quy t bà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 nhi u gi i thu t đư đ ợc phát tri n đ gi i bài toán tìm đ ng đi ng n nh t giữa m t cặp đ nh. Gi i thu t Dijkstra là m t gi i thu t đ gi i bài toán đ ng đi ng n nh t ngu n đơn trên m t đ th có trọng s c nh mà t t c các trọng s đ u không âm. Nó xác đ nh đ ng đi ng n nh t giữa hai đ nh cho tr c, t đ nh a đ n đ nh b.

m i đ nh v, gi i thu t Dijkstra xác đ nh 3 thông tin: kv, dvpv.

kv: mang giá tr boolean xác đ nh tr ng thái đ ợc chọn c a đnh v. Ban đ u ta kh i t o t t c các đnh vch a đ ợc chọn, nghĩa là:

kv = false, v V.

dv: là chi u dài đ ng đi mà ta tìm th y cho đ n th i đi m đang xét t ađ n v. Kh i t o, dv = , v  V \{a}, da = 0.

pv: là đ nh tr c c a đ 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.

Sau đây là các b c c a gi i thu t Dijkstra:

B1. Kh i t o: Đặt kv:= falsev  V; dv:=,v  V \ {a}, da:=0.

B2. Chọn v  V sao cho kv = falsedv = 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.Đánh d u đnh v, kv:= true.

B4. N u v = b thì kết thúcdb là đ dài đ ng đi ng n nh t t ađ n b. Ng ợc l i n u v b sang B5.

N u dv > du+ w(u,v) thì dv:= du + w(u,v) Ghi nh đ nh v: pu:= v.Quay l i B2.

Hình 3.11: Thu t toán Dijkstra

Begin n, C = (cij), a, b d(a) = 0 d(v) =  v  a K(i) = False i  n v K

Chọn v  K sao cho d[v] đ t min K = K \ {v}

V  K & k v

d(u) = min(d(u), d(v) + w(v,u))

End S Đ S Đ d(b)

3.2.2.2 Thu t toán Bellman ậ Ford

Thu t toán BELLMAN-FORD ch có giá tr cho các đ th không có chu trình, có trọng l ợng b t kỳ.

NGUYÊN LÝ THU T TOÁN

1. Gán các giá tr ban đ u.

 Chọn đnh s1 làm g c.

 Mark = [1,0ầ0] ; d[1] = 0 ; Pr[1] = 1. 2. m i b c lặp :

 Chọn đ nh k ch a đánh d u sao cho t t c đ nh tr c c a k đư đánh d u r i , nghĩa là : Mark[k] = 0 và ∀j ∈ �-(k) : Mark[j]= 0

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

 Tính d[k] = min { d[i] + a[i, k]: i ∈ � -(k)}, và Pr[k] là ch s đ t min. Đ PH C T P :O(nm). O(n3) Cho các đ th d y, i.e., những đ th mà m ả n².

3.2.2.3 Thu t gi i Heuristic

Thu t gi i Heuristic không ph i là thu t toán, vì nó không đ m b o đ ợc m t tiêu chí c a thu t toán đó là tính đúng, yêu c u đ i thu t gi i Heuristic là tìm ra l i gi n g n đúng và có th ch p nh n đ ợc. Trong thực t có r t nhi u bài toán n u sử d ng thu t toán thì t n r t nhi u th i gian, vì đ ph c t p c a nó quá l n, trong khi đó n u sử d ng thu t gi i Heuristic thì chúng ta có th tìm đ ợc m t đáp án g n đúng m t cách nhanh chóng và hi u qu hơn.

Đ đ a ra m t cách gi i hi u qu , yêu c u đ i v i thu t gi Heuristic là ph i bi t t n d ng các thông tin có ích, ph i bi t cách v n d ng tri th c và kinh nghi m c a con ng i. Nói tóm l i là mang tính con ng i.

Thu t toán: Ki m tra t t c các tr ng hợp, tính trọng s t t c các chu trình Haminton. V i m t đ th n đ nh. đ ph c t p là n!, v y s phép toán s tăng r t

nhanh theo n!, ch c n đ th lên cỡ 1000 là s phép tính lên cỡ k*1000! (k ph thu c vào cách cài đặt thu t toán chúng ta).

Thu t gi i Heuristic: n u ta sử d ng m t cách khác. đó là sử d ng kinh nghi m c a con ng i, khi đi trên những đo n đ ng ng n thì s có m t chu trình ng n, t m i đ nh ta chọn đ nh k ti p sao cho c nh n i có giá tr nh nh t và không quay lai các đ nh đư t i, nh v y ta s có đ ợc m t chu trình nh , nh ng ch a ch c là nh nh t. Thu t gi i này có tên là Nearest Neighbors. Đ ph c t p c a thu t gi i này ch là n2, nghĩa là v i m t ngàn đ nh chúng ta ch c n làm cỡ vài tri u phép toán là xong.

Tuy v y vì chúng ta m i ch sử d ng m t ít kinh nghi m con ng i nên k t qu thu đ ợc v n ch a t t l m, n u chúng ta sử d ng nhi u ki n th c mang tính con ng i hơn, chúng ta s thu đ ợc k t qu t t hơn.

Đánh giá thu t gi i Heuristic c a bƠi toán:

- u đi m: Thu t gi i Heuristic cho bài toán có đ ph c t p O(n2 ) t t hơn r t nhi u so v i thu t toán t i u (có đ ph c t p O( n!) ).

- Nh c đi m: thu t gi i có những h n ch , ch a cho ra l i gi i chính xác.

- K t lu n: Thu t gi i Heuristic tuy ch a đ a ra đ ợc l i gi i chính xác cho bài toán, nh ng nó cho ra m t l i gi i có th ch p nh n đ ợc v i đ ph c t p th p hơn nhi u so v i thu t toán t i u.

3.2.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 đích cho tr c (hoặc t i m t nút th a mãn m t đi u ki n đích). Thu t toán này sử d ng đánh giá kinh nghi m đ x p lo i t ng nút theo c l ợng v tuy n đ ng t t nh t đi qua nút đó. Thu t toán này duy t các nút theo th tự c a đánh giá heuristic 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).

Đ bi t những tuy n đ ng nào có kh năng s d n t i đích, A* sử d ng m t đánh giá kinh nghi mv kho ng cách t đi m b t kỳ cho tr c t i đích. Trong tr ng hợp tìm đ ng đi, đánh giá này có th là kho ng cách đ ng chim bay - m t đánh giá x p x th ng dùng cho kho ng cách c a đ ng giao thông.

Đi m khác bi t c a A* đ i v i tìm ki m theo lựa chọn t t nh t là nó còn tính đ n kho ng cách đư đi qua. Đi u đó làm cho A* "đ y đ " và "t i u", nghĩa là, A* s luôn luôn tìm th y đ ng đi ng n nh t n u t n t i m t đ ng đi nh th . A* không đ m b o s ch y nhanh hơn các thu t toán tìm ki m đơn gi n hơn. Trong m t môi tr ng d ng mê cung, cách duy nh t đ đ n đích có th là tr c h t ph i đi v phía xa đích và cu i cùng m i quay l i. Trong tr ng hợp đó, vi c thử các nút theo th tự "g n đích hơn thì đ ợc thử tr c" có th gây t n th i gian.

3.2.3 Ph n m m hi n th tọa độ dùng b n đ offline

Đ ợc vi t bằng ngôn ngữVisual Basic dùng đ hi n th tọa đ b n đ offline t i m t khu vực nh t đ nh

u đi m:

 Không c n dùng m ng v n xác đ nh đ ợc v trí g n module GPS

 L y tín hi u trực ti p, xửlí đơn gi n

Nh c đi m:

 Ch dùng đ ợc b n đ m t v trí hữu h n (Tùy thu c vào đ phân gi i c a hình nh ch p t b n đ

CH NG 4: K T QU Đ T Đ C 4.1 NH N TệN HI U T GPS VÀ HI N TH LểN B N Đ

 G n modun GPS EM ậ 410 và l y tọa đ đi m hi n t i

 Dùng ph n m m liên k t t i Google Map đ hi n th v trí c a đi m hi n t i

 Khi Robot di chuy n, v trí hi n t i s đ ợc ph n m m gửi lên b n đ cho ta quan sát và đ ợc c p nh t 1s m t l n

 Ph n m m có th giúp ta l u l i l trình đ ng đi. Start

Chọn COM UART

GPS

Hiển thị thiết bị Truyền & Nhận với CPU

GPS UART

Hình ́.1: Lưu đồ tổng quát của phần mềm điều khiển

 Sau khi ta kh i đ ng ph n m m s yêu c u ta chọn c ng COM: 1 c ng cho Module nh n tín hi u t GPS và 1 c ng cho vi c truy n dữ li u (UART) t máy tính xu ng vi đi u khi n

 Tín hi u GPS s đ ợc xử lí và hi n th v trí c a đi m hi n t i lên b n đ google map

 Tín hi u đ ng đi s đ ợc truy n cho vi đi u khi n giúp Robot đi đúng theo đ ng mong mu n

Truyền dữ liệu từ file text

Tạo gói 1:

Vị trí bắt đầu & 1 vị trí tiếp theo

Chờ phản hồi Dừng gửi Tín hiệu yêu cầu từ CPU Còn vị trí tiếp theo không Y N Dừng tiến trình

Gói n: 2 vị trí tiếp theo

Y

Y

N N

Hình ́.2: Lưu đồ quá trình gửi dữ liệu xuống vi điều khiển

 Đ truy n đ ợc dữ li u ta ph i chuy n dữ li u tọa đ d ng float 4 byte sang dữ li u dang Byte

 Đ u tiên ta truy n 2 đi m đ u tiên cho vi đi u khi n (A,B). Vi đi u khi n đi u khi n Robot đi t A t i B. Khi t i B máy tính l i truy n dữ li u đi m C xu ng giúp Robot đi t B t i C. C t ơng tự Robot s đi t i đi m cu i mong mu n.

Một phần của tài liệu Giải thuật tìm đường đi ngắn nhất ứng dụng GPS trong giao thông (Trang 37)

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

(67 trang)