MATLAB Mobile - Analiza danych ze smartfona

MATLAB umożliwia analizę danych z czujników, w które wyposażone są nasze smartfony! W bardzo prosty sposób można zarejestrować sygnały przyspieszenia (akcelerometry), prędkości kątowej (żyroskopy), indukcji magnetycznej (magnetometr) oraz innych. Zobaczmy jak to zrobić!

Aby skorzystać z funkcji rejestracji sygnałów ze smartfona, musi być spełnione kilka warunków:

  • należy posiadać aktywne konto na portalu MathWorks oraz ważną licencję,
  • w MATLABie należy zainstalować MATLAB Support Package for Android Sensors – pakiet zawierający zestaw funkcji, dzięki którym będzie możliwa rejestracja sygnałów w czasie rzeczywistym,
  • w telefonie należy zainstalować aplikację MATLAB Mobile – to z jej poziomu będziemy decydować o tym, które wielkości rejestrować, oraz w jakim przedziale czasowym.

Oprogramowanie zainstalowane na telefonie umożliwia dostęp do wszystkich czujników:

  • Akcelerometru  – pomiar przyspieszenia w 3 osiach,
  • Żyroskopu – pomiar położenia i prędkości kątowej,
  • GPS – dane z systemu lokalizacji satelitarnej,
  • Magnetometru – pomiar indukcji magnetycznej,
  • Mikrofonu.

Dane z czujników można zapisywać lokalnie w pamięci telefonu lub „streamować” na bieżąco do MATLABa za pośrednictwem MathWorks Cloud, czyli chmury. Tym samym nie jest wymagane przewodowe połączenie z komputerem. Można skonfigurować komputer na „nasłuch” danych z telefonu i zdalnie rejestrować sygnały. Aby to zrobić należy zainstalować wspomniane powyżej pakiety na telefonie i w MATLABie i skojarzyć je z tym samym kontem MathWorks. Następnie należy posłużyć się funkcją mobiledev, która tworzy obiekt przeznaczony do akwizycji danych ze smartfona. I w zasadzie, w najprostszym przypadku to wszystko..

m = mobiledev;
Telefon

Teraz należy przejść do aplikacji MATLAB Mobile. W zakładce Sensors możemy skonfigurować sposób akwizycji sygnału. Dane mogą być zapisywane lokalnie w plikach, lub wysyłane bezpośrednio do MATLABa. Ponadto można zdefiniować częstotliwość próbkowania sygnałów w zakresie od 1 do 100Hz. Nie jest to duża częstotliwość jednak do zastosowań „rekreacyjnych” wystarczająca.

Po wyborze zestawu wielkości, które chcemy mierzyć, wystarczy kliknąć Start. Dane są zapisywane w tle. Kiedy zdecydujemy o zakończeniu rejestracji, wracamy do MATLABa. Dostęp do danych uzyskujemy w taki sposób:

[Acc, t] = m.accellog;
[Or, t] = m.orientlog;

figure;
subplot(211); plot(t, Acc); grid on;
xlabel('Czas [s]'); ylabel('Przyspieszenie [m/s^2]')

subplot(212); plot(t, Or); grid on; 
xlabel('Czas [s]'); ylabel('Położenie kątowe [^O]')

W efekcie otrzymujemy sygnały z czujników telefonu:

Jak widzicie sposób na akwizycję danych z telefonu jest banalny. Pomysłów na zastosowanie tego sposobu jest wiele: od prostego krokomierza po nawigację inercyjną. Macie jakieś doświadczenia w tej materii?

(Visited 374 times, 1 visits today)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *