Hiroaki

Programming

緯度経度から、その場所を走っている道路名を調べる

うわー、これまたタイトルからしてニッチ(笑 最近、「流行っている」と形容するのも恥ずかしいtwitterですが、「○○なう」などとつぶやいている人が結構見受けられます。「○○」にはその時訪れた場所だったり、その際やっている行動だったりが入るわけなんですが。 これ、車の運転中にはできないですよね、危なくて。なので、つぶやきをそれっぽく自動化できないか考えてみた訳なんですが...。 前回のエントリでは車の中を流れる各種データを取り出すことが出来たので、たとえば、エンジンを切らずに速度0が一定時間続いた回数をして「(ほぼ)信号待ちの回数」としてカウントし、「信号待ち100回目なう」などとつぶやくことは出来そうです。あるいは、制限速度を超えたら「現在XXkm/hで巡航中。○○県警かかってこいや」とつぶやくことも可能でしょう(よい子はまねしちゃいけません)。 ...ただまぁ、大がかりなわりにはあまり面白そうなつぶやきのネタにはならなそうですし、第一この設備が一般的ではないので、他の人にとっては「ふーん」程度であまり参考にならないです(自分で運転を解析するにはとても面白い情報なんですけどね)。 そ...
CAN

CANUSBを使ってRX-8の各種データを取り出してみる

前回のエントリまで使っていたELM327チップですが、どうも全てのデータのログを取ろうとするとバッファが溢れてしまうようで...。ただせっかく乗りかかった船なので、CANUSBという代物を購入してRX-8のデータをリアルタイムに取り出してみることにしました。 上記の画像においてグラフの意味は以下の通りです。 赤 線:車速 青 線:エンジン回転数 紫 線:ラジエータ水温 水色線:エアインテーク温度 黄色線:アクセル開度 赤領域:フットブレーキを踏んでいる 青領域:クラッチが切れている 緑領域:(高さに合わせて)ギアポジション CANはまぁここでは車内LANのようなものだと考えておけばいいと思います。自動車内のコンピュータとその他センサや計器類との間で情報をやり取りするときのプロトコルなのですが、特徴の一つはブロードキャストだということです。 なので、OBD-IIのようにポーリングしてデータを取り出すのと違い、ネットワーク内を流れているデータであれば「盗み聞き」することができるため、車内コンピュータへの負荷が(おそらく)ありません。 コンピュータに負荷がかかった場合にもおそらくフェイルセー...
CAN

RX-8とOBD-IIでお話をする – シリアル接続プログラミング

前回のエントリでELM327デバイスが動作することを確認したので、今回は簡単なプログラミングをしてみようと思います。 Bluetooth版のデバイスを自分は選んだので、BluetoothのRFCOMMを利用することになります。今回はJavaでプログラミングをすることにし、BluetoothライブラリはBluecoveを利用します。 実際のプログラミングのフローは以下のようになるかと思います。 Bluetoothデバイスを探索する探索が完了したらそのデバイスをオープンするELM327の初期化ELM327にリクエストを発行ELM327から受け取ったレスポンスをparseする4に戻る デバイス探索に関してははじめに一度だけ行い、二度目からはBluetoothアドレスなどを保持しておけば再度行う必要はありません。また、2以降はおおむね他のシリアルデバイスでも同じ手順になるはずです。 デバイスのオープンはBluetoothの場合は以下のようになります。 String url = "btspp://XXXXXXXXXXXX:1;authenticate=false;encrypt=false;ma...
スポンサーリンク
CAN

RX-8とOBD-IIでお話をする – 動作確認

ELM327の載ったデバイスを手に入れたので、今エントリでは実際に自動車に取り付けて動作確認をしたいと思います。 前回のエントリで自分はBluetooth版デバイスを買いましたが、基本的にデバイスとお話しする方法はシリアル通信となります。RS-232C接続(つまりシリアル接続)の場合には該当するデバイスとお話をすればいいですし、USBやBluetoothの場合、各OSで仮想的なシリアルデバイスを作成できます(WindowsだったらCOM1とか、Macだったら/dev/tty.*とか)。 MacだとBluetoothで仮想デバイスを使って常にお話しするのはどうも安定性に欠けるようなのですが(Snow Leopardは長く試してないので改善しているかもしれません)、いずれにせよ動作確認のためだけであれば問題ないでしょう。 普通だったらここで実際に配布されているソフトウェアを使って動作確認をするのでしょうが、自分の場合は(それだとつまらないので)実際にターミナル経由でデバイスと直接お話をしてみることにします。 プロトコル ELM327は古き良きATコマンドを含む対話型のインタフェースを提供し...
CAN

RX-8とOBD-IIでお話をする – 準備

久々の投稿です。 OBD-IIという自動車のコネクタを通した各社共通の診断プロトコルがあるのですが、そいつを日曜プログラマでも簡単に扱えるようにするELM327というチップが存在することを知りました。 そして、そのチップを使ってシリアルやらUSB、Bluetoothなどでパソコンからお話をするデバイスもいくつか売り出されているようです。これを使うと、エンジン回転数や速度などの基本情報、それにエンジン温度や瞬間燃費等の普通は知ることのない情報をリアルタイムに取得することができるようになります。 え、そういうのだったら既に売ってるって? ええ、BLITZ R-VITとかそうですよね。仕組みはまさに同じなのですが、自分でのプログラミングだと簡単にログをとったりいろいろ遊ぶことができます。逆にそういった加工をしないのであればこちらの製品のほうが手っ取り早いと思います。 自分の場合は、パソコンと連携していろいろやってみたかったってことと、どうせすぐに飽きるのに4万とか5万とか出せないので自作することにしました。OBD-IIから情報を取り出すだけなら5000円くらいのパーツだけで済んでしまいますの...
DarwiinRemote

DarwiinRemote 0.5をリリースしました

ごぶさたしております、Hiroakiでございます。 やっとこさVersion 0.5のご案内です。今回のバージョンでは、クラシックコントローラのサポートおよび、これまで懸案の一つであったPPCマシンでの不具合の修正が行われています。ダウンロードはこちらよりどうぞ。 そういえば、先月末に発売されたMac People 2007年4月号にWii関連の特集が組まれてDarwiinRemoteも紹介されました。DarwiinRemoteの動作に関する質問や、ゲラ刷り原稿が編集の方からPDFで送られていてチェックを頼まれたりしたので、てっきり献本等のお話があるかと思いきや…。結局特に何もなく。こちらから何か言うのもなんなので、自分では結局買わないままです。読みはしましたけど、ね。 記事自体はとても簡潔に操作法などが纏められているので、DarwiinRemoteの使い方が分からないなどの場合にはご参考になさってください。分かりやすいと思います。
DarwiinRemote

DarwiinRemote and WiiRemoteFramework 0.5 have been released!

Hi all, I'm very sorry that I was far away from developing DarwiinRemote...anyway, I've released new version of DarwiinRemote and WiiRemoteFramework. The latest DarwiinRemote supports classic controller, and some critical bugs including PPC issue were fixed. Please download the software fromhere. Enjoy! In this version, especially Jasen made great efforts to improve the framework ;)
DarwiinRemote

DarwiinRemote 0.4をリリースしました

なんか、Nobiさんに「なお、現行のバージョンは、やや技術スキルがある人を対象にしたものなので注意が必要だ。」と書かれてしまって、まぁ、確かに英語だけしかなければ普通の人は使うのを躊躇するかなぁ、なんて思ってしまった最近です。というわけで、日本語でもリリースを書くことにします。日本語はFAQ以来なので少々詳しく書きます(あと、「日本語だから」ってのもありますけど^^;)。 DarwiinRemoteはご存じの通り任天堂のWiiについてくるWiiリモコン(単品でも買えます)をMacで使うようにするためのソフトウェアです。今回のバージョン0.4では、以下のことが出来るようになりました。 拡張コントローラの一つであるヌンチャクに対応しました。今までは自分でセンサの値をキャリブレーションする必要がありましたが、Wiiリモコン内部の値も使うことが出来るようになりました。Wiiリモコンのボタンを押した際に起こるイベントをカスタマイズできるようになりました。カスタマイズデータを保存することも出来るので、場面場面で切り替えることが出来ます。DarwiinRemoteメニューから、Preferences...
DarwiinRemote

DarwiinRemote and WiiRemoteFramework 0.4 have been released!

Hi all,We've just released DarwiinRemote 0.4 and WiiRemoteFramework 0.4. New features of DarwiinRemote are... supports Nunchuk (sorry still not Classic Controller, but will support soon)supports custom key mappings; you can customize mappings, save and load it.supports mouse sensitivitysupports motion sensor auto calibration New features of WiiRemoteFramework are... supports communicating with Exspansion devices (now Nunchuk only)posts notification when Expansion port is plugged and unpluggedpos...
DarwiinRemote

DarwiinRemote 0.3.1 and WiiRemoteFramework 0.3.1 are released!

Hi all,We've just released a new version of DarwiinRemote. This version supports battery status and fixes some bugs. Please use this version for all users.You can download it fromhere(SourceForge.net) The most important feature for developers is that DarwiinRemote has been divided into 2 parts, App part and Framework part. Now you can use WiiRemote Framework in your projects independently.Please check sources of DarwiinRemote and WiiRemoteFramework atsourceforge.net.If you are interested, develo...
スポンサーリンク