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

SR Box

Über das srbox Plugin

Die serielle Antwort (SR) Box ist eine Tastenbox, die speziell für die Erfassung von Reaktionen in psychologischen Experimenten entwickelt wurde. Die ursprüngliche Version, entwickelt von Psychology Software Tools, hat 5 Tasten, 5 Lichter und ist über die serielle Schnittstelle mit dem PC verbunden. Es gibt auch SR Box-kompatible Geräte von anderen Herstellern, die sich in der Anzahl der Tasten und Lichter unterscheiden und oft eine USB-Verbindung verwenden, die einen seriellen Anschluss emuliert.

Das srbox-Plugin für OpenSesame ermöglicht es Ihnen, die SR Box oder ein kompatibles Gerät in Ihren OpenSesame-Experimenten zu verwenden.

Screenshot

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

Figure 1. Das srbox-Plugin in OpenSesame.

Gerätenamen einstellen

Standardmäßig versucht das Plugin, Ihre SR Box automatisch zu erkennen. Wenn das funktioniert, müssen Sie nichts ändern. Wenn Ihr Experiment einfriert, hat OpenSesame den falschen seriellen Anschluss gewählt und Sie müssen den Gerätenamen manuell eingeben. Unter Windows heißt das Gerät wahrscheinlich so ähnlich wie

COM4

Unter Linux heißt das Gerät wahrscheinlich so ähnlich wie

/dev/tty0

Anforderungen

Eine SR Box oder kompatible Tastenbox. Nicht alle Tastenboxen sind kompatibel, siehe:

Verwendung der SR Box aus Python Inline-Code

Das srbox-Objekt existiert nicht, wenn das Plug-in im Dummy-Modus ist.

Instanz srbox

Wenn Sie das srbox-Plugin zu Beginn Ihres Experiments einfügen, wird automatisch eine Instanz von srbox Teil des Experiment- Objekts und kann innerhalb eines inline_script-Elements als srbox aufgerufen werden.

Wichtiger Hinweis 1:

Wenn Sie kein Gerät angeben, versucht das Plug-In, den SR Box-Port automatisch zu erkennen. Auf manchen Systemen friert dies jedoch das Experiment ein, daher ist es besser, ein Gerät explizit anzugeben.

Wichtiger Hinweis 2:

Sie müssen [srbox.start] aufrufen, um den SR Box in den Sendemodus zu versetzen, bevor Sie [srbox.get_button_press] aufrufen, um einen Tastendruck zu erfassen.

Beispiel:

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'Taste 1 wurde in {response_time} ms gedrückt!')
srbox.stop()

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

Erfasst einen Tastendruck von der SR-Box.

Parameter

  • allowed_buttons: Eine Liste der akzeptierten Tasten oder None, um alle Tasten zu akzeptieren. Gültige Tasten sind Ganzzahlen zwischen 1 und 8.
  • timeout: Ein Zeitüberschreitungswert in Millisekunden oder None für keine Zeitüberschreitung.
  • require_state_change Gibt an, ob bereits gedrückte Tasten akzeptiert werden sollten: (False) oder ob nur eine Statusänderung von nicht gedrückt auf gedrückt akzeptiert wird (True).

Rückgabe

  • Ein (button_list, timestamp) Tupel. button_list ist None, wenn keine Taste gedrückt wurde (d. h. eine Zeitüberschreitung aufgetreten ist).

send(ch)

Sendet ein einzelnes Zeichen an die SR-Box. Senden Sie '`', um alle Lichter auszuschalten, 'a' für Licht 1 ein, 'b' für Licht 2 ein,'c' für Lichter 1 und 2 ein usw.

Parameter

  • ch: Das zu sendende Zeichen. Wenn ein str übergeben wird, wird es in bytes unter Verwendung der UTF-8-Codierung kodiert.

start(self)

Schaltet den Sendemodus ein, so dass die SR-Box beginnt, Ausgaben zu senden. Die SR-Box muss im Sendemodus sein, wenn Sie [srbox.get_button_press] aufrufen.

stop(self)

Schaltet den Sendemodus aus, so dass die SR-Box aufhört, Ausgaben zu liefern.

Supported by