This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
biac:experimentalcontrol:biac6hardware [2024/04/15 19:23] cmp12 [BIAC6 Screen Configuration] |
biac:experimentalcontrol:biac6hardware [2024/04/15 20:07] cmp12 [BIAC6 Screen Configuration] |
||
---|---|---|---|
Line 127: | Line 127: | ||
A **CLONED** configuration with goggles off, will result in a single monitor to programs like PsychToolbox and PsychoPy. | A **CLONED** configuration with goggles off, will result in a single monitor to programs like PsychToolbox and PsychoPy. | ||
+ | PTB: | ||
<code matlab> | <code matlab> | ||
>> run SetupPsychtoolbox.m | >> run SetupPsychtoolbox.m | ||
- | >> Screen(' | + | >> |
ans = | ans = | ||
0 | 0 | ||
+ | % there is only a single screen | ||
+ | |||
+ | % you can use the first index, or min / max functions because there is only 1 option | ||
+ | >> screens(1) | ||
+ | ans = | ||
+ | 0 | ||
+ | >> min(screens) | ||
+ | ans = | ||
+ | 0 | ||
+ | >> max(screens) | ||
+ | ans = | ||
+ | 0 | ||
+ | |||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | PsychoPy: | ||
+ | <code python> | ||
+ | |||
+ | import pyglet | ||
+ | |||
+ | display = pyglet.canvas.get_display() | ||
+ | screens = display.get_screens() | ||
+ | screens | ||
+ | >> | ||
+ | |||
+ | # screens[0] is the one and only screen | ||
+ | |||
</ | </ | ||
- | Any **EXTENDED** configuration will result in multiple monitors being available | ||
+ | Any **EXTENDED** configuration, | ||
+ | | ||
+ | PTB: | ||
<code matlab> | <code matlab> | ||
>> run SetupPsychtoolbox.m | >> run SetupPsychtoolbox.m | ||
- | >> Screen(' | + | >> |
ans = | ans = | ||
| | ||
| | ||
%in this case | %in this case | ||
- | % 0 - the full display across the extended | + | % 0 - the full extended |
- | % 1 - screen #1 | + | % 1 - screen #1 only |
- | % 2 - screen #2 | + | % 2 - screen #2 only |
+ | % because matlab is indexed a 1, you need to select the correct index to get to screen #1 | ||
+ | >> screens(2) | ||
+ | ans = | ||
+ | 1 | ||
+ | |||
+ | |||
</ | </ | ||
- | + | PsychoPy: | |
- | For instance | + | |
<code python> | <code python> | ||
Line 160: | Line 197: | ||
display = pyglet.canvas.get_display() | display = pyglet.canvas.get_display() | ||
screens = display.get_screens() | screens = display.get_screens() | ||
- | screenNum = 0 | + | screens |
- | #get resolution of screen 0 | + | >>[Win32Screen(x=0, y=0, width=1920, height=1080), Win32Screen(x=1920, y=0, width=1920, height=1080)] |
- | win_res = [screens[screenNum].width, | + | |
- | + | ||
- | #set the output to always go to screen 0 | + | |
- | win = visual.Window(size=win_res, screen=screenNum, allowGUI=True, | + | |
- | fullscr=True, | + | |
- | color=(0.2, 0.2, 0.2)) | + | |
- | + | ||
- | msg1 = visual.TextStim(win, text=u" | + | |
- | msg1.draw() #draw it | + | |
- | win.flip() #put it on the screen | + | |
- | core.wait(5) #wait 5 seconds | + | |
- | win.close() #close it | + | |
- | core.quit() #stop | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | matlab PTB the first screen would be #1 ( matlab is indexed starting at 1 instead of 0 ). | + | |
- | <code matlab> | + | |
- | + | ||
- | %configure the first screen is psychtoolbox | + | |
- | screenNumber | + | |
- | [Window,var.winrect] | + | |
+ | # screens[0] is the first screen | ||
+ | # screens[1] is the second screen because python is zero indexed | ||
</ | </ | ||
+ | You need to code your tasks to send to the specific screen you want your subjects to see. If they are viewing the projector, then they can only single a screen at a time. The default is to send the first display to the projector. | ||
+ | * screen 0 in matlab **only** if its a **cloned** display, or screen 1 if it is extended/ | ||
+ | * screen 0 in PTB | ||