2009-11-13[n年前へ]
■ThinkPad X/X Tablet/T/W シリーズ大売り出し!?
「レノボ・ジャパン」公式オンラインストアで、「ThinkPad X/X Tablet/T/W シリーズを本体価格12万円以上買い上げるとキャンペーン価格よりさらに21%引き」というキャンペーンを11/15までの期間限定で行っている(リンク先ページにE-クーポンコードが記載されている)。公式オンラインストアではカスタマイズができるので、英語キーボードへの交換(これとCtrlとCapsLkの入れ替えは必須という人も多いはずだ)も無料でできる。英語キーボードはなかなか入手できなかったり、若松通商あたりで買っても一万円近くするので、キーボード交換無料というのも魅力的だ。
試しに、ThinkPad W500をカスタマイズしてみると、定価250,635円が、通常のキャンペーン価格で、152,880円になり、さらに今回の週末限定特別Eクーポンを使うと、¥120,775になる。…すでに半額以下だ。Lenovo言うところの「最先端のテクノロジーを搭載したモバイルワークステーション」が12万円から、と考えるとポチッ「購入」ボタンを押してしまいたくなる。
2009-12-04[n年前へ]
■Thinkpad 加速度センサでExcel3次元グラフを未来のディスプレイ風にしよう
Ruby版 Thinkpad 加速度センサ類取得クラスを作ったので、さっそく何か加速度センサを使って遊んでみることにしましょう。まずは、とても簡単に「未来のディスプレイ」を作る風のことを、Ruby+Microsoft Excelで行ってみることにしましょう。
というわけで、Thinkpadを傾けると、それに応じてエクセルの三次元グラフを(傾けた方向に応じた)さまざまな方向から眺めることができるという次のようなスクリプトを書いてみました。
このスクリプトはまずエクセルで(適当な値を代入した)三次元グラフを作成し、(その後の30秒間にあなたがグラフを色々カスタマイズする時間を与えた上で)、30秒経た後にThinkpadの傾きに応じて三次元グラフを好きな方向からリアルタイムにグリグリ動かしながら眺めることができる、というスクリプトです。(動画は「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」で観ることができます)
require 'accelerometer' require 'win32ole' excel=WIN32OLE.new("excel.application") excel['Visible']=TRUE excel.Workbooks.Add() excel.Range("a1")['Value']=1 excel.Range("a2")['Value']=1 excel.Range("a3")['Value']=1 excel.Range("a4")['Value']=1 excel.Range("b1")['Value']=1 excel.Range("b2")['Value']=2 excel.Range("b3")['Value']=2 excel.Range("b4")['Value']=1 excel.Range("c1")['Value']=1 excel.Range("c2")['Value']=3 excel.Range("c3")['Value']=2 excel.Range("c4")['Value']=1 excel.Range("d1")['Value']=1 excel.Range("d2")['Value']=1 excel.Range("d3")['Value']=1 excel.Range("d4")['Value']=1 excel.Range("a1:d4").Select() excelchart=excel.Charts.Add() excelchart['Type']=-4100 sleep 30 # wait time for custumize accelerometer=Accelerometer.new 300.to_i.times do accelerometer.getAccelerometerData x=accelerometer.x y=accelerometer.y r=Math.sqrt(x*x+y*y) elevation=90-r.to_i rot=360-(Math.atan2(y,r)+Math::PI)/(2*Math::PI)*360 excelchart.rotation=rot # 0 to 360 excelchart.elevation=elevation # -90 to 90 sleep(0.2) end excel.ActiveWorkbook.Close(0) excel.Quit()このスクリプトを動かせば、Thinkpadを傾ければ、低い角度からグラフを眺めたり、左右に倒せば左右の異なる方向からグラフを眺めたりする…ということができます。「未来風」かはさておき、現実世界で行う動作に適切に対応した動作、つまりは「実感・体感できる」ソフトウェアを作る、というのは何だかとても面白いものです。
今回作ったスクリプトを動かしているようす、Thinkpad+Ruby+Microsoftエクセルでグラフを未来風にグリグリ動かしている様子を撮影した動画は、「Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画」として、公開しました。
2009-12-05[n年前へ]
■Thinkpad 加速度センサ+RubyによるExcel3次元グラフ動画
「Thinkpad 加速度センサでExcel3次元グラフを未来のディスプレイ風にしよう」を操作しているようすを、ケータイのカメラで撮影してみました。それが、下の動画になります。Ruby版 Thinkpad 加速度センサ類取得クラスを使い、Excel 2007のグラフを視点を操作している、という具合の動画です。パースペクティブを適切につけておくと、上下方向の視線移動に関してはかなり自然に眺めることができます。(この動画実行のためのRubyソースは上記記事を参照してください)
Excelの三次元グラフが、ElevationとRotationという、天頂近くで精度が低下しやすい座標指定方式なのと、Thinkpadの加速度センサが2軸方式で、鉛直線中心の回転を取得することができなかったりするところが(東芝のPCなどでは3軸取得が可能だったりするのですが)、「少しの変さ」をかもしだしていたりしますが、そこはそれ、Microsoft ExcelのグラフをノートPCの方向を変えると、それに応じた色々な方向から眺めることができる、というのは何だか面白い、とは思いませんか?
2009-12-06[n年前へ]
■Thinkpad加速度センサ取得用C++クラスの手直しをしました
Lenovo(IBM) Thinkpad加速度センサ取得用C++クラス(関連記事・Thinkpad加速度センサ取得用C++クラス/新しいThinkpad にも対応した加速度センサ値取得プログラム)を少し手直ししておきました。動作は全く変わりませんが前回の修正の際に不要な部分が残っていたので、その点について直しました。
Thinkpad加速度センサ取得用C++クラスをまとめたヘッダファイルソース(Sensordll.h)、および、使用サンプルソース・バイナリ(sample.cpp・sample.exe)は、ここに置いておきました(古いバージョンは、サブディレクトリに置いてあります)。
サンプル・アプリケーション例では、よく意味がわらないままに、"Temprature"も出力するようにしてあります。
sample.exe 1000 10という風にコマンドラインからアプリケーションを実行すると、
0=x, 0=y,35=temp. 0=x, 0=y,35=temp. 0=x, 0=y,35=temp. 0=x, 0=y,35=temp. 1=x, 1=y,35=temp. -16=x, -3=y,35=temp. -1=x, -1=y,35=temp.とった具合に左右方向の傾斜と奥行き方向の傾斜(とtemprature)を出力します。
2009-12-13[n年前へ]
■各種言語からのThinkpadの加速度センサ値取得方法
ThinkpadなどノートPCでは、ハードディスクの衝撃回避のために、加速度センサを搭載していたりします。私を含め、Thinkpadの加速度センサ値を取得し、色々遊んでいる人は多いので、今回は「各種言語からのThinkpadの加速度センサ値取得方法」へのリンクを作ってみました。私の知っているものを並べただけですので、「おいおい、この言語版もあるぜ」という情報などをjun@hirax.netまで頂ければ、リストを更新しておこうと思います。
- C++: 「Thinkpad加速度センサ取得用C++クラスの手直しをしました」
- C: (C++版の)「Thinkpad加速度センサ取得用C++クラスの手直しをしました」からクラス・例外処理を除けば良いです
- Ruby: 「Ruby版 Thinkpad 加速度センサ類取得クラスを書きました」
- C#: 「C#でThinkpad加速度センサーの値をとる」
- Perl: 「X61 Tablet で加速度センサを使ったアプリが動かない件」
- Perl on Linux: 「Linux ThinkPad の振動検出を活用する」
- Python: 「Python で Thinkpad の傾きを取る」
- VisualBasic: 「Interfacing sensor.dll into VB」
- awk on Linux with hdaps: 「Linux で ThinkPad の加速度センサーを読む」