[[ファンアウト仙台]]

&ref(button1.jpg,zoom,200x150);
&ref(button2.jpg,zoom,200x150);
&ref(button3.jpg,zoom,200x150);

*概要 [#hdcecd2a]
Windows PC の USB 端子に接続する巨大な電源ボタンを作りました。
キーボードデバイスとして認識されます。
ボタンを長押しすると、キーボードの SLEEP ボタンを押した時の信号が出力されて、PC がスリープ状態になります。ボタンを短く押すと、PC がスリープ状態から復帰します。

*原理 [#vaf903f5]
動作を調べたところ、Windows PC を USB 接続のキーボードからスリープさせる方法と、スリープからのウェイクアップさせる方法は全く異なっていました。

**スリープさせる [#pd260cf8]
#ref(102key.jpg,zoom)
Windows7,8,10 では [Power][Sleep][Wake] のキーがあるキーボード(日本語112キーボード) の [Sleep] キーを押すと Sleep 状態になります(この挙動はコントロールパネルの[電源オプション][電源ボタンの動作を選択する] から変更できます)。
#ref(dev.png,zoom,300x200)

通常の USB キーボードを Windows PC に接続すると、デバイスマネージャ上に [キーボード]-[HIDキーボードデバイス] として表示されますが、[Sleep] キーのあるキーボードの場合は、これに加えて [ヒューマンインタフェースデバイス]-[HID 準拠システムコントローラ] という項目が追加されます。また [Sleep] キーには独自のキーコードが割り当てられていて、Windows がこのキーコードを受け取るとスリープ状態になります。

**スリープ状態からウェイクアップさせる [#u673b69e]
PC がスリープ状態になった後で、同じくキーボードの [Wake] キーを押すとウェイクアップします。ただしスリープ状態では OS 側からどのキーを押したかを判定できませんので、USB の信号線を、USB 規格に定められたパターンでプルアップ、プルダウンすることで、ウェイクアップするようになっています。


*Digispark用ファームウェア [#xb86aef8]
**V-USB と HID デバイス [#caa1c1a9]
**USB のディスクリプタ [#wa4bdd89]
-USBの設定の確認用ソフト

*Windows PC の設定 [#ye71442c]
**スリープさせる [#u3974888]
**スリープ状態からウェイクアップさせる [#uf2e3667]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS