ماوس PS2 یک دستگاه ورودی است که می تواند با دستگاه میزبان با استفاده از پروتکل PS2 ارتباط برقرار کند. می توان آن را با استفاده از کانکتور mini DIN 6 پین به دستگاه میزبان متصل کرد. ماوس به طور مداوم خروجی می دهد که می تواند برای دریافت حرکت در صفحه XY و همچنین وضعیت دکمه های روی ماوس رمزگشایی شود.
داده های خوانده شده از ماوس را می توان رمزگشایی و پردازش کرد تا میزان تغییر موقعیت ماوس نسبت به موقعیت خوانده شده قبلی به دست آید. این داده ها معمولاً در رایانه های شخصی برای جابجایی نشانگر در صفحه استفاده می شوند. پروتکل PS2 یک پروتکل ساده دو سیمه همزمان است که این امکان را برای برد میکروکنترلر ساده به ماوس یا صفحه کلید استاندارد PS2 با آن فراهم می کند.
این پروژه خاص نحوه انتقال داده های خوانده شده از یک ماوس استاندارد PS2 را از یک برد میکروکنترلر به یک کامپیوتر دوردست نشان می دهد. برد میکروکنترلر مورد استفاده در این پروژه پلتفرم سخت افزاری نمونه سازی آسان آردوینو است و سیستم انتقال بی سیم با استفاده از ماژول های فرستنده گیرنده Xbee پیاده سازی شده است.
Xbee نام تجاری دستگاه فرستنده گیرنده بی سیم است که بر روی پروتکل ZigBee کار می کند. ZigBee نام یک پروتکل بی سیم است که توسط استاندارد IEEE 802.15 نگهداری می شود . این پروتکل برای شبکه شخصی بی سیم (PAN) با استفاده از فرستنده و گیرنده های بی سیم کم توان مشخص شده است. آنها می توانند برای سیستم های ارتباطی ساده نقطه به نقطه نیز استفاده شوند.
در این پروژه از برد آردوینو پرو مینی استفاده شده است که با بوت لودر آردوینو از قبل برنامه ریزی شده است . IDE برنامه نویسی مورد استفاده برای این پروژه Arduino IDE نسخه 1.0.3 در سیستم عامل ویندوز است. تصویر برد آردوینو پرو مینی و آردوینو IDE در شکل زیر نشان داده شده است:
سخت افزار دیگری که می تواند تبدیل USB به TTL را انجام دهد، برای آپلود برنامه در برد آردوینو استفاده می شود. این برد می تواند در مواقعی نیز باشد که نیاز به برقراری ارتباط سریال بین رایانه شخصی و برد آردوینو باشد.
فرض بر این است که خواننده پروژه نحوه شروع کار با آردوینو را طی کرده و تمام مواردی که در آن بحث شده است را انجام داده است.
ماوس PS2 از یک ارتباط همزمان با رایانه شخصی استفاده می کند که بسیار شبیه به پروتکل Two Wire Interface است. کانکتور PS2 یک پین برای Data و یک پین دیگر برای Clock دارد و فقط با استفاده از این دو پایه ماوس با دستگاه میزبان ارتباط برقرار می کند. ماوس همیشه دارای رابط نر 6 پین mini-DIN برای رابط PS2 است و دستگاه میزبان همیشه پین ماده مربوطه را دارد. تصاویر و پینآوتهای کانکتورهای زن و مرد PS2 در تصویر زیر نشان داده شدهاند:
تصویر پین نری PS2
وقتی صحبت از اتصال کانکتور مادگی با برد مدار می شود، باید بتوان پین های پایین کانکتور PS2 را شناسایی کرد و تصویر زیر مفید خواهد بود. کد نوشته شده برای این پروژه از فایل کتابخانه سفارشی PS2 به نام "PS2Mouse.h" استفاده می کند که تمام روال های لازم برای دسترسی به ماوس PS2 را دارد. دو تابع وجود دارد که کاربر می تواند مستقیماً در کد خود از آنها استفاده کند که عبارتند از "mouse.initialize()" و "mouse.report(data)". جزئیات توابع در ادامه مورد بحث قرار گرفته است.
mouse.initialize()
تابع mouse.initialize() برای انجام تمام کارهای لازم برای مقداردهی اولیه گزارش داده ها از ماوس استفاده می شود. هنگامی که مقداردهی اولیه به درستی انجام شد، ماوس شروع به ارسال اطلاعات مربوط به حرکت XY و وضعیت دکمه های روی ماوس می کند. تابع هیچ پارامتری را دریافت نمی کند و چیزی را برمی گرداند اما تنها زمانی وجود خواهد داشت که مقداردهی اولیه به درستی انجام شود.
mouse.report(داده)