فهرست مطالب:

آداپتور آردوینو PS/2 به USB: 7 مرحله (همراه با تصاویر)
آداپتور آردوینو PS/2 به USB: 7 مرحله (همراه با تصاویر)

تصویری: آداپتور آردوینو PS/2 به USB: 7 مرحله (همراه با تصاویر)

تصویری: آداپتور آردوینو PS/2 به USB: 7 مرحله (همراه با تصاویر)
تصویری: SKR Pro V1.1 - A4988 stepper driver install 2024, نوامبر
Anonim
آداپتور آردوینو PS/2 به USB
آداپتور آردوینو PS/2 به USB
آداپتور آردوینو PS/2 به USB
آداپتور آردوینو 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 خود را با این کار کنار بگذارید ، همیشه برگشت پذیر است.

همچنین اگر به طور تصادفی یک آردوینو دارید که از قبل دارای قابلیت USB-HID است (Arduino Pro Micro یا Leonardo و غیره در گوگل جستجو کنید) می توانید فراموش کنید که این دستورالعمل وجود داشته است مستقیماً به اینجا بروید تا خود را از دنیای مشکل نجات دهید. شوخی می کنم!

تدارکات

  • سخت افزار

    • Arduino UNO یا Mega
    • صفحه کلید PS/2
    • به صورت اختیاری یک آردوینو اضافی یا هر نوع برنامه نویس USB (USBasp و غیره) ممکن است مفید باشد.
  • نرم افزار

    • Atmel FLIP
    • PS2Key کتابخانه پیشرفته برای Arduino IDE

مرحله 1: سیم کشی و راه اندازی

سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی
سیم کشی و راه اندازی

بسته به شرایط می توانید یا یک بریکت برد پیدا کنید یا یک درگاه قدیمی را از مادربرد نجات دهید (دومین تلاش من) یا اگر احساس بدخلقی می کنید حتی می توانید جک بنفش را به طور کلی بریده و 4 سیم (اولین تلاش من) را در معرض دید قرار دهید. آنها را به UNO وصل کنید

صفحه کلید _ آردوینو

+5V (VCC) _+5V

GROUND_GND

ساعت _ پین 2 **

اطلاعات _ PIN3*

*می توانید پین DATA را به آنچه می خواهید تغییر دهید ، اما به یاد داشته باشید که طرح را به روز کنید.

** CLOCK باید به پین وقفه در Arduino متصل شود که فقط می تواند PIN 2 یا 3 باشد (به یاد داشته باشید که طرح را به روز کنید) در UNO. برای اطلاعات بیشتر و پیکربندی های مختلف هیئت مدیره می توانید بخش نظرات نمونه های کتابخانه PS2KeyAdvanced را بررسی کنید.

مرحله 2: آزمایش صفحه کلید

قبل از اینکه دست به عرشه بزنید ، ابتدا مطمئن شوید همه چیز روی صفحه کلید و کتابخانه کار می کند.

در اینجا من یک نسخه اصلاح شده از SimpleTest.ino را از نمونه های کتابخانه PS2KeyAdvanced با ساعت و پین های داده به روز شده و همچنین نمایشی "make" و "break" ضمیمه کرده ام. در اینجا توضیحی برای خروجی ارائه شده است.

  • این سیستم اسکن کد "ساختن" و "شکستن" و "کد" که اسکن کد جدا شده (c & 0xFF) کلیدهای فشار کلید یا کلید است ، نقش مهمی در تبدیل PS/2 به USB دارد و توصیه می کنم مطالعه کنید 2 مثال دیگر که به همراه کتابخانه ارائه می شود تا درک بهتری داشته باشید اگر قصد دارید طرح نهایی را بهبود بخشیده یا تغییر دهید (تغییر مجدد کلیدها در چیدمان های مختلف). همچنین می توانید با باز کردن فایل های "PS2KeyAdvanced.h" یا "PS2KeyCode.h" از "\ Documents / Arduino / libraries / PS2KeyAdvanced / src \" یک لیست کامل از اسکنکدهای PS/2 را از کتابخانه دریافت کنید.
  • "بیت های وضعیت" به کلیدهای اصلاح کننده (Ctrl ، Alt ، Windows ، Shift/Caps) اشاره می کند و خواهید دید که با هر کلید اصلاح کننده اضافی ، این مقدار تغییر می کند در حالی که "کد" اصلی کلید عادی (بدون تغییر) بدون تغییر است. اما در طرح نهایی من این روش را نادیده گرفتم و این کلیدهای اصلاح کننده را به عنوان کلیدهای ساده فشار دادم (خواهید دید که این کلیدهای اصلاح کننده دارای اسکن کد "make" و "break" مستقل از کلیدهای معمولی هستند ، خواه چند کلید را فشار دهید یا نه.) زیرا کار را با پروتکل USB-HID آسان می کند.

مرحله 3: پیش نمایش تبدیل PS/2 به USB

قبل از بروزرسانی Atmega8U2 یا 16U2 (UNO Rev3) برای شناسایی Arduino خود به عنوان یک صفحه کلید USB ، باید مطمئن شویم که همه موارد تبدیل به درستی کار می کند و طرح نهایی نهایی بارگذاری شده است ، در غیر این صورت ادامه نوشتن بیش از حد درد بزرگی خواهد بود. سیستم عامل را بارها و بارها بین فایلهای شش ضلعی اصلی و USB صفحه کلید قرار دهید تا بتوانید طرح صحیح را بارگذاری کنید. اگر برنامه نویس خارجی مانند USBasp یا Arduino دیگری برای استفاده به عنوان ISP ندارید ، این امر به ویژه صادق می شود. بنابراین در اینجا ما یک نسخه "DEBUG" از طرح نهایی با خروجی قابل خواندن برای انسان (از طریق مانیتور سریال) برای آزمایش موارد بارگذاری می کنیم.

وقتی همه کلیدها آزاد می شوند ، خروجی ای که مشاهده می کنید به این شکل قالب بندی می شود ،

00 00 00 00 00 00 00 00

در اینجا یک توضیح اساسی برای خروجی مورد انتظار وجود دارد ،

برای هر کلید اصلاح کننده چندگانه جدید باید یک خط جدید با مقادیر مختلف برای 'xx' دریافت کنید. در نهایت وقتی همه کلیدهای اصلاح کننده را رها می کنید 'xx' باید 00 شود

xx 00 00 00 00 00 00 00 00

برای هر چند کلید معمولی جدید (برای مثال ما کلید فرضی a ، key 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 به این مورد به عنوان "make" اشاره می کند) ، 6 بایت آخر آرایه را که برای فشارهای معمولی استفاده می شود ، دور می زند و اولین مورد را پر می کند. بایت خالی با 'HID scancode' مربوطه (مانند شکل 2 نشان داده شده است. همچنین می توانید یک لیست کامل از PDF پیوست شده) برای 'Scancode PS/2' دریافت شده پیدا کنید. و سرانجام هنگامی که کلید مربوطه آزاد می شود (پروتکل PS/2 به این مورد به عنوان "break" اشاره می کند) کد از طریق آرایه بایت فعلی می چرخد و فقط بایت مربوطه را پاک می کند.

اگر تا اینجا را دنبال کرده اید و همچنین اگر صفحه ویکی را بخوانید می بینید که در این روش کمی مشکل وجود دارد ، به طور معمول وقتی کلید آزاد می شود ، در پروتکل HID بایت های باقی مانده دوباره مرتب می شوند تا بایت های خالی از بین بروند. بین بایت های خالی باقی مانده اما بنا به دلایلی صرف نظر از این که چند روش را امتحان کردم ، نتوانستم به طور دلخواه کار کنم بدون اینکه بطور ناخواسته بایت های ناخواسته را برای کلیدهای فشرده نیز پاک کنم. اگر می توانید این را برای کارکردن بهبود بخشید ، لطفاً نظر دهید. اگرچه در پایان روز این مشکل بر عملکرد صفحه کلید تأثیر نمی گذارد تا زمانی که آردوینو هنوز هر کلید فشرده شده را بدون توجه به ترتیب فشرده شده آنها ثبت می کند (که در کاربردهای عملی تاثیری ندارد).

مرحله 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 را انتخاب کنید و در نهایت قبل از انتخاب اجرا ، فایل شش ضلعی صحیح را بارگذاری کنید.
  3. اگر با خطای درایور مواجه شدید ، به مدیر دستگاه Windows رفته و درایور ناشناخته را در فهرست راهنمای نصب FLIP '\ Program Files (x86) Atmel \' جستجو کنید.
  4. اگر هنگام به روزرسانی سیستم عامل از FLIP چندین بار با خطا مواجه شدید ، FLIP را ببندید و "Reset Preferences" را از "Start menu / FLIP \" اجرا کنید و سپس FLIP را راه اندازی مجدد کرده و مراحل پیکربندی را قبل از دوباره امتحان انجام دهید ، این معمولاً برای من کار می کند.
  5. اگر می خواهید Arduino را به حالت اولیه برگردانید ، کافیست راهنمای arduino.cc فوق را بدون استفاده از این فایل هگز در نامه دنبال کنید.

مرحله 7: لذت ببرید ……

لذت بردن……
لذت بردن……

اکنون از صفحه کلید PS/2 تازه تبدیل شده خود به USB لذت ببرید…. P. S. این دستورالعمل به طور کامل از صفحه کلید PS/2 خارجی متصل به لپ تاپ من از طریق آردوینو نوشته شده است:)

توصیه شده: