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/02/12 17:39]
cmp12 [BIAC6 Screen Configuration]
biac:experimentalcontrol:biac6hardware [2024/04/16 14:21] (current)
cmp12 [BIAC6 Screen Configuration]
Line 92: Line 92:
  
  
-==== BIAC6 Screen Configuration ====+===== BIAC6 Screen Configuration =====
  
   * BIAC6 is equipped with NordicNeuroLab ( NNL ) [[https://www.nordicneurolab.com/product/visualsystem-hd|VisualSystemHD]] goggles for stereoscopic display   * BIAC6 is equipped with NordicNeuroLab ( NNL ) [[https://www.nordicneurolab.com/product/visualsystem-hd|VisualSystemHD]] goggles for stereoscopic display
Line 101: Line 101:
   * when configuring your tasks to display, please take account of which monitor you are sending the outputs since 3,4 will always be the googles only.    * when configuring your tasks to display, please take account of which monitor you are sending the outputs since 3,4 will always be the googles only. 
  
-One of the best ways to assure your configuration stays the same is to select a default display icon from the desktop ( ie: Clone or Extended displays )+  * the best way to control the monitor configuration on BIAC6 is with [[https://www.displayfusion.com/HelpGuide/WorkingWithDisplayFusionMonitorProfiles/|DisplayFusion]]  
 +  * there are several pre-configured profiles automatically loaded on BIAC6 to choose from
 +    * 1024x768, 1280x1024, 1920x1080 cloned displays ( on monitors 1,2 ) 
 +    * 1920x1080 extended desktop ( across 1,2 ) 
 +    * 1920x1080 cloned displays with the NNL goggles as individual display 3,4 
 +    * 1920x1080 extended ( across 1,2 with the NNL goggles as individual displays 3,4  
 +    * more default profiles can be added, but you can also configure and save your own profiles
  
-{{ :biac:display_graphics:display_icons.png?600 |}}+{{ :biac:experimentalcontrol:df2.png?600 |}}
  
-Extended Displays will show up as 4 separate screens in the system information+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 118: 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.1707759567.txt.gz · Last modified: 2024/02/12 17:39 by cmp12