본문 바로가기

Programming

EEG(뇌전도) 1채널 측정 튜토리얼 뇌파 측정

 


고대하고 고대하던 보드를 드디어 수령하였습니다 %ED%9D%91%ED%9D%91%20%EC%9C%A0%EB%A0%B9 감격스럽기 짝이 없는 순간입니다. 사실 이렇게 블로그 형식의 연구노트를 남기기 시작하면서  끝을 못봐서 올리지 못한 블로그들이 상당히 많이 있습니다 OTL%EA%B8%88%EC%A7%80   http://cafe.naver.com/brainip를 통해서 습득한 정보와 구입한 제품 바이오앰프의 사용법 및 활용 흔적을 남기고자 블로깅을 시작하지만 이 역시 끝이 날지는 장담할 수 없네요 (라고 시작부터 밑밥을 깔아 둡니다 %EC%8B%9D%EC%9D%80%EB%95%80%20%EC%9C%A0%EB%A0%B9) 각설하고 그럼 빨리 택배부터 뜯어 보도록 하겠습니다 ! 무브무브 %EB%AF%B8%EC%86%8C


                                                                                                                                                                                

  


우리는 이전까지 NeuroSky MindWave Mobile을 이용하여 측정한 값을 요리조리 만져 왔습니다. 하지만 소스가 공개된 SDK 상에도 어떻게 뇌파를 잡으며 결과 파형이 왜 그렇게 나오는지는 알 수 없었습니다 OTL%EA%B8%88%EC%A7%80 뉴로스카이와 비슷한 Emotive 사의 데이터 시트에는 SoC Chip이라는 단어가 나옵니다. 이는 아날로그 필터 없이 디지털 필터로만 구성 되어 있다는 것을 의미한다고 합니다. 디지털 필터는 원신호의 왜곡이 발생하거나 오버되면 튀어버리는 현상이 많이 발생된다고 합니다. 완벽한 아날로그적 요소를 해결하는 디지털 필터는 보기 힘드니까요. 특히 통신 주파수와 같은 높은 주파수 대역 필터는 왜곡이 생긴다 해도 영향이 적지만, 생체신호와 같은 저주파수 대역에는 이가 치명적이다고 합니다. 따라서 신호가 크게 튀지 않고 파형을 유지하는건 (뉴로스카이 및 다른 측정 장비의 경우) 자체적으로 그를 제어하는 (뇌전도 신호와는 상관이 없는) 필터가 존재해야될 것이고 이를 가지고 정확한 결과값을 만드는것은 어렵다는 것이 공통된 의견이였습니다.


그럼 이번에 구입하게 된 BioAMP는 어떨까요? 카페에 있는 스펙을 긁어와 보겠습니다. 


                                                                                    

 

■ 주요 기능 및 특징 

 

1. 국내 유일의 쌍극법 및 단극법 측정이 가능한 생체신호 측정 장치(EEG, ECG, EMG, EOG, PPG, SPO2 등) 

 

2. 국내 유일하게 BrainBay, BioExplorer 를 비롯한 국내외의 각종 전문용 소프트웨어 및 뇌파 훈련용 게임 등의 

   다양한 전문 소프트웨어를 사용할 수 있습니다.(100% 호환)

 

   BrainBay 다운로드 => http://www.shifz.org/brainbay/  (소스포함) <-장비가 없어도 사용하실수 있습니다.

   BioExplorer 다운로드 => http://www.cyberevolution.com/

   Brain-trainer 전문 분석용 =>  https://brain-trainer.com/     

 

3. 캘리브레이션을 위한 펄스파 신호 발생부(250uV, 10Hz)가 내장되어 있어서,

 

 

   고가의 시뮬레이터 장비가 없어도,  생체신호 측정을 위한 정밀 조정에 용이합니다.

 

4. 각 채널별로 Gain 정밀 조정 단자를 내장 함으로서, 보다 더 정밀 측정이 가능 합니다.

   또한, 노이즈 특성을 250nVpp 수준 이하로 대폭 향상 되어, 저노이즈를 구현 하였습니다.

   이는 수천만원대의 장비보다도 성능이 우수합니다.

 

5. Android ADK(Accessory Development Kit)와 호환이 되며, 안드로이드 폰과 연결하여, 앱 프로그램 개발 및

   로봇과 주변장치 제어에 용이합니다. 

   아두이노 MEGA2560 ADK (for Android) 보드 내장 ( http://arduino.cc/en/Main/ArduinoBoardADK )

 


일단 시작부터 ................. "국내 유일의" 라는 말이 참 멋드러지는것 같습니다. (이로 측정을 할 수 있어야 저도 멋드러질텐데 %EC%9A%B8%EC%9D%8C%20%EC%97%AC%EC%9E%90%EC%95%84%EA%B8%B0아직 5.5버전의 메뉴얼이 나오지는 않았지만, 5.2 버전과 유사하다 하시어 이를 보고 연구를 진행할 예정입니다. (사용자 메뉴얼 : http://cafe.naver.com/brainip/2601)


그럼 먼저 보드를 보면서 하나하나 배워 보겠습니다(저도 처음 접하고 잘 모르는지라 %ED%9D%91%ED%9D%91%20%EC%9C%A0%EB%A0%B9)




 



이번에 수령한 BioAMP의 외형입니다. 카페에 있는 사진이 좀 흐려서 최신폰 아이폰6의 고화질로 다시 촬영하였습니다(는 잘나지도 않은 잘난척)




 



CN 1 : 내부 센서 입력 연결 단자 (CH1+, CH1-, CH2+, CH2-, CH3+, CH3-, Ref, VGND)

CN 2 : 확장 5Lead 케이블 또는 5Lead Trunk 케이블 연결 단자 (8Pin) 

CN 3 : 5Lead 케이블 또는 5Lead Trunk 케이블 연결 단자 (6Pin)


                                                                                                                                                                                



사실 여기까지 적어두고 몇일동안 너무 머리가 아팠습니다. 처음 캘리브레이션부터 시작해서 생체신호 측정에 대해서 아무것도 모르는 상태로 시작하다 보니 PCB 보드의 단자부터 신호측정까지 1~10을 공부하며, 결국에는 EEG 1채널의 생체신호 뇌파 측정 파형을 뽑아 낼 수 있었습니다. (사실 100% 신뢰할만한 파형인지는 좀 두고봐야될 것 같습니다만 %EC%9A%B8%EC%9D%8C%20%EC%9C%A0%EB%A0%B9


그래서 제가 해온 과정을 일단 남기려고 이어서 진행하도록 하겠습니다.


먼저 캘리브레이션 입니다. BioAMP는 내장된 신호파형으로 고가의 장비 도움 없이 캘리브레이션이 가능하다고 하였습니다. 그럼 파형을 바로 봐.......보기 전에 컴퓨터랑 어떻게 연결을 해야되는지 부터 정리하겠습니다 (사실 저도 여기서도 시간을 잡아 먹은건 함정)


1. CON3 단자와 PC를 연결합니다.

이때, BioAMP에 내장되어 있는 아두이노 IDE 소프트웨어를 먼저 설치하고, 드라이버를 설치해야합니다. 

 Arduino IDE 다운로드 -> ( http://arduino.cc/en/Main/Software ) 


위의 링크에서 다운 받은 파일을 설치하고 PC에 연결하면 자동으로 드라이브가 설정되고(저 같은 경우에는 그랬습니다), 잘 설정이 되었는지 통신을 위한 포트번호가 몇번인지 확인하기 위해서 장치관리자로 가서 확인해 보겠습니다. 제어판 장치관리자에서 아래에 포트(COM & LPT)를 열어보면 아두이노 메가 보드(포트번호)가 나옵니다.




 

저는 10번포트와 연결이 되었고, 위와 같이 설정해주었습니다.


2, 생체신호측정 소프트웨어와 보드를 연결합니다.

브레인베이라는 생체신호측정 프로그램을 사용하여 파형을 확인하겠습니다. 다운로드, 사용설명서 및 한글번역은 (http://blog.naver.com/haejin5446/220373803153) 여기서 확인할 수 있습니다. 


브레인베이를 시작합니다. 



 


BioAMP와 호환이 된다고 하는 ModularEEG P2 Packetformat의 EEG 엘리먼트를 하나 추가하고 아래 Target에서 오실로스코프를 추가하여 각 채널에 물렸습니다. 바이오엠프는 3채널까지 내장되어 있으므로, 채널 3개를 물려주고 EEG 엘리먼트를 오른쪽 클릭하면 장치설정을 할 수 있는 탭이 뜨게 됩니다. 여기서 설정한 포트 번호(PCB보드와 연결된 포트번호)를 확인 후에(저는 10번포트) 커넥팅해주면 준비가 끝났습니다.




 



그럼 이제 캘리브레이션 기준신호가 나오는 CN6의 핀과 CN1의 내부 신호측정핀을 점프선으로 연결해주고(1~6번 핀까지 차례대로 연결하면 됩니다.) 브레인베이의 Play 버튼을 누르면(파형을 합쳐서 캘리브레이션이 쉽게 디자인하였습니다. : 오실로스코프 오른쪽 클릭에서 설정부분에 파형을 합치는 디자인 버튼이 있습니다.) 






 



각 단자의 신호가 서로 같이 않은 것을 볼 수 있습니다. (250 피크 투 피크인데 실제로는 조금 낮게 나왔습니다. 내부 점프선의 저항때문에 그런 것 같습니다) 이때 VR1, 2, 3의 조정 나사를 돌려가면서 같게 맞춰줍니다.






 



신호가 동일하게 측정되는 것을 확인할 수 있습니다(사실 EEG 1채널만 측정을 하기 위해서는 CH1+, -만 연결해도 될 것 같습니다)


다음은 본격적인 신호 측정입니다. 일단 전두엽 Fp1의 EEG row signal까지만 측정을 해 보겠습니다. 단자를 어디로 뽑아 쓰느냐에 따라(CN1, CN2, CN3 등) 스위치의 설정이 다름을 알 수 있었습니다.




카페에 이런 질문을 올렸습니다. 


1. CN1 단자에서 EEG 1채널을 측정하려면 CH1+에 귓볼, CH1-에 스냅전극을 연결하면 되는건가요? (단극법, sw1, 2 모두 off 상태)

2. CN3단자에서 EEG 1채널을 측정하려면 S1에 스냅전극을 연결하고, Ref에 귓볼을 연결하면 되는건가요? (단극법, sw1 (2,4,6) on 상태, sw2 (1,3,5) on 상태)


답변은 Okay! 사실 이 부분에서 제일 많이 시간을 뺏긴 것 같습니다. 단극법 쌍극법 공부를 많이 했다고 생각했는데, 막상 측정단에 들어가니까 백지가 되는 이 기분 ! %EB%86%80%EB%9E%8C%20%EC%9C%A0%EB%A0%B9 상콤하더군요


저는 CN1 단자에서 EEG 1채널 파형을 측정하기 위해서 스냅전극(암컷)의 끝을 잘라내고 터미널로 후단을 마무리 한 다음 커넥터를 납땜하여 끼웠습니다(사실 이랬다 저랬다 많이 했었는데, 결론은 원하는 결과를 출력해 내는데 가장 깔끔한 모양으로 선택했습니다)






CH1-는 Fp1에 부착하였습니다. 위치는 http://blog.naver.com/haejin5446/220360545416 참조

CH1+는 귓볼에 부착하였습니다.




일단 각설하고 측정 파형과 각 디자인 패널의 설정화면입니다.







<EEG_TEST.CON>



<눈 뜨고 감았을 때>



<오실로스코프 설정>



<EEG 설정>



<FFT 설정>

 


<필터 설정>



하 이렇게 드디어 한발자국 더 다가 섰네요 이제 알파파의 신호에서 대역별로 신호를 뽑아 낼 수 있겠어요 참 다행이네요 뇌파 신호에 대해서 더욱 공부를 해야 필터를 처리하는 방법을 알 수 있겠습니다. Alpha bessel 죽일놈의 필터


그럼 이렇게 측정된 파형의 결과를 TXT 파일로 저장해 보도록 하겠습니다. EEG 패널 우클릭을 통해서 Archive File을 만들 수 있습니다.


Filetype을 text로 두고 녹화를 시작하면서 파형을 측정하면 지정한 폴더에 .arc 파일이 생성됩니다. 이 파일의 확장자를 .txt로 바꾸고 메모장으로 파일을 열어보면 


 165, 90,  2,   71,  2,   1,   1,   251, 1,   254, 1,   250, 1,   245, 1,   240, 3,   

 165, 90,  2,   72,  2,   6,   2,   12,  1,   255, 1,   250, 1,   244, 1,   239, 3,   

 165, 90,  2,   73,  2,   10,  2,   16,  2,   10,  2,   5,   1,   255, 1,   249, 3,   

 165, 90,  2,   74,  2,   5,   2,   2,   2,   6,   2,   2,   1,   253, 1,   248, 3,   

 165, 90,  2,   75,  2,   3,   1,   251, 2,   7,   2,   3,   1,   253, 1,   248, 3,   

 165, 90,  2,   76,  2,   9,   2,   4,   2,   9,   2,   4,   1,   254, 1,   249, 3,   

 165, 90,  2,   77,  2,   17,  2,   12,  2,   20,  2,   15,  2,   9,   2,   3,   3,   

 165, 90,  2,   78,  2,   16,  2,   2,   2,   14,  2,   10,  2,   6,   2,   1,   3,   

 

 165, 90,  2,   79,  2,   10,  1,   242, 2,   8,   2,   4,   1,   255, 1,   251, 3,   


라는 숫자들이 나오는데 이 숫자가 의미하는게 뭔지는 아직 확실히 모르겠습니다. 디버깅 모드로 되어 있어서 디버깅을 할 수 있다는 말인거 같은데, 일단 사용자 메뉴얼을 다시 보고 txt로 측정결과를 뽑아 낼 수 있는 방법은 강구해보아야겠습니다. 여기까지 입니다.



다음 블로깅을 통해서 2채널 EEG 측정과 심전도 측정을 한꺼번에 진행해서 결과를 뽑아내어 보겠습니다(할 수 있다는 마음가짐으로 반 먹고 들어가는 건 함정)


수고하셨습니다. %EC%9D%8C%ED%9D%89%20%EB%85%B8%EB%9E%80%EB%8F%99%EA%B8%80%EC%9D%B4