オルタナティブ・ブログ > 少しでもパラノイアになってみる >

知的好奇心を満たすために、いろいろなことにチャレンジする

白いThinkPad X100eがやってきた(加速度センサーで遊んでみた編)

»

ThinkPadは、落下時の障害を少なくさせるためにHDDアクティブプロテクションシステムがあります。ThinkPad X100e(以後X100e)はエントリ向けでもThinkPadクオリティのため当然搭載しています。

X100eは加速度センサーを持っています。加速度センサーは、HDDを守るためだけに使用されるわけではありません。他の用途にも使用可能です。

例えば、Firefox 3.6には加速度センサーのイベントハンドラ(window.onmozorientation)があります。

 window.addEventListener("MozOrientation", handleOrientation, true); 

イベント登録することでX100eの傾きを知ることが可能です。

またCSSにはtransformと呼ばれる回転可能なプロパティがあります(Firefox/Webkit系)。例えば、以下のように記述を行うとHTMLのbodyを90度回転させることが可能です。

 document.body.style.MozTransform = "rotate(90deg)"; 

加速度センサーのイベントハンドラー、CSSのtransform、Greasemonkey(Javascriptで機能を後付できる)を使用すれば、X100eを傾けることでブラウザの表示向きを変えることが可能になります。

そこで作ってみました。ソース置き場にrotatebody_.user.zipがありますので、それをダウンロード&解凍するとrotatebody_.user.jsができます。そのスクリプトをGreasemonkeyが入ったFirefoxでドラッグアンドドロップしてください。Firefoxは3.6以降でお願いします。

Firefox向けになっているためChrome 4.0では動きません(加速度センサーイベントハンドラがないのでできないのです)。

rotatebody_.user.jsを入れたFirefoxでページを表示させて、X100eを横にすると以下のように回転します。

キーボードを水平にすれば元に戻ります。残念ながらメニューの位置を動かす方法を知らないため、HTMLの表示箇所だけ90度回転になります(注:縦方向に向きますが、相当スクロールしないと見たい箇所に移れません。このあたりはtransformの使い方が難しいような気がします。)。

縦読みしたいときはX100eの横幅1366pxはうってつけです!と言いたいところですが、最近のwebページは最低1024pxを前提に作られているためX100eの縦(768px-メニュー幅)は狭すぎます。また、HDDのノートPCを傾けるのは心情的にやりたくはありません(借り物なので、相当ゆっくりと傾けました)。

このため、作成したスクリプトはX100eの加速度センサーでこんなことができました程度のものです。ですが、SSDに換装すれば傾けることに抵抗は激減するでしょうし、GPSや電子コンパスなどを入れれば、大画面のiPhoneチックなことができるのではないでしょうか。

いや、無理ですね。そのような向きを変えたりするのは、iPadやSkylightなどのX100eのもう一回り軽いデバイスでないと手軽にできませんね。

ただ、それでもキーボード、マウス以外でも加速度センサーを用いればブラウザを操作可能であることを覚えておいてもいいのではないでしょうか。

【ThinkPad X100e関連】
ThinkPad X100e/Edge 13"を触ってきた
ThinkPad X100eの将来像を勝手に想像してみる
白い ThinkPad X100eがやってきた(ベンチ編)
白い ThinkPad X100eがやってきた(キーボード編)
白いThinkPad X100eがやってきた(Javascriptデバッグを行ってみた編)
白いThinkPad X100eがやってきた(まとめ編)

Comment(1)

コメント

はじめまして。
当方、加速度センサーを使ったThinkPadのアプリに興味がありまして、
X61にてFireFoxのブラウザ回転を試してみましたが、できませんでした。

ThinkPad X61[7675JLJ]
FireFox 3.6.28
GreaseMonkey 0.9
最新版FireFox及びGreaseMonkeyを使用しても、できませんでした。

X61の加速度センサーの読取方式が違うのでしょうか。
ご教授よろしくお願いいたします。

コメントを投稿する