2015년 12월 17일 목요일

GyroData

2축 Gyroscope position 를 얻는 예제

자이로는 익숙한 센서이니 설명은 소스코드의 주석으로 대체
1 /****************************************************************************
2 **
3 ** Copyright 2015 by Emotiv. All rights reserved
4 ** Example - GyroData
5 ** This example allows built-in 2-axis gyroscope position
6 ** Simply turn your head from left to right, up and down.
7 ** You will also notice the red indicator dot move in accordance with
8 ** the movement of your head/gyroscope
9 **
10 ****************************************************************************/

위치 : community-sdk/example/C++/GyroData
기준 commit : 6a20813229ff56cf0c0040cfddaaa086d7e27ea4
컴파일 : 정상
실행 : 비정상
결과물 : 표준 출력 과 UI

openGL 로 graphical 한 결과물을 보여주는게 목적이어서 코드량이 좀 많지만 UI 는 제외하고
gyroscope 에 대한 코드는 한줄만 보면 된다.

...
140 void updateDisplay(void)
141 {
142 int gyroX = 0,gyroY = 0;
143 IEE_HeadsetGetGyroDelta(0,&gyroX,&gyroY);
144 xmax += gyroX;
145 ymax += gyroY;
146
...

1. API 에 대한 설명은 'Return the delta of the movement of the gyro since the previous call for a particular user'

코드는 간단한데, 값은 얻어 오지 못한다.

[컴파일 방법]
$ cmake .
$ make

[실행 방법]
$ ./gyro

[결과물]

Start after 8 seconds
xmax : 0 ; ymax : 0
xmax : 0 ; ymax : 0
xmax : 0 ; ymax : 0
xmax : 0 ; ymax : 0
xmax : 0 ; ymax : 0
8초 뒤에 UI 가 뜨고 xmax 와 ymax 의 변화에 따라 빨간점이 움직여야 하지만, 0 만 주구장창 찍힌다. github 에 issue 제기를 해 두었는데 활발한 community 가 아니라서 얼마만에 확인 될지는 확신이 없지만 수정이 된다면 다시 테스트 해 봐야 겠다.

정리하면,
현재 버전에서는 gyroscope API 동작 안함!

댓글 없음: