To jest stara wersja strony!
Wykrywanie aktywności użytkownika
Octave
Analiza danych
Napisz program zapisujący dane z akcelerometru do bazy SQLite (mozesz tez przerobic program: Wykrywanie Aktywnosci)
Aby zapisać bazę danych w pamięci urządzenia, wykorzystaj poniższy kod.
Pamiętaj żeby dodać odpowiednie uses-permission
do manifestu
Jeśli z poziomu systemu operacyjnego nie będzie dostępu do pamięci urządzenia, spróbuj zapisać bazę danych w katalogu ze zdjęciami i np. wysłać ją sobie z telefonu mailem.
Ustalmy że:
Baza danych będzie nazywać się acc, tabela przechowująca dane, również acc
Będzie zawierać 4 kolumny: id, acc_x, acc_y, acc_z
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//" + context.getApplicationContext().getPackageName() + "//databases//"
+ DataBaseHelper.DATABASE_NAME;
String backupDBPath = DataBaseHelper.DATABASE_NAME;
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
} catch (Exception e) {
e.printStackTrace();
}
Import do Octave
Zaimportuj dane z odczytów do Octave:
W tym celu otwórz bazę danych w SQLite:
sqlite3 acc.db
Ustaw separator danych na tabulator
.mode tabs
Ustaw wyjscie z SQLite do pliku:
.output 'dane.dat'
Wrzuć dane z trzech osi do pliku:
SELECT acc_x, acc_y, acc_z FROM acc;
Następnie otwórz Octave i zaimportuj dane do zmiennej
Acc:
Wyrysuj dane z poszczególnych osi na wykresie:
Określenie parametrów danych
Przyglądając się wykresom wyodrębnij cechy które twoim zdaniem mogą mieć wpływ na rozróżnienie poszczególnych aktywności użytkownika takich jak:
stanie
chodzenie
bieganie
siadanie
wstawanie
Spróbuj określić aktywność na podstawie maksymalnej i minimalnej amplitudy oraz średniej amplitudy w oknie czasowym o długości np. 3 sekund.
Zapoznaj się (pobieżnie) z artykułem:
Activity recognition i zastanów się, czy możesz zastosowac którys z opisanych algorytmów do swoich danych
Android
Android
API oferuje wbudowaną klasę do wykrywania aktywności o nazwie
ActivityRecognition.
Pobierz przykładową aplikację wykorzystującą tą klasę:
Activity recognition i zapoznaj się z kodem źródłowym. Opis kodu źródłowego znajduje się
tutaj
Przetestuj działanie aplikacji. Czy klasę można byłoby udoskonalić o analizę danych z akcelerometru jak w pierwszym zadaniu z laboratorium?