Ćwiczenie 3 Komunikacja szeregowa z odbiornikiem GPS w technologii.net Compact Framework



Podobne dokumenty
Wprowadzenie do środowiska Visual Studio cz. 2 (ćwiczenie wykonywane zdalnie) Wykorzystanie Wirtualnego portu COM

STWORZENIE MOBILNEJ APLIKACJI,

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Zaawansowane aplikacje internetowe - laboratorium

Program emulatora GPS pobieramy ze strony z działu Pobieralnia.

Wykorzystanie nowoczesnych technologii w zarządzaniu drogami wojewódzkimi na przykładzie systemu zarządzania opartego na technologii GPS-GPRS.

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

przygtowała: Anna Stępniak, II rok DU Geoinformacji

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

OPIS PROGRAMU OBSŁUGI STEROWNIKÓW INTECONT >> WAGMASTER << >> INTECONT <<

POLITECHNIKA LUBELSKA

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

kpt. Mirosław Matusik Brzeźnica, dnia roku

Instrukcja do oprogramowania ENAP DEC-1

TM PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T

Podstawowe pojęcia związane z pomiarami satelitarnymi w systemie ASG-EUPOS

NS-2. Krzysztof Rusek. 26 kwietnia 2010

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Opis konfiguracji ST do współpracy z kolektorem DENSO BHT 8000

Site Installer v2.4.xx

Programowanie obiektowe

AKADEMIA MORSKA W SZCZECINIE

Instrukcja obsługi programu M116_Manager

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Mierniczy Instrukcja użytkownika (Wersja instrukcji 1.01)

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

dokument DOK wersja 1.0

Programowanie urządzeń mobilnych. projekt 6 ( )

Instrukcja uruchomienia i obsługi Programu Użytkownika Kas Posnet PUK

System obsługi wag suwnicowych

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

System informacji przestrzennej w Komendzie Miejskiej w Gdańsku. Rysunek 1. Centrum monitoringu w Komendzie Miejskiej Policji w Gdańsku.

Aplikacje w Javie- wykład 11 Wątki-podstawy

Ćwiczenie 1. Przygotowanie środowiska JAVA

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Laboratorium Podstaw Robotyki I Ćwiczenie Khepera dwukołowy robot mobilny

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

dr inż. Tomasz Krzeszowski

Laboratorium 1 - Programowanie proceduralne i obiektowe

Komunikacja między sterownikami przez protokół ADS

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Dodawanie operacji dodatkowych w WAPRO Mag.

Wprowadzenie do projektu QualitySpy

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

OPIS PROGRAMU OBSŁUGI STEROWNIKA DISOCONT >> DISOCONT MASTER RAPORTY <<

INSTRUKCJA UŻYTKOWNIKA MPCC

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

ASMAX ISDN-TA 128 internal Instalacja adaptera w środowisku Windows 98 / ME

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Systemy mobilne. Laboratorium. Dostęp do danych GPS w Windows Phone 7

AgriBus-GMini Poradnik użytkownika - RTK -

Instrukcja instalacji Przewód interfejsu USB

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Wiadomości. ZPKSoft Doradca. Wstęp.

Programator procesorów rodziny AVR AVR-T910

Globalny Nawigacyjny System Satelitarny GLONASS. dr inż. Paweł Zalewski

Systemy satelitarne wykorzystywane w nawigacji

Laboratorium Komputerowe Systemy Pomiarowe

Formy dialogowe w środowisku Gnome

SYSTEMY CZASU RZECZYWISTEGO (SCR)

1. Wymagania funkcjonalne dla modułu pozycjonowania patroli zainstalowany moduł musi posiadać następującą funkcjonalność:

INSTRUKCJA OBSŁUGI PROGRAMU DO ODCZYTU PAMIĘCI FISKALNEJ DATECS OPF

Programowanie w języku C++ Grażyna Koba

1.1 Wprowadzenie. 1.2 Cechy produktu

Win Admin Monitor Instrukcja Obsługi

Połączenia poprzez Modemy Wirtualne.

Komunikator internetowy w C#

Rysunek 1: Okno z lista

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Instrukcja laboratoryjna nr.4

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

PROGRAM DO ARCHIWIZACJI NOŚNIKÓW KOPII ELEKTRONICZNEJ

Integracja systemów sterowania i sterowanie rozproszone 5 R

Programowanie obiektowe

Sposoby zwiększania efektywności systemu Windows

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Instrukcja instalacji połączenia sterownika PL11-MUT24 ze stroną internetową.

FlowSoft02. Przeznaczenie programu

Instrukcja instalacji Przewód interfejsu USB

Temat pracy dyplomowej Promotor Dyplomant CENTRUM INŻYNIERII RUCHU MORSKIEGO. prof. dr hab. inż. kpt.ż.w. Stanisław Gucma.

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Rejestrator temperatury i wilgotności AX-DT100. Instrukcja obsługi

ZAPOZNANIE SIĘ Z TWORZENIEM

Instrukcja użytkownika ARSoft-WZ1

INSTRUKCJA UŻYTKOWNIKA PROGRAMU

INSTRUKCJA OBSŁUGI SUPLEMENT

Instrukcja obsługi programu PLOMP PLUS FM

Laboratorium programowania urządzeń mobilnych

ODCZYTON INSTRUKCJA OBSŁUGI PROGRAMU. wersja Zakład Elektronicznych Urządzeń Pomiarowych POZYTON Sp. z o.o Częstochowa, ul.

Transkrypt:

System GPS i jego zastosowania Laboratorium Ćwiczenie 3 Komunikacja szeregowa z odbiornikiem GPS w technologii.net Compact Framework

Wstęp W ramach ćwiczenia Student zapozna się z podstawami odczytu danych z portu szeregowego w urządzeniach przenośnych wyposażonych w system Windows Mobile w wersji 5.0 lub wyższej. Zadanie zostanie zrealizowane na przykładzie aplikacji odczytującej dane pochodzące z symulatora odbiornika GPS przekazującego dane w formacie NMEA 0183. Krótko o systemie GPS System GPS powstał w roku 1973 na zlecenie Departamentu Obrony USA. Miał on służyć wojsku do bardzo precyzyjnego ustalania pozycji w dowolnym miejscu na świecie niezależnie od warunków klimatycznych, geograficznych, oraz pory dnia i nocy. Początkowo nazywał się on DNSS (Defense Navigation Satellite System) - Obronny Nawigacyjny System Satelitarny i przeznaczony był dla lotnictwa i marynarki wojennej USA. Jego koncepcja została zatwierdzona w roku 1979 pod nazwa Navstar GPS (Navigational Satellite Time and Ranging, Global Positioning System) - Układ Nawigacji Satelitarnej Określania Czasu i Odległości Globalnego Systemu Pozycjonowania. System GPS opiera się na zespole 24 satelitów rozmieszczonych na orbicie okołoziemskiej, na wysokości ok. 20 162 km nad ziemią. Satelity te okrążają kule ziemska dwa razy w ciągu doby (okres obiegu Ziemi przez satelitę wynosi 11h 57m 27s) transmitując w sposób ciągły, w kierunku globu, sygnały radiowe o częstotliwościach 1227,60 MHz (częstotliwość wojskowa) oraz 1575,42 MHz (częstotliwość cywilna). W styczniu 1978 r. został umieszczony na orbicie pierwszy satelita systemu, a w lipcu 1995r. system uzyskał pełna sprawność operacyjna. Decyzja Kongresu USA, GPS został dopuszczony do zastosowań cywilnych, lecz przy ograniczonej dokładności do 40 metrów. Dokładność taka była wynikiem celowego wprowadzenia programu zakłócającego SA (Selective Availability) - system ograniczonego dostępu. Dnia 01-05- 2000r. decyzją rządu USA program ten został wyłączony. Obecnie system jest zarządzany przez połączone biuro Navstar (GPS JPO - Navstar GPS Joint Program Office), złożone z przedstawicieli sił powietrznych, marynarki, sił lądowych, piechoty morskiej, straży przybrzeżnej USA, kwatery głównej NATO i Australii. W odpowiedzi na amerykański GPS w Rosji powstał system GLONASS. Jego znikoma obecność na rynku tłumaczy brak odbiorników cywilnych. Występują one tylko jako wojskowe i okrętowe.

System GPS a urządzenia mobilne Obecna popularność systemu GPS wynika w dużej mierze z postępu technologicznego w dziedzinie tworzenia odbiorników GPS skutkującego między innymi w spadających kosztach produkcji. Obecnie, miniaturowe odbiorniki GPS montowane są w wielu rodzajach urządzeń przenośnych umożliwiając stały rozwój systemów informacyjnych korzystających z usług lokalizacji. Na rynku dostępne są także miniaturowe wersje odbiorników GPS, które można zamontować na dowolnym urządzeniu elektronicznym, które w połączeniu np. z modemem GSM umożliwiają zdalne monitorowanie pozycji geograficznej. Protokół NMEA 0183 Protokół NMEA został opracowany przez National Marine Electronics Association w celu standaryzacji przesyłania danych pomiędzy urządzeniami elektronicznymi stosowanymi do monitoringu środowiska w warunkach morskich. Celem opracowanego standardu było umożliwienie jednolitej komunikacji pomiędzy szeregiem urządzeń elektronicznych pracujących na statkach. Obecnie NMEA 0183 jest najczęściej stosowaną formą przesyłania danych także w odbiornikach GPS. W praktyce oprogramowanie odbiornika PGS polega, więc na odczytywaniu odpowiednich sentencji protokołu NMEA oraz na ich prawidłowej interpretacji. Co ważne, dane przekazywane przez protokół NMEA zawierają nie tylko informację o pozycji odbiornika GPS, ale także dane dotyczące ilości śledzonych satelitów, ich położeniu, jakości wyznaczanej pozycji oraz wiele innych przydatnych informacji nawigacyjnych. W niniejszej instrukcji ograniczono się jedynie do analizy podstawowych informacji protokołu NMEA zawartych w sentencji GGA, której przykładową zawartość pokazano poniżej: $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47 GGA - Nazwa znacznika: Global Positioning System Fix Data, 123519 - czas wygenerowania pozycji: 12:35:19 UTC, 4807.038,N - Szerokość geograficzna 48 stopni, 07.038' N, 01131.000,E - Długość geograficzna 11 stopni, 31.000' E, 1 - jakość wyznaczenia pozycji: o 0 = nieprawidłowa, o 1 = Standardowa jakość pozycji (SPS),

o 2 = Z wykorzystaniem DGPS, o 3 = Z wykorzystaniem PPS, o 4 = Tryb RTK (Real Time Kinematic), o 5 =Tryb Float RTK, o 6 = pozycja przybliżona w trybie zliczania pozycji (dead reckoning), o 7 = tryb manualny, o 8 = tryb manualny symulacyjny, 08 - ilość satelit śledzonych przez odbiornik GPS, 09 - poziome rozmycie pozycji (ang. horizontal dilution of position), 545.4,M - wysokość w m.n.p.m, 46.9,M - wysokość geoidy względem elipsoidy WGS-84w zadanej pozycji, puste pole czas w sekundach jaki upłynął od ostatniego wyznaczenia pozycji w trybie DGPS, puste pole (2) numer stacji DGPS, *47 - suma kontrolna zawsze zaczynająca się od znaku *. Zadanie 1 Zadanie pierwsze polega na prawidłowej konfiguracji komputera PC, która umożliwi napisanie aplikacji odczytującej dane z portu szeregowego i wyświetlenie ich na ekranie urządzenia mobilnego. Ze względu na skomplikowaną konfigurację sprzętową oraz różnorodność modeli urządzeń mobilnych zadanie zostanie zrealizowane jedynie na bazie emulatora urządzenia mobilnego z systemem Windows Mobile. W zadaniu wykorzystane zostaną programy umożliwiające odpowiednią konfigurację komputera, a mianowicie: com0com program stanowiący wirtualny most pomiędzy dwoma portami szeregowymi na lokalnym komputerze PC. W obecnej konfiguracji program umożliwia przekazywanie danych pomiędzy portem szeregowym COM0 a COM2. Konfigurację wirtualnego mostu można sprawdzić uruchamiając narzędzie konfiguracyjne programu w Menu Start->com0com->Setup mtty program umożliwiający prowadzenie nasłuchu na zadanym porcie szeregowym komputera PC

SerialSimulator projekt programu VisualStudio umożliwiającego wysyłanie zawartości pliku tekstowego na wybrany port szeregowy, w naszym przypadku COM 0. Do projektu dołączony jest plik tekstowy zawierający przykładowe sentencje protokołu NMEA 0183. Realizację zadania 1 zacznij od uruchomienia programu mtty.exe. Ustaw nasłuch na port COM2 (wyjście wirtualnego mostu com0com), prędkość przesyłania danych (ang. baud rate) to 9600, brak kontroli parzystości, ilośc bitów danych 8, 1 bit stopu. Następnie, uruchom program Visual Studio i otwórz projekt SerialSimulator. Przeanalizuj kod projektu oraz skompiluj i uruchom program. Po uruchomieniu programu pojawi się okno dialogowe tak jak pokazano na Rys. 1. Rys. 1. Okno dialogwe programu Serial Simulator. Program w kodzie źródłowym ma zapisaną ścieżkę (plik MainForm.cs) do pliku nmea.log (w katalogu projektu), w którym zapisane są przykładowe dane nawigacyjne w standardzie NMEA. Po naciśnięciu Menu->File->Start program wywoła metodę simulation zdefiniowaną w pliku MainForm.cs która będzie odczytywała kolejne linie pliku nmea.log i wysyłała je na port szeregowy COM0, reprezentowany przez obiekt serialport klasy SerialPort. W wyniku działania programu wirtualny most com0com będzie przekazywał dane z portu szeregowego COM0 na port szeregowy COM2, a w oknie aplikacji mtty powinny pojawić się dane nawigacyjne w standardzie NMEA, tak jak pokazano na Rys. 2.

Rys. 2. Zawartość okna aplikacji mtty odczytana z wyjścia portu COM2. Prawidłowo przeprowadzona konfiguracja komputera PC stanowi koniec zadania 1. Przed przejściem do zadania 2 wyłącz program MTTY, tak aby nie blokować portu COM2. Zadanie 2 W zadaniu 1 skonfigurowaliśmy wirtualny most pomiędzy portem szeregowym COM0 i COM2 na komputerze PC. Uruchomiliśmy także aplikację, która wysyła dane nawigacyjne w w formacie NMEA symulując tym samym działanie odbiornika GPS po stronie komputera PC. Aby dane odczytywać na emulatorze urządzenia mobilnego potrzeba jeszcze prawidłowo skonfigurować sam emulator zadanie to zostanie opisane w tym punkcie. Aby przystąpić do stworzenia aplikacji na urządzenia mobilne, która będzie odczytywała dane z portu szeregowego należy uruchomić drugą instancję Visual Studio i stworzyć projekt typu SmartDevice o nazwie GPS_Zad1. Następnie, za pomocą przycisku uruchom emulator docelowego urządzenia mobilnego. W emulatorze należy odpowiednio skonfigurować przekierowanie portu szeregowego COM2 (wyjścia wirtualnego mostu com0com) na lokalnym komputerze PC na port szeregowy COM 1 emulatora. Realizuje się to uruchamiając okno konfiguracji emulatora (Menu->File- >Configure->Zakładka Peripherals) i wpisując w polu Serial Port 0: wartość COM2 tak jak pokazano na Rys. 3.

Rys. 3. Okno właściwości emulatora. W wyniku przeprowadzonej konfiguracji, dane, które zostaną przesłane na port COM0 komputera PC, zostaną przekierowane poprzez port COM2 komputera PC na port COM1 emulatora urządzenia mobilnego, co zostało schematycznie przedstawione na Rys. 4. Komputer PC Emulator urzadzenia mobilnego Port szeregowy COM0 Wirtualny most com0com Port szeregowy COM2 Port szeregowy COM 1 Aplikacja Rys. 4. Schemat przepływu danych w bieżącej konfiguracji. Następnie możemy przystąpić do tworzenia aplikacji odczytującej dane z portu szeregowego przeznaczonej do wykonywania na urządzeniach mobilnych. Programowanie zaczynamy od deklaracji odpowiednich zmiennych w pliku Form1.cs, który zawiera kod źródłowy odpowiedzialny za uruchomienie głównego okna aplikacji. W klasie Form1 deklarujemy zmienne: public bool czysprawdzac = false; public delegate void UpdateTextCallback(string text); public SerialPort serialport;

Pierwsza z nich będzie stanowiła warunek kontynuacji pętli odczytu z portu szeregowego. Z uwagi na fakt, iż czytanie z portu szeregowego odbywa się w sposób asynchroniczny, aby nie blokować GUI użytkownika, aplikację zrealizujemy w trybie wielowątkowym. Potrzebny będzie więc delegat (UpdateTextCallback) przekazujący w zmiennej text zawartość odczytanej wartości z portu szeregowego reprezentowanego przez obiekt klasy SerialPort. Więcej na temat wykorzystania delegatów oraz programowania wielowątkowego w technologii.net można znaleźć pod adresem: http://msdn.microsoft.com/en-us/library/aa446540.aspx Następnie, w konstruktorze klasy Form1 po wywołaniu metody InitializeComponent należy utworzyć referencję na obiekt serialport z odpowiednimi parametrami: serialport = new SerialPort("COM1", 9600, Parity.None, 8, System.IO.Ports.StopBits.One); oraz otwrzyć sam port: serialport.open(); Następnie definiujemy metodę uaktualniania otrzymanego z portu tekstu (znajdującego się obiekcie text klasy string): private void UpdateText(string text) { // Set the textbox text. textbox.text = text; }, gdzie textbox to nazwa obiektu klasy TextBox, który w GUI użytkownika pozwala nam wyśwetlić dowolny łańcuch znaków. Obiekt textbox należy dodać z wykorzystaniem okna Designer tak jak to pokazano we wcześniejszych ćwiczeniach. Należy także zdefiniować metodę odczytu z portu szeregowego, która będzie uruchamiana w osobnym wątku tak aby nie blokować GUI użytkownika: private void checkport_thread() { while (czysprawdzac) { String text = serialport.readexisting(); textbox.invoke(new UpdateTextCallback(this.UpdateText), new object[] { text}); Thread.Sleep(1000); } }

Metoda ta po uruchomieniu będzie przekazywała zawartość portu do zmiennej text oraz wywołała, za pomocą metody Invoke, delegat UpdateTextCallback powodujący uaktualnienie textu w obiekcie textbox GUI użytkownika (patrz metoda UpdateText). Odczytywanie z portu w sposób ciągły jest zbędne, a ponadto zajmowałoby znaczną część czasu pracy procesora, dlatego jeden obrót pętli wykonuje się co sekundę poprzez usypianie wątku (Thread.Sleep(1000)). Ostatnim elementem zadania 2 jest implementacja metody tworzącej nowy wątek, w którym będzie odbywało się czytanie z portu oraz przekazywanie odczytanej informacji do GUI użytkownika. Jej zawartość pokazano poniżej: czysprawdzac = true; Thread newthread = new Thread(new ThreadStart(checkPort_Thread)); newthread.start(); Metoda powinna być uruchamiana po naciśniećiu klawisza menu o nazwie GetCOM tak jak to pokazano na Rys. 5. Rys. 5. Wynik zadania 2

Zadanie 3 W celu weryfikacji umiejętności w zadaniu 3 należy zmodyfikować powstałą aplikację tak, aby pokazywała pozycję geograficzną oraz czas w systemie UTC. Należy się w tym celu posłużyć informacji zawartymi we wstępie do niniejszej instrukcji.