Pi-Sonos v2.0 أو تطور راديو الإنترنت على Raspberry Pi

الصورة كما تعلمون ، ليس هناك حد للكمال. حتى بالنسبة إلى الصوتيات المحمولة محلية الصنع ، التي يشتمل جمهورها المستخدم على شخص واحد فقط. شخص متطلب للغاية وأحيانًا عنيد مهووس. بعد نشر أول منشور عن Pi-Sonos ، مرت 5 أشهر تقريبًا. خلال هذا الوقت ، تمكن البرنامج داخل هذه الصوتيات من التغيير بشكل كبير مرتين. كان سبب التغييرات نصيحة مفيدة من Habrachians و UX الخاصة بهم.

القليل من التاريخ لأولئك الذين هم كسالى جدًا في القراءة أو الذين نسوا المقالة الأولى بالفعل
Pi-Sonos هي صوتيات مدمجة محلية الصنع ، وقد تم استحداثها من Sonos Play 1. وكان الهدف من هذه الصوتيات أولاً هو تشغيل الموسيقى من محطات راديو الإنترنت. عند إنشائه ، أضع البساطة والراحة في المقدمة: لقد قمت بتوصيله بمأخذ طاقة ، ثم ، في أي مكان في المنزل ، تحكم في الموسيقى من هاتفك الذكي / الكمبيوتر / الكمبيوتر اللوحي.

عن ماذا تتحدث هذه المقالة
بادئ ذي بدء ، عن المثابرة والفضول في الطريق إلى المثالية. تحت اسم المستخدم ، لن يكون هناك حل لأي مشكلة عالمية ، ولا وصف لتقنية فريدة جديدة. يوضح المقال فقط مقارنة بين المراكز الإعلامية الشعبية لـ Raspberry Pi ، ويكشف عن نقاط القوة والضعف فيها ، بالإضافة إلى رؤيتي الشخصية للإطار الأمثل لإذاعة الإنترنت. في الواقع ، أثناء تطوير برنامجي الخاص للمتحدث ، كررت جزئيًا مسار صانعي Volumio ، وأدركت من الصفر فقط إحدى وظائفه (اقرأ: "اخترع دراجة أخرى").
على الرغم من حقيقة أن المقالة تتناول موضوع تطوير البرمجيات ، إلا أنه لا يوجد كود فيه ، لأن الغرض من المقالة هو وصف الفكرة والوظيفة ، وليس عملية تنفيذها. إذا كان موضوع الشفرة مثيرًا للاهتمام للسكان ، فسأحاول إتقان مقال منفصل يصف عملية التطوير.

في البداية ، كان حشو البرمجيات للأصوات هو OSMC ، لكن العقلاء في التعليقات لفتوا الانتباه إلى حقيقة أن Kodi (المعروف أيضًا باسم OSMC) جريئة جدًا مثل "العقول" لمحطة إذاعية عبر الإنترنت. إنه ذكي وكبير جدًا ، فقط للمشاريع الصوتية Volumio أفضل. في الواقع ، اتضح ذلك. يعد Volumio أخف وزناً ، وتم تحسينه بواسطة واجهة الويب ولديه واجهة برمجة تطبيقات أكثر تقدمًا وسهولة في التطوير. أيضا ، ليست هناك حاجة لكابل HDMI يخرج من الخلف ، لأن Volumio قابل للتخصيص بالكامل في أي متصفح.

ومع ذلك ، أظهر Volumio أيضًا بعض أوجه القصور المهمة التي دفعتني إلى إجراء مزيد من البحث. هذا ، أولاً ، وقت التنزيل ، وثانيًا ، عدم وجود تشغيل تلقائي. بعد دراسة الوثائق الرسمية (التي يمكن من خلالها فهم أن Volumio هي إضافة على mpd (مشغل موسيقى Daemon)) ، قررت أن الوقت قد حان لكتابة غلاف خاص بي يسمى RPi-Radio على js من شأنه حل هذه المشاكل. يتم تشغيل جزء الخادم الخاص به على Node.js ، وجزء العميل (GUI) الذي يستخدم React.js جاهزًا منذ OSMC ، فإنه يحتاج إلى تعديل فقط. لذلك يبدو على شاشة الهاتف الذكي الآن:


يوجد أدناه لوحة تُظهر بوضوح عيوب ومزايا كل إطار.
المعيارOSMCVolumioراديو RPi
وقت التحميل35 ثانية45 ثانية20 ثانية
بدء التشغيل التلقائيلا *لا *نعم
عدد الأشرطة من الشاشة الرئيسية لواجهة المستخدم الرسومية "الأصلية" على الهاتف الذكي لتحديد محطة راديو من قائمة المفضلة **5 + 1 التمرير41
الحاجة لشاشة ولوحة مفاتيح وماوس ***نعملالا
إدارة الويبجزئيكاملةجزئي
تحرير قائمة المحطاتكذاالمعاييركذا
الإعداد الأولي السهلكذاعظيممتواضع
التكامل مع واجهة المستخدم الرسومية الخاصة بالهاتف الذكيمع العكازاتمع العكازاتخارج الصندوق
راحة الاستخدام اليومي☆☆☆☆☆
* في الواقع نعم ، لكنك تحتاج إلى عمل عكاز ونخيل من شركة Raspbian الناشئة ؛ في حالة OSMC ، يتم كتابة العكاز في بايثون ، وفي حالة Volumio ، في js أو bash. ولكن في كلتا الحالتين ، لا يزال لا يعمل كما نود.
** بالنسبة لـ OSMC و Volumio ، تعد هذه معلمات مهمة جدًا ، لأن كل هذه النقرات يجب أن تتم في كل مرة تقوم فيها بتشغيل العمود. بالنسبة إلى RPi-Radio ، لا تزال هذه المعلمة ، على الرغم من أنها ضئيلة ، ليست مهمة للغاية ، حيث يبدأ العمود في تشغيل نفسه عند تشغيله.
*** أعني الاتصال المادي للشاشة ولوحة المفاتيح والماوس بجهاز Raspberry Pi نفسه ، أي تلك الحالات حيث لا توجد طريقة للتجول في واجهة الويب المدمجة أو اتصال ssh.

تحت هذا المفسد هو شرح مفصل لكل من نقاط المقارنة.
وقت التمهيد 20 ثانية ، في رأيي ، هو الحد الأدنى الذي يمكن تحقيقه دون الانغماس في براري تحسين Raspbian لهذا المشروع. هذا هو الوقت الذي تستغرقه Malinka لتحميل نظام التشغيل وبدء خدمة mpd. ربما يمكن تحسين هذه النتيجة إذا قمت باستبدال microSDHC بـ microSDXC بسرعة قراءة / كتابة أعلى (سوف أتحقق من ذلك إن أمكن). من المثير للدهشة أن Volumio ، التي تتظاهر بأنها خفيفة وخفيفة الوزن ، تستغرق وقتًا أطول للتحميل من حصادة الوحش OSMC. 45 ثانية من الانتظار تتجاوز عتبة التشغيل المريح ، وكان هذا هو السبب الرئيسي لمغادرة Volumio.

التشغيل التلقائي موجود في mpd خارج الصندوق ، لم يكن لدي أي شيء لتنشيطه - بشكل ملائم! في Volumio ، على الرغم من أنها غلاف MPD ، تم خنق هذه الوظيفة من أجل صوت تحية جميل. كما كتبت بالفعل ، يمكنك إنشاء برنامج نصي ووضعه في بدء التشغيل. الوضع مشابه لـ OSMC.

يتمتع OSMC بمعظم تفاعل المستخدم من خلال الشاشة: هناك واجهة جميلة ، والقدرة على مشاهدة مقاطع الفيديو والصور وقراءة الأخبار ومشاهدة الطقس - هناك الكثير من الأشياء التي لن يفعلها عمودي أبدًا في حياتي.

لكن إدارة الويب لـ OSMC محدودة للغاية ، ولا يمكنك حتى تكوين قائمة محطاتك المفضلة في المكون الإضافي للراديو عن بُعد - فقط من خلال الشاشة. في Volumio - على العكس ، كل شيء يتم فقط من خلال واجهة الويب. يعد تعديل قائمة المحطات أكثر ملاءمة في المتصفح على سطح المكتب / الكمبيوتر المحمول ، ولكنه ممكن أيضًا على الهاتف الذكي إذا رغبت في ذلك. مع RPi-Radio ، يمكنك فقط اختيار محطة وضبط الصوت عبر واجهة الويب. قائمة المحطات ، وكل شيء آخر يجب أن يتم من خلال وحدة التحكم عبر ssh. قائمة المحطات هي الأكثر صعوبة: إذا كان لدى OSMC و Volumio مكتباتهما الواسعة الخاصة بمحطات راديو الإنترنت ، فيضطر RPi-Radio إلى إدخال عناوين محطاتي المفضلة بتنسيق JSON يدويًا. بشكل غير مريح ، ولكن مرة واحدة (أو عدة مرات) في العمر.

مع الإعداد الأولي ، يكون OSMC هو الأسوأ. تحتاج أولاً إلى توصيل جهاز عرض بـ "raspberry" وتكوين المكون الإضافي للراديو ، ثم تحتاج إلى تكوين إخراج الصوت إلى IQAudio DAC الخارجي (مثل لوحة Suptronics X400) عبر وحدة التحكم أو عبر ssh. يحتوي RPi-Radio على نفس إعداد DAC ، ولكن على الأقل يتم كل شيء آخر عبر ssh أيضًا. الرائد في هذه الفئة ، بالطبع ، هو Volumio - لإخراج الصوت من خلال DAC خارجي ، ما عليك سوى تحديد العنصر المناسب من القائمة المنسدلة في قائمة الإعدادات. هناك مقارنة حتى على موقع Suptronics الرسمي (http://www.suptronics.com/xseries/x400.html)

واجهة المستخدم الرسومية في RPi-Radio هي صفحة ويب بسيطة يتم تنفيذها على React.js. جزء الخادم ، المسؤول عن التفاعل بين واجهة المستخدم الرسومية للعميل و MPD ، يعمل على Node.js وهو خادم HTTP و WebSocket بسيط يعتمد على Socket.io + http + express . يتم تشغيله على Raspbian كخدمة عند تشغيل النظام مباشرة بعد بدء تشغيل خدمة mpd ويستخدم وحدة mpc-js للتحكم في mpd. يمكن الوصول إلى واجهة المستخدم الرسومية للعميل من أي متصفح على الشبكة المنزلية الخاصة بي ببساطة عن طريق IP أو اسم المضيف "raspberry". ممتاز.

يتم نشر مصادر RPi-Radio على Github . في نفس المستودع ، في وجبات الغداء المناسبة ، يمكنك العثور على كل من تعديلات GUI للعمل مع OSMC و Volumio.

نتيجة تماريني ، راديو RPi ، تتجاوز نطاق الإضافة البسيطة لعمود واحد. هذا هو نوع من الحل الجاهز الذي لا يحول Raspberry Pi فقط إلى جهاز استقبال راديو عبر الإنترنت ، ولكن أيضًا أي جهاز مع إخراج صوتي وإمكانية الوصول إلى الإنترنت والقدرة على تشغيل mpd و Node.js. الميزة الرئيسية لمثل هذا النظام هي عدم وجود كل ما هو غير ضروري. في الواقع ، كما حدث في سونوس ، في المثل الأعلى الذي أسعى لتحقيقه.

Source: https://habr.com/ru/post/ar410227/


All Articles