Корректирующая обратная связь (изображение как обратная связь) в Psychopy

Я создаю эксперимент с PsychoPy Builder. У меня есть зрительные и слуховые стимулы, задача состоит в том, чтобы усвоить ассоциации между ними. Когда участник нажимает нужную клавишу, появляется ответ «Правильно». Однако, когда участник нажимает не ту клавишу, я хотел бы не только отображать «Неправильно». А также: «Правильный ответ…» и затем покажите картинку или звук правильной ассоциации.

Я создал процедуру, которая называется «Обратная связь». Он содержит компонент «Код», компонент «Текст» и компонент «Изображение» (или компонент «Звук»). В файле условий (.xlsx) изображение (звук), которое должно отображаться, называется «corrective_FB».

В компоненте кода в «Начать эксперимент» у меня есть

  message=''

В компоненте кода я написал следующий код в «Начало процедуры»:

 if Antwort_manuell.corr:#stored on last run routine
        message="Richtig!"
    else:
        message="Ups, das war falsch. Die richtige Antwort wäre:"
        Form_stimulus2.setImage(corrective_FB)

Я думаю, я неправильно выполняю команду «отобразить изображение». Как правильная команда? А как он для слухового раздражителя?

Когда я запускаю эксперимент, кажется, что он работает, когда я нажимаю правильное нажатие клавиши (однако тогда тоже отображается изображение, и это должен быть только текст....), но когда я нажимаю неправильную клавишу, эксперимент останавливается .

Когда я принудительно завершаю его, я получаю следующее сообщение:

Работает: C:\Dateien\Forschung\Experimente\Legasthenie_Crossmodal\Experiment\Visual_manual\Vis_Man_lastrun.py Трассировка (последний вызов последний)

Файл "C:\Dateien\Forschung\Experimente\Legasthenie_Crossmodal\Experiment\Visual_manual\Vis_Man_lastrun.py", строка 406, в Feedbacktext.setText(message)

Файл "C:\Program Files (x86)\PsychoPy2\lib\site-packages\psychopy-1.82.01-py2.7.egg\psychopy\visual\text.py", строка 240, в setText setAttribute (я, 'текст', текст, журнал)

Файл "C:\Program Files (x86)\PsychoPy2\lib\site-packages\psychopy-1.82.01-py2.7.egg\psychopy\tools\attributetools.py", строка 100, в setAttribute setattr(self, attrib, value) # установить атрибут, вызывая attributeSetter, если он существует

Файл "C:\Program Files (x86)\PsychoPy2\lib\site-packages\psychopy-1.82.01-py2.7.egg\psychopy\tools\attributetools.py", строка 20, в __set__ новое значение = self.func (объект, значение)

Файл "C:\Program Files (x86)\PsychoPy2\lib\site-packages\psychopy-1.82.01-py2.7.egg\psychopy\visual\text.py", строка 231, в тексте self.dict['text'] = unicode(текст)

UnicodeDecodeError: кодек ascii не может декодировать байт 0xc3 в позиции 43: порядковый номер не в диапазоне (128) Исключение UnicodeDecodeError:


person Sarah    schedule 08.06.2015    source источник
comment
Что это показывает? Он показывает текст? Он воспроизводит звук? Кроме того, компонент кода находится выше или ниже компонентов изображения и звука в подпрограмме?   -  person Jonas Lindeløv    schedule 08.06.2015
comment
Я предполагаю, что текстовый компонент имеет text=$message ?   -  person Jonas Lindeløv    schedule 08.06.2015
comment
Когда я снова запустил его, он показывал текст и изображение, но только при правильном нажатии клавиши. Если это было неправильно, эксперимент останавливается, и я должен принудительно его закрыть. Компонент кода находится над изображением/звуком в подпрограмме (сверху). Да, текстовый компонент имеет text=$message. Обратная связь работала корректно до того, как я ввел изображение/звук.   -  person Sarah    schedule 08.06.2015
comment
Обновите свой вопрос, указав сообщение об ошибке, которое вы получаете при сбое. Несколько обычных подозрений: вы уверены, что corrective_FB точно правильно, включая путь и маленькие/большие буквы? Действительно ли ваш imageStim называется Form_stimulus2, который также помнит строчные/заглавные буквы?   -  person Jonas Lindeløv    schedule 08.06.2015
comment
Похоже, проблема связана с текстом, а не с именами изображений или звуковых файлов. Что произойдет, если вы явно сделаете это строкой Unicode, например: message=u'Ups, das war falsch. Die richtige Antwort wäre:'   -  person Michael MacAskill    schedule 09.06.2015


Ответы (1)


Спасибо за вашу помощь. Наконец-то я заработал. Мне действительно пришлось пометить сообщение как строку Unicode. И мне пришлось более подробно определить, как будет показываться стимул для правильных и неправильных ответов. Я не знаю, сделал ли я это самым умным способом, но это работает. Я благодарен за предложения, как это можно сделать более "красиво", но теперь мой код выглядит так:

    if Antwort_manuell.corr:#stored on last run routine
    message="Richtig!"
    Form_stimulus2.size = 0
else:
    message=u"Ups, das war falsch. Die richtige Antwort wäre:"
    Form_stimulus2.setImage(corrective_FB)
    Form_stimulus2.size = 5

И для звука код:

    if key_tester.corr:#stored on last run routine
    message="Richtig!"
    sound_1.volume = 0
else:
    message=u"Ups, das war falsch. Die richtige Antwort wäre:"
    sound_1.setSound(corrective_FB)
    sound_1.volume = 1
person Sarah    schedule 09.06.2015