
Cuprins:
- Provizii
- Pasul 1: Instalați IDE și biblioteci necesare
- Pasul 2: conectați accelerometrele la pană
- Pasul 3: Atașați accelerometrele la cămașă
- Pasul 4: Rularea codului pe Arduino
- Pasul 5: Rularea codului pe Android
- Pasul 6: Testarea conexiunii semnalului Bluetooth
- Pasul 7: Colectarea propriilor date
- Pasul 8: Instruirea datelor dvs. pe Jupyter Notebook
- Pasul 9: Modificarea aplicației Android cu un nou model
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04



Postshirt este un sistem de detectare a posturii fără fir în timp real, care transmite și clasifică datele accelerometrului dintr-un Adafruit Feather într-o aplicație Android prin Bluetooth. Sistemul complet poate detecta în timp real dacă utilizatorul are o postură proastă și creează o notificare push atunci când utilizatorul începe să se înclineze, detectarea funcționează și în timpul mersului.
Provizii
Electronică
1 x smartphone Android
1 x Adafruit Feather
1 x baterie litiu-ion polimer - 3,7v 100mAh (opțional pentru utilizarea wireless)
2 x accelerometru cu trei axe ADXL335
Materiale
Sârmă de conectare
Rola de bandă
Pasul 1: Instalați IDE și biblioteci necesare
Pene de Adafruit
Mai întâi instalați Arduino IDE și apoi urmați pașii pentru a instala Adafruit nRF51 BLE Library
Notebook Jupyter
Mai întâi instalați Jupyter Notebook și apoi următoarele biblioteci necesare
- https://scikit-learn.org/stable/
- https://github.com/nok/sklearn-porter
Android
Instalați Android Studio
Codul proiectului
Descărcați tot codul proiectului de pe GitHub
Pasul 2: conectați accelerometrele la pană


Pentru a citi datele de pe ADXL335s conectați firul de conectare la pinii Vin, masă, Xout, Yout și Zout. Pentru ambele accelerometre conectați celelalte capete ale firelor Vin la pinul de 3V de pe Feather și celelalte capete ale pinilor de masă la pinul de masă de pe Feather. Conectați firele Xout, Yout și Zout ale primului accelerometru la pinii A0, A1 și A2 de pe Feather. Conectați firele Xout, Yout și Zout ale celui de-al doilea accelerometru la pinii A3, A4 și A5 de pe Feather.
Accelerometrele pot fi conectate în orice mod, dar lipirea firelor și termocontractarea sau înfășurarea benzii electrice în jurul punctelor de conectare este sugerată pentru a preveni contactul secțiunilor expuse.
Pasul 3: Atașați accelerometrele la cămașă

Folosind bandă atașați accelerometrele la spatele cămășii. Accelerometrul conectat la pinii A0-2 ar trebui să fie așezat pe orizontală la mijlocul spatelui inferior. Accelerometrul conectat la pinii A3-5 ar trebui să fie așezat orizontal în partea din spate a gâtului. Ambele accelerometre ar trebui să fie aliniate astfel încât știfturile să fie de-a lungul părții inferioare, iar senzorii să fie lipiți plat și fixați de cămașă.
Notă: Pentru o purtare mai permanentă, senzorii pot fi cusuti pe îmbrăcăminte, dar trebuie să fie lipiți și testați mai întâi pentru a vă asigura că plasarea senzorului este poziționată eficient.
Pasul 4: Rularea codului pe Arduino

Pentru a începe colectarea de date pe Feather, porniți Arduino IDE și deschideți fișierul GestureDataSender sub secțiunea Arduino din codul proiectului. Cu acest fișier deschis, setați placa și portul utilizat, apoi selectați „Verificați” și „Încărcați” pentru a încărca codul în Feather.
Pasul 5: Rularea codului pe Android

Pentru a rula aplicația pe Android, porniți mai întâi Android Studio și apoi selectați opțiunea de a deschide un proiect Android existent. Navigați la codul proiectului și selectați folderul „Android”. Android Studio va dura ceva timp pentru a sincroniza fișierele proiectului și poate solicita instalarea unor biblioteci necesare, acceptă aceste opțiuni. Odată ce proiectul este gata, conectați dispozitivul Android la computer și selectați opțiunea de rulare din partea de sus a ferestrei. Selectați dispozitivul din solicitarea care se afișează și apoi lăsați aplicația să se construiască pe dispozitiv.
Pasul 6: Testarea conexiunii semnalului Bluetooth



Odată ce aplicația este deschisă, asigurați-vă că Feather este pornit și apoi selectați Adafruit Bluefruit LE din lista de dispozitive care apare pe telefon. Așteptați ca dispozitivul să se conecteze, dacă conexiunea nu reușește prima dată, reîncercați conectarea înainte de a lua alți pași de depanare. După ce dispozitivul a fost conectat, selectați modulul "Detector de postură" care, dacă funcționează corect, va afișa un grafic de actualizare live, precum și predicțiile actuale de postură și mișcare. Pentru a testa dacă arduino comunică corect datele senzorului, mutați cele două accelerometre în direcții aleatorii și verificați dacă toate liniile din grafic se schimbă. Dacă unele linii rămân plate în mod constant, asigurați-vă că accelerometrele sunt conectate corect la Pene. Dacă totul funcționează, puneți-vă cămașa și testați dacă detectarea posturii vă prezice corect poziția. Felicitări! Ați configurat cu succes o poartă de detectare a posturii. Continuați prin acest instructiv pentru a afla cum să creați propriul set de date și să vă personalizați propria detectare a posturii.
Pasul 7: Colectarea propriilor date


Pentru a colecta propriile date reveniți la ecranul de selectare a modulului și deschideți modulul Data Recorder. După deschiderea acestui ecran, completați eticheta pentru datele pe care le veți colecta; pentru a vă antrena cu ușurință asupra datelor dvs. ar trebui să includeți cuvântul „bun” în numele oricărei înregistrări cu postură bună și „rău” în orice înregistrări cu postură. Pentru a începe colectarea, atingeți butonul „Colectați date” și efectuați acțiunea dorită, când ați terminat, atingeți din nou butonul pentru a termina și salva datele. Toate datele înregistrate vor fi stocate într-un dosar numit „GestureData” sub dosarul de documente al sistemului de fișiere. Când ați terminat de înregistrat toate datele, copiați fișierele pe computerul dvs. pentru instruirea modelului.
Pasul 8: Instruirea datelor dvs. pe Jupyter Notebook


Codul inițial al proiectului conține datele originale utilizate pentru antrenament în folderul „date” din secțiunea Jupyter Notebook, pentru instruirea propriilor date ștergeți toate fișierele din acest folder și apoi copiați propriile date în dosar. Apoi rulați Jupyter Notebook și deschideți „PostureDetectorTrainer.ipynb”. Acest notebook este conceput pentru a separa automat orice fișier din folderul de date printr-o postură bună și proastă și apoi pregăti un SVM liniar pentru clasificare pentru a antrena modelul, pur și simplu selectați meniul derulant „Cell” și selectați „Run All”. Caietul de sarcini poate dura un moment pentru a rula, dar odată complet derulați până la punctul care oferă precizia de predicție a posturii pentru model, dacă precizia este scăzută, vă recomandăm să vă asigurați că înregistrările anterioare sunt adevăruri de bază corecte și consistente. Dacă rezultatele arată bine, derulați la următoarea celulă unde va fi generată o clasă Java. Derulați până în partea de jos a acestei celule până când vedeți o porțiune comentată ca parametri. Copiați aceste valori deoarece veți avea nevoie de ele în pasul următor.
Pasul 9: Modificarea aplicației Android cu un nou model

Pentru a schimba modelul în aplicația Android, utilizați Android Studio pentru a naviga la fișierul „PostureDetectorFragment.java” din secțiunea java din structura proiectului. În acest fișier derulați în jos până la secțiunea comentată ca „Clasificator de postură”, care va avea aceleași 4 variabile corespunzătoare cu cele 4 generate în Jupyter Notebook. Înlocuiți valorile acestor 4 variabile cu valorile copiate din Notebook-ul Jupyter, asigurându-vă că numele variabilelor nu sunt modificate din p_vectors, p_coefficients, etc. dispozitiv. Acum urmați aceiași pași ca înainte pentru a deschide modulul Posture Detector și ar trebui să vedeți clasificatorul care lucrează acum cu modelul dvs. nou instruit. Dacă tot nu pare să funcționeze bine, ar trebui să luați în considerare înregistrarea datelor suplimentare și recreerea modelului. Altfel felicitari! Acum v-ați importat propriul clasificator instruit personal în Postshirt!
Recomandat:
Cum se folosește un modul de ceas în timp real (DS3231): 5 pași

Cum se folosește un modul de ceas în timp real (DS3231): DS3231 este un ceas I2C în timp real (RTC) cu cost redus, extrem de precis, cu un oscilator de cristal integrat compensat de temperatură (TCXO) și cristal. Dispozitivul încorporează o intrare a bateriei și menține o cronometrare exactă atunci când alimentarea principală la
Insignă electronică purtabilă: 6 pași (cu imagini)

Insignă electronică purtabilă: Iată un proiect minunat de întreprins dacă intenționați să mergeți la o întâlnire Hardware / Python sau intenționați să mergeți la Makerfaire local. Realizați o insignă electronică purtabilă, care se bazează pe un Raspberry Pi Zero și un afișaj PaPiRus pHAT eInk. Puteți urmări
Insignă de afișare cu matrice LED purtabilă: 8 pași (cu imagini)

Insignă cu afișaj cu matrice cu LED-uri purtabile: organizați un eveniment, o competiție sau chiar găzduiți o petrecere de ziua de naștere? Insemnele sunt un articol versatil care poate face prezentări și sărbători mult mai ușoare. Nu ați începe niciodată o conversație cu „salut, numele meu este .. ……….. " s
Răcire cu apă purtabilă: 6 pași

Răcire cu apă portabilă: Este posibil ca unii dintre voi să vă amintiți dispozitivul meu de răcire USB de 5 minute, un proiect folosit pentru a-mi răcori corpul fără să trebuiască să transpirați. Dezavantajul a fost că a durat doar aproximativ 5 minute. Datorită unei sponsorizări de la DFRobot, am putut prelungi acest timp pentru
Infigo - (o mănușă purtabilă cu inteligență artificială): 9 pași

Infigo - (o mănușă portabilă cu inteligență artificială): Infigo este o mănușă portabilă alimentată cu AI (inteligență artificială) bazată pe principiile tehnologiei de asistență (AT) care va spori productivitatea societății cu deficiențe Inteligența artificială și învățarea automată nu pot înlocui un om