آردوینو آموزش آردوینو پروژه های آردوینو

آموزش اتصال Mouse به آردوینو Arduino Uno توسط شیلد Usb host

Mouse-to-Arduino-USB-Host-Shield-digispark
نوشته شده توسط محمد صالح مهدوی راد

موس، موشواره یا موشی وسیله‌ای آشنا از زمان‌های دور است. زمانی که مخترع این وسیله کوچک و جالب جعبه کوچک و چوبی خود را ساخت تا بتواند رایانه را با آن کنترل کند؛ هیچ وقت تصور نمی‌کرد تمامی کامپیوترهای پس از آن تا به امروز به این وسیله جالب مجهز شوند. همچنین برای ادامه حیاط نیازمند آن باشند! البته موس‌های امروزی به مراتب پیشرفته‌تر و به روزتر شده‌اند که ما در این آموزش قصد داریم نحوه ارتباط یک موس usb را با آردوینو Arduino با هم برسی کنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


هدف آموزش اتصال Mouse به آردوینو


موس یک وسیله کنترلی است. انواع بیسیم موس برای کنترل از راه دور رایانه طراحی شده‌اند. هدف این است که پارامتر‌های دریافتی از این وسیله کنترلی مانند اسکرول کردن، کلیک راست و کلیک چپ، همچنین جابجایی ماتریس دوبعدی توسط سنسور موس را به پارامتر قابل فهم توسط آردوینو Arduino تبدیل کنیم. پس از این کار می‌توانیم این پارامترها را در خروجی برای مدیریت یک ربات، یک بازو و یا موتور DC به کار ببریم.

 


کتابخانه USB Host Shiel


در این آموزش یکی از مثال‌های کتابخانه مخصوص شیلد usb host استفاده شده است. این کتابخانه دارای مثال‌های مختلفی برای اتصال انواع سخت افزارها به شیلد USB Host می‌باشد. توسط این شیلد می‌توانید انواع کنترلرها را به برد آردوینو Arduino متصل کنید. برای دانلود کتابخانه کافیست به صفحه شیلد آردوینو Arduino USB Host Shield در دانشجو کیت مراجعه کنید. در قسمت دانلودها، فایل مربوطه برای دانلود قرار دارد.

 


اتصالات شیلد USB Host به آردوینو


شیلد USB HOST را مطابق تصویر بر روی برد آردویینو نصب نمایید. نصب شیلد پیچیدگی خاصی ندارد. کافیست پایه‌ها روبروی هم قرار گیرند و به راحتی در هم قرار خواهند گرفت. موس را هم به درگاه USB شیلد متصل کنید.
آموزش اتصال mouse به آردوینو Arduino Uno توسط شیلد Usb host -دیجی اسپارک

کد آموزش اتصال Mouse به آردوینو


 

#include <hidboot.h>
#include <usbhub.h>
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>

class MouseRptParser : public MouseReportParser
{
protected:
	void OnMouseMove	(MOUSEINFO *mi);
	void OnLeftButtonUp	(MOUSEINFO *mi);
	void OnLeftButtonDown	(MOUSEINFO *mi);
	void OnRightButtonUp	(MOUSEINFO *mi);
	void OnRightButtonDown	(MOUSEINFO *mi);
	void OnMiddleButtonUp	(MOUSEINFO *mi);
	void OnMiddleButtonDown	(MOUSEINFO *mi);
};
void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
{
    Serial.print("dx=");
    Serial.print(mi->dX, DEC);
    Serial.print(" dy=");
    Serial.println(mi->dY, DEC);
};
void MouseRptParser::OnLeftButtonUp	(MOUSEINFO *mi)
{
    Serial.println("L Butt Up");
};
void MouseRptParser::OnLeftButtonDown	(MOUSEINFO *mi)
{
    Serial.println("L Butt Dn");
};
void MouseRptParser::OnRightButtonUp	(MOUSEINFO *mi)
{
    Serial.println("R Butt Up");
};
void MouseRptParser::OnRightButtonDown	(MOUSEINFO *mi)
{
    Serial.println("R Butt Dn");
};
void MouseRptParser::OnMiddleButtonUp	(MOUSEINFO *mi)
{
    Serial.println("M Butt Up");
};
void MouseRptParser::OnMiddleButtonDown	(MOUSEINFO *mi)
{
    Serial.println("M Butt Dn");
};

USB     Usb;
USBHub     Hub(&Usb);
HIDBoot<USB_HID_PROTOCOL_MOUSE>    HidMouse(&Usb);

MouseRptParser                               Prs;

void setup()
{
    Serial.begin( 115200 );
#if !defined(__MIPSEL__)
    while (!Serial); 
#endif
    Serial.println("Start");

    if (Usb.Init() == -1)
        Serial.println("OSC did not start.");

    delay( 200 );

    HidMouse.SetReportParser(0, &Prs);
}

void loop()
{
  Usb.Task();
}

 


مشاهده خروجی در سریال مانیتور آردوینو


سریال مانیتور نرم افزار آردوینو Arduino را باز کنید. حالا خروجی حرکت موس Mouse را می‌بینید. همانطور که می‌بینید حرکت موس به چپ و راست و فشردن کلیدها قابل مشاهده است.

آموزش اتصال mouse به آردوینو Arduino Uno توسط شیلد Usb host -دیجی اسپارک (2)

 


وسایل مورد نیاز


و یک عدد موس usb

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

محمد صالح مهدوی راد

از کودکی به کیت های الکترونیک علاقه مند بودم . به مرور زمان با میکرو آشنا شدم که اوایل با AVR و اکنون با برد های آردوینو کار میکنم !

علاقمند به مباحث IOT و برد های کنترل صنعتی هستم ...

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۶ دیدگاه

  • با اتصال دانگل های زیگبی،زدویو و شبیه اون به آردوینو امکان اتصال به هاب و گیت وی های تجهیزات خانه هوشمنو هست یا خیر؟

    • با سلام و تشکر از توجه شما . بله امکان پذیره دوست عزیز البته بستگی به تولید کننده اون هم داره بعضی از شرکت ها به صورت اوپن سورس ارائه میکنند محصولاتشون رو و حتی api و کد های آماده واسه اینکار هست ولی بعضی از تولید کننده ها برای امنیت یا به دلایل دیگه این امکان رو محدود کردند و برای ارتباط برقرا کردن نیاز به صرف وقت و هزینه بیشتری خواهید داشت.

  • سلام و عرض ادب و با تشکر از آموزش های خوبتون ، بنده قصد دارم با BASCOM-AVR و آردینو ی لئوناردو پروژه ی خودم رو ببندم ، میخواستم ببینم آموزشی در این مورد برای راه اندازی آردینو با بسکام هست یا نه. با تشکر

    • با سلام و تشکر از توجه جنابعالی در این مورد داخل وبسایت آموزشی داده نشده اما قطعا اگر گوگل بفرمایید منابع خوبی پیدا خواهید کرد برای این کار .

    • با سلام و تشکر از توجه شما. بله شما میتوانید به راحتی شیلد را روی برد نصب کنید .

  • سلام
    میشه به این شیلد دسته جوی استیک وصل کرد ؟
    مدل هایی که ساپورت میکنه رو بگید ممنون میشم

  • سلام من می خوام با اردواینو uno مثل کیبورد به لپ تاپم فرمان بدم و مثلا به کمک اون تایپ کنم . بعد از کلی سرچ متوجه شدم باید از کتابخانه ی کیبورد استفاده کنم ولی اردواینو یونو این کتابخانه را نمیشناسه . من نمی خوام یه کیبورد usb رو به اردواینو وصل کنم بلکه می خوام با دادن ورودی به پایه های خود اردواینو فرمان فشرده شدن کلید ها به لپ تاپ ارسال بشه . کسی می تونه کمکم کنه؟

  • با سلام
    می خواستم بدونم که آیا امکان این هست که چند تا از این شیلد ها را بر روی یک آردوینو سوار کرد و همزمان چند موس را به یک آردوینو متصل کرد و اطلاعات چند موس را همزمان در سریال آردوینو نمایش داد ؟!

    • با سلام
      بنده در این خصوص تجربه عملی ندارم. ولی شیلد Usb Host یک خروجی USB دارد. موارد را از طریق دیگری اقدام کنید. سپس تجربه عملی تان را از همین طریق برای دیگر کاربران منتشر کنید.

  • سلام من پروگرم که میکنم خطا میده
    کتابخانه هایی که در این کد هست رو از کجا باید دانلود کنم