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

دور زدن بازی دایناسور مروگر کروم با آردوینو

یک راه عالی برای هک کردن بازی Chrome Dino در زمانی که اینترنت شما قطع می شود وجود دارد. اگر از کروم به عنوان مرورگر وب مورد علاقه خود استفاده می کنید، بدون شک با بازی Dino (T-Rex) روبرو شده اید که در زمان نبود اینترنت شما را سرگرم می کند.

تنها چیزی که برای شروع نیاز دارید یک Arduino Uno، یک سروو کوچک، مقاومت وابسته به نور (LDR) و یک مقاومت 10k است.

بازی دایناسور کروم

بازی Chrome Dino زمانی ظاهر می شود که اتصال اینترنت شما قطع شود (همچنین می توانید با وارد کردن chrome://dino در مرورگر کروم خود به آن دسترسی داشته باشید).

بازی از شما می خواهد که کلید فاصله را روی صفحه کلید خود فشار دهید تا دایناسور از روی کاکتوس متحرک و اشیاء دیگر بپرد. هر چه از روی اشیاء بیشتری بپرید، امتیاز شما بالاتر می رود.

چطور این بازی را دور بزنیم؟

ما میخواهیم با استفاده از یک LDR کاکتور ها را تشخیص بدهیم و با سروو موتور کلید فاصله را به صورت خودکار فشار بدهیم.

مدار کاملاً ساده است. ما با چسباندن یک LDR به مانیتور، مانع متحرک سیاه روی صفحه کامپیوتر را تشخیص می دهیم. LDR و یک مقاومت 10k یک تقسیم کننده ولتاژ تشکیل می دهند که سیگنال را به پایه آنالوگ 0 برد Arduino Uno می فرستد.

برای فشردن دکمه فاصله روی کیبورد، یک سروو موتور استاندارد SG90 را با استفاده از چسب یا موارد مشابه به دکمه وصل می کنیم. سروو از برد Uno تغذیه می شود و با سیگنالی که از پین دیجیتال برد Uno 2 می آید فعال می شود.

مدار پروژه هک بازی مرورگر کروم با آردوینو

بازی دایناسور کروم آردوینوما یک شماتیک فریتزینگ را برای شما فراهم کرده‌ایم که می‌توانید تمام اتصالات را در آن ببینید. LDR به پین آنالوگ 0 و سیم سیگنال سروو موتور به پین دیجیتال 2 متصل می شود.

با تکمیل سیم کشی، می توانید LDR و سروو را به مانیتور و صفحه کلید رایانه خود وصل کنید.

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

نصب LDR

برای نگه داشتن LDR روی صفحه نمایش خود به چسب محکمی نیاز دارید، اما نه آنقدر محکم که صفحه نمایش شما را خراب کند. برای پیدا کردن موقعیت روی صفحه، باید بازی را شروع کنید. مرورگر کروم خود را باز کنید و chrome://dino را در مرورگر تایپ کنید. برای شروع بازی، کلید فاصله را روی صفحه کلید خود فشار دهید. صفحه نمایش تمام صفحه خواهد شد. LDR را روی ناحیه روبروی T-Rex بچسبانید تا بتواند اجسام متحرک را تشخیص دهد.

نصب سروو موتور

ما از چسب دو طرفه برای نگه داشتن سروو خود در جای خود استفاده کردیم، اما می توانید از نوار چسب نیز استفاده کنید. به خاطر داشته باشید که اگر به اندازه کافی آن را نگه ندارید، ممکن است سروو از صفحه کلید جدا شود.

تست عملکرد دور زدن بازی دایناسور

کد مورد نیاز این پروژه در انتهای صفحه قرار گرفته است. در اینجا قسمت های مهم کد را توضیح میدهیم. شما باید این کد را در آردوینو Uno خود آپلود کنید.
با نصب LDR و سروو و کد آپلود شده در Uno، زمان بازی فرا رسیده است.

بازی Dino را با فشار دادن کلید Space اجرا کنید. سرووی شما باید کلید فاصله صفحه کلید را هنگام شناسایی شیء فشار بدهد. شما باید سنسور LDR را جابجا کنید تا فشردن دکمه توسط سروو موتور دقیقا در زمان مناسب باشد.

ما کد را بر اساس وضعیت مانیتور خود نوشته ایم اما میزان روشنایی لپتاپ، وضوح صفحه و… میتواند باعث تغییراتی شود. پیشنهاد میکنیم از دارک مود استفاده نکنید و از حالت لایت برای تست این پروژه استفاده کنید.

برای تغییر میزان آستانه میتوانید سریال مانیتور آردوینو را باز کنید. ببینید در زمان عبور کاکتور از زیر سنسور، میزان آن چه تغییری میکند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

برای نمونه اولیه ما، فضای خالی سفید مقداری بین 690 و 750 داشت، در حالی که در زمان عبور کاکتوس مقداری بین 600 تا 640 داشت. بنابراین، ما تصمیم گرفتیم که بهترین مقدار برای فشردن دکمه فاصله ما چیزی کمتر از 650 باشد. شما می توانید با تغییر مقدار 650 در این خط آن را برای صفحه نمایش و سنسور خود شخصی سازی کنید.

 if (sensorValue < 650) {

یکی دیگر از مشکلات بالقوه ای که ممکن است با آن مواجه شوید این است که سروو به اندازه کافی حرکت نمی کند یا برای موقعیت شما بیش از حد حرکت می کند. برای رفع این مشکل، باید مقدار val را تنظیم کنید. یعنی زاویه سروو موتور در زمان وجود کاکتوس و بدون کاکتوس. برای وضعیت کاکتوس، به سروو نیاز دارید تا به موقعیتی برود که در آن دکمه اسپیس فشرده می شود. مقداری که وارد می کنید بر حسب درجه است. برای نمونه اولیه ما، موقعیت برای حالت با کاکتوس 100 درجه و بدون کاکتوس 80 درجه بود.

شما باید این مقادیر را تا حد ممکن دقیق انتخاب کنید.

val =  80;

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

موارد موجود در فایل : سورس کامل

4.1 (8 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

6 نظر

  1. سلام چرا موقعی که میخوتم تست کنم ببینم کد درسته یا نه چرا این ارور رو میده C:\Users\mohammad\AppData\Local\Temp\.arduinoIDE-unsaved20241013-4656-1v3924p.sknwf\sketch_nov13a\sketch_nov13a.ino:1:9: error: #include expects “FILENAME” or
    #include 
    ^
    exit status 1

    Compilation error: #include expects “FILENAME” or

  2. با سلام و عرض ادب
    چرا وقتی کد را رو آردوینو اجرا میکنم ارور میده و ارورش
    Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: “Arduino Uno”
    sketch_sep29a:1:9: error: #include expects “FILENAME” or
    #include 
    ^
    exit status 1
    #include expects “FILENAME” or
    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    1. سلام عزیز
      به صورت خود به خود شب و روز میشود اما اگر میخواهید پیشفرض شب باشد ویندوز و کروم را روی حالت دارک مود قرار بدهید

  3. سلام
    خسته نباشید.
    این ایده واقعا هوشمندانه بود اما توی نسخه ی جدیدش بازی شب هم میشه و سنسور نور(ال دی ار) نمی تواند در شب بگیرد به خاطر همین هم سروو دائما در حال حرکت می شود.
    با تشکر از سایت خوبتون.

    1. سلام عزیز
      ممنون از توجه شما
      برای اینکار هم راه حل هست اگر درخواست باشد قرار میدهیم

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *