Beispiel #1
0
def save():
    global data
    buf_size = int(save_length_ms / 1000.0 * sample_rate)
    for packets in thinkgear.ThinkGearProtocol(PORT).get_packets():
        for p in packets:
            if not isinstance(p, thinkgear.ThinkGearRawWaveData):
                print p
                continue
            with data_lock:
                data.insert(0, p.value)
                if buf_size < len(data): data.pop()
Beispiel #2
0
 def _start_reading(self, callback):
     while True:
         try:
             for pkt in thinkgear.ThinkGearProtocol(
                     '/dev/rfcomm0').get_packets():
                 for d in pkt:
                     if isinstance(d, thinkgear.ThinkGearAttentionData):
                         current_value = int(d.value)
                         if not callback(current_value):
                             return
         except:
             sleep(5)
             pass
Beispiel #3
0
def work(output_file, measurement_time):
    signal = Signal(output_file=output_file, measurement_time=measurement_time)
    is_end = False
    for packets in thinkgear.ThinkGearProtocol(PORT).get_packets():
        for packet in packets:
            if isinstance(packet, thinkgear.ThinkGearRawWaveData):
                continue

            signal.store(str(packet))
            if signal.check_stored():
                signal.output()
                is_end = signal.check_end()

        if is_end:
            break
Beispiel #4
0
	def __init__(self, port, debug=True, attention=False, meditation=False) :
		self.img = make_img()
		cv2.namedWindow(WINDOWNAME)
		cv2.setMouseCallback(WINDOWNAME, self.click)

		self.DEBUG = debug
		self.ATTENTION = attention
		self.MEDITATION = meditation
		
		self.label = np.array(["Unix", "TimeStamp", "Delta", "Theta", "Low_Alfa", "High_Alfa", "Low_Beta", "High_Beta", "Low_Gamma", "Mid_Gamma"])
		if attention :	
			self.label = np.append(self.label, "Attention")
		if meditation :
			self.label = np.append(self.label, "Meditation")

		self.param = {"port":port, "debug":debug, "attention":attention, "meditation":meditation}
		if debug :
			print(self.param)

		self.brain = np.zeros([1, self.label.shape[0]])

		self.th = thinkgear.ThinkGearProtocol(port)		# 接続
		self.think = self.th.get_packets()
		print(self.think)	
# 環境
# macOs Mojave
# python 2.7.13

# 手順
# 1. python に thinkgear,pyserial(シリアル通信を行うためのライブラリ)をインストール
#  $pip install thinkgear
#  $pip install pyserial
# 2. ThinkGear ConnectorをPCにインストール
#  http://developer.neurosky.com/docs/doku.php?id=thinkgear_connector_tgc
# 3. ThinkGear Connectorを起動
# 4. ターミナルで $ls /dev/tty.* で /dev/tty.MindWaveMobile-SerialPo  が表示されていることを確認
# 5. サンプルコードで脳波を取得できる

#mindwaveの接続
import thinkgear
PORT = "COM5"  #'/dev/tty.MindWaveMobile-SerialPo'
for packets in thinkgear.ThinkGearProtocol(PORT).get_packets():
    for p in packets:
        if isinstance(p, thinkgear.ThinkGearRawWaveData):
            continue
        print(p)
Beispiel #6
0
        print x

def is_attention(pkt_t):
    flag = False
    if AT_THRESHOLD <= int(get_attention_data(pkt_t)):
        flag = True
    return flag

def get_attention_data(pkt_t):
    if pkt_t != '' and "ATTENTION" in pkt_t:
        at_num = re.search(r'\d+', pkt_t)
        return at_num.group()
    return 0

if __name__ == "__main__":
    mindwave_obj = tg.ThinkGearProtocol(PORT)
    shatter_flag = 0

    for packets in mindwave_obj.get_packets():
        for pkt in packets:
            if isinstance(pkt, tg.ThinkGearRawWaveData):
                continue

            print(get_attention_data(str(pkt)))
            if is_attention(str(pkt)) and shatter_flag == 0:
                print 'kacha'
                shatter_flag = 1
                # ここで写真取る
            else:
                shatter_flag = 0
                
Beispiel #7
0
import thinkgear
from setting import MINDWAVE_PORT
import csv
from datetime import datetime, time

PORT = MINDWAVE_PORT

with open('data/2120050/6-4.csv', 'w') as csvfile:
    w = csv.writer(csvfile, lineterminator='\n')

    for packets in thinkgear.ThinkGearProtocol(
            "/dev/tty.MindWaveMobile-SerialPo").get_packets():
        for p in packets:
            if isinstance(p, thinkgear.ThinkGearRawWaveData):
                print p
                now = datetime.now().time()
                w.writerow([now.isoformat(), p])
            else:
                continue
Beispiel #8
0
	def brain_init() :
		self.th = thinkgear.ThinkGearProtocol(PORT)
		self.think = self.th.get_packets()
		print("Connect BrainWave")
Beispiel #9
0
#Raw Dataの取得
import thinkgear

PORT = 'COM5'  #'/dev/tty.MindWaveMobile-SerialPo'
for packets in thinkgear.ThinkGearProtocol(PORT)._read(100):
    #print (packets)
    for p in packets:
        if isinstance(p, thinkgear.ThinkGearRawWaveData):
            print('true')
        print(p)