Tabla de contenido:
- Suministros
- Paso 1: Instale las bibliotecas y los IDE necesarios
- Paso 2: Conecte los acelerómetros a la pluma
- Paso 3: coloque los acelerómetros en la camisa
- Paso 4: Ejecutar código en Arduino
- Paso 5: Ejecutar código en Android
- Paso 6: Prueba de la conexión de señal Bluetooth
- Paso 7: recopilación de sus propios datos
- Paso 8: Entrenamiento de sus datos en Jupyter Notebook
- Paso 9: Modificación de la aplicación de Android con un nuevo modelo
Video: Postshirt: Detección de postura usable en tiempo real: 9 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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
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
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
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
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
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
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
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
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:
Cómo utilizar un módulo de reloj en tiempo real (DS3231): 5 pasos
Cómo utilizar un módulo de reloj en tiempo real (DS3231): El DS3231 es un reloj en tiempo real (RTC) I2C extremadamente preciso y de bajo costo con un oscilador de cristal integrado con compensación de temperatura (TCXO) y un cristal. El dispositivo incorpora una entrada de batería y mantiene una indicación de la hora precisa cuando la alimentación principal a
Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: 4 pasos
Solucionador con los ojos vendados del cubo de Rubik en tiempo real con Raspberry Pi y OpenCV: esta es la segunda versión de la herramienta del cubo de Rubik hecha para resolver con los ojos vendados. La 1ª versión fue desarrollada por javascript, se puede ver el proyecto RubiksCubeBlindfolded1A diferencia de la anterior, esta versión utiliza la librería OpenCV para detectar los colores y e
Un medidor de nivel de agua de pozo en tiempo real: 6 pasos (con imágenes)
Un medidor de nivel de agua de pozo en tiempo real: estas instrucciones describen cómo construir un medidor de nivel de agua en tiempo real y de bajo costo para usar en pozos excavados. El medidor de nivel de agua está diseñado para colgar dentro de un pozo excavado, medir el nivel del agua una vez al día y enviar los datos por WiFi o conexión celular
Detección de rostros en tiempo real en RaspberryPi-4: 6 pasos (con imágenes)
Detección de rostros en tiempo real en RaspberryPi-4: En este Instructable vamos a realizar la detección de rostros en tiempo real en Raspberry Pi 4 con Shunya O / S usando la Biblioteca Shunyaface. Puede lograr una velocidad de fotogramas de detección de 15-17 en RaspberryPi-4 siguiendo este tutorial
Pulsera de detección de tiempo: 6 pasos (con imágenes)
Pulsera de detección de tiempo: la pulsera de detección de tiempo es un potenciómetro de tela. Usted selecciona la hora del día deseada haciendo contacto en la posición correspondiente de su muñeca, donde normalmente estaría su reloj. No tiene sentido más que divertido. Actualización: Usando algo de cable wr