Sadržaj:
- Pribor
- Korak 1: Instalirajte potrebne IDE -ove i knjižnice
- Korak 2: Priključite mjerače ubrzanja na pero
- Korak 3: Pričvrstite akcelerometre na majicu
- Korak 4: Pokretanje koda na Arduinu
- Korak 5: Pokretanje koda na Androidu
- Korak 6: Testiranje Bluetooth signalne veze
- Korak 7: Prikupljanje vlastitih podataka
- Korak 8: Obuka vaših podataka na Jupyter prijenosniku
- Korak 9: Izmjena Android aplikacije novim modelom
Video: Posthirt: Otkrivanje nosivog držanja u stvarnom vremenu: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Postshirt je bežični sustav za otkrivanje držanja u stvarnom vremenu koji prenosi i klasificira podatke akcelerometra s Adafruit Feathera u Android aplikaciju putem Bluetootha. Cijeli sustav može otkriti u stvarnom vremenu ako korisnik ima loše držanje i stvara push obavijest kada se korisnik počne saginjati, otkrivanje radi i tijekom hodanja.
Pribor
Elektronika
1 x Android pametni telefon
1 x Adafrutovo pero
1 x litij -ionska polimerna baterija - 3,7v 100mAh (opcionalno za bežičnu upotrebu)
2 x ADXL335 troosni akcelerometar
Materijali
Spojna žica
Rola trake
Korak 1: Instalirajte potrebne IDE -ove i knjižnice
Adafrutovo pero
Najprije instalirajte Arduino IDE, a zatim slijedite korake za instaliranje Adafruit nRF51 BLE knjižnice
Bilježnica Jupyter
Najprije instalirajte Jupyter Notebook, a zatim sljedeće potrebne knjižnice
- https://scikit-learn.org/stable/
- https://github.com/nok/sklearn-porter
Android
Instalirajte Android Studio
Kod projekta
Preuzmite sav kôd projekta s GitHub -a
Korak 2: Priključite mjerače ubrzanja na pero
Da biste očitali podatke s ADXL335, spojite žicu za spajanje na pin, masu, Xout, Yout i Zout. Za oba akcelerometra spojite druge krajeve Vin žica s 3V iglom na Perju, a druge krajeve uzemljenih igala s uzemljinskom iglom na Perju. Spojite žice Xout, Yout i Zout prvog akcelerometra s pinovima A0, A1 i A2 na pero. Spojite žice Xout, Yout i Zout drugog akcelerometra s pinovima A3, A4 i A5 na pero.
Mjerači ubrzanja mogu se spojiti na bilo koji način, ali predlaže se lemljenje žica i toplinska zaštita ili omotavanje električne trake oko priključnih točaka radi sprječavanja međusobnog dodira izloženih dijelova.
Korak 3: Pričvrstite akcelerometre na majicu
Pomoću trake pričvrstite mjerače ubrzanja na stražnju stranu majice. Akcelerometar ožičen na igle A0-2 trebao bi biti postavljen vodoravno u središte u sredini donjeg dijela leđa. Akcelerometar ožičen na igle A3-5 trebao bi biti postavljen vodoravno u sredini na stražnjoj strani vrata. Oba mjerača ubrzanja trebaju biti poravnana tako da se igle nalaze uz donju stranu, a senzori trebaju biti zalijepljeni trakom i pričvršćeni za majicu.
Napomena: Za trajnije nošenje senzori se mogu prišiti na odjeću, ali prvo ih treba zalijepiti i testirati kako bi se osiguralo da su položaji senzora učinkovito postavljeni.
Korak 4: Pokretanje koda na Arduinu
Za početak prikupljanja podataka o Featheru pokrenite Arduino IDE i otvorite datoteku GestureDataSender u odjeljku Arduino koda projekta. Kad je ova datoteka otvorena, postavite ploču i priključak koji se koristi, a zatim odaberite "Potvrdi" i "Učitaj" da biste učitali kôd na pero.
Korak 5: Pokretanje koda na Androidu
Za pokretanje aplikacije na androidu prvo pokrenite Android Studio, a zatim odaberite opciju za otvaranje postojećeg Android projekta. Idite do koda projekta i odaberite mapu "Android". Android Studiju će trebati neko vrijeme za sinkronizaciju datoteka projekta i može zatražiti instaliranje nekih potrebnih knjižnica, prihvatiti ove opcije. Nakon što je projekt spreman, uključite Android uređaj u računalo i odaberite opciju pokretanja pri vrhu prozora. Odaberite uređaj iz upita koji se prikazuje, a zatim dopustite da se aplikacija izgradi na uređaj.
Korak 6: Testiranje Bluetooth signalne veze
Nakon što je aplikacija otvorena, provjerite je li pero uključeno, a zatim odaberite Adafruit Bluefruit LE s popisa uređaja koji se prikazuje na telefonu. Pričekajte da se uređaj poveže ako veza ne uspije prvi put pokušajte se povezati prije nego poduzmete druge korake za otklanjanje pogrešaka. Nakon što je uređaj spojen, odaberite modul "Detektor položaja" koji će, ako radi ispravno, prikazati grafikon ažuriranja uživo, kao i trenutna predviđanja držanja i kretanja. Kako biste provjerili da arduino pravilno prenosi podatke senzora, pomaknite dva akcelerometra u slučajnim smjerovima i provjerite mijenjaju li se sve linije na grafikonu. Ako neke linije ostaju stalno ravne, provjerite jesu li mjerači ubrzanja pravilno spojeni na pero. Ako sve radi, obucite majicu i provjerite je li otkrivanje položaja ispravno predviđa vaše držanje. Čestitamo! Uspješno ste postavili nosivo otkrivanje položaja. Nastavite s ovim uputama kako biste naučili kako stvoriti vlastiti skup podataka i prilagoditi vlastito otkrivanje držanja.
Korak 7: Prikupljanje vlastitih podataka
Za prikupljanje vlastitih podataka vratite se na zaslon za odabir modula i otvorite modul Snimač podataka. Nakon što se ovaj zaslon otvori, popunite oznaku za podatke koje ćete prikupiti; kako biste lakše vježbali svoje podatke, trebali biste unijeti riječ "dobro" u naziv svih snimki s dobrim držanjem i "loše" u bilo koje snimke s držanjem. Za početak prikupljanja dodirnite gumb "Prikupi podatke" i izvedite željenu radnju, kada završite, ponovno dodirnite gumb za dovršetak i spremanje podataka. Svi snimljeni podaci bit će pohranjeni u mapu pod nazivom "GestureData" u mapi dokumenata vašeg datotečnog sustava. Kad završite sa snimanjem svih podataka, kopirajte datoteke na računalo radi obuke modela.
Korak 8: Obuka vaših podataka na Jupyter prijenosniku
Početna šifra projekta sadrži izvorne podatke koji se koriste za obuku u mapi "podaci" u odjeljku Jupyter Notebook, za obuku vlastitih podataka izbrišite sve datoteke u ovoj mapi, a zatim kopirajte vlastite podatke u mapu. Zatim pokrenite Jupyter Notebook i otvorite "PostureDetectorTrainer.ipynb". Bilježnica je dizajnirana za automatsko odvajanje datoteka u mapi s podacima prema dobrom i lošem držanju, a zatim uvježbava linearni SVM za klasifikaciju kako bi obučio model, jednostavno odaberite padajući izbornik "Ćelija" i odaberite "Pokreni sve". Prijenos bilježnice može potrajati trenutak, ali kad se dovrši, pomaknite se do točke koja omogućuje točnost predviđanja položaja za model, ako je točnost niska, možda ćete htjeti osigurati da su vaši prethodni zapisi točni i dosljedni. Ako rezultati izgledaju dobro, pomaknite se do sljedeće ćelije u kojoj će biti generirana Java klasa. Pomaknite se do dna ove ćelije dok ne vidite dio komentiran kao parametar. Kopirajte ove vrijednosti jer će vam trebati u sljedećem koraku.
Korak 9: Izmjena Android aplikacije novim modelom
Za promjenu modela u Android aplikaciji koristite Android Studio za navigaciju do datoteke "PostureDetectorFragment.java" ispod java odjeljka strukture projekta. U ovoj datoteci pomaknite se dolje do odjeljka komentiranog kao "Klasifikator držanja" koji će imati iste 4 odgovarajuće varijable kao 4 generirane u Jupyter Notebooku. Zamijenite vrijednosti ovih 4 varijable vrijednostima kopiranima iz Jupyter Bilježnice, pazeći da se nazivi varijabli ne promijene iz p_vectors, p_coefficients itd. Nakon što to učinite, spremite datoteku i ponovo odaberite opciju Pokreni da biste izgradili aplikaciju za svoj uređaj. Sada slijedite iste korake kao i prije za otvaranje modula Detektor položaja i trebali biste vidjeti klasifikator koji sada radi s vašim tek obučenim modelom. Ako se i dalje ne čini dobro, razmislite o snimanju daljnjih podataka i ponovnom stvaranju modela. Inače čestitam! Sada ste uvezli svoj osobno obučeni klasifikator u Postshirt!
Preporučeni:
Kako koristiti modul sata u stvarnom vremenu (DS3231): 5 koraka
Kako koristiti modul sata u stvarnom vremenu (DS3231): DS3231 je jeftin, iznimno točan I2C sat u stvarnom vremenu (RTC) s integriranim temperaturno kompenziranim kristalnim oscilatorom (TCXO) i kristalom. Uređaj ima ulaz za bateriju i održava točno mjerenje vremena kada je glavno napajanje
Rubikova kocka s povezom s povezom u stvarnom vremenu koristeći Raspberry Pi i OpenCV: 4 koraka
Rubikova kocka s povezom s povezom u stvarnom vremenu pomoću Raspberry Pi-a i OpenCV-a: Ovo je druga verzija Rubikove alate za kocke napravljena za rješavanje povezanih očiju. Prvu verziju razvio je javascript, možete vidjeti projekt RubiksCubeBlindfolded1 Za razliku od prethodne, ova verzija koristi biblioteku OpenCV za otkrivanje boja i e
Mjerač razine vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač razine vode u stvarnom vremenu: Ove upute opisuju kako izgraditi jeftino mjerač razine vode u stvarnom vremenu za upotrebu u iskopanim bunarima. Mjerač razine vode dizajniran je tako da visi unutar iskopanog bunara, mjeri razinu vode jednom dnevno i šalje podatke putem WiFi -a ili mobilne veze
Mjerač temperature vode, vodljivosti i razine vode u bunaru u stvarnom vremenu: 6 koraka (sa slikama)
Mjerač temperature vode, vodljivosti i razine vode u zdencu u stvarnom vremenu: Ove upute opisuju kako izgraditi jeftin mjerač vode u stvarnom vremenu za praćenje temperature, električne vodljivosti (EC) i razine vode u iskopanim bunarima. Mjerač je dizajniran da visi unutar iskopanog bunara, mjeri temperaturu vode, EC i
Iscrtavanje grafikona u stvarnom vremenu na Androidu od Arduina preko HC-05: 3 koraka
Iscrtavanje grafikona u stvarnom vremenu na Androidu od Arduina preko HC-05: Hej, evo vodiča kako iscrtati grafikon vrijednosti u stvarnom vremenu iz mikrokontrolera, poput Arduina, u aplikaciju. Koristi Bluetooth modul poput HC-05 da djeluje kao uređaj za razmjenu poruka za prijenos i primanje podataka između Ar