Jak pisałem, przeprowadzełem ze znajomymi Eksperyment z zakresu psychologii poznawczej.
Do eksperymentu postanowiłem wykorzystać komputer. A co!
Zasada działania
Powerpoint wyświetla twarz przeglądajacemu. Za pomocą klawiszy 1-5 przeglądający identyfikuje ją jako wyświetlającą jedną z 5 emocji. Gdy naciśnie klawisz, slajd się zmienia i przeglądający przechodzi dalej.
Pragniemy zapisać do pliku czas oraz wybrana opcję.
Jak to zrobić najłatwiej?
Postanowiłem wykorzystać program Autohotkey: http://www.autohotkey.com/
Autohotkey jest programem do budowania makr w windows.
Jak go skonfigurowałem?
- Przycisk Insert uruchamia procedurę. Jego naciśnięcie zapisuje do pliku informację o nowej osobie badanej
- Gdy procedura jest uruchomiona, działanie przycisków 1-5 zostaje zmienione. Każdy z nich zamiast przesłać cyfrę, robi rzeczy następujące:
-
- Zapisuje do pliku wybraną cyfrę i czas.
- Przesyła spację do powerpointa przerzucając slajd
- Pomocnik badacza naciskając insert kończy badanie
Kod Autohotkey:
osoba:=0 dziala:=0 numer:=0 $Space:: { if(dziala) { numer:=numer+1 FileAppend,`n%A_TickCount%, C:TypingLog.txt } Send {Space} return } $1:: { if(dziala) { numer:=numer+1 FileAppend,`nCZERWONY %A_TickCount%, C:TypingLog.txt Send {Space} } else { Send {1} } return } $2:: { if(dziala) { numer:=numer+1 FileAppend,`nZIELONY %A_TickCount%, C:TypingLog.txt Send {Space} } else { Send {2} } return } $3:: { if(dziala) { numer:=numer+1 FileAppend,`nNIEBIESKI %A_TickCount%, C:TypingLog.txt Send {Space} } else { Send {3} } return } $4:: { if(dziala) { numer:=numer+1 FileAppend,`nZOLTY %A_TickCount%, C:TypingLog.txt Send {Space} } else { Send {4} } return } $5:: { if(dziala) { numer:=numer+1 FileAppend,`nCZARNY %A_TickCount%, C:TypingLog.txt Send {Space} } else { Send {5} } return } vk13sc045:: { if(dziala) { dziala:=0 SoundPlay, C:WindowsMediatada.wav Send {Space} } else { dziala:=1 FileAppend,`nNOWA_OSOBA %A_TickCount%, C:TypingLog.txt SoundPlay, C:WindowsMediachord.wav Send {Space} } return }
Interpretacja danych
A napiszemy sobie w PHP skrypcik do interpretacji danych:
<?php function wczytaj($plik) { $tablica=file($plik); $osoby=array(); $osoba_teraz=-1; $czas=0; for($i=0;$i5) { $dane=explode(" ",$teraz); $osoby[$osoba_teraz][]=array($dane[0],($dane[1]-$czas)); $czas=$dane[1]; } } return $osoby; } $dane_emocje=wczytaj("dane_emocje.txt"); $dane_kolory=wczytaj("dane_kolory.txt"); $odp_emocje=wczytaj("emocje_odp.txt"); $odp_kolory=wczytaj("kolory_odp.txt"); $emocje_tran=array(); $emocje_tran['CZERWONY']='USMIECHNIETY'; $emocje_tran['ZIELONY']='SMUTNY'; $emocje_tran['NIEBIESKI']='ZLY'; $emocje_tran['ZOLTY']='PRZERAZONY'; $emocje_tran['CZARNY']='ZAZENOWANY'; $emocje=array(); $emocje_ile=0; $kolory=array(); $kolory_ile=0; //Przeliczamy emocje. Powinno byc proste. for($i=0;$i<count($dane_emocje);$i++) { $emocje_ile++; for($j=0;$j<count($dane_emocje[$i]);$j++) { $dane_emocje[$i][$j][2]=0; if($dane_emocje[$i][$j][0]==$odp_emocje[0][$j][0]) { $dane_emocje[$i][$j][2]=1; } if(!isset($emocje[$j])) { $emocje[$j]=array($dane_emocje[$i][$j][1],$dane_emocje[$i][$j][2],$emocje_tran[$odp_emocje[0][$j][0]]); } else { $emocje[$j][0]+=$dane_emocje[$i][$j][1]; $emocje[$j][1]+=$dane_emocje[$i][$j][2]; } //sort $emocje_czas_sort=array(); $emocje_odp_sort=array(); $emocje_czas_sort[$odp_emocje[$odp][$j][0]]+=$dane_emocje[$i][$j][1]; $emocje_odp_sort[$odp_emocje[$odp][$j][0]]+=$dane_emocje[$i][$j][2]; } } //print_r($emocje); for($i=0;$i<count($dane_kolory);$i++) { $kolory_ile++; for($j=0;$j5) { //wedle emocje1 $slajd=$j; $odp=0; } else { $odp=1; //wedle emocje2 if($j>19) { $slajd=$j-20; } else { $slajd=$j+20; } } $dane_kolory[$i][$j][2]=0; if($dane_kolory[$i][$j][0]==$odp_kolory[$odp][$j][0]) { $dane_kolory[$i][$j][2]=1; } if(!isset($kolory[$slajd])) { $kolory[$slajd]=array($dane_kolory[$i][$j][1],$dane_kolory[$i][$j][2],$odp_kolory[$odp][$j][0]); } else { $kolory[$slajd][0]+=$dane_kolory[$i][$j][1]; $kolory[$slajd][1]+=$dane_kolory[$i][$j][2]; } //sort $kolory_czas_sort=array(); $kolory_odp_sort=array(); $kolory_czas_sort[$odp_kolory[$odp][$j][0]]+=$dane_kolory[$i][$j][1]; $kolory_odp_sort[$odp_kolory[$odp][$j][0]]+=$dane_kolory[$i][$j][2]; } } asort($kolory_czas_sort); asort($kolory_odp_sort); asort($emocje_czas_sort); asort($emocje_odp_sort); print("
KOLORY CZAS SORT
".$keys." | ".$values." |
KOLORY ODP SORT
".$keys." | ".$values." |
EMOCJE CZAS SORT
".$keys." | ".$values." |
KOLORY CZAS SORT
".$keys." | ".$values." |
".$kolory_ile."
".($kolory[$i][0])." | ".$kolory[$i][1]." | ".$kolory[$i][2]." |
1 Comment