فهرست مطالب:

صفحه کلید قابل برنامه ریزی: 5 مرحله (همراه با تصاویر)
صفحه کلید قابل برنامه ریزی: 5 مرحله (همراه با تصاویر)

تصویری: صفحه کلید قابل برنامه ریزی: 5 مرحله (همراه با تصاویر)

تصویری: صفحه کلید قابل برنامه ریزی: 5 مرحله (همراه با تصاویر)
تصویری: ویدیوی خوابیدن مردان اطلاعاتی رژیم در بین زنان زندانی 2024, نوامبر
Anonim
صفحه کلید قابل برنامه ریزی
صفحه کلید قابل برنامه ریزی
صفحه کلید قابل برنامه ریزی
صفحه کلید قابل برنامه ریزی

در این پروژه نشان خواهم داد که چگونه می توان صفحه کلید نسبتاً ساده و ارزان برنامه نویسی را برای نگاشت پرکاربردترین میانبرهای صفحه کلید ، برنامه ها و موارد دیگر ایجاد کرد.

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

تدارکات

  • رمزگذار روتاری.
  • تعداد زیادی دکمه (بسته به نیاز شما) دارد.
  • Arduino Pro Micro ، Arduino Leonardo یا هر برد دیگر با Atmega32U4 MCU.
  • سیم ، لحیم کاری ، لحیم کاری ، و غیره
  • (اختیاری) مقداری پایه سنگین برای جلوگیری از لغزش صفحه کلید ، من از هارد 3.5 اینچی قدیمی استفاده می کنم

مرحله 1: مدار الکتریکی

مدار الکتریکی
مدار الکتریکی

من استفاده از برد Arduino Pro Micro dev با Atmega32U4 MCU را انتخاب کردم که دارای 18 پین دیجیتال قابل استفاده است.

پین های اتصال دکمه های فشار و رمزگذار چرخشی بدون نظم خاصی در نظر گرفته شد ، اما به برخی موارد باید توجه کرد:

  1. همه پین های دارای قابلیت خواندن دیجیتال دارای کشش داخلی هستند که به شما امکان می دهد مقاومت های کششی خارجی را کاهش دهید. البته کد باید متناسب با آن به روز شود ، زیرا انتظار می رود هنگام فشار دادن دکمه ها وضعیت پین از پایین به بالا برود.
  2. در مثال کتابخانه encoder.h اشاره شد که بهترین عملکرد رمزگذار زمانی حاصل می شود که هر دو پین متصل به MCU پین های توانمند را قطع کنند. اکثر پین های آنالوگ Atmega32U4 قابلیت وقفه ندارند.
  3. مقادیر دقیق مقاومت کششی اهمیت چندانی ندارد ، هر چیزی از 1 کیلو وات تا 100 کیلو وات به خوبی کار می کند. مقادیر مقاومت بزرگتر باعث اتلاف قدرت کمتر می شود اما پاسخ پین را به تغییرات ولتاژ کندتر می کند. فقط هر مقدار مقاومت را که بیشترین مقدار را دارید انتخاب کنید.
  4. رمزگذارهای مکانیکی به دلیل فرسودگی و تکان خوردن ، قابل اطمینان ترین چیزها نیستند. به همین دلیل است که یک راه حل خوب رفع نیاز است. مقادیر خازن انتخاب شده و زمان تأخیر در کد احتمالاً بهترین نتایج را برای شما ارائه نمی دهد. بنابراین کمی آزمایش لازم است. یا به چیزی مانند رمزگذار نوری بروید ، اما قیمت آن به طور قابل توجهی بالاتر است.

مرحله 2: مونتاژ

مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ

من می خواستم صفحه کلید را تا حد ممکن تمیز کنم ، بنابراین تمام اجزای پشت تخته نمونه را لحیم کردم. من تصور کردم که اگر صفحه کلید در زاویه کوچک بالا استفاده شود ارگونومیک تر خواهد بود. به همین دلیل من Arduino Pro Micro را روی برد جداگانه لحیم کردم و تمام پین های دیجیتال را با سیم به دکمه های فشاری متصل کردم. اتصال کابل USB از این طریق راحت تر است.

من HDD قدیمی 3.5 اینچی را به عنوان پایه ای برای صفحه کلید استفاده کردم ، بسیار سنگین است و مانع از لغزش تخته روی میز هنگام کار می شود (پد های ضد لغزش نیز کمک می کند). همچنین دارای سوراخ های پیچ 3 میلیمتری مناسب است که در آن منافذ برنجی را پیچ کرده ام و تخته را در زاویه کمی ثابت کنید.

مرحله 3: برنامه نویسی

کد با Arduino IDE نوشته شده است. شما باید 2 کتابخانه را نصب کنید:

  • رمزگذار پل استوفگرگن
  • صفحه کلید آردوینو

برای کامپایل کردن Atmega32U4 شما همچنین باید فایل برد Arduino Pro Micro را نصب کنید ، Sparkfun آموزش فوق العاده ای برای انجام این کار دارد.

نکته ای که پیش از این باید به آن توجه کنید این است که مراقب باشید "کلیدهای فشرده شده" در کد شما باقی نماند. این برای من اتفاق افتاد و MCU مرتباً در حال اسپم کردن برخی از کلیدهای ترکیبی کلید بود. تنها راهی که می دانم چگونه این مشکل را برطرف کنم این است که دوباره boot-loader را در MCU بسوزانم. اگر شما هم مثل من به پایان می رسید ، می توانید از این راهنما برای رایت boot-loader پیروی کنید ، برای استفاده به عنوان برنامه نویس به یک برد arduino دیگر نیاز دارید.

در حلقه اصلی MCU ابتدا هر حالت فشار دکمه را می خواند ، اگر تغییر حالت از LOW به HIGH تشخیص داده شود ، تابع keyboard_shortcut (i) اجرا می شود. متغیر i یک شناسه دکمه فشرده است ، کل دکمه فشاری با ALL_BUTTONS (در مورد من 15) تعریف می شود. هنگامی که اجرا می شود ، keyboard_shortcut (i) CTRL+SHIFT و سپس نامه ای را که به شناسه دکمه نگاشته می شود ارسال می کند: 1-> A ، 2-> B ، 3-> C و غیره برخی از ترکیبات مانند CTRL+SHIFT+N حذف می شوند زیرا به طور پیش فرض در Windows10 استفاده می شود (در این مورد برای ایجاد یک پوشه جدید). در اینجا لیستی از میانبرهای پیش فرض ویندوز آمده است. پس از تأخیر کوتاه ، MCU سیگنال را برای رهاسازی همه کلیدها ارسال می کند و عملکرد به حلقه اصلی باز می گردد.

پس از بررسی همه دکمه ها ، MCU بررسی می کند که آیا موقعیت رمزگذار چرخشی تغییر کرده است یا خیر و در صورت تغییر ، keyboard_shortcut (i) با شناسه منحصر به فرد اجرا می شود.

دکمه رمزگذار را فشار دهید متغیر بولی رمزگذار را برعکس می کند. هنگامی که رمزگذار چرخانده می شود ، بسته به جهت چرخش و مقدار encoderButtonFlag ، میانبر متفاوتی به رایانه ارسال می شود.

اگر debugFlag را روی 1 تنظیم کنید پیام های اشکال زدایی از طریق UART به مانیتور سریال ارسال می شوند.

مرحله 4: پیکربندی میانبرها

پیکربندی میانبرها
پیکربندی میانبرها
پیکربندی میانبرها
پیکربندی میانبرها

کاری که هر میانبر انجام می دهد به شما بستگی دارد ، همه ما ترجیحات متفاوتی داریم. من میانبرهایی را که برای خودم پیکربندی کرده ام به عنوان مثال ارائه می کنم. من از Linux Mint 19.3 با مدیر دسکتاپ xfce4 استفاده می کنم ، بنابراین نمونه های من عمدتا شامل اسکریپت های bash هستند ، اما برخی از نمونه های اساسی را برای Windows10 نیز نشان خواهم داد.

در تصویر اول می توانید ببینید کدام اسکریپت ها را روی کدام میانبرها ترسیم کرده ام. این کار از منوی تنظیمات xfce انجام می شود ، روند این کار مستقیماً پیش می رود. می توانید این اسکریپت ها را در مخزن GitHub من پیدا کنید

6 دکمه کوچکتر در پایین برای شروع برنامه هایی مانند مرورگر وب یا مدیر فایل است ، برخی از این برنامه ها از اسکریپت start_only_one_app.sh نامیده می شوند ، که اسامی همه برنامه های شروع شده را نشان می دهد و برنامه ای را که می خواهید شروع کنید جستجو می کند. اگر پنجره برنامه از قبل وجود داشته باشد ، متمرکز می شود ، در غیر این صورت نمونه جدیدی از برنامه شروع می شود.

اسکریپت های دیگر:

  • 2nd_display_control.sh - مانیتور دوم را روشن/خاموش می کند.
  • moon_lamp.sh - لامپ ماه من را روشن/خاموش می کند.
  • pc_load.sh - با استفاده از CPU و GPU و درجه حرارت ، حباب اعلان ایجاد می کند.
  • shutdown.sh - خاموش کردن رایانه را با 1 دقیقه تأخیر آغاز می کند و حباب اعلاناتی ایجاد می کند که زمان باقی مانده در آن نمایش داده می شود.
  • spec_vpn.sh - به سرور OpenVPN خاص متصل می شود یا اگر اتصال از قبل وجود داشته باشد ، ارتباط با سرور قطع می شود.
  • shortcut_controll.sh - فرمان (بعلاوه ، منهای ، برگه ، بستن) را به عنوان آرگومان می گیرد ، تشخیص می دهد که پنجره ای که اکنون روی آن متمرکز شده است و در صورت یافتن برنامه خاصی فعال ، عملیات کنترل را انجام می دهد. به عنوان مثال ، برای باز کردن برگه جدید در ویرایشگر متن برجسته ، میانبر پیش فرض "CTRL+N" و در ترمینال xfce - "CTRL+T" است ، بنابراین این اسکریپت اجازه می دهد تا با یک دکمه مشابه ، برگه جدید را در ترمینال متعالی و باز کنید.

اولین عملکرد رمزگذار چرخشی کنترل صدا ، عملکرد دوم کنترل زوم فعال پنجره از طریق shortcut_controll.sh است.

برای سیستم عامل ویندوز ، می توانید میانبرهای برنامه ها را از طریق پنجره ویژگی های برنامه مطابق تصویر دوم ترسیم کنید. برای هر چیز دیگری که می خواهید از AutoHotkey استفاده کنید. این زبان برنامه نویسی خودکار برای ویندوز است.

چند مثال ساده از نحو AHK:

؛ کنترل صدا

^+t:: ارسال {Volume_Up}

برگشت

^+v:: ارسال {Volume_Down}

برگشت

؛ بستن پنجره فعال

^+h:: WinGetTitle ، عنوان ، A

PostMessage، 0x112، 0xF060،،،٪ عنوان٪

برگشت

؛ خاموش کردن کامپیوتر

^+b:: shutdown /s را اجرا کنید

مرحله 5: پیشرفت ها

پیشرفت ها
پیشرفت ها

برخی از بهبودهای احتمالی:

  • دکمه های فشاری با کیفیت بهتر
  • نمونه اولیه PCB با فشردن دکمه ها بسیار خم می شود.
  • بسته به عملکردی که رمزگذار چرخشی روی آن تنظیم شده است ، نور RGB تغییر رنگ می دهد.
  • دکمه های بیشتر (از IC IO expander استفاده کنید).
  • رمزگذار چرخشی بهتر (یا راه حل بهتر حذف).

توصیه شده: