:Số giao điểm của mt tia kể từ điểm bên ngoài đa giác

Một phần của tài liệu Nghiên cứu hệ thống cảnh báo tốc độ an toàn chủ động ứng dụng GPS trên xe máy (Trang 40)

Ph ơng pháp xác định điểm trong đa giác đ c chọn để ứng d ng vào đề tài xác định vị trí xe có nằm trong vùng giới h n c nh báo. u điểm của ph ơng pháp là đơn gi n phù h p với hình d ng con đ ng Việt Nam và dễ dàng áp d ng để lập trình với phần mềm LaBVIEW.

2.6. Phầnăm măLabVIEW

2.6.1. LabVIEW và ng d ng trong th c t

LabVIEW là m t phần mềm (b n chất là m t môi tr ng để lập trình cho ngôn ngôn ngữ lâp trình đồ họa) sử d ng rất r ng rưi trong khoa học – kỹ thuật – giáo d c nhằm nhanh chóng và dễ dàng t o ra các ứng d ng giao tiếp máy tính, đo l ng, mô phỏng hệ thống, kết nối thiết bị ngo i vi với máy tính theo th i gian thực. Lập trình đồ họa hoàn toàn giống nh các ngôn ngữ khác, điểm khác biệt đây là giao diện, cách thức t o ra ch ơng trình không còn là những dòng lệnh nh trong Pascal, C mà là những biểu t ng (icon), dây nối (wire), LabVIEW có tính chất đặc biệt sau:

 LabVIEW có thể học nhanh nhất, và cho ng i ch a có kiến thức lập trình.

 Sử d ng nhiều nhất trong việc giao tiếp máy tính và thu thập dữ liệu.

 LabVIEW có thể đo l ng đ c từ bất kỳ c m biến (tín hiệu d ng điện áp, dòng điện, xung), LabVIEW có thể điều khiển đ c bất kỳ cơ cấu chấp hành (đ ng cơ DC/AC, đ ng cơ xăng, bơm thủy lực, lò nhiệt, pistion thủy khí,...), LabVIEW truyền qua bất kỳ chuẩn giao tiếp máy tính-máy tính, máy tính - thiết bị nh chuẩn RS232, chẩn USB, chuẩn PCI, PXI, Wifi, Bluetooth, TCP/IP,...

 LabVIEW h tr đắc lực cho các kỹ s ngành Cơ khí, Cơ điện tử, Robotics, Ôtô, Viễn Thông và Điện tử trong việc: Tính toán và thiết kế s n phẩm, s n xuất mẫu (prototyping), mô phỏng và đánh giá chất l ng s n phẩm,...

 Với lịch sử hơn 20 năm, Ngôn ngữ lập trình đồ họa NI LabVIEW đư phát triển và hoàn thiệnđể tr thành m t công c h tr đắc lực cho cáckỹ s , và nhà nghiên cứu trong quá trình kiểm tra, đo l ng, và điều khiển. Với các tính năng đặc biệt nh gi m giá thành, rút ngắn th i gian s n xuất, phân tích dữ liệuthu thập từ thí nghiệm hiệu qu , điều khiển thiết bị trong công nghiệp tối u, NI LabVIEW đư luôn tr thành lựa chọn hàng đầu trong kỹ thuật và khoahọc hầu hết các châu l c.

2.6.2.L pătrìnhăv iăLabVIEW

Ch ơng trình cơ b n của LabVIEW là m t VI, hay là Virtual Instruments (thiết bị o). Để t o 1 ch ơng trình mới, ta ấn vào nút Blank VI. LabVIEW sẽ hiện ra 2 cửa sổ: Front Panel và Block Diagram là 2 thành phần cơ b n của LabVIEW.

Hình 2.5:Mã nguồn ch ơng trình để viết LabVIEW

Front Panel là giao diện của ch ơng trình với ng i dùng. T i đây l u trữ : - Các biến điều khiển nh : nút bấm (Button), thanh g t (Slide), núm vặn (Knob), TextBox để nhậpchu i ký tự… đ c gọi chung là các biến điều khiển, nơi ng i dùng có thể điều chỉnh giá trị của các biến đó bằng t ơng tác trực tiếp với ch ơng trình.

- Các biến hiển thị: đồng hồ (Meter), đồ thị (Chart), biểu đồ (Graph), đèn báo (LED), hình nh (Picture) hay hình nh 3D (3D picture)…gọi chung là các biến hiển thị, nơi ng i dùng có thể quan sát thay đổi của các biến m t cách trực quan.

- Các biến điều khiển và các biến hiển thị không có sự phân biệt rõ ràng trong LabVIEW, ngoài h ớng t ơng tác với ng i dùng và với máy tính. Trong LabVIEW coi 2 lo i biến này đều là các biến, có thể đ c lập trình để thay đổi trực tiếp.

- M i khi t o 1 biến điều khiển hoặc hiển thị trong Front Panel (FP), m t biểu t ng (Icon) sẽ xuất hiện t ơng ứng trong Block Diagram (BD). Kích đúp vào biến trên FP, Icon t ơng ứng trong BD sẽ đ c tự đ ng biểu hiện.

- Mǜi tên đ c đánh dấu là nút RUN, dùng để bắt đầu ch y ch ơng trình. Khi nút RUN đó bị gưy, tức là ch ơng trình đang có l i (Error), không ch y đ c.

Block Diagram: Là nơi ch ơng trình LabVIEW đ c lập trình, chứa n i dung (code) ch ơng trình.

- T ơng tự trong Simulink của Matlab, việc lập trình trong Block Diagram bằng cách nối các biến với nhau và với các khối biểu diễn phép toán giống nh đi dây trong thiết bị điện.

- Trên Block Diagram cǜng biểu diễn các vòng lặp, cấu trúc lập trình, và các thuật toán.

- Khi ch ơng trình VI ch y Block Diagram không hiển thị giao diện t ơng tác với ng i dùng.

- Có thể ch y chế đ Debug trên Block Diagram bằng cách ấn vào biểu t ng bóng đèn trong Highlight Execution. Các dòng dữ liệu sẽ đ c biểu diễn ch y tuần tự để biểu thị sự thay đổi chi tiết các biến trong ch ơng trình

- Để t o ra m t ch ơng trình sáng sủa, gọn gàng nhằm đơn gi n hóa việc kiểm tra, kiểm soát ch ơng trình, m t ch ơng trình LabVIEW thông th ng đ c lập trình theo trình tự, từ trên xuống d ới, trái sang ph i.

CH NGă3

THI T K H TH NG AN TOÀN CH Đ NG

CHO XE MÁY

3.1. H ăth ngăc nhăbáoăt căđ ăanătoƠnă ngăd ngăh ăth ngăđ nhăv ăGPS 3.1.1. Ch cănĕng

C nh báo tốc đ của ph ơng tiện khi đi vào vùng quy định tốc đ giới h n. Để đ m b o cho ng i điều khiển ph ơng tiện chủ đ ng về tốc đ qua đó đ m b o an toàn cho b n thân cǜng nh những ng i khác cùng tham gia giao thông.

3.1.2. Cấu trúc và nguyên lý ho tăđ ng

Hệ thống c nh báo tốc đ an toàn chủ đ ng trên xe sử d ng công nghệ GPS có cấu trúc gồm: Khối máy client thu nhậntín hiệu GPS,hiển thị c nh báo và khối máy tr m điều khiển ghi nhận thông tin.

Hình 3.1:Cấu trúc mô hình hệ thống c nh báo tốc đ an toàn chủ đ ng ứng d ng GPS

- Ho t đ ng của hệ thống dựa trên cơ s truyền nhận thông tin hai chiều và đồng b giữa các thành phần trong hệ thống

M ngă 3G

KH IăMỄYăSERVER KH IăMỄYăCLIENT

Máy tính,

LabVIEW LabVIEW Máy tính,

Giao di nă c nhăbáo Còi,ăđèn USB 3G B ă3G Card NI 6008 B ăthuătínă hi uăGPS

- Khi xe đi vào vùng giới h n tốc đ , thiết bị GPS sẽ gửi tín hiệu đến vệ tinh và nhận tín hiệu ph n hồi về vị trí hiện t i của xe. Vị trí này sẽ đ c so với vị trí vùng giới h n tốc đ trên b n đồ đ c l u trong b nhớ của khối điều khiển. Lúc này khối điều khiển sẽ nhận biết đ c tốc đ của vùng quy định sau đó so sánh tốc đ của xe để so sánh đ a ra tín hiệu c nh báo bằng hình nh cǜng nh âm thanh.

- Hệ thống này đồng th i cung cấp thông tin, vị trí tốc đ hiện t i của xe cho máy server để giám xác và nhận dữ liệu b n đồ vị trí tuyến đ ng giới h n thông qua m ng 3G.

Hình 3.2:Sơ đồ nguyên lý hệ thống c nh báo tốc đ an toàn

OK OK NO NO CLIENT SERVER So sánh vị trí xe và vị trí vùng giới h n tốc đ So sánh tốc đ xe và tốc đ giới h n Tín hiệu GPS Gửi lên máy

server thông qua TCP/IP Gửi vị trí, tốc đ xe Gửi về máy client thông qua TCP/IP Tọa đ vị trí vùng giới h n tốc đ Hiển thị vị trí xe, tốc đ , tốc đ giới h n

Card giao tiếp LabVIEW

Hiển thị âm thanh, hình nh

3.1.3. Phần c ng h th ng

- Thiết bị định vị Microsoft Pheros GPS-360:

Hình 3.4:Thiết bị định vị Microsoft Pharos GPS-360

Pharos GPS-360 tích h p chip định vị SIRFII, là m t trong những chip định vị phổ biến nhất cho các thiết bị nh c m biến, điện tho i thông minh, thiết bị xây dựng b n đồ…B thu giao tiếp với máy tính thông qua cổng USB với chuẩn RS232, t ơng thích với phần mềm LabVIEW, thu đ c 12 kênh vệ tinh thu đ c các chuẩn mư dữ liệu NMEA. Tốc đ truyền dẫnlà 4800 tín hiệu trên 1 giây.

- Máy Client : Cấu hình gồm

chip intel ®Core i5-2430M CPU@2.40 GHz, Ram 4GB -Máy Server : Cấu hình gồm

chip intel ®Core i5-3370U CPU@1.80 GHz, Ram 4GB - Màn hình hiển thị, USB Dcom 3G.

- Card giao tiếp NI 6008 thông số nh sau:

B ngă3.1: Thông số card giao tiếp NI 6008 Thôngăs ăchung Thôngăs ăchung

Chuẩn kết nối USB

H tr hệ điều hành Windows, Linux, Mac OS, Pocket PC

Kiểu đo Điện áp, xung

Họ DAQ B Series Đ cătínăhi uăAnalog Số kênh 8 SE/4 DI Tốc đ lấy mẫu 48 kS/s Đ phân gi i 14 bits Trích mẫu đồng th i Không

Ng ỡng điện áp giới h n lớn nhất -10 tới 10 V Đ chính xác 138 mV Ng ỡng điện áp nhỏ nhất -1..1 V Đ chính xác 37.5 mV Số giới h n 8 B nhớ tích h p On-Board 512 B

Xuấttínăhi u Analog

Số kênh 2 Tốc đ cập nhật 150 S/s Đ phân gi i 12 bits Ng ỡng điện áp giới h n lớn nhất 0..5 V Đ chính xác 7 mV Ng ỡng điện áp giới h n nhỏ nhất 0..5 V Đ chính xác 7 mV

Tín hiệu điều khiển dòng điện (Kênh/Tổng) 5 mA/10 mA

Cácăchơnăxuất/nh pătínăhi uăs

Số kênh 12 DIO

Timing Phần mềm

Logic Levels TTL

Ng ỡng điện áp giới vào h n lớn nhất 0..5 V Ng ỡng điện áp ra giới h n lớn nhất 0..5 V

B lọc vào lập trình đ c No

Dòng điện (Kênh/Tổng) 8.5 mA/102 mA

B ăđ măvƠăb ăhẹn (đ nh)ăgi

Số b đếm/hẹn gi 1 Đ phân gi i 32 bits Tần số nguồn lớn nhất 5 MHz Đ r ng xung vào nhỏ nhất 100 ns Mức logic TTL Ng ỡng cực đ i 0..5 V Đ ổn định 50 ppm

Cho phép thực hiện nhớ t m (đêm) Yes

Tác đ ng (Triggering) Digital

Kíchăth c card NI 6008

Dài 8.51 cm

R ng 8.18 cm

Các thiết bị trên đ c gắn lên xe mô hình để thực nghiệm nh hình sau:

Hình 3.5:Mô hình thiết bị gắn trên xe

3.1.4. L p trình h th ng

Lập trình phần mềm điều khiển trên máy client: máy client gắn trên xe có nhiệm v thu thập và xử lý tín hiệu vệ tinh GPS. Tín hiệu GPS đ c thu từ b thu Microsoft Pharos GPS-360kết nối với laptop client qua cổng COM theo chuẩn giao tiếp RS232 với tốc đ truyền thiết bị là 4800 tín hiệu trên 1 giây. Từ d ng mư định vị sang các thông số cần thiết nh kinh đ , vĩ đ , vận tốc.

Chức năng các mư code lập trình đ c thể hiện nh các hình d ới đây:

Hình 3.6:Đo n code lập trình thu thập và xử lý tín hiệu GPS

Màn hình hiển thị

Máy tính client

Đèn c nh báo

Đo n code trên hình 3.6 có chức năng táchtín hiệu GPS cần thiết chủ yếu đo n mư chính quan trọng là mư GPRMC. Từ đó khối xử lí trên máy client nhận đ c thông số vận tốc, kinh đ , vĩ đ .Dữ liệu GPS đ c thu thập bằng hệ thống định vị GPS, thông qua thiết lập VISA configure Serial Port và dữ liệu đ c chuyển tới VISA Read có chức năng đọc dữ liệu từ port kết nối VISA.Sử d ng công c Match Pattern trong phần mềm LabVIEW để xử lý tách các giá trị từ b n tin của mư tín hiệu GPRMC. Sau đó dữ liệu đ c chuyển thành d ng m ng thông qua công c Spreadsheet String To Array và chuyển thành d ng bó thông qua công c Array To Cluster. Dựa vào thứ tự của kinh đ và vĩ đ , vận tốc trong b n tin của GPS, ta có thể tách chính xác các giá trị của kinh đ và vĩ đ , vận tốc.

Hình 3.7: Đo n Code lập trình nhận d ng tuyến đ ng và hiển thị c nh báo Chức năng chính của đo n Code trên hình 3.7 là dùng thuật toán so sánh vị trí xe với vị trí tuyến đ ng có vận tốc giới h n, các tuyến đ ng này gồm các tọa đ đ c xác định sẵn và đ c cập nhật từ máy chủ server. Vị trí của xe nếu đ c xác định nằm trong vùng giới h n tốc đ nào thì sẽ hiển thị t ơng ứng với vùng tốc đ đó. Nếu v t quá tốc đ thì sẽ c nh báo trên màn hình hiển thị và kèm theo âm thanh, hình nh.Các giá trị kinh đ , vĩ đ của xe sẽ đ c so sánh với giá trị trong m ng arraygồm tọa đ con đ ng đ c tham chiếu từ b n đồ số google map thông

qua công c Point In Polygon. Sau khi xác định tọa đ của xe so với miền giá trị của m ng dữ liệu tuyến đ ng thì lúc này giá trị xuất ra sẽ đ c xử lý qua 2 công c Number To Hexadecimal string và Hexadecimal string to number. Kết qu ra đ c có d ng số tr ng thái 0,1,2 t ơng ứng với giá trị bên trong, biên, bên ngoài đa giác.Với việc chỉ nhận giá trị biên và bên trong ta so sánh giá trị đó với 2 nếu nhỏ hơn thì đúng và ta chọn giá trị vận tốc giới h n t ơng ứng thông quacông c Select. Từ đó xuất giá trị tốc đ giới h n lên giao diện c nh báo.

Hình 3.8:Đo n codelập trình hiển thị c nh báo với hình nh và âm thanh Chức năng của đo n code c nh báo trên hình 3.8 là khi nhận đ c tín hiệu quá tốc đ từ biến n i b sẽ t o 1 m ng bằng công c Build Array gồm các giá trị quá tốc d ng boolean. Các gía trị này đ c viết d ới d ng Property node sẽ đ c truyền vào công c DAQ Assistant của card NI 6008 để điều khiển c nh báo bằng đèn và âm thanh t ơng ứng m i lần v t tốc.

Hình 3.9:Đo n code lập trình này l u trữ thông tin vận tốc hiện t i, tọa đ của xe Đo n code trong hình 3.9 có chức năng l u trữ và truyền các thông số về vị trí và tốc đ v t quá của xe về máy chủ server để biết đ c tình tr ng hiện t i của

xe. Thông qua công c Write To Measurement Files sau đó ghi ra b ng bằng công c Build Table.

Hình 3.10:Đo n codelập trình truyền nhận dữ liệu với máy server qua giao thức TCP/IP

Đo n code lập trình trên hình 3.10 có chức năng là truyền dữ liệu giữa máy client và máy server đ c thực hiện thông qua giao thức TCP/IP với hàm lập trình truyền dẫn nh hình 3.10. Từ hình này gồm có 2 hàm là hàm truyền và hàm nhận dữ liệu. Việc nhận dữ liệu sẽ thông qua công c TCP Listen và dữ liệu kinh đ , vĩ đ , vận tốc xe đ c đ a vào 1 m ng bằng công c Build Array đ c t o ra nh công c Type cast. Sau đó giá trị đ c đ a đến công c TCP Write truyền đến máy server. Hàm truyền dẫn ngắt khi kết nối b i công c TCP Close Connection.

Thiết lập m t kết nối TCP/IP với máy server thông qua công c TCP Open Conection, trong đó địa chỉ IP là của máy tính gắn trên xe khi kết nối vào m ng port 2055 là port đ c thiết lập gửi t i máy tính trên xe. Sau khi m m t kết nối TCP, dữ liệu gửi về sẽ đ c đọc và xuất ra m t chu i data string thông qua công c TCP Read.Từ chu i dữ liệu này sẽ đ c chuyển thành d ng m ng thông qua công c Type Cast và sau đó đ c tách ra từng dữ liệu riêng lẻ gồm kinh đ và vĩ đ bằng công c Index Array.

Giao diện hiển thị đ c đơn gi n hóa nhằm m c đích hiển thị trực quan thông tin c nh báo, tránh gây mất tập trung cho ng i điều khiển ph ơng tiện khi tham gia giao thông.

Hình 3.11: Giao diện hiển thị c nh báo sau khi lập trình

1.Đúng tốc đ quy định, 2. V t quá tốc đ quy định.

- Lập trình phần mềm điều khiển trên máy server: máy server đ c lập trình nhúng b n đồ google để hiển thị vị trí di chuyển của xe, cùng với đó là thông số vận tốc hiện t i, số lần v t quá tốc đ giới h n ph c v cho việc kiểm tra cǜng nh ph c v cho công tác qu n lý giao thông.Đồng th i máy chủ còn có chức năng l u trữ thông số các vùng giới h n tốc đ để cập nhật cho máy client qua m ng 3G.

Hình 3.12:Đo n code lập trình nhúng b n đồ theo dõi vị trí xe trên máy serverĐể lập trình hiển thị ứng d ng google map trên phần mềm LabVIEW cần t o

Một phần của tài liệu Nghiên cứu hệ thống cảnh báo tốc độ an toàn chủ động ứng dụng GPS trên xe máy (Trang 40)