كيبي صنع لوحة مفاتيح USB الخاصة بك من الصفر

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


لوحة المفاتيح KeeBee النهائي

عدة أهداف للمشروع:

  1. إنشاء الذات من المخطط.
  2. كتابة البرامج الثابتة لوحة المفاتيح.
  3. تعرف على كيفية عمل بروتوكول USB.

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

دراسة وتخطيط CAD


يعجبني حقًا لوحات المفاتيح OLKB Planck وأسلوب Preonic المصغّرة ، والتي ، نظرًا للترتيب الخطي للمفاتيح ، مضغوطة جدًا. عرفت أيضًا على الفور أنني أرغب في استخدام مفاتيح Cherry MX Brown. مع وضع هذين العنصرين في الاعتبار ، بدأت ألعب مع تخطيطات أساسية في OpenSCAD . هذه أداة رائعة مفتوحة المصدر تعمل مثل لغة البرمجة أكثر من واجهة ماوس WYSIWYG.

بأخذ أحجام العناصر من وثائق Cherry MX ، قمت بعمل تخطيط للوحة العلوية ، ثم أضفت مفاتيح ومفاتيح للتعرف على الشكل الذي ستبدو عليه النتيجة النهائية. تقع اللوحة العلوية فوق لوحة المفاتيح PCB وتعمل كمثبت جيد للمفاتيح.

تصميم لوحة العلوي:



بعد إضافة المفاتيح:





نماذج المجلس وتصميم البرامج الثابتة


كما متحكم رئيسي ، اخترت STM32F042K6T6 . هذا هو حوالي ثلاثة دولارات لكل رقاقة ، إذا كنت تأخذ من قطعة واحدة. لديه ما يكفي من الاتصالات لمصفوفة المسح من 69 مفاتيح (32 اتصالات في المجموع). إنه يعمل على معالج ARM Cortex M0 ويحتوي على ملحقات USB خاصة لإرسال إشارة USB دون تحميل المعالج الرئيسي بهذه المهمة. لقد اشتريت لوحة تطوير نموذج Nucleo مع هذه الشريحة قبل دمجها في تصميم PCB الخاص بي. وضع Nucleo بشكل مريح للغاية على اللوح ويتم تشغيله عبر USB.

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



مصفوفة المسح الضوئي هي تقنية تحتاج إلى استخدامها عندما يكون لديك مفاتيح أكثر من جهات الاتصال على المتحكم الدقيق.

عندما عملت المصفوفة بشكل مرض ، فقد حان الوقت للعمل على USB.

دورة البرامج الثابتة المضمنة هي في الأساس هذه:

  1. مسح جميع المفاتيح في المصفوفة.
  2. قم بمطابقة تخطيط الزر مع الأحرف المقابلة في التخطيط المحدد (QWERTY ، Dvorak ، إلخ).
  3. احصل على نتيجة المقارنة ، وقم بإنشاء حزم تقرير HID USB وإرسالها إلى الجهاز المحيطي USB.
  4. قم بتشغيل مؤشر LED على لوحة المفاتيح ، إذا تم الضغط على المفتاح ، قم بإيقاف تشغيله - إن لم يكن كذلك.

من main.cc :

static void scan_and_update() { scan_matrix.Scan(key_scans, row_count, column_count); keyboard.SendReport( key_pipeline.MapKeyScans(key_scans, key_count)); update_key_press_status(); } int main() { Init(); status_led.SetOk(true); while (true) { scan_and_update(); } } 

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

بعد العبث لفترة من الوقت ، ما زلت جعلت لوحة المفاتيح التي تحتوي على أربعة مفاتيح تعرف نفسها بشكل صحيح على أنها USB HID (جهاز واجهة بشرية) وتم نقل جميع النقرات بشكل صحيح إلى الكمبيوتر المحمول:



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



الدائرة وثنائي الفينيل متعدد الكلور


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



بعد تطوير الدائرة وتركيب منصات للمكونات ، تحتاج إلى صنع نموذج من لوحة الدوائر المطبوعة الحقيقية:



يمكن KiCAD تقديم لوحة المستقبل بشكل ثلاثي الأبعاد بشكل جميل:





هناك العديد من البرامج التعليمية KiCAD كبيرة. لقد بدأت مع سلسلة أفلام Getting to Blinkey 4.0 الممتازة من Chris Gammel ، حيث يشرح بالتفصيل جميع الخطوات المتعلقة بإنشاء دائرة رابط LED في KiCAD من البداية إلى النهاية.

طلب الكلور والمكونات


بعد أن وصلت إلى مستوى التصميم والتصميم في لوحات الدارات الكهربائية ، بدأت في وضع مجموعة من الطلبات:

  1. جميع المكونات من قائمة المواد : المفاتيح ، المصابيح ، الثنائيات ، ميكروكنترولر ، إلخ. عادةً ما أطلب هذه الأشياء على DigiKey .
  2. لوحة الدوائر نفسها. الكثير من الخدمات على استعداد لجعل لكم نموذجا أوليا غير مكلفة. لدي تجربة ممتازة مع OshPark و JLCPCB . بالنسبة لهذا المشروع ، اخترت JLCPCB بسبب سعر هذا الحجم ، وكذلك لأنها سمحت لي باختيار طلاء أزرق.
  3. جميع التفاصيل الأخرى: الأغطية والاشياء. بالنسبة لهذا المشروع ، ساعد صهرتي الليزر في قطع لوحات المفاتيح العلوية والسفلية من صفائح الأكريليك 1/4 بوصة. بالنسبة للأجزاء المتبقية ، يمكنك استخدام خدمات القطع بالليزر والطباعة ثلاثية الأبعاد عبر الإنترنت إذا لم يكن لديك وصول إلى الجهاز.

اليوم الذي وصلت فيه الحزمة هو الأفضل:





JLCPCB هي خدمة بأسعار معقولة جدا. كلف هذا التصميم مع تسليم DHL من الصين أقل من 30 دولارًا ، واستغرقت العملية برمتها من تنزيل الملفات وصول الطرود أكثر من أسبوع.

أخذ Shurin ملفات DXF من OpenSCAD وألقاها في أداة القطع بالليزر:



التجميع النهائي


بعد تلقي كل التفاصيل ، بدأت التجميع. تتمثل الخطوة الأولى في تجميع مكونات لوحة الدوائر: مكواة لحام للمكونات الإلكترونية الكبيرة ومحطة لحام لتركيب السطح للمكونات الصغيرة ، مثل متحكم STM32.

كان إجمالي وقت التجميع للوحة حوالي ثلاث ساعات - كان معظمها يعمل على لحام 70 من الثنائيات والمفاتيح.

أضفت رأسًا لتصحيح أخطاء JTAG ، قمت من خلاله بتوصيل JLINK Edu mini لبرامج متحكم دقيق باستخدام OpenOCD .

ثم حان الوقت للاختبار النهائي والتجميع النهائي:







قرر الابن أن هذا قطار عظيم لحيواناته:





ملخص


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

يتم نشر جميع ملفات المشاريع على GitHub ، بما في ذلك مصادر البرامج الثابتة ولوحات الدوائر وقائمة المواد ونماذج CAD.

شكرا للقراءة والاستمتاع الخارقة!

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


All Articles