รับ Denon AVR เพื่อเปิด/ปิดโปรเจ็กเตอร์ Optima โดยอัตโนมัติ
ฉันพบว่าเมื่อฉันใช้พลังงานจาก Denon AVR (x4500) โปรเจคเตอร์ Optima (HD142X) ของฉันว่ามันเชื่อมต่อกับจะไม่เปิดโดยอัตโนมัติ สิ่งนี้ ควร ใช้งานได้ แต่โปรโตคอล HDMI ที่เกี่ยวข้อง (เรียกว่า "CEC") มักจะไม่น่าเชื่อถือโดยเฉพาะอย่างยิ่งเมื่อรวมผลิตภัณฑ์จากแบรนด์ที่แตกต่างกัน (Denon และ Optima ในกรณีนี้)
ฉันเชื่อมต่อ Raspberry Pi กับหนึ่งในอินพุต HDMI ของ Denon AVR ฉันกำหนดค่าเครือข่ายบน Denon AVR และ Raspberry Pi เพื่อให้ Raspberry Pi สามารถเชื่อมต่อกับที่อยู่ IP ของ Denon AVR
การรันรหัส (main.cc) บน Raspberry Pi หมายความว่า PI จะสังเกตเห็นเมื่อเปิด DENON AVR และจากนั้นจะเปิดเครื่องฉาย Optima (ผ่านสาย HDMI) ในทำนองเดียวกันเมื่อปิด Denon AVR PI จะสังเกตเห็นและปิดโปรเจ็กเตอร์ Optima
คุณจะต้องกำหนดค่าการตั้งค่าบางอย่างบน Denon AVR
ตรวจสอบให้แน่ใจว่า Denon เชื่อมต่อกับเครือข่ายของคุณ ฉันทำสิ่งนี้โดยไปที่ ito เมนูการตั้งค่า-> เครือข่าย-> การเชื่อมต่อและการกำหนดค่าการเชื่อมต่อ WiFi ฉันให้ที่อยู่ IP แบบคงที่ (192.168.1.45) เพื่อให้ PI จะมีที่อยู่ IP ที่คาดเดาได้เพื่อเชื่อมต่อ
ฉันยังตั้งค่าเมนูการตั้งค่า-> เครือข่าย-> การควบคุมเครือข่ายเป็น "เสมอ" ซึ่งหมายความว่า PI สามารถเชื่อมต่อกับ AVR ได้แม้ว่าจะปิด
ในการตั้งค่าวิดีโอ/HDMI ฉันได้ตั้งค่าแล้ว:
ฉันใช้ Raspberry Pi Zero W. ฉันเชื่อมต่อกับหนึ่งในอวกาศ HDMI อินพุตที่ด้านหลังของ AVR ฉันติดตั้ง Raspbian 10 ไว้ ฉันกำหนดค่าเครือข่ายเพื่อให้สามารถเชื่อมต่อกับ IP ของ Denon AVR
คุณต้องติดตั้งผู้เข้าร่วม C ++
sudo apt install g++
นอกจากนี้ยูทิลิตี้
sudo apt install make
ติดตั้ง Git
sudo apt install git
และห้องสมุดบางแห่งที่เกี่ยวข้องกับ HDMI/CEC
sudo apt install libraspberrypi-dev libraspberrypi0
sudo apt install cec-utils libcec4
เพิ่มการตั้งค่าต่อไปนี้ในไฟล์ /boot/config.txt
hdmi_ignore_cec_init=1
และรีบูต
fix-cec git clone https://github.com/stuart-mclaren/fix-cec
fix-cec ก่อนอื่นก่อนที่จะรวบรวมคุณจะต้องแก้ไขไฟล์ main.cc เพื่อป้อนที่อยู่ IP ของ Denon AVR ของคุณ
เปลี่ยนบรรทัดนี้:
#define IPADDR "192.168.1.45"
เพื่อให้ตรงกับที่อยู่ IP ของ Denon AVR ของคุณ เช่นถ้าที่อยู่ IP คือ 192.168.0.100 เปลี่ยนบรรทัดเป็น:
#define IPADDR "192.168.0.100"
fix-cec ในการรวบรวมรหัสให้เรียกใช้สิ่งต่อไปนี้ (จากภายในไดเรกทอรี fix-cec ):
make
สิ่งนี้จะสร้างไฟล์ fix-cec
fix-cec sudo make install
สิ่งนี้จะคัดลอก Binary to /usr/local/bin/fix-cec และกำหนดค่าบริการ SystemD ที่เรียกว่า fix-cec เพื่อเรียกใช้ไบนารีโดยอัตโนมัติเมื่อรองเท้าบูท PI
คุณสามารถตรวจสอบบริการได้อย่างถูกต้องเริ่มต้นจากการบูตโดยรีบูต 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
หมายเหตุข้อความ "เชื่อมต่อ": นี่หมายถึง PI ที่เชื่อมต่อกับที่อยู่ IP ของ AVR สำเร็จ ข้อความ DP ต่างๆจะถูกส่งออกจาก AVR ข้อความ DPX คือการดีบัก
รหัสบันทึก มาก คุณจะต้องตรวจสอบให้แน่ใจว่าบันทึกเช่นใน /var /log ถูกหมุนเพื่อหลีกเลี่ยงการกรอกระบบไฟล์
อีกทางเลือกหนึ่งลบคำสั่ง printf ต่างๆออกจาก main.cc
ในบางกรณีเช่นเมื่อใช้แผ่นเสียงหรือเครื่องรับสัญญาณคุณอาจไม่ต้องการให้โปรเจ็กเตอร์เปิดใช้เมื่อคุณเปิด 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