NI 6008をpythonで
ひさびさの更新.
研究室でNIのDAQをすこし使う事になり,コードを書く事になった.
ちなみにNI6008とは
http://sine.ni.com/nips/cds/view/p/lang/ja/nid/201986
のこと.
どう使うかといえば,今回の場合はある測定器からの電圧信号を読むだけ.
HPを彷徨って,
ni daqmx baseの3.6をインストールすれば良さそうな事を知る.
インストールすると,ディレクトリにNI-DAQmx\ Baseというのが出来ている.(macの場合.他も多分似たようなものかと.)
この中のexamples/aiの中のコードが,今回のデータ収集に使えそうなものと判明.
このディレクトリにうつってmakeコマンドをすれば実行プログラムが出来ます.
そう.
サンプルとして入っているのはCのコードなのです(C++なのかも.よくわかりません.).
私は基本的にはpythonしか使えないため,なんとかできないかと考えていました.
グーグル先生に聞いたところ,どうやらちゃんとpythonからも出来るらしい事が判明.
ソースをコピペ参考にしたサイト
ctypesというmoduleがpythonとCをつないでくれるらしい.
詳しくはわからないがとりあえず動かせるところまで持っていきたい.
が,動かない.
どうやら,
nidaq = ctypes.cdll.LoadLibrary(find_library('nidaqmxbase'))
という部分で引っかかっている様子.
nidaqmxbaseはあるけど,対応してないと怒られる.
対応がわからず念のために32bitのpythonで実行してみると,
何の障害もなくコードが走った.
nidaqmxbaseがmacの64bitに対応してないんだろうか.
そういえば32bit onlyみたいな事がどこかに書いてあったような・・・
ともあれ,コードは動きそう.
NI 6008自体が手元に無いからテストできないけど,
ちゃんとデータ取得が出来る事を祈りたい.
ちなみにpythonを32bitで動かすには,
arch -i386 /usr/bin/python2.7
のように実行するか,
export $VERSIONER_PYTHON_PREFER_32_BIT=yes
と参照先を変えるかがあるらしい.
早く64bitで動かせるようになって欲しいな.