احصل على Denon AVR لتشغيل/إيقاف تشغيل جهاز عرض Optima تلقائيًا.
لقد وجدت أنه عندما قمت بتشغيل جهاز عرض Denon AVR (X4500) جهاز عرض Optima (HD142X) الذي لم يكن متصلاً به لن يتم تشغيله تلقائيًا. هذا يجب أن يعمل. لكن بروتوكول HDMI المعني (الذي يسمى "CEC") غير موثوق به في كثير من الأحيان ، خاصة عند الجمع بين المنتجات من علامات تجارية مختلفة (Denon و Optima في هذه الحالة).
لقد قمت بتوصيل Raspberry Pi بأحد مدخلات Denon Avr HDMI. قمت بتكوين الشبكات على 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 بشبكتك. لقد فعلت ذلك عن طريق الانتقال إلى قائمة الإعداد-> الشبكة-> الاتصال وتكوين اتصال WiFi. أعطيت الوحدة عنوان IP ثابت (192.168.1.45) بحيث يكون لدى PI عنوان IP يمكن التنبؤ به للاتصال به.
أقوم أيضًا بتعيين قائمة الإعداد-> شبكة التحكم في الشبكة ليكون "دائمًا". هذا يعني أنه يمكن لـ PI الاتصال بـ AVR حتى عند إيقاف تشغيله.
في إعداد الفيديو/HDMI قمت بتعيينه:
لقد استخدمت Raspberry Pi Zero W. لقد قمت بتوصيله بإحدى مدخلات HDMI للمساحة على الجزء الخلفي من AVR. لقد قمت بتثبيت Raspbian 10 على ذلك. قمت بتكوين الشبكات بحيث تمكنت من الاتصال بـ Denon AVR IP.
تحتاج إلى تثبيت C ++ Complier
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
سيؤدي ذلك إلى نسخ الثنائي إلى /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
لاحظ رسالة "Connection": هذا يعني أن 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