Tabla de contenido:

Postshirt: Detección de postura usable en tiempo real: 9 pasos
Postshirt: Detección de postura usable en tiempo real: 9 pasos

Video: Postshirt: Detección de postura usable en tiempo real: 9 pasos

Video: Postshirt: Detección de postura usable en tiempo real: 9 pasos
Video: Postshirt Device Demo 2024, Mes de julio
Anonim
Image
Image
Postshirt: Detección de postura usable en tiempo real
Postshirt: Detección de postura usable en tiempo real

Postshirt es un sistema de detección de postura inalámbrico en tiempo real que transmite y clasifica los datos del acelerómetro desde un Adafruit Feather a una aplicación de Android a través de Bluetooth. El sistema completo puede detectar en tiempo real si el usuario tiene una mala postura y crea una notificación push cuando el usuario comienza a encorvarse, la detección también funciona mientras camina.

Suministros

Electrónica

1 x teléfono inteligente Android

1 x pluma de Adafruit

1 x batería de polímero de iones de litio - 3.7v 100mAh (opcional para uso inalámbrico)

2 x acelerómetro de triple eje ADXL335

Materiales

Conectar cable

Rollo de cinta

Paso 1: Instale las bibliotecas y los IDE necesarios

Pluma de Adafruit

Primero instale el IDE de Arduino y luego siga los pasos para instalar Adafruit nRF51 BLE Library

Cuaderno Jupyter

Primero instale Jupyter Notebook y luego las siguientes bibliotecas requeridas

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

Androide

Instalar Android Studio

Código de proyecto

Descarga todo el código del proyecto de GitHub

Paso 2: Conecte los acelerómetros a la pluma

Conecte los acelerómetros a la pluma
Conecte los acelerómetros a la pluma
Conecte los acelerómetros a la pluma
Conecte los acelerómetros a la pluma

Para leer datos de los ADXL335, conecte el cable de conexión a los pines Vin, Ground, Xout, Yout y Zout. Para ambos acelerómetros, conecte los otros extremos de los cables Vin al pin de 3V del Feather y los otros extremos de los pines de tierra al pin de tierra del Feather. Conecte los cables Xout, Yout y Zout del primer acelerómetro a los pines A0, A1 y A2 del Feather. Conecte los cables Xout, Yout y Zout del segundo acelerómetro a los pines A3, A4 y A5 del Feather.

Los acelerómetros se pueden conectar de cualquier manera, pero se sugiere soldar los cables y encoger o envolver cinta eléctrica alrededor de los puntos de conexión para evitar que las secciones expuestas entren en contacto entre sí.

Paso 3: coloque los acelerómetros en la camisa

Adjuntar acelerómetros a la camisa
Adjuntar acelerómetros a la camisa

Con cinta adhesiva, coloque los acelerómetros en la parte posterior de la camisa. El acelerómetro conectado a los pines A0-2 debe colocarse horizontalmente en el centro de la parte media-baja de la espalda. El acelerómetro conectado a los pines A3-5 debe colocarse horizontalmente en el centro de la parte posterior del cuello. Ambos acelerómetros deben estar alineados de manera que las clavijas estén a lo largo del lado inferior y los sensores deben estar pegados con cinta adhesiva y asegurados contra la camisa.

Nota: Para un uso más permanente, los sensores se pueden coser a la ropa, pero primero se deben pegar con cinta adhesiva y probarlos para garantizar que las ubicaciones de los sensores estén colocadas de manera efectiva.

Paso 4: Ejecutar código en Arduino

Ejecutando código en Arduino
Ejecutando código en Arduino

Para comenzar a recopilar datos en el Feather, inicie el IDE de Arduino y abra el archivo GestureDataSender en la sección Arduino del código del proyecto. Con este archivo abierto, configure la placa y el puerto que se está utilizando y luego seleccione "Verificar" y "Cargar" para cargar el código en el Feather.

Paso 5: Ejecutar código en Android

Ejecutando código en Android
Ejecutando código en Android

Para ejecutar la aplicación en Android, primero inicie Android Studio y luego seleccione la opción para abrir un proyecto de Android existente. Navega hasta el código del proyecto y selecciona la carpeta "Android". Android Studio tardará un poco en sincronizar los archivos del proyecto y puede solicitar la instalación de algunas bibliotecas necesarias; acepte estas opciones. Una vez que el proyecto esté listo, conecte el dispositivo Android a la computadora y seleccione la opción de ejecución en la parte superior de la ventana. Seleccione el dispositivo en el mensaje que aparece y luego deje que la aplicación se desarrolle en el dispositivo.

Paso 6: Prueba de la conexión de señal Bluetooth

Prueba de la conexión de señal Bluetooth
Prueba de la conexión de señal Bluetooth
Prueba de la conexión de señal Bluetooth
Prueba de la conexión de señal Bluetooth
Prueba de la conexión de señal Bluetooth
Prueba de la conexión de señal Bluetooth

Una vez que la aplicación esté abierta, asegúrese de que el Feather esté encendido y luego seleccione Adafruit Bluefruit LE de la lista de dispositivos que aparece en el teléfono. Espere a que el dispositivo se conecte, si la conexión falla la primera vez, vuelva a intentar conectarse antes de realizar otros pasos de depuración. Una vez conectado el dispositivo, seleccione el módulo "Detector de postura" que, si funciona correctamente, mostrará un gráfico actualizado en vivo, así como las predicciones actuales de postura y movimiento. Para probar que el arduino está comunicando los datos del sensor correctamente, mueva los dos acelerómetros en direcciones aleatorias y verifique si todas las líneas en el gráfico cambian. Si algunas líneas permanecen constantemente planas, asegúrese de que los acelerómetros estén conectados correctamente al Feather. Si todo está funcionando, póngase la camiseta y compruebe que la detección de postura predice correctamente su postura. ¡Felicidades! Ha configurado correctamente un dispositivo de detección de postura. Continúe con este instructivo para aprender cómo crear su propio conjunto de datos y personalizar su propia detección de postura.

Paso 7: recopilación de sus propios datos

Recopilación de sus propios datos
Recopilación de sus propios datos
Recopilación de sus propios datos
Recopilación de sus propios datos

Para recopilar sus propios datos, vuelva a la pantalla de selección del módulo y abra el módulo Registrador de datos. Una vez que se haya abierto esta pantalla, complete la etiqueta de los datos que recopilará; Para entrenar fácilmente con sus datos, debe incluir la palabra "bueno" en el nombre de cualquier grabación con buena postura y "mala" en cualquier grabación con postura. Para comenzar a recopilar, toque el botón "Recopilar datos" y realice la acción deseada, cuando haya terminado, vuelva a presionar el botón para finalizar y guardar los datos. Todos los datos registrados se almacenarán en una carpeta llamada "GestureData" en la carpeta de documentos de su sistema de archivos. Cuando haya terminado de grabar todos sus datos, copie los archivos a su computadora para el entrenamiento del modelo.

Paso 8: Entrenamiento de sus datos en Jupyter Notebook

Entrenamiento de sus datos en Jupyter Notebook
Entrenamiento de sus datos en Jupyter Notebook
Entrenamiento de sus datos en Jupyter Notebook
Entrenamiento de sus datos en Jupyter Notebook

El código del proyecto inicial contiene los datos originales utilizados para el entrenamiento en la carpeta "datos" en la sección Jupyter Notebook, para entrenar sus propios datos, elimine todos los archivos de esta carpeta y luego copie sus propios datos en la carpeta. Luego ejecute Jupyter Notebook y abra "PostureDetectorTrainer.ipynb". Este cuaderno está diseñado para separar automáticamente cualquier archivo en la carpeta de datos por buena y mala postura y luego entrenar una SVM lineal para la clasificación para entrenar el modelo, simplemente seleccione el menú desplegable "Celda" y seleccione "Ejecutar todo". El cuaderno puede tardar un momento en ejecutarse, pero una vez que esté completo, desplácese hasta el punto que proporcione la precisión de predicción de la postura para el modelo; si la precisión es baja, es posible que desee asegurarse de que sus grabaciones anteriores sean verdades de terreno precisas y consistentes. Si los resultados se ven bien, desplácese a la siguiente celda donde se habrá generado una clase Java. Desplácese hasta la parte inferior de esta celda hasta que vea una parte comentada como parámetros. Copie estos valores ya que los necesitará en el siguiente paso.

Paso 9: Modificación de la aplicación de Android con un nuevo modelo

Modificación de la aplicación de Android con un nuevo modelo
Modificación de la aplicación de Android con un nuevo modelo

Para cambiar el modelo en la aplicación de Android, use Android Studio para navegar al archivo "PostureDetectorFragment.java" en la sección java de la estructura del proyecto. En este archivo desplácese hacia abajo hasta la sección comentada como "Clasificador de postura" que tendrá las mismas 4 variables correspondientes que las 4 generadas en Jupyter Notebook. Reemplace los valores de estas 4 variables con los valores copiados del Jupyter Notebook, asegurándose de que los nombres de las variables no se cambien de p_vectors, p_coefficients, etc. Una vez hecho esto, guarde el archivo y seleccione la opción Ejecutar nuevamente para construir la aplicación en su dispositivo. Ahora siga los mismos pasos que antes para abrir el módulo Detector de postura y debería ver que el clasificador ahora funciona con su modelo recién entrenado. Si todavía no parece funcionar bien, debería considerar registrar más datos y volver a crear el modelo. De lo contrario, ¡felicitaciones! ¡Ahora ha importado su propio clasificador entrenado personalmente a Postshirt!

Recomendado: