biac:experimentalcontrol:biac6hardware
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
biac:experimentalcontrol:biac6hardware [2024/02/12 17:39] – [BIAC6 Screen Configuration] cmp12 | biac:experimentalcontrol:biac6hardware [2024/04/15 20:26] – [BIAC6 Screen Configuration] cmp12 | ||
---|---|---|---|
Line 92: | Line 92: | ||
- | ==== BIAC6 Screen Configuration ==== | + | ===== BIAC6 Screen Configuration |
* BIAC6 is equipped with NordicNeuroLab ( NNL ) [[https:// | * BIAC6 is equipped with NordicNeuroLab ( NNL ) [[https:// | ||
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 | + | * the best way to control |
+ | * there are several pre-configured profiles automatically loaded on BIAC6 to choose | ||
+ | * 1024x768, 1280x1024, 1920x1080 cloned displays ( on monitors 1,2 ) | ||
+ | * 1920x1080 extended | ||
+ | * 1920x1080 cloned | ||
+ | * 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. |
- | {{ : | + | 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. | + | {{ : |
- | For instance | + | A couple of the 1920x1080 profiles are accessible directly from most of the system' |
+ | |||
+ | {{ : | ||
+ | |||
+ | 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, | ||
+ | |||
+ | 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(' | ||
+ | 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 | ||
+ | |||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | 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 | + | screens |
- | #get resolution of screen 0 | + | >> |
- | win_res | + | |
- | #set the output to always go to screen | + | # screens[0] is the one and only screen |
- | win = visual.Window(size=win_res, | + | |
- | fullscr=True, | + | |
- | color=(0.2, 0.2, 0.2)) | + | |
- | + | ||
- | msg1 = visual.TextStim(win, | + | |
- | 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 ). | + | |
+ | Any **EXTENDED** configuration, | ||
+ | |||
+ | PTB: | ||
<code matlab> | <code matlab> | ||
- | %configure the first screen is psychtoolbox | + | >> run SetupPsychtoolbox.m |
- | screenNumber = 1; | + | >> screens |
- | [Window, | + | ans = |
+ | 0 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 | ||
+ | |||
+ | |||
+ | </ | ||
+ | PsychoPy: | ||
+ | <code python> | ||
+ | |||
+ | import pyglet | ||
+ | |||
+ | display = pyglet.canvas.get_display() | ||
+ | screens = display.get_screens() | ||
+ | screens | ||
+ | >> | ||
+ | |||
+ | # 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 | ||
+ | |||
+ | One of the best ways to account for a variable to setup in matlab would be to code the task to work with either. | ||
+ | |||
+ | <code matlab> | ||
+ | screens=Screen(' | ||
+ | |||
+ | %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(' | ||
+ | </ | ||
biac/experimentalcontrol/biac6hardware.txt · Last modified: 2024/07/15 13:39 by cmp12