مهندس موفق الکترونیک

استفاده از صفحه کلید در آردوینو

در این مثال از صفحه کلید به منظور خروج ازحساب کاربری ویندوز هنگام متصل کردن پایه 2 برد آردوینو  را به زمین استفاده می کنیم. برنامه نوشته شده قابلیت تشخیص فشرده شدن دو یا سه کلید با فاصله زمانی بسیار کوتاه را دارد.

بطور خیلی ساده در این پروژه آردوینو متصل شده به کامپیوتر (با کابل USB) به عنوان یک کیبورد عمل می کند. ولی تعداد زیادی دکمه ندارد و فقط یک دکمه دارد و با فشردن آن کار چهار کلید را انجام میدهد.  و هدف از این کار ساخت یک گجت کوچک که با فشردن آن از حساب کاربری ویندوز خارج بشه(میتونه خیلی مفید باشه مثلا از راه دور در صورت بروز یک مشکل این کار را انجام دهید و یا در صورت ورود غیر قانونی یک نفر به اتاق شما آردوینو این کار را برای شما انجام دهد. مثلا به جای یک پوش باتن یک سنسور PIR میذاشتیم.

  • در ویندوز، CTRL-ALT-DEL به همراه ALT-l
  • در اوبونتو، CTRL-ALT-DEL و ENTER
  • در OSX ، CMD-SHIFT-q

تذکر :  زمانی که از تابع ()Keyboard.print استفاده می کنید، برد آردوینو به صفحه کلید دسترسی پیدا می کند. برای اطمینان از عدم تداخل عملکرد آردوینو با عملکرد کامپیوتر هنگام استفاده از صفحه کلید، پیش از فراخوانی تابع ()Keyboard.print از یک برنامه کنترلی مناسب به این منظور استفاده نمایید.

در این برنامه فقط زمانی که پایه آردوینو به زمین متصل شد، یک دستور صفحه کلید ارسال می کند.

مطلب پیشنهادی:  با آردوینو یک وب‌سرور بسازید

نکته دوم : این آموزش فقط یک مثال است و از توضیحات خیلی زیاد خوداری میکنیم و به عنوان تمرین میتوانید انجام دهید و در قسمت نظرات همین نوشته بنویسید.

قطعات و وسایل مورد نیاز :

  • 1 عدد برد بورد
  • 1 عدد برد آردوینو Leonardo ، Micro یا Due
  • 1 عدد کلید فشاری یا پوش باتن
  • 2 سیم برد بردی

مراحل :

مطابق شکل زیر قطعات را بر روی برد برد خود قرار دهید و اتصالات را مطابق شکل برقرار کنید.

استفاده از صفحه کلید در آردوینو

برنامه آردوینو :

برنامه آردوینو را بر روی کامپیوتر خود باز نمایید. کدهای نوشته شده در این بخش مدار شما را کنترل می کند. یک sketch جدید با کلیک بر روی گزینه New ایجاد نمایید.

استفاده از صفحه کلید در آردوینو

نکته : حتما توجه داشته باشید که باید فایل کتابخانه صفحه کلید را به برنامه خود اضافه کنید. مطابق شکل زیر فایل کتابخانه keypad را که در پوشه libraries هست در فایل برنامه خود paste کنید.

استفاده از صفحه کلید در آردوینو

اگر در مورد برنامه نویسی آردوینو اطلاعاتی ندارید درس آموزش آردوینو را حتما بخوانید.

کد آردوینو :

/*
 Keyboard logout
 This sketch demonstrates the Keyboard library.
 When you connect pin 2 to ground, it performs a logout.
 It uses keyboard combinations to do this, as follows:
 On Windows, CTRL-ALT-DEL followed by ALT-l
 On Ubuntu, CTRL-ALT-DEL, and ENTER
 On OSX, CMD-SHIFT-q
 To wake: Spacebar.
 Circuit:
 * Arduino Leonardo or Micro
 * wire to connect D2 to ground.
 *Melec.ir
*/

#define OSX 0
#define WINDOWS 1
#define UBUNTU 2

#include "Keyboard.h"

// change this to match your platform:
int platform = WINDOWS;

void setup() {
 // make pin 2 an input and turn on the
 // pullup resistor so it goes high unless
 // connected to ground:
 
 pinMode(2, INPUT_PULLUP);
 Keyboard.begin();
}

void loop() {
 while (digitalRead(2) == HIGH) {
 // do nothing until pin 2 goes low
 delay(500);
 }
 
 delay(1000);
 
 switch (platform) {
 case OSX:
 Keyboard.press(KEY_LEFT_GUI);
 
 // Shift-Q logs out:
 Keyboard.press(KEY_LEFT_SHIFT);
 Keyboard.press('Q');
 delay(100);
 
 // enter:
 Keyboard.write(KEY_RETURN);
 break;
 
 case WINDOWS:
 // CTRL-ALT-DEL:
 Keyboard.press(KEY_LEFT_CTRL);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press(KEY_DELETE);
 delay(100);
 Keyboard.releaseAll();
 
 //ALT-l:
 delay(2000);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press('l');
 Keyboard.releaseAll();
 break;
 
 case UBUNTU:
 // CTRL-ALT-DEL:
 Keyboard.press(KEY_LEFT_CTRL);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press(KEY_DELETE);
 
 delay(1000);
 Keyboard.releaseAll();
 
 // Enter to confirm logout:
 Keyboard.write(KEY_RETURN);
 break;
 }
 
 // do nothing:
 while (true);
}

Keyboard.releaseAll();

// enter:
 Keyboard.write(KEY_RETURN);
 break;
 case WINDOWS:
 
 // CTRL-ALT-DEL:
 Keyboard.press(KEY_LEFT_CTRL);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press(KEY_DELETE);
 delay(100);
 Keyboard.releaseAll();
 
 //ALT-l:
 delay(2000);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press('l');
 Keyboard.releaseAll();
 break;
 
 case UBUNTU:
 // CTRL-ALT-DEL:
 Keyboard.press(KEY_LEFT_CTRL);
 Keyboard.press(KEY_LEFT_ALT);
 Keyboard.press(KEY_DELETE);
 delay(1000);
 Keyboard.releaseAll();
 
 // Enter to confirm logout:
 Keyboard.write(KEY_RETURN);
 break;
 }
 
// do nothing:
 while (true);
}

نکات برنامه :

پیش از آپلود برنامه بر روی برد اطمینان حاصل نمایید که OS صحیحی را به متغیر پلتفرم خود اختصاص داده اید.

مطلب پیشنهادی:  مدار کلید دیمر لمسی با آردوینو

زمانی که برنامه در حال اجرا است، با فشردن کلید پایه 2 به زمین متصل می شود و کدهای مربوط به فرایند خروج از حساب کاربری به کانکتور USB متصل به کامپیوتر ارسال می شود.

نتایج :

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

این کد از بخش های زیر تشکیل شده است :

  • در ویندوز، CTRL-ALT-DEL به همراه ALT-l
  • در اوبونتو، CTRL-ALT-DEL و ENTER
  • در OSX ، CMD-SHIFT-q
Source : https://www.tutorialspoint.com

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *