همه چیز با یک بازی کوچک از دوران تاریکی به نام "ماریو" شروع شد، درست از زمانی که یک پسر کوچک برای نجات شاهزاده خانمم روی اردک ها می پرید تا زمانی که یک شاهزاده خوش تیپ مردانه در پرشیا (شاهزاده ایرانی) در حال مبارزه با تاریکی بود. برای نجات دنیای خودم، من از طرفداران بزرگ بازی های ویدیویی بودم و با بازی کردن آنها بزرگ شدم. اما آنها گاهی اوقات خسته می شوند و من کمتر درگیر آن هستم. امروزه کنسولهای بازی پیشرفته، بازیهای مجازی را امکانپذیر میکنند و به ما کمک میکنند تا بازی را بسیار بهتر از یک صفحه کلید یا ماوس احساس کنیم.
از آنجایی که از علاقه مندان به آردوینو بودم، از بازی معروف «پرندگان خشمگین» با استفاده از صفحه کلید و ماوس خسته شدم و تصمیم گرفتم که کنترلر بازی خود را با استفاده از حسگر فلکس و پتانسیومتر بسازم . هنگامی که سنسور فلکس کشیده می شود، پرنده روی منجنیق نیز کشیده می شود و می توانید از پتانسیومتر برای تنظیم جهت پرتاب آن استفاده کنید. سپس هنگامی که سنسور فلکس را رها می کنید، پرنده راه اندازی می شود. من از انجام آن بسیار لذت بردم، بنابراین اگر می خواهید چیزی بسیار مشابه بسازید، این آموزش مفید خواهد بود. این آموزش همچنین در کنترل مکان نما ماوس با استفاده از پتانسیومتر مفید خواهد بود .
نرم افزار و سخت افزار مورد نیاز:
نرم افزار:
- آردوینو IDE
- پردازش IDE
- بازی پرندگان خشمگین در کامپیوتر
سخت افزار:
- آردوینو (هر نسخه)
- پتانسیومتر
- سنسور فلکس
- مقاومت 47 کیلو اهم
- سیم های اتصال
- تخته نان
مفهوم پشت سر:
برد آردوینو مقادیر را از پتانسیومتر و سنسور فلکس می خواند و آنها را از طریق پورت USB COM از طریق تابع Serial.write () معمولی به لپ تاپ/کامپیوتر منتقل می کند . سپس این اطلاعات را با استفاده از Processing میخوانیم و با استفاده از کلاس Robot در جاوا که توسط پردازش IDE پشتیبانی میشود، مکاننمای ماوس را کنترل میکنیم. ما IDE پردازش را به گونه ای برنامه ریزی کرده ایم که با کشیدن سنسور Flex یک کلیک ماوس ایجاد شود و بر اساس میزان کشیده شدن آن نشانگر ماوس در جهت X حرکت کند. سپس بر اساس مقدار پتانسیومتر، مکان نما ماوس را در جهت Y حرکت می دهیم، به این ترتیب می توانیم جهت پرتاب شدن پرنده را تعیین کنیم.
مدار:
مدار بازی Angry Bird با استفاده از حسگر فلکس و پتانسیومتر آسان است.
ما به سادگی یک پتانسیومتر و یک سنسور فلکس را به ورودی های آنالوگ (A0,A1) آردوینو متصل کرده ایم. خروجی سنسور فلکس نیز با استفاده از یک مقاومت 47K به پایین کشیده می شود.
می توانید آن را مستقیماً روی تخته نان وصل کنید یا آنها را به تخته Perf لحیم کنید و آن را روی یک دستکش یا چیزی مونتاژ کنید تا خلاقانه تر شود. من به سادگی از یک تخته نان برای انجام اتصالات خود مانند شکل زیر استفاده کرده ام:
برنامه آردوینو:
کد کامل آردوینو در انتهای آموزش آورده شده است. چند خط مهم در زیر توضیح داده شده است.
ما برنامه را برای کار با نرخ باود 9600 مقداردهی اولیه می کنیم و شروع به خواندن مقادیر از حسگر Flex و پتانسیومتر می کنیم. همانطور که می دانیم تابع () serial.write می تواند تنها یک بایت داده را در هر زمان ارسال کند. از آنجایی که One byte 8 بیت است و 2^8 = 256. ما می توانیم مقادیر را از 0 تا 256 ارسال کنیم. بنابراین باید مقادیر خروجی سنسور Flex و خروجی پتانسیومتر را بین 0 تا 256 فشرده کنیم.
برای این کار از تابع map() در آردوینو استفاده می کنیم. تمام مقادیر سنسور فلکس از 5 به 100 تبدیل می شوند، بنابراین وقتی سنسور را خم می کنیم از 5 افزایش می یابد و پس از رها شدن به 5 برمی گردد. برای ذکر کلیک ماوس از مقدار 1 و 0 استفاده می شود. هنگامی که 1 ارسال می شود، ماوس فشار داده می شود و زمانی که 0 ارسال می شود، ماوس آزاد می شود.