Vernier センサーを Ubuntu12.04 に接続しでデータ収集する例が I Sense Pi に書いてあった。Raspberry Pi の OS は Debian なので Ubuntu と共通である。試したのでここに書きます。
Vernier SDK のインストール
Linux 用の SDK をダウンロードし解凍する。前回の(6) Verrnier Sensors on Raspberry Pi と同じ手続きで実行する。
GoIO ライブラリ作成の説明書 readme_first_on_linux.txt に従って次を入力する。
~/vernier$ ls
GoIO GoIO-2.53.0.tar.gz vernier.c vernier.tm
~/vernier$ cd GoIO
$ sudo apt-get install aptitude
$ sudo aptitude install build-essential
$ sudo aptitude install automake1.9
$ sudo aptitude install dpkg-dev
$ sudo aptitude install libtool
$ sudo aptitude install libusb-1.0-0-dev
$ sudo sh ./build.sh
これで GoIO のライブラリが作成された。確認のため GoIO_DeviceCheck をビルドし、 Vernier 温度センサーを USBポートに接続して実行する。
$ cd ./GoIO_DeviceCheck
$ sudo sh ./build.sh
$ ./GoIO_DeviceCheck
GoIO_DeviceCheck version 1.1
This app is linked to GoIO lib version 2.53 .
active kernel driver on device 2:3
Flushed 48 bytes when device (0x6ec9f0) opened.
Successfully opened Go! Link device 2:3 .
Sensor id = 10(Stainless Temp)
25 measurements received after about 1 second.
Average measurement = 19.019 (C) .
Vernier 温度センサーが認識されている。これで GoIO ライブラリーが正しく作られていることが確認できた。
MathLink Library の作成
I Sense Pi に書いてあるリンクから vernier.c と vernier.tmp をダウンロードして次のようにしてコンパイルする。 残念ながら次のメッセージが現れてコンパイルに失敗する。
$ mcc -o vernier vernier.c vernier.tm -I/usr/include/GoIO -lGoIO
vernier.o: In function `getlibraryversion':
vernier.c:(.text+0x3f): undefined reference to `GoIO_Init'
vernier.c:(.text+0x52): undefined reference to `GoIO_GetDLLVersion'
vernier.c:(.text+0x80): undefined reference to `GoIO_Uninit'
vernier.o: In function `getdeviceinfo':
vernier.c:(.text+0xd0): undefined reference to `GoIO_Init'
.........
.........
collect2: ld stops with status 1
まとめ
- Ubuntu 12.04 で Vernier GoIO SDK の作成は成功する。
- MathLink ライブラリーの作成は、Raspberry Pi の場合に成功するのだが、Ubuntu 12.04 で失敗する。 原因として次が考えられるが解決していない。
- vernier.c が 64bit Ubuntu 12.04 に対応しているのか?
- Ubuntu 用の Mathematica に付属する mcc に原因があるのか?
解決法を教えていただければ幸いです。
追加:Vernier センサーを手に入れる方法
センサーをアマゾンで探しても見つからない。Vernier 米国本社のWeb ページで注文したところ日本マイクロボット教育社(日本代理店)より購入してくださいとのメールを受け取った。ここから購入できました。