By BrAri - 7/31/2015
Hi all, I have been using the AAT task on PC with a logitech joystick for a pilot study with success. However, the main study is to take place in MRI environment, requiring a special MRI-safe joystick. The "throw" or range of Y axis movement is smaller than the logitech. This results in the stimuli not "zooming" enough to end the trial upon correct response. I have adjust script to make stimuli zoom more during response, such that they properly zoom: when they are "pushed," they shrink to an acceptably small size, and when "pulled," fill the screen. However, they do not disappear and instead return to normal size when the joystick is returned to 0,0...Thus the trial does not end. This seems like a reasonably quick fix (I hope) but my trial and error has yielded no success...Any help is appreciated.
|
By Dave - 7/31/2015
As you already noted, you will have to tune the various parameters to the respective joystick's range and behavior.
The values involved are documented in the script. Relevant are
Zoom Feature: the zooming effect is achieved through trial.increase/decrease that keep calling themselves/each other until the joystick is fully extended. The amount that the picture increases/decreases depends on a) values.Startheight_ratioA/values.Startheight_ratioB (editable) b) values.MinHeight_ratio (editable) and c) how much change there was in the joystickposition in the current trial (if the joystick is gradually extended, the pictures shrinks more slowly than when the joystick is extended quickly. The endsize of the picture -when the joystick is fully extended- will therefore always be the same)
/Startheight_ratioA: sets the initial size of the landscape pictures (default ratio: 0.5 of active screenheight) /Startheight_ratioB: sets the initial size of the portrait pictures (default ratio: 0.6 of active screenheight) /MinHeight_ratioA: sets the the min picture height for the landscape pictures(default: 0.05 => 5% of Maxheight_px) /MinHeight_ratioB: sets the the min picture height for the landscape pictures(default: 0.1 => 10% of Maxheight_px)
In addition, you may want to play around with the /joystickthreshold setting in the <defaults> element.
As for how the de- and increase <trial> elements determine when maximum extension in one direction has been reached, see their /branch attributes, particularly:
<trial decrease> ... /branch = [if (joystick.y <= -1000) {values.joystick_y = joystick.y; values.endtime = script.elapsedtime; values.finalresponse = "PUSH"; trial.enddecrease}] /branch = [if (joystick.y <= values.joystick_y) {values.joystick_y = joystick.y; trial.decrease}] /branch = [if (joystick.y > values.joystick_y) {values.joystick_y = joystick.y; values.changedirection += 1; trial.increase}] / recorddata = false </trial>
<trial increase> ... /branch = [if (joystick.y >= 1000) {values.joystick_y = joystick.y; values.endtime = script.elapsedtime; values.finalresponse = "PULL"; trial.endincrease}] /branch = [if (joystick.y >= values.joystick_y) {values.joystick_y = joystick.y; trial.increase}] /branch = [if (joystick.y < values.joystick_y) {values.joystick_y = joystick.y; values.changedirection += 1; trial.decrease}] /recorddata = false </trial>
For testing purposes, I would recommend setting those <trial>s' /recorddata attributes to 'true' and log the joystick.y property to the data file. Check which values that property returns for maximum extension in both directions and adjust the /branch logic if necessary.
|
|