산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Walabot 기반 Posture Pal: 실시간 거리 모니터링으로 목·허리 통증 예방

실시간 앉은 자세 모니터링으로 목과 허리 건강을 지키세요. Posture Pal 시스템은 Walabot 거리 센서를 라즈베리 파이와 커스텀 안드로이드 앱과 짝지어 즉각적 피드백을 제공하고 구부정한 자세로 인한 통증을 예방합니다.

하드웨어 구성품


Posture Pal을 만든 이유

대부분 전문직은 하루 7~8시간 책상에 앉습니다. 흔한 문제는 머리가 앞으로 기울고 등이 굽는 자세로, 경추에 과도한 하중을 줍니다. 15° 머리 전방 자세는 목에 가해지는 유효 하중을 10~12lb에서 27lb(4.5~5.5kg)로 두 배 늘립니다[1]. 연구에 따르면 20° 목 굴곡은 업무 관련 목 통증 발생 가능성을 두 배로 높입니다.

번거로운 장비 없이 사용자가 올바른 자세를 유지하도록 돕는 부드럽고 데이터 기반 알림을 제공하고자 Posture Pal을 만들었습니다. 현재 버전은 사용자가 화면에 너무 가까워지면 알림하는 오픈소스 안드로이드 앱을 제공합니다.

1단계: 파이에서 서버 시작

1. 라즈베리 파이에 Walabot SDK 설치. 2. Flask로 Walabot 거리 데이터를 심플 웹 API로 노출. 3. 깃허브에서 서버 코드 복제 후 실행.

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단계: 안드로이드 앱 실행

사전 빌드 APK 다운로드 또는 깃허브에서 소스 복제: Walabot-PosturePal. 앱은 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단계: 보정

앱으로 기준 자세 설정하고 민감도 임계값 조정. 편안한 범위를 벗어날 때만 알림 트리거되도록 보장.

전체 소스 코드와 문서 보기로 직접 시스템 구축 또는 수정.

제조공정

  1. 부드러운 티슈: 로션이 편안함과 성능을 높이는 원리
  2. 라즈베리 파이 2에서 DS18B20으로 온도 읽기
  3. 라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기
  4. 라즈베리 파이로 서버실 정확한 온도 모니터링하기
  5. Walabot 터치패드: 모든 표면을 무선 터치 인터페이스로 변환
  6. Walabot 기반 화장실 위생 모니터
  7. 라즈베리 파이로 텐서플로와 OpenCV를 활용한 숫자 인식기 만들기
  8. TJBot 시작하기: 나만의 AI 로봇 제작, 설정, 음성 제어
  9. 라즈베리 파이로 셀프 밸런싱 세그웨이 만들기
  10. 고피고(GoPiGo) v2 윈도우 10 IoT 코어 라즈베리파이 3 확장 프로젝트