概要 †
Raspberry Pi の GPIO からの出力で PC の電源ボタンを擬似的に押します。
Raspberry Pi の電源は PC のマザーボード(M/B)の +5VSB (常時5V出力)から取ります。写真では PC の拡張スロットに取り付けられるように金具を付けていますが、普通の Raspberry Pi Zero です。
回路図 †
- Raspberry Pi の他に、トランジスタと抵抗3本が必要
- M/B +5VSB は PC の電源ユニットの +5VSB(紫色のケーブル) に接続(ここから Raspberry Pi に電源を供給する)
- 常時電源が供給されている USB 端子または PS/2 端子に接続する方法も試したが、M/B に
よっては PC の起動/シャットダウン時に一瞬電源供給が止まってしまうので、電源ユニットの +5SB に直結するのが安全
- M/B GND は PC の電源ユニットの GND に接続
- M/B PWR-SW は M/B の電源スイッチ端子に接続(M/B 上に、電源スイッチ+, 電源スイッチ- の二つのコネクタがあるので、電源スイッチ+ の方に接続する)。本来の電源スイッチも並列に接続して問題ない
- トランジスタの B-E 間にプルダウン抵抗を追加した方がよいかも → 10kΩを追加した
Raspberry Pi でボタンを押すシェルスクリプト †
- 実行すると電源ボタンが 0.5 秒間押される
- GPIO17 を 出力モードにして 0.5 秒間 H を出力する。その間だけ M/B PWR-SW が GND に接続され、電源ボタンが押された状態になる
gpio -g mode 17 out
gpio -g write 17 0
gpio -g write 17 1
sleep 0.5
gpio -g write 17 0
備考 †
- M/B PWR-SW(PC の電源スイッチ端子)を GND に接続すると、電源スイッチを押したことになります。
- GPIO17 の出力を NPN トランジスタで反転して、PC の電源スイッチ端子に接続しています。上記のように GPIO17 に H を出力すると M/B PWR-SW が GND に接続され、電源ボタンが押された状態になります。
- トランジスタを使わずに GPIO を直接 PC の電源スイッチ端子に接続すると、Raspberry Pi が再起動したタイミングなどで電源スイッチが押されてしまう可能性があるため、このような回路になっています。この回路では GPIO17 が H にならない限り電源スイッチは押されませんので、Raspberry Pi を再起動しても影響はありません。
- 測定したところ GPIO17 は(GPIO18も) Raspberry Pi の基板上ではプルアップもプルダウンもされていませんでした。また OS 起動後には内蔵プルダウンが有効になるという記事がありました。Raspberry Pi の電源が OFF の時にも常時プルダウンされるように 10kΩ の抵抗を入れました。
- PC の電源ユニットのスイッチを ON にした時点で(PC の ON/OFF ) Raspberry Pi が起動します。
- PC と M/B +5VSB を接続する部分は、+5VSB が基板上に出ていない M/B では難しいです。私は紫色のケーブルのビニール被覆を削ってむりやり分岐させています。
Counter: 9410,
today: 2,
yesterday: 5