اصنع أزرار الاختصار المخصصة الخاصة بك باستخدام Arduino

اصنع أزرار الاختصار المخصصة الخاصة بك باستخدام Arduino

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





لم تستخدم اردوينو من قبل؟ تحقق من دليل البداية أول.





ماذا تحتاج

إليك ما تحتاجه لإنشاء هذا المشروع:





  • 1 × اردوينو برو مايكرو.
  • الأزرار المؤقتة أو أزرار لوحة المفاتيح.
  • مقاومات 10 كيلو أوم.
  • أسلاك توصيل متنوعة.
  • مقاومات 1 × 220 أوم.
  • 1 × 5 مم (0.197 بوصة) LED.
  • 1 × 5 مم حامل LED.

ستحتاج إلى Arduino محدد جدًا لهذا المشروع. أنا أستخدم برو مايكرو نظرًا لأنها صغيرة جدًا ورخيصة ، فأنت بحاجة إلى Arduino يحتوي على USB-Serial مدمج في المعالج (Atmega32u4). من الممكن بناء هذا المشروع مع Arduinos أخرى ، مثل UNO أو Nano ، إلا أنه يتطلب الكثير من العمل الشاق لإعادة وميض السير والعبث على وشك الحصول على الأشياء للعمل. لا تعمل النسخ المستنسخة من طرز Arduino الأخرى على الإطلاق ، ولكن استنساخ Pro Micro جيد أيضًا.

لوحة وحدة OSOYOO Pro Micro ATmega32U4 5 فولت / 16 ميجاهرتز مع رأس دبوس صف 2 يستبدل بـ ATmega328 Pro Mini لـ Arduino اشترِ الآن على أمازون

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



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

بناء خطة

إليك كيف سيعمل هذا. سيتم برمجة Arduino ليعمل مثل لوحة مفاتيح USB - بقدر ما يتعلق الأمر بجهاز الكمبيوتر الخاص بك ، فهو كذلك. سترسل عدة أزرار متصلة بـ Arduino أوامر رئيسية إلى جهاز الكمبيوتر الخاص بك. سوف تضغط على زر واحد فقط ، لكن جهاز الكمبيوتر الخاص بك سيعتقد أنك ضغطت عليه كل شىء > F4 ، على سبيل المثال.





اختيار مفتاح

هناك العديد من الأشكال المختلفة لمفاتيح تبديل سلسلة MX. هذا الموقع تقدم مقدمة ممتازة ، إلا أنها تنخفض بشكل أساسي إلى الضوضاء والضغط. تتطلب بعض الطرز مزيدًا من القوة للضغط ، وتصدر بعض الطرز صوت 'نقرة' ميكانيكي عند الضغط عليها. لقد استخدمت Cherry MX Browns ، والتي لا تصدر ضوضاء عند الضغط عليها. جميعها بنفس الأبعاد ، لذا اختر أي نموذج تريده (أو امزج وطابق) دون قلق.

ستحتاج أيضًا إلى شراء بعض أغطية المفاتيح ، بالطبع ، وهناك عالم من تصاميم مخصصة هناك للاختيار من بينها - اشترينا منها KeyboardCo في المملكة المتحدة





القضية

لقد قمت بطباعة هذه الحالة ثلاثية الأبعاد ، ويمكنك تنزيل ملف .STL ملفات من الشيء . لا تقلق إذا لم يكن لديك طابعة ثلاثية الأبعاد ، فلا يزال بإمكانك إنشاءها. تقدم العديد من مواقع الويب خدمات الطباعة ثلاثية الأبعاد ، مثل 3D Hubs أو أشكال . بدلاً من ذلك ، هذه حالة بسيطة للغاية ، يمكنك صنعها من البلاستيك أو البرسبيكس أو الخشب أو حتى الورق المقوى. إذا كنت تريد أن تكون مقتصدًا حقًا ، فإن Cherry MX تبيع جهاز اختبار التبديل / جهاز أخذ العينات أمازون ( المملكة المتحدة ). ستحتاج إلى مسامير 4 M5 x 35mm و 4 صواميل M5. يمكنك بالطبع استبدالها ببديل مناسب لديك.

Max Keyboard Keycap ، Cherry MX Switch ، مجموعة اختبار (9 مفاتيح Pro Sampler Tester Kit) اشترِ الآن على أمازون

إذا كنت تقوم بصنع قضيتك الخاصة ، فهناك تفاصيل مهمة تحتاج إلى معرفتها: تعد مفاتيح Cherry MX مناسبة للضغط في فتحات التركيب الخاصة بها. إنها تتطلب فتحة تثبيت مربعة مقاس 14 × 14 مم (0.551 بوصة) ، بحيث لا يزيد سمك اللوحة عن 1.5 مم (0.059 بوصة). ابتعد كثيرًا عن هذه الأبعاد ، وقد لا يتم تثبيت مفاتيحك بشكل صحيح.

تتكون العلبة المطبوعة ثلاثية الأبعاد من جزأين ، الجزء العلوي والسفلي. ادفع مفاتيح Cherry MX في الثقوب المربعة:

تأكد من تركيب المفاتيح بالطريقة الصحيحة. الجزء العلوي به الكلمات 'CHERRY' ، والجزء السفلي به القليل من الشق. أدخل مصباح LED 3 مم في هذه الفتحة الصغيرة:

قد تجد أن مصابيح LED تبدو أفضل 'مقلوبة'. كان هذا هو الحال بالنسبة لأغطية المفاتيح التي استخدمتها ، ولا يؤثر على المفاتيح على الإطلاق.

يجب أن يكون لديك الآن تسعة مفاتيح مع 9 LEDS. ليست هناك حاجة إلى لصق أي من هذه الأجزاء. سيحتفظ اللحام بمصابيح LED ، وسيحتك الاحتكاك بالمفاتيح.

بعد ذلك ، قم بربط حامل LED (اترك المصباح مفتوحًا في الوقت الحالي). ستنتهي من تجميع العلبة لاحقًا ، بمجرد بناء الدائرة.

الدائرة

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

لست واثقا جدا من اللحام؟ ألق نظرة على هذه المشاريع البسيطة أولاً.

فيما يلي تخطيط لوحة الشريط (باستثناء العملاء المتوقعين المتأخرين):

تأكد من قطع الآثار تحت المقاومات واردوينو. نظرًا لأنه قد يكون من الصعب جدًا قراءة دائرة شريطية ، فإليك إصدار اللوح:

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

يجب أن يتناسب هذا بدقة مع الجزء السفلي من العلبة:

تأكد من أن المسارات تعمل بشكل عمودي.

قم بتوصيل الأنود ( ساق طويلة إيجابية ) من LED إلى المقاوم 200 أوم ثم +5 فولت. قم بتوصيل الكاثود ( ساق قصيرة ، سلبية ) إلى الأرض. قم بتغطية الأرجل بغطاء يتقلص بالحرارة ثم ادفع إلى حامل LED. ليست هناك حاجة لأي غراء ، ولكن قد لا يكون حامل LED مناسبًا للضغط ، لذلك قد تحتاج إلى تكييف هذه التعليمات.

قد ترغب في استخدام مؤشر LED ثنائي اللون هنا بدلاً من ذلك - سيسمح لك ذلك بإعداد بنكين أو أكثر من المفاتيح ، مع مؤشر LED ملون مختلف للحالة لكل بنك.

حان الوقت الآن لحام جميع مصابيح LED لأغطية المفاتيح. تُستخدم هذه فقط لجعل المفاتيح تتوهج ، لذا يمكنك تخطيها إذا كنت ترغب في ذلك ، ولا يلزم توصيلها بمسمار رقمي ، فقط الطاقة. قم بتوصيل جميع الأنودات معًا ، وجميع الكاثودات معًا. تعلم من خطأي - من الأسهل بكثير القيام بذلك قبل توصيل الأسلاك بالمفاتيح! قم بتوصيل الأنودات بـ +5 فولت على الرغم من وجود مقاوم 220 أوم ، والكاثودات بالأرض. هذه المصابيح سلكية بالتوازي. إليك الدائرة الخاصة بهذه المصابيح فقط:

استخدم قطعة صغيرة من أنابيب الانكماش الحراري لتغطية الاتصال بين مصابيح LED و Arduino:

قم بتشغيل Arduino لاختبار جميع أعمال LED. لا تحتاج لتحميل أي كود. إذا كانت أي من مصابيح LED لا تعمل ، فانتقل وتحقق جيدًا من الأسلاك الخاصة بك.

الآن قم بتوصيل المفاتيح. يجب توصيلها من خلال مقاوم 10 كيلو ، وإلا سيموت Arduino. هذا يسمى قصير ميت - +5 V يذهب مباشرة إلى الأرض ، وكل ما تبقى من Arduino الخاص بك سيكون نفثًا من الدخان (صدقني ، لقد قتلت واحدًا بالفعل حتى لا تضطر إلى ذلك). ها هي الدائرة لمفتاح واحد:

هذه الدائرة هي نفسها لجميع المفاتيح التسعة. قم بتوصيل المفاتيح بالدبابيس الرقمية من 2 إلى 10 ، كل منها بمقاوم 10K الخاص بها على الأرض. كن حذرًا عند لحام مفاتيح Cherry MX ، فقد تكون هشة بعض الشيء ، لقد تعرضت لكسر عدة دبابيس. قد ترغب في لحام هذه اللوحات مباشرة ببعض الألواح الشريطية ، لكن الخيوط الخلفية لا تزال مناسبة.

هذا كل شيء عن الأسلاك. قد ترغب في تركيب مقبس أنثى من نوع USB من النوع B ، ولكن غالبًا ما يكون من الصعب جدًا لحام المسامير الصغيرة الموجودة عليها. إذا كنت لا ترغب في القيام بذلك ، فلا داعي للقلق. يناسب موصل Micro USB الموجود في Arduino بدقة الفتحة الموجودة في الهيكل. إذا كنت مرتبكًا بعض الشيء بشأن أنواع USB المختلفة ، فتأكد من ذلك فهم الاختلافات .

أخيرًا ، تحقق مرة أخرى من صحة دائرتك. يمكن للقصير أن يدمر Arduino بسهولة ، ويمكن أن يكون من السهل القيام به باستخدام لوحة شريطية.

الرمز

الآن اختبار الدائرة صحيحة. إنها لفكرة جيدة أن تفعل ذلك قبل المتابعة ، حتى تتمكن من إصلاح أي مشاكل الآن متى أمكنك ذلك. قم بتحميل رمز الاختبار هذا (لا تنس تحديد اللوحة والمنفذ الصحيحين من ملف أدوات > مجلس و أدوات > ميناء القوائم):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 2; i <11; ++i) {
if(digitalRead(i) == HIGH) {
// software de-bounce improves accuracy
delay(10);
if(digitalRead(i) == HIGH) {
// check switches
Serial.print ('input');
Serial.println(i);
delay(250);
}
}
}
}

قد تحتاج إلى تغيير المسامير إذا قمت بتعديل الدائرة.

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

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

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

يجعل Arduino Pro Micro هذه الخطوة سهلة للغاية. المنطق المطلوب لمحاكاة لوحة مفاتيح USB مدمج بالفعل في المعالج ، لذا فهو بسيط مثل كتابة بعض التعليمات البرمجية!

أولاً ، قم بإعداد المفاتيح:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

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

المصفوفة عبارة عن مجموعة من الأشياء ذات التفكير المماثل. يمكن لأجهزة الكمبيوتر تحسين التعليمات البرمجية الخاصة بك للوصول إليها بسرعة ، كما أنها تسرع عملية كتابة التعليمات البرمجية.

الآن قم بتهيئة جميع المسامير كمدخلات:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

هذا يخبر Arduino أن جميع المسامير في المصفوفة هي مدخلات. يتم استخدام الحلقة للقيام بذلك ، بدلاً من الكتابة pinMode (2 ، الإدخال) تسع مرات ، ما عليك سوى كتابتها مرة واحدة. هذا يدعو أيضا Keyboard.begin . يقوم هذا بإعداد وظيفة مضمنة في مكتبة Arduino ، مصممة خصيصًا لمحاكاة لوحة المفاتيح.

قم بإنشاء طريقة تسمى readButton :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

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

الآن حلقة for أخرى تسمى بالداخل حلقة فارغة() :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

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

void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

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

المكونات الرئيسية موجودة داخل بيان التبديل هذا. لوحة المفاتيح. println يكتب نصًا إلى الكمبيوتر كما لو كنت تكتب كل مفتاح فعليًا. لوحة المفاتيح. اضغط يضغط ويحمل مفتاح واحد. لا تنسى إطلاق سراحهم باستخدام Keyboard.releaseAll بعد مهلة قصيرة!

كيفية تسجيل الشاشة بالصوت

ها هو الكود الكامل:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}
boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}
void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

بالإضافة إلى جميع مفاتيح الأرقام والحروف ، يمكن لـ Arduino الضغط على معظم المفاتيح الخاصة التي يطلق عليها معدِّلات لوحة المفاتيح . هذه مفيدة بشكل خاص للضغط على اختصارات لوحة المفاتيح. يحتوي موقع Arduino على ملف قائمة مفيدة .

الآن كل ما تبقى هو إنشاء بعض الاختصارات. يمكنك تعيين هذا إلى الاختصارات الموجودة ، مثل كل شىء + F4 (إغلاق البرنامج في Windows) أو كمد + س (قم بإنهاء برنامج macOS). بدلا من ذلك ، تأكد من قراءة دليل اختصار لوحة المفاتيح النهائي وكيفية إنشاء اختصارات Windows و كل اختصار Chromebook لتبدأ في إنشاء الاختصارات الخاصة بك.

هل قمت بإنشاء صندوق الاختصارات الخاص بك؟ اسمحوا لي أن أعرف في التعليقات ، أحب أن أرى بعض الصور!

نأمل أن تعجبك العناصر التي نوصي بها ونناقشها! لدى MUO شراكات تابعة ورعاية ، لذلك نتلقى حصة من الإيرادات من بعض مشترياتك. لن يؤثر هذا على السعر الذي تدفعه ويساعدنا في تقديم أفضل توصيات المنتجات.

يشارك يشارك سقسقة بريد الالكتروني إليك سبب إصدار مكتب التحقيقات الفيدرالي تحذيرًا بشأن Hive Ransomware

أصدر مكتب التحقيقات الفدرالي (FBI) تحذيرًا بشأن سلالة سيئة للغاية من برامج الفدية الضارة. إليك سبب حاجتك إلى توخي الحذر بشكل خاص من Hive ransomware.

اقرأ التالي
مواضيع ذات صلة
  • افعلها بنفسك
  • لوحة المفاتيح
  • اختصارات لوحة المفاتيح
  • اردوينو
نبذة عن الكاتب جو كوبورن(تم نشر 136 مقالاً)

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

المزيد من Joe Coburn

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك