vizualizace dat z gps modulu - vysoké učení technické...

18
Vizualizace dat z GPS modulu Projekt do BROB Tomáš Vít (134659), Michal Zátopek (136598) 9.5.2012

Upload: others

Post on 11-Feb-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

Vizualizace dat z GPS modulu Projekt do BROB

Tomáš Vít (134659), Michal Zátopek (136598) 9.5.2012

Page 2: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

2

Obsah 1. Venus 634FLP ..............................................................................................................................3

2. LS23060 V1.0 ..............................................................................................................................4

3. Převodník RS232 na USB .............................................................................................................5

4. Rozbor dat z GPS modulu ............................................................................................................7

4.1. GGA - Global Positioning System Fix Data ................................................................................8

4.2. GLL – Latitude/Longitude ........................................................................................................8

4.3. GSA – GNSS DOP and Active Satellites .....................................................................................9

4.4. GSV – GNSS Satellites in View ..................................................................................................9

4.5. RMC – Recommended Minimum Specific GNSS Data ............................................................. 10

4.6. VTG – Course Over Ground and Ground Speed ...................................................................... 10

5. GTK knihovna ............................................................................................................................ 11

6. Grafický návrh aplikace ............................................................................................................. 11

7. Grafický výstup v podobě mapy ................................................................................................. 14

8. Čtení dat z GPS modulu ............................................................................................................. 16

9. Struktura aplikace ..................................................................................................................... 17

10. Závěr a zhodnocení obou modulů .......................................................................................... 18

11. Zdroje.................................................................................................................................... 18

Page 3: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

1. Venus 634FLP Tento modul vyrábí firma SkyTraq. Modul je zpracován na plošném spoji s vyvedenými konektory na anténu pomocí SMA konektoru a s napájecími a datovými konektory. Modul je schopen komunikovat s okolím pomocí sériového portu, UART rozhraní a SPI rozhraní. Napájen je 3.3V z převodníku uvedeného níže.

Funkce:

51 kanálů pro získávání a 14 kanálů pro sledování Max. rychlost aktualizace 10Hz (defaultně 1Hz) Proudový odběr 28mA Citlivost: -161dBm Přesnost: <2.5m Horký start: 1sekunda Studený strat: 29sekund Podporuje aktivní nebo pasivní antény

Obr. 1. GPS modul Venus 632FLP

Page 4: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

4

2. LS23060 V1.0 Tento GPS modul obsahuje čip MT3329 od společnosti MediaTek. Na plošném spoji je umístěn čip, anténa, napájecí a datové piny. Modul je napájen 3.3V z převodníku. Komunikace probíhá po sériovém rozhraní. Funkce:

66ti kanálový modul Frekvence aktualizace 5Hz (max. 10Hz) Proudový odběr 41mA Podpora SBAS (WAAS, EGNOS, MSAS) Vestavěná miniaturní baterie pro zachování systémových dat Led indikace při určení pozice

Obr. 2. GSP modul LS23060 v1.0

Page 5: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

5

3. Převodník RS232 na USB

Jelikož jsou oba moduly schopny komunikovat přes sériové rozhraní, vybrali jsme si ho jako vhodný prostředek pro komunikaci s počítačem. Jelikož se v dnešní době na notebooky neumisťuje port pro toto rozhraní, bylo zapotřebí zhotovit převodník RS232 na USB. Převodník je realizován pomocí integrovaného obvodu FT232RL od společnosti FTDI chip. Mezi jeho výhody patří zabudovaný stabilizátor, jenž dělá z napájecího napětí 5V => 3.3V, kterými se dají napájet oba GPS moduly. Převodník okolo sebe nepotřebuje mnoho pasivních součástek. Navržen je v programu Eagle.

Obr. 3. Schéma převodníku RS232-USB s FT232RL

Page 6: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

6

Obr. 4. Návrh plošného spoje v programu Eagle

Obr. 5. 3D pohled na převodník v programu Sketchup

Page 7: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

4. Rozbor dat z GPS modulu Po úpravě dostáváme ze sériového portu data ve formě řetězců, které mají určitý řád. Například: $GPGLL,2447.0944,N,12100.5213,E,112609.932,A,A*57 Počátek řetězce je vždy označen znakem $ a následuje pěti-písmenné označení druhu informace řádku, podle kterého lze následující informace rozšifrovat. Řádek končí vždy hvězdičkou a za ní následuje kontrolní součet (tzv. checksum)

Obr. 6. Výpis GPS dat ze sériového portu pomocí programu Putty

Page 8: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

4.1. GGA - Global Positioning System Fix Data Příklad: $GPGGA,111636.932,2447.0949,N,12100.5223,E,1,11,0.8,118.2,M,,,,0000*02 Údaj: Z příkladu Dodatek Čas 111636.932 Je ve formátu hhmmss.sss Zeměpisná šířka 2447.0949,N Ve formátu ccdd.dddd,polokoule Zeměpisná délka 12100.5223,E Ve formátu ccdd.dddd,polokoule Indikátor kvality 1 1-valid position fix, SPS mode Počet používáných satelitů 11 Od 0 do 12 HDOP 0.8 Nadmořská výška 118.2 DGPS Station ID 0000 Checksum 02 Kontrolní součet

4.2. GLL – Latitude/Longitude Příklad: $GPGLL,2447.0944,N,12100.5213,E,112609.932,A,A*57

Údaj: Z příkladu Dodatek Zeměpisná šířka 2447.0949,N Ve formátu ccdd.dddd,polokoule Zeměpisná délka 12100.5213,E Ve formátu ccdd.dddd,polokoule Čas 112609.932 Je ve formátu hhmmss.sss Status A A-data jsou platná, V-data jsou neplatná Indikátor modu

A

N - Data nejsou platné A - automatický mód D - diferenciální mód E - dead reckoning mód M - Manuální mód

Checksum 57 Kontrolní součet

Page 9: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

4.3. GSA – GNSS DOP and Active Satellites

Příklad: $GPGSA,A,3,05,12,21,22,30,09,18,06,14,01,31,,1.2,0.8,0.9*36

Údaj: Z příkladu Dodatek Mode A A-automatický

M-manuální Mode 3 Druh souřadnic:

1- není k dispozici 2- ve 2D 3- ve 3D

Použité satelity 05,12,21,22,30, 09,18,06,14,01,31,,

ID použitých satelitů (až 12)

PDOP 1.2 Polohová odchylka od přesnosti (00.0-99.9) HDOP 0.8 Horizontální odchylka od přesnosti (00.0-99.9) VDOP 0.9 Vertikální odchylka od přesnosti (00.0-99.9) Checksum 36 Kontrolní součet

4.4. GSV – GNSS Satellites in View

Příklad: $GPGSV,3,2,12,30,65,118,45,09,12,047,37,18,62,157,47,06,08,144,45*7C

Údaj: Z příkladu Dodatek Počet zpráv 3 Počet zpráv, které byly zaslány (1-3) Pořadové číslo 2 Pořadové číslo aktuální zprávy Viditelné satelity 12 Počet viditelných sateltiů ID satelitu 30 Výška satelitu 65 Výška satelitu ve stupních (0-90) Azimut satelitu 118 Azimut satelitu ve stupních (0-359) SNR 45 Odstup signálu od šumu (0-99) v dB Checksum 7C Kontrolní součet

Page 10: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

4.5. RMC – Recommended Minimum Specific GNSS Data

Příklad: $GPRMC,111636.932,A,2447.0949,N,12100.5223,E,000.0,000.0,030407,,,A*61 Údaj: Z příkladu Dodatek Čas 111636.932 Je ve formátu hhmmss.sss Status A A-data jsou platná

V-data jsou neplatná Zeměpisná šířka 2447.0949,N Ve formátu ccdd.dddd,polokoule Zeměpisná délka 12100.5223,E Ve formátu ccdd.dddd,polokoule Rychlost na zemi 000.0 Rychlost v uzlech (000.0-999.9) Kurs na zemi 000.0 Kurs ve stupních (000.0 – 359.9) Datum 030407 Ve formátu ddmmrr Indikátor modu

A

N - Data nejsou platné A - automatický mód D - diferenciální mód E - dead reckoning mód M - Manuální mód S – simulační mód

Checksum 61 Kontrolní součet

4.6. VTG – Course Over Ground and Ground Speed

Příklad: $GPVTG, 000.0,T,,M,000.0,N,0000.0,K,A*3D

Údaj: Z příkladu Dodatek Kurs 000.0 Kurs ve stupních (000.0 – 359.9) Rychlost 000.0 Rychlost v uzlech (000.0-999.9) Rychlost 0000.0 Rychlost v km/h (0000.0-1800.0) Indikátor modu

A

N - Data nejsou platné A - automatický mód D - diferenciální mód E - dead reckoning mód M - Manuální mód S – simulační mód

Checksum 3D Kontrolní součet

Page 11: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

11

5. GTK knihovna Gtk je grafická knihovna, která původně vznikla pro grafický editor GIMP. Knihovna se však rozšířila a na ní postaveno např. grafické rozhraní GNOME. Knihovna je šířena pod open source licencí a je možno ji zkompilovat jak na operačních systémech Windows, tak na OS Linux. Knihovna podporuje mnoho programovacích jazyků. Námi vybraný jazyk je C++.

Obr. 7. Logo grafické knihovny GTK

6. Grafický návrh aplikace Gtk umožňuje pomocí nástroje Glade navrhnout vzhled aplikace pomocí grafického rozhraní a dále pomocí exportu do .glade nebo .xml souboru spojit návrh s programovacím jazykem. Program umožňuje rozmístění widgetů po okně. Lze nastavovat parametry jednotlivých widgetů. Dále je zde možnost přiřazovat jednotlivým událostem volané funkce.

Obr. 8. Program Glade

Page 12: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

12

Námi vytvořená aplikace obsahuje konzoli pro výpis událostí. Dále jsou zde 3 záložky, ve kterých jsou rozdělené textové pole s údaji získanými z gps modulu. V menu aplikace lze nalézt nastavení portu a rychlosti komunikace, tlačítko na odpojení od modulu, výběr typu zobrazené mapy a její velikosti zoomu a okno s popisem aplikace.

Obr. 9. Výpis základních údajů z GPS modulu

Page 13: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

13

Obr. 10. Výpis satelitů

Obr. 11. Okno s nastavením portu a rychlostí komunikace

Page 14: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

14

Obr. 12. Zobrazená mapa s nastavením

7. Grafický výstup v podobě mapy Jelikož jsme měli graficky zpracovat data s GPSky, bylo zapotřebí obstarat mapu. Námi zvolený zdroj je maps.google.com, jenž nabízí static maps API. Díky tomuto rozhraní je možno přes klasický http dotaz získat obrázek mapy ve formátu jpg se zadanými parametry, jako je poloha středu mapy, velikost zoomu, druh mapy a umístění značek. Příklad http dotazu:

http://maps.googleapis.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&maptype=satellite&sensor=true_or_false

Page 15: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

15

Obr. 13. Příklad získané mapy z google maps

Jelikož samostatné C++ neumí pracovat se síťovými protokoly, bylo zapotřebí použít knihovnu CURL. Pomocí této knihovny se odešle požadavek na mapu s nastavenými parametry serveru, který nám vrátí obrázek. Tento obrázek po úpravě můžeme zobrazit v našem okně aplikace.

Page 16: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

16

Obr. 14. Mapa umístěná v okně aplikace

8. Čtení dat z GPS modulu Čtení dat ze sériového portu provádíme pomocí Windows API. To nám umožní otevřít požadovaný COM port s požadovanou rychlostí komunikace Přiklad použití Windows API: HANDLE hSerial;

hSerial = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE

,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); //nastavení portu, se kterým bude probíhat komunikace

DCB dcbSerialParams = {0};

dcbSerial.DCBlength=sizeof(dcbSerialParams);

dcbSerialParams.BaudRate=CBR_19200; //nastavení rychlosti komunikace a uspořádání dcbSerialParams.ByteSize=8; //paketů

dcbSerialParams.StopBits=ONESTOPBIT;

dcbSerialParams.Parity=NOPARITY;

Page 17: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

17

Samotné čtení probíhá v nekonečném cyklu, kdy čteme znak po znaku data z GPS modulu a ukládáme je stringstreamu. Příklad čtení znaku ze sériového portu: if(!ReadFile(hSerial, szBuff, n, &dwBytesRead, NULL)){}

Po přijetí celého slova z modulu probíhá parserování na jednotlivé údaje a následné ukládání do struktury . Příklad rozkladu přijatých dat do struktury if (!strcmp (IdentifikaceSlova, "GPVTG")){

slovo >> aStrukturaProgramu->Data.sGPVTG.sCourse;

slovo.ignore(1,',');

slovo.ignore(1,'T');

slovo.ignore(1,',');

slovo.ignore(1,',');

slovo.ignore(1,'M');

slovo.ignore(1,',');

slovo >> aStrukturaProgramu->Data.sGPVTG.sSpeedKnot;

slovo.ignore(1,',');

slovo.ignore(1,'N');

slovo.ignore(1,',');

slovo >> aStrukturaProgramu->Data.sGPVTG.sSpeedKmh;

slovo.ignore(1,',');

slovo.ignore(1,'K');

slovo.ignore(1,',');

slovo >> aStrukturaProgramu->Data.sGPVTG.sMode;

}

9. Struktura aplikace Celý program běží ve 3ch vláknech. V prvním vlákně je GTK main, jenž obstarává události vyvolané např. kliknutím na widget. GTK main také volá námi vytvořenou funkci fPrekresli, která zapisuje a překresluje všechny textové prvky. Obnovovací doba je zde zvolena půl sekundy. Dále je zde vlákno s nekonečným cyklem, který se stará o čtení dat ze sériového portu a následného zpracování a uložení do struktur. Třetím vláknem je volaná funkce VlaknoMapa, která jednou za 5 sekund stáhne mapu s aktuální pozicí a zobrazí ji do okna aplikace. Program dále obsahuje dvě velké struktury. V jedné je vytvořená struktura widgetů jednotlivých oken. V druhé je rozdělení jednotlivých gps slov s údaji.

Page 18: Vizualizace dat z GPS modulu - Vysoké učení technické ...robotika/2012_BROB/2012_B06_vizualizace_GPS.pdf · Modul je zpracován na plošném spoji s vyvedenými konektory na anténu

18

10. Závěr a zhodnocení obou modulů Při testování GPS modulů se nám z hlediska rychlosti startu osvědčil modul LS23060. Podle datasheetů má i tento modul menší proudový odběr, což se hodí v aplikacích napájených z baterie. Z hlediska přenosu dat nabízí modul Venus634flp 3 datové rozhraní a to rs232, UART a SPI, kdežto LS23060 disponuje pouze sériovým rozhraním. Při defaultním puštění modulů se liší jejich rychlost obnovy, která se dá ovšem u obou modulů nastavovat v rozmezí 1-10Hz.

11. Zdroje [1] https://developers.google.com/maps/documentation/staticmaps/?hl=cs-CZ [2] http://cs.wikipedia.org/wiki/GTK%2B [3] http://curl.haxx.se/libcurl/cplusplus/ [4] http://www.gtk.org/ [5] http://www.google.cz/ [6] Datasheety: Venus 634FLP, LS23060 V1.0