
Originally Posted by
jvcasill
Would you mind giving some more information regarding how you got this set up to work? I just purchased the DirectIN Rotary Controller with the intention of using it in PsychoPy2 as well, and so far I cannot get the program to recognize it. Thanks in advance.
Sure. I had to manually create the joystick object using pyglet, instead of using the PsychoPy joystick functions. See the code below for a minimal working example.
Code:
import pyglet
joysticks = pyglet.input.get_joysticks()
for joy in joysticks:
if joy.device.name == 'Analog Scale Device':
joy.open()
break
def present_pair_joystick(trial,isi,curdata): #trial is a sound object, isis is the time to wait after response/end of sound, and curdata is a dictionary used to store response data
event.clearEvents()
while joy.buttons[0] or joy.buttons[1]:
continue
curdata['trial_start']=time.time()
trial.play()
dur = trial.getDuration()
while True:
if not (joy.buttons[0] and joy.buttons[1]):
if joy.buttons[0]:
curdata['rt'] = time.time() - curdata['trial_start']
curdata['resp'] = 'Word'
break
elif joy.buttons[1]:
curdata['rt'] = time.time() - curdata['trial_start']
curdata['resp'] = 'Nonword'
break
if 'escape' in event.getKeys():
core.quit()
if time.time() - curdata['trial_start'] > dur:
core.wait(isi)
else:
core.wait((dur - (time.time() - curdata['trial_start'])) + isi)
curdata['dur'] = dur
return
Hope that helps.