Eprime: Trucs et Astuces

Configuration

 

Ecran :

Vos images doivent toujours être de type « bitmap » (.bmp ) et doivent avoir un format compatible avec vos paramètres d’affichage.

Via le menu Edit/Experiment, sélectionnez l'onglet "Devices".
- Sélectionnez l'icône "Display" et cliquez sur "Edit"
- choisissez des paramètres qui ne soient pas supérieurs à ceux des « Propriétés de l’affichage » de Windows et qui correspondent aux images à afficher (sans quoi, une partie de l’image ne serait pas visible).

Sons :

Le format de vos fichiers sons doit correspondre avec le paramétrage "sound device" de votre expérience.

Lorsque vous créez vos fichiers sons, veillez à fixer l'échantillonnage à 22050 ou 44100, 8 ou 16 bits, mono ou stéréo, puis sélectionnez le format "Windows PCM .WAV" lorsque vous enregistrerez les fichiers son.

Si vous ne disposez pas d'un logiciel approprié, vous pouvez télécharger gratuitement le logiciel Audacity.

Ensuite, vous devrez paramétrer votre expe E-Prime en fonction des paramètres choisis pour les fichiers:

Via le menu Edit/Experiment, sélectionnez l'onglet "Devices".
- Sélectionnez l'icône "Sound" et cliquez sur "Edit"
- Fixez les paramètre qui correspondent à vos fichiers 
    Channels:         1 pour la mono, 2 pour la stéréo= qualité CD
    Samples:          22050 ou 44100 = qualité CD
    Bits Per Sample: 8 ou 16 = qualité CD

 Lorsque vous voulez changer le niveau sonore de vos sons à partir de votre expérience, vous pouvez spécifier une « Atténuation ».

Dans les propriétés de votre stimulus audio, cochez l’option « Volume Control », puis indiquez dans le champs « Volume : » le niveau d’atténuation souhaité. La valeur doit être comprise entre -10000 (silence) et 0 (max).

Pour un son Maximum : 0 correspond à une atténuation de 0 db

Pour un son moyen : -1000 correspond à une atténuation de 10 db

Pour un son minimum (silence) :  -10000 correspond à une atténuation de 100 db.

Textes :

Si vous spécifiez des fontes particulières pour vos écrans texte, vous devez vous assurer qu’elles ont été installées sur le pc que vous utiliserez pour la passation.

 

Comment faire pour…

Calculer le temps de réponse à partir d'un script 

Avant de démarrer le stimulus, dans un premier script d'initialisation, déclarez une variable de compage du temps et initialisez-là avec l'horloge système:

Dim StartTime as Double
StartTime = Clock.Read
 

Dans un second script qui contrôle la réponse du sujet, calculez le temps de réponse comme suit:

 

        StimRT = Clock.Read - StartTime
 

 

Interrompre « brutalement » une expe 

Appuyez simultanément sur les touches Ctrl+Shift+Alt situées à gauche.

Cette façon de faire devrait être réservée aux tests pendant la mise au point, mais jamais avec des sujets. Lorsque le programme est interrompu de cette manière, les résultats sont perdus.

 

Interrompre « proprement » une expe

Ajoutez {ESCAPE} comme touche de réponse possible dans l’écran de saisie (en fait, chaque écran de saisie qui doit permettre de stopper l’expérience.

 

Ajoutez ensuite le script suivant après l’écran de saisie :

if c.GetAttrib("Ecran_Reponse.RESP")="{ESCAPE}" then

         abandon=1

         exples.Terminate

end if

 

Dans la procédure principale (SessionProc), ajoutez également 2 scripts :

Le premier que vous placez avant la liste :

Declare         abandon

Abandon = 0

Le second que vous placez après la liste :

if abandon = 1 then

 goto LabelFin

end if

 

Ainsi qu’un « Label » en fin de programme (dans notre exemple, nous l’avons nommé « LabelFin »)

 

N’oubliez pas de déclarer la variable « Abandon » au « top-niveau » (voir ci-après).

 

Déclarer une variable qui soit accessible à tous les niveaux

Lorsque vous déclarez une variable dans un script, cette variable n’est « visible » que pour le « niveau » où elle est déclarée.

Pour qu’une variable soit visible, quel que soit le niveau, il faut procéder comme suit :

 

Dans le menu « View », cochez l’item « Script ».

Dans la fenêtre Script, vous pouvez déclarer les variables que vous devez accéder depuis n’importe quel niveau.

Exemple :

         dim abandon as integer

 

Pour initialiser cette variable, vous devez ajouter un script (de préférence tout au début de SessionProc).

Exemple :

         Abandon = 0

 

Spécifier un nom de fichier à partir d’une variable

Soit la variable « stim » contenant le nom du fichier sans l’extension.

nom_dossier/[stim].bmp

 

Remarque :

- la variable est entourée de crochets

- les « \ » sont remplacés par « / »

 

 

Démarrer ERun en cliquant directement sur le fichier « .ebs » 

Téléchargez http://www.ipsp.ucl.ac.be/recherche/Download/ERunOnly.zip

Décompactez-le

Exécutez Install.bat

Redémarrez la machine

 

 

Obtenir les noms des variables accessibles depuis un niveau donné

Ajoutez le script suivant dans la procédure qui vous intéresse :

Debug.Print "Variables disponibles:"

c.GetAttribNames arrNames, True

For nIndex = LBound(arrNames) To UBound(arrNames)

Debug.Print Space(5) & arrNames(nIndex)

Next 'nIndex

 

la fenêtre "Debug" fera apparaître une liste dont par ex:

    TypeMateriel

 

Une fois la variable trouvée vous pouvez l'utiliser via

    c.GetAttrib("TypeMateriel")

 

Exemple :

    if c.GetAttrib("TypeMateriel") = "Chiffres" then goto Chiffres

 

obtenir le type d'une variable

Pour utiliser une variable correctement, il vous faut en connaître le type. La fonction suivante vous renvoie un numéro correspondant au type.

VarType(nom_variable)

 

La valeur qui sera renvoyée par cette fonction doit être interprétée comme suit:

 

0        ebEmpty                 Uninitialized

1        ebNull           No valid data

2        ebInteger      Integer

3        ebLong                   Long

4        ebSingle        Single

5        ebDouble       Double

6        ebCurrency    Currency

7        ebDate                   Date

8        ebString        String

9        ebObject       Object (OLE Automation object)

10      ebError                  User-defined error

11      ebBoolean     Boolean

12      ebVariant      Variant (not returned by this function)

13      ebDataObject Non–OLE Automation object

 

Exemple :

Debug.Print str(VarType(poids))

 

 

Comment gérer les listes via un script

(voir aussi Factor)

 

Spécifier la procedure à exécuter:

List1.SetProc "1", "Procedure1"

 

Déterminer l’ordre de déroulement de la liste:

Set List1.Order = SequentialOrder

 

Définir la condition d’arrêt:

Set List1.TerminateCondition = TimedSeconds(4)

'terminer la liste après 4s

List1.Reset

 

Set List1.TerminateCondition = Cycles(1)

'terminer après un cycle

List1.Reset

 

 

Changer le poids pour chaque item de la liste:

Dim nLevel As Long

For nLevel = 1 To List1.Size

         List1.SetWeight nLevel, 0

Next 'nLevel

 

'Reset the List

List1.Reset

 

Terminer une liste avant la fin

Pour terminer prématurément la liste “expels” lorsque l’utilisateur à pressé la touche Esc:

if c.GetAttrib("Probes.RESP")="{ESCAPE}" then

         exples.Terminate

end if

 

 

 

Lire un tableau d'entier séparés par des "tab" à partir d'un fichier

 

dim  poids as string

dim  stim as string

dim  cad as string

dim  r as string

dim cnt as integer

dim head as string

 

Open "fichier.txt" For Input As #1

Line Input #1,head

Debug.Print head

cnt=0

While Not EOF(1)

'         krec = 0

         Input #1, poids, stim, cad, r

'         Lst.SetAttrib "Weight" , poids

 

         cnt=cnt+1

         if cnt > Lst.Size then Lst.AddLevel cnt

Debug.Print cnt

Debug.Print Lst.Size

 

         Lst.SetWeight cnt, poids

         Lst.SetProc   cnt, "TacheTEXT"

         Lst.SetAttrib cnt, "Stim", stim

         Lst.SetAttrib cnt, "Cadre", cad

         Lst.SetAttrib cnt, "RepCorr", r

 

 

 

'Debug.Print krec

'Debug.Print "type de rec="

'Debug.Print str(VarType(poids))

Debug.Print str(poids) + " " +str(stim) + " " +str(cad) + " " +str(r)

Wend

Debug.Print "Taille de la liste:"

Debug.Print Lst.Size

 

        Close

 

 

 

Mise à jour : 13/11/2007 - Pierre Mahau