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

in #kr6 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

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

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

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


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

Sort:  

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

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

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 62817.54
ETH 2573.14
USDT 1.00
SBD 2.74