مشغل وسائط من الخزانة


المؤلف: نيكولاي خاباروف في

إحدى الليالي الجميلة يوم الجمعة ، قررت مشاهدة فيلم في المنزل: لقد قمت بتشغيل الكمبيوتر المحمول ، وقمت بتوصيل كابل HDMI من خلال محول DisplayPort ، وأخذت جهاز التحكم عن بعد ، وشغلت التلفزيون ، وبدأت في اللعب على الكمبيوتر المحمول. وأدركت أن مستوى الصوت في التلفزيون لم يكن كافيًا - كان عليّ البحث عن جهاز التحكم عن بُعد مرة أخرى لزيادةه ... ثم فكرت ، "هل يمكن تبسيط هذه العملية بطريقة أو بأخرى؟"

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



كما ترى من الوصف ، فإن متطلبات المشغل بسيطة للغاية: القدرة على تشغيل المحتوى من الشبكة ، والتخزين لعدة مئات غيغابايت ، والقدرة على التحكم في جهاز التحكم عن بُعد نفسه الخاص بالتلفزيون ؛ منفذ USB أمر مرغوب فيه ، ولكنه ليس ضروريًا. اختفى لاعبو Android الذين تم شراؤهم على الفور ، لأن هذه الأجهزة هي في الغالب الصين نقية ، في أسوأ معنى للكلمة ، ولم يكن لدي رغبة في القتال مع الأخطاء داخلها. بالإضافة إلى ذلك ، ليس من الواضح كيفية تنفيذ التحكم في مثل هذا الجهاز من جهاز التحكم عن بعد الخاص بالتلفزيون ، علاوة على ذلك ، من الواضح أن الواجهة الرسومية لـ Android غير مخصصة للتحكم عن بعد من حيث المبدأ. لذلك ، بدأ البحث عن خردة يمكن للمرء أن يصنع منها شيئًا.

نختار التفاصيل


بادئ ذي بدء ، أود فقط أن أحاول أن أفهم جدوى تصنيع الجهاز النهائي. لذلك ، بادئ ذي بدء ، سنأخذ الحد الأدنى من التفاصيل ونجرب مشغل وسائط محتمل قيد التشغيل. نذهب إلى مخزن الطعام ونحفر التفاصيل التي نحتاجها حرفيا:
1. كمبيوتر بمخرج HDMI. يعتبر Raspberry Pi 1 القديم مناسبًا تمامًا لأغراضنا ، يمكنك أيضًا استخدام Raspberry Pi 2.
2. مزود الطاقة للوحة - شحن microUSB من هاتف قديم مناسب. يمكنك أخذ أي "محاولة" ، ولكن من المستحسن أن تأخذ مصدرًا يوفر تيارًا ناتجًا 1A (أمبير واحد للعيون يكفي لـ Pi 2 ، انظر المتطلبات ) ؛
3. بطاقة microSD بسعة 4 جيجا بايت أو أكثر.
4. الماوس و / أو لوحة المفاتيح USB (يمكن استخدام اللاسلكي) ، وبشكل اختياري ، مستقبل إشارة الأشعة تحت الحمراء TSOP4836 أو ما شابه.
5. محول USB Wi-Fi أو القدرة على توصيل كابل إيثرنت مع الإنترنت باللوحة.

نضع OpenElec ، نحاول


في هذه المرحلة سنقوم بتشغيل OpenElec بأصغر طريقة ممكنة. بمجرد أن فكرت في البرنامج الخاص بمشغل الوسائط المتعددة الخاص بي ، تذكرت XBMC ، الذي أعيدت تسميته لاحقًا باسم Kodi . ولكن لم تكن هناك رغبة في تثبيت أي نظام تشغيل ، ثم تكوين Kodi. لذلك قررت أن أجعله يعمل على google ووجدت هذا التجمع لنظام التشغيل غنو / لينكس ، والذي تم تثبيت كودي عليه بالفعل. يسمى هذا التجميع OpenElec ، وهو مشروع مفتوح المصدر. موقعها الرسمي هو openelec.tv
، لذلك نقوم بتنزيل صورة التثبيت من الموقع الرسمي . نختار الإصدار المطلوب والنظام الأساسي الذي سنقوم بتشغيله عليه (في حالتي ، الإصدار المستقر لـ Rasberry Pi) ، ونقوم بتنزيل "Diskimage" (ملف بامتداد .img.gz).
فك الصورة: واكتب على بطاقة الذاكرة:
$ gunzip -d < >.img.gz


$ sudo dd if= < >.img of=/dev/mmblck0 bs=4M

تصحيح / dev / mmblck0 - إذا كان هناك أكثر من بطاقة ذاكرة واحدة في نظامك.

إنتباه! سيتم مسح محتويات بطاقة الذاكرة تمامًا.

يمكن لمستخدمي Windows استخدام أداة Win32 Disk Imager المجانية . الأداة لها واجهة رسومية - حدد الملف وبطاقة الذاكرة واضغط على "كتابة".
تأكد الآن من كتابة كل شيء على البطاقة باستخدام الأمر
$ sync

أو ببساطة قم بإزالة البطاقة من خلال الإزالة الآمنة للجهاز في الواجهة الرسومية لنظام التشغيل. نحصل عليه ماديًا ونضعه في Raspberry Pi. بعد ذلك ، قم بتوصيل كبل Ethernet بالإنترنت أو أدخل محول Wi-Fi USB ، وقم بتوصيل الماوس وكابل HDMI بالتلفزيون. إذا كنت ترغب في استخدام جهاز تحكم عن بعد بالأشعة تحت الحمراء ، فأنت بحاجة إلى توصيل جهاز استقبال الأشعة تحت الحمراء بـ GPIO18 وقوة المعالج (3.3 فولت). مخطط الاتصال النهائي هو كما يلي:

إذا قررت استخدام جهاز استقبال بالأشعة تحت الحمراء ، فاحرص على ذلك
- تأكد من صحة تخطيط الدبوس لجهاز الاستقبال.
كل شيء ، الآن يمكنك إلقاء نظرة على البيئة نفسها. نحن نشغل المجلس من مصدر الطاقة. بعد التحميل ، يظهر معالج الإعداد الأولي على الشاشة:


أثناء الإعداد ، أوصي على الفور بتمكين وصول SSH. جميع الأسئلة الأخرى تافهة.

يمكنك الآن اللعب مع بيئة اللاعب المستقبلي باستخدام الماوس و / أو لوحة المفاتيح. يمكنك محاولة تشغيل الفيديو بتنسيقات مختلفة (يمكنك توصيل محرك أقراص USB محمول بالمنافذ المجانية) وفهم ما هو بشكل عام. هناك حالات مختلفة للوحة Raspberry Pi نفسها ، ربما سيكون شخصًا سعيدًا بكل شيء بهذه الطريقة البسيطة ، على سبيل المثال ، يمكنك توصيل ماوس USB لاسلكي واستخدام الجهاز. سنواصل تحسينه.

قم بتوصيل جهاز التحكم عن بعد بالأشعة تحت الحمراء


إذا قررت عدم توصيل مستقبل IR ، يمكنك ببساطة تخطي هذا القسم.

لاستخدام جهاز التحكم عن بعد ، نحتاج إلى تكوين LIRC . أولاً ، دعنا نشغل الوحدة ، التي تعمل مباشرة مع جهاز الاستقبال عبر منفذ GPIO. للقيام بذلك ، قم بإضافة خط إلى ملف التكوين DeviceTree. نقوم بتسجيل الدخول عبر SSH إلى جهازك (هل قمت بتمكين SSH أثناء الإعداد الأولي؟ إذا لم يكن كذلك ، يمكنك القيام بذلك في الواجهة الرسومية للنظام نفسه). كلمة المرور الافتراضية هي openelec. أضف السطر الذي نحتاجه إلى الملف: في النهاية نضيف السطر ثم نعيد التحميل: الآن نحتاج إلى التأكد من أن كل شيء يعمل ويمكن لـ LIRC تلقي أوامر من جهاز التحكم عن بعد ، لذلك نوقف LIRC ونحاول الحصول على البيانات من جهاز التحكم عن بعد:
$ ssh root@ip_address


# mount -o remount,rw /flash
# nano /flash/config.txt


dtoverlay=lirc-rpi


# killall lircd
# mode2 -d /dev/lirc0

نضغط على أي زر على جهاز التحكم عن بعد ونلمع على جهاز الاستقبال - يجب تشغيل نص يصف النبضات الواردة في وحدة التحكم. نحن مقتنعون الآن بأن كل شيء يعمل ويمكننا تدريب LIRC على استخدام جهاز التحكم عن بعد. يرجى ملاحظة أنه يجب إيقاف lircd أثناء عملية التكوين ، قمنا بذلك في وقت سابق باستخدام الأمر kill. يوجد سجل فائدة خاص للتدريب ، ونقوم بتشغيل الأوامر التالية لإطلاقه: بعد ذلك ، اتبع التعليمات التي تظهر على الشاشة. في البداية ، سوف تطلب منك الأداة الضغط على الأزرار المختلفة على جهاز التحكم عن بعد حتى يتم ملء النقاط على الشاشة لمعرفة نمط جهاز التحكم عن بعد. ثم ستحتاج إلى الإشارة مع النص إلى الزر الذي تريد تعليم LIRC استخدامه ، والتألق على جهاز الاستقبال. أوصي بأن تعلم الأزرار التالية على الأقل: KEY_UP KEY_DOWN
# cd /storage/.config
# irrecord -d /dev/lirc0 lircd.conf





KEY_LEFT
KEY_RIGHT
KEY_OK
KEY_PLAY
KEY_EXIT
KEY_STOP
KEY_INFO
KEY_EPG

يمكن الحصول على القائمة الكاملة للأزرار المتاحة في النظام عن طريق الأمر: على جهاز التحكم عن بعد ، يمكنك اختيار أي زر مناسب لك. معظم أجهزة التلفاز في وضع HDMI ، معظم الأزرار لا تفعل شيئًا ، وهو بالطبع في متناول اليد. نتيجة لذلك ، يجب أن نحصل على ملف lircd.conf مع معلمات جهاز التحكم عن بعد - نعيد تشغيل اللوحة ونحاول استخدام جهاز التحكم عن بعد. يمكنك أيضًا تشغيل / إيقاف المشغل. للقيام بذلك ، قم بتوصيل جهاز الاستقبال بالطرف الثاني من Raspberry PI GPIO1 لـ Raspberry PI 1 أو GPIO3 لـ Raspberry PI 2 - على كلا اللوحين توجد هذه المسامير في نفس المكان على موصل اللوحة:
# irrecord -list namespace






من خلال توصيل هذا الدبوس بالأرض ، يمكنك تنبيه اللوحة في حالة إيقاف التشغيل. باستخدام هذا الاتصال ، يمكنك برمجة الزر KEY_POWER ، وسيتم إيقاف تشغيل المشغل عند النقر فوقه ، وسيتم تشغيله عن طريق أي إشارة من أي جهاز تحكم عن بعد.

نجمع الجهاز بجدية أكبر
كنت أرغب في عمل جهاز أكثر شمولاً بمظهر جهاز المصنع وإضافة محرك قرص ثابت إليه. نظرت إلى المخزن ووجدت جهاز استقبال قمر صناعي قديم. في الداخل ، يوجد بالفعل مصدر طاقة كافٍ لجميع مكونات الطاقة ، وهناك جهاز استقبال إشارة IR ، ومفتاح إيقاف الطاقة على الجدار الخلفي. هناك أيضًا فرصة لصنع ساعة على اللوحة الأمامية بسبب مؤشر السبعة أجزاء المثبت بالفعل. وبالطبع ، فإن القضية نفسها رائعة لأغراضنا. يمكن استبدال جهاز استقبال الأقمار الصناعية بمشغل DVD أو VHS قديم حتى عندما لا يعمل.
, — , . / — , 220 .

نفتح حالة المتلقي / VCR. بادئ ذي بدء ، نحتاج إلى التأكد من أن مصدر الطاقة لديه خرج 5 فولت ، والذي يمكن أن يعطي الطاقة اللازمة. للقيام بذلك ، باستخدام جهاز متعدد ، نتحقق من وجود طاقة 5 فولت ثم نتتبع من خلالها المكونات التي يتم الحصول عليها. إذا كانت قاعدة عنصر المقوم وقطر لف المحول لوحدة تزويد الطاقة يمكن أن تتحمل 2-3 أمبير ، فنحن محظوظون - فهناك مصدر ، وإلا سيتعين عليك تغيير المصدر في الحالة إلى مصدر أكثر قوة. ثم نقوم بإخراج اللوحة الرئيسية / محرك الأشرطة / محرك الأقراص الضوئية ونعيده إلى مخزن الطعام - سيكون في متناول اليد. في الداخل ، نترك فقط لوحة PSU واللوحة مع اللوحة الأمامية التي يوجد فيها جهاز استقبال IR.

الآن اختر مكان تثبيت Raspberry Pi نفسه. الخيار هنا بسيط للغاية: يجب أن يخرج جانب اللوحة مع HDMI خارج العلبة ، ويجب تثبيت الجانب الذي يحتوي على منافذ USB في الداخل لتوصيل المكونات الداخلية ، بالإضافة إلى ذلك ، نحتاج على الأقل إلى بعض الوصول إلى بطاقة microSD في حالة تغيير البرنامج الثابت. هناك فتحات لموصلات RCA في حالة جهاز الاستقبال ، سنضع اللوحة بحيث يمكن الوصول إلى موصل HDMI قدر الإمكان في الخارج. على نفس الجانب هناك مخرجات لبطاقة الصوت و microUSB تعمل في الوضع المحيطي. نحن لسنا مهتمين بهذه الموصلات ؛ سنزود الطاقة من الخارج من خلال موصل GPIO الرئيسي للوحة.

نحدد المكان الذي تريد قطعه قليلاً بحيث يتم إدخال موصل HDMI بحرية في اللوحة من خارج العلبة ويحدد أربعة ثقوب لتثبيت اللوحة. استخدمت الرفوف التالية:


تدخلت رفوف اللوحة الأم ، وقمت بإزالتها بمساعدة كماشة. يجب أن يتم التلاعب بعناية ، بحركة محرجة يمكنك بسهولة ثني العلبة نفسها. نقوم بحفر ، ورؤية ، وربط الحامل بمسامير مناسبة واللوح نفسها لهم.


الآن أنت بحاجة إلى العثور على مكان لمحرك الأقراص الصلبة. المتطلبات هنا بسيطة للغاية - تحتاج إلى ترك بضعة سنتيمترات مجانية داخل العلبة من جانب موصل SATA ، لأنه سيتم إدخال محول هناك. يحتوي القرص الصلب على خيوط على السطح السفلي وجوانب محرك الأقراص الثابتة. يحتاج وينشستر إلى رفع طفيف حتى لا يستلقي على المعدن. لقد قمت بحل المشكلة ببساطة شديدة - لقد أخذت مسامير مناسبة للخيط السفلي ، ولكن أطول قليلاً من اللازم ، ووضعت المسافة بين العلبة ومحرك الأقراص الصلبة مع صواميل أكبر.

الآن نحن بحاجة إلى العثور على محول SATA USB أو حاوية قديمة لمحرك الأقراص الصلبة ، حيث يمكن سحب هذا المحول. كان لدي حاوية ، ولكن للأسف تبين أنها غير صالحة للعمل. كان علي أن أركض إلى المتجر لمحول SATA USB. سنقوم بإدخال موصل USB في Raspberry PI ، ولكن حتى لا يتم تحميل اللوحة بتيارات خطيرة للغاية يتطلبها محرك الأقراص الثابتة ، خاصة عند تدوير المغزل ، تحتاج إلى توصيل طاقة إضافية مباشرة من PSU. في حالتي ، كان المحول يحتوي على كبل به موصلا USB ، وقمت بتوصيل أحدهما مباشرة بوحدة إمداد الطاقة عن طريق لحام موصل استجابة USB بالقرب من PSU.


شيئين آخرين للتفكير على الفور. الأول هو أين وكيف سيتم وضع منفذ USB الخارجي. والثاني هو مكان وضع محول Wi-Fi ، أو إذا كنت تخطط لتطبيق اتصال Ethernet فقط ، وكيفية وضع موصل Ethernet على جدار العلبة (إذا وضعت اللوحة بحافة هذا الموصل على العلبة ، فلا يمكنك توصيل أجهزة USB من الداخل). يمكن إطالة إيثرنت عن طريق وضع منفذ حائط تقليدي داخل العلبة وسحق سلك قصير بموصل.

يتم بيع أجهزة دونجل USB صغيرة جدًا الآن ، ولكنك لست بحاجة إلى وضع مثل هذا داخل علبة معدنية - يمكن أن تمر الإشارة بشكل سيئ. يمكنك أخذ كبل تمديد USB قصير ، ووضع موصل USB على الجزء الخلفي من العلبة وإدخاله هناك. هناك أيضًا محولات USB بهوائيات قابلة للإزالة ، يمكنك تمديد موصل RMA إلى الجزء الخلفي من العلبة وتثبيت الهوائي هناك. كان لدي محول قديم نوعًا ما ، ونتيجة لذلك ، محول Wi-Fi USB كبير نوعًا ما مع هوائي ملفوف ومدخل miniUSB. لم يكن لدي أي مكان لأضعه بسبب حجمه ، وقررت استخدامه في الأعمال التجارية. أزال العلبة - لم يسمح شكلها بتوصيل الهوائي من الخارج. كانت الرسوم كبيرة جدًا ، وكان علي أن أفكر بعناية في وضعها. لحسن الحظ ، تبين أنها رقيقة جدًا ، وقررت أن أضعها على موصلات USB من Raspberry Pi. موصل RMA خارجالملتوية على الجوز ووضع داخل العلبة رفًا مرتفعًا للوحة. بقي الوصول إلى USB ، ورفع الهوائي فوق العلبة. عظيم!


تحتاج الآن إلى إصلاح كابل تمديد USB بطريقة ما في اللوحة الأمامية ، والتأكد من أنه لا يتداخل مع أي شيء داخل العلبة. في حالتي ، كان لجهاز الاستقبال باب لبطاقات الوصول ، وقررت وضع موصل خلفه - حتى لا يجمع الغبار! لذلك ، لم أقطعها بعناية فائقة ، وملأتها بغراء ساخن في الخلف.


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

في النهاية ، حصلت على مثل هذا الجهاز:


التخصيص


إذا قمت بتشغيل عند رؤية مربع ملون في الزاوية اليمنى العلوية من الشاشة ، فهذا يعني أن طاقة Raspberry Pi ليست كافية - إما إمدادات طاقة ضعيفة أو أسلاك رفيعة جدًا أو ملحقات USB تأخذ الكثير. في الحالة الأولى ، لن يساعد سوى استبدال PSU بأخرى أكثر قوة. في الثانية ، يمكن حل المشكلة بسهولة عن طريق استبدال الأسلاك بأسلاك أكثر سمكًا أو عن طريق استخدام عدة نوى بالتوازي ، في الثالثة ، يتم حل المشكلة عن طريق تغذية أجهزة USB مباشرة من مصدر الطاقة ، أو ، على سبيل المثال ، عن طريق تثبيت لوحة وصل USB مع القدرة على توصيل مصدر طاقة خارجي.

ربما سترى أيضًا أن محرك الأقراص الثابتة لديك متصل بالنظام كمحرك أقراص فلاش خارجي. دعونا نجعلها التخزين الرئيسي في نظام التشغيل. في البداية ، يبدأ OpenElec تلقائيًا في استخدام كل المساحة الخالية على بطاقة microSD لقسم البيانات ، والتي يتم تركيبها بعد ذلك على أنها / تخزين. يبدو أن القرار الأكثر نجاحًا بالنسبة لي هو استخدام محرك الأقراص الثابتة بالكامل كـ / تخزين. للقيام بذلك ، قم بتهيئة القرص الصلب وقم بإنشاء قسم عليه باستخدام نظام الملفات ext3 / 4. يمكن القيام بذلك مباشرة على المشغل باستخدام الأدوات المساعدة المنفصلة و mkfs ، ستؤدي الأوامر أدناه إلى مسح محتويات القرص بالكامل وإنشاء قسم ext4 واحد: لهذا ، ستحتاج إلى تسجيل الدخول إلى المشغل عبر SSH. ثم قم بتثبيت القسم الجديد في مكان ما:

# umount /dev/sda1
# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel GPT
mklabel GPT
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
yes
(parted) mkpart primary 2048s 100%
mkpart primary 2048s 100%
(parted) q
q
Information: You may need to update /etc/fstab.
# mkfs.ext4 /dev/sda1



# mkdir /tmp/hdd
# mount /dev/sda1 /tmp/hdd


انسخ محتويات / التخزين بالكامل إلى قسم جديد لحفظ الحالة الحالية: قم بإلغاء تحميل القسم وحذف المجلد ، إذا رغبت في ذلك: الآن تحتاج إلى تحديد محرك الأقراص الذي نحتاج إلى تحميله في وقت التمهيد. يمكنك القيام بذلك عن طريق تعديل سطر الأوامر لمعلمات kernel ، ولكننا أولاً نكتشف UUID الخاص بقسم محرك الأقراص الثابتة الخاص بنا: انسخ UUID الخاص بالقسم إلى الحافظة. أعد تحميل نظام الملفات الآن بتهيئة kernel للكتابة وإصلاحه: في الملف ، استبدل معلمة القرص بـ UUID الخاص بالقرص. يجب أن تبدو محتويات الملف كما يلي: بعد إعادة التشغيل ، سيستخدم المشغل محرك الأقراص الصلبة كـ / تخزين ، ويمكن حذف القسم الموجود على بطاقة الذاكرة بحيث لا يتم تحميله تلقائيًا عند تشغيله:
# cp -rf /storage/. /tmp/hdd



# umount /dev/sda1
# rmdir /tmp/hdd



# blkid /dev/sda1



# mount -o rw,remount /flash
# nano /flash/cmdline.txt



boot=/dev/mmcblk0p1 disk=UUID=95013338-89b1-43af-8471-9b30efc85d98 quiet



# parted -s /dev/mmcblk0 rm 2


هذه عطلة نهاية أسبوع ممتعة. لا تنس أن نظام التشغيل غنو / لينكس موجود على مشغل الوسائط هذا ، ويمكنك تعديله / استكماله بنفسك كما تريد. يمكنك أيضًا حل بعض مهام الأتمتة المنزلية باستخدام نفس الجهاز.

وأخيرًا ، مقطع فيديو لخطاب كاتب مقال يتحدث عن الجهاز.

هل لديك عرض جميل!

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


All Articles