Paso 8: Código de Arduino
El Memsic 2125 salidas de pulsos que varían de longitud basado en la aceleración. Estos pulsos se leen en el uso de la función "pulseIn()", que devuelve la longitud del pulso en microsegundos. La hoja de datos de Memsic provee una fórmula para la conversión de esta longitud de pulso de aceleración (ver imagen de la hoja de datos).
Para determinar lo que está haciendo el usuario, el Arduino calcula el rango de aceleración para el eje vertical (el eje alineado con la gravedad – este eje considera el mayor cambio cuando el usuario se mueve) durante un tiempo de aproximadamente un segundo. Esto logra encontrar los valores máximos y mínimos durante ese tiempo, y luego tomando la diferencia. Los rangos para correr, caminar y estar parado siguen siendo bastante distintos; por lo tanto puedo configurar los umbrales para definir las actividades (estos umbrales probablemente variará de persona a persona). En mi caso, pie todavía tenía un rango de 0-0.15 g, caminar tenía un rango de 0.15-0.30 g y correr tenían un rango de > 0.30 g. Tenga en cuenta que en el código he añadido un factor de 100 a mis valores de acelerómetro para evitar el uso de flotadores.
Una vez que el código ha resuelto la actividad, que controla EL cable por consiguiente. Si el usuario está de pie todavía, EL alambre permanece apagada; Si el usuario está caminando, parpadea; y si el usuario lo ejecuta permanece encendida.