Monthly Archives: 11月 2012

ERG mouseの定義ファイルの作り方 2

前回、ERG mouseの定義ファイル作成のうちボタンへのキーの割り付けと配置までやりました。
あのままでも使用する上では問題はないのですが、あまりにも簡素なのが気になるところです。ERG mouseには背景画像を貼り付けることができるのでこの機能を利用して、もう少しリモコンらしいデザインにしていきます。

1.背景画像のベースを作成する。
前回はここまで作りました。
レイアウト編集中
まずこのレイアウトを選択して、使用可能な状態にします。
iOSデバイスであれば□(ホームボタン)+電源SWで表示画面をキャプチャし、何らかの方法でPCにその画像を転送しますが、この時
キャプチャサンプル1
この部分をタップすると

メニューが表示されます。
メニュー1
配色を選択して。

メニュー2
さらに透過を選択します。

すると、
キャプチャサンプル2
画面がこの状態になるので、この状態でキャプチャします。

2.背景画像の作成。
先ほどキャプチャした画像を画像編集ソフトに読み込ませます。レイヤー機能が使えるソフトであれば、PhotoshopでもGIMPでも構いません、今回はPaint.NETを使用して作成していきます。

Paint.NETに先ほど作成したキャプチャ画像を読み込ませます。
Paint.Net01

次にWeb等から探してきたリモコンに使えそうな素材を貼り込んで行きます。
Paint.Net02
ボタンを一つ貼る度にレイヤーを増やしていくと調整しやすくなります。

ひたすらボタンを貼り込んで行き最後に背景を黒で塗りつぶします。
Paint.Net03
アクセントに左右のマウスボタンの所には赤いラインを入れてみました。

完成したので、画像として保存します。
Paint.Net04
ファイル-名前を付けて保存を選び。

ファイルの保存場所とファイル名を決めたら、Paint.Net05
JpegもしくはPNG形式で保存します。

今回はPNG形式でファイル名を「WMCBase.pngとして」保存します。
すると下記のように訪ねられるので
Paint.Net06
「平面化」を選んで保存は完了です。

念のため、作成した背景用ファイルは通常の保存でも保存しておくと良いでしょう。

3.ERG mouseへの背景画像の設定
先ほど保存した「WMCBase.png」をERG mouseの定義ファイルに設定します。
背景設定1
この画面から編集-背景-ファイル選択を選んで、「WMCBase.png」を指定します。

レイアウト編集中02
背景を読み込むとこのような状態になるので。

次はボタンのラベルを消していきます。
レイアウト編集中03

ひたすら削除を繰り返し
レイアウト編集中04
全部消えました。

ボタンのラベルを全部消し終わったら、ファイルから保存を選んで定義ファイルを保存して完了です。

レイアウトを指定して接続すると、iPhone側の画面には
WMC用リモコン
このように表示されているはずです。
もし
NG
こんな状態で表示されるようであれば、右上のメニューボタンから配色を透過にしてください。

Windows7をインストールしたHDDをZOTAC GF6100-E-E に載せ替える。

ZOTAC G43ITX-A-Eにで動いていたWindows7 x64のHDDをZOTAC GF6100-E-Eに載せ替えようとしたところ、予想通り起動しませんでした。
G43ITX-A-Eは型番が示す通り、Intel G43チップセットですからCPUはIntelです(Core2Duoが乗ってました)、この構成で動作していたWindows7 x64のHDDをAMDのAthlon II X2 260u+NVIDEAのIONチップセットのGF6100-E-Eに載せ替えたのですから、動かないのは想定の範囲内です。

症状としては、電源ON→Windowsの起動中にリブートWindowエラー回復処理

→コンピュータの修復
スタートアップ修復
→修復できずに終了する。
のおなじみのパターンです。

googleで”Windows7”,”起動しない”あたりをキーワードに検索すると、比較的よく出てくるのがSATAのモードをIDEからAHCIに変換した時に発生するトラブルですが、起動途中にこけるのは大体同じような原因でしょうから、このあたりから探ることにして修復を試みます。

電源ONで起動します、起動時にF8キーを連打していると、うまくいくと
詳細ブートオプション
詳細ブート オプションの画面になりますので、一番上の「コンピューターの修復」を選択します。

しばらく待っていると…
システム回復オプション
この画面では「OK」を押します。

次に管理者ユーザーでのログインを求められますので
システム回復オプション2
管理者のユーザー名を選択し、パスワードを入力してから「OK」ボタンを押します。

回復ツール選択画面が表示されたら
回復ツール選択
一番下の「コマンド プロンプト」を選んでクリックします。

すると
cmdimage
と、コマンド プロンプトが開きました。
この状態ではエクスプローラー等は使えないので、手動でWindows7がインストールされているドライブを探し当てることになりますが、C:はシステムで予約済みですので、D:から割り当てられるようです。
例えば1つのHDDに特にパーティション等を作成せずにインストールした場合にはD:がWindowsがインストールされたパーティションになります。
今回はD:がWindowsがインストールされているドライブでしたので、コマンド プロンプトから

reg読み込み
と入力し、レジストリエディタを起動します。

レジストリエディがが起動したら、
\HKEY_LOCAL_MACHINE\tmpreg
をまず展開します。
HKLM-tmpreg
IntelチップセットのSATAをIDEからACHIに書き換える場合を検索すると、\services\iaStorV 内のStartの値(DWORD)を3→0に書き換えれば良いとあります。また、同じく\services\msahciについてもStartの値を書き換えると直るようなのですが、
今回Intelのチップセットではないので、最初に
・HKLM\tmpreg\ControlSet001\services\msahci
・HKLM\tmpreg\ControlSet002\services\msahci
の2カ所のStart値を3→0に書き換えます。
msahci

次に今回使っているNVIDEAのIONチップセットでiaStorVと同じようなものが無いか探してみると…
nvraidnvstore
・HKLM\tmpreg\ControlSet001\services\nvraid
・HKLM\tmpreg\ControlSet001\services\nvstor
・HKLM\tmpreg\ControlSet002\services\nvraid
・HKLM\tmpreg\ControlSet002\services\nvstor
が見つかりました。
念のためこの4カ所についてもStartの値を3→0に書き換えておきます。

書き換えが終わったらレジストリエディタを終了します。
先ほど開いたコマンド プロンプトから

regunload
と入力し、先ほど書き換えたレジストリを保存します。

ここまでの作業が完了したらコマンド プロンプトをxボタンで閉じて
reboot
再起動ボタンを押して再起動します。

再起動後、書き換え前のように起動途中で再起動を繰りかえさず起動することができました。
最後に必要なドライバ類を読み込ませて完了です。

おまけ
Windows7起動後 コマンドプロンプトを管理者として実行し

とすると、デバイスマネージャーが起動されます。
デバイスマネージャーのメニューから表示-非表示デバイスの表示、とすると通常表示されないデバイスを表示することができるので、G43で使っていたデバイスを片っ端から削除します。

Polylineを良い感じに間引きする

八王子防犯マップ for Android にて、市境を表示する機能を追加したところ、市境のpolylineデータが8000ポイント以上になり、アプリがもっさり動作になってしまいました。

そのため、良い感じに間引いてくれるアルゴリズムを探したところ、douglas-peuckerアルゴリズムを利用するのが一般的のようです。
手頃な実装がないかと探すと、C#のサンプルをCodeProject内に発見。


A C# Implementation of Douglas-Peucker Line Approximation Algorithm


上記を参考に、ちょっとしたフィルタプログラムを書いて地点数を1/10程度にまで間引いたところ、描画速度は劇的に改善しました。表示品質も、拡大するとガクガクするけれど、目安としては十分に思える物に見えます。

device-2012-11-27-131122

地図アプリなどで、いろいろと応用できそうです。

というわけで、上記の内容が果たしてうまくいったかは、八王子防犯マップ for Android をインストールして試してみてください。

en_app_rgb_wo_60

ERG Mouse

ERG mouseの定義ファイルの作り方

ERG mouseはボタンレイアウトや機能の割り当てが自由にできる反面、何をどうすればいいのかよくわからない状態に陥る事が多い(らしい)ので、Windows Media Center(以下WMC)用の定義ファイルを作りながら作成手順を説明します。

1.割り当てるキーの一覧を調べる
ERG mouseで割り当てることができるのは、マウスの移動と右左クリック、任意のキー(AやShift等)とキーの組み合わせ(Ctrl+CやCtrl+Alt+Del等)を設定することができます。このためまずWMCで使えるキーとショートカットキーを調べます。google等で”Windows Media Center”,”ショートカット”のキーワードで検索すると、MicrosoftのWindows Media Center のショートカット キーと言うそのままのページが出てきます。基本的なキーはこのページを参考にすることにします。

2.レイアウトを決める
次にレイアウトを決めます。レイアウトは好きに決められるのがERG mouseの良いところですが、WMC用となるとDVDやBDプレイヤーのリモコンという配列がよさそうな気がします。このため、手近にあったPIONEERのDVDプレイヤーのリモコンを参考にして配列を考えます。
パイオニアリモコン
赤丸で囲んだ部分の配列が使えそうです。

3.割り当てる機能の決定
1.で調べたショートカットキーを全部割り当てると1つのキーの大きさが小さくなって押しにくくなるので、必要なものだけ抜き出します。必要になりそうなのを拾っていくと。
無いと困るキー
DVD を再生する:Ctrl + Shift + P
DVD を早送りする:Ctrl + Shift + F
DVD を巻き戻す:Ctrl + Shift + B
DVD を一時停止または再開する:Ctrl + P
DVD を停止する:Ctrl + Shift + S
次のチャプターに移動する:Ctrl + F
前のチャプターに移動する:Ctrl + B

あった方が便利そうなキー
カーソルキー(↑↓←→)
[DVD] メニューに移動する:Ctrl + Shift + M
決定:Enter
音量を上げる:F10
音量を下げる:F9
音量のミュートをオンまたはオフにする:F8
DVD のオーディオ選択を変更する:Ctrl + Shift + A
画面の縦横比を変更する (ズーム):Ctrl + Shift + Z
全画面表示:Alt + Enter
字幕を表示する:Ctrl + Shift + C
戻る:Backspace
Homeに戻る:Alt + Win + Enter

となり、キーは22個、それとパッドエリアと左右クリック用ボタンが必要なのがわかりました。
先ほどのリモコンの赤丸で囲んだ部分のキーと比較しても22個であれば十分割り付けられそうです。

4.レイアウトの作成
大体頭の中でボタン配置のイメージが決まったら、実際にレイアウトを作成していきます。まず、ERGmouseを実行して、レイアウトから作成を選びます。
レイアウト選択画面 作成

次に機種等を選択する画面が出るので、iPhoneを選択します。
サイズ変更 機種選択

通常iPhoneはパネルサイズが 4×5と横にボタンが4つ、縦にボタンが5つ配列可能ですが、今回リモコン風に細かくレイアウトしたいので、パネルサイズを縦横共に×8倍して32×40にします。
サイズ変更 x8
「OK」をクリックすると。レイアウト編集画面が開きます。

レイアウト編集画面
さすがに32×40のグリッドは1マスが細かくなりますが、細かいおかげでボタンの大きさと配置の自由度が増します。があまり細かくしすぎるとレスポンスが悪くなるので注意が必要です。
ここに「自分が使いやすいボタン配置」を設定していきます。

まず、今回参考にしたリモコンはボタンが横に5個並ぶレイアウトです、このため32/5=6.4となるので、標準的な1つのボタンサイズは6×6とします。
レイアウト編集画面 6x6

基準のボタンサイズが決まったら、ボタンをどんどん作成して配置していきますレイアウト編集画面 ボタン配置中

パッドエリアを画面上部に設置し、左右のクリックをパッドの左右に振り分けます。
レイアウト編集画面 ボタン配置完了
各ボタンにキーを割り付けて

写真 2012-11-26 18 02 24
iPhoneに転送した状態だとこのような感じになります。

この状態ですと、どのボタンがなんの機能なのかわからないので。
レイアウト編集画面 ボタンラベル編集
自動ラベル付与のチェックを外して、ラベルをわかりやすく書き換えます。

レイアウト編集画面 ボタンラベル後
各ボタンのラベルを書き換えた後保存して、iPhoneで確認すると。

写真 2012-11-26 18 21 03
さっきよりはマシになりました。
が、なんか素っ気なさすぎなのが気になります、文字だけってのもなんか味け
ないので、次回でもう少しマシなリモコンにしてみたいと思います。
ちなみに完成品は
写真 2012-11-26 18 19 18
こんな感じになります。

DVI-I–HDMI変換コネクタをDVI-Dで使えるようにする。

FHDモニタで比較的安く高さが変えられるので普段はDELLのU2212HMを使用して作業しています。ただこのディスプレイ入力端子が
・DVI-Dコネクタ x 1
・DisplayPort(DP) x 1
・ビデオグラフィックアレイ(VGA) x 1
と、HDMIに対応していません。
仕方なくDVI-D-HDMI変換コネクタを使っていましたが、変換コネクタを使う分コネクタの全長が伸びるためディスプレイを一番下まで下ろすとケーブルが机にぶつかるためコネクタに無理がかかっていました。

仕方が無くDVI-D-HDMIケーブルを買いに休日秋葉原に出かけたところ、TSUKUMO eXの店頭で叩き売られてたのが
1
これ。
コネクタ部分がスイング&90°回転するコネクタです。
問題はこのコネクタDVI-I用なのでDVI-Dには使えないという所ですがDVIコネクタのピンアサインを確認してみると、DVDI-IとDVD-DはC1~C4までのピンの有無とC5(Analog Ground)の太さが違うだけと言うのがわかります。
なので、
32
ラジオペンチでC1~C5までのピンを引っこ抜きます。これでDVD-Dのコネクタに挿すことができるようになりました、U2212HMで使っていますが今のところ問題なく使えています。
※C5(Analog Ground)で機器の接続を判断をしている機材もあります、その場合にはC1~C5のピンを抜いてしまうと使えません、その場合には諦めてDVI-D-HDMI変換コネクタを購入しましょう。