<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Hirolog</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/" />
    <link rel="self" type="application/atom+xml" href="http://blog.hiroaki.jp/atom.xml" />
    <id>tag:blog.hiroaki.jp,2009-09-30://2</id>
    <updated>2010-03-13T00:16:09Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/" version="4.261">Movable Type Pro</generator>

<entry>
    <title>緯度経度から、その場所を走っている道路名を調べる</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2010/03/000464.html" />
    <id>tag:blog.hiroaki.jp,2010://2.464</id>

    <published>2010-03-13T00:15:00Z</published>
    <updated>2010-03-13T00:16:09Z</updated>

    <summary> うわー、これまたタイトルからしてニッチ（笑 最近、「流行っている」と形容するの...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Auto" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/03/roadName-19.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/03/roadName-19.html','popup','width=818,height=678,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/03/roadName-thumb-579x480-19.png" width="579" height="480" alt="roadName.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

うわー、これまたタイトルからしてニッチ（笑


最近、「流行っている」と形容するのも恥ずかしいtwitterですが、「○○なう」などとつぶやいている人が結構見受けられます。「○○」にはその時訪れた場所だったり、その際やっている行動だったりが入るわけなんですが。


これ、車の運転中にはできないですよね、危なくて。なので、つぶやきをそれっぽく自動化できないか考えてみた訳なんですが...。

[前回のエントリ](http://blog.hiroaki.jp/2010/02/000463.html)では車の中を流れる各種データを取り出すことが出来たので、たとえば、エンジンを切らずに速度0が一定時間続いた回数をして「（ほぼ）信号待ちの回数」としてカウントし、「信号待ち100回目なう」などとつぶやくことは出来そうです。あるいは、制限速度を超えたら「現在XXkm/hで巡航中。○○県警かかってこいや」とつぶやくことも可能でしょう（よい子はまねしちゃいけません）。

...ただまぁ、大がかりなわりにはあまり面白そうなつぶやきのネタにはならなそうですし、第一この設備が一般的ではないので、他の人にとっては「ふーん」程度であまり参考にならないです（自分で運転を解析するにはとても面白い情報なんですけどね）。


そんなわけで、もう少し一般的なGPSから得られる位置情報を利用してなんかできないか考えてみました。それが、このタイトルにあるような技術を利用して「国道○○号線なう」みたいなことをつぶやくというものです。]]>
        <![CDATA[## ひとまずお披露目

とりあえず関東地区だけなのですが、緯度経度から道路名を調べるプログラムを組んでみました。[こちらのページ](http://blog.hiroaki.jp:8400/roadgis/FlexMap.html) でそれを体験することが出来ますので、ぜひ一度お試しください（適当に立てたTomcatサーバなので、落ちてたらごめんなさい）。ではいってらっしゃいませ。

...あ、おかえりなさい。使い方は分かったでしょうか？　地図の中心部に調べたい道路を合わせると、その地点の道路名を吹き出しに表示するものです。デフォルトの倍率だとうまく道路上に中心があわないので、少し拡大すると良いです。地図上だとあまりずれてないと思っても、拡大率によっては数ピクセルで10m以上ずれていることもあります。それでも現れない場合には別の原因が考えられます（後述します）。


さてさて、今は手動で位置を合わせているわけですが、当然ながら携帯やPCのGPS位置情報を利用して、自動的にその位置の道路名を割り出すこともできます。
なんとなく、定期的に携帯から位置情報を送信し、その都度道路名を調べて「国道○○号から首都高へ」とかつぶやけそう、じゃないですか？


## どうやって道路名を調べるか

ちょろっと調べた限りでは、位置情報から道路名に変換する既存のサービスはなさそうでした。

位置情報から住所を割り出すサービスはあります。「逆ジオコーディング」と呼ばれますが、[Finds.jp](http://www.finds.jp/wsdocs/rgeocode/index.html)が無料でサービスを公開していますし、最近ではGoogleもGoogleMaps APIにてサービスを提供し始めました。ただ、住所じゃないんですよね、必要なのは...。あくまで道路。

Googleの逆ジオコーディングは、道路上の緯度経度を入力してやると、有名な道路の場合にはそのむね返答をしてくれることがあるようです。ただまぁ、どの程度入っているかわかりませんし、建物名や地名など混ざった状態で返答されてもちょっと...という気がします。


仕方ないので今回は、国土交通省が公開している国土数値情報を使って自分で調べるプログラムを組むことにしました。

国土交通省は、以前から無料で国土数値情報をデータで公開しています。数年前に気づいて[ブログのエントリにもしている](http://blog.hiroaki.jp/2005/12/000321.html)のですが、エントリ先くらいのクオリティのデータはすぐに手に入るわけです。ただ、道路情報に限っては1995年版が最新で、そこは非常に残念なのですが...。
国交省内部では必ずデータはあるはずで、他のデータは新しいモノもあるので、しばらく待てば／担当者にかけあえば新しいデータを閲覧できるかも知れませんが、まぁひとまずはいいでしょう。誰がどのくらい使いたいかも分からないですし^^;


この道路情報には、道路の線分データと、その線分に対応する道路名と種別（高速・国道・県道・...）などが含まれています。
なので、与えられた緯度経度に対して、近い道路の線分データがあればその道路名を返答する、というプログラムを書いてやれば良いということになります（久しぶりに点と直線の距離を求める公式とか思い出した^^;）。


## 応用

今はGoogleMapsアプリという形になっていますが、WebサービスやiPhoneアプリ化することで実際に自動でつぶやけるようになります。...自分以外にこんなものを使う人がいれば、ですが^^;
ひとまず今は乗りかかった船なので、関東以外のデータをDBに突っ込んでいる最中です。

また、いわゆる一般的な逆ジオコーディングを使って、「埼玉県に突入なう」などとつぶやくことも出来るので、組み合わせると面白いかも知れません。


## 問題点

問題点、あります。

まずは上の方に書きましたが、データが1995年のものということです。首都高は一部開通してませんし、アクアラインもありません。千葉の館山道もないっぽいです。上で紹介したGoogleMapsアプリを使ってどうしても道路名が出なかった方は、もしかしたらその時代にはまだ道路がなかった（あるいは名前が付いてなかった）のかもしれません。
これはまぁ、国交省が新しいものをリリースしてくれるのを待ったり、あるいは自力で最新データに書き換えるしかありませんね。

あとは、道路名が法定名なので、微妙に違和感があります。たとえば池袋や渋谷を走っている通称「明治通り」は、「芝新宿王子線」と出てきます。
国道は全て「国道○○号線」となっているのでまぁ問題ないですが、それより細かい範囲の道路に関しては「？？」となる可能性があります。環七は「環状七号線」なんだけどなー。
これも、必要ならば頑張ってデータを加えていく必要があります。


## 副産物

95年産ではありますが、高速・国道等の線分データが得られます。
下の写真は、首都高のデータを抜き出してプロットしたものです。<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/03/road-16.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/03/road-16.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/03/road-thumb-640x480-16.png" width="640" height="480" alt="" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>GoogleMapsやGoogleEarthにプロットしたり出来るので、もしかしたらそういったものが必要な人には役に立つかも知れません。これらのデータは再配布可能らしいので、自由に使えるようです。


## まとめ

国交省が配布しているデータを使って、緯度経度からその地点の道路名を割り出すプログラムを作りました。今のところ関東のみ・GoogleMapsでの動作確認デモプログラムしかありませんが、他の地域も現在DBに突っ込んでいます。また今度遠出したときにでも、PCあるいはiPhoneを利用して実際につぶやいてみようと思います。

データが古く道路の名称もなじみのないもの、と問題点がないわけではないですが、もし使ってみたい・興味があるという方はご連絡ください。このウィンドウの右側に常に出ているtwitterリンクから僕のアカウントに飛べます。

あと、なにかこのデータを使って面白いことができるといったアイディアがあったら教えてください^^;]]>
    </content>
</entry>

<entry>
    <title>CANUSBを使ってRX-8の各種データを取り出してみる</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2010/02/000463.html" />
    <id>tag:blog.hiroaki.jp,2010://2.463</id>

    <published>2010-02-21T15:40:00Z</published>
    <updated>2010-02-21T16:14:16Z</updated>

    <summary> 前回のエントリまで使っていたELM327チップですが、どうも全てのデータのログ...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Auto" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="CAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Device" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OBD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_snip-2-13.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_snip-2-13.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_snip-2-thumb-640x480-13.jpg" width="640" height="480" alt="rx-8_gear_snip-2.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

前回のエントリまで使っていたELM327チップですが、どうも全てのデータのログを取ろうとするとバッファが溢れてしまうようで...。ただせっかく乗りかかった船なので、CANUSBという代物を購入してRX-8のデータをリアルタイムに取り出してみることにしました。


上記の画像においてグラフの意味は以下の通りです。

- 赤　線：車速
- 青　線：エンジン回転数
- 紫　線：ラジエータ水温
- 水色線：エアインテーク温度
- 黄色線：アクセル開度
- 赤領域：フットブレーキを踏んでいる
- 青領域：クラッチが切れている
- 緑領域：（高さに合わせて）ギアポジション


CANはまぁここでは車内LANのようなものだと考えておけばいいと思います。自動車内のコンピュータとその他センサや計器類との間で情報をやり取りするときのプロトコルなのですが、特徴の一つはブロードキャストだということです。
なので、OBD-IIのようにポーリングしてデータを取り出すのと違い、ネットワーク内を流れているデータであれば「盗み聞き」することができるため、車内コンピュータへの負荷が（おそらく）ありません。
コンピュータに負荷がかかった場合にもおそらくフェイルセーフが働くとは思いますが、心理的な負担がこちらのほうが少ないですね。]]>
        <![CDATA[[CANUSB](http://www.canusb.com/)は、LAWICEL社が販売している、CANデータアクセス用のケーブルです。コンピュータからはFTDI社のUSBシリアル変換コネクタが刺さっているように認識され、実際にシリアル接続でデータを取り出すのでMac、Windows、Linuxのどれからでもデータを取り出すことができます（[LAWICEL社のページ](http://www.canusb.com/downloads.htm)にはWinとLinuxしかドライバへのリンクがありませんが...）。
日本では[compass lab.](http://www.compass-lab.com/CAN_Tool/CANUSB.htm)で取り扱っているようで、海外で買うのと値段も変わらなかったためこちらを利用しました。

ただこのCANUSB、車へ接続する側のコネクタが、いわゆるシリアル通信で用いるD-SUB9ピンで、実際のOBD互換のコネクタと合いません。そのためコネクタを購入あるいは自作する必要があります。

[OBD2CABLES.COM](http://www.obd2cables.com/products/)では片側がOBD-II端子、片側がD-SUB9ピンのケーブルを売っています（たとえば[これ](http://www.obd2cables.com/products/obd-cables/obd-ii-cables/cable-j1962m-to-db9f-type-d-6ft.html)とか）。
値段は10ドル程度で、一般的なシリアルケーブルなどとたいして変わらないのですが、これを日本へ送ってもらおうとすると送料が30ドルくらいかかってしまい馬鹿馬鹿しいです。

そのため、自分は[こちらのページ](http://www.h5.dion.ne.jp/~enarin/page030.html)を参考に自作しました。ただ、こちらもなんだかんだいって2000円くらいかかってしまうので、複数本数を同時に買うのであれば海外から取り寄せた方が安いかもしれません。


さて、ケーブルをつなげば後はシリアル通信なのでデータを解析するだけの簡単なお仕事です。海外には奇特な方がいて、これらのデータを既に解析して公開してくださっている方がいました。
これを先に見つけていたので、ケーブルが自作できれば後は余裕だろうと思っていたのですが...。なんと、自分の車に流れているパケットと雰囲気が違う様子。向こうの車がAT車だからなのか、それとも海外仕様だからなのか分かりませんが、結局自分で全部解析する必要にかられました...。


ま、そんなこんなですが、一応上記のグラフのようなものが書き出せるまでになりました（3日かかってしまった...）。
なお、上記のうちギアに関しては、エンジン回転数と車速から割り出しているものです。こちらもデータが取れるだろうと思っていたのですが、どうも見当たらなかったため、計算によって推定しています。

以下、もしかして自作したい人がいるかもしれないのでメモ（ただし、当然ですがこれを参考に自作アプリを作って、最悪車が暴走しても自分は責任負いませんのであしからず...）。

- RPMは、ID 0x201の(data[0] * 256 + data[1]) / 4
- Vehicle Speedは、ID 0x201の(data[4] * 256 + data[5] - 10000) / 100
- Accel Throttle Positionは、ID 0x201の data[6]
- Hand Brakeは、ID 0x212の(data[4] & 0x40)
- Foot Brakeは、ID 0x212の(data[5] & 0x08)
- Declutchingは、ID 0x231の(data[0] & 0xf0) //4ビット全部立つ
- Engine Coolant Tempは、ID 0x240の data[3] - 40
- Intake Air Tempは、ID 0x250のdata[3] - 40

他にもハンドルの回転角度が分かったりすると面白いのですが（海外のものだと分かっているのですが）、右側に舵を切っているか、左側に舵を切っているかは分かりそうなのですがそれ以上に詳しい角度などはちょっと分かりません。あっても良さそうですけどねぇ。


上記の図だといまいち温度まわりの動きが分かりにくいかもしれませんが、エンジンをかけ始めてログをとり、ぐるっと走って戻ってくるまでのデータをグラフにすると、次のようになります（上の図は、その最後の部分）。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_all-2-10.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_all-2-10.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/02/rx-8_gear_all-2-thumb-640x480-10.jpg" width="640" height="480" alt="rx-8_gear_all-2.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

この図を見ると、水温がぐんぐん上がっていっているのが分かります。また、スピードを出すと微妙にエアインテークエアの温度が下がり、それによって水温もちょこっと下がることがある、というのも見て取れます。

はてさて、これをどのように加工して使うか、それが問題だ。]]>
    </content>
</entry>

<entry>
    <title>RX-8とOBD-IIでお話をする - シリアル接続プログラミング</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2010/01/000462.html" />
    <id>tag:blog.hiroaki.jp,2010://2.462</id>

    <published>2010-01-14T09:00:00Z</published>
    <updated>2010-01-14T09:15:40Z</updated>

    <summary>前回のエントリでELM327デバイスが動作することを確認したので、今回は簡単なプ...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Auto" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Device" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OBD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        [前回のエントリ](http://blog.hiroaki.jp/2010/01/000461.html)でELM327デバイスが動作することを確認したので、今回は簡単なプログラミングをしてみようと思います。

Bluetooth版のデバイスを自分は選んだので、BluetoothのRFCOMMを利用することになります。今回はJavaでプログラミングをすることにし、Bluetoothライブラリは[Bluecove](http://code.google.com/p/bluecove/)を利用します。
        <![CDATA[実際のプログラミングのフローは以下のようになるかと思います。

1. Bluetoothデバイスを探索する
2. 探索が完了したらそのデバイスをオープンする
3. ELM327の初期化
4. ELM327にリクエストを発行
5. ELM327から受け取ったレスポンスをparseする
6. 4に戻る

デバイス探索に関してははじめに一度だけ行い、二度目からはBluetoothアドレスなどを保持しておけば再度行う必要はありません。また、2以降はおおむね他のシリアルデバイスでも同じ手順になるはずです。

デバイスのオープンはBluetoothの場合は以下のようになります。

<pre><code>String url = "btspp://XXXXXXXXXXXX:1;authenticate=false;encrypt=false;master=false";
StreamConnection connection = (StreamConnection) Connector.open(url);</code></pre>


ここでのurlは、デバイス探索後にデバイスが提供可能なサービスを調べると得られるものです。サービス探索は、bluecoveの[Services Search](http://www.bluecove.org/apidocs/overview-summary.html#ServicesSearch)にサンプルがあるので参考になります（ウェブページ中間）。

その後、ELM327へのInput / Output Streamを開きます。

<pre><code>OutputStream os = connection.openOutputStream();
PrintWriter pw=new PrintWriter(new OutputStreamWriter(os));

InputStream is = connection.openInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);</code></pre>

これでELM327とのお話ができるようになりました。
このPrintWriterに対して前回のエントリで紹介したようなコマンドを発行し、BufferedReaderからレスポンスを得ることになります。

<pre><code>pw.write("AT Z\r");
pw.flush();</code></pre>

のような感じでコマンドを発行します。そして、それに対してレスポンスは、

<pre><code>int data;
while((data = br.read()) != -1 && data != '>'){
	char ch = (char)data;
	System.out.print(ch);
}</code></pre>

このような感じで取り出せます。ELM327からの返答はプロンプト（">"）で終わるので、それを終了判定に使えばよいです。BufferedReaderのreadLine()を使うこともできるかと思ったのですが、最後にEOFが来ないためかプロンプトが来たところでブロックしてしまうようです。


...基本的にはこれだけです。

3.のELM327の初期化は、たとえば"AT E0\r"を送ってエコーを切る（通信量を減らす）などそういったことです。

今回は単純に得られた文字を書き出しているだけですが、本来はこれを解析する必要があります。しかし単純なプログラミングなので、あとは特別問題ないかと思います。

"01 00\r"を送ると 0101から0120までのどのリクエストに応えられるかビット列で得られます、同様に"01 20\r"は0121から0140まで得られます。これらを使い、通信先の自動車がどのリクエストに反応するかを確認した上で値を取り出すことになります。  
"03\r"を送ると現在その車が陥っているトラブルに関するコードが返ってきます。これらのデータが何を示しているかは、[www.obd-codes.com](http://www.obd-codes.com/trouble_codes/)などを参考にすると良いと思います。

自分のRX-8とお話をしてみましたが、あまり応答スピードは速くないですね。リアルタイムにエンジン回転数を表示するというと結構カクカクするかもしれないです。なんとかせねば。]]>
    </content>
</entry>

<entry>
    <title>RX-8とOBD-IIでお話をする - 動作確認</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2010/01/000461.html" />
    <id>tag:blog.hiroaki.jp,2010://2.461</id>

    <published>2010-01-12T15:00:00Z</published>
    <updated>2010-01-12T09:39:36Z</updated>

    <summary>ELM327の載ったデバイスを手に入れたので、今エントリでは実際に自動車に取り付...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Auto" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Device" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OBD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        ELM327の載ったデバイスを手に入れたので、今エントリでは実際に自動車に取り付けて動作確認をしたいと思います。

前回の[エントリ](http://blog.hiroaki.jp/2010/01/000460.html)で自分はBluetooth版デバイスを買いましたが、基本的にデバイスとお話しする方法はシリアル通信となります。RS-232C接続（つまりシリアル接続）の場合には該当するデバイスとお話をすればいいですし、USBやBluetoothの場合、各OSで仮想的なシリアルデバイスを作成できます（WindowsだったらCOM1とか、Macだったら/dev/tty.***とか）。

MacだとBluetoothで仮想デバイスを使って常にお話しするのはどうも安定性に欠けるようなのですが（Snow Leopardは長く試してないので改善しているかもしれません）、いずれにせよ動作確認のためだけであれば問題ないでしょう。

普通だったらここで実際に配布されているソフトウェアを使って動作確認をするのでしょうが、自分の場合は（それだとつまらないので）実際にターミナル経由でデバイスと直接お話をしてみることにします。
        <![CDATA[## プロトコル

ELM327は古き良きATコマンドを含む対話型のインタフェースを提供しています。詳細は前回の[エントリ](http://blog.hiroaki.jp/2010/01/000460.html)でも紹介した[ELM327のデータシート](http://www.elmelectronics.com/DSheets/ELM327DS.pdf)に書かれているのでそれを参考に進めます。

ま、英語なので斜め読みして頂くとして、重要なのは5ページ目の "Communicating with the ELM327"からです。曰く、「＞プロンプトが出てきたらコマンド入れてリターンすれば結果が返ってくる（超訳）」とのこと。ま、そのほかにも大文字小文字区別しないとか、スペースをどこに挿入しても関係ないとかいろいろ書いてありますが、ま、気にしないことにします。

で、そのコマンドですが7ページ下部からずずっと載っています。

> AT Z とするとreset allです。デバイスが再起動します（車の情報をリセットする訳じゃありません）。このときにELM327チップのバージョンが分かります。

> AT RVとすると、ELM327に届く電圧（≒バッテリの電圧）を測ることができます。定格12Vですが、実際にはもう少し余裕を持った値になっている可能性があります。

実際にバッテリの電圧を調べるということを22ページ目で示していますので、参考になります。


このコマンドがATで始まらない場合には、ELM327は入力されたコマンドをOBDコマンドと解釈します（23ページ）。24ページ以降に実際にOBDコマンドがいくつか紹介されていますが、Wikipediaの[OBD-II_PIDs](http://en.wikipedia.org/wiki/OBD-II_PIDs)を見た方が手っ取り早いかもしれません。

たとえば、01 05 と打てばEngine coolant temperatureがわかり、01 0Cと打てばエンジン回転数が分かります。


## 接続

ELM327は、数多くの車種に対応しています。さらには、それらの車種で使われている詳細なプロトコルを自動判別して差異を吸収してくれるすぐれものです（ELM326にはそのような機能はなく、CANを使うマツダ車などは対応していなかったようです）。

車によってコネクタの位置が違うのですが、これは他社さんのページで申し訳ないのですがBLITZなど、同じコネクタを使う製品を出されている会社の情報を参考にするとすぐに分かると思います。たとえば、[こちらのページ](http://www.blitz.co.jp/products/electonic/r-vit_flash3/r-vit_flash3.htm)から参照できる車種別適合表などは参考になると思います。


## ターミナル

シリアルな機器と（手っ取り早く）お話しするときには、ターミナルを利用します。ZTermとかいろいろありますが、自分はminicomを使いました（macportsからインストール）。まぁ、お好きな物を使えばよいと思います。

基本的にデフォルトで動きましたが、add linefeedはonにしないと全て同じ行に表示されてしまいました。実際の様子はこんな感じです。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/01/56557385-a5ff90274869cc728c99bbb907b5d505.4b4c198a-full-7.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/01/56557385-a5ff90274869cc728c99bbb907b5d505.4b4c198a-full-7.html','popup','width=747,height=637,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/01/56557385-a5ff90274869cc728c99bbb907b5d505.4b4c198a-full-thumb-480x409-7.jpg" width="480" height="409" alt="obd-terminal.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

いろいろ返事がもらえていますが、OBDコマンドの場合には3バイト目からが実際の値になります。

たとえば01 0Cの返事に

>41 0C 0D 2F

が返ってきていますが、ここで大事なのは0D 2Fです。これを16進数から10進数に直すと3375です。この値はエンジン回転数の4倍の値が返ってきているので（wikipediaの該当部分参照）、実際の値は843.75rpmとなります。RX-8のアイドリング時（エンジンが暖まってきた後）はだいたいこんなものなので比較的正常な値が取れていることが分かります。

とまぁ、デバイスもきちんと動いているようなので、次回からは実際にプログラミングをして値を取り出すことにしてみます。]]>
    </content>
</entry>

<entry>
    <title>RX-8とOBD-IIでお話をする - 準備</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2010/01/000460.html" />
    <id>tag:blog.hiroaki.jp,2010://2.460</id>

    <published>2010-01-11T16:14:18Z</published>
    <updated>2010-01-12T06:09:01Z</updated>

    <summary>久々の投稿です。 OBD-IIという自動車のコネクタを通した各社共通の診断プロト...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Auto" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Device" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="OBD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Technology" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        久々の投稿です。

OBD-IIという自動車のコネクタを通した各社共通の診断プロトコルがあるのですが、そいつを日曜プログラマでも簡単に扱えるようにするELM327というチップが存在することを知りました。
そして、そのチップを使ってシリアルやらUSB、Bluetoothなどでパソコンからお話をするデバイスもいくつか売り出されているようです。これを使うと、エンジン回転数や速度などの基本情報、それにエンジン温度や瞬間燃費等の普通は知ることのない情報をリアルタイムに取得することができるようになります。

え、そういうのだったら既に売ってるって？　ええ、[BLITZ R-VIT](http://www.blitz.co.jp/products/electonic/r-vit_flash3/r-vit_flash3.htm)とかそうですよね。仕組みはまさに同じなのですが、自分でのプログラミングだと簡単にログをとったりいろいろ遊ぶことができます。逆にそういった加工をしないのであればこちらの製品のほうが手っ取り早いと思います。
自分の場合は、パソコンと連携していろいろやってみたかったってことと、**どうせすぐに飽きるのに4万とか5万とか出せない**ので自作することにしました。OBD-IIから情報を取り出すだけなら5000円くらいのパーツだけで済んでしまいますので。

というわけで、この投稿から数回にわたってELM327を使って車とお話しするアプリ製作の備忘録を書いていこうと思います。

今回は、ELM327を搭載したデバイスを手に入れるフェーズに関して記載します。
        <![CDATA[## デバイスの選択

ELM327は、（ちょっとプログラムを組むには面倒な）OBD-IIプロトコルを、シリアルコンソールを用いて容易に自動車とお話しすることができるようにするICチップです。
[ELM Electronics](http://www.elmelectronics.com/)という会社が作っていて、オンライン上には[ELM327
のデータシート](http://www.elmelectronics.com/DSheets/ELM327DS.pdf)や[クイックリファレンスシート](http://www.elmelectronics.com/DSheets/ELM327QS.pdf)などもあります。これらはプログラム作成時に利用します。

このELM327を使ったデバイスであれば基本的にどのデバイスでもデータを読み出せます。実際にUSB、RS-232C接続、Bluetoothなど、多くのバリエーションが存在します。そんな中で、自分は以下の理由からBluetooth版を選択しました。

- 出来るだけ車内に配線を這わせたくない
- 自分の車（RX-8）の場合、運転席ハンドル下部に端子があるため、何らかの拍子にケーブルなどが外れた場合にアクセルやブレーキに巻き込まないか心配
- Macを使っているので、USB版はドライバが存在しない可能性がある。それにひきかえBluetoothはSPP (Serial Port Protocol)経由でデータを読み込むためドライバは不要
- Bluetoothの弱点は電気をよく食べることですが、それもダイナモが動いてるときしか食わないのでバッテリもあがらないはず
- ELM327はECUのデータ書き換えなどの機能はないので、万が一（無線なので）外部からいじられても大した被害にはならない。

ただまぁ、プログラミングのし易さで言えば有線の方が簡単ですし安定するはずです。どれを選ぶかはオーナー次第ですね。

##デバイスの購入

そんなわけで、自分はBluetooth版のものを購入することにしました。Googleでいろいろ調べたところ、[deal extreme](http://www.dealextreme.com/)という会社で売っていた[ELM327 Bluetooth OBD-II Wireless Transceiver Dongle](http://www.dealextreme.com/details.dx/sku.16921)を見つけたので、これを購入することにしました。deal extremeはPayPalを使って決済が出来るので、海外のサイトにクレジットカード番号を教えたくない、という人でも安心だと思います（自分はあまり躊躇しないで買ってしまいますが）。
金額は55ドルほど。2009年末に注文をしたのですが、円高でしたので助かりました。PayPalはドル決済と円決済を選べるようですが、ドル-円レートはクレジットカード会社のもののほうがだいぶ良かったので、PayPalではドル決済を選びました。なお、送料は無料です。

この会社、倉庫は香港にあるようで、商品出荷時には国際郵便の追跡コードをメールで知らせてくれます。自分の場合、出荷してからだいたい一週間で届きました（出荷まで半月くらいかかってましたが...）。

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.hiroaki.jp/assets_c/2010/01/_DSC2496-1.html" onclick="window.open('http://blog.hiroaki.jp/assets_c/2010/01/_DSC2496-1.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.hiroaki.jp/assets_c/2010/01/_DSC2496-thumb-480x360-1.jpg" width="480" height="360" alt="BluetoothOBD.jpg" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

この青い部分が本体です。CDにいろいろソフトが入っているようですが、今回は使いません。いきなりプログラミングです。
そのプログラミングは次回以降に。]]>
    </content>
</entry>

<entry>
    <title>整備</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2009/09/000459.html" />
    <id>tag:blog.hiroaki.jp,2009://2.459</id>

    <published>2009-09-30T13:26:50Z</published>
    <updated>2009-09-30T13:44:22Z</updated>

    <summary>サーバのホームディレクトリリプレースなどでコメント投稿すらできない静的ファイルの...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        サーバのホームディレクトリリプレースなどでコメント投稿すらできない静的ファイルのみの状態で放置されていた当ブログですが、MTのバージョンを上げDBから掘り返して復旧させてみました。
日々の雑事はmixiやtwitterで綴ることが多いですが、やはりまとまった記事を書くときにはどうも不得手の様子。
今後このブログも活躍の場が訪れるかもしれません。...訪れないかもしれません。
        
    </content>
</entry>

<entry>
    <title>in Salzburg</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/06/000458.html" />
    <id>tag:blog.hiroaki.jp,2007://1.459</id>

    <published>2007-06-13T08:40:56Z</published>
    <updated>2007-06-13T08:58:17Z</updated>

    <summary>Now I&apos;m attending a conference, ACE 2007...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Research" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<a href="http://blog.hiroaki.jp/images/salzburg3.jpg"><img alt="salzburg3.jpg" src="http://blog.hiroaki.jp/images/salzburg3-thumb.jpg" width="120" height="160" align="right" /></a>Now I'm attending a conference, <a href="http://www.ace2007.org/">ACE 2007</a>.
If you also attend this conference, please contact me ;)

but...
There are so many Japanese...
hmm... I'm not feeling like visiting Austria... :-(]]>
        
    </content>
</entry>

<entry>
    <title>エレベータのボタンのデザイン</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/05/000457.html" />
    <id>tag:blog.hiroaki.jp,2007://1.458</id>

    <published>2007-05-24T16:50:00Z</published>
    <updated>2007-05-24T18:30:14Z</updated>

    <summary>  自分が普段作業している研究室（の分室）は9階にあるので、いつもエレベータを利...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Research" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<a href="http://blog.hiroaki.jp/images/SN320287.jpg" target="_blank"> <img alt="SN320287.jpg" src="http://blog.hiroaki.jp/images/SN320287-thumb.jpg" width="110" height="159" style="float:right;margin:8px" /></a>

<p>自分が普段作業している研究室（の分室）は9階にあるので、いつもエレベータを利用して移動します（階段は非常階段しかない）。</p>
<p>
このエレベータ、OTIS社製なんですが、いつも乗ってフロアのボタンを押すときに違和感を感じるんです。<br />
原因は、このボタン配置。写真のように並んでるんですが、この「2列に平行に並んだボタンデザイン」ってどうかと思うんですよ。</p>
<p>
<table style="float:left;margin:8px">
<tr><td>5</td><td>6</td></tr>
<tr><td>3</td><td>4</td></tr>
<tr><td>1</td><td>2</td></tr>
</table>
このエレベータのデザインは「左」「右」「左」「右」という順番で数字が大きくなっていくというパターンです。5階までしかない建物などはともかくとして、階数が多くなってくれば、このように2列にするのは仕方のないことでしょう。ただ、同じ2列にしたって、
</p>
<div>
<br style="float:clear;" />
</div>
<p>
<table style="float:left;margin:8px">
<tr><td>3</td><td>9</td></tr>
<tr><td>2</td><td>8</td></tr>
<tr><td>1</td><td>7</td></tr>
</table>
こういうのだって考えられるわけですよね。このパターンは、まず左側の列を埋めてしまい、その後右側を埋めていくというもの。</p>
<div>
<br style="float:clear;" />
</div>
<p>
問題は「どっちのパターンの方が良い」というのではなく、「ユーザは、乗ってみたエレベータのボタンがどちらのパターンを採用しているかが瞬時に判別が出来ない」ということです。
</p>
<p>
研究室の人には一年以上前からたびたびこのデザインの悪さを愚痴ったりしました。そして、ぱっと思いつく改善案として、「右側の列をボタンの高さの半分くらい上に持ち上げる」というアイディアを提示してみたりしました。
</p>
<p>
そしたら、ついに見つけましたよ、こんな<a href="http://www2.toshiba-elevator.co.jp/elv/common/contents/products/new/univ_design02.jsp" target="_blank">サイト</a>を！<br />
サイトに提示されている写真を見ていただければ分かりますが、ボタンの配置がこのアイディアのまんまです。まさに我が意を得たり！<br />
さらに素晴らしいのは、「1」と「2」が連続していることを表すかのような、細いラインが入っています。これは「左側の列をまず埋めてしまう」デザインではないよ、ということを容易に分からせるために一役買っています。<br />
考えてみれば、右側の列をちょっと上にずらしただけでは、まだ「左側の列をまず埋めてしまう」デザインと混同してしまうことがありますよね。ふむ、なかなか奥が深い。
</p>
<p>
一応、我らがエレベータにも左右にラインが入ってるんですが、今の今まで気付きませんでした。ただラインを入れただけでは不十分ってことなんでしょうかね。
</p>
<p>
では、「左側をまず埋めていく」デザインにしたい場合は、どうやったら混乱させずに済みますかね…？<br />
ぱっと思いつくのは、二つの列の間隔をもっとあける、というアイディアでしょうか？　これだけでだいぶ「縦方向のつながり」が強調されるはずです。
</p>
<p>
なお、<a href="http://d.hatena.ne.jp/manpukuya/20060607/elevator" target="_blank">まんぷく::日記さん</a>では、「開く」ボタンと「閉じる」ボタンの配置に関する調査を行っています。こちらも興味深いですね。
</p>

<p>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=hirolog-22&o=9&p=8&l=as1&asins=478850362X&fc1=606060&IS2=1&lt1=_blank&lc1=309030&bc1=000000&bg1=FFFFFF&f=ifr&nou=1" style="width:120px;height:240px;float:right;margin:5px" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
このような日常物のデザインについて興味を持った人は、ドナルドノーマンの「<a href="http://www.amazon.co.jp/gp/product/478850362X?ie=UTF8&tag=hirolog-22&linkCode=as2&camp=247&creative=1211&creativeASIN=478850362X">誰のためのデザイン?―認知科学者のデザイン原論</a><img src="http://www.assoc-amazon.jp/e/ir?t=hirolog-22&l=as2&o=9&a=478850362X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を一読することをおすすめします。途中眠くなるところもあるんですが（笑、写真も多くてなるほどと膝を叩くことうけあいです。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>効果的なプレゼンの方法って？</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/05/000456.html" />
    <id>tag:blog.hiroaki.jp,2007://1.457</id>

    <published>2007-05-13T18:32:15Z</published>
    <updated>2007-05-13T19:57:28Z</updated>

    <summary>先のエントリでも書きましたが、先日Cocoa勉強会で発表をしてきました。 その際...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="Research" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<p><a href="http://blog.hiroaki.jp/2007/05/000456.html">先のエントリ</a>でも書きましたが、先日Cocoa勉強会で発表をしてきました。</p>


<p>その際、参加者であり僕をその場に呼んでいただいたおおもりさんに、「発表は慣れてるんですか？」という質問というかお話をうけました。<br />
学会などで「ハッタリをかます」のが商売っちゃ商売なので、普通の人よりは場数をこなしているかもしれませんが、まだまだひよっこです。</p>


<p>コンピュータ業界でプレゼンのうまい人というと、それはもうぶっちぎりでSteve Jobsでしょう。<br />
Appleのサイトに年始にサンフランシスコで行われた基調講演のビデオが<a href="http://www.apple.com/quicktime/qtv/mwsf07/">置いてあります</a>。iPhoneの紹介も載っているので、興味のある人は見てみると良いでしょう。発表の仕方と、そしてスライドの作り方はとても参考になります。英語もとても聞き取りやすいですし。</p>


<p>ただ、学会や技術系の場であのようなスライドのデザインというのもなかなか難しいものがあります。そもそも、「絵」で示せるほど成果が単純じゃないことが多いわけで…。
</p><p>
というわけで（？）、本エントリではスライドデザインはともかくとして、それ以外で自分がプレゼンでちょっと気をつけていることをまとめてみます。
</p>]]>
        <![CDATA[<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">いったい何を伝えたいのかをまとめる</H3>
<p>
まぁこれは当たり前なんですが、結構あやふやなままスライドを作り始めちゃう人も多いです。これが決まらないと、プレゼンの道筋が決まりません。
</p>

<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">聴衆の知らないこと、知っていることを整理する</H3>
<p>
何はなくとも、これですね。<a href="http://en.wikipedia.org/wiki/User-centered_design">User-Centered Design</a>じゃないですが、思想は同じです。<br />
プレゼンをするからには当然「伝えたいこと」があるわけですが、こればっかり頭にあると、ともすれば「俺が俺が」と主張一辺倒で聴衆置いてきぼりのプレゼンになりがちです。話を展開する上で必要な知識を聴衆に前もって期待できないのであれば、当然それも説明しなくちゃいけないわけです。
</p>
<p>
難しいのは聴衆のレベルに幅があるときですが、これはどうしたらいいんでしょうね。どちらかに合わせるしかないんでしょうが、説明用の資料も作っておいて、その場の反応を見て説明するかしないかを決めるというのが理想的かもしれません。その場で説明した方が良いか聞いてしまっても良いでしょうしね。
</p>
<p>
このように整理を行うと、プレゼンの頭から結論までだいたいどういう道筋で話したらいいかが整理されていきます。論理的に破綻のないように道筋を決めていくのは当然ですが、とにかく聴衆の視点で考えていくのが大事ですよね。
</p>

<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">聴衆にプレゼンを聞いてもらえるようにする</h3>
<p>
これも難しいですが、必要です。<br />
いくら会場に居合わせているとはいえ、全員がそのプレゼンに興味を持っているわけではないでしょうし、「食わず嫌い」ではないですが、講演内容のレジュメやタイトルから、勝手に「つまらない」と決めつけているような人もいると思います。
</p>
<p>
これを何とかするには、例えばプレゼンのアウトラインを最初に示し、プレゼンを聞いた際の「効能」を先に聴衆に伝えてしまうという方法があります。これで、聴衆の「思い込み」は解消されるでしょう。
</p>
<p>
「ツカミが重要」というのは、プレゼンの世界でも同じです。<br />
海外の人は、よくプレゼンの最初にちょっとしたジョークを飛ばします。前の発表者をネタにしたり、まぁとりとめのないことだったりするんですが、ちょっとした笑いが起きればプレゼンに自然と注意が向きます。
</p>

<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">聴衆を飽きさせないようにする</h3>
<p>
これは、思想的には上の「プレゼンを聞いてもらえるようにする」と同じですね。<br />
難解な説明だったり、込み入った内容になると、だんだん空気が重たくなっていきます。また、プレゼンターの「独演会」じみたものになってくると、聴衆の集中力が途切れてしまいます。
</p>
<p>
こんな時、何かちょっとした軽口を言えると場が和みます。<br />
たとえ聴衆が聞きたいと思っていても眠気に逆らえないときってのがあります（笑　ちょっとした軽口は、どうやらこういうときにも効果があるようです。淀んだ空気がすっと入れ替わるような感じなのかもしれません。
</p>
<p>
ちなみに。<br />
Cocoa勉強会での発表内容ではどうしても三角関数を説明しなければならないときがありました。自分は「なぁんか、数学の授業みたいになっちゃってますねー」とか、そんなことを言ったような気がします。文章にすると全然面白くないですけど、まぁ、こんなもんでいいんじゃないでしょうか。セリフの言い方とプレゼンターのキャラクタにもよりますね^^;
</p>
<p>
また、同じくCocoa勉強会では加速度センサとSVMを使ったデモを行ったんですが、正直成功率はあまり高くないと思っていました。トレーニングのデータがかなり偏っていたので、姿勢が異なる状態でデモをやってもうまく判定できないと予想していたからです。<br />
うまくいかなかったときにはこう言おう、と決めていたセリフは<b>「ここはちょっと重力がおかしいのかもしれませんね…」</b>でした（実際にお披露目することになっちゃったわけですが^^;）<br />
一応ウケていたようで何より（笑
</p>

<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">間（ま）をはかる</h3>
<p>
これはかなり難しいですが…。
</p>
<p>
聴衆の間に理解度の差があるのはもちろんですし、そもそも「知らないことを伝える」わけなので、どうしたって理解に時間がかかります。<br />
そんなときにプレゼンターが突っ走ってしまっては、もう完全に聴衆は混乱してしまいます。適宜ブレークして、聴衆の反応を見ることが重要です。
</p>

<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">トランジションを効果的に使う</h3>
<p>
いきなり具体的ですが（笑
</p>
<p>
世の中にはアニメーションに凝る人は数いれど、スライド間のトランジションを気にかけている人はアニメーションを凝る人よりは少数派の気がします。<br />
まぁ、たしかにアニメーションは派手なのでばしばし使いたくなるんですが、何にせよ使いすぎは良くないです。多くは自己満足ですよね、あれ（苦笑<br />
ま、当然必要なときに効果的に使ってる人も多いですけどね。
</p>
<p>
さて、トランジションの話でした。これは、Jobsのスピーチで効果的に使われているように思います。<br />
トランジションをまったく使わないと、マウスをクリックしたときに次のスライドが全部一気に表示されます。ここでスライドに文字がどっさり表示されてたりすると、ちょっと圧倒されます。
</p>
<p>
ここで、ディゾルブなどを使って少し時間をかけてスライドを変えていくと多少心理的圧力が低減されるような気がします。このスライド変化時に、「つなぎの言葉」を使って新たなスライドに話を持っていくようにすると効果的です。<br />
紙芝居なんかで次の絵に変わるときに、「その時太郎君はどうなったかというと…」というセリフを入れてドキドキ感を高めるようなものです。<br />
これ、やっぱり一気にスライドが変わっちゃうとインパクトがないですし、無言のままスライドが切り替わるってのも意味がないような気がします。
</p>
<p>
また、「次に○○について紹介したいと思います」のように、それまでとは話題が切り替わるときがあると思います。そんなときにはトランジションの種類を切り替えると効果的です。<br />
自分がよく使うのは、普段はディゾルブで、話題が切り替わるときにはブラックからのフェードインです。<br />
百聞は一見にしかずじゃないですけど、こういった要素も取り入れるとより分かりやすくなっていいんじゃないでしょうか。
</p>
<p>
箇条書きの項目を、ぽちぽちクリックして順番に見せていくアニメーションというか効果がありますよね。<br />
あれをやっている人も多くみかけるんですが、その項目がいくつあるのかが最後までみないと分からないという欠点もあるので、ただ単に使えばいいというものでもないと思います。
</p>
<p>
ただ、この「流れ」を強調させたいときというのは、たしかにあります。<br />
そういう時に自分がたまに使うのは、トランジションでスライドが変わったと同時に、項目のアニメーションを自動的に開始しちゃうというものです（クリックしなくても箇条書きの最後の項目までアニメーションしてしまう）。<br />
このアニメーションが行われているときに、このスライドでは「流れ」を紹介する旨をつなぎの言葉として言うと、聴衆の理解度も高まるのではないかと思います。
</p>
<H3 style="margin-top: 20px;  color: rgb(255, 128, 0);">まとめ</h3>
<p>
まぁ、何にせよ<b>聴衆の視点に立て</b>ってことですよね。<br />
以前某社のインターンに行ったときに、ユーザインタフェースの研究者なのにもかかわらず、色遣いはおかしいわ、文字は小さすぎるわで酷いプレゼンをしている人をみかけました。<br />
その時はメンターと二人でこそこそダメだしをしてたんですが、結局そこででた結論はそういうことでした。
</p>
<p>
これを読んでる皆さん、なにか小技・必殺技を持っていたら是非教えてください^^
</p>]]>
    </content>
</entry>

<entry>
    <title>WiiRemote.frameworkのサンプルコード</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/05/000455.html" />
    <id>tag:blog.hiroaki.jp,2007://1.456</id>

    <published>2007-05-13T13:02:49Z</published>
    <updated>2007-05-13T13:06:47Z</updated>

    <summary>どうもご無沙汰しております。 昨日、Cocoa勉強会にてWiiRemote.fr...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[どうもご無沙汰しております。
昨日、Cocoa勉強会にてWiiRemote.frameworkを紹介してきました。

その際に作った<a href="http://blog.hiroaki.jp/misc/GoogleEarthController.zip">GoogleEarthを動かすっていうサンプルコード</a>と<a href="http://blog.hiroaki.jp/misc/cocoastudy.pdf">資料（こちらは一部修正）</a>を公開しますので、よろしければ参考にしてみてください。

サンプルコードを作っているうちにいろいろ気付いたことがあるので、それはフレームワークの方に適用していこうと思います。]]>
        
    </content>
</entry>

<entry>
    <title>A simple sample code for WiiRemote.framework</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/05/000454.html" />
    <id>tag:blog.hiroaki.jp,2007://1.455</id>

    <published>2007-05-13T12:53:12Z</published>
    <updated>2007-05-13T13:01:35Z</updated>

    <summary>Hi all, Yesterday, I lectured usage of W...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[Hi all,
Yesterday, I lectured usage of WiiRemote.framework to some japanese programmers.

In the lecture, I showed a sample code to control GoogleEarth by using a Wiimote.


If you interest this code, please download it from <a href="http://blog.hiroaki.jp/misc/GoogleEarthController.zip">here</a>. It includes both sources and the application.
I guess it's a good example to learn the framework.

However I found some points which I have to change and fix the framework when I wrote the code.
I will apply these things later.]]>
        
    </content>
</entry>

<entry>
    <title>Is this next target?</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/05/000453.html" />
    <id>tag:blog.hiroaki.jp,2007://1.454</id>

    <published>2007-04-30T19:50:01Z</published>
    <updated>2007-04-30T19:56:00Z</updated>

    <summary>Hi, long time no see. I&apos;m very sorry. I&apos;...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        Hi, long time no see.
I&apos;m very sorry. I&apos;m still busy because I landed a new job, research associate, from this April...


BTW, I read this article. Is this next target?

http://www.pabr.org/sixlinux/sixlinux.en.html

But I&apos;m not sure it can be hacked in mac...
And I cannot download sixpair.c now
        
    </content>
</entry>

<entry>
    <title>bug, bug, bug...</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/03/000452.html" />
    <id>tag:blog.hiroaki.jp,2007://1.453</id>

    <published>2007-03-11T14:59:36Z</published>
    <updated>2007-03-11T15:22:54Z</updated>

    <summary>I&apos;m very sorry. DarwiinRemote 0.5 seems ...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[<a href="http://blog.hiroaki.jp/images/wiimote_at_seoul.jpg"><img alt="wiimote_at_seoul.jpg" src="http://blog.hiroaki.jp/images/wiimote_at_seoul-thumb.jpg" width="240" height="180" style="float:right;margin:5px"/></a>I'm very sorry. DarwiinRemote 0.5 seems to have many bugs.
- PPC bugs might remain (Please report if so)
- Classic Controllers does not work well...

I will fix the problem soon, but now I'm at Seoul, Korea to attend a conference.
Actually I have a wiimote but do not have a classic controller. After I go back to Japan, I will test my codes as soon as possible.


というわけで…。
どうやらDarwiinRemote 0.5には直ってない部分が多々あるようです。
一応研究室のG5でさらっと動かしてPPCでも動くじゃん♪と思っていたのですが、動かないと言っている人が海の向こうにおります…。クラコンに関しても、以前の自分のコードでは確かに動いていたのですが、海の向こうの人にリファクタリングしてもらったやつでどうやら動かなくなっていた模様…。

出来るだけ早くなおします。と言いたいところなのですが、現在韓国に出張中でして…。
リモコンは使うかと思って持ってきたのですが、さすがにクラコンは持ってきていないのです。
というわけで、帰ったらできるだけ早く直そうと思います。

…。でも、日本に帰った翌々日にはニューヨークに旅立つのよねん（泣）
まさに忙殺。]]>
        
    </content>
</entry>

<entry>
    <title>DarwiinRemote 0.5をリリースしました</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/03/000451.html" />
    <id>tag:blog.hiroaki.jp,2007://1.452</id>

    <published>2007-03-08T17:35:07Z</published>
    <updated>2007-03-08T17:48:12Z</updated>

    <summary>ごぶさたしております、Hiroakiでございます。 やっとこさVersion 0...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[ごぶさたしております、Hiroakiでございます。

やっとこさVersion 0.5のご案内です。
今回のバージョンでは、<a href="http://www.amazon.co.jp/gp/product/B000KF3RRS?ie=UTF8&tag=hirolog-22&linkCode=as2&camp=247&creative=1211&creativeASIN=B000KF3RRS">クラシックコントローラ</a><img src="http://www.assoc-amazon.jp/e/ir?t=hirolog-22&l=as2&o=9&a=B000KF3RRS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />のサポートおよび、これまで懸案の一つであったPPCマシンでの不具合の修正が行われています。
ダウンロードは<a href="http://sourceforge.net/project/showfiles.php?group_id=183966">こちら</a>よりどうぞ。


そういえば、先月末に発売された<a href="http://www.amazon.co.jp/gp/product/B000NJL3OU?ie=UTF8&tag=hirolog-22&linkCode=as2&camp=247&creative=1211&creativeASIN=B000NJL3OU">Mac People 2007年4月号</a><img src="http://www.assoc-amazon.jp/e/ir?t=hirolog-22&l=as2&o=9&a=B000NJL3OU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />にWii関連の特集が組まれてDarwiinRemoteも紹介されました。
DarwiinRemoteの動作に関する質問や、ゲラ刷り原稿が編集の方からPDFで送られていてチェックを頼まれたりしたので、てっきり献本等のお話があるかと思いきや…。結局特に何もなく。
こちらから何か言うのもなんなので、自分では結局買わないままです。読みはしましたけど、ね。

記事自体はとても簡潔に操作法などが纏められているので、DarwiinRemoteの使い方が分からないなどの場合にはご参考になさってください。分かりやすいと思います。]]>
        
    </content>
</entry>

<entry>
    <title>DarwiinRemote and WiiRemoteFramework 0.5 have been released!</title>
    <link rel="alternate" type="text/html" href="http://blog.hiroaki.jp/2007/03/000450.html" />
    <id>tag:blog.hiroaki.jp,2007://1.451</id>

    <published>2007-03-08T17:27:39Z</published>
    <updated>2007-03-08T17:34:50Z</updated>

    <summary>Hi all, I&apos;m very sorry that I was far aw...</summary>
    <author>
        <name>Hiroaki</name>
        
    </author>
    
        <category term="DarwiinRemote" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.hiroaki.jp/">
        <![CDATA[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 from <a href="http://sourceforge.net/project/showfiles.php?group_id=183966">here</a>. Enjoy!


In this version, especially Jasen made great efforts to improve the framework ;)]]>
        
    </content>
</entry>

</feed>
