DevBoy - كيف أنشأت مشروع جهاز مفتوح المصدر وأطلقت مشروعًا على Kickstarter

مرحبا اصدقاء!

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



من يهتم - أطلب قطة.

حدث ذلك أنه منذ الطفولة كان لدي إمكانية الوصول إلى التقنيات المتقدمة في وقتي ( Atari 65XE ، ZX-Spectrum ، EC1841 ، وما إلى ذلك ) ، والتي لم تحدد مسبقًا اختيار المهنة فحسب ، بل غرست أيضًا هواية ممتازة ( في رأيي ) - البرمجة وتطوير شيء ما.

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

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

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

ونتيجة لذلك اتضح:



ميزات ملخص:

  • استنادًا إلى وحدة التحكم الدقيقة STM32F415RG ، يعمل Cortex-M4 على تردد 168 ميجاهرتز
  • 1024 كيلو بايت ROM و 192 كيلو بايت RAM
  • شاشة 2.8 بوصة بدقة 320 × 240 بكسل وألوان 16 بت
  • شاشة تعمل باللمس مقاومة
  • فتحتان لوحدات الإدخال ، 4 I / O ( 2 منهم يمكن رقمنة الإشارة باستخدام خطوط ADC ) في كل
  • فتحة توسعة بخطوط إدخال / إخراج من جميع أطراف وحدة التحكم الدقيقة تقريبًا
  • فتحة بطاقة SD
  • وبالطبع مفتوح المصدر

الجهاز نفسه من جميع الجهات:



وهنا دبوس موصل التمدد:



في الداخل ، يبدو كل شيء كما يلي:



هنا وحدة مع متحكم:



وهكذا فإن إشارته:



وحدة الشاشة:



وشاحن بطارية الليثيوم:



وأخيرًا ، الجزء الأخير - السلك:





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

كود المصدر يستحق مقالة منفصلة. ربما سأكتبها لاحقًا. من برامج الجهات الخارجية ، يتم استخدام System Workbench لـ STM32 و STM32CubeMX و FreeRTOS . هذه كلها مشاريع مجانية. مكتوب C ++ FreeRTOS ، مهام صيانة الشاشة ، شاشة تعمل باللمس ، الصوت والإدخال لهذا الغرض.

الصورة

إن إخراج الرسومات مثير للاهتمام بشكل خاص - يمكن للنموذج الأولي مع متحكم متحكم STM32F103 عرض لعبة من نوع Mario بتردد 15 إطارًا في الثانية بدقة 320 × 240 ووجود 20 كيلوبايت فقط من ذاكرة الوصول العشوائي على اللوحة ( تم استبعاد Framebuffer ) ، بينما كان القيد على الأرجح بسبب تردد SPI . عند STM32F415 بتردد SPI يبلغ ضعف ، 30 إطارًا في الثانية.

حسنًا ، في الختام ، سأترك الروابط:

  • يمكن العثور على شفرة المصدر في المستودع على GitHub
  • يمكن العثور على الملفات ثلاثية الأبعاد معًا ومصادر OpenSCAD على Thingiverse
  • وفي الواقع ، صفحة المشروع على Kickstarter

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

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

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

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


All Articles