Oblicz prędkość i kierunek na mikrokontrolerze lub na zdalnym serwerze?

9

Załóżmy, że mam podłączone do samochodu urządzenie, które zawiera MCU i moduł SIM908. Funkcja SIM908 polega na odbiorze danych GPS z satelitów, a następnie wysyłaniu ich do zdalnego serwera za pośrednictwem 2G / GPRS co minutę w celu wyświetlenia w Internecie. Teraz oprócz wysłania lokalizacji GPS chcę również wysłać prędkość i kierunek samochodu. Wiem, że prędkość i kierunek można obliczyć ze współrzędnych GPS, ale nie jestem pewien, czy MCU poradzi sobie z tymi obliczeniami.

Czy powinienem umieścić to zadanie na zdalnym serwerze, aby zmniejszyć obciążenie MCU (np. Oszczędzanie energii, płynny przebieg ...) czy bezpośrednio przetwarzać na MCU? Czy możesz zasugerować dobry sposób wykonania tego zadania?

juggernaut156
źródło

Odpowiedzi:

6

Jak mówi Bence, zależy to od układu i potrzebnej dokładności.

Chciałbym jednak dodać jedno: wiele prędkości wyjściowych GPS i kierunek (kierunek) w jednym ze zdań NMEA. Jeśli twój układ GPS to robi, możesz użyć tego bezpośrednio i nie będziesz musiał niczego obliczać - po prostu użyj wartości dostarczonych przez GPS.

vidarlo
źródło
5

Zależy to od posiadanego MCU, ale myślę, że każdy mikrokontroler na rynku mógłby z łatwością poradzić sobie z tym zadaniem. Obliczanie prędkości i kierunku ze współrzędnych nie jest wielkim problemem. Myślę, że analiza zdań GPS zajmuje więcej czasu procesora.

  • Więc jeśli tylko tunujesz dane GPS przez łącze GPRS, nieprzetworzone, więc całe zdanie NMEA w jednym kawałku, wykonaj obliczenia po stronie serwera.

  • Jeśli przed wysłaniem wyodrębnisz odpowiednie informacje z MCU, zalecane jest również obliczenie prędkości i kierunku na MCU. Zachowałbym całą logikę (parsowanie + obliczenia) po tej samej stronie. Nie ma tu ani trochę, tylko to komplikuje.

Kilka innych rzeczy, o których pomyślałem przed podjęciem decyzji:

  • Jeśli uruchamiasz urządzenie z baterii i brakuje Ci energii, możesz wykonać jak najwięcej przetwarzania po stronie serwera, a MCU może spać dłużej i budzić się tylko w celu wysłania zapytania do GPS i wysłania danych.

  • Nie wiem, jaką taryfę mobilną masz dla SIM908, ale jeśli liczy się koszt i każdy wysłany KB, wyodrębnij i oblicz wszystko MCU, aby zmniejszyć ruch danych przez łącze GPRS.

Bence Kaulics
źródło
4

Jako osoba, która stworzyła system zarządzania flotą przetwarzający dane z urządzeń z odbiornikami GPS, które obecnie obsługują dwa miliony urządzeń, na które składa się ponad tysiąc różnych rodzajów takich urządzeń śledzących od setek producentów na całym świecie, mam tylko jedną radę - zrób wszystko, co możesz po stronie urządzenia i polegaj na serwerze tylko dla stabilnego przechowywania nieprzetworzonych komunikatów telemetrycznych. Prędkość i kurs można odczytać z odbiornika GPS, ale nie zapomnij również dostarczyć do serwera ilości satelitów, HDOP i innych parametrów. Twoje urządzenie jest podłączone do linii elektrycznych samochodu, więc nie musisz oszczędzać energii, a ceny kart SIM spadają każdego roku. Więc po prostu wyślij wszystko, co możesz złapać i uwierzyć, że każdy serwer danych może czasem zrobić więcej, niż możesz sobie wyobrazić.

I nie zapominaj, że większość serwerów pisze po prostu do bazy danych, szczególnie w systemach o dużym obciążeniu, nie mają szybkiego (a czasem wcale) dostępu do poprzedniej wiadomości z twojego urządzenia i nie mogą wykonywać żadnych obliczeń przed zapisaniem wiadomości.

shal
źródło