جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
لقد قمت بنشر Instructable منذ فترة باستخدام Espruino Pico لصنع كمبيوتر منزلي:
يتطلب ذلك منك توصيل شاشة VGA عن طريق قطع كابل VGA ، ولكن بالنسبة لهذا Instructable ، أستخدم لوحة تسمى Pixl.js ، والتي تحتوي على شاشة LCD مدمجة. هذا يعني أن كل ما عليك توصيله هو عدد قليل من الأسلاك ولديك كمبيوتر صغير قابل للاستخدام بشكل صحيح ومنخفض الطاقة.
فماذا تحتاج؟
- أحد Espruino Pixl.js
- قطعة من البلاستيك أو الخشب لتكون بمثابة قاعدة
- لوح توصيل
- 4x4 KeyPads
- الكثير من الملصقات للمفاتيح
- 6 مجموعات من 8x ذكر-> ذكر أسلاك توصيل بنمط دوبونت (إجمالي 48 سلكًا) - مطابقة الشرائط متعددة الألوان تجعل الحياة أسهل كثيرًا
الخطوة 1: عمل لوحة المفاتيح
- قم بلصق 4 لوحات المفاتيح بجوار بعضها البعض على قاعدتك (فهي مثبتة في الخلف). قد ترغب في تقليم حوافها ، لكن احرص على عدم القص كثيرًا وإلا قد تقطع بعض العدسات اللاصقة.
- ضع لوح التجارب لأسفل في المنتصف - إنه لاصق للخلف أيضًا!
- قم بتقسيم سلك الطائر إلى 4 أطوال من 8 - حاول الاحتفاظ بالألوان كما هي في كل منها.
- قم بلصق الأسلاك في KeyPads ، مع التأكد من تطابق الألوان. اطوِ الأسلاك للخلف وألصقها في مؤخرة قاعدتك. قد ترغب في إضافة بعض الأقدام اللاصقة للحفاظ على الأسلاك من الانحناء بزاوية كبيرة جدًا.
- أضف الآن ملصقًا إلى كل زر في لوحة المفاتيح وقم بتسميته كما تريد لوحة المفاتيح. استخدم الصورة كمثال ، ولكن عند تحميل الكود الخاص بك ، يمكنك تغيير متغير "KEYMAP" إلى ما لديك.
الخطوة 2: الأسلاك
الآن أنت بحاجة إلى توصيل لوحة المفاتيح. يتم ترتيب كل لوحة مفاتيح 4x4 على شكل شبكة ، ونحن نقوم بتوصيل الأسلاك لهم كما لو كانوا هم أنفسهم في شبكة 2x2 - مما يجعل شبكة كبيرة من الأزرار 8x8.
سلك كما هو موضح في الصورة في 4 مجموعات من 4 أسلاك عبر اللوح (تحقق من ألوان الأسلاك في الصور) ، من اليسار إلى اليمين:
- KeyPad 1 أول 4 أسلاك -> المجموعة الأولى من 4 على اللوح -> D0 ، D1 ، D2 ، D3
- لوحة المفاتيح 1 الثانية 4 أسلاك -> المجموعة الثالثة من 4 على اللوح -> D8 ، D9 ، D10 ، D11
- KeyPad 2 أول 4 أسلاك -> المجموعة الأولى من 4 على اللوح -> D0 ، D1 ، D2 ، D3
- لوحة المفاتيح 2 الثانية 4 أسلاك -> المجموعة الرابعة المكونة من 4 على اللوح -> D12 ، D13 ، SDA ، SCL
- KeyPad 3 الأسلاك الأربعة الأولى -> المجموعة الثانية المكونة من 4 على اللوح -> D4 ، D5 ، D6 ، D7
- KeyPad 3 Second 4 wires -> المجموعة الثالثة المكونة من 4 على اللوح -> D8 ، D9 ، D10 ، D11
- KeyPad 4 الأسلاك الأربعة الأولى -> المجموعة الثانية المكونة من 4 على اللوح -> D4 ، D5 ، D6 ، D7
- KeyPad 4 Second 4 الأسلاك -> المجموعة الرابعة المكونة من 4 على اللوح -> D12 ، D13 ، SDA ، SCL
في الصورة لدينا 6 مجموعات من 8 أسلاك. أول 2 من لوحات المفاتيح 1 و 2 ، والثاني 2 يذهب إلى Pixl.js ، والثالث 2 من لوحات المفاتيح 4 و 3.
الخطوة الثالثة: البرمجيات
تأكد الآن من تحديث برنامج Pixl الثابت ، واتصل به باستخدام Espruino IDE ، وقم بتحميل الكود أدناه. افصل IDE وانتهيت!
// Keyboard wiringvar KEYROW = [D7، D6، D5، D4، D3، D2، D1، D0] ؛ var KEYCOL = [A5، A4، D13، D12، D11، D10، D9، D8]؛
// خرائط المفاتيح للوحة المفاتيح
var KEYMAPLOWER = ["` 1234567890 - = / x08 "،" / tqwertyuiop n "،" / 0asdfghjkl؛ '# / x84 / x82 / x85 "،" / x01 / zxcvbnm،./ / x80 / x83 / x81 "،] ؛ var KEYMAPUPPER = ["¬! \" £ $٪ ^ & * () _ + / x08 "،" / tQWERTYUIOP {} n "،" / 0ASDFGHJKL: @ ~ / x84 / x82 / x85 "،" / x01 | ZXCVBNM؟ / x80 / x83 / x81 "،] ؛
/ * إذا كان الحرف في خريطة المفاتيح> = 128 ،
اطرح 128 وابحث في هذه المصفوفة عن رموز المفاتيح متعددة الأحرف * / var KEYEXTRA = [String.fromCharCode (27، 91، 68)، // 0x80 left String.fromCharCode (27، 91، 67)، // 0x81 right String.fromCharCode (27، 91، 65)، // 0x82 up String.fromCharCode (27، 91، 66)، // 0x83 down String.fromCharCode (27، 91، 53، 126)، // 0x84 page up String.fromCharCode (27، 91، 54، 126)، // 0x85 page down] ؛ // حالة التحول var hasShift = false ؛ وظيفة setShift (s) {hasShift = s ؛ // رسم مؤشر التحول على الشاشة إذا (hasShift) {g.setColor (1) ؛ ز.ملء تصحيح (105 ، 0 ، 128 ، 6) ؛ g.setColor (0) ؛ g.drawString ("SHIFT"، 107، 1) ؛ g.setColor (1) ؛ } else {g.setColor (0) ؛ ز.ملء تصحيح (105 ، 0 ، 128 ، 6) ؛ g.setColor (1) ؛ } g.flip () ؛ }
// تحويل مفتاح فعلي إلى سلسلة من الأحرف
// وأرسل إلى Loopback (حيث تكون وحدة التحكم) function handleKeyPress (e) {var kx = e >> 3 ؛ var ky = e & 7 ؛ إذا (ky> 3) {// تحول إلى صف طويل kx + = 8 ؛ ky- = 4 ؛ } var key = hasShift؟ KEYMAPUPPER [ky] [kx]: KEYMAPLOWER [ky] [kx]؛ إذا (مفتاح == "\ x01") {setShift (! hasShift) ؛ } else {setShift (false) ؛ if (key && key.length) {if (key.charCodeAt (0)> 127) key = KEYEXTRA [key.charCodeAt (0) -128] ؛ Terminal.inject (مفتاح) ؛ }}}
// إعداد لوحة المفاتيح
تتطلب ("KeyPad"). connect (KEYROW ، KEYCOL ، handleKeyPress) ؛
الخطوة 4: استخدامه
إنه يعمل الآن:
- يمكن للوحة المفاتيح الكشف عن ضغطة واحدة فقط في كل مرة ، لذلك يقوم مفتاح Shift بتبديل الأحرف الكبيرة (مع وجود مؤشر في أعلى اليمين) ، وكتابة الحرف يعود إلى الأحرف الصغيرة. الضغط باستمرار على مفتاح Shift ولن يعمل مفتاح آخر.
- يمكن أن تكون الكتابة مؤلمة للغاية ، لذا استخدم مفتاح Tab (على اليسار) قدر الإمكان لملء الكلمات تلقائيًا!
- تتوفر الرسومات الخاصة بالشاشة عبر طرق متغير g - على سبيل المثال ، g.fillRect (20 ، 20 ، 40 ، 40) أو g.clear ().
- يتم استخدام الكثير من IO للوحة المفاتيح ، ولكن لا يزال لديك دبابيس A0 و A1 و A2 و A3 يمكنك استخدامها لتوصيل الأجهزة الخارجية.
- إعادة تعيين () ستعيد تعيين كل شيء - بما في ذلك الرمز الخاص بك للتعامل مع لوحة المفاتيح. لتجنب ذلك ، قم بتشغيل حفظ عند الإرسال ، حتى بعد إعادة التعيين في خيارات اتصالات Web IDE وتحميله مرة أخرى.
- جهاز الكمبيوتر الخاص بك موفر للطاقة بشكل مدهش - لا يزال بإمكانك توقع عمر بطارية يقارب 20 يومًا - دائمًا قيد التشغيل - من بطارية CR2032 واحدة!