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
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
istNone
, 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 inbytes
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.