Arduinoで遊ぼう - 自動スリープ&復帰
Posted by arms22 on 2009年07月19日

赤外線距離センサを使って、人が席を離れたら自動的にPCをスリープさせ、戻ってきたら自動的に復帰させる装置を作ってみた。
ArduinoとPCはUSBシリアルで接続されている。PC上ではArduinoから送られてきた赤外線距離センサの値を一定周期で確認して、赤外線距離センサの値が80cm以上の時、5秒後にスリープするプログラムが動作している。
※スリープの方法はOSによって異なるので、個別で対応が必要。
Arduinoには赤外線距離センサの値が70cm以下の時、PCを復帰させるスケッチが書き込まれている。PCの復帰にはFT232RLのRI#端子を使用する。RI#端子はUSBホストコントローラをサスペンドからレジュームさせる端子だ。20msのLowパルス与えることでPCをスリープから復帰させることができる。
接続
Analog 4 -> Vo(赤外線距離センサ)
Digital 2 -> 抵抗1K -> RI#(FT232RL)
FT232RLのRI#端子とArduinoのDigital 2の間には1KΩの抵抗を入れる。RI#端子はArduinoボードのX3ランドの4番に繋がっている。
スケッチとPCプログラムのダウンロード
http://xfind.hp.infoseek.co.jp/electric/arduino/asap001.zip
スケッチのアップロード
1. Distanceライブラリをarduino-00xx/hardware/libraries/以下にコピー
2. asap.pdeを開く
3. Verify -> Upload to I/O Board
PCプログラムを実行する
スケッチを書き込んだらasapコマンドを実行する。USBシリアルポートとスリープコマンドをオプションに指定してコマンドを実行する。
$ ./asap -d /dev/cu.usbserial-A8004IrI -s "osascript -e 'tell app \"Finder\" to sleep'"
asapコマンドのオプション
d デバイスパス。USBシリアルポートを指定する。
s スリープコマンド。Mac OSXの場合、アップルスクリプトを使ってFinderにSleepコマンドを送る。
Ads by Google
2 Comments
できそうな気がしますね。