Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zainstaluj niezbędne IDE i biblioteki
- Krok 2: Podłącz akcelerometry do pióra
- Krok 3: Przymocuj akcelerometry do koszuli
- Krok 4: Uruchamianie kodu na Arduino
- Krok 5: Uruchamianie kodu na Androidzie
- Krok 6: Testowanie połączenia sygnału Bluetooth
- Krok 7: Zbieranie własnych danych
- Krok 8: Trening danych na notebooku Jupyter
- Krok 9: Modyfikowanie aplikacji na Androida za pomocą nowego modelu
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Postshirt to bezprzewodowy system wykrywania postawy w czasie rzeczywistym, który przesyła i klasyfikuje dane akcelerometru z pióra Adafruit do aplikacji na Androida przez Bluetooth. Kompletny system może wykryć w czasie rzeczywistym, czy użytkownik ma złą postawę i tworzy powiadomienie push, gdy użytkownik zaczyna się garbić, wykrywanie działa również podczas chodzenia.
Kieszonkowe dzieci
Elektronika
1 x smartfon z systemem Android
1 x Pióro Adafruit
1 x bateria litowo-jonowo-polimerowa - 3,7 v 100 mAh (opcjonalnie do użytku bezprzewodowego)
2 x akcelerometr trójosiowy ADXL335
Materiały
Podłączyć przewód
Rolka taśmy
Krok 1: Zainstaluj niezbędne IDE i biblioteki
Pióro Adafruit
Najpierw zainstaluj Arduino IDE, a następnie postępuj zgodnie z instrukcjami, aby zainstalować bibliotekę Adafruit nRF51 BLE
Notatnik Jupytera
Najpierw zainstaluj Jupyter Notebook, a następnie następujące wymagane biblioteki
- https://scikit-learn.org/stable/
- https://github.com/nok/sklearn-porter
Android
Zainstaluj Studio Android
Kod projektu
Pobierz cały kod projektu z GitHub
Krok 2: Podłącz akcelerometry do pióra
Aby odczytać dane z ADXL335, podłącz przewód łączący do pinów Vin, uziemienia, Xout, Yout i Zout. W przypadku obu akcelerometrów podłącz drugi koniec przewodów Vin do styku 3 V w Piórku, a drugi koniec styków uziemienia do styku uziemienia w Piórku. Podłącz przewody Xout, Yout i Zout pierwszego akcelerometru do pinów A0, A1 i A2 w Feather. Podłącz przewody Xout, Yout i Zout drugiego akcelerometru do pinów A3, A4 i A5 w Feather.
Akcelerometry można podłączyć w dowolny sposób, ale sugeruje się lutowanie przewodów i obkurczanie lub owijanie taśmą elektryczną wokół punktów połączeń, aby zapobiec stykaniu się odsłoniętych sekcji.
Krok 3: Przymocuj akcelerometry do koszuli
Za pomocą taśmy przymocuj akcelerometry z tyłu koszulki. Akcelerometr podłączony do pinów A0-2 powinien być umieszczony poziomo pośrodku w środkowej dolnej części pleców. Akcelerometr podłączony do pinów A3-5 należy umieścić poziomo centralnie z tyłu szyi. Oba akcelerometry powinny być ustawione tak, aby szpilki znajdowały się wzdłuż dolnej strony, a czujniki powinny być przyklejone płasko i przymocowane do koszuli.
Uwaga: Aby zapewnić trwalsze noszenie, czujniki można przyszyć do ubrania, ale należy je najpierw przykleić i przetestować, aby upewnić się, że miejsca umieszczenia czujników są odpowiednio ustawione.
Krok 4: Uruchamianie kodu na Arduino
Aby rozpocząć zbieranie danych na Feather, uruchom Arduino IDE i otwórz plik GestureDataSender w sekcji Arduino kodu projektu. Po otwarciu tego pliku ustaw płytę i używany port, a następnie wybierz „Weryfikuj” i „Prześlij”, aby przesłać kod do Feather.
Krok 5: Uruchamianie kodu na Androidzie
Aby uruchomić aplikację na Androidzie, najpierw uruchom Android Studio, a następnie wybierz opcję otwarcia istniejącego projektu Androida. Przejdź do kodu projektu i wybierz folder „Android”. Android Studio zajmie trochę czasu, aby zsynchronizować pliki projektu i może poprosić o zainstalowanie niektórych wymaganych bibliotek, zaakceptuj te opcje. Gdy projekt jest gotowy, podłącz urządzenie z systemem Android do komputera i wybierz opcję uruchamiania w górnej części okna. Wybierz urządzenie z wyświetlonego monitu, a następnie pozwól aplikacji na kompilację na urządzeniu.
Krok 6: Testowanie połączenia sygnału Bluetooth
Po otwarciu aplikacji upewnij się, że Feather jest włączone, a następnie wybierz Adafruit Bluefruit LE z listy urządzeń, która pojawia się w telefonie. Poczekaj, aż urządzenie nawiąże połączenie, jeśli połączenie nie powiedzie się za pierwszym razem, ponów próbę połączenia przed wykonaniem innych kroków debugowania. Po podłączeniu urządzenia wybierz moduł „Detektor postawy”, który przy prawidłowym działaniu wyświetli na bieżąco aktualizowany wykres oraz aktualne przewidywania postawy i ruchu. Aby sprawdzić, czy arduino prawidłowo komunikuje dane z czujnika, przesuń dwa akcelerometry w losowych kierunkach i sprawdź, czy wszystkie linie na wykresie się zmieniają. Jeśli niektóre linie pozostają płaskie, upewnij się, że akcelerometry są prawidłowo podłączone do pióra. Jeśli wszystko działa, załóż koszulkę i sprawdź, czy wykrywanie postawy prawidłowo przewiduje Twoją postawę. Gratulacje! Pomyślnie skonfigurowałeś urządzenie do noszenia z wykrywaniem postawy. Kontynuuj tę instrukcję, aby dowiedzieć się, jak utworzyć własny zestaw danych i dostosować własne wykrywanie postawy.
Krok 7: Zbieranie własnych danych
Aby zebrać własne dane, wróć do ekranu wyboru modułu i otwórz moduł Data Recorder. Po otwarciu tego ekranu wypełnij etykietę danych, które będziesz gromadzić; w celu łatwego trenowania na swoich danych należy w nazwie wszelkich nagrań z postawą umieścić słowo "dobre" i "złe" we wszelkich nagraniach z postawą. Aby rozpocząć zbieranie, dotknij przycisku "Zbierz dane" i wykonaj zamierzone działanie, po zakończeniu dotknij przycisku ponownie, aby zakończyć i zapisać dane. Wszystkie zarejestrowane dane będą przechowywane w folderze o nazwie „GestureData” w folderze dokumentów w systemie plików. Po zakończeniu nagrywania wszystkich danych skopiuj pliki na komputer w celu uczenia modelu.
Krok 8: Trening danych na notebooku Jupyter
Początkowy kod projektu zawiera oryginalne dane używane do szkolenia w folderze „data” w sekcji Jupyter Notebook, w celu szkolenia własnych danych usuń wszystkie pliki z tego folderu, a następnie skopiuj własne dane do folderu. Następnie uruchom Jupyter Notebook i otwórz „PostureDetectorTrainer.ipynb”. Ten notatnik został zaprojektowany tak, aby automatycznie oddzielać pliki w folderze danych według dobrej i złej postawy, a następnie trenować liniową maszynę SVM do klasyfikacji, aby trenować model, po prostu wybierz menu rozwijane „Komórka” i wybierz „Uruchom wszystko”. Notatnik może potrwać chwilę, aby uruchomić, ale po całkowitym przewinięciu do punktu, który zapewnia dokładność przewidywania postawy dla modelu, jeśli dokładność jest niska, możesz chcieć upewnić się, że poprzednie nagrania są dokładne i spójne z podstawowymi prawdami. Jeśli wyniki wyglądają dobrze, przewiń do następnej komórki, w której zostanie wygenerowana klasa Java. Przewiń w dół tej komórki, aż zobaczysz fragment skomentowany jako parametry. Skopiuj te wartości, ponieważ będą potrzebne w następnym kroku.
Krok 9: Modyfikowanie aplikacji na Androida za pomocą nowego modelu
Aby zmienić model w aplikacji na Androida, użyj Android Studio, aby przejść do pliku „PostureDetectorFragment.java” w sekcji java struktury projektu. W tym pliku przewiń w dół do sekcji skomentowanej jako „Klasyfikator postawy”, która będzie miała te same 4 odpowiadające zmienne, co 4 wygenerowane w Notatniku Jupyter. Zastąp wartości tych 4 zmiennych wartościami skopiowanymi z Notatnika Jupyter, upewniając się, że nazwy zmiennych nie są zmienione z p_vectors, p_coefficients itp. Po wykonaniu tej czynności zapisz plik i ponownie wybierz opcję Uruchom, aby zbudować aplikację na swoim urządzenie. Teraz wykonaj te same kroki, co poprzednio, aby otworzyć moduł Detektora postawy i powinieneś zobaczyć, jak klasyfikator pracuje teraz z nowo wytrenowanym modelem. Jeśli nadal wydaje się, że nie działa dobrze, należy rozważyć zapisanie dalszych danych i odtworzenie modelu. W przeciwnym razie gratulacje! Zaimportowałeś teraz swojego własnego, wyszkolonego klasyfikatora do Postshirt!