Linux
PsychoPy – a basic example

PsychoPy – a basic example

PsychoPy is an excellent tool for preparing psychological experiments in Python.

However, it seems that entry-level examples one can find in the web are rather sophisticated. Hence, I prepared this basic example featuring:

  1. Installing PsychoPy on Linux
  2. Displaying a simple stimulus
  3. Simplest possible keyboard event

Installing PsychoPy on Linux

Open a terminal (5 Ways to Open a Terminal Console Window Using Ubuntu).

Install PsychoPy:

sudo pip install psychopy

I don’t recommend beginners using PsychoPy on Windows. Especially on some older machines. Windows is generally not Python friendly, and installing all dependencies and virtual environments can be harder for a beginner even than installing a dual-boot Linux or just getting some old PC and installing Lubuntu there.

Display simple stimuli

Open some text editor, e.g., Gedit (on Ubuntu), paste and save the following text to a filename named, e.g.: “psychopy_stimulus_example.py”:

# Import modules
from psychopy import visual, core

# Create a window
window = visual.Window([400,400])

# Prepare a fixation point (we will draw it in the next step)
fixation = visual.TextStim(window, text='+')

# Draw the stimulus
fixation.draw()

# Refresh/update the window (with the fixation point drawn on)
window.flip()

# Show the fixation point for 2 seconds
core.wait(2.0)

# Prepare the first stimulus
message = visual.TextStim(window, text='Stimulus!')

# Draw the stimulus
message.draw()

# Show the window after drawing the stimulus
window.flip()

# Display the stimulus for 2 seconds
core.wait(2.0)

Then use the terminal to run the file with a command:

python psychopy_stimulus_example.py

Example based on:

Keyboard example

Now we will run a simple keyboard example script. Copy-paste the following text and save it as “psychopy_keyboard_example.py”:

# Import modules
from psychopy import visual, core, event

# Create a simple window
window = visual.Window([400,400])

# Show the window (it should be empty, but we need it to record keyboard events)
window.flip()

# An infinite loop
while True:
    # Get keys pressed by the participant
    keys = event.getKeys()
    
    # If the participant strokes "q"
    if 'q' in keys:
        # just quit the program
        core.quit()
    for key in keys:
        # Else print the key to the terminal
        print(key)

Run the example in the terminal with the following command:

python psychopy_stimulus_example.py

This example is also available as a gist: https://gist.github.com/mikbuch/1c5f49b8fa54380b05577e125309221a

Leave a Reply