کار با دسته ی بازی Nunchuk در آردوینو
هیچ مستندات رسمی وجود ندارد که نشان دهد یک دسته ی Nunchuk به صورت درونی، چگونه کار می کند یا اینکه چگونه می توانیم از آن در محیطی غیر از کنسول Wii استفاده کنیم. اما برخی هکرهای هوشمند و سازندگان، در اینترنت وقت زیادی می گذرانند تا آنچه که در درون این دسته ی بازی رخ می دهد را مهندسی معکوس کنند. در مجموع، این کار بسیار ساده است، زیرا دسته ی Nunchuk از دو سیم رابط(TWI)، استفاده می کند که به نام پروتکل I2C (که مخفف Inter-Integrated Circuit است) شناخته می شود. این پروتکل به دستگاه ها امکان می دهد تا تنها با استفاده از دو سیم، از طریق یک گذرگاه داده ی master/slave ارتباط برقرار کنند. در این کار، ما داده ها را بر روی یک سیم انتقال می دهیم(Data) در حالی که سیم دیگر ارتباطات را همزمان(synchronizes) می کند(Clock). IDE آردوینو یک کتابخانه به نام Wire دارد که پروتکل I2C را پیاده سازی می کند.
این کتابخانه انتظار دارد، که خط داده(data line) به پین آنالوگ 4 متصل شود و خط ساعت(clock line) به پین آنالوگ 5 متصل شود. ما از این موارد به زودی برای ارتباط با دسته ی Nunchuk استفاده می کنیم. اما قبل از آن، ما نگاهی به فرمان هایی که دسته ی بازی آنها را درک می کند، می اندازیم[2]. صادقانه بگوییم، دسته ی Nunchuk تنها یک فرمان را درک می کند: تمام داده ها را به من بده. هنگامی که این دسته فرمان مورد نظر را دریافت می کند، 6 بایت(Byte) را برمی گرداند که معنای زیر را دارند:

Byte 1 حاوی مقدار محور x جوی استیک آنالوگ(analog stick) است. Byte2 حاوی مقدار محور y جوی استیک است. هر دوی آنها اعداد 8 بیتی هستند و از 29 تا 255 متغیر هستند. مقادیر شتاب سنج(Acceleration) برای محورهای x و y و z اعدادی 10 بیتی هستند. بایت های(Byte) 3 و 4 و 5 حاوی 8 بیت با اهمیت هستند. در بایت 6(Byte 6 ) می توانیم دو بایت مفقود شده(یعنی بیت های 0 و 1) برای هر یک از آنها را پیدا کنیم.بایت 6، باید به صورت بیتی(bit-wise) تفسیر شود. بیت 0 (یعنی کم ارزش ترین بیت از سمت راست به چپ) حاوی وضعیت دکمه ی Z است. اگر این دکمه فشار داده شود، این بیت 0 خواهد بود و در غیر این صورت 1 خواهد بود. بیت 1، حاوی وضعیت دکمه ی C است. شش بیت باقی مانده حاوی بیت های شتاب سنج است. بیت 2 و 3 به محور X تعلق دارند و بیت های 4 و 5 به محور Y و بیت های 6 و 7 به محور Z تعلق دارند.
حالا که می دانید که چگونه داده هایی که از دسته ی Nunchuk دریافت می کنیم را تفسیر کنیم، می توانیم شروع به ایجاد یک کلاس به نام Nunchuk کنیم تا آن را کنترل کنیم.
بهبود بخشیدن به زندگی مردم با سرهم بندی کردن دستگاه ها
به دلیل محبوبیت کنسول های بازی مدرن، تجهیزات جانبی برای آنها، اغلب بسیار ارزان است. همچنین این موضوع محدود به دسته های قدیمی نیست؛ شما می توانید مواردی مانند شبیه ساز اسنوبرد(snowboard) یا دوربین را خریداری کنید. بنابراین جای تعجب نیست که افراد خلاق با استفاده از سخت افزاری که در ابتدا برای انجام بازی ساخته شده بود ، پروژه های جالب بسیاری ساخته اند. یک پروژه ی سرهم بندی شده ی جالب و کاربردی، EyeWriter است. این پروژه از چشم پلی استیشن (یک دوربین برای پلی استیشن 3) استفاده می کند و حرکت چشم انسان را ردیابی می کند. یک تیم از هکرها این پروژه را طراحی کرده است تا افراد فلج بتوانند با استفاده از چشم های خود نقاشی بکشند. به دلیل بیماری ، این دوست ، یا هنرمند ، تقریباً کاملاً از نظر جسمی فلج است و فقط می تواند چشم هایش را حرکت دهد. اما با استفاده از EyeWriter او می تواند کارهای هنری جالبی را انجام دهد. این یک پروژه ی آردوینو نیست، اما ارزش نگاه کردن را دارد.
2. در این سایت، می توانید یک کتابخانه پیدا کنید که به ما امکان می دهد تا از هر جفت از پین ها برای ارتباطات I2C استفاده کنیم.
{module کمک نقدی به نویسنده}
- بازدید: 481
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.