Taula de continguts:
- Subministraments
- Pas 1: instal·leu biblioteques i IDE necessaris
- Pas 2: connecteu els acceleròmetres a la ploma
- Pas 3: connecteu els acceleròmetres a la samarreta
- Pas 4: Execució de codi a Arduino
- Pas 5: executar el codi a Android
- Pas 6: provar la connexió del senyal Bluetooth
- Pas 7: recopilació de les vostres pròpies dades
- Pas 8: entrenar les vostres dades al bloc de notes Jupyter
- Pas 9: modificació de l'aplicació d'Android amb un model nou
Vídeo: Postshirt: Detecció de postures portables en temps real: 9 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Postshirt és un sistema de detecció de postura sense fils en temps real que transmet i classifica les dades de l’acceleròmetre des d’un Adafruit Feather a una aplicació per Android mitjançant Bluetooth. El sistema complet pot detectar en temps real si l'usuari té una mala postura i crea una notificació push quan l'usuari comença a afluixar-se, la detecció també funciona mentre camina.
Subministraments
Electrònica
1 x telèfon intel·ligent Android
1 x Ploma d'Adafruit
1 x bateria de polímer de ions de liti - 3,7 v 100 mAh (opcional per a ús sense fils)
2 x acceleròmetre ADXL335 de tres eixos
Materials
Cable de connexió
Rotlle de cinta
Pas 1: instal·leu biblioteques i IDE necessaris
Ploma d'Adafruit
Primer instal·leu l'IDE Arduino i, a continuació, seguiu els passos per instal·lar Adafruit nRF51 BLE Library
Llibreta Jupyter
Primer instal·leu Jupyter Notebook i després les biblioteques necessàries següents
- https://scikit-learn.org/stable/
- https://github.com/nok/sklearn-porter
Android
Instal·leu Android Studio
Codi del projecte
Baixeu-vos tot el codi del projecte des de GitHub
Pas 2: connecteu els acceleròmetres a la ploma
Per llegir les dades dels ADXL335, connecteu el cable de connexió als pins Vin, terra, Xout, Yout i Zout. Per als dos acceleròmetres connecteu els altres extrems dels cables Vin al pin de 3V de la ploma i els altres extrems dels pins de terra al pin de terra de la ploma. Connecteu els cables Xout, Yout i Zout del primer acceleròmetre als pins A0, A1 i A2 del Feather. Connecteu els cables Xout, Yout i Zout del segon acceleròmetre als pins A3, A4 i A5 del Feather.
Els acceleròmetres es poden connectar de qualsevol manera, però es recomana soldar els cables i reduir la calor o embolicar cinta elèctrica al voltant dels punts de connexió per evitar que les seccions exposades entrin en contacte.
Pas 3: connecteu els acceleròmetres a la samarreta
Amb cinta adhesiva, fixeu els acceleròmetres a la part posterior de la samarreta. L'acceleròmetre connectat als passadors A0-2 s'ha de col·locar horitzontalment al centre de la part inferior de l'esquena. L'acceleròmetre connectat als passadors A3-5 s'ha de col·locar horitzontalment al centre de la part posterior del coll. Els dos acceleròmetres han d’estar alineats de manera que els passadors estiguin al llarg de la part inferior i els sensors s’hagin de gravar de forma plana i fixats contra la camisa.
Nota: per a un ús més permanent, es poden cosir els sensors a la roba, però cal gravar-los i provar-los primer per assegurar-se que els emplaçaments dels sensors estiguin posicionats eficaçment.
Pas 4: Execució de codi a Arduino
Per començar a recopilar dades al Feather, inicieu l'IDE Arduino i obriu el fitxer GestureDataSender a la secció Arduino del codi del projecte. Amb aquest fitxer obert, configureu el tauler i el port que s'utilitza i, a continuació, seleccioneu "Verifica" i "Penja" per penjar el codi a la Ploma.
Pas 5: executar el codi a Android
Per executar l'aplicació a Android, primer inicieu Android Studio i, a continuació, seleccioneu l'opció per obrir un projecte d'Android existent. Aneu al codi del projecte i seleccioneu la carpeta "Android". Android Studio trigarà una estona a sincronitzar els fitxers del projecte i pot ser que sol·liciti instal·lar algunes biblioteques necessàries. Accepteu aquestes opcions. Quan el projecte estigui a punt, connecteu el dispositiu Android a l'ordinador i seleccioneu l'opció d'execució a la part superior de la finestra. Seleccioneu el dispositiu des de la sol·licitud que es mostra i, a continuació, deixeu que l'aplicació creï al dispositiu.
Pas 6: provar la connexió del senyal Bluetooth
Un cop oberta l'aplicació, assegureu-vos que Feather està engegada i, a continuació, seleccioneu Adafruit Bluefruit LE a la llista de dispositius que apareix al telèfon. Espereu fins que el dispositiu es connecti, si la connexió falla la primera vegada que torneu a provar de connectar-vos abans de fer altres passos de depuració. Després de connectar el dispositiu, seleccioneu el mòdul "Detector de postures" que, si funciona correctament, mostrarà un gràfic d'actualització en directe, així com les prediccions actuals de postura i moviment. Per comprovar que l'arduino comunica correctament les dades del sensor, moveu els dos acceleròmetres en direccions aleatòries i comproveu si canvien totes les línies del gràfic. Si algunes línies romanen constantment planes, assegureu-vos que els acceleròmetres estiguin correctament connectats a la Ploma. Si tot funciona, poseu-vos la samarreta i comproveu que la detecció de la postura prediu correctament la vostra postura. Enhorabona! Heu configurat correctament un dispositiu de detecció de postura. Continueu amb aquest instructiu per aprendre a crear el vostre propi conjunt de dades i personalitzar la vostra pròpia detecció de postura.
Pas 7: recopilació de les vostres pròpies dades
Per recollir les vostres pròpies dades, torneu a la pantalla de selecció del mòdul i obriu el mòdul Data Recorder. Un cop oberta aquesta pantalla, empleneu l'etiqueta de les dades que recollireu; per tal d'entrenar fàcilment les vostres dades, heu d'incloure la paraula "bo" al nom de qualsevol enregistrament amb bona postura i "dolent" a qualsevol enregistrament amb postura. Per començar a recopilar, toqueu el botó "Recopila dades" i realitzeu l'acció prevista, quan hàgiu acabat, torneu a tocar el botó per acabar i desar les dades. Totes les dades enregistrades s’emmagatzemaran en una carpeta anomenada "GestureData" a la carpeta de documents del vostre sistema de fitxers. Quan hàgiu acabat de gravar totes les vostres dades, copieu els fitxers a l'ordinador per a l'entrenament del model.
Pas 8: entrenar les vostres dades al bloc de notes Jupyter
El codi inicial del projecte conté les dades originals utilitzades per entrenar a la carpeta "dades" de la secció Jupyter Notebook, per entrenar les vostres pròpies dades, suprimiu tots els fitxers d'aquesta carpeta i, a continuació, copieu les vostres dades a la carpeta. A continuació, executeu Jupyter Notebook i obriu "PostureDetectorTrainer.ipynb". Aquest bloc de notes està dissenyat per separar automàticament tots els fitxers de la carpeta de dades per una postura bona i dolenta i després entrenar un SVM lineal per classificar-lo per entrenar el model, simplement seleccioneu el menú desplegable "Cel·la" i seleccioneu "Executa tot". El portàtil pot trigar un moment a funcionar, però un cop completat, desplaceu-vos fins al punt que proporciona la precisió de predicció de postura per al model, si la precisió és baixa, és possible que vulgueu assegurar-vos que els vostres enregistraments anteriors siguin exactes i consistents. Si els resultats es veuen bé, desplaceu-vos fins a la següent cel·la on s’haurà generat una classe Java. Desplaceu-vos fins a la part inferior d'aquesta cel·la fins que vegeu una part comentada com a paràmetres. Copieu aquests valors perquè els necessiteu al pas següent.
Pas 9: modificació de l'aplicació d'Android amb un model nou
Per canviar el model de l'aplicació Android, utilitzeu Android Studio per anar al fitxer "PostureDetectorFragment.java" a la secció java de l'estructura del projecte. En aquest fitxer, desplaceu-vos cap avall fins a la secció comentada com a "Classificador de postures", que tindrà les mateixes 4 variables corresponents que les 4 generades al bloc de notes Jupyter. Substituïu els valors d'aquestes 4 variables pels valors copiats del bloc de notes Jupyter, assegurant-vos que els noms de les variables no es canvien de p_vectors, p_coefficients, etc. dispositiu. Ara seguiu els mateixos passos que abans per obrir el mòdul Detector de postures i hauríeu de veure el classificador ara treballant amb el vostre model recentment entrenat. Si encara no sembla funcionar bé, hauríeu de plantejar la possibilitat de registrar més dades i recrear el model. En cas contrari, felicitats! Ara heu importat el vostre propi classificador de formació personal a Postshirt.
Recomanat:
Com utilitzar un mòdul de rellotge en temps real (DS3231): 5 passos
Com utilitzar un mòdul de rellotge en temps real (DS3231): el DS3231 és un rellotge en temps real (RTC) I2C de baix cost i extremadament precís amb un oscil·lador de cristall compensat per temperatura (TCXO) i cristall. El dispositiu incorpora una entrada de bateria i manté una cronometra
Solucionador de ulls tapats de Rubik's Cube en temps real amb Raspberry Pi i OpenCV: 4 passos
Solucionador de ulls embenats del cub de Rubik en temps real que utilitza Raspberry Pi i OpenCV: Aquesta és la segona versió de l’eina de cubs de Rubik feta per resoldre amb els ulls embenats. La primera versió va ser desenvolupada per javascript, podeu veure el projecte RubiksCubeBlindfolded1A diferència de l’anterior, aquesta versió utilitza la biblioteca OpenCV per detectar els colors i
Mesurador de nivell d’aigua de pou en temps real: 6 passos (amb imatges)
Un mesurador de nivell d’aigua de pou en temps real: aquestes instruccions descriuen com construir un mesurador de nivell d’aigua en temps real de baix cost per utilitzar-lo en pous excavats. El mesurador de nivell d'aigua està dissenyat per penjar dins d'un pou excavat, mesurar el nivell de l'aigua un cop al dia i enviar les dades per WiFi o connexió cel·lular
Detecció de cares en temps real al RaspberryPi-4: 6 passos (amb imatges)
Detecció de cares en temps real al RaspberryPi-4: en aquest manual, farem una detecció de cares en temps real al Raspberry Pi 4 amb Shunya O / S mitjançant la biblioteca Shunyaface. Podeu assolir una freqüència de fotogrames de detecció de 15 a 17 al RaspberryPi-4 seguint aquest tutorial
Visualització de temps i temps Arduino 3 en 1: 11 passos
Pantalla de temps i temps Arduino 3-en-1: m'agraden els microcontroladors PIC i m'agrada programar en llenguatge assemblador. De fet, durant els darrers dos anys, he publicat al meu lloc web uns 40 projectes basats en aquesta combinació. Fa poc, estava demanant algunes peces a una de les meves versions preferides dels EUA