OpenSesame
Rapunzel Code Editor
DataMatrix
Support forum
Python Tutorials
MindProbe
Supported by

Caja SR

Acerca del plugin srbox

La caja de respuestas serie (SR) es una caja de botones, diseñada específicamente para la recolección de respuestas en experimentos psicológicos. La versión original, desarrollada por Psychology Software Tools, tiene 5 botones, 5 luces y se conecta a la PC a través del puerto serie. También existen dispositivos compatibles con SR Box de otros fabricantes, que pueden diferir en el número de botones y luces y suelen utilizar una conexión USB, que emula un puerto serie.

El plugin srbox para OpenSesame te permite usar la caja de respuestas serie o un dispositivo compatible en tus experimentos con OpenSesame.

Captura de pantalla

/pages/es/manual/response/img/srbox/srbox.png

Figure 1. El plugin srbox en OpenSesame.

Establecer el nombre del dispositivo

De forma predeterminada, el plugin intenta detectar automáticamente tu SR Box. Si esto funciona, no tienes que cambiarlo. Si tu experimento se bloquea, OpenSesame ha elegido el puerto serie incorrecto y debes ingresar el nombre del dispositivo manualmente. En Windows, el dispositivo probablemente se llama algo así como

COM4

En Linux, el dispositivo probablemente se llama algo así como

/dev/tty0

Requisitos

Una caja de botones SR Box o compatible. No todas las cajas de botones son compatibles, consulta:

Usar la SR Box desde el código Python en línea

El objeto srbox no existe cuando el plugin está en modo dummy.

instancia srbox

Si insertas el complemento srbox al comienzo de tu experimento, una instancia de srbox automáticamente pasa a formar parte del objeto del experimento y puede ser accedido dentro de un elemento de inline_script como srbox.

Nota importante 1:

Si no especificas un dispositivo, el complemento intentará autodetectar el puerto SR Box. Sin embargo, en algunos sistemas esto congela el experimento, por lo que es mejor especificar explícitamente un dispositivo.

Nota importante 2:

Necesitas llamar a [srbox.start] para poner el SR Box en modo de envío, antes de llamar a [srbox.get_button_press] para recopilar una pulsación de botón.

Ejemplo:

t0 = clock.time()
srbox.start()
button, t1 = srbox.get_button_press(allowed_buttons=[1, 2],
                                    require_state_change=True)
if button == 1:
    response_time = t1 - t0
print(f'¡El botón 1 fue presionado en {response_time} ms!')
srbox.stop()

get_button_press(allowed_buttons=None, timeout=None, require_state_change=False)

Recopila una pulsación de botón desde el SR box.

Parámetros

  • allowed_buttons: Una lista de botones que son aceptados o None para aceptar todos los botones. Los botones válidos son enteros del 1 al 8.
  • timeout: Un valor de tiempo de espera en milisegundos o None para no establecer un tiempo de espera.
  • require_state_change Indica si se debe aceptar un botón ya presionado: (False), o si se acepta solo un cambio de estado de no presionado a presionado (True).

Devuelve

  • Una tupla (button_list, timestamp). La button_list es None si no se ha pulsado ningún botón (es decir, ocurrió un tiempo de espera).

send(ch)

Envía un único caracter al SR Box. Envía '`' para apagar todas las luces, 'a' para encender la luz 1, 'b' para la luz 2 encendida, 'c' para las luces 1 y 2 encendidas, etc.

Parámetros

  • ch: El caracter a enviar. Si se pasa un str, se codifica en bytes utilizando la codificación utf-8.

start(self)

Activa el modo de envío, de modo que el SR Box comienza a enviar la salida. El SR Box debe estar en modo de envío cuando llamas a [srbox.get_button_press].

stop(self)

Desactiva el modo de envío, de modo que el SR Box deja de dar salida.

Supported by