Posture Pal con Walabot: monitor distancia tiempo real para evitar dolor cuello y espalda
Cuida tu cuello y espalda monitorizando tu postura sentada en tiempo real. El sistema Posture Pal empareja sensor de distancia Walabot con Raspberry Pi y app Android personalizada para dar feedback instantáneo y prevenir dolor por encorvamiento.
Componentes hardware
- Walabot
- Raspberry Pi 3 Model B
Por qué construí Posture Pal
La mayoría de profesionales pasan 7–8 horas diarias en escritorio. Un problema común es cabeza inclinada adelante y columna redondeada, que cargan exceso en cervicales. Una inclinación 15° de cabeza puede duplicar peso efectivo en cuello, subiéndolo de 4,5–5,5 kg a 12 kg [1]. Estudios muestran que flexión 20° de cuello duplica probabilidad de dolor cervical laboral.
Creé Posture Pal para dar recordatorios suaves, basados en datos, que ayuden a mantener postura correcta sin equipos engorrosos. La versión actual incluye app Android open-source que notifica al usuario cuando está demasiado cerca de la pantalla.
Paso 1: Iniciar servidor en la Pi
1. Instala SDK Walabot en tu Raspberry Pi. 2. Usa Flask para exponer datos de distancia Walabot vía API web simple. 3. Clona código servidor de GitHub y ejecútalo.
pip install flask --user git clone https://gist.github.com/justinshenk/aa1e1eb7ceb87fd82f0b655b5ad20c8a posture-server cd posture-server python3 server.py
El script server.py crea dos endpoints: /set – recibe distancia actual de Walabot. /status – devuelve última distancia medida como JSON.
#!/usr/local/env python
import json
import time
from flask import Flask, jsonify, request, Response
app = Flask(__name__)
distance = 0
@app.route('/set')
def set():
global distance
distance = request.args.get('distance')
return jsonify(distance)
@app.route('/status')
def status():
return Response(json.dumps({'status': distance}))
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3000)
En segunda terminal inicia bucle medición distancia Walabot:
python3 distance.py
El script lee profundidad objetivo vía wlbt.get_targets() y lo envía al servidor Flask:
targets = wlbt.get_targets()
distance = str(targets[0].zPosCm)
import requests
r = requests.get("https://localhost:3000/set?distance=" + distance)
Paso 2: Lanzar app Android
Descarga APK precompilado o clona fuente desde GitHub: Walabot-PosturePal. La app usa GraphView para gráfica en vivo y HTTP long polling para obtener distancia cada segundo.
// Obtener distancia via JsonObjectRequest
String url = "https://192.168.0.100:3000/status"; // reemplaza con IP de tu Pi
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Double distance = 0.;
try {
distance = response.getDouble("status");
// Actualizar dataset gráfica
dataset = updateData(dataset, distance);
// Actualizar texto display
currDistance.setText("Distancia: " + String.format("%.2f", distance));
} catch (JSONException e) {
e.printStackTrace();
}
// Sondear cada segundo
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
queue.add(jsonObjectRequest);
}
}, 0, 1000);
}
}
);
Paso 3: Calibrar
Usa la app para establecer postura base y ajustar umbral de sensibilidad. Esto asegura que alertas solo disparen cuando te desvíes de tu rango cómodo.
Ver código fuente completo y documentación para construir o modificar el sistema para tu uso.
Proceso de manufactura
- Suavizado de tejidos: Cómo la loción mejora confort y rendimiento
- Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
- Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Walabot Touchpad: convierte cualquier superficie en interfaz táctil inalámbrica
- Monitor de higiene de inodoro con Walabot
- Construye un Reconocedor de Dígitos con Raspberry Pi, TensorFlow y OpenCV
- Primeros Pasos con TJBot: Construye, Configura y Controla por Voz tu Robot IA
- Construye un Segway Autoequilibrado con Raspberry Pi
- Extensión de GoPiGo v2 en Windows 10 IoT Core para Raspberry Pi 3
- Dominar los sistemas de transferencia robótica con sensores de distancia láser