64bit Winodowsのpsychopy(standalone版)上でパラレルポートを叩くために
psychopyでトリガーを出すニーズはそれなりにあると思いますが、残念ながら標準ではパラレルポートが使えません。
おまけに64bit Windowsでもpsychopyはstandaloneを入れるので大抵32bitバージョンをインストールしてることになります。
混乱しやすい環境です。
何をインストールしたらよいか?
Psychopyでパラレルポートをたたくのはインストールページ見たりgoogleで検索するとすぐヒットしますが、
inpout32.dllを入れろとあります。
64bit windowsで64bit用のinpoutx64.dllというのもあるのでどちらを入れるか悩みましたが、psychopyが32bitなのでinpout32.dllでよいようです。てかinpoutx64.dllを置いても動きませんでした。
ファイル(inpout32.dll)はどこからダウンロードできる?
http://www.psychopy.org/installation.html (psychopyのinstall下の方にパラレルポートの説明)
http://www.highrez.co.uk/Downloads/InpOut32/ (ダウンロードのリンクがページ内にあります.Binaries only - x86 & x64 DLLs and libsというとこにリンクが張ってありました)
他にもinpout32.dllのダウンロードサイトがありますが、上記のサイトのdllがよいようです。
どこにファイルを置いたらよいか?
ファイル展開してWin32の中のInstallDriver.exeを実行しても多分動かないと思います。
(追記:InstallDriver.exeの実行も必要な作業の1つでした)
inpout32.dllは自力で移動しなくてはいけません。
(追記2022/5/31: inpoutx86.dllをC:\\Windows\SysWOW64に移動すると64bitのpsychopyでも動きました)
Installation of InpOut32を読んでみると
inpout32.dllの説明を見るとC:\Windows\System32に入れるように読み取れますが、64bit Windowsで32bitソフトを動かす状況だと C:\Windows\SysWOW64になります。ここにinpout32.dllを入れることでようやく動くようになりました。
あるいは自分は試してませんがpsychopyのディレクトリ(C:\Program Files (x86)\PsychoPy2)に置いても動くかもしれません
This would usually be the same folder as the applications EXEcutable file. と記載があります。
そもそもパラレルポートがないんだけど
今どきパラレルポートは最初からついてないので後付けでボード挿したりします。(例.CIF-P1PCI)
パソコンを開ける程度の作業はこれから待ち受ける苦難に比べると小さなことなので勇気を持って作業しましょう。
ドライバはOS標準のものが入ることが多そうですが、インストールがうまくいかないときはドライバのインストールもがんばりましょう。
パラレルポートのアドレスの設定はどうするか?
特に後付のパラレルポートの場合アドレスが0x0378から大抵変わってるのでpsychopyのデフォルトの設定で対応できません。
パラレルポートのアドレスは
デバイスマネージャー - ポート(COMとLPT) - LPT1(LPT3とかの場合もあり) で右クリック-プロパティを選択 - リソースのタブを開く
一番上の方のI/Oの範囲の左の16進数(下の図だと3008)がアドレスになるようです。
--- Psychopyでの設定 ---
psychopyで設定画面-"一般"タブを開きます。パラレルポートのところを下記の例にならって追加、修正します。
3008だと0x3008としたほうが無難ぽいです。0xはPC界隈で16進数の意味で解釈されるようです。