بدأ كل شيء مضحك جدا. تم توصيل جهازي كاميرا ويب من الشركة المصنعة Logitech (طراز C525) بجهاز الكمبيوتر الخاص بي. كاميرات جيدة إلى حد ما ، ولكن كما اتضح فيما بعد ، مع سائقين بجودة مشكوك فيها للغاية. في الواقع ، هذه ليست مشكلة فقط من هذه الشركة المصنعة. أداة التكوين الخاصة بهم تحل محل النظام ، لكنها لا تشك في أن الكمبيوتر قد يحتوي على أكثر من كاميرا واحدة من هذا الطراز. نتيجة لذلك ، عندما تفتح نافذة الإعدادات لكاميرات مختلفة من OBS Studio ، يتغير التركيز دائمًا لآخر. الفوضى.
في وقت واحد ، لعب الكثير مع كاميرات التصوير والبث في VLC. من واجهته تعلمت عن DirectShow . قررت أن أتطور في C # ، على الرغم من نقص الخبرة (لن نفكر في المختبرات في الجامعة). حرفيا في المساء ، قمت برسم TrackBars لجميع الكاميرات التي تم العثور عليها ، ولحسن الحظ لم يكن هناك حد. ألقيت الأداة على اثنين من مدوني الفيديو المألوفين لاستخدامهم في التدفقات.

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

صحيح ، ليست جميع المعلمات مدعومة من قبل الكاميرا. 3 حالات فقط: غير متوفر ، الضبط اليدوي فقط ، الضبط اليدوي والتلقائي. يوجد أيضًا تلقائي فقط ، لكنني لا أتذكر الحصول عليه من أي جهاز. وفقا لذلك ، يتم إيقاف تشغيل بعض الخطوط. بالنسبة لكاميرات الكمبيوتر المحمول ، على سبيل المثال ، نصف القائمة المرتبطة بإعدادات الالتقاط غير متوفر. لكن التصحيح موجود بالفعل.
أثناء تنفيذ "الواجهة المبوبة" ، فكرت الفكرة: إرفاق جهاز تشفير. في كاميرات SLR ، يعد تدوير حلقة التركيز مريحة للغاية. لكنهم لم يسلموها إلى كاميرات الويب. لذلك تم توصيل الأطفال STM32F070 بالمشروع. هذه هي أصغر رقائق بدعم USB 2.0. يوجد بالفعل مقال جيد حول Habr حول Custom HID ، بحيث يمكنك تخطي الوصف التفصيلي لهذا العنصر. تصميم الجهاز بسيط للغاية. ليست هناك حاجة إلى الأنابيب لهذا متحكم. الآن فقط لا يعرف كيفية بدء تشغيل المولد المدمج في PLL ، لذلك الكوارتز مطلوبة. من عناصر التحكم ، بالإضافة إلى التشفير ، هناك 4 أزرار. بنيت واحدة منهم في التشفير. هذه هي الآن شائعة جدا. حول تعيين كل سيكون في وقت لاحق قليلا.

لتصحيح البرنامج ، تم لحام مثيلين من جهاز HID. لكن يتم تجميعها تقريبا على اللوح. هذه هي في الواقع الأوشحة ل Pinboard II. عبثًا ، عند توصيلها بالأجهزة الكهربائية ، لم أقم على الفور بإضافة منفذ USB ومثبت خطي. سوف تبدو مزرعة أقل جماعية (لا). في الجهاز النهائي ، من المخطط وضع وشاح في حامل الكاميرا على حامل ثلاثي الأرجل. بالطبع ، مطبوعة على طابعة ثلاثية الأبعاد. بحيث يؤدي سلك واحد فقط إلى الكاميرا ، يمكنك أيضًا وضع لوحة وصل USB في نفس المكان. على سبيل المثال ، FE1.1s ليس أكبر بكثير من STM32. لكن صادق 480 ميغابت. بشكل عام ، تنفيذ الحديد لا يزال سؤال مفتوح.
يمكن لأولئك الذين يرغبون في التكرار تنزيل المصدر من المستودع . تكلفة قطعة من الحديد حسب المكونات مشروطة 100 روبل ، منها 55 متحكم "يأكل". في حالتي ، يكلف الكوارتز 20 ميجا هرتز ، لكن هذا "ما كان في الصناديق". قم بتغيير الفئة ، ولكن أعد تكوين نظام الساعة بحيث تتناسب وحدة USB مع كل شيء.

الآن عن تعيين أزرار الأجهزة. يقوم المشفر المدمج بإرجاع المعلمة إلى الوضع التلقائي ، إذا كان ذلك ممكنًا. دوران يترجم إلى دليل. نظرًا لأن المستخدم يمكنه ضبط العديد من المعلمات ، فأنت بحاجة إلى التبديل بينها. يكون الزر S1 مسؤولاً عن تنفيذ الحلقات من خلال المعلمات ، ويمكنك في S2 و S3 تعيين معلمات معينة حتى لا يصرف انتباهك عن نافذة البرنامج عن طريق التحقق من المعلمة المحددة.
يستخدم إشارة لتحديد الأجهزة. في علامة تبويب الكاميرا ، يمكنك ربط جهاز HID بكاميرا معينة. يضيء مؤشر LED عند تحديده في القائمة المنسدلة. يوفر الرسم البياني LED مع اثنين من البلورات في غلاف واحد ، ولكن لا يتم استخدام جميع معالمه. غادر للمستقبل.
كل جهاز HID له رقمه التسلسلي الفريد ، والذي ينتقل عبر USB. هو الذي يتم عرضه في القائمة. يتم ضمان تفرد الأرقام بواسطة معرف متحكم نفسه. هذا هو تاريخ الإنتاج ومكانه على اللوحة. طريقة مضحكه جدا للتكوين. وإن لم يكن يتم تخزين الرقم التسلسلي في ملف INI ، ولكن المسار إلى الجهاز (يحتوي على VID و PID و GUID). جميع الإعدادات قابلة للقراءة ، بحيث يمكن تحرير الملف باستخدام المفكرة. لكن لماذا.
شفرة الكاميرا شيء سيء. OBS Studio ، على سبيل المثال ، يترك الإطار الأخير. في بعض الأحيان كنت لا تلاحظ على الفور انهيار. لذلك إشعار خوذة. بشكل عام ، كانت معالجة توصيل الأجهزة الجديدة وإعادة الاتصال الموجودة أصعب مهمة. كل من كاميرات الويب و HID. أساسا الأول. تتأثر بنقص تجربة البرمجة في C #. سيكون من الضروري قراءة نوع من الكتب ... كم عدد التدفقات التي مرت أثناء استمرارها ... تم بث العملية على YouTube ، حيث كان المشاهدون يطلبون بشكل دوري عن طريق الرمز أو حسب وظائف التطبيق. انها مريحة جدا. العقل الجماعي.
لذلك ، بسبب السائقين منحرف ، تظهر هذه الحرف. بالطبع ، سيتم تحديثه وتصحيحه بمرور الوقت ، لذلك هناك رابط إلى المستودع .