뇌파로 움직이는 RC 자동차 만들기

1. 포스 트레이너

111118033430_1722652141_b

이거 참 재밌는 장치입니다. 헤드셋을 쓰고 공에 집중하면 공이 떠오릅니다. 포스(집중)가 강해질수록 공은 더 높이 떠오르는 간단한 게임이죠. 스타워즈 세대에게 이건 제다이로서의 잠재력을 가늠하는 시험과 다름 없습니다. 다쓰베이더가 양손을 올리고 포스를 내뿜는 모습이 떠오릅니다.

force

그리고 친구들과의 소모임에서 뇌파 관련된 얘기가 오가던 중 괜찮은 솔루션을 발견하고서는 '좋아. 포스(뇌파)로 움직이는 뭔가를 만들어보자.' 라고 결심했습니다.

 

2. 뇌파에 대한 오해와 진실

사람들은 흔히 '뇌파란 생각 그 자체의 전자기적 발현' 이라고 오해하는 것 같습니다. 하지만 직접 뇌파 데이터를 받아보니 '아.. 이것은 강산이 변하기 전에는 힘들겠구나' 싶었습니다. 내 생각과는 상관없이 들쭉날쭉한 뇌파 그래프를 보면 대체 저걸로 뭘 해야되나 싶습니다.

자료를 조사해보고 제가 내린 결론은, 우리같은 아마추어-취미 개발자에게 현재의 뇌파 컴퓨팅이란 구체적인 '생각'이 아니라 추상적인 '상태'에 대한 단서를 얻을 수 있는 수준이라는 겁니다. 즉, 현재 내가 편안하게 이완된 상태인지, 어떤 일이나 사물에 고도로 집중된 상태인지, 불안한 상태인지와 같은 두뇌 활동의 종합적인 상태에 대한 정보를 추출할 수 있단 겁니다. 그리고 그 마저도 정확히 추정하기 어렵습니다.(하나의 상태로 지속되는게 아니라 계속 변화합니다.) 더 고차원적인 결과를 위해서는 전문적인 측정장치와 신호처리 알고리즘이 필요하므로 취미로 접근하기 힘듭니다. 포스 트레이너는 '너는 떠오를 것이다!' 라는 생각을 읽은 것이 아니라, 공에 집중을 함으로써 생긴 뇌파의 변화를 감지한 것입니다.

하지만 뇌파에는 유용한 특징이 있습니다. 초저주파인 뇌파는 미세한 근육의 움직임에도 간섭을 받는다는 것이죠. 눈의 깜빡임과 같은 안면 근육의 움직임, 입의 움직임도 뇌파에 표현되는 거죠. 이걸 잘 이용해서 조합하면 여러가지 재밌는 걸 만들 수 있습니다. 뇌파에 관련된 실험적인 뉴스들 중 다수를 주의깊게 보면 크게 위에 얘기한 두뇌의 상태(집중, 명상 등등)와 근육의 움직임을 이용한 것이 많습니다.

 

3. 뇌파에 대한 기본 지식

뇌파에 대해 소개한 좋은 자료가 있어서 공유합니다.(Laxtha.com) 굳이 뇌파를 이용한 뭔가를 만들지 않더라도 재미로 읽을만한 자료입니다. 그리 어렵지 않습니다.

LISTINFO_33_155_101027103743

그림과 같이 일반적으로 뇌파는 진동하는 주파수의 범위에 따라 인위적으로 델타 –δ파(0.2 ~ 3.99 Hz),쎄타 –θ파(4 ~ 7.99 Hz), 알파 –α파(8 ~ 12.99 Hz), 베타 –β파(13 ~ 29.99 Hz), 감마– g(30~50 Hz) 구분하여 부릅니다

델타파는 주로 정상인의 깊은 수면 시나 신생아의 경우 두드러지게 나타납니다만약 깨어 있는 사람에게서 델타파가 평균범위보다 매우 많이 나타난다면 대뇌피질부위의 악성 종양 또는 마취혼수 상태관련 질병일 수  있습니다만약 건강한 정상인의 경우인데도 델타파가 두드러진다면 뇌파 측정시 눈을 깜박이거나 몸을 심하게 움직인 경우가 대부분입니다이러한 눈 움직임이나 몸 움직임에 의해 발생하는 잡음(artifact)의 주파수 영역은 델타파 주파수 영역과 거의 일치하므로 마치 델타파가 증가한 것처럼 보일 수 있습니다따라서 보통 장시간 뇌파 측정실험을 할 경우엔 눈움직임과 몸움직임이 필수적으로 발생하므로 보통 델타파의 파워증감은 분석요소로 고려하지 않습니다.

쎄타파는 정서안정 또는 수면으로 이어지는 과정에서 주로 나타나는 파형으로 성인보다는 어린이에게 더 많이 분포합니다쎄타파는 기억력초능력창의력집중력불안해소 등… 많은 다양한 상태와 관련되어 있다고 보고되고는 있으나연구자들마다 실험프로토콜과 피험자 특성이 조금씩 달라  각 대뇌피질 부위별 증감의 방향이 일치하지는 않는 등… 아직은 표준화된 결과들이 다소 부족한 상태입니다.  

알파파는 긴장이완과 같은 편안한 상태에서 주로 나타나며안정되고 편안한 상태 일수록 진폭이 증가합니다일반적으로 규칙적인 파동의 형태로 연속적으로 나타나며두정부와 후두부에서 가장 크게 기록되고 전두부에 가장 작게 나타나는 특성이 있습니다특히 안정된 알파파가 나타나는 때는 눈을 감고 진정한 상태에 있을 때이며눈을 뜨고 물체를 주시하거나 정신적으로 흥분하게 되면 알파파는 억제됩니다이 현상을 알파 저지라고 합니다알파파는 뇌의 발달과 밀접한 관계가 있고 유아기에는 4 ~ 6Hz에서 측정되나그 후 나이가 들수록 주파수도 증가하여 20세 정도 성인의 값에 이르게 됩니다

베타파는 주로 전두부에서 많이 나타나며깨어 있을 때말할 때와 같이 모든 의식적인 활동을 할 때 나타납니다특히불안한 상태나 긴장시복잡한 계산처리시에 우세하게 나타나기도 합니다

감마파는 베타파보다 더 빠르게 진동하는 형태로 정서적으로 더욱 초조한 상태이거나 추리판단등의 고도의 인지정보처리와 관련깊다고 보고되고 있습니다.

델타,쎄타,알파,베타감마파는 편리상 작위적으로 분류한 뇌파의 주파수 영역입니다어떤 연구자들은Low 알파, Middle 알파, High 알파등 더욱 세분화하여 분석하기도 합니다보통 특정상태의 뇌파특징을 분석하고자 하는 연구자들은 0-50Hz의 각 주파수 성분에 대한 파워의 분포를 전체적으로 보여주는 파워스펙트럼 분포를 먼저 관찰한 후,  유의미하게 변하는 주파수 성분을 찾아 의미를 부여하기도 합니다.

이러한 파워스펙트럼 분포는 머리표면의 각 측정부위마다 조금씩 다른 양상을 나타냅니다머리표면 아래의 대뇌피질은 다음 그림과 같이 전두엽(Frontal Lobe), 두정부엽(Parietal Lobe), 측두엽(Temporal Lobe), 후두엽(Occipital Lobe) 등으로 크게 나뉘며 담당 역할이 조금씩 다릅니다.  예를 들면 뒤통수에 해당하는 후두엽엔 일차시각피질이 있어 일차적인 시각정보 처리를 담당하며정수리근처에 해당하는 두정부엽엔 체성감각 피질이 있어 운동/감각관련 정보처리를 담당합니다.

출처 : Laxtha.com (http://www.laxtha.com/Product.asp?x=2&y=17&z=29&infid=155)

 

즉, 뇌파를 주파수 대역별로 분리해서 어느 주파수 대역이 뇌의 어떤 상태를 나타내 주는지를 파악하는게 핵심. 뇌파와 신호처리에 대한 좀 더 자세한 내용은 아래 링크를 참고하세요.

뇌파개요뇌파 데이터의 파워 스펙트럼 분석

 

4. 뇌파로 움직이는 RC카 구조

최종 목표는 뇌파로 제어하는 RC카 였습니다!! 누구나 그렇듯 처음에는 뇌파로 레이싱이라도 할 기세였지만… 현실의 벽을 깨닫고는 좌우 회전과 직진만 어떻게든 해보자…가 되었습니다. 재차 본인의 한계를 깨닫고는 좌우 회전은 가속도-자이로센서로 머리 움직임을 측정해서, 직진은 안면 근육의 움직임, 속도는 집중력으로 제어하도록 바꿨습니다. 그리하여 아래와 같은 결과물이 나왔습니다.

RCcar_Overview

결과물은 3파트로 이루어져 있습니다. 

4.1 뇌파 헤드셋 : NeuroSky 사의 MindWave 헤드셋을 이용했습니다. 헤드셋은 뇌파를 읽어서 안드로이드 폰으로 (블루투스로 연결) 신호를 전송합니다. 여기에 추가로 머리의 움직임을 측정해서 좌우 회전이 되도록 자세제어 센서를 달고, 적외선 통신으로 RC카(구동부)로 전송하도록 했습니다.

headset_medium

4.2 신호처리부 : 안드로이드 폰을 이용해서 뇌파 헤드셋과 연결하고 신호를 받습니다. NeuroSky에서 제공하는 안드로이드용 라이브러리를 사용하면 블루투스로 헤드셋 연결을 해주고 뇌파를 주파수 대역별로 분리도 해줍니다. 뇌파에서 받은 신호를 처리해서 RC카에 설정할 속도와 커맨드(직진, 정지)를 만듭니다. 그리고 usb 케이블로 구동부(아두이노 마이크로 컨트롤러)와 연결해서 커맨드를 전송합니다. 고로, 안드로이드 폰이 RC카 위에 탑재되어 움직입니다.

블루투스로 신호를 받고 신호처리 과정을 수행하려면 아두이노 마이크로 콘트롤러 만으로는 힘들어서 안드로이드 폰을 함께 사용 했습니다.

mindcontrol_screenshot

4.3 구동부 : 헤드셋에서 적외선 통신으로 받은 신호로 좌우 회전을 제어하고, 안드로이드 폰에서 받은 신호로 속도와 직진을 제어합니다. 아두이노 보드와 탱크키트를 이용해서 만들었습니다.

mind_control_car

 

5. 구현 과정, 기술자료

headset_medium5.1 뇌파 헤드셋 구현 과정 :

머리의 좌우 회전을 감지해서 적외선으로 전송시키기 위해서 작업을 좀 했습니다. 아두이노 나노보드 + MPU-6050 가속도 자이로 센서 + IRED 전송부 + 별도 배터리를 조합 했습니다. 작동을 시작하려면 헤드셋을 착용하고 배터리 모듈 켜고 하느라 바빠지는게 단점. 구현 과정에 대한 상세 내용과 코드는 따로 글을 작성해서 올리겠습니다.

(뇌파 기초 자료)

 

 

5.2 신호처리부 : 헤드셋에서 블루투스로 보내온 정보를 처리해서 직진/정지 제어신호를 생성해내는 안드로이드 어플리케이션입니다. 시스템을 동작하려면 헤드셋을 먼저 켜고 폰과 블루투스 연결 설정을 마친 후 구동부 위에 폰을 올려놓고 USB로 연결해야 합니다. 그러면 앱이 자동 실행됩니다. 사용된 소스코드는 아래 링크를 참고하세요.

(뇌파 제어 RC카 안드로이드 앱)

 

mind_control_car5.3 구동부 : AAA 배터리 6개를 잡아먹는 탱크 세트를 사용했습니다. 아두이노 모듈과 배터리, 폰을 모두 올려야해서 힘 좋은 넘으로 골랐습니다. 탱크 세트는 모터 2개와 하부 프레임이 포함되어 있습니다. 여기에 모터 제어용 모듈(L298N) + 아두이노 보드 + 적외선 수신기 + 폰 연결용 USB 케이블 + 포트 변환용 OTG 케이블을 조합 했습니다.

각 모듈을 사용하는 방법은 아래 링크를 참고하세요. 구현 과정에 대한 상세 내용과 코드는 따로 글을 작성해서 올리겠습니다.

(L298N 모터 드라이버)

(적외선 송수신기로 통신하기)

(OTG + USB 케이블로 아두이노-안드로이드 시리얼 통신)

 

6. 취미로 하는 피지컬 컴퓨팅 영역에서의 뇌파, 해볼만한 도전인가? 

결론부터 말하자면 뇌파로 명령을 내리고 사물을 원하는대로 움직이려 한다면 실패할 가능성이 매우 큽니다. 기술적으로도 어렵구요. 그보다는 정확하게 동작할 필요가 없는 곳에서 보조용으로 사용하는게 적합해 보입니다. 예를 들면 MP3 플레이어에서 뇌파 상태에 따라 자동으로 기분에 맞는 플레이리스트를 구성해 준다던지.. 게임을 만들어도 뇌파만으로 동작하는 게임보다는 뇌파를 게임진행의 보조 요소로 사용하는게 좋겠네요.

실제로 RC 카를 뇌파로 조정해보려 했으나 생각했던 것만큼 반응 속도도 안나오고 정확도도 많이 떨어졌습니다. 특히 뇌파 헤드셋 사용시간이 길어질수록 잡음도 많이 생기고, 뇌파가 한가지 상태로 지속되지도 않더군요. 현재까지는 매우 어설프게 움직이는 상태입니다. 시간이 날 때 전체적으로 손봐서 

보조 UI, 참조용으로 사용할 수 있는 다양한 아이디어가 있다면 분명 뇌파는 흥미로운 요소가 될겁니다.

포스가 함께하시길…

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

23 thoughts on “뇌파로 움직이는 RC 자동차 만들기

    와우

    (2014년 3월 16일 - 12:54 오후)

    포스팅하신 글 다 안읽고 성급하게 댓글달아서 죄송하네요ㅋㅋ
    하나부터 열까지 탐구와 노력이 안들어간게 없네요! 본받을 점이 많으신것 같습니다. 포스팅 해주셔서 감사합니다.ㅎㅎ

      TORTUGA

      TORTUGA

      (2014년 3월 16일 - 1:43 오후)

      변변찮은 코드와 매뉴얼이지만 하시는 프로젝트에 도움이 되었으면 좋겠네요. 즐거운 하루 되세요!

    working

    (2014년 5월 2일 - 5:04 오후)

    뇌파로 rc카를 조종하려는 글 아주 인상깊게 봤습니다.
    저도 대학교 작품으로 똑같은것을 만드려고 구상중이였는데 우연치않게 발견하게 되었네요!
    혹시 뇌파만으로 rc카 조종이 되셨는지요?
    뇌파의 정확도가 어느정도 되는지 알수있을까요?
    메일로 답변 부탁드리겠습니다.
    steve_sons@naver.com

    Cmg

    (2014년 8월 11일 - 4:40 오후)

    이번에 대학교 프로젝트에서 같은 mindwave 헤드셋으로 로봇 제어부분을 맡게 되었습니다.
    도움이 많이 되었는데요, 저는 안드로이드가 아닌 윈도우에서 이클립스를 이용하여
    Java로 개발을 하고자 합니다..
    Thinkgear.java와 dll을 사용해서 프로젝트를 만들어서 데이터값을 받는 테스트를 하고 있는데요,
    블루투스 송신 포트를 사용해서 커넥션까지는 되는데 계속 데이터값을 못받아오더군요..ㅠㅠ
    괜찮으시다면 도움말좀 받고싶은데.. 메일 한통만 부탁드려도 될까요??
    자세한 사항은 메일 답변으로 드리겠습니다. 잘봤습니다 ^^

    June

    (2014년 10월 31일 - 4:38 오후)

    잘 봤습니다. 많은 도움이 되었어요.
    이것을 구동하는 동안 스마트폰으로 다른 행위를 하는건 불가능 할까요?
    그리고 스마트폰-아두이노 통신에 usb케이블이 아닌 무선으로 하는 방법이 따로 있는지 알고 싶어요. 블루투스로 하려니 neurosky와 스마트폰이 이미 블루투스 통신이라 다중으로 연결이 되지 않네요.

    박상우

    (2014년 12월 18일 - 3:33 오후)

    와우 자료 잘봤습니다. 제가 뇌파로 자동으로 음악을 재생하는 헤드폰 류를 생각하고 있었는데
    뇌파헤드셋이 꽤가격이 비싸더군요…. 싼 뇌파측정기를 사용해도 될까요??

      TORTUGA

      TORTUGA

      (2014년 12월 22일 - 12:59 오전)

      싼 측정기라면 어떤걸 말씀하시는건지요? 저도 한번 써보고 싶네요;;

    park jin hee

    (2015년 5월 22일 - 1:16 오전)

    위 실험을 하기위해 필요한 제품들의 가격과 구매장소 좀 알 수 있을 까요?

      TORTUGA

      TORTUGA

      (2015년 5월 22일 - 4:05 오후)

      구매한지 오래되어서 저도 잘 모르겠네요. 뇌파 헤드셋은 MindWave 스타터 킷을 이용했습니다. 탱크는… 이름이 기억이 안나네요… xx로버 였던거 같은데

    EG

    (2015년 6월 22일 - 11:57 오전)

    안녕하세요ㅜ 대학교 졸업작품으로 이와비슷한것을 진행하고자 하는데.. 아직 뇌파도 잘모르고, 아두이노도 잘모르고해서 검색하다가 게시글을 발견하게 되었어요ㅜ 정확히 구동이 되셨나요? 코딩은 어떻게 하셨는지 궁금합니다ㅜㅜ 아두이노의구입출처도 알고싶구요!ㅜㅜ혹시 실례가 되지 않는다면 알려주실 수 있나요?

      TORTUGA

      TORTUGA

      (2015년 6월 25일 - 2:11 오후)

      당연히 생각대로 움직이진 않습니다. 그래도 구동은 됐습니다만…
      코딩은.. 안드로이드와 아두이노 코딩 둘 다 해줬습니다.
      아두이노 및 뇌파 헤드셋은 국내에서도 구하실 수 있습니다. 포털 검색하면 나옵니다.

    EEG

    (2015년 10월 6일 - 9:02 오후)

    안녕하세요. Atmega와 뇌파센서를 이용해서 작품을 하나 만들려고 합니다. 뇌파센서가 처음이다보니 궁금한점이 몇가지가 있습니다.
    1. 혹시 사용하신 뇌파센서 NeuroSky 사의 MindWave 는 센서안에 여려 인터페이스들.. 예를들어 노이즈 제거해주는, 증폭해주는 이런 필터들이 모두 설계 되어 있는건가요? (여러 센서를 조사해보았는데 저런 필터들은 포함되어 있지 않고 사용자가 직접 설계를 해야 된다고 해서 그렇습니다.)
    2. 휴대폰으로 센서값을 블루투스 전송 받을 수가 있다고 되어있는데.. 휴대폰에 뜨는 센서 값은 A/D변환이 되어 있는 값인가요? 즉 휴대폰으로 전송받은 센서값을 AVR로 A/D변환 없이 사용할 수 있는지가 궁금합니다.
    감사합니다.

    TORTUGA

    TORTUGA

    (2015년 11월 10일 - 12:56 오후)

    1. 네 제품 자체에서 관련된 처리를 모두 해서 결과값을 블루투스로 넘겨줍니다. 이런 처리가 안된 RAW 값을 같이 보내주므로 취사선택 후 사용하심 됩니다.

    2. 제작사의 자체 알고리즘으로 신호처리가 되어 뇌파 분석이 끝난 상태값이 넘어옵니다.

    ㅇㅇㅇ

    (2016년 3월 18일 - 10:21 오후)

    질문이 있어서 여쭤봅니다
    뇌파헤드셋만으로 직진, 정지말고 다른 동작(좌/회전, 후진)을 구현 할 수 있나요?
    여기에 나온 자이로센서나 다른 통신기기를 통해서 말고요
    답변 부탁드립니다
    제발요~

      TORTUGA

      TORTUGA

      (2016년 4월 11일 - 12:22 오전)

      가능은 하겠지만.. 제 능력으로 거기까지는 못해봤습니다. 뇌파 신호 처리가 쉽지 않아서…

    CCH

    (2016년 4월 2일 - 2:31 오후)

    혹시 탱크셋으로 어떤것을 사용했는지 알 수 있을까요?
    탱크의 무한궤도 바퀴가 필요한데 부품만 구입하니 조립이 힘들어서요

    nhk

    (2016년 5월 2일 - 12:23 오후)

    안녕하세요. 반갑슴니다. 대단한 일을 하셨네요. 나도 뇌파에 관심이 많습니다.
    뇌파로 비행체를 날려보까 합니다.
    우선, 뉴로스카이 Mind Wave 모바일 헤드셋은 어디서 얼마에 구입가능하나요?

      익명

      (2016년 7월 10일 - 3:30 오후)

      11번가에서 16만원정도에 구입가능합니다.

    이욥

    (2016년 7월 24일 - 4:19 오후)

    뇌파와 아두이노에 관심이 생겨서
    검색하던 중 들르게 되었습니다.
    흥미롭고 유용한 글 잘 읽었습니다.
    감사합니다. ^^

댓글 남기기

이메일은 공개되지 않습니다.