Site icon image rpine lab Blog

プログラミングや電子工作系の記事を投稿しています。

🔧 RaspberryPiでミニPCを遠隔操作する 1 ー 準備



背景

開発用のミニPCをに自宅に置いて運用している中で、時々リモートからログインできなくなる事態が発生しました。そのたびに直接PCの電源を入れ直す必要があってとても不便なので、PCを遠隔で操作する手段を探していました。

サーバーPCにあるようなIPMI機能があればKVMや電源操作ができるのですが、一般的なミニPCに搭載されていません。そこで、この記事ではRaspberry Piを使ったKVMデバイスであるPiKVMを自作していきます。

Image in a image block
自作PiKVM完成図

PiKVMとは

PiKVMは、Raspberry Pi(ラズパイ)を使って既存のPCに遠隔操作機能を後付けできるオープンソースプロジェクトです。

できること

  • リモートKVM機能
    • ブラウザ上でPC画面をリアルタイム表示
    • キーボード・マウスの遠隔操作
  • 電源操作機能
    • 遠隔から電源のオン/オフ/再起動が可能
    • 電源ボタンの信号を直接制御することでPCの状態に関わらず操作可能

制御対象のミニPC

今回制御対象とするのはミニPCのBeelink Mini S12 Proです。

  • CPU: Intel Alder Lake-N N100 (12世代・4C4T・ターボ時周波数 3.40 GHz)
  • メモリ: DDR4 16 GB
  • ストレージ: M.2 SSD 500 GB

必要部品リスト

PiKVMには複数のバージョンが存在しますが、今回はラズパイ4に対応している自作プラットフォームであるPiKVM V2を使います。

Raspberry Pi 4 Model B 2GB

周辺部品

電源制御回路用部品

(主に秋月電子通商で購入)

  • フォトリレー:TOSHIBA TLP592A 商品ページ
  • 電流制限抵抗:330 Ω(炭素皮膜抵抗 1/4W)商品ページ
  • ブレッドボード:ミニブレッドボードで可 商品ページ
  • 配線用の導線・ジャンパーワイヤ類

技術的な検討事項

USB Type-Cポートの接続

PiKVMでは、ラズパイをUSBデバイスとして動作させることでマウスやキーボードとしてPCに認識させます。この機能(USB OTG)を使うにはラズパイ4のType-Cポートを使うのですが、同じポートをACアダプタからの電源供給にも使っています。

そこで以下の写真のような、1つのType-Cを2つのType-C(電源供給・データ通信)に分けるY字ケーブルを使います。このケーブルは、タブレットやMacbookなどに充電器とUSBデバイス(Type-Cイヤホンなど)を同時に繋ぐ用途のケーブルとして売られているものです。(買ったやつは問題なかったが他だと相性問題があるかも)

Image in a image block
USB-C Y字ケーブル

このケーブルを次の図のように使うことで、ラズパイのUSB-Cポートを電源供給とOTGで同時に利用します。

graph LR
  B <--> PcUsb
  C <--> AC[USB-C 電源アダプタ]
  subgraph pc[制御対象PC]
	  PcUsb[USBポート]
	  end
  subgraph RasPi[ラズパイ4]
	  RasPiC["USB-C ポート<br/>OTG・電源兼用"]
  end
  subgraph Splitter[USB-C Y字ケーブル]
	  direction LR
	  A[USB-C オス]
	  A -- データ--> B[USB-C メス]
	  A -- 電源 --> C[USB-C メス]
  end
	RasPiC <--> A
スプリッタケーブル接続図

フォトリレー

電源制御回路に利用するフォトリレーについて、今回は秋月で安く買えるTLP592A(TOSHIBA)を使います。

💡
PiKVM公式ドキュメントではフォトリレーの品番(OMRON製)が指定されています。指定以外のフォトリレーだと要求仕様を満たさない可能性があるので注意が必要です。(詳細はこのIssueを参照)指定品はDigiKeyなどから日本でも買えるので、確実性を重視するなら指定品の方が無難です。
Image in a image block
フォトカプラ TLP592A

公式と異なるフォトリレーを使用するため、念の為電流制限用の抵抗値を計算し直します。

条件:

  • TLP592A(データシートより)
    • 入力順電流(標準):7.5 mA
    • 入力順電圧:1.15 V
  • ラズパイ4
    • GPIOピンの出力電圧:3.3 V

必要な抵抗を計算:

R=VI=3.3 V1.15 V7.5 mA=2.15 V0.0075 A=287 ΩR = \frac{V}{I} = \frac{3.3 \mathrm{\ V} - 1.15 \mathrm{\ V}}{7.5 \mathrm{\ mA}} = \frac{2.15 \mathrm{\ V}}{0.0075 \mathrm{\ A}} = 287 \mathrm{\ \Omega}

E5系列的に近い330 Ωを採用します。

実際の電流値:

IF=2.15 V/330 Ω=6.5 mAI_{\rm{F}} = 2.15 \mathrm{\ V} / 330 \mathrm{\ \Omega} = 6.5 \rm{\ mA}

この値はデータシートを見ると動作する値に収まっています。

ミニPCでの電源制御機能の利用

PiKVMの電源制御機能は、通常デスクトップPCのマザーボードから出ている電源ボタンの信号線を分岐して取り出して使用します。ミニPCではこの信号線が出ていないため、普通はこの機能を利用できません。

しかしどうしてもこの機能が使いたかったので、ミニPC側に改造を加えることで無理やりこの機能を使えるようにしました。詳細な手順は次の記事で解説します。

⚠️
PCの保証対象外になるのと故障の可能性があるので改造する方法は全くおすすめできません。もし実施するのであれば自己責任でお願いします。

最後に

今回の記事では使用部品の説明まで完了したので、次回はそれらを使ってPiKVMの組み立て手順を解説します。

参考サイト

広告