جدول المحتويات:

محول Arduino PS / 2 إلى USB: 7 خطوات (مع صور)
محول Arduino PS / 2 إلى USB: 7 خطوات (مع صور)

فيديو: محول Arduino PS / 2 إلى USB: 7 خطوات (مع صور)

فيديو: محول Arduino PS / 2 إلى USB: 7 خطوات (مع صور)
فيديو: USB / PS2⌨️Keypad To Speech📣 (Voice) Using Arduino - Talkie 2024, يوليو
Anonim
محول Arduino PS / 2 إلى USB
محول Arduino PS / 2 إلى USB
محول Arduino PS / 2 إلى USB
محول Arduino PS / 2 إلى USB

هل أردت يومًا استخدام لوحة مفاتيح PS / 2 القديمة مع الكمبيوتر المحمول أو الكمبيوتر المكتبي الجديد واكتشفت أنه ليس لديهم منافذ PS / 2 بعد الآن؟ ثم بدلاً من الذهاب لشراء محول PS / 2 إلى USB رخيص مثل أي شخص عادي ، أردت استخدام Arduino كمحول PS / 2 إلى USB. ثم لقد اتيتم الى المكان الصحيح:)

تحذير عادل قبل أن ندخل فيه. عندما تستخدم UNO / Mega كجهاز USB-HID (لا يقتصر على لوحة المفاتيح ، بل يمكن أن يكون ماوسًا أو عصا تحكم وما إلى ذلك) ، فستفقد وظائفه مؤقتًا مثل Arduino. أعني بذلك أنه لا يمكنك استخدام الاتصالات التسلسلية ولا يمكنك إعادة برمجتها عبر USB. هذا لأننا سنبالغ في كتابة البرامج الثابتة على شريحة واجهة USB (رجل صغير بالقرب من منفذ USB Atmega8U2 و 16U2 اعتمادًا على المراجعة). ولكن لا تقلق ، لا يمكنك فعلاً أن تقوم بعمل UNO / Mega الخاص بك من خلال القيام بذلك ، فهو دائمًا قابل للعكس.

وأيضًا إذا كان لديك Arduino يحتوي بالفعل على إمكانية USB-HID (Arduino Pro Micro أو Leonardo ، إلخ ، قم بإجراء بحث على google) ، يمكنك أن تنسى هذه التعليمات الموجودة على الإطلاق ، اذهب مباشرة إلى هنا لإنقاذ نفسك من عالم مليء بالمشاكل ، فقط مزاح!

اللوازم

  • المعدات

    • اردوينو أونو أو ميجا
    • لوحة مفاتيح PS / 2
    • اختياريًا ، قد يكون من السهل استخدام Arduino إضافي أو أي نوع من مبرمج USB (USBasp ، إلخ).
  • برمجة

    • اتميل فليب
    • مكتبة PS2KeyAdvanced لـ Arduino IDE

الخطوة 1: الأسلاك والإعداد

الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد
الأسلاك والإعداد

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

لوحة المفاتيح _ أردوينو

+ 5 فولت (VCC) _ + 5 فولت

الأرض

الساعة 2 دبوس **

البيانات _ PIN3 *

* يمكنك تغيير دبوس البيانات إلى أي وقت تريده ولكن تذكر تحديث الرسم.

** يجب توصيل CLOCK بدبوس المقاطعة على Arduino والذي يمكن أن يكون إما PIN 2 أو 3 فقط (تذكر تحديث الرسم التخطيطي) على UNO. لمزيد من المعلومات وتكوينات اللوحة المختلفة ، يمكنك التحقق من قسم التعليقات في أمثلة مكتبة PS2KeyAdvanced.

الخطوة الثانية: اختبار لوحة المفاتيح

قبل أن تبدأ في العمل بشكل عملي ، تأكد أولاً من أن كل شيء يعمل على لوحة المفاتيح والمكتبة.

لقد قمت هنا بإرفاق نسخة معدلة من SimpleTest.ino من أمثلة مكتبة PS2KeyAdvanced مع دبابيس على مدار الساعة والبيانات المحدثة وأيضًا تمثيل "make" و "break". هنا بعض الشرح للمخرجات.

  • يلعب نظام "make" و "break" scancode و "الشفرة" وهو المسح الضوئي المعزول (c & 0xFF) لأي من الضغط على المفتاح أو تحرير المفتاح دورًا مهمًا في تحويل PS / 2 إلى USB ، وأوصيك بالدراسة المثالان الآخران اللذان يأتيان مع المكتبة للحصول على فهم أفضل إذا كنت تخطط لتحسين أو تغيير (إعادة تعيين مفاتيح لتخطيطات مختلفة) الرسم النهائي. كما يمكنك الحصول على قائمة كاملة برموز PS / 2 من المكتبة عن طريق فتح ملفات "PS2KeyAdvanced.h" أو "PS2KeyCode.h" من "Documents / Arduino / libraries / PS2KeyAdvanced / src \"
  • تشير "بتات الحالة" إلى مفاتيح التعديل (Ctrl ، Alt ، Windows ، Shift / Caps) وستلاحظ أنه مع كل مفتاح تعديل إضافي ، تتغير هذه القيمة بينما "الرمز" الرئيسي للمفتاح العادي (غير المعدل) لم يتغير. ولكن في الرسم النهائي ، تجاهلت هذه الطريقة وقمت بتطبيق مفاتيح التعديل هذه كضغطات بسيطة على المفاتيح (ستلاحظ أن مفاتيح التعديل هذه تحتوي أيضًا على رمز scancode "make" و "break" مستقل عن المفاتيح العادية سواء تم الضغط على مفاتيح متعددة أم لا.) لأنه يجعل الأمور أسهل مع بروتوكول USB-HID.

الخطوة 3: PS / 2 to USB Conversion Preview

قبل تحديث Atmega8U2 أو 16U2 (UNO Rev3) لتحديد Arduino لدينا كلوحة مفاتيح USB ، يجب أن نتأكد من أن جميع عناصر التحويل تعمل بشكل صحيح ويتم تحميل الرسم النهائي النهائي وإلا فسيكون من الصعب الاستمرار في الكتابة فوق البرامج الثابتة مرارًا وتكرارًا بين الملفات الأصلية وملفات لوحة مفاتيح USB السداسية حتى تتمكن من تحميل المخطط الصحيح. يصبح هذا صحيحًا بشكل خاص إذا لم يكن لديك أي مبرمج خارجي مثل USBasp أو Arduino آخر لاستخدامه كمزود خدمة الإنترنت. لذلك سنقوم هنا بتحميل نسخة "DEBUG" من المخطط النهائي بإخراج يمكن قراءته من قبل الإنسان (من خلال الشاشة التسلسلية) لاختبار الأشياء.

سيتم تنسيق الإخراج الذي تراه على هذا النحو عند تحرير كل مفتاح ،

00 00 00 00 00 00 00 00

فيما يلي شرح أساسي للمخرجات المتوقعة ،

لكل ضغط مفتاح تعديل متعدد جديد ، يجب أن تحصل على سطر جديد بقيم مختلفة لـ "xx". أخيرًا عند تحرير جميع مفاتيح التعديل ، يجب أن يصبح "xx" 00

xx 00 00 00 00 00 00 00

لكل ضغطات مفاتيح عادية متعددة جديدة (على سبيل المثال ، سنضغط على المفتاح الافتراضي a والمفتاح b والمفتاح c بقيم "xx" و "yy" و "zz" بهذا الترتيب) يجب أن تحصل على مستمر (ليس إلزاميًا) أسطر جديدة مثل هذا ،

00 00 xx yy zz 00 00 00

عند تحرير المفتاح b فقط ، يجب أن يتغير الإخراج إلى ،

00 00 xx 00 zz 00 00 00

وإذا ضغطت على مفتاح جديد d بقيمة "nn" دون تحرير المفتاح a أو المفتاح b الذي يجب أن يتغير الإخراج إليه ،

00 00 xx nn zz 00 00 00

وأخيرًا نعود إلى هذا عندما يتم تحرير كل مفتاح ،

00 00 00 00 00 00 00 00

وأخيرًا ، إذا ضغطت على مفتاح Caps Lock أو Num Lock أو Scroll Lock ، فيجب أن تحصل على شيء مثل هذا مع عدة أسطر في نفس الوقت ،

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

إذا حدث كل شيء هنا فأنت ذهبي للمتابعة!

الخطوة 4: الشرح الفني

شرح تقني
شرح تقني
شرح تقني
شرح تقني

إذا كنت تحب يمكنك تخطي هذه الخطوة. هذا مجرد تفسير للمخرجات السابقة. تم تنسيق صفيف الإخراج 8 بايت الذي رأيته وفقًا للشكل أعلاه 1 يمكنك معرفة المزيد حول هذا وكذلك كيفية كتابة بايت حالة مفاتيح التعديل من هذا الويكي حول USB-HID. ما يفعله الكود الأساسي هو في كل مرة يتم فيها الضغط على مفتاح جديد (يشير بروتوكول PS / 2 إلى هذا على أنه "تكوين") يتنقل عبر آخر 6 بايت من المصفوفة التي تُستخدم لضغطات المفاتيح العادية ، ثم املأ الأول البايت الفارغ الذي يعثر عليه مع "شفرة HID scancode" ذات الصلة (كما هو موضح في الشكل 2 ، كما يمكنك العثور على قائمة كاملة من ملف PDF المرفق) لـ "scancode PS / 2" المستلم. وأخيرًا ، عندما يتم تحرير المفتاح ذي الصلة (يشير بروتوكول PS / 2 إلى هذا على أنه "فاصل") ، فإن الكود سوف يتنقل عبر صفيف البايت الحالي ويمسح فقط البايت ذي الصلة.

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

الخطوة 5: تحميل الرسم النهائي

لذا قبل أن تقوم أخيرًا بتحديث البرنامج الثابت لـ Atmega8U2 أو 16U2 (UNO Rev3) لتحديد Arduino لدينا كلوحة مفاتيح USB ، يجب علينا تحميل Final Sketch. بعد تحميل هذا ، إذا انتقلت إلى الشاشة التسلسلية ، فسترى أنها تطبع القمامة مع الضغط على كل مفتاح جديد ، وهذا فأل حسن بأن كل شيء يعمل على النحو المنشود ويمكننا المتابعة إلى الخطوة النهائية. ياي!!!

الخطوة 6: تحديث البرنامج الثابت

أخيرًا ، يمكنك تحديث البرنامج الثابت الخاص بـ Arduino لتسجيله كلوحة مفاتيح USB. لهذا لن أخوض في الكثير من التفاصيل لأنها ستجعل هذه التعليمات طويلة جدًا.

  1. اتبع هذا الدليل من arduino.cc حول "تحديث Atmega8U2 و 16U2 على Uno أو Mega2560 باستخدام DFU" ولكن بدلاً من استخدام Arduino-usbserial-uno.hex ، استخدم "Arduino-keyboard-0.3.hex" المرفقة
  2. في FLIP ، تذكر تحديد الجهاز المستهدف كـ Atmega8U2 أو 16U2 اعتمادًا على Arduino ، ومن تحديد وسيط الاتصال ، اختر USB وأخيراً قم بتحميل ملف hex الصحيح قبل تحديد التشغيل.
  3. إذا واجهت خطأ في برنامج التشغيل ، فانتقل إلى windows device manager وحدد البحث عن برنامج التشغيل غير المعروف داخل دليل التثبيت لـ FLIP '\ Program Files (x86) Atmel \'
  4. إذا واجهت أخطاء أثناء تحديث البرنامج الثابت من FLIP عدة مرات ، فأغلق FLIP وشغل "إعادة تعيين التفضيلات" من "قائمة ابدأ / FLIP \" ثم أعد تشغيل FLIP ونفذ خطوات التكوين قبل المحاولة مرة أخرى ، وعادة ما يعمل هذا بالنسبة لي.
  5. إذا كنت ترغب في استعادة Arduino إلى حالته الأصلية ، فما عليك سوى اتباع دليل arduino.cc أعلاه للحرف دون استخدام هذا الملف السداسي.

الخطوة 7: استمتع ……

يتمتع……
يتمتع……

استمتع الآن بلوحة مفاتيح PS / 2 إلى USB المحولة حديثًا…. ملاحظة. تمت كتابة Instructable بالكامل من لوحة مفاتيح PS / 2 خارجية متصلة بجهاز الكمبيوتر المحمول الخاص بي من خلال Arduino:)

موصى به: