Posture Pal:Walabot 实时距离监测,预防颈背疼痛
通过实时监测坐姿,保护颈椎和背部健康。Posture Pal 系统将 Walabot 距离传感器与树莓派、定制安卓 App 结合,提供即时反馈,防止驼背带来的疼痛。
硬件组件
- Walabot
- 树莓派 3 Model B
为什么开发 Posture Pal
大多数职场人士每天伏案 7–8 小时。常见问题是头部前倾、脊柱弯曲,给颈椎施加过大负荷。15° 前倾头姿势会使颈部有效负重从 10–12 磅 (4.5–5.5kg) 增至 27 磅 [1]。研究显示 20° 颈部前屈会使工作相关颈痛风险加倍。
我创建 Posture Pal,提供温和、数据驱动的提醒,帮助用户在无笨重设备下保持正确坐姿。当前版本包含开源安卓 App,当用户过于靠近屏幕时发出通知。
步骤 1:在树莓派启动服务器
1. 在树莓派安装 Walabot SDK。2. 用 Flask 将 Walabot 距离数据通过简单 Web API 暴露。3. 从 GitHub 克隆服务器代码并运行。
pip install flask --user git clone https://gist.github.com/justinshenk/aa1e1eb7ceb87fd82f0b655b5ad20c8a posture-server cd posture-server python3 server.py
server.py 创建两个端点:/set — 接收 Walabot 当前距离。/status — 以 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)
在第二个终端启动 Walabot 距离测量循环:
python3 distance.py
脚本通过 wlbt.get_targets() 读取目标深度并发送至 Flask 服务器:
targets = wlbt.get_targets()
distance = str(targets[0].zPosCm)
import requests
r = requests.get("https://localhost:3000/set?distance=" + distance)
步骤 2:启动安卓 App
下载预构建 APK 或从 GitHub 克隆源码:Walabot-PosturePal。App 用 GraphView 实时绘图,HTTP 长轮询每秒获取距离。
// 通过 JsonObjectRequest 获取距离
String url = "https://192.168.0.100:3000/status"; // 替换为你的树莓派 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");
// 更新图表数据集
dataset = updateData(dataset, distance);
// 更新文本显示
currDistance.setText("Distance: " + String.format("%.2f", distance));
} catch (JSONException e) {
e.printStackTrace();
}
// 每秒轮询
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
queue.add(jsonObjectRequest);
}
}, 0, 1000);
}
}
);
步骤 3:校准
用 App 设定基准坐姿,调整灵敏度阈值。确保仅在超出舒适范围时触发提醒。
查看完整源码和文档,自行构建或修改系统。
制造工艺
- 柔软纸巾:乳液如何提升舒适度与性能
- 树莓派2上使用DS18B20读取温度完整指南
- 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- Walabot Touchpad:将任意平面变身无线触控板
- Walabot 驱动的马桶卫生监测器
- 树莓派手写数字识别:TensorFlow 与 OpenCV 实战部署
- TJBot 入门指南:构建、配置与语音控制您的 AI 机器人
- 树莓派自平衡Segway搭建全攻略
- 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- 激光测距传感器助力机器人传输系统升级改造