diff --git a/__pycache__/TaskManager.cpython-39.pyc b/__pycache__/TaskManager.cpython-39.pyc index 4a627af..5c8bf79 100644 --- a/__pycache__/TaskManager.cpython-39.pyc +++ b/__pycache__/TaskManager.cpython-39.pyc Binary files differ diff --git a/__pycache__/nouha_recv.cpython-39.pyc b/__pycache__/nouha_recv.cpython-39.pyc index 1c01282..c92bc7e 100644 --- a/__pycache__/nouha_recv.cpython-39.pyc +++ b/__pycache__/nouha_recv.cpython-39.pyc Binary files differ diff --git a/nouha_recv.py b/nouha_recv.py index d964acd..f884f90 100644 --- a/nouha_recv.py +++ b/nouha_recv.py @@ -13,7 +13,9 @@ """ from __future__ import unicode_literals, print_function -from socket import socket, AF_INET, SOCK_DGRAM +from socket import + +socket, AF_INET, SOCK_DGRAM import numpy as np import matplotlib.pyplot as plt diff --git a/requirement.txt b/requirement.txt new file mode 100644 index 0000000..8993b1c --- /dev/null +++ b/requirement.txt @@ -0,0 +1,5 @@ +python-osc 1.8.3 +numpy 1.20.3 +keyboard 0.13.5 +pygame 2.5.2 +joblib 1.4.2 \ No newline at end of file diff --git a/run.py b/run.py index 9012759..40da35c 100644 --- a/run.py +++ b/run.py @@ -5,18 +5,19 @@ from pygame.locals import * import nouha_recv as bwr from socket import socket, AF_INET, SOCK_DGRAM +import keyboard import TaskManager #”重要” offLineModeをFalseにすると脳波データの通信が行われるため、UDP通信が起動していない場合にFalseにするとバグ発生の可能性あり -offLineMode = False +offLineMode = True WIDTH = 3200 #ウィンドウの横サイズ HEIGHT = 1800 #ウィンドウの縦サイズ -TIME = 10000 #タスクの継続時間(慣れ時間含む、ミリ秒) -BREAK_TIME = #タスク間の休憩時間(ミリ秒) +TIME = 7000 #タスクの継続時間(慣れ時間含む、ミリ秒) +BREAK_TIME = 8000 #タスク間の休憩時間(ミリ秒) LONG_BREAK_TIME = 30000 #長めの休憩時間(ミリ秒) -LONG_BREAK_INTERVAL = 5 #何タスクごとに長めの休憩を取るか -PREP_TIME = 3000 #各タスクの「慣れ」時間(ミリ秒) +LONG_BREAK_INTERVAL = 10 #何タスクごとに長めの休憩を取るか +PREP_TIME = 2000 #各タスクの「慣れ」時間(ミリ秒) TASK_COUNT = 10 #右、左、ニュートラルそれぞれのタスク数(デフォルトの場合それぞれ5回ずつタスクを実施) TASK = "task" #UDPの準備 @@ -41,12 +42,18 @@ "右手を想像して箸で食べ物を掴んでください。", "右手のボタンを押してください。", "右手のレバーを操作してください。", + "右手を想像してドアノブを回してください。", + "右手を想像してボールを投げてください。", + "右手を想像して箸で食べ物を掴んでください。", ], "left": [ "左手を想像して箸で食べ物を掴んでください。", "左手のボタンを押してください。", "左手のレバーを操作してください。", + "左手を想像してドアノブを回してください。", + "左手を想像してボールを投げてください。", + "左手を想像して箸で食べ物を掴んでください。", ], "neutral": [ "目を閉じてリラックスしてください。", @@ -111,6 +118,12 @@ sys.exit(1) return False +def start(screen): + load_and_play_sound(os.path.join(SOUND_DIR, "計測を開始するにはスペースキーを押してください。.wav")) + while True: + if keyboard.is_pressed("space"): + break + #メイン def main(): try: @@ -123,9 +136,10 @@ screen = initialize_pygame() process = bwr.BrainWave_Receive() task_manager = TaskManager.TaskManager(TASK_COUNT) - + start(screen) while True: try: + get_tick_time[0] = pygame.time.get_ticks() mind = task_manager.get_next_type("mind") if mind is None: @@ -137,7 +151,10 @@ # if choice != "task" and mind == "neutral": # task_manager.sub_counts(mind, choice, 1) # continue - choice = TASK + if mind == "neutral": + choice = "task" + else: + choice = TASK if choice == "screen" and mind != "neutral": try: @@ -170,6 +187,7 @@ send_nouhadata(s, choice, mind, process) if check_exit(s, choice, process): break + get_tick_time[1] = pygame.time.get_ticks() screen.fill(black) except pygame.error as e: @@ -199,6 +217,7 @@ send_nouhadata(s, choice, mind, process) if check_exit(s, choice, process): break + get_tick_time[1] = pygame.time.get_ticks() load_and_play_sound(filename = os.path.join(SOUND_DIR, "タスクを終了してください.wav")) screen.fill(black) @@ -206,10 +225,10 @@ pygame.display.update() if task_manager.get_sum_count() % LONG_BREAK_INTERVAL == 0: #タスク間の休憩(長め) - take_a_break(process=process, time=LONG_BREAK_TIME) + take_a_break(s, task_manager=task_manager, choice=choice, process=process, time=LONG_BREAK_TIME) else: #タスク間の休憩 - take_a_break(process=process, time=BREAK_TIME) + take_a_break(s, task_manager=task_manager, choice=choice, process=process, time=BREAK_TIME) except SystemExit: pygame.quit() diff --git "a/sounds/\350\250\210\346\270\254\343\202\222\351\226\213\345\247\213\343\201\231\343\202\213\343\201\253\343\201\257\343\202\271\343\203\232\343\203\274\343\202\271\343\202\255\343\203\274\343\202\222\346\212\274\343\201\227\343\201\246\343\201\217\343\201\240\343\201\225\343\201\204\343\200\202.wav" "b/sounds/\350\250\210\346\270\254\343\202\222\351\226\213\345\247\213\343\201\231\343\202\213\343\201\253\343\201\257\343\202\271\343\203\232\343\203\274\343\202\271\343\202\255\343\203\274\343\202\222\346\212\274\343\201\227\343\201\246\343\201\217\343\201\240\343\201\225\343\201\204\343\200\202.wav" new file mode 100644 index 0000000..a9c65d4 --- /dev/null +++ "b/sounds/\350\250\210\346\270\254\343\202\222\351\226\213\345\247\213\343\201\231\343\202\213\343\201\253\343\201\257\343\202\271\343\203\232\343\203\274\343\202\271\343\202\255\343\203\274\343\202\222\346\212\274\343\201\227\343\201\246\343\201\217\343\201\240\343\201\225\343\201\204\343\200\202.wav" Binary files differ