カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

最近の記事

月別アーカイブ

カテゴリー

ユーザータグ

最近のコメント

プロフィール

run800m

Author:run800m
元・陸上競技の800m選手。
好きな食べ物はねぎともやし。

専門は機械工学・ロボティクス
興味は経済・経営・生産・心理
・地理・プログラミング・性

QLOOKアクセス解析
フィードメーター - 他人の日記を見るのか? ver.BLOG

QRコード

QR

RSS

はてなRSSに追加
livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加
Bloglinesに追加
Technoratiに追加
newsgatorに追加
Powered by SEO対策 RSSプラス

ブログ内検索

リンク

このブログをリンクに追加する

気まぐれ広告

ブログ内容を反映するらしい。
ホントか!?

他人の日記を見るのか? ver.BLOG
デジモノ好きのたわいもない記録 デジタルライフ
スポンサーサイト
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


カテゴリ:スポンサー広告

GV-MC/RCkit その4
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
新事実が発覚。

部屋の照明を消そうとした時のこと。

GV-MC/RCkitのレシーバーが一瞬光ったような気がして、改めて考えてみると部屋の照明も赤外線リモコンだったことに気づく。

もしやと思って、部屋中のリモコンを使ってみると、全部反応する。

データもキャプチャしてみると、それぞれ違うデータで判別可能っぽい。

どうやら赤外線リモコンなら、なんでも使えるらしい。

これは、もっと汎用的にいろいろなことに使えるかもしれない。

需要があるのかはしらんけど、どんなリモコンでも操作可能なソフトウェア作ったら便利かもね。

もっと気に入ったボタン配置のリモコンとかも使える訳だし。

携帯とか、なんにでも使えたら用途広がるし。

受信だけじゃなく、送受信ができれば完璧なんだが。



さてさて、前回まででメディア関連のソフト制御はできるようになったので、今回は使い心地を向上させてみる。

たとえば、2度押し対策。

WMPの起動なんか時間が少しかかるので、「押せてないかも?」と思って2度3度押してしまったり、

それでなくてもループ間隔が短いので、少し長く押すだけで2度押しになってしまったりする。

そんな訳でsleep()で待ち時間を導入。

時間は100msecだったり200msecだったりと、実際に操作しながら機能ごとに割り当て。

絶対2度押しになって欲しくないとこなんかは500msecとか、長めに設定。

逆に音量やチャンネルのように連続で押したりするものは、0~100msecと短めに設定。



続いて矢印キーの機能をマウスポインタ移動に当てるか、カーソル移動に当てるか迷ったので、両方を切り替えられるようにして導入。

「入力」ボタンを押すとモードを切替られるようにして、
/* 「入力」ボタンのとこ */{
printf("入力\n");
b_num=22;
if(sw_n) sw_n=0;
else sw_n=1;
sl_t=500;
}

「↑」ボタンであれば、
/* 「↑」ボタンのとこ */{
printf("↑\n");
b_num=31;
if(sw_n){
if(PF>0 && PB==b_num) Mouse_Move(0,-1,1);
else Mouse_Move(0,-1,0);
sl_t=0;
}
else{
keybd_event(VK_UP,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_UP,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
sl_t=0;
}
}

と、いったようにモードごとにカーソル移動かマウスポインタ移動かを切り替えられるようにしました。

ちなみにsl_tは上述したsleep()の待ち時間。
if(PF>0 && PB==b_num) Mouse_Move(0,-1,1);
else Mouse_Move(0,-1,0);
sl_t=0;

と、if文になっているのは、マウスポインタの移動に加速を加えるためです。

ポインタは大きく移動することも小さく移動することもあるので、同じボタン押し続けていると動く量を大きくします。

変数PFはボタンが押され続けているかの判定。

変数PBは前回押されていたボタンを記憶しています。

PBだけだと時間を空けて同じボタンを押しても加速してしまいますし、PFだけだと違うボタンでも構わなくなってしまうからです。

なお、MouseMove()関数は
void Mouse_Move(int px,int py,int pf){
POINT pt;
static int pp=0;
int p[20]={1,1,2,2,4,4,8,10,15,20,40,60,80,100,100,120,120,140,160,200};

if(pf){
if(pp<19) pp++;
}
else pp=0;

px*=p[pp];
py*=p[pp];

GetCursorPos(&pt);
SetCursorPos(pt.x+px,pt.y+py);

}

このようになっており、p[20]が加速していく部分です。

最初1ドットしか動かなかったものが、2,4,8..200と大きく動くようになっていきます。

加速間隔は自分で使いやすいように設定しました。

ついでに矢印ボタンの真ん中の「決定」ボタンも、マウスモードの時は左クリック、キーボードモードの時はエンターキーに割り当てました。
/* 「決定」ボタンのとこ */{
printf("決定\n");
b_num=5;
if(sw_n){
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
else{
keybd_event(VK_RETURN,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_RETURN,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
sl_t=0;
}
}


マウスとカーソル移動、それに決定ができるようになるとほとんどのことができますね。

遠くから操作しているとカーソル合わせるのが大変ですが。

将来的には遠くからも見やすく操作できる、でっかいアイコンを備えたランチャーやソフトウェアを作るといいかもしれません。

今回興味を持ったもの

I-O DATA Windows Media Center専用リモコン GV-MC/RCkitI-O DATA Windows Media Center専用リモコン GV-MC/RCkit

アイ・オー・データ 2007-01-31
売り上げランキング : 2022
おすすめ平均

Amazonで詳しく見る
by G-Tools

スポンサーサイト


関連した記事を見る(タグ検索)
PC GV-MC/RCkit プログラミング
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:PC周辺機器 - ジャンル:コンピュータ

メインカテゴリ:ハードウェア  カテゴリ:GV-MC/RCkit

この記事に対するコメント
【Re: 初めまして】
かなり前の話で、どんなプログラムだったのかも思い出せなくて申し訳ないです。
VC++のソリューションごと渡そうかと思ったのですが、UUSBDは私の作品ではないので、
作者様のサイトでuusbd.dllとuusbd.hを落としてくる必要があります。

一応、実行ファイルとソースだけ詰めてお渡しします。
FC2ブログがzipファイルのアップロードに対応していないので、
「.txt」となっていますが、「.zip」に拡張子を直して解凍して下さい↓
http://blog-imgs-32.fc2.com/r/u/n/run800m/pipedump.txt

GV-MC/RCkitをUUSBDのドライバでインストールして、上のファイルを起動しとけば
WindowsMediaPlayerとかが動かせたような気がします。
ただDOS窓を開くだけで機能も限定的なので、ゴミにしかならないと思いますよ。
今はVisual Studioもタダの時代ですし、ぜひソースを元にプログラムを
書き直されることをお勧めします。
【2010/02/22 02:35】 URL | run800m #2CltNEVM [ 編集]

【ありがとうございます!!】
ありがとうございます!
GV-MC/RCkitをUUSBDの汎用ドライバで認識させる所までは出来ていたので、pipedumpの実行ファイルを頂けて非常に嬉しいです!
コンパイルでさえ出来なかったというのが、C言語でのプログラムだと書いてあったと思うのでBorland C++を使ってpipedump.cをコンパイルをしようとしたのですがなぜかエラーが出るばかりで出来ませんでした。(プログラムの知識がほとんどないので当然と言えば当然なのかも知れませんが・・・)
エラー内容が
Error: 外部シンボル '~~' が未解決(~~が参照)
という文が数行出て来ました。
色々とわからないなりに調べては実験してみたモノの基本的な知識もないので解決できませんでした。
また、色々と調べながら知識をつけてこのリモコンのプログラムを作りたいと思います^^
親切な対応をありがとうございました!
それから非常に申し訳ないのですが、メール欄に記入したら表示されると言う事を知らなくて最初の書き込みにアドレスを書き込んでしまいました(・・;
よろしければメールアドレスを消して頂くことは可能でしょうか?
長文で失礼しました;;
本当にありがとうございました。m(__)m
【2010/02/22 05:39】 URL | Q-chan #- [ 編集]

【Re: 初めまして】
> 初めまして
> 今回、GV-MC/RCkitを勘違いして購入してしまい
> 何とかWindows XP MCEで使う方法はないかとWebを探し回ってこちらのサイトにたどり着きました。
> 何とか使いたいと思っているので書いてある事の意味を理解しようと色々と試してはみたのですが、プログラミングをほとんどやった事がないためにPipedumpのコンパイルでさえもできない始末でした(TwT
> あつかましいお願いで申し訳ありませんが、GV-MC/RCkitを動かすソフトを頂けないでしょうか?
> コメントや掲示板に書き込む事が苦手で、長文で失礼しますm(__)m

メールアドレスをコメントごと削除致しました。
【2010/02/25 22:41】 URL | run800m #2CltNEVM [ 編集]

【管理人のみ閲覧できます】
このコメントは管理人のみ閲覧できます
【2010/02/27 05:49】 URL | # [ 編集]


この記事に対するコメントの投稿
質問・指摘・その他諸々、古い記事にも遠慮なくコメントして下さい!














管理者にだけ表示を許可する
宣伝・スパム・荒し行為でしかないものは削除します。


この記事に対するトラックバック
古い記事にも遠慮なくトラックバックして下さい!
トラックバックURL
→http://run800m.blog23.fc2.com/tb.php/6-8d4e9766
この記事にトラックバックする(FC2ブログユーザー)

言及リンクのないもの、宣伝・スパム・荒らし行為でしかないものは削除します。
またトラックバック先の内容について当ブログ管理人は一切保障しませんし、責任も負いません。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。