Samodzielny gps za 40 zł? programista stworzył nawigację bez internetu!
Wyobraź sobie, że podczas rowerowej wyprawy, gdzieś głęboko w terenie, twój telefon nagle traci zasięg. Mapa znika, wskazówki nawigacyjne ustają, a ty zostajesz sam na sam z nieznanym otoczeniem. To koszmar każdego rowerzysty, ale dla Shubham Gupta był to impuls do działania. Zamiast polegać na niepewnych połączeniach, postanowił zbudować własny, niezależny system nawigacji.
Niezawodna nawigacja, gdy internet zawodzi
Wiele rowerowych GPS-ów opiera się na smartfonie do wyświetlania map i obliczania tras. Ale co, gdy połączenie z siecią zniknie? Wtedy dostęp do wielu kluczowych informacji zostaje odcięty. Mobilny GPS może nadal działać, ale mapy i powiązane usługi wymagają zewnętrznego połączenia, prowadząc do sytuacji, w której możesz się zagubić w nieznanym miejscu. Gupta postanowił to zmienić, tworząc własne rozwiązanie, które nie wymaga stałego dostępu do internetu.
Jego dzieło to zaskakująco prosta konstrukcja, oparta na płytce rozwojowej o wartości około 40 euro. Rezultatem jest GPS, który potrafi wyświetlać mapy offline, śledzić położenie użytkownika w czasie rzeczywistym i aktualizować pozycję podczas jazdy. Projekt, choć wciąż rozwijany, zademonstrował, że stworzenie własnego nawigatora jest możliwe przy minimalnych nakładach finansowych i niewielkiej liczbie komponentów.

Sercem systemu jest esp32-s3
Podstawą konstrukcji jest płytka Waveshare ESP32-S3-Touch-AMOLED-1.75, kompaktowe urządzenie łączące kilka niezbędnych elementów. Zawiera procesor ESP32-S3 N16R8, 16 MB pamięci flash i 8 MB PSRAM. Dodatkowo, znajdziemy na niej dotykowy ekran AMOLED o przekątnej 1.75 cala, odbiornik GPS oraz slot na kartę microSD, w której przechowywane są mapy.
Gupta podzielił się swoim projektem na Reddit, początkowo planując nawigator dla motocykla. Jego motywacją była chęć stworzenia bardziej ekonomicznego i niezależnego rozwiązania niż komercyjne nawigatory czy GPS w telefonach.

Offline przede wszystkim: mapy na karcie microsd
Wielu kojarzy nawigatory GPS z dostępem do internetu, ponieważ aplikacje jak Google Maps stale pobierają informacje z sieci. Jednak pozycjonowanie satelitarne działa inaczej – odbiornik GPS pobiera dane bezpośrednio z satelitów. To pobieranie map i dodatkowych usług wymaga połączenia z internetem. Gupta rozwiązał ten problem, przygotowując mapy przed wyjazdem i zapisując je na karcie microSD, korzystając z danych OpenStreetMap.
System dzieli wybrany obszar na małe obrazy o rozdzielczości 256 × 256 pikseli, które następnie są konwertowane za pomocą skryptu Python do lżejszego formatu RGB565. Pozwala to płytce na efektywną obsługę danych pomimo ograniczonej mocy obliczeniowej. Podczas jazdy, system odczytuje dane GPS, wyszukuje odpowiednie obrazy na karcie i konstruuje mapę wyświetlaną na ekranie. Co więcej, pozycja rowerzysty pozostaje nieruchoma na mapie, a sama mapa przesuwa się wokół.

Największym wyzwaniem było płynne działanie mapy
Najtrudniejszym elementem projektu nie było odebranie sygnału GPS, ale zapewnienie, by mały mikrokontroler mógł płynnie przesuwać mapy. Gupta testował różne systemy graficzne, takie jak Slint i LVGL, ale ich wydajność była niewystarczająca. Slint osiągał około 5 klatek na sekundę, a LVGL – około 4 fps. Dlatego też postanowił uprościć proces, rysując bezpośrednio na buforze obrazu i przesyłając informacje na ekran za pomocą funkcji esp_lcd_panel_draw_bitmap.
Dzięki temu udało się znacząco poprawić wydajność – system osiąga teraz około 18 fps podczas przesuwania mapy, a nawet 44 fps, gdy obraz jest nieruchomy. Gupta wciąż pracuje nad dopracowaniem nawigatora, dodając funkcje takie jak obliczanie tras czy wskazówki głosowe, które mogłyby być przesyłane przez Bluetooth do interkomu w kasku, eliminując problemy z hałasem zewnętrznym.
Wartość tego projektu nie kryje się jedynie w stworzeniu taniego GPS-u, ale przede wszystkim w pokazaniu, że płytka za 40 euro może realizować zadania, które jeszcze kilka lat temu wydawały się zarezerwowane dla znacznie bardziej zaawansowanych urządzeń. Dzięki odpowiednio przygotowanym mapom i zoptymalizowanemu oprogramowaniu, mały mikrokontroler może stać się cennym narzędziem dla osób potrzebujących nawigacji nawet bez dostępu do internetu.