RS232C
Raspberrypi3

BDM4065UC/11のリモコンらしきものを作った

BDM4065UC/11という40インチのモニタにゲーム機やらPCやら色々つないで利用しているのですが、
「ゲームしたいなー」というときにモニタの裏側にあるジョグダイアルを操作しなければならずかなりすごくまじで面倒です。

さてどうしようか

このモニターはRS232cで操作できるとスペック表に記載されています。
そういえば付属品にもそれらしいケーブルが付いていましたので、これを利用してaspberry piから操作出来るようにしてみました。

https://www.amazon.co.jp/gp/product/B00QUZY4JC/

今回作ったもの

https://github.com/osayu/phcont

raspberry piとモニタを繋ぐ

付属のRS232Cケーブルを向かって左側面の下の方にあるイヤフォンジャックのような所と繋ぎましょう。
raspberry piなどから /dev/ttyUSB0 で認識されると思います。名前が違う場合は適宜読み替えてください。

入力切換を出来るようにする

幸いgithubを調べるとgoやpythonの実装が見つかりますので
gistにあったこちらを参考につくりました。
コマンドに定義しているものが少なかったのでphilipsのドキュメントを元に色々と追加していますが基本的には何も変わってません

引数にtv_rs232.pyで定義しているcommand_mapを与えれば操作できるはずです。
例えば入力をDisplayPortに切り替える場合は次のとおりです。
python tv_rs232.py INPUT-DP

無事切り替わったでしょうか。

APIを経由で操作できるようにする

Webリクエスト経由で操作できるようにflaskを利用しHTTP経由のリクエストでモニタを切り替えるようにしました。

pip install Flask
FLASK_APP=app.py python -m flask run

続き

現在はこれを Alexa -> IFTTT -> ngrok -> 作ったAPI で操作できるようにしています。
IFTTTでジョブ作るのが大変でまだ作りきれてないので今日のところはこのへんで。。。

参考資料

https://philipspds.supportsystem.com/kb/faq.php?id=15
https://gist.github.com/daanzu/352fd5560cc57aa08c3a67ec17c4b448