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()
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
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
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)
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
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
def brain_init() : self.th = thinkgear.ThinkGearProtocol(PORT) self.think = self.th.get_packets() print("Connect BrainWave")
#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)