Denon AVRを取得して、Optimaプロジェクターの電源を自動的にオン/オフにします。
デノンAVR(x4500)に電源を入れると、接続されていたOptima(HD142X)プロジェクターが自動的にスイッチを入れないことがわかりました。これは機能するはずです。ただし、関係するHDMIプロトコル(「CEC」と呼ばれる)は、特に異なるブランドの製品を組み合わせる場合(この場合はDenonとOptima)、信頼できないことがよくあります。
Raspberry PiをDenon AVRのHDMI入力の1つに接続しました。 Denon AVRとRaspberry PIでネットワーキングを構成して、Raspberry PiがDenon AVRのIPアドレスに接続できるようにしました。
Raspberry Piでコード(Main.CC)を実行すると、PIがDenon AVRがオンになっているときに気付くことがわかり、その後、最適プロジェクターをオンにします(HDMIケーブルを介して)。同様に、デノンAVRがオフになると、PIはOptimaプロジェクターに気付き、オフになります。
Denon AVRでいくつかの設定を構成する必要があります。
デノンがネットワークに接続されていることを確認してください。これを行い、セットアップメニュー - >ネットワーク - >接続とWiFi接続の構成を行いました。 PIが接続する予測可能なIPアドレスを持つように、ユニットに静的IPアドレス(192.168.1.45)を与えました。
また、セットアップメニュー - >ネットワーク - >ネットワークコントロールを「常にオン」に設定します。これは、PIがオフになった場合でもAVRに接続できることを意味します。
ビデオ/HDMIのセットアップでは、設定しました。
Raspberry Pi Zero Wを使用しました。AVRの背面にあるスペースHDMI入力の1つに接続しました。 Raspbian 10をインストールしました。デノンAVRのIPに接続できるように、ネットワークを構成しました。
C ++をコンプライアーしている必要があります
sudo apt install g++
また、Makeユーティリティ
sudo apt install make
gitをインストールします
sudo apt install git
また、HDMI/CECに関連するいくつかのライブラリ
sudo apt install libraspberrypi-dev libraspberrypi0
sudo apt install cec-utils libcec4
次の設定をfile /boot/config.txtに追加します
hdmi_ignore_cec_init=1
そして再起動します。
fix-cecをダウンロードします git clone https://github.com/stuart-mclaren/fix-cec
fix-cecまず、コンパイルする前に、Denon AVRのIPアドレスを入力するには、ファイルmain.ccを編集する必要があります。
この行を変更します:
#define IPADDR "192.168.1.45"
Denon AVRのIPアドレスに一致するため。たとえば、IPアドレスが192.168.0.100の場合、行を次のように変更します。
#define IPADDR "192.168.0.100"
fix-cecコンパイルコードをコンパイルするには、次のことを実行します( fix-cecディレクトリの内側から):
make
これにより、ファイルfix-cecが作成されます。
fix-cecのインストール sudo make install
これにより/usr/local/bin/fix-cecにバイナリをコピーし、piブーツ時にバイナリを自動的に実行するために、 fix-cecと呼ばれるSystemdサービスを構成します。
Piを再起動して、サービスを確認できます。
sudo reboot
そして、PIが起動したら、実行してください。
systemctl status fix-cec
それが機能している場合、出力は次のように表示されます。
● fix-cec.service - fix-cec service
Loaded: loaded (/etc/systemd/system/fix-cec.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-01-16 15:57:53 GMT; 6min ago
Main PID: 394 (fix-cec)
Tasks: 5 (limit: 421)
CGroup: /system.slice/fix-cec.service
└─394 /usr/local/bin/fix-cec
Jan 16 16:03:03 piston fix-cec[394]: Connected
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: PSTRE 50
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: PSTONE CTRL OFF
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: SSSMG MOV
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
「接続された」メッセージに注意してください。これは、AVRのIPアドレスに接続されたPIを正常に意味します。さまざまなDPメッセージがAVRから出力されます。 DPXメッセージはデバッグです。
コードはたくさんログを記録します。ファイルシステムに記入されないように、 /var /logのログが回転していることを確認する必要があります。
または、 main.ccからさまざまなprintfステートメントを削除します。
場合によっては、たとえば、ターンテーブルまたはチューナーを使用する場合、AVRをオンにするときにプロジェクターをオンにしたくない場合があります。
この動作を変更する方法については、コードの次のメモを参照してください。
Note: For non-video sources
基本的に、プロジェクターに電源を入れたくない100ソースに追加します。たとえば、ビニールレコードを再生するときにプロジェクターがオンになるのを防ぐために、このラインが変更されます。
phono = 9,
これに
phono = 109,
これは、AVRに次のセットがあることを前提としています
RC Source Select = Power On + Source
そして、AVRのリモコンのPhonoボタンを押してAVRに電源を入れます。
このコードは、https://github.com/glywood/cec-fixに基づいています