Espruino: تحديات تشغيل شركة مفتوحة المصدر للأجهزة والبرامج - 💡 Fix My Ideas

Espruino: تحديات تشغيل شركة مفتوحة المصدر للأجهزة والبرامج

Espruino: تحديات تشغيل شركة مفتوحة المصدر للأجهزة والبرامج


مؤلف: Ethan Holmes, 2019

قراءة مقالات من المجلة هنا على يصنع:. ليس لديك اشتراك حتى الآن؟ احصل على واحدة اليوم.

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

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

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

صوربواسطة Hep Svadja

برامج Freemium

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

كانت محاولتي الأولى هي جعل Espruino "freemium". أضفت القدرة على حفظ صورة من الكود الجاري تشغيله حاليًا في ذاكرة الفلاش وشحنت 4 دولارات مقابل ذلك - لسوء الحظ ، على مدى عام كامل ، لم أحصل إلا على 40 دولارًا على الرغم من قضاء أسابيع في مساعدة المستخدمين. كان لديّ تنزيلات مهمة ، لكن قلة قليلة من الناس تمكنت من تثبيت البرامج الثابتة وتجاوزوا ما يكفي من "Hello World" لمصابيح LED الوامضة حتى لإنقاذ ما فعلوه.

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

انطلاق لوحة

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

في اتجاه عقارب الساعة من أعلى اليسار: Espruino الأصلي ؛ Puck.js. اسبرينو واي فاي. اسبرينو بيكو (مع وبدون دبابيس).

كانت تجربة Kickstarter بأكملها مذهلة - لكنها كانت مرهقة للغاية واستغرقت وقتًا هائلًا. كنت جديدًا جدًا في تصميم مركبات ثنائي الفينيل متعدد الكلور ، لذا فقد استخدمت شيئًا يُطلق عليه OPL (مكتبة الأجزاء المفتوحة) من Seeed Studio. كانت هذه مجموعة قطع يمكنك شراؤها والتي تضمنت أيضًا جميع الخطوط العريضة لأدوات تصميم PCB. بمجرد وضع نموذج أولي للعمل معًا ، تمكنت من تقديم التصميمات لـ Seeed ، الذي سيقوم بتصنيع اللوحة بجميع الأجزاء الموجودة في المخزون بالفعل. هذا يعني أنه على الرغم من أن كل شيء استغرق وقتًا أطول من المخطط له ، فقد تمكنت من شحن الألواح بعد شهر واحد فقط من تاريخ الشحن المتوقع.

التعبئة تكافئ لأول حملة كيك ستارتر في إسبرينو.

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

تم تجميع لوحات Espruino في Seeed ، وهي جاهزة للبرمجة والاختبار.

الآن ، بعد ما يقرب من خمس سنوات من كتابة أول سطور من التعليمات البرمجية الخاصة بي ، أكملت للتو شحن جميع المكافآت لحملة Kickstarter الثالثة: Puck.js ، زر Bluetooth القابل للبرمجة. يوجد الآن مجتمع رائع من المستخدمين حول Espruino ومنتدى يضم أكثر من 20.000 مشاركة - مدفوعًا بشكل رئيسي بحماس مؤيدي Kickstarter. كل شيء مفتوح المصدر (الأجهزة والبرامج) ، لكنني أخيرًا في المرحلة التي تكون فيها المبيعات الشهرية من لوحات Espruino كافية لدفع راتبي - دون الحاجة إلى حملات Kickstarter لدعمي.

Porting ينتج مشاكل

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

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

المرة الأولى التي كان يعمل فيها Espruino على الأجهزة الفعلية ، 2012 (لوحة STM32VLDISCOVERY).

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

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

في Espruino ، كان الهدف دائمًا هو استبدال تعقيد الأجهزة بتعقيد البرامج. الجهاز بسيط للغاية ، لكن البرنامج معقد للغاية ويستغرق الغالبية العظمى من وقت التطوير (10 مرات على الأقل). يجب أن أقوم بترميز تكلفة أجهزتي من أجل الدفع مقابل الوقت المستغرق لتطوير البرنامج. هذا يجعل لوحاتي غير قادرة على المنافسة مقارنةً بلوحة ESP8266 التي تبلغ تكلفتها 2 دولار والتي قام Espruino بالوميض عليها مجانًا ، أو حتى شركة أخرى تبيع لوحًا مزودًا بـ Espruino مثبتًا مسبقًا.

اللوحة الأولى من 30 Espruino Pico تنطلق من خط الإنتاج.

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

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

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

التحكم في المحركات باستخدام Espruino على لوحة مطورة تعمل باللمس STM32.

على الرغم من أنني قادر على دفع راتبي بنفسي ، إلا أنه خارج السخاء من المجتمع ، وليس لأن لدي نموذج أعمال رائع. لا يسعني إلا أن أشعر أن الافتقار إلى حالة عمل واضحة لاستخدام أدوات البرمجيات المفتوحة مع أجهزة مفتوحة المصدر يضر بالابتكار في هذا المجال. أعتقد أنه يوجد الآن مئات من مواقع إنترنت الأشياء الممولة برأس المال الاستثماري. في الوقت نفسه ، على الرغم من ملايين المستخدمين ، لم يتغير وضع Arduino IDE بشكل ملحوظ منذ إصدار alpha الأول منذ 10 سنوات ، في حين أن IDE online Codebender قد تم إيقافه.

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



قد تكون مهتمة

سحر نورثلاندز

سحر نورثلاندز


مراجعة كتاب: كتاب الجرأة

مراجعة كتاب: كتاب الجرأة


صانع صديقة للميزانية دليل السقيفة هدية!

صانع صديقة للميزانية دليل السقيفة هدية!


Itsabob: لعبة جديدة تحول البالونات إلى كائنات فنية لعوب

Itsabob: لعبة جديدة تحول البالونات إلى كائنات فنية لعوب