i_recは、視線位置を計測するプログラムです。 A)必要なファイル ep.h ep.c eph.c eph.h i_rec.c showwindow.h showwindow.c datawindow.h datawindow.c thwindow.h thwindow.c cal_or.h cal_or.c fileio.h fileio.c setting.c setting.h autocal.c autocal.h objcalib.c objcalib.h matrix.c matrix.h pwin.c pwin.h cencalib.c cencalib.h info.c info.h check.xbm da.c da.h Imakefile Imakefile.DAC B)作成方法 1)D/A converterを使わない場合 % xmkmf -a % make 2)D/A converterを使う場合 % cp Imakefile.DAC Imakefile % xmkmf -a % make 注) libc5を使用している場合(plamo-1.4.4等)は、 da.cの、 #include を削除してください。 glibcを使用している場合(redhat6.1J等)は、 da.cに #include が必要です。 acvc版には、#include がありません。 v4l版には、#include が記述してあります。 3)疑似60Hzを使用する場合(video for Linuxに限る) % cp Imakefile.HiFrq Imakefile % xmkmf -a % make 4)D/A converter & 疑似60Hzを使用する場合(video for Linuxに限る) % cp Imakefile.DAC.HiFrq Imakefile % xmkmf -a % make 注) libc5を使用している場合(plamo-1.4.4等)は、 da.cの、 #include を削除してください。 glibcを使用している場合(redhat6.1J等)は、 da.cに #include が必要です。 acvc版には、#include がありません。 v4l版には、#include が記述してあります。 D/A converterを使用する場合は、ポートアクセスするので、rootの実行権を つける必要があります。 % su # chown root ./i_rec # chmod 4755 ./i_rec # exit 5)DACとして、PCIカードを使用する場合の注意(dacprog/memo.pciを参照のこと)。 i) PCIカードを差す前に、次のいずれかの命令を実行しファイルに記録する。 A) ispci -v > ispci.before B) cat /proc/pci > pci.before ii)コンピュータの電源を切り、PCI slotにカードを差す。 iii) A) ispci -v >ispci.after B) cat /proc/pci > pci.after iv) A) diff ispci.before ispci.after B) diff pci.before pci.after を行い、PCIカードのVendor ID、Device IDを確認する。 v) dacprog/getadr.cの #define VendorID 0x1221 #define DeviceID 0x8183 それぞれの部分を、ボードに合わせて変更する。ispci /proc/pci出 力の表示はどちらも、16進数なので、表示のまま上記の0x以降に記入する。 vi) % cd dacprog % make getadrを作成。 vii) % ./getadr getadrを実行し、iv)の表示と同じアドレスが取得できることを確認する。 取得できていない場合は、contec.pci.cのアドレス部分を自動取得でなく、 直書きに変更する。 unsigned long DAC_ADR; を #define DAC_ADR 0xXXXX XXXX部分に該当アドレスを記述し、DA_InitのGetIOAddressの部分をコメ ントアウトする。 また、pci.before とpci.afterを松田にメイルすること。 viii) getadrがうまく動いたら、 contec.pci.da.cの #define VendorID 0x1221 #define DeviceID 0x8183 を同様に変更する。 contec以外のPCIカードを使用する場合は、マニュアルを見てDACの設定 部分を適宜変更する。 ix) contec.pci.da.cをda.cにリネームし、一つ上のディレクトリに置く。 x) あとは、ISA Busのカードと同様である。 C)使用方法 Video for Linuxにおいては、2chがデフォルトになっています(PicPom Linux においては、S-Video)。 Picpom Linuxにおいて、入力チャンネルのデフォルトをコンポジットに変更す る場合は、fileio.c Channel=2をChannel=1にしてください。 I.O DATA GV-VCP2/PCIしかつ下記に従いbttv.cを変更しない場合は、fileio.c のChannel=2をChannel=0として、VD-1(一番上のコンポジット端子)に入力し てください。または、Channel=2のまま、S-VHS端子に入力してください。 Vine2.0においては、自動的にボードを検出し、設定を行うためのメニューが 起動しました。bttv.cを「SoftwareDesing」7月号(技術評論社)135ページに したがって変更した場合は、その他のポートも使えるようになるようです(試 していません)。 Version 1.1より、プログラム上から入力チャンネルの変更ができるようになったの で、とくに、ソースを変更しなくても不都合はないと思います。また、プログ ラムで変更した入力チャンネルは、~/.i_recrcに記録されるので、次回起動時 には、前回の設定したチャンネルが有効になります。 Ver.2.0以降は、照明光の角膜反射を利用して頭部の動きを計測したり、頭部 の動きを許容した視線位置計測ができるようになりました。眼球を動かした際 に反射点が角膜上から外れないように照明の位置を調節してください。 原理等は、10月14日の生体生理工学シンポジウムで発表します。 発表論文をプログラムに同封しておきます(bpes00.pdf)。10月13日までは、公 開しないでください。 % ./i_rec 上記をタイプすることによりプログラムが動作します。 D)network越しに、表示を行なう場合 fooというコンピュータに、表示することができます。ネットワークの速度が 十分でない場合は、コマ落ちなどが生じます。 % ./i_rec -display foo:0.0 & E)ヘルプ 設定できるオプションが表示されます。 % ./i_rec -help