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