給電制御付きUSBケーブルと2k小型ディスプレイの活用


はじめに

AliExpressで2k解像度の8.9インチ液晶ディスプレイが安く売られていたので,24時間運用のLinuxサーバーで使おうと思い購入しました. ディスプレイのスリープ機能に問題があったため,PCからON/OFFを制御できる給電制御機能付きのUSBケーブルを自作しました.

設計と製作

入手したLCDは解像度が2k (2560x1600)の8.9インチIPS液晶で,HDMI対応のドライバ回路(LT6911CというICを使用)が付属して約5,000円でした. 液晶パネルのサイズは200x132x3.4mmで,ドライバ回路を含めてもかなり薄くなります. 最近はこの手の液晶パネルが光造形方式の3Dプリンター用に多く出回っているようです. 電源はMini USB端子から5Vを供給しますが,消費電流は動作時は700mAでスリープ時は100mA程度なので,PCのUSBポートから供給できない量ではないようです. ディスプレイケースは3Dプリンターで作成しました. できるだけコンパクトになるように作りましたが,厚さ1.5mmではやや薄すぎたのと,白色のPLAだとバックライトの光がかなり漏れるので黒色の方がよかったかもしれません.

少し使ってみて気がついた長所と短所は以下のとおりです:

ディスプレイの表示性能にはとても満足しました. 欠点のうち最初の2つは今回は目的では構いませんが,スリープからうまく復帰できないのは大きな問題です. 復帰できない時は電源を一度オフにしてからオンにする必要があります. そこで,どうせPCのUSBポートにつないでLCDに電源を供給するならば,HIDデバイスとして認識させてPCからコマンドを送ることで電源のオン・オフを制御できるようなアダプターを作ることにしました.

回路図と完成した写真は下記のとおりになりました.

回路図
ケースに入れた状態

昔何かのために作ったATmega48使用のV-USBがあったので,電源制御用のMOS FETを取り付けました. NチャネルMOS FETであれば手元に性能のよいものがいくつかありましたが,GND側を切り離して電源を制御しようとしてもPCとLCDはHDMIでも接続されていてそちらのGNDに電流が流れる可能性があるので,PチャネルMOS FETを使ってVCC側を切り離すようにしました. ただしV-USBのAVRはUSBから供給される5VをLEDで降圧して使っているため,High信号を出力してもFETのゲートを閉じることができないので,HighとLowを出力するのではなくHi-ZとLow出力を切り替えています. つまり,AVRのポートに電源電圧以上の電圧が加わるという保護回路に依存した定格を越えた使い方をしています. 使用したFET (2SJ377)はRDS=0.24Ω程度なので,700mA流すと0.17V程度の電圧降下となり,今回の用途には何とか使える性能だと思います. Linuxにこのアダプターを接続して,"echo -ne '\x00\x01' > /dev/hidraw0"とするとUSBから電源を供給して,"echo -ne '\x00\x00' > /dev/hidraw0'とすると電源を止めることができます.

とりあえず,Linuxマシン上の音楽を再生したり画像や動画を表示できるビジュアルシェルをPythonでcursesを使って書きました. マウスホイールとボタンで操作をして,選択したファイルの拡張子に応じて外部プログラムを起動します. 入力があるとLCDの電源を入れて,一定時間入力がないと電源を切るようにしています. コマンド実行中に中止するキーをマウスボタンに割り当てるためxbindkeysを呼び出しています. 指定したVID/PIDを持つhidrawデバイスを見つけるためにudevadmコマンドを使っています. しばらく使ってみましたが,LCDの電源を入れてから画面が実際に表示されるまでに3秒程度かかるため,音楽の再生などには以前自作したコントローラーの方が即座に表示できてよいかもしれません.

使用例(1)
使用例(2)

ダウンロード


[Back]
2021-03 製作
2021-04-10 ページ作成
T. Nakagawa