Sisukord:

Postisärk: reaalajas kantava kehaasendi tuvastamine: 9 sammu
Postisärk: reaalajas kantava kehaasendi tuvastamine: 9 sammu

Video: Postisärk: reaalajas kantava kehaasendi tuvastamine: 9 sammu

Video: Postisärk: reaalajas kantava kehaasendi tuvastamine: 9 sammu
Video: Голубая стрела (1958) фильм 2024, November
Anonim
Image
Image
Postisärk: reaalajas kantavate asendite tuvastamine
Postisärk: reaalajas kantavate asendite tuvastamine

Postshirt on reaalajas traadita kehahoiaku tuvastamise süsteem, mis edastab ja klassifitseerib kiirendusmõõturi andmed Adafruit Featherilt Androidi rakendusele Bluetoothi kaudu. Kogu süsteem suudab reaalajas tuvastada, kui kasutajal on halb kehahoiak, ja loob tõukemärguande, kui kasutaja hakkab loiuma, tuvastamine töötab ka kõndimise ajal.

Tarvikud

Elektroonika

1 x Android nutitelefon

1 x Adafruit sulg

1 x liitiumioon -polümeer aku - 3.7v 100mAh (traadita kasutamiseks valikuline)

2 x ADXL335 kolmeteljeline kiirendusmõõtur

Materjalid

Ühendusjuhe

Teibirull

Samm: installige vajalikud IDE -d ja teegid

Adafruit Feather

Esmalt installige Arduino IDE ja seejärel järgige Adafruit nRF51 BLE raamatukogu installimise juhiseid

Jupyteri märkmik

Esmalt installige Jupyter Notebook ja seejärel järgmised vajalikud teegid

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

Android

Installige Android Studio

Projekti kood

Laadige GitHubist alla kogu projekti kood

2. samm: ühendage kiirendusmõõturid sulgedega

Ühendage kiirendusmõõturid sulgedega
Ühendage kiirendusmõõturid sulgedega
Ühendage kiirendusmõõturid sulgedega
Ühendage kiirendusmõõturid sulgedega

Andmete lugemiseks ADXL335 -lt ühendage ühenduskaabel Vini, maa, Xouti, Youti ja Zouti tihvtidega. Mõlema kiirendusmõõturi puhul ühendage Vini juhtmete teised otsad sulgede 3V kontaktiga ja maandusnõelte teised otsad sulgede maandusnõelaga. Ühendage esimese kiirendusmõõturi Xout, Yout ja Zout juhtmed sulgede A0, A1 ja A2 tihvtidega. Ühendage teise kiirendusmõõturi Xout, Yout ja Zout juhtmed sulgede A3, A4 ja A5 tihvtidega.

Kiirendusmõõdikuid saab ühendada mis tahes viisil, kuid soovitatakse juhtmete jootmist ja kuumtöötlemist või elektrilindi ühendamist ühenduskohtade ümber, et vältida avatud osade kokkupuudet.

Samm: kinnitage kiirendusmõõturid särgile

Kiirendusmõõturid särgi külge
Kiirendusmõõturid särgi külge

Kinnitage lindi abil kiirendusmõõturid särgi tagaküljele. Kiirendusmõõtur, mis on ühendatud nööpnõeltega A0-2, tuleks asetada horisontaalselt keskele alaselja keskele. Kiirendusmõõtur, mis on ühendatud tihvtidega A3-5, tuleks asetada horisontaalselt kaela tagakülje keskele. Mõlemad kiirendusmõõturid peaksid olema joondatud nii, et tihvtid oleksid piki alumist külge ja andurid tuleks kleepida tasaseks ja kinnitada särgi vastu.

Märkus: Püsivama kandmise jaoks võib andurid õmmelda rõivaste külge, kuid need tuleks kõigepealt teibiga kinnitada ja testida, et tagada andurite paigutuse tõhus asukoht.

Samm: koodi käitamine Arduino'is

Arduino käitamise kood
Arduino käitamise kood

Sulgede kohta andmete kogumise alustamiseks käivitage Arduino IDE ja avage projektikoodi jaotises Arduino fail GestureDataSender. Kui see fail on avatud, seadistage kasutatav tahvel ja port ning seejärel valige "Kinnita" ja "Laadi üles", et kood Featherisse üles laadida.

Samm: koodi käitamine Androidis

Käivituskood Androidis
Käivituskood Androidis

Rakenduse käivitamiseks androidis käivitage esmalt Android Studio ja seejärel tehke valik olemasoleva Androidi projekti avamiseks. Liikuge projekti koodile ja valige kaust "Android". Android Studio võtab projektifailide sünkroonimiseks veidi aega ja võib nõuda mõningate nõutavate teekide installimist, nõustuge nende valikutega. Kui projekt on valmis, ühendage Android -seade arvutiga ja valige akna ülaosas käitusvalik. Valige kuvatavast viipast seade ja laske rakendusel seadmesse ehitada.

Samm: Bluetooth -signaaliühenduse testimine

Bluetooth -signaaliühenduse testimine
Bluetooth -signaaliühenduse testimine
Bluetooth -signaaliühenduse testimine
Bluetooth -signaaliühenduse testimine
Bluetooth -signaaliühenduse testimine
Bluetooth -signaaliühenduse testimine

Kui rakendus on avatud, veenduge, et sulg on sisse lülitatud, ja seejärel valige telefonis kuvatavast seadmete loendist Adafruit Bluefruit LE. Oodake seadme ühendamist, kui ühendus esimest korda ebaõnnestub, proovige enne uuesti silumist uuesti teha. Pärast seadme ühendamist valige moodul "Posture Detector", mis korraliku töötamise korral kuvab reaalajas uuendatava graafiku ning praegused kehahoia ja liikumise prognoosid. Et kontrollida, kas arduino edastab anduri andmeid õigesti, liigutage kahte kiirendusmõõturit juhuslikes suundades ja kontrollige, kas kõik graafiku jooned muutuvad. Kui mõned jooned jäävad pidevalt tasaseks, veenduge, et kiirendusmõõturid on sulgedega korralikult ühendatud. Kui kõik töötab, pange särk selga ja kontrollige, kas kehahoiaku tuvastamine ennustab teie kehahoia õigesti. Palju õnne! Olete kandeasendi tuvastamise edukalt seadistanud. Jätkake selle juhendiga, et õppida, kuidas luua oma andmestikku ja kohandada oma kehahoiakut.

Samm: oma andmete kogumine

Teie enda andmete kogumine
Teie enda andmete kogumine
Teie enda andmete kogumine
Teie enda andmete kogumine

Oma andmete kogumiseks pöörduge tagasi mooduli valikuekraanile ja avage andmesalvesti moodul. Kui see ekraan on avatud, täitke kogutavate andmete silt; et oma andmetega hõlpsasti tegeleda, peaksite hea kehahoiakuga salvestiste nimedesse lisama sõna „hea” ja kehahoiakuga salvestistele „halb”. Kogumise alustamiseks puudutage nuppu "Kogu andmeid" ja tehke kavandatud toiming. Kui olete lõpetanud, puudutage andmete lõpetamiseks ja salvestamiseks uuesti nuppu. Kõik salvestatud andmed salvestatakse teie failisüsteemi dokumentide kausta alla kausta nimega "GestureData". Kui olete kõigi andmete salvestamise lõpetanud, kopeerige failid mudeli koolitamiseks arvutisse.

8. samm: Jupyteri sülearvuti andmete koolitamine

Andmete koolitamine Jupyteri sülearvutis
Andmete koolitamine Jupyteri sülearvutis
Andmete koolitamine Jupyteri sülearvutis
Andmete koolitamine Jupyteri sülearvutis

Projekti esialgne kood sisaldab Jupyteri sülearvuti jaotises kaustas "andmed" treenimiseks kasutatud algseid andmeid, kustutades oma andmed, kustutage kõik selle kausta failid ja kopeerige seejärel oma andmed kausta. Seejärel käivitage Jupyter Notebook ja avage "PostureDetectorTrainer.ipynb". See sülearvuti on loodud andmekataloogis olevate failide automaatseks eraldamiseks hea ja halva kehahoiaku järgi ning seejärel mudeli klassifitseerimiseks lineaarse SVM -i koolitamiseks, valige lihtsalt rippmenüü "Cell" ja valige "Run All". Sülearvuti käivitamiseks võib kuluda hetk, kuid kui olete selle lõpetanud, kerige punkti, mis tagab mudeli poosiprognoosi täpsuse. Kui täpsus on madal, võiksite veenduda, et teie varasemad salvestused on täpsed ja järjepidevad. Kui tulemused näevad head välja, liikuge järgmise lahtrini, kus Java klass on loodud. Kerige selle lahtri allossa, kuni näete parameetritena kommenteeritud osa. Kopeerige need väärtused nii, nagu vajate neid järgmises etapis.

Samm: Androidi rakenduse muutmine uue mudeliga

Androidi rakenduse muutmine uue mudeliga
Androidi rakenduse muutmine uue mudeliga

Androidi rakenduses mudeli muutmiseks kasutage Android Stuudiot, et navigeerida projekti struktuuri java jaotises faili "PostureDetectorFragment.java". Kerige selles failis alla jaotiseni, mida kommenteeriti kui "Asendi klassifikaator", millel on samad 4 vastavat muutujat kui neljal, mis on loodud Jupyteri märkmikus. Asendage nende nelja muutuja väärtused Jupyteri sülearvutist kopeeritud väärtustega, veendudes, et muutujate nimesid ei muudeta p_vektorite, p_koefitsientide jms järgi. Kui see on tehtud, salvestage fail ja valige käsk Käivita, et luua rakendus omale seade. Nüüd järgige asendituvastuse mooduli avamiseks samu samme nagu varem ja peaksite nägema, et klassifikaator töötab teie äsja koolitatud mudeliga. Kui see ikkagi ei tööta hästi, peaksite kaaluma täiendavate andmete salvestamist ja mudeli uuesti loomist. Muidu palju õnne! Olete nüüd postitussärki importinud oma isiklikult koolitatud klassifikaatori!

Soovitan: