Posture Pal met Walabot – Realtime afstandsmonitoring om nek- en rugpijn te voorkomen
Houd je nek en rug gezond door je zithouding in realtime te monitoren. Het Posture Pal-systeem koppelt een Walabot-afstandssensor aan een Raspberry Pi en een custom Android-app om directe feedback te geven en pijn door buighouding te voorkomen.
Hardwarecomponenten
- Walabot
- Raspberry Pi 3 Model B
Waarom ik Posture Pal bouwde
De meeste professionals besteden 7–8 uur per dag aan een bureau. Een veelvoorkomend probleem is een voorwaartskantelende hoofd en een afgeronde rug, wat overbelasting op de cervicale wervelkolom plaatst. Een 15° voorwaartse houding kan het effectieve gewicht op de nek verdubbelen, van 4,5–5,5 kg naar 12 kg. Studies tonen aan dat een 20° nekflexie de kans op werkgerelateerde nekpijn verdubbelt.
Ik creëerde Posture Pal om zachte, data-gedreven herinneringen te bieden die gebruikers helpen een goede houding te handhaven zonder lastige apparatuur. De huidige release bevat een open-source Android-app die gebruikers waarschuwt wanneer ze te dicht bij het scherm zitten.
Stap 1: Start de server op de Pi
1. Installeer de Walabot SDK op je Raspberry Pi. 2. Gebruik Flask om de Walabot-afstandsdata via een simpele web-API beschikbaar te maken. 3. Kloon de servercode van GitHub en draai het.
pip install flask --user git clone https://gist.github.com/justinshenk/aa1e1eb7ceb87fd82f0b655b5ad20c8a posture-server cd posture-server python3 server.py
Het server.py-script creëert twee endpoints: /set – ontvangt de huidige afstand van Walabot. /status – retourneert de laatst gemeten afstand als 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)
In een tweede terminal start de Walabot-afstandsmeterlus:
python3 distance.py
Het script leest de doeldiepte via wlbt.get_targets() en stuurt het naar de Flask-server:
targets = wlbt.get_targets()
distance = str(targets[0].zPosCm)
import requests
r = requests.get("https://localhost:3000/set?distance=" + distance)
Stap 2: Start de Android-app
Download de pre-built APK of kloon de bron van GitHub: Walabot-PosturePal. De app gebruikt GraphView voor live plotting en HTTP long polling om de afstand elke seconde op te halen.
// Afstand ophalen via JsonObjectRequest
String url = "https://192.168.0.100:3000/status"; // vervang met je Pi IP
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.GET, url, null,
new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
Double distance = 0.;
try {
distance = response.getDouble("status");
// Grafiekdataset updaten
dataset = updateData(dataset, distance);
// Tekstweergave updaten
currDistance.setText("Afstand: " + String.format("%.2f", distance));
} catch (JSONException e) {
e.printStackTrace();
}
// Elke seconde pollen
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
queue.add(jsonObjectRequest);
}
}, 0, 1000);
}
}
);
Stap 3: Kalibreren
Gebruik de app om een basishouding in te stellen en de gevoeligheidsdrempel aan te passen. Dit zorgt ervoor dat alerts alleen triggeren wanneer je buigt buiten je comfortzone.
Bekijk de volledige broncode en documentatie om het systeem voor eigen gebruik te bouwen of aan te passen.
Productieproces
- Zachtmakende Doekjes: Hoe Lotion Comfort & Prestaties Verbeteren
- Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
- Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
- Accurate temperatuurbewaking in een serverkast met Raspberry Pi
- Walabot Touchpad: Elke oppervlakte omzetten in een draadloze touch-interface
- Walabot-aangedreven toilet-hygiënemonitor
- Bouw een Raspberry Pi Cijferherkenner met TensorFlow en OpenCV
- Aan de slag met TJBot: Bouw, Configureer en Stem-bedien Je Eigen AI-robot
- Een Zelf-balancerende Segway Bouwen met Raspberry Pi
- GoPiGo v2 Uitbreiden op Windows 10 IoT Core voor Raspberry Pi 3
- Beheersing van robotische transportsystemen met laserafstandssensoren