برد های اردوینو تنوع بسیار زیادی دارند اما در بسیاری از امکانات با همدیگر مشترک اند . به طور مثال اغلب برد های آردوینو دارای یک مبدل USB-TTL هستند و یا به صورت خارجی از یک مبدل USB-TTL برای آن ها استفاده کرد مانند مدل های Pro Mini . در این میان آردوینو Leonardo و آردوینو Pro Micro که نسخه کوچک لئوناردو است یکی از خاص ترین برد های آردوینو به حساب می آیند . در این مدل ها از هیچگونه مبدل USB-TTL ای استفاده نشده است و میکروکنترلر های این برد ها مستقیما با پورت USB در ارتباط هستند . میکروکنترلر به کار رفته در برد Leonardo مدل ATmega32u4 هست که قابلیت پشتیبانی از USB را دارد . USB به عنوان یک درگاه ارتباط سریال همه کاره دارای کلاس ها و ارتباط های مختلفی است . در واقع USB شامل دو بخش سخت افزاری که شامل کانکتور های USB و یک بخش نرم افزاری شامل نحوه ارتباط و ارسال و دریافت دیتا می باشد .  یک ابزار دارای USB ممکن است با اتصال به سیستم به عنوان یک درایو شناخته شود یا مانند یک کیبورد تنها برای دریافت ورودی از کار بر باشد . ATmega32u4 از کلاس های USB CDC و مهمتر از همه USB-HID پشتیبانی میکند . در مد USB-CDC دیتا از طریق USB دریافت شده و به UART تبدیل خواهشد . در واقع در این مد ATmega32u4 بدون هیچ مبدل USB-TTL ای دیتا را از طریق USB دریافت کرده و آن راه به UART بر میگرداند . یکی از کلاس های عملکرد USB حالت USB-HID می باشد . HID امکان ارتباط کاربر با کامپیوتر را فراهم می ساز . ای کلاس شامل مجموعه ای از استاندارد ها و پروتکل ها برای ارتباط ابزار های مانند موس ، کیبورد ، دسته های بازی و کلیه ابزار های ارتباط کاربر با کامپیوتر می باشد . USB-HID بر اساس مجموعه ای از قواعد از پیش تعیین شده عمل خواهد کرد . به طور مثال برای افزایش صدای کامپیوتر یا مثلا تایپ حرف ‘P’ مقادیر خاصی در نظر گرفته شده است . به راحتی می توانید آردیونو Leonardo را به عنوان یک کیبورد ، ماوس و یا یک سدته کنترل بازی به کامپیوتر خود متصل کنید فرمان هایی که می خواهید را اجرا کنید . شاید ایده Atmel برای ساخت میکروکنترلر ATmega32u4 استفاده از آن در ماوس و کیبورد و… بوده ولی شما می توانید ابزار های مبتنی بر HID خود را بر پایه این میکروکنترلر بسازید . به طور مثال می توانید یک ابزار برای کنترل ربات پرنده خودتان بسازید . یا مثلا از طریق یک ولوم حجم صدای کامپیوتر خودتان را کنترل کنید .

 

برای کار با USB-HID ابتدا کتابخانه زیر را دانلود و نصب کنید :

https://github.com/NicoHood/HID/archive/master.zip

این کتابخانه از ATmega16u2 نیز پشتیبانی می کند لذا به می توانید آن را بر روی برد های آردوینو UNO R3 پروگرام کنید ( بر روی ATmega16u2 موجود بر روی برد ) .

 

ساخت کیبورد با آردوینو Pro Micro :

/*
  Copyright (c) 2014-2015 NicoHood
  See the readme for credit to other people.
  Improved Keyboard example
  Shows how to use the new Keyboard API.
  See HID Project documentation for more information.
  https://github.com/NicoHood/HID/wiki/Keyboard-API#improved-keyboard
*/

#include "HID-Project.h"

const int pinLed = LED_BUILTIN;
const int pinButton = 7;

void setup() {
  pinMode(pinLed, OUTPUT);
  pinMode(pinButton, INPUT_PULLUP);

  // Sends a clean report to the host. This is important on any Arduino type.
  Keyboard.begin();
}


void loop() {
  // Trigger caps lock manually via button
  if (!digitalRead(pinButton)) {
    digitalWrite(pinLed, HIGH);

    // Use the default print functions
    Keyboard.println("Hello World!");

    // Press a single character, special non ascii characters wont work.
    //Keyboard.write('a');

    // Write single keys, do not use a number here!
    //Keyboard.write(KEY_ENTER);


    // If you really wish to press a RAW keycode without the name use this:
    //Keyboard.write(KeyboardKeycode(40));

    // Use (a limited number of) consumer keys.
    // Only works with the lower 255 keys and on linux only.
    //Keyboard.write(MEDIA_PLAY_PAUSE);

    // Linux also supports several system function via consumer report.
    //Keyboard.write(CONSUMER_POWER);
    //Keyboard.write(CONSUMER_SLEEP);

    // You can also use some special keyboard keys on linux.
    //Keyboard.write(KEY_POWER);
    //Keyboard.write(KEY_F13);

    // You can wakeup you PC from sleep.
    // This might be not supported on all hardware, but on all OS types.
    //Keyboard.wakeupHost();

    // Simple debounce
    delay(300);
    digitalWrite(pinLed, LOW);
  }
}

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

Tags:
About Author: USER_4