Boîte SR
À propos du plugin srbox
La boîte de réponse série (SR) est une boîte à boutons, spécifiquement conçue pour la collecte de réponses dans les expériences psychologiques. La version originale, développée par Psychology Software Tools, dispose de 5 boutons, 5 lumières et est connectée au PC via le port série. Il existe également des dispositifs compatibles avec la boîte SR Box fabriqués par d'autres fabricants, qui peuvent différer par le nombre de boutons et de lumières et utilisent souvent une connexion USB qui émule un port série.
Le plugin srbox pour OpenSesame vous permet d'utiliser la boîte SR Box ou un dispositif compatible dans vos expériences OpenSesame.
Capture d'écran
Définition du nom du périphérique
Par défaut, le plugin essaie de détecter automatiquement votre SR Box. Si cela fonctionne, vous n'avez pas besoin de le changer. Si votre expérience se bloque, OpenSesame a choisi le mauvais port série et vous devez entrer manuellement le nom du périphérique. Sous Windows, le périphérique est probablement appelé quelque chose comme
COM4
Sous Linux, le périphérique est probablement appelé quelque chose comme
/dev/tty0
Exigences
Une boîte de boutons SR Box ou compatible. Toutes les boîtes de boutons ne sont pas compatibles, voir :
Utiliser la SR Box depuis du code Python en ligne
L'objet srbox
n'existe pas lorsque le plug-in est en mode factice.
instance srbox
Si vous insérez le plugin srbox au début de votre expérience, une instance de srbox fait automatiquement partie de l'objet d'expérimentation et peut être accessible dans un élément de script en ligne sous srbox.
Note importante 1 :
Si vous ne spécifiez pas de périphérique, le plugin essayera de détecter automatiquement le port SR Box. Cependant, sur certains systèmes, cela fige l'expérience, il est donc préférable de spécifier explicitement un périphérique.
Note importante 2 :
Vous devez appeler [srbox.start] pour mettre la SR Box en mode envoi, avant d'appeler [srbox.get_button_press] pour collecter une pression de bouton.
Exemple :
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'Le bouton 1 a été pressé en {response_time} ms !')
srbox.stop()
get_button_press(allowed_buttons=None, timeout=None, require_state_change=False)
Collecte une pression de bouton de la SR Box.
Paramètres
- allowed_buttons: Une liste de boutons acceptés ou
None
pour accepter tous les boutons. Les boutons valides sont des entiers de 1 à 8. - timeout: Une valeur d'expiration en millisecondes ou
None
pour aucune expiration. - require_state_change Indique si un bouton déjà pressé doit être accepté: (False), ou si seulement un changement d'état de non pressé à pressé est accepté (True).
Renvoie
- Un tuple
(button_list, timestamp)
.button_list
estNone
si aucun bouton n'a été pressé (c'est-à-dire si un délai d'expiration est survenu).
send(ch)
Envoie un seul caractère à la SR Box. Envoyez '`' pour éteindre toutes les lumières, 'a' pour allumer la lumière 1, 'b' pour allumer la lumière 2, 'c' pour les lumières 1 et 2 allumées, etc.
Paramètres
- ch: Le caractère à envoyer. Si une
str
est passée, elle est codée enbytes
en utilisant l'encodage utf-8.
start(self)
Active le mode d'envoi, de sorte que la SR Box commence à envoyer des sorties. La SR Box doit être en mode d'envoi lorsque vous appelez [srbox.get_button_press].
stop(self)
Désactive le mode d'envoi, de sorte que la SR Box cesse de fournir des sorties.