[뇌파 VR게임] #2 뇌파 Headset 연결

in kr •  6 years ago  (edited)

이전글 - [뇌파 VR게임] #1 뇌파를 이용해서 VR 게임을 만들어 보자


[게임 화면]


뇌파 Headset

뇌파를 이용하는 VR 게임이니까 당연히 뇌파를 측정할 수 있는 장치가 필요합니다. 여기서 사용할 장치는 Neurosky사의 Mindwave Mobile입니다.
image.png
출처: https://store.neurosky.com/pages/mindwave

이것은 비교적 간단한 1채널 EEG 장치입니다. EEG는 뇌의 전기 신호인데, 이 장치는 EEG 센서가 1개 입니다. 그래서 여러가지 뇌 활동을 측정하진 못합니다. 하지만 간단히 게임용으로는 적합합니다.

원래는 EEG센서가 5개인 Emotiv사의 Insight를 이용하려고 했는데, 안드로이드 연결 접속이 잘 안되고, 라이브러리 지원이 부실해서 Neurosky 제품을 사용하게 됐습니다. 이것도 안되는 것은 아닌데, 지원이 너무 부실하네요.

출처: https://www.emotiv.com/insight
Emotiv 제품 라이브러리: https://github.com/Emotiv/community-sdk

Headset 라이브러리

Neurosky 제품은 비교적 라이브러리 지원이 잘 되고 있는 거 같습니다. 최근까지도 작업이 진행되고 있고요.

개발 지원툴
http://developer.neurosky.com/docs/doku.php?id=developer_tools

Neurosky를 Unity에서 사용하는 방법은 두 가지가 있습니다.

1. Neurosky 개발 툴에서 제공하는 Unity 라이브러리를 사용하는 것입니다.

http://developer.neurosky.com/docs/doku.php?id=using_thinkgear_with_unity
이 방법은 안드로이드에서 별다르게 해줄것은 없습니다. Unity에서 다 알아서 해줍니다.

2. Neurosky를 안드로이드에서 제어하여 Unity 플러그인으로 만드는 것입니다.

https://github.com/pwittchen/neurosky-android-sdk
이 방법은 Unity를 타겟으로 한 것이 아니라 안드로이드 앱을 타겟으로 만들어졌습니다. 그래서 Unity 관련 내용은 없습니다.
저는 이전에 안드로이드에서 BLE 장치를 연결하고 제어하는 것을 안드로이드 라이브러리로 만들고 Unity에서 불러들여 사용하는 것을 포스팅했었습니다.
[Unity VR과 Android BLE] #9 Unity에서 BLE 장치 제어

첫번째 방법이 좋아보이긴 해도, 안드로이드의 기능들을 제대로 쓰지 못할 거 같아서 두번째 방법으로 하기로 정했습니다. 그리고 이전에 해봤기 때문에 쉽게 할 수 있을 줄 알았죠.

그러나!!!!

엄청 고생했습니다. 일반적인 BLE API를 제공하지 않았기 때문입니다. 제공되는 라이브러리를 잘 사용하는 수밖에 업었습니다. 이것이 안드로이드/Unity .초보 개발자에겐 엄청난 고생의 시간을 안겨 줬습니다~


두번째 방법은 차차 설명하고, 첫번째 방법에 대해서 간략히 설명하겠습니다. 간단하지만, 바로 적용하면 안되는 부분이 있어서 그 부분만 살펴보겠습니다.

NeuroSkyUnityThinkGearPlugins 사용법

라이브러리 사이트를 방문하면 매우 쉽게 사용이 가능하다고 나옵니다.

  • 라브러리를 다운로드
  • Zip 파일을 압축 풀기
  • Unity를 실행하여 Open을 실행하여 해당 폴더 선택
    Unity 버전이 다르다고 메시지가 나오는데, Continue 버튼을 누릅니다.

image.png

직후에 다음과 같으 메시지가 나옵니다.
image.png

저는 Unity 설치할 때 IOS 지원부분은 설치하지 않았기 때문에, 위 메시지가 나온 것입니다. 위 라이브러리가 기본적으로 IOS 플랫폼으로 설정되어 있는 것입니다. 안드로이드에서 개발할 것이기 때문에 Switch Platform을 클릭합니다.

조금 기다리면 다음과 같은 화면이 나옵니다.
image.png

왼쪽 Hierarchy창을 보면 이미 라이브러리를 사용할 수 있게 prefab이 있습니다. 그냥 실행시켜면 됩니다. Unity에서 Play(중앙의 play 버튼)를 해봅니다.
image.png

뭔가 되는 것 같습니다. 그러나 우리가 개발한 것은 안드로이드이기 때문에 플랫폼을 변경시켜 줍니다. 아래와 같이 Build Setting에 가서 플랫폼을 안드로이드 변경합니다.

image.png

그리고, Build를 눌러보면 아래와 같이 에러가 발생합니다.
image.png

안드로이드 플랫폼으로 바꾼 후 Player Setting에서 Publishing Settings으로 가서 아래와 같이 Keystore 부분을 Create a new keystore를 체크합니다.
image.png

다시 빌드해봅니다. 좀 전의 에러는 사라집니다.

아뿔사.. 이런 에러가 또 발생합니다.
image.png

Console창을 보면 더욱 자세히 에러의 원인이 적혀있습니다.
image.png

Unity자체적으로오 AndroidManifest.xml 파일이 있는데, 위 라이브러리의 Plugin/Android 밑에도 AndroidManifest.xml이 있습니다. 이 두개가 서로 합쳐지지 않는 에러입니다.

Console창에 제안 방법이 있지만, 그냥 아래와 같이 icon 부분을 지우니 됩니다. (아래 화면에서 하이라이트 된 부분을 삭제해야 합니다.)
image.png

다시 빌드해 봅니다. 이제야 됩니다!!!


안드로이드폰으로 테스트 해 봅니다. 앗!!! 그런데 Neurosky 제품을 가지고 계신 분들이 매우 드물겠네요. Neurosky 제품은 약 15만원 정도입니다. 후덜덜하죠? 뇌파 측정 센서도 달랑 하나 들어있으면서요.. 아마 대부분 뇌파를 분석하는 소프트웨어 비용일 것입니다. Emotiv Insight는 더 비쌉니다. 그리고 고급 소프트웨어를 사용하려면 월단위 요금을 내야 하죠. 헐~

일단 진행해보겠습니다.

안드로이드 앱을 실행하면, 화면이 엄청 작습니다.
먼저 Neurosky Mindwave를 안드로이드폰과 블루스트 페어링합니다. 이게 안되어 있으면 안됩니다.

  • Neurosky Mindwave 전원을 켭니다.
  • 먼저 Init 버튼을 누릅니다.
  • 그다음 Connect 버튼을 누릅니다. 연결에 한 30초 걸립니다.
  • Mindwave의 LED가 깜빡이다가 깜빡임이 없어지면 연결된 것입니다.
  • Mindwave를 머리에 착용합니다. (귀 클립도 반드시 찝어야 합니다.)

착용샷
image.png

Neurosky 제품의 단점은 연결하는데 30초 가까이 걸린다는 것입니다. 엄청 오래 걸려 답답합니다. 그래도 어쩔 수 없습니다.

안드로이드 화면에 이렇게 나옵니다. (확대했습니다)
image.png

뭔가 정보가 많이 나옵니다.

지금까지 첫번째 방법에 대해서 알아봤습니다. 동작하는 것을 확인했습니다. 그러나 우린 이 방법을 사용하지 않을 것입니다. 다른 방법을 사용하겠습니다.

다음에 사용할 두번째 방법을 알아보겠습니다. 이 방법이 고생을 시킨 장본인입니다!


오늘의 실습: 뇌파를 읽고 싶으신 분은 뇌파 헤드셋을 알아보세요 (저는 해당 제품과 아무런 관련이 없습니다.)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

헐~ 이런걸 직접 만드시는건가요? 전 봐도 아무것도 모르는 분야라...ㅎㅎ

있는 거 가져다가 조합하는 수준입니다 ^^;
새로운 분야는 어려움이 따르지만, 배워가는 재미가 있네요~