أنا مصور وسأجعل نفسي أداة عمل

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

منذ وقت ليس ببعيد ، قررت أن أعامل نفسي على ضوء ثابت واشتريت لنفسي بعض "العصي الخفيفة" yongnuo yn-360. لقد كانت العصي سحرية فقط ، لكن بالطبع لم يكن من الممكن الاستغناء عنها ، فالتطبيق الذي يعمل بنظام Android للتحكم عن بعد لا يعمل عملياً. بالإضافة إلى العيوب البسيطة للتطبيق - أهمها هو عدم القدرة على التحكم في العديد من الأجهزة في وقت واحد. جعل هذا الطرح وظيفة التحكم عديمة الفائدة ، لأنني ما زلت مضطرًا للهرب من العصا إلى العصا وضبط الضوء يدويًا.

كانت لدي خبرة في البرمجة ، لذلك تم تصحيح الوضع لعدة أمسيات.

صورة

اختيار أداة تطوير


لست مطورًا محترفًا - البرمجة هي هوايتي وبالتالي لست مستعدًا لقضاء الكثير من الوقت في دراسة التكنولوجيا. لقد حدث أن لغتي بيثون المفضلة ، لكن بالنسبة لتنمية الأجهزة المحمولة ، فهي لا تتناسب بشكل جيد. بالطبع ، هناك مشاريع رائعة مثل kivy ، لكن في الحقيقة لا توجد "بطاريات" كافية اعتدت عليها في python (ثم في JavaScript). ونتيجة لذلك ، وقع الاختيار على JS مع apache cordova ، الذي قمت بالفعل بتنفيذ مشروع واحد (بالمناسبة ، يتعلق الأمر بعض الشيء بعملي - مع هذا التطبيق "ضخت" شرارة dji quadcopter ، والتي تم تقليصها من قبل المسوقين لقراءة هنا ). من مزايا التطوير على cordova ، إنها سرعة وسهولة التطوير ووجود "بطاريات".

كيف يعمل؟


ليس من الصعب على الإطلاق تخمين كيفية عمل هذه العصي مع الهاتف الذكي - بل بلوتوث LE. كنت محظوظًا لأن شخصًا ما كان في حيرة بالفعل من هذا السؤال قبلي وفي بضع دقائق وجدت مشروعًا بيثون تمكنت فيه من التجسس على بروتوكول تشغيل العصا. اتضح أنها ليست معقدة على الإطلاق. للعمل مع ble ، عثر cordova على ble plug-in ، واستغرق الأمر تمامًا أمسية لكتابة نموذج أولي عملي.

كل شيء يبدأ بمسح أجهزة بلوتوث LE. ولكن لاستبعاد ما لا لزوم له من البحث (وكان هناك الكثير منه) ، يمكنك المسح عن طريق تعيين UUID للخدمة المطلوبة. بعد ذلك ، تواصل معه واحصل على الخدمة والخصائص. يمكن العثور على UUID للخدمة والخصائص المطلوبة ، على سبيل المثال ، باستخدام تطبيق BLE Scanner.

كل هذا يؤدي إلى رمز بسيط:

var devices_dev={}; var devices=[]; var dev_main={}; function start_scan(){ evothings.ble.startScan( function(device) { //       if (! (device.address in devices_dev)){ //      devices_dev[device.address]=1; //  evothings.ble.connectToDevice( device, function(dev) { //  "" var service = evothings.ble.getService(dev, 'f000aa60-0451-4000-b000-000000000000'); //    var characteristic = evothings.ble.getCharacteristic(service, 'f000aa61-0451-4000-b000-000000000000'); //     .      . dev_main[dev.name]=[dev,characteristic]; devices.push(dev.name); } }, function(error) { console.log(error); }, //   UUID ,   . { serviceUUIDs: ['f000aa60-0451-4000-b000-000000000000'] } ) } 

حسب المبدأ نفسه ، بالمناسبة ، يمكنك الاتصال بأجهزة بليه أخرى. لقد انغمس في موازين Xiaomi الذكية ، والتي يمكنني زيادة وزني. كنت أيضًا قادرًا على تشغيل غلاية ذكية من ريدموند (وكذلك معرفة درجة الحرارة الحالية).

بعد ذلك ، يبقى فقط إرسال معلومات حول لون أو سطوع الضوء. هناك عدة أنواع من المصابيح في هذه العصي: الثنائيات الباردة 5500k ، الثنائيات الدافئة 3200k و RGB. وهي مصنوعة بحيث يمكنك إما ضبط السطوع على البارد والدفء (0-99٪) ، أو تشغيل ثنائيات RGB.
إذا كنت بحاجة إلى ضبط سطوع الثنائيات الباردة أو الدافئة ، فإننا نرسل التسلسل التالي:

 var white=0; //  5500  0-99 var yellow= 50; // 3200  0-99 var data= new Uint8Array([0xAE,0xAA,0x01,white,yellow,0x56]); 

إذا كانت ملونة:

 var RR=255; //   0-255 var GG=0; //   0-255 var BB=; //   0-255 var data=new Uint8Array([0xAE,0xA1,RR,GG,BB,0x56]); 

تبدو وظيفة الإرسال نفسها كما يلي:

 evothings.ble.writeCharacteristic( dev, characteristic, data, // Buffer view with data to write function() { console.log('done!'); }, function(errorCode) { console.log('writeCharacteristic error: ' + errorCode); }); 

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

واجهة المستخدم و "رقائق"


نظرًا لأنك مضطر للعمل مع مكدس html + js + css القياسي ، تتوفر لك الكثير من التطورات الجاهزة. تم اختيار Materialize css لـ UI ، وتم اختيار iro.js كمكون رئيسي في UI.

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

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

صورة

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

"الرسوم المتحركة"


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

صورة

وكان العيب الوحيد لهذه العصي ، بالمقارنة مع نظرائهم أغلى ، هو العمل البطيء للغاية. من إرسال أمر إلى تبديل الألوان ، يصل إلى 300-400 ميلي ثانية ، لذلك لا يمكنك تحقيق عملية أكثر استقرارًا بسرعات أعلى.

في المجموع


ونتيجة لذلك ، تم كتابة طلب نهائي ونشره في المساء ، وهو في رأيي عبارة عن تخفيض أعلى من الطلب "الرسمي" من جهة تصنيع معروفة. كيف يعمل ، أظهر في هذا الفيديو:


ملاحظة: هذه ليست مقالتي الأولى عن كيفية مساعدة البرمجة في العمل الذي لا صلة له بالبرمجة نفسها تمامًا. اقرأ عن هذا الموضوع:

تجاوز واي فاي. نكتب عميل Shoot & View لنظام التشغيل Windows و Mac و Linux .
لينكس في جيبك - في خدمة المصور
صنع كشك صور مستقل على التوت بي

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


All Articles