czwartek, 4 lipca 2013

Android i zewnętrzny moduł GPS

Od kilku dni jestem w posiadaniu smyrfona z Androidem 4.1.1 na pokładzie. Kwestie związane z wyborem systemu roztrząsałem już na G+, a ten artykuł tutaj ma konkretny temat, więc nie będę wyjaśniał po raz n-ty. Po prostu zwyciężyły popularność i ekosystem oraz przywiązanie do produktów sieciowych Google. Mniejsza.

Zbliża się sezon urlopowy :-) Moi podopieczni już mają wakacje, a ja wyjeżdżam wkrótce. W każdym bądź razie wakacje to podróże - samochodem, rowerem, na piechotę, żaglówką, motorówką, samolotem... Zaawansowane urządzenia mobilne przyzwyczaiły nas już do usług lokalizacyjnych, z których najważniejszą jest GPS (na dalszym planie mamy A-GPS, lokalizacje w oparciu o sieci WiFi itp.). Często korzystamy z programów, które w coraz ciekawszy sposób wiążą naszą lokalizację, pobraną z np. GPS-a, z przeróżnymi danymi, nieraz ocierając się o AR.
Każdy współczesny smartfon, a przynajmniej znakomita ich większość, wyposażona jest we wbudowany odbiornik sygnału lokalizacyjnego (GPS, GLONASS). Czasem jednak korzystanie z wbudowanego odbiornika bywa kłopotliwe, na przykład:

  • długo łapie tzw. fix, czyli ustala pozycję; bywa, że trwa to kilka-kilkanaście minut i się nie udaje (mam tak np. w aparacie fotograficznym);
  • trzymamy telefon w kieszeni, pod wieloma warstwami ubrań itp. - wszystko to osłabia siłę sygnału GPS;
  • każdy wbudowany w telefon dodatkowy ficzer bardzo egoistycznie podchodzi do baterii; odbiornik GPS również ostro drenuje zasoby energii naszego smartfona.
Być może są to wady nieco naciągane - wielu z Was ma całkiem niezłe doświadczenia z wbudowanymi odbiornikami GPS - ale jednak czasem występują. Szczególnie w obszarze zabudowanym ;-)

O ile w pierwszym przypadku wszystko zależy od jakości modułu (i poniekąd od oprogramowania, jak się domyślam), o tyle w drugim jako alternatywa świetnie się może sprawdzić zewnętrzny moduł GPS, z którym nasz telefon może się komunikować przez Bluetooth. Możemy wtedy trzymać telefon w dowolnym, najwygodniejszym dla nas miejscu, a odbiornik GPS tam, gdzie będzie najlepiej łapał sygnał.

W jaki sposób przekonać urządzenie z Androidem do współpracy z zewnętrznym modułem GPS?
Rzecz nie wydaje się być trudną.

Najpierw sparujmy odbiornik GPS z naszym smartfonem czy tabletem - czynność, której chyba nie trzeba szerzej wyjaśniać. Ja posłużę się moim starym, dobrym, wielokrotnie już wspominanym na tym blogu modułem Nokia LD-3W.

Po sparowaniu znajdujemy w menu ustawień Androida Opcje programistyczne. Włączamy je, zgadzamy się na ryzyko (bo system się upewnia) i zaznaczamy opcję Pozorowanie lokalizacji:


Następnie pobieramy i instalujemy aplikację Bluetooth GPS (ze sklepu Google Play). Uruchamiamy, wybieramy nasz moduł GPS (wcześniej sparowany), włączamy go (czasem trzeba najpierw uruchomić aplikację, a potem moduł GPS) i klikamy Połącz (Connect). Czekamy chwilę (dosłownie chwilę - u mnie np. rzecz działa się w budynku, przy zamkniętym oknie - moduł leżał na parapecie) i mamy rezultat:


Teraz rzecz najważniejsza: zaznaczamy Enable Mock GPS Provider. Jeśli wybraliśmy wcześniej pozorowaną lokalizację (w Opcjach programistycznych), to możemy teraz ukryć aplikację i uruchomić cokolwiek, co potrzebuje usług lokalizacyjnych - sprawdzałem z Foursquare, Star Chart i kilku innymi programami. Ważne jest, żeby wyłączyć wszystkie wbudowane usługi lokalizacyjne.

Sam program Bluetooth GPS ma jeszcze kilka ekranów, które mogą zaciekawić bardziej dociekliwych, ot choćby "mapkę" satelitów:


czy pokazywanie naszego położenia na mapie:


a nawet śledzenie logu kolejno przesyłanych linii NMEA ;-)

Okazuje się, że wszystko ładnie działa (no dobra, będę szczery - raz tylko tak namieszałem, że musiałem zrobić reboota ;-))! 
Udanej zabawy zatem i pełnych przygód podróży (z nawigacją w kieszeni ;-)).


5 komentarzy:

  1. super. wszystko tak jak napisales. dzieki

    OdpowiedzUsuń
  2. wielkie dzieki!!! jedyny problem z moim telefonem, ktory bardzo polubilem, jest slaby odbiornik gps. odkurzylem swojego LD-3W i dziala az milo :) dziekowac!

    OdpowiedzUsuń
  3. Ratunku!
    zsynchronizowałem telefon ZOPO ZP780 (MTK6582 1.3GHz Quad Core, ANDROID 4.2.2) z logerem Holux RCV-3000. Jednak program Bluetooth GPS przez ok. 20 sek. zbiera dane z logera i wyznacza pozycję z opóźnieniem ok 1 min. Spróbowałem zainstalować na innym telefonie z Androidem 2, dzieła szybko i bardzo precyzyjnie. Po podłączeniu logera do kompa trasa jest precyzyjnie opisana. Czy ktoś jest w stanie mi doradzić jak uporać się z tym problemem.

    OdpowiedzUsuń
  4. super, dzięki za poradę!
    Uzupełnię jak włączyć opcje programistyczne:
    http://www.benchmark.pl/testy_i_recenzje/jak-wlaczyc-opcje-programistyczne-w-systemie-android-4-2.html

    OdpowiedzUsuń
  5. A ktoś wie jak zmusić mapy google do działania z zewnętrznym GPS ?

    OdpowiedzUsuń