فهرست مطالب:
تصویری: Cyclone LED Arcade بازی: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
هدف این پروژه ایجاد یک بازی ساده با استفاده از آردوینو بود که برای کودکان تعاملی و سرگرم کننده باشد. من به یاد دارم که بازی Cyclone یکی از بازی های مورد علاقه من در جوانی بود ، بنابراین تصمیم گرفتم آن را تکرار کنم. این یک پروژه بسیار ساده است که شامل یک آردوینو ، رشته ای از LED های قابل تنظیم و یک دکمه فشاری است.
هدف بازی متوقف کردن چراغ دوچرخه سواری است وقتی به LED نشان داده شده (قرمز) رسید. در صورت موفقیت ، سطح دشواری افزایش می یابد. در صورت عدم موفقیت ، چرخه نور در سطح دشواری فعلی دوباره راه اندازی می شود.
این دستورالعمل منبع بزرگی برای هسته برنامه نویسی من بود.
مرحله 1: وسایل را جمع آوری کنید
-
اجزای اصلی:
- آردوینو (من از UNO استفاده کردم)
- رشته ای از LED های آدرس پذیر جداگانه (من از پیوند استفاده کردم)
- دکمه فشار (من از پیوند استفاده کردم)
- برد مدار چاپی (PCB) یا تخته نان
-
منبع تغذیه (من از دو منبع تغذیه جداگانه استفاده کردم ، اگر خلاق باشید ممکن است با یکی از آنها کنار بیایید)
- 5V 3A برای LED ها
- 9V 1A برای آردوینو
-
چارچوب:
- مسکن الکترونیکی (من لامپ چوبی را از سرقفلی تغییر دادم)
- محفظه LED (من ساعت دیواری استاندارد شما را تغییر دادم و با استفاده از شناسه های دقیقه به عنوان نشانه های سوراخ سوراخ کردم. در صورت امکان از ساعت چوبی استفاده کنید تا حفاری آسان تر شود.)
- محفظه دکمه (من از لوله PVC آرنج استفاده کردم)
-
ابزارها / سایر مواد:
- سیم کشی یدکی برای مدار خود
- مقاومت های 10K (مقاومت کشویی برای سوئیچ) و 470 اهم (برای سیم داده روی LED ها)
- برای ایجاد سوراخ هایی برای قرار دادن LED های خود و ایجاد هرگونه سوراخ لازم در وسایل خود برای عبور سیم از طریق آن ، مته کنید
- لحیم کاری برای لحیم کاری مدار شما به PCB
- تفنگ چسب حرارتی برای ثابت نگه داشتن LED ها در وسایل شما
- Velcro یا برخی از وسایل برای ایمن سازی چارچوب با هم
- واشرها اختیاری برای سوراخ های ایجاد شده برای عبور سیم ها هستند
مرحله 2: بارگذاری کد
مطمئن شوید که کتابخانه "FastLED" را بارگیری و اضافه کرده اید
هسته کد (حلقه خالی) شامل دو حالت است: دکمه بالا (پایان بازی) و دکمه پایین (پخش). هنگامی که کاربر دکمه را فشار می دهد ، آدرس LED که چراغ روشن شده است با آدرس LED مرکزی مقایسه می شود. اگر یکسان نباشند ، همه چراغ ها دو بار قرمز چشمک می زنند و سطح فعلی دوباره راه اندازی می شود. اگر یکسان باشند ، سیلون (اسکریپت کتابخانه FastLED) دو بار اجرا می شود ، سطح دشواری افزایش می یابد و پخش مجدد از سر گرفته می شود. هنگامی که بازیکن آخرین سطح را می زند ، سیلون هشتمین بار اجرا می شود و بازی در سطح 1 شروع می شود.
// بازی Cyclone
#شامل "FastLED.h" // تا 50 #تعریف NUM_LEDS 40 #تعریف CENTER_LED 21 #تعریف DATA_PIN 7 #تعریف LED_TYPE WS2811 #تعریف COLOR_ORDER RGB // محدوده 0-64 #تعریف روشنایی 50 // تعریف سطوح دشواری #تعریف EASY 1 #تعریف MEDIUM 2 #تعریف HARD 3 #تعریف ON_SPEED 4 #تعریف SONIC_SPEED 5 #تعریف ROCKET_SPEED 6 #تعریف LIGHT_SPEED 7 #تعریف MISSION_IMPOSSIBLE 8 // شروع مشکل در سختی = 1 ؛ // تعریف آرایه led های CRGB leds [NUM_LEDS] ؛ // آیا بازیکن در این دور برنده شد؟ این تگ برای پارامترهای سختی استفاده می شود. bool wonThisRound = false؛ // محل شروع چراغ دوچرخه سواری در LED LED = 0؛ // آیا بازی اجرا می شود؟ bool Playing = true؛ // آیا این اولین برد است؟ bool CycleEnded = true؛ // جزئیات دکمه const int buttonPin = 9؛ int buttonState = 0؛ // راه اندازی کتابخانه led و توابع arduino void setup () {FastLED.addLeds (leds، NUM_LEDS) ؛ FastLED.setBrightness (BRIGHTNESS) ؛ pinMode (buttonPin ، INPUT) ؛ Serial.begin (9600)؛ } // گوشت و سیب زمینی // دو حالت - بازی و پایان بازی void loop () {// END GAME buttonState = digitalRead (buttonPin) ؛ if (buttonState == HIGH) {پخش = false؛ // کاربر دکمه را فشار داده است و LED روی آدرس برنده متوقف شده است. برای (int i = 0؛ i <NUM_LEDS؛ i ++) {leds = CRGB:: سیاه؛ } leds [CENTER_LED] = CRGB:: قرمز ؛ leds [LEDaddress] = CRGB:: سبز؛ FastLED.show ()؛ if (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress)؛ // فاصله بین led روشن و مرکز led را پیدا می کند اگر (diff == 0) {wonThisRound = true؛ // پخش کننده با موفقیت سطح را (دشواری! = MISSION_IMPOSSIBLE) {برای (int i = 0؛ i <2؛ i ++) {cylon ()؛ }} if (دشواری == MISSION_IMPOSSIBLE) {برای (int i = 0؛ i <8؛ i ++) {cylon ()؛ } دشواری = 0؛ } افزایشDifficulty ()؛ wonThisRound = false؛ } else {تاخیر (1000) ؛ برای (int i = 0؛ i <2؛ i ++) {flash ()؛ }} CycleEnded = false؛ } آدرس LED = 0؛ تأخیر (250) ؛ buttonState = digitalRead (buttonPin) ؛ if (buttonState == LOW) {پخش = true؛ }} // PLAYING if (پخش) {برای (int i = 0 ؛ i <NUM_LEDS؛ i ++) {leds = CRGB:: سیاه ؛ // همه leds} leds [CENTER_LED] = CRGB:: Red را خاموش می کند. // رنگ led مرکزی را به leds سبز تنظیم می کند [LEDaddress] = CRGB:: Green؛ // رنگ led دوچرخه سواری را به قرمز تنظیم می کند FastLED.show ()؛ // راه اندازی چرخه نور LED++؛ // چرخه نور را به طور همزمان به یک led تنظیم می کند اگر (LEDaddress == NUM_LEDS) {LEDaddress = 0؛ } تاخیر (getTime (مشکل)) ؛ buttonState = digitalRead (buttonPin) ؛ if (buttonState == HIGH) {پخش = false؛ CycleEnded = true؛ }}} // پارامترهای سطح int getTime (int diff) // تأخیر زمانی را برای پایه حرکت led بر اساس دشواری برمی گرداند {int timeValue = 0؛ switch (diff) {case EASY: timeValue = 100؛ زنگ تفريح؛ مورد MEDIUM: timeValue = 80 ؛ زنگ تفريح؛ مورد HARD: timeValue = 60؛ زنگ تفريح؛ مورد ON_SPEED: timeValue = 40 ؛ زنگ تفريح؛ مورد SONIC_SPEED: timeValue = 30 ؛ زنگ تفريح؛ مورد ROCKET_SPEED: timeValue = 20 ؛ زنگ تفريح؛ مورد LIGHT_SPEED: timeValue = 13 ؛ زنگ تفريح؛ مورد MISSION_IMPOSSIBLE: timeValue = 7 ؛ } return timeValue ؛ // مقدار تاخیر را برگردانید // // مشکل برنده شدن پارامترها را افزایش می دهد void افزایش مشکل () {if (دشواری! = MISSION_IMPOSSIBLE && wonThisRound) {مشکل ++؛ }} // LED از دست رفته نمایش فلش خالی () {fill_solid (leds، NUM_LEDS، CRGB:: قرمز)؛ FastLED.show ()؛ تأخیر (500) ؛ fill_solid (leds ، NUM_LEDS ، CRGB:: مشکی) ؛ FastLED.show ()؛ تأخیر (500) ؛ } // برنده LED Show void fadeall () {for (int i = 0؛ i <NUM_LEDS؛ i ++) {leds .nscale8 (250)؛ }} void cylon () {static uint8_t hue = 0؛ Serial.print ("x") ؛ // ابتدا led را در یک جهت برای (int i = 0؛ i = 0؛ i--) {// لامپ های قرمز را به رنگ قرمز = CHSV (رنگ ++ ، 255 ، 255) تنظیم کنید ؛ // نمایش leds FastLED.show ()؛ // اکنون که led ها را نشان دادیم ، i'th led را به رنگ سیاه بازگردانید // leds = CRGB:: Black؛ fadeall ()؛ // کمی صبر کنید تا دور خود را باز کرده و دوباره آن را با تاخیر انجام دهید (10). }}
مرحله 3: در Fixture نصب کنید
من در این قسمت به جزئیات نمی پردازم. هزار راه مختلف برای انجام این قسمت وجود دارد و من فکر می کنم شما باید خلاق باشید تا ظاهر آن به گونه ای باشد که دوست دارید. با توجه به این ، استفاده از ساعت برای قرار دادن LED ها بسیار مناسب بود زیرا دارای نشانگرهای دقیقه ای بود که می توانم از آنها به عنوان علامت مته استفاده کنم. همچنین روکش شیشه ای به من اجازه می دهد از این به عنوان میز استفاده کنم.
چسب زنی برای محکم کردن چراغ LED به وسایل محفظه الکترونیکی بسیار مفید بود. من در آردوینو از velcro استفاده کردم. اگر بخواهم کد را تغییر دهم ، کشیدن Arduino بسیار راحت است.
توصیه شده:
بازی های Steam خود را بر روی بازی Retro Arcade Kit با Raspberry Pi اجرا کنید: 7 مرحله
بازی های Steam خود را روی Retro Arcade Kit با Raspberry Pi اجرا کنید: آیا دارای حساب Steam با جدیدترین بازی ها هستید؟ کابینت بازی چطور؟ اگر چنین است ، چرا هر دو را به یک دستگاه بازی شگفت انگیز Steam Streaming ترکیب نکنید. با تشکر از افراد Steam ، اکنون می توانید جدیدترین بازی ها را از رایانه شخصی یا Ma
بازی Arduino Cyclone: 5 مرحله (همراه با تصاویر)
بازی آردوینو سیکلون: من هرگز بازی واقعی طوفان بازی نکرده ام اما ایده بازی با زمان واکنش ما را دوست دارم. من یک بازی کوچک طراحی کردم. این شامل 32 LED است که یک دایره را تشکیل می دهند ، چراغ های LED یکی پس از دیگری به عنوان رهگیر LED روشن می شوند. هدف این است که یک دکمه را فشار دهید
کنترل کننده بازی مبتنی بر آردوینو - کنترل کننده بازی Arduino PS2 - بازی Tekken With DIY Arduino Gamepad: 7 مرحله
کنترل کننده بازی مبتنی بر آردوینو | کنترل کننده بازی Arduino PS2 | بازی Tekken With DIY Arduino Gamepad: سلام بچه ها ، بازی کردن همیشه سرگرم کننده است اما بازی با کنترلر بازی سفارشی DIY خود سرگرم کننده تر است. بنابراین ما در این دستورالعمل یک کنترلر بازی با استفاده از arduino pro micro ایجاد می کنیم
Cyclone (بازی LED آردوینو): 6 مرحله (همراه با تصاویر)
Cyclone (Arduino LED Game): در این آموزش ، من به شما یاد می دهم که چگونه یک بازی LED با کد یا تجربه بسیار کمی ایجاد کنید! من مدتی بود که این ایده را داشتم و سرانجام شروع به ایجاد آن کردم. این یک بازی سرگرم کننده است که همه ما را به یاد بازی های آرکید می اندازد. آموزش های دیگری نیز وجود دارد
Arduino Cyclone بازی بازی: 6 مرحله
Arduino Cyclone Arcade بازی: چراغهای چشمک زن چشمک زن! آردوینو! بازی! نیاز به گفتن چه چیز بیشتری است؟ این بازی بر اساس بازی بازی Cyclone طراحی شده است ، جایی که بازیکن سعی می کند جلوی چرخش led را در یک نقطه خاص در یک دایره بگیرد