January 22, 2018

디바이스마트 미디어:

[42호]실시간 자세교정 도우미

2016 ictmain

2016 ICT 융합 프로젝트 공모전 우수상

실시간 자세교정 도우미

 

 

글 | 성균관대학교 구기원, 명지대학교 하진수, 한양대학교 이기범

 

심사평

JK전자 의자에 앉아 있는 시간이 점점 많아지는 현대사회에서 앞으로 꼭 필요한 작품이네요. 특히나 모바일 디바이스가 많아지면서 업무시간 뿐만이 아니라 이동중에도 모바일 디바이스를 이용하게 됨으로써 예전보다 훨씬 많은 시간을 좋지 못한 자세를 유지하게 되면서 여러가지 관절 관련 질환이 늘어나고 있습니다. 상용화가 된다면 대단히 인기가 좋을것 같네요.

뉴티씨 자세는 오랜기간 만들어지는 것으로, 몸의 형상과 균형을 좌우하여 개인의 장기적인 건강에 치명적으로 관여하게 된다. 사람의 자세를 PC에 집어 넣어서 유니티를 통하여 가상인물로 구현한 점은 매우 높은 점수를 주었다. 하지만, 실제로 자세를 교정하는 기기와 연결하여, 자세교정용 건강기기로 거듭난다면 더 좋은 작품이 되었을 것 같다. 허리가 구부정한 경우가 많아 컴퓨터 등의 부작용이 있는데, 이를 이 작품이 진화한 컴퓨터 교정기를 통하여 간단히 훈련받을 수 있다면 좋을 것 같아 아쉽고, 앞으로 기대도 된다.

칩센 거북목 예방하는 센서로 아이디어가 좋다. 재미있는 발상이고 개발과정이다.

위드로봇 작품의 완성도가 무척 높습니다. 단순한 측정을 넘어서 분석, 평가를 통해 사용자에게 피드백을 줄 수 있도록 만든 부분이 훌륭합니다. 보고서의 완성도도 뛰어나며, 상품성이 충분한 수준까지 제작한 것으로 보입니다.

개요

작품 개요
우리 작품은 자세교정을 목적으로 만든 웨어러블이다. 자세교정의 원리는 스포츠 웨어의 등과 허리 부분에 각도 측정 센서를 부착한다. 두 각도 센서의 측정된 각도 값 차이가 오차 범위를 넘어가면 신호를 주어 사용자 스스로 자세를 바로할 수 있도록 설계했다. 기존 자세교정 제품과는 달리 이동성, 정확성, 편리성을 갖춘 제품이다. 또한 핸드폰 앱을 통해 자신의 자세를 실시간으로 확인할 수 있도록 했다.

목적
작품의 주목적은 바른 자세를 습관화하여 허리·목 디스크를 예방하는 것이다. 책상에 앉아 있는 시간이 많아 발생하는 허리·목 디스크를 예방함으로써 그로 인한 합병증을 예방하고 경제적 이득도 기대할 수 있을 것이다. 우리는 디스크 예방을 넘어 ‘원격 진료’, ‘개인 운동 활용’, ‘과학적 훈련기법 활용’까지도 기대한다.

작품 설명

Software 구성
· AVR : avr studio를 통해 코딩가능하며 웨어러블 디바이스로부터 각도 값을 받아서 용도에 맞게 계산한다.
· Android : AVR에서 전송된 데이터를 소팅 후 Unity로 데이터를 넘겨준다.
· Unity : Android에서 전송된 데이터를 소팅한다.
· SQLite : AVR에서 전송된 데이터들을 데이터베이스에 입력하고 원하는 형태로 출력한다.

Software 흐름도 및 클래스 다이어그램

42 ict 실시간 자세교정 (1)

42 ict 실시간 자세교정 (2)

본 시스템의 시스템구성도(도면1)에 따르면 무선센서에서 보내지는 센서 값을 AVR부로 송신하고 이를 본체에 달린 시스템의 연산에 의해 정제해 Android부로 송신 후, Unity3D부 내부 엔진을 이용하여 3D모델을 움직이고 이를 디스플레이부에 표시한다. 또한 정제된 값을 SQLite 테이블에 입력하고 이를 통해 입력 값들의 통계적인 결과를 디스플레이부에 출력해준다. 본 시스템의 자세한 플로우차트는 첨부된 도면2와 같으며, 시스템 전반에 대한 실제 움직임을 표현하고 있다.

Software 기능
· AVR : 3개의 센서로부터 roll, pitch, yaw값을 받는다. 통신은 적외선 통신으로 이뤄지며 초당 5~15개의 값을 받는다. 이 hex 값을 avr에서 받은 후에 각도 값 변환 공식을 써서 실제 우리가 인지하기 쉬운 각도 값으로 바꾼다. 이때 만약 실시간 측정 스위치를 통해서 인터럽트 값이 들어오면 값은 계속적으로 저장->덮어쓰기를 반복한다. 이때 또 인터럽트가 calibration(눈금조정) 스위치를 통해서 들어오면 최근 100개의 값을 정자세의 값으로 인지하여 평균을 내고 블루투스 모듈을 통해서 앱으로 송신한다. 이후 다시 실시간 검사 스위치를 누르면 앱으로 실시간 각도값을 송신한다. 그리고 목부분의 센서와 허리위쪽의 roll 값의 차이를 계산하여 만약 차이값이 (10도이상&&5초이상) 지속될 경우 avr에 장착된 진동센서를 울려준다.
· Android : AVR에서 전송된 데이터를 소팅한다. 소팅된 데이터를 8가지 파라미터로 구분한 후 데이터를 저장후 Unity로 전송한다. 4가지 기준값을 갖는 파라미터와 실시간으로 적용되는 4가지 센서값을 바탕으로, 기준자세를 기반으로 한 상대적인 허리각도를 측정한다. 이후 측정값이 정자세로부터 10도이상 차이가 나는 경우 진동을 울려준다.
· Unity : Android에서 전송된 데이터를 소팅한다. 소팅된 데이터를 Object에 적용하여 물체를 움직인다. 소팅된 데이터에 따른 특이값(잘못된 허리각도)을 검출시 디스플레이부(의자부분)의 색을 변경시켜 사용자가 이를 쉽게 확인할 수 있다.
· SQLite : Android에서 전송된 데이터를 SQLite의 DB에 저장한다. 저장된 데이터를 허리각도 종류별 hj(3가지)로 각각 평균을 출력한다. 사용자의 선택에 따라서 시간별, 일별, 월별로 통계 데이터를 출력해 보여준다.

프로그램 사용법
※ 무빙을 통하여((ex)옆으로 밀기, 두 손가락으로 잡아당기기 등)화면을 옆이나 위에서 바라볼 수 있다.

42 ict 실시간 자세교정 (3) 42 ict 실시간 자세교정 (4) 42 ict 실시간 자세교정 (5) 42 ict 실시간 자세교정 (6) 42 ict 실시간 자세교정 (7)
개발환경 (언어, Tool, 사용시스템 등)
· 개발언어 : C, JAVA, javascript, C#, SQLite
· 개발Tool : AVR studio, Eclipse, Unity3d, Monodevelop
· 사용시스템 : Android
· OpenSource : BlueTerm(hyperterminal Application)

하드웨어 구성

42 ict 실시간 자세교정 (8)

9축 무선 센서 3ea를 사용하여 일상생활에서도 편리하게 사용할 수 있는 웨어러블 디바이스 기능을 구현하였다. 현재 6축을(3축 자이로센서, 3축 가속도센서) 사용했지만 이후에 더욱더 정밀한 자세데이터 출력을 위해 9축 무선센서를 사용하였다. 1cell 리튬폴리머배터리 충전회로를 내장하고 있으며 32mm X 24mm의 초소형 사이즈로 크기와 무게 면에서 큰 장점을 가지기 때문에 일상에서도 지장 없이 사용할 수 있다.

42 ict 실시간 자세교정 (1) 42 ict 실시간 자세교정 (9) 42 ict 실시간 자세교정 (10)
2.4GHz 무선 수신기로써 허리 및 목의 6축 센서로부터 받은 데이터 최대 100개를 무선 수신 및 처리를 할 수 있으며, 통신 속도는 9600bps~921600bps를 갖는다. RF SMA 커넥터에 안테나를 연결하여 데이터 수신을 원활하게 하며, 데이터 수신 상태를 수신 LED를 통해 확인할 수 있다.

42 ict 실시간 자세교정 (2)
atmega128(AVR)은 16MHz, 8bit microcontroller로써 RISC 구조를 갖는다. 또한 비휘발성 메모리이며 8 channel, 10bit ADC의 형태를 갖는다.

42 ict 실시간 자세교정 (12)

 

42 ict 실시간 자세교정 (13)

하드웨어 흐름도
본 디바이스의 전체적인 작동 흐름(도면4)에 따르면 웨어러블 디바이스에 장착되어 있는 6축 무선 센서에서 사용자의 목, 등, 허리 각도들을 측정한다. 그 후에 센서 수신기에 각도 값들을 전송을 한 후에 종합된 값들을 atmega128(AVR)로 송신을 한다. 그 후 허리의 굽어짐, 양옆으로 꺾임, 뒤틀림 각도를 등 부분에서 측정된 Roll, Pitch, Yaw의 각도 값과 허리 부분의 값의 차를 이용해 계산한다. 또한, 목의 굽어짐을 판단하기 위해 목 부분과 등 부분의 Roll 각도 값의 차를 이용하여 계산한다.
처음에 사용자의 맞춤형 바른 자세 각도를 Calibration한 후, 바른 자세의 오차범위에서 벗어나게 되면 진동센서에서 진동을 주어 사용자가 곧 바로 자세를 고칠 수 있게끔 하였다. 또한, AVR의 연산에 의해 정제된 값을 핸드폰의 Application으로 송신하여, 실시간으로 사용자가 자신의 자세를 3D display로 확인할 수 있게끔 하여 시각화에 의한 편리함을 주었다. 진동센서와 마찬가지로 바른 자세의 오차를 벗어나는 불량한 자세를 할 때, 핸드폰의 진동 및 Application 화면을 색깔 변화를 주어서 사용자가 한 번 더 자세를 고칠 수 있게끔 도움을 주었다. Roll, Pitch, Yaw의 바른 자세에 대한 오차의 Display 색 변화는 다음과 같다.

42 ict 실시간 자세교정 (14)

이로써 사용자가 굽어짐, 양옆으로 휘어짐, 뒤틀어짐 중 어느 자세로 불량한지를 파악하여 자세를 고치기도 쉬울 것이고, 어느 자세로 자주 불량 했는지도 파악하기 쉬울 것이다.
거기서 끝이 아니라 측정된 데이터 값들을 데이터베이스화하여 일, 주, 월, 년 단위로 통계치를 표시해줘서 얼마만큼 자신의 자세가 나아지고 있는지도 파악할 수 있도록 했다. 이에 따라 사용자가 자세를 고치는 데 더욱 동기부여를 가질 수 있을 것이다.

42 ict 실시간 자세교정 (15)

하드웨어 기능
·  웨어러블 디바이스 : 허리의 각도를 정확하게 측정하기 위해 몸에 안정감 있게 달라붙고, 편안함을 주는 스포츠 웨어에 센서를 부착한다. 또한, 목의 각도를 측정하기 위해 여름에는 쿨링 목토시, 겨울에는 워머에 센서를 부착한다.

· 6축 무선 센서 3ea : 웨어러블 디바이스를 통해 목, 등, 허리에 장착하여 6축의 각도를 측정한 후 그 값들을 센서 수신기로 송신 한다.

· 센서 수신기 : 6축 무선 센서로 부터의 데이터 값들을 수신한 후 종합하여, 그 값을 atmega128(AVR)로 송신한다.

· atmega128(AVR) : 센서로부터 수신한 데이터 값들을 용도에 맞게 계산한다. 허리와 등 부분에서 측정된 Roll, Pitch, Yaw 각도들의 차를 계산하여 허리의 굽힘, 양옆으로 꺾임, 뒤틀림 각도를 파악한다. 또한, 목과 등 부분에서 측정된 각도의 차를 계산하여 목의 굽어짐 정도를 파악하여 거북목을 예방할 수 있도록 한다. 거북목 예방 부분에서는 목의 굽은 정도만 측정하면 되기 때문에 Roll의 값만 이용해서 연산한다.

· 스위치 : 바른 자세 Calibration 등, 장치가 용도에 맞게 여러 가지 작동을 하도록 한다.

· Led : 데이터 값들이 제대로 수신되고 있는지를 파악한다.

· 진동센서 : 바른 자세의 오차범위를 벗어나게 되면 진동을 울려 사용자가 파악할 수 있도록 해준다.

프로그램 설명
파일 구성
AVR

void LCD_init(void) //LCD를 추가하여 사용하는 경우 lcd를 위해 포트를 초기화시키는 함수이다.(현재 장치는 크기를 줄이기 위해 lcd를 사용안하고 있음)
void LCD_INT(int num) // LCD를 통하여 정수값 출력
void LCD_String(char str[]) // LCD를 통하여 캐릭터 배열 출력(문자열 출력)
void Control(unsigned char byte) // LCD 제어 함수

void TX0_CHAR(char ch) // uart 0 번을 통한 캐릭터 송신함수
void TX0_str(char *str) // usart 0번 송신 함수 스트링
void TX1_CHAR(char ch)// usart 1번 송신 함수 캐릭터
void TX1_INT(int in)// usart 1번 송신 함수 인트
void TX1_str(char *str)// usart 1번 송신함수 스트링

ISR(INT2_vect)// 거북목 검사를 하게 되면 1,2번 led를 켜기(인터럽트_스위치연결)
ISR(INT0_vect)// 캘리브레이션 단추(인터럽트_스위치 연결)
ISR(INT1_vect)// 실시간 검사 시작하기
ISR(SIG_UART0_RECV)// uart1 데이터 리시브 인터럽트_각도를 받아서 계산하여 uart0으로 송신_ uart0에 연결된 블루투스 모듈을 통해 휴대폰으로 각도값 송신
ISR(SIG_UART1_RECV)// uart0 데이터 리시브 인터럽트_ 휴대폰 앱으로부터 받은 값을 구분하여 직접적으로 하드웨어 스위치를 누를 필요없이 하드웨어 조종 가능.

Android
· BlueTurn.java : Android 플랫폼과 AVR간의 BlueTooth 통신을 가능하게 한다.
· Hellotwo.java : Android Input/Output 내부처리 부분.
· unity-classes.jar : Unity Class를 Import하여 안드로이드에서 사용가능하게 한다.
· UnityPlayerNativeActivityR.java : Android와 Unity를 연동하는 부분.

Unity3D
· Standard Assets 폴더 : Unity 엔진을 활용하기 위해 가져온 기본 라이브러리.
· AndroidPluginManager.cs : Unity와 Android를 연동하는 부분.
· Rotate.cs : 3D모델이 움직이는 부분.
· MoveCamera.cs : Unity 내부 카메라를 움직이는 부분(touch로 움직임)

SQLite
· Method.java : DB로 데이터를 입력하고 Android로 출력해주는 부분
· StatisticActivity.java: 통계결과를 화면에 출력해주기 위한 Activity
· MySQLiteOpenHelper.java : DB를 생성하고 테이블을 만들어주는 부분

함수별 기능
AVR
1. ISR(INT2_vect)_우선적으로 거북목 체크 스위치를 누른다. 이 인터럽트는 스위치에 연결되어 있으며 직접적으로 하드웨어 스위치와 앱화면의 버튼을 통하여 활성화되며 활성화 된 경우 led를 켜준다.
2. ISR(INT1_vect)_다음으로 올바른 자세의 평균값을 구하기 위해 실시간 각도 값을 구한다. 실시간 각도값은 Roll, pitch, yaw의 세 개의 값과 목토시의 각도값으로 웨어러블 디바이스의 센서로부터 나오고 그 값은 avr와 연결된 수신기로 들어온다. 수신기로 들어온 값은 uart를 통해 mcu를 통하여 들어오고 이 값을 가공하여 다시 uart에 연결된 블루투스 모듈을 통하여 앱으로 송신한다. (캘리브레이션을 위해 10초이상 유지 필요)
3. ISR(INT0_vect)_ 캘리브레이션 함수를 실행하며 최근 100개의 데이터 값을 평균내서 정자세에 대한 캘리브레이션 값을 저장한다.
4. ISR(INT1_vect)_ 2)와 같이 다시 실시간 자세 측정을 하게 되며 정자세 값과의 차이값을 블루투스 모듈을 통해 휴대폰 앱으로 송신한다.

Android

((String) msg.obj).split(“\\,”); //저장된 값을 sorting하기 위해 split하는 부분.
UnitySendMessage(String, “SetLog”, strSendMsg); //unity로 메시지를 보냄


Unity

AndroidJavaClass(“PackagePath”) //Android를 호출.
curActivity.Call(“CallAndroid_U”, strMsg); //Android 내에 코드 호출.
Quaternion.Euler(X, Y, Z) //Object를 XYZ축으로 XYZ각만큼 비틈.
Quaternion.Slerp(rotation, target, Time); //Object를 부드럽게 하는 함수

SQLite

Method.insert(); //Table에 데이터 입력
Method.select(); //Table로부터 데이터 출력

주요 함수의 흐름도

42 ict 실시간 자세교정 (16)

기술적 차별성
우리 기술의 차별성은 그동안 시중에 없었던 방식으로 허리의 각도 값을 측정하는 것이다. 물론 병원에서 비싼 진단기기로 측정하는 것이 더욱도 정확하지만 가격적으로 고가이고 매일 측정할 수 없으며 이동성 또한 없다. 이렇게 많은 제약사항을 우리 제품을 이용하게 되면 훨씬 줄일 수 있다. 우선 6축 센서를 통하여 웨어러블 디바이스에 장착시켜 누구든 이 장치를 손쉽게 사용할 수 있다. 물론 이 센서는 탈부착이므로 세탁을 할 때 또한 어려움이 없다.
다음으로 휴대폰 어플리케이션과 연동되어진다는 큰 장점이 있다. 자신의 값을 3d 그림을 통해서 실시간으로 확인할 수 있으며 이 값은 모두 데이터베이스에 저장이 되어서 한 달 후, 일 년 후 에도 자신의 자세의 변화를 측정할 수 있으며 의료적으로도 사용될 수 있다는 큰 장점이 있다.
현재 시중에 나와 있는 제품은 비자율적 제품들 뿐이다. 따라서 사람들은 허리가 아프면 무조건 병원에 가야 하는 병이기 때문에 큰 병에 걸릴 수 있다는 두려움을 갖고 있다. 우리제품은 자율적인 바른 자세 습관화를 만들어줄 수 있으며 수천만의 학생, 직장인에게 올바른 자세습관을 유지해서 병을 예방할 수 있으며, 수술을 받은 후인 환자에게 지속적인 관리를 해줄 수 있다.
마지막으로 중요한 장점은 바로 거북목 측정 시스템이다. 요즘 많은 사람들이 스마트폰, 컴퓨터를 장시간 이용함에 따라 거북목 증후군을 앓고 있는 사람이 많아져 사회적 이슈가 되고 있다. 우리 제품은 등에 장착한 센서와 목토시에 장착한 센서 차이값을 이용하여 일정시간 이상 각도차가 벌어져 거북목 자세가 되었을 때 사용자에게 알림으로써 거북목 증후군을 예방할수 있도록 만들었다.
또한 센서를 이용한 프로그램으로서, 실질적으로 들어오는 데이터를 기반으로 인체를 모델링한 오브젝트를 활용하여, 실제로 움직임에 따른 3D모델 오브젝트의 움직임을 쉽게 볼 수 있다. 이는 기존에 있는 그림과 글자로만 보여주는 디스플레이 방식을 뛰어넘는 실사용자가 시각적으로 접근하기 쉽게하는 효과를 갖고 있다.

응용 분야

허리 및 목 디스크 예방
허리가 건강해야 몸이 건강하다.(허리디스크 예방)

42 ict 실시간 자세교정 (17)

위와 같이 허리디스크는 고통뿐만 아니라 많은 다른 질병을 함께 유발할 수 있다. 따라서 우리 제품을 이용하면 애초에 이러한 허리디스크를 예방하는데 큰 도움이 될 수 있다.
허리디스크 수술은 척추사이의 염증을 치료하는 것이다. 때문에 재활 치료로 허리의 근육을 잡아주지 못한다면, 허리디스크가 다시 발병할 가능성이 크다. 따라서 재활치료를 통해 허리의 근육을 강화시켜 디스크 재발을 방지해야한다.

거북목 증후군(목 디스크) 예방
거북목 정의
목을 앞으로 뺀 자세를 거북목이라고 한다. 더 자세히 설명하면 전체 목뼈 수가 7개인데 정상적으로는 귀가 어깨뼈봉우리와 같은 수직면 상에 있고 7개의 목뼈는 앞쪽으로 볼록하게 휘어서 배열되어 있다. 이를 경추 전만이라고 한다. 거북목 자세는 아래쪽 목뼈는 과하게 구부러지는 방향으로 배열되고 위쪽 목뼈와 머리뼈는 머리를 젖히는 방향으로 배열되어 전체적으로 목뼈 전만이 소실되고 머리가 숙여지지 않은 상태에서 고개가 앞으로 빠진 자세이다.

원인
나이가 들수록, 근육이 없을수록 거북목이 잘 생긴다. 그러나 컴퓨터를 많이 하는 요즘에는 연령, 성별에 관계없이 호발한다.

치료
기본적 치료는 어깨를 펴고 고개를 꼿꼿이 하는 것이다. 아울러 20~30분에 한 번씩 목을 스트레칭해 주면 큰 도움이 된다.

제품을 이용한 거북목 예방
목의 휨 정도에 따라 실시간으로 진동을 통해 사용자에게 알려주기 때문에 거북목 증상을 예방할 수 있다.

42 ict 실시간 자세교정 (3)

경제적 효과

42 ict 실시간 자세교정 (18)

척추 측만증 예방으로 치료비용 절감
척추 측만증 수술과 치료비용은 정확히 공개된 것은 없지만, 측만증을 치료하려면 수백만원 이상의 비용이 든다는 것으로 알려져 있다. 우리는 웨어러블을 이용하여 측만증을 예방하고 경제적 측면에서도 상당한 이득을 볼 것이라 예상한다.

의사와 원격 진료
S·U·S의 기능 중 하나는 환자의 데이터화된 환자의 상태를 축적하는 것이다. 우리는 축적된 데이터를 의사에게 전송함으로써 의사가 환자의 허리 상태를 파악할 수 있게 할 것이다. 이것은 환자가 직접 의사를 찾아가지 않아도 치료를 받을 수 있도록 도울 것이다.

바른 자세로 운동하기
스쿼트, 데드리프트 등 개인 피트니스 운동은 바른 자세를 유지로 운동하는 것이 운동 효과와 허리통증 등의 역효과를 방지할 수 있는 유일한 길이다. 예를 들어 스쿼트 운동을 할 때, 허리와 등을 곧게 펴고 무릎의 구부림 정도가 중요한데, 우리제품을 사용하여 각도를 설정하고 정해진 각도를 벗어났을 때 알림을 주는 방식으로 바른 자세를 유지할 수 있다. 이를 통해서 초보자들도 비싼 개인 트레이너를 구하지 않고 바른 자세로 운동을 할 수 있을 것으로 예상된다.

과학적 훈련기법 활용
스포츠는 과학이다. 뉴스를 통해 과학적 훈련기법을 통해 선수들의 기량을 향상시킨 것을 자주 접할 수 있다. 이처럼 스포츠에서도 선수의 자세가 중요한 것은 부정할 수 없다. 골프가 그 하나의 예이다. 골프 선수의 허리와 무릎 굽힘, 팔의 각도 하나하나 선수들의 성적에 영향을 줄 수 있다. 우리 제품을 사용함으로써 선수들의 자세를 교정하고 기량을 향상 시킬 수 있을 것으로 생각한다.

개발 단계

42 ict 실시간 자세교정 (19)
기타

42 ict 실시간 자세교정 (20) 42 ict 실시간 자세교정 (5) 42 ict 실시간 자세교정 (21) 42 ict 실시간 자세교정 (22) 42 ict 실시간 자세교정 (23) 42 ict 실시간 자세교정 (24) 42 ict 실시간 자세교정 (25) 42 ict 실시간 자세교정 (26) 42 ict 실시간 자세교정 (27) 42 ict 실시간 자세교정 (28)

 

 

 

 

Leave A Comment

*