Java Communications API というライブラリがあるがメンテされていない。が、その仕様に準じたRXTXというOSSがある。
http://www.rxtx.org/
配布先からダウンロードして解凍。
RXTXcomm.jar と、各種OS用のドライバをclasspathの通っているディレクトリに置く。
eclipseならプロジェクトごとにクラスフォルダを作ってそこに配置
ちゃんと調べてないけど、多分、JNIで実装されているっぽいので
WindowsならDLL、Linuxなら.soとOSごとに異なるライブラリが必要になのだと。
で、Javaでシリアル通信ができて何がうれしいかというと、ArduinoとJavaでお話ができちゃうのだ。送信のほうは簡単だけど、受信はイベント駆動なので少し手間っぽい。今の段階では送信さえできていればロボットの操作ができるのでOKとしよう。
追記
RXTXcomm.jarのプロパティから、「ネイティブライブラリのロケーション」でdllを置いたパスを指定する
eclipse起動後
[Help]-[Install New Software...]からダイアログを開く
Name: Babel
Location: http://download.eclipse.org/technology/babel/update-site/galileo
babel Language Packs in Japanese を選択、から日本語ランゲージパックを取得してeclipseを再起動
コンパイルが不要のOpenCV-2.1.0-win32-vs2008.exe をダウンロード
インストーラを起動してインストール
デフォルトで
c:\OpenCV2.1\
に展開される。
c:\OpenCV2.1\include\opencv インクルードファイル
c:\OpenCV2.1\lib ライブラリファイル
をVisualStudioのパスに設定。
ライブラリファイル名にバージョンナンバーの追加と
デバッグモード用のライブラリ(~d.lib)が用意されている。
2.0→2.1への移行はヘッダを変更する。
#include "cv.h"
#include "highgui.h"
#ifdef _DEBUG
#pragma comment(lib,"cv210d.lib")
#pragma comment(lib,"cxcore210d.lib")
#pragma comment(lib,"cvaux210d.lib")
#pragma comment(lib,"highgui210d.lib")
#else
#pragma comment(lib,"cv210.lib")
#pragma comment(lib,"cxcore210.lib")
#pragma comment(lib,"cvaux210.lib")
#pragma comment(lib,"highgui210.lib")
#endif