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
モーターの制御がわかったので、TA7291をarduinoと連携できるように組み込んでみた。
ここらへんとか参考にする。
違いといえば、ノイズ対策にコンデンサを追加したぐらい。
で、適当なメモをで書くぐらいで電子工作ができちゃった。意外と敷居が低い。

Fritzingというソフトを導入して、モーター制御のブレッドボードを整理。実際のボードとは違うけど、テキトーな感じで

2つ、モータが制御できれば、戦車が作れるのだ。

Java3Dをインストール
Simbadをダウンロード
Eclipseプロジェクトにjarを登録
j3dcore.jar
j3dutils.jar
vecmath.jar
simbad-1.4.jar

数名ほど、ロボット関係者にお会いしてみた。
具体的な名前はだせないけど、
個々の要素技術は素晴らしい。
どうやら、足りないのはそれらをまとめ、具体的なコンセプトとしてまとめることみたいだ。
ロボットの難しいところは、それが複合技術であること。要素技術の組み合わせでひとつのロボットで作られる。それが組み合わさったときにどういう形を見せるのか。
エンジニアが自前でWebサイトを作ると、原色バリバリ使っちゃったり、妙にヘンな動きをするJavaScriptを実装してがっかりすることがあったりする。それと似ているのかもしれない。
エンジニアとデザイナが分業としているように、ロボットの要素技術を作ることと、要素技術を組み合わせてロボットを作ることは、まったく別のスキルなのだろう。
レスキューロボットには大きくわけて2種類のタイプがある。
ひとつは、作業タイプ。瓦礫除去を目的とするパワー型。もうひとつは、調査タイプ。瓦礫の中にもぐりこんで要救助者の発見というミッションが与えられる。どちらも、試験的に現場に投入されることはあっても実用化にはいたっていない。
探索型ロボットは、1台のロボットが高機能、大型化していく傾向にあるようだ。
ここで仮定。
もし、低コストで安価な探索型レスキューロボットが作れるとしたら?100台ぐらいのロボットを使って探索エリアを網羅的に探索することができるかもしれない。
基本→応用と順調にクリアできている。
そろそろ次を決めなければならない時期にきた。
春の情報処理試験。
締め切りはもうすぐそこだ。
応用までは一本道だから迷う必要はない。
これから先は、レベル4の高度試験。
選択科目が一気に増える。
春の実施予定でも5種類。
その中で受けれる科目は、ひとつでだけ。
とはいえ、仕事と学業を両立させている身。
あんまりチャレンジャーなことをして失敗するわけにはいかない。
そんなの時間がもったいない。
手持ちの武器で射程範囲内。
データベーススペシャリストなんてどうだろう。
うん。これにする。
追記
今、学んでいるものはまだ血となり骨とはなっていない。
次の楽しみに取っておく。待っていろ。
スパコンのお話を聞く。
前半の高速化の手法なんてのは、
並列化時の考え方にそのまま使えるかもしれない。
また後でまとめなおそう。
台風の発生メカニズムなんてことを
シミュレーションして延々と解析しているそうだ。
よく、赤道で温められた空気が云々というが
アレを計算でつくる。
進路の予測とか、台風一過のあとに何がおこるかとか。
シムアースを本気でやっているのか。ふむ。
世界地図に広がる演算結果をみると、
地球もひとつのシステムなんだと思う。
スケールの大きさに触れた一日。