Mundarija:

Postshirt: Real vaqtda kiyiladigan holatni aniqlash: 9 qadam
Postshirt: Real vaqtda kiyiladigan holatni aniqlash: 9 qadam

Video: Postshirt: Real vaqtda kiyiladigan holatni aniqlash: 9 qadam

Video: Postshirt: Real vaqtda kiyiladigan holatni aniqlash: 9 qadam
Video: ТЕЗ БУШАНИШЛИКНИ ТАБЛЕТКАЛАРИ 2024, Iyul
Anonim
Image
Image
Postshirt: Haqiqiy vaqtda kiyiladigan holatni aniqlash
Postshirt: Haqiqiy vaqtda kiyiladigan holatni aniqlash

Postshirt - bu Adafruit Featherdan Bluetooth orqali Android ilovasiga akselerometr ma'lumotlarini uzatuvchi va tasniflaydigan real vaqtda simsiz holatni aniqlash tizimi. To'liq tizim real vaqtda aniqlay oladi, agar foydalanuvchining holati yomon bo'lsa va u egilib qolganda push -bildirishnoma yaratsa, bu aniqlash yurish paytida ham ishlaydi.

Ta'minotlar

Elektronika

1 x Android smartfoni

1 x Adafruit patlari

1 x lityum -ion polimer batareyasi - 3.7v 100mAh (simsiz ishlatish uchun ixtiyoriy)

2 x ADXL335 uch o'qli akselerometr

Materiallar

Ulanish simlari

Lenta rulosi

1 -qadam: kerakli IDE va kutubxonalarni o'rnating

Adafruit patlari

Avval Arduino IDE -ni o'rnating va keyin Adafruit nRF51 BLE kutubxonasini o'rnatish bo'yicha qadamlarni bajaring

Jupyter daftarchasi

Avval Jupyter Notebook -ni, so'ngra quyidagi kerakli kutubxonalarni o'rnating

  • https://scikit-learn.org/stable/
  • https://github.com/nok/sklearn-porter

Android

Android Studio -ni o'rnating

Loyiha kodi

GitHub -dan barcha loyiha kodlarini yuklab oling

2 -qadam: Akselerometrlarni tuklarga ulang

Akselerometrlarni tuklarga ulang
Akselerometrlarni tuklarga ulang
Akselerometrlarni tuklarga ulang
Akselerometrlarni tuklarga ulang

ADXL335 ma'lumotlarini o'qish uchun ulanish simini Vin, topraklama, Xout, Yout va Zout pinlariga ulang. Ikkala akselerometr uchun ham Vin simlarining boshqa uchlarini Tukdagi 3V piniga, er uchining boshqa uchlarini esa Tukdagi tuproq piniga ulang. Birinchi akselerometrning Xout, Yout va Zout simlarini Tukdagi A0, A1 va A2 pinlariga ulang. Ikkinchi akselerometrning Xout, Yout va Zout simlarini Tukdagi A3, A4 va A5 pinlariga ulang.

Akselerometrlarni har qanday usulda ulash mumkin, lekin ochiq bo'laklarning bir -biriga tegib ketishining oldini olish uchun simlarni lehimlash, ulanish nuqtalarini elektr tasmasini o'rash yoki o'rash tavsiya etiladi.

3 -qadam: Ko'ylakka akselerometrlarni ulang

Ko'ylakka akselerometrlarni ulang
Ko'ylakka akselerometrlarni ulang

Lenta yordamida akselerometrlarni ko'ylakning orqa qismiga mahkamlang. A0-2 pimlariga ulangan akselerometr gorizontal ravishda pastki orqa o'rtasiga joylashtirilishi kerak. A3-5 pimlariga ulangan akselerometr gorizontal ravishda bo'yinning orqa tomoniga joylashtirilishi kerak. Ikkala akselerometr ham shunday joylashtirilgan bo'lishi kerakki, pinlar pastki chetiga joylashsin va datchiklar ko'ylakka tekis va mahkam o'rnashtirilsin.

Eslatma: Doimiyroq kiyinish uchun datchiklarni kiyimga tikish mumkin, lekin ular sensorli joylarning samarali joylashishini ta'minlash uchun avval ularni lenta bilan yopish va sinovdan o'tkazish kerak.

4 -qadam: Arduino -da kodni ishga tushirish

Arduino -da ishlaydigan kod
Arduino -da ishlaydigan kod

Tuklar haqida ma'lumot to'plashni boshlash uchun Arduino IDE -ni ishga tushiring va loyiha kodining Arduino bo'limi ostida GestureDataSender faylini oching. Ushbu fayl ochilganda, ishlatilayotgan taxtani va portni o'rnating, so'ngra kodni Tukga yuklash uchun "Tasdiqlash" va "Yuklab olish" -ni tanlang.

5 -qadam: Android -da kodni ishga tushirish

Android -da ishlaydigan kod
Android -da ishlaydigan kod

Dasturni android -da ishga tushirish uchun avval Android Studio -ni ishga tushiring, so'ngra mavjud Android -loyihasini ochish variantini tanlang. Loyiha kodiga o'ting va "Android" papkasini tanlang. Android Studio loyiha fayllarini sinxronlashtirish uchun biroz vaqt ketadi va ba'zi kutubxonalarni o'rnatishni talab qilishi mumkin, bu variantlarni qabul qiling. Loyiha tayyor bo'lgach, Android qurilmasini kompyuterga ulang va oynaning yuqori qismidagi ishga tushirish variantini tanlang. Ko'rsatilgan oynadan qurilmani tanlang va undan keyin dasturni qurilmaga o'rnatishga ruxsat bering.

6 -qadam: Bluetooth signal ulanishini sinab ko'rish

Bluetooth signal ulanishini sinab ko'rish
Bluetooth signal ulanishini sinab ko'rish
Bluetooth signal ulanishini sinab ko'rish
Bluetooth signal ulanishini sinab ko'rish
Bluetooth signal ulanishini sinab ko'rish
Bluetooth signal ulanishini sinab ko'rish

Ilova ochilgandan so'ng, tuklar yoqilganligiga ishonch hosil qiling va telefonda paydo bo'ladigan qurilmalar ro'yxatidan Adafruit Bluefruit LE ni tanlang. Qurilma ulanishini kuting, agar ulanish birinchi marta muvaffaqiyatsiz tugasa, boshqa nosozliklarni tuzatishdan oldin ulanishni qayta urinib ko'ring. Qurilma ulangandan so'ng, "Posture Detector" modulini tanlang, agar u to'g'ri ishlasa, jonli yangilanish grafigi, shuningdek, holat va harakat haqidagi bashoratlar ko'rsatiladi. Arduino sensor ma'lumotlarini to'g'ri uzatayotganini tekshirish uchun ikkita akselerometrni tasodifiy yo'nalishda harakatlantiring va grafikdagi barcha chiziqlar o'zgarganligini tekshiring. Agar ba'zi chiziqlar doimiy ravishda tekis bo'lib qolsa, akselerometrlarning Tukga to'g'ri ulanganligiga ishonch hosil qiling. Agar hamma narsa ishlayotgan bo'lsa, ko'ylakni kiying va pozitsiyani aniqlash sizning holatingizni to'g'ri bashorat qilayotganini tekshiring. Tabriklaymiz! Siz taqib yurish holatini aniqlashni muvaffaqiyatli o'rnatdingiz. O'zingizning ma'lumotlar to'plamingizni qanday yaratishni va o'z holatingizni aniqlashni sozlashni o'rganish uchun ushbu ko'rsatmalarni davom ettiring.

7 -qadam: Shaxsiy ma'lumotlaringizni yig'ish

Shaxsiy ma'lumotlaringizni yig'ish
Shaxsiy ma'lumotlaringizni yig'ish
Shaxsiy ma'lumotlaringizni yig'ish
Shaxsiy ma'lumotlaringizni yig'ish

O'z ma'lumotlaringizni yig'ish uchun modulni tanlash ekraniga qayting va Ma'lumotlarni yozish modulini oching. Bu ekran ochilgach, siz to'playdigan ma'lumotlarning yorlig'ini to'ldiring; Ma'lumotlaringizni osonlik bilan o'rgatish uchun, har qanday yozuvlar nomiga "yaxshi" so'zini, durustli yozuvlarga "yomon" ni kiritish kerak. To'plashni boshlash uchun "Ma'lumot yig'ish" tugmachasini bosing va kerakli harakatni bajaring, tugallangach, ma'lumotlarni tugatish va saqlash uchun tugmani yana bosing. Barcha yozilgan ma'lumotlar fayl tizimining hujjatlar papkasi ostidagi "GestureData" papkasida saqlanadi. Barcha ma'lumotlarni yozishni tugatganingizdan so'ng, fayllarni kompyuterga nusxa ko'chiring va namunaviy o'qitishni o'tkazing.

8 -qadam: Jupyter daftarida ma'lumotlarni o'rgating

Jupyter daftarida ma'lumotlarni o'rgatish
Jupyter daftarida ma'lumotlarni o'rgatish
Jupyter daftarida ma'lumotlarni o'rgatish
Jupyter daftarida ma'lumotlarni o'rgatish

Loyihaning boshlang'ich kodi Jupyter daftarchasi bo'limidagi "ma'lumotlar" papkasida o'qitish uchun ishlatilgan dastlabki ma'lumotlarni o'z shaxsiy ma'lumotlaringizga o'rgatish uchun ushbu papkadagi barcha fayllarni o'chirib tashlaydi va keyin o'z ma'lumotlaringizni papkaga ko'chiradi. Keyin Jupyter daftarini ishga tushiring va "PostureDetectorTrainer.ipynb" ni oching. Bu noutbuk ma'lumotlar papkasidagi har qanday fayllarni avtomatik ravishda yaxshi va yomon pozitsiyalar bo'yicha ajratish uchun mo'ljallangan, so'ngra modelni o'rgatish uchun tasniflash uchun chiziqli SVM -ni o'rgatish uchun "Hujayra" ochiladigan ro'yxatini tanlang va "Hammasini ishga tushirish" -ni tanlang. Noutbukni ishga tushirish uchun bir oz vaqt ketishi mumkin, lekin to'liq aniqlangandan so'ng, model uchun pozitsiyani bashorat qilishning aniqligini ta'minlaydigan nuqtaga o'ting, agar oldingi yozuvlaringiz to'g'ri va izchil asosli haqiqat ekanligiga ishonch hosil qilishingiz mumkin. Agar natijalar yaxshi ko'rinadigan bo'lsa, Java sinfi yaratilgan keyingi katakchaga o'ting. Parametr sifatida sharhlangan qismini ko'rmaguningizcha, bu katakning pastki qismiga o'ting. Ushbu qiymatlarni keyingi bosqichda kerak bo'lganda nusxa ko'chiring.

9 -qadam: Android ilovasini yangi model bilan o'zgartirish

Android ilovasini yangi model bilan o'zgartirish
Android ilovasini yangi model bilan o'zgartirish

Android ilovasidagi modelni o'zgartirish uchun loyiha tuzilmasining java bo'limi ostidagi "PostureDetectorFragment.java" fayliga o'tish uchun Android Studio dasturidan foydalaning. Ushbu faylda "Turg'unlik klassifikatori" deb yozilgan bo'limga o'ting, u Jupyter daftarchasida yaratilgan 4 ta mos keladigan 4 o'zgaruvchiga ega bo'ladi. O'zgaruvchilar nomlari p_vectors, p_coefficients va boshqalardan o'zgarmasligiga ishonch hosil qilib, Jupyter daftarchasidan nusxa ko'chirilgan qiymatlar bilan bu 4 o'zgaruvchining qiymatini almashtiring. Bu bajarilgandan so'ng faylni saqlang va ishga tushirish uchun yana ishga tushirish -ni tanlang. qurilma. Endi Posture Detector modulini ochish uchun avvalgidek bir xil amallarni bajaring va siz hozirda klassifikatorni yangi o'qitilgan modelingiz bilan ishlayotganini ko'rasiz. Agar u hali ham yaxshi ishlamasa, siz qo'shimcha ma'lumotlarni yozib, modelni qayta yaratishni o'ylab ko'rishingiz kerak. Aks holda tabriklayman! Siz hozir Postshirt -ga o'zingiz o'qitgan shaxsiy tasniflagichni import qildingiz!

Tavsiya: