User Tools

Site Tools


biac:experimentalcontrol:biac6hardware

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
biac:experimentalcontrol:biac6hardware [2024/04/15 18:49]
cmp12 [BIAC6 Screen Configuration]
biac:experimentalcontrol:biac6hardware [2024/04/16 14:21] (current)
cmp12 [BIAC6 Screen Configuration]
Line 109: Line 109:
     * more default profiles can be added, but you can also configure and save your own profiles     * more default profiles can be added, but you can also configure and save your own profiles
  
-{{:biac:experimentalcontrol:df2.png?600 |}}+{{ :biac:experimentalcontrol:df2.png?600 |}}
  
 If you do not use the NNL goggles, then it's probably in your interest to leave them disabled. If you do not use the NNL goggles, then it's probably in your interest to leave them disabled.
  
-{{ :biac:display_graphics:extended_display_biac6.png?600 |}}+The DisplayFusion monitor configuration is accessible from the Desktop icon, from the Start Menu, by Right clicking on the desktop, from the system panel at the bottom Right.
  
-Depending on your stimulus presentation software you may want to hard-code which display you are presenting your task +{{ :biac:experimentalcontrol:df4.png?400 |}}
  
-For instance PsychoPy the first screen would be #+A couple of the 1920x1080 profiles are accessible directly from most of the system's Apps by clicking the profile on the upper right hand corner. 
 + 
 +{{ :biac:experimentalcontrol:df3.png?600 |}} 
 + 
 +The "Reset Video" desktop icon will now just revert to 1920x1080 cloned displays, with the goggles disabled. 
 + 
 +Because of the variable nature of the display configuration, its best to login and select your preferred display profile, to always start the experiment session with a known configuration. 
 + 
 +A **CLONED** configuration with goggles off, will result in a single monitor to programs like PsychToolbox and PsychoPy
 + 
 +PTB: 
 +<code matlab> 
 + 
 +>> run SetupPsychtoolbox.m 
 +>> screens = Screen('Screens'
 +ans = 
 +     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 
 + 
 + 
 + 
 +</code> 
 + 
 +PsychoPy:
 <code python> <code python>
  
Line 124: Line 159:
 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)]
-win_res [screens[screenNum].width, screens[screenNum].height]+
  
-#set the output to always go to screen 0 + screens[0] is the one and only screen
-win = visual.Window(size=win_res, screen=screenNum, allowGUI=True, +
-                    fullscr=True, monitor=exp_mon, units='height', +
-                    color=(0.2, 0.2, 0.2)) +
- +
-msg1 = visual.TextStim(win, text=u"Hello world!", pos=(0,0)) #centered +
-msg1.draw() #draw it +
-win.flip() #put it on the screen +
-core.wait(5) #wait 5 seconds +
-win.close() #close it +
-core.quit() #stop+
  
 </code> </code>
  
-matlab PTB the first screen would be #1 ( matlab is indexed starting at 1 instead of 0 ).+ 
 +Any **EXTENDED** configuration, or configuration with goggles will result in multiple monitors being available. 
 +   
 +PTB:
 <code matlab> <code matlab>
  
-%configure the first screen is psychtoolbox +>> run SetupPsychtoolbox.m 
-screenNumber = 1;     +>> screens = Screen('Screens'
-[Window,var.winrect] = Screen('OpenWindow',screenNumber,0);+ans = 
 +         1     2 
 +           
 +   %in this case 
 +   % 0 - the full extended display across the desktop 
 +   % 1 - screen #1 only 
 +   % 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 
 +      
 +      
 +</code>
  
 +PsychoPy:
 +<code python>
 +
 +import pyglet
 +
 +display = pyglet.canvas.get_display()
 +screens = display.get_screens()
 +screens
 +>>[Win32Screen(x=0, y=0, width=1920, height=1080), Win32Screen(x=1920, y=0, width=1920, height=1080)]
 +
 + # screens[0] is the first screen
 + # screens[1] is the second screen because python is zero indexed
  
 </code> </code>
  
 +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/goggles
 +  * screen 0 in PTB
  
 +
 +One of the best ways to account for a variable to setup in matlab would be to code the task to work with either.
 +
 +Matlab:
 +<code matlab>
 +screens=Screen('Screens');
 +
 +%if there is only 1 entry
 +if (length(screens) == 1)
 +    %use it
 +    S.screenNumber = min(screens);
 +%but if there are more, use #1 explicitely
 +elseif (length(screens) > 1)
 +    S.screenNumber = screens(2);
 +    %same as S.screenNumber = 1;
 +end 
 +
 +[S.Window, S.screenRect]=Screen('OpenWindow',S.screenNumber, S.screenColor,[],[],2,[],[]);
 +</code>
  
  
biac/experimentalcontrol/biac6hardware.1713206982.txt.gz · Last modified: 2024/04/15 18:49 by cmp12