فهرست مطالب:
تصویری: بازی NeoPixels Matrix : Snake: 4 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
آیا هنوز بازی مار را که در دوران کودکی روی جعبه یا موبایل بازی می کردیم به خاطر دارید؟ امروز ما قصد داریم نحوه ساخت بازی مار با ماتریس NeoPixels 8*8 را بیاموزیم. ما Arduino uno را به عنوان مرکز کنترل و ماژول شکست Joystick را برای کنترل مار انتخاب می کنیم.
مرحله 1: فهرست اجزاء:
سخت افزار:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X Flexible 64 RGB LED 8*8 NeoPixels Matrix
1 X ماژول شکست Joystick BKOUT_MD01
3 X راهنمای خط
نرم افزار:
آردوینو IDE
مرحله 2: اتصال سخت افزار
NeoPixels را به پین D2 وصل کنید.
"X" در ماژول شکست Joystick پین A0 را روی برد Arduino UNO وصل کنید ، "Y" پین A1 ، "K" پین A2 را وصل کنید.
مرحله 3: برنامه نویسی
P#شامل
#تعریف پین 2 // پین خروجی #تعریف MAX_LED 64 // مقدار مهره uint32_t c؛ int a = 0 ، شماره ؛ کاراکتر بدون امضا huan = 0 ، ci = 0؛ char بدون امضا u = 40؛ // اندازه فونت گروه کلمات unsigned char x = 0؛ رنگ بدون علامت رنگ [3]؛ char charged = {2، 3، 4، 5، 9، 14، 17، 20، 22، 26، 27، 29، 34، 35، 36، 37، 41، 46، 49، 54، 58، 59 ، 60 ، 61} ؛ // 24 چراغ بدون علامت بدون علامت [8] [8] = {{0، 1، 2، 3، 4، 5، 6، 7}، {15، 14، 13، 12، 11، 10، 9، 8}، {16، 17، 18، 19، 20، 21، 22، 23}، {31، 30، 29، 28، 27، 26، 25، 24}، {32، 33، 34، 35، 36، 37، 38 ، 39}، {47، 46، 45، 44، 43، 42، 41، 40}، {48، 49، 50، 51، 52، 53، 54، 55}، {63، 62، 61، 60، 59 ، 58 ، 57 ، 56} ،} ؛ کاراکتر unsigned char [8] = // کلمه ارسال شده را تنظیم کنید {{0، 1، 1، 1، 1، 1، 0، 0}، {0، 1، 0، 0، 0، 1، 0 ، 0}، // 0 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، // 1 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 0، 1، 1، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0 ، 0}، // 2 {0، 1، 1، 1، 0، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 0، 1، 0، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0، 0}، // 3 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 1، 1، 0، 0، 0، 0}، {0، 0، 0، 1، 0، 0، 0 ، 0}، // 4 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 1، 1، 0، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0، 0}، // 5 {0، 1، 0، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 1، 1، 1، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0 ، 0}، // 6 {0، 1، 0، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 0، 0، 0، 0، 0، 0}، {0، 1، 0، 0، 0، 0، 0، 0}، // 7 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 1، 1، 1، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0 ، 0} ، // 8 {0 ، 1 ، 1 ، 1 ، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0}، {0، 1، 1، 1، 0، 1، 0، 0}، {0، 1، 0، 1، 0، 1، 0، 0}، // 9 {0، 1، 1، 1، 1، 1، 0، 0}، {0، 0، 0، 0، 0، 0، 0، 0، 0 } ،} ؛ نمایشگر char بدون علامت [8] [8]؛ int intS = 400 ؛ // سرعت اولیه مار int int؛ // امتیاز بازی int xValue؛ // JoyStick-X int yValue ؛ // JoyStick-Y int zValue ؛ // JoyStick-Z int FX، FY؛ // مختصات غذا int SX، SY؛ // مختصات سر مار int KEY، K؛ int فعال شده است ؛ // فعال کردن راه اندازی مجدد بازی char sx [64] ؛ // مختصات بدن مار char sy [64]؛ نوار Adafruit_NeoPixel = Adafruit_NeoPixel (MAX_LED ، PIN ، NEO_RGB + NEO_KHZ800) ؛ void RANDOM () {A: FX = تصادفی (0 ، 7) ؛ FY = تصادفی (0 ، 7) ؛ for (int i = 0؛ i <3+score؛ i ++) // جلوگیری از نمایش غذا روی بدن مار {if (FX == sx && FY == sy ) goto A؛ }} void myDelay (unsigned int Time) {// در طول مدت تأخیر حرکت مار ، ما باید کاری مانند درخشش غذا انجام دهیم و جهت Joystick را برای (int t = 1؛ t 950 && KEY! = 5) {بخوانیم { K = 8 ؛ } else if (yValue <50 && KEY! = 8) {K = 5؛ } else if (xValue 950 && KEY! = 4) {K = 6؛ }} // در اینجا می توانید مقایسه کنید که آیا جهت صفحه کلید خلاف جهت حرکت مار است یا خیر. اگر مخالف است ، صفحه کلید را رها کنید. /********************************************* ************************************************ ************************************************* ************************************************* ********/ void gameover () {// هنگامی که برنامه Gameover متوقف شد ، دکمه مرکزی را برای راه اندازی مجدد بازی فشار دهید. مقدار char بدون علامت ، y ؛ رنگ [0] = تصادفی (3 ، 18) ؛ // تنظیم رنگ. پارامتر R G B است ، محدوده 0-255. رنگ [1] = تصادفی (3 ، 18) ؛ رنگ [2] = تصادفی (3 ، 18) ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ ارزش = امتیاز / 10 ؛ ارزش = ارزش * 4 ؛ y = 0 ؛ for (number = value؛ number <value+4؛ number ++) {for (unsigned char vertical = 0؛ vertical <8؛ vertical ++) {displayscore [y] [vertical] = character [number] [vertical]؛ } y ++ ؛ } ارزش = نمره٪ 10 ؛ ارزش = ارزش * 4 ؛ for (number = value؛ number <value+4؛ number ++) {for (unsigned char vertical = 0؛ vertical <8؛ vertical ++) {displayscore [y] [vertical] = character [number] [vertical]؛ } y ++ ؛ } برای (کاراکتر بدون علامت افقی = 0 ؛ افقی <8 ؛ افقی ++) {برای (کاراکتر بدون علامت عمودی = 0 ؛ عمودی <8 ؛ عمودی ++) {if (نمایشگر [افقی] [عمودی] == 1) // قضاوت کنید که آیا نور روشن است {strip.setPixelColor (نور [افقی] [عمودی] ، ج) ؛ } else strip.setPixelColor (نور [افقی] [عمودی] ، 0) ؛ }} strip.show ()؛ // ارسال تاخیر داده (5000) ؛ K = 0 ؛ // بازنشانی جهت جوی استیک sx [0] = 2؛ sx [1] = 1؛ sx [2] = 0 ؛ sy [0] = 1 ؛ sy [1] = 1 ؛ sy [2] = 1 ؛ // بازنشانی امتیاز مختصات مار = 0 ؛ // بازنشانی سرعت امتیاز بازی = 400؛ // سرعت اولیه مار} void setup () {Serial.begin (9600)؛ // راه اندازی کتابخانه strip.begin ()؛ // ارسال داده ها رنگ هر نقطه را به صورت پیش فرض 0 قرار دهید. بنابراین هر نقطه در ابتدا روشن نمی شود. strip.show ()؛ K = 0 ؛ // جهت Joystick sx [0] = 2 را بازنشانی کنید؛ sx [1] = 1؛ sx [2] = 0 ؛ sy [0] = 1 ؛ sy [1] = 1 ؛ sy [2] = 1 ؛ // بازنشانی امتیاز مختصات مار = 0 ؛ // بازنشانی نمره بازی رنگ [0] = تصادفی (3 ، 18) ؛ // تنظیم رنگ. پارامتر R G B است ، محدوده 0-255. رنگ [1] = تصادفی (3 ، 18) ؛ رنگ [2] = تصادفی (3 ، 18) ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ // سبز قرمز آبی // تنظیم رنگ برای (number = 0؛ number <24؛ number ++) {strip.setPixelColor (go [number]، c)؛ } strip.show ()؛ // ارسال تاخیر داده (2000) ؛ تصادفی()؛ // تولید غذا} void mobile () {KEY = K؛ // هر حرکت مار برای یکبار تغییر جهت می دهد. if (KEY == 8) // حرکت مار به سمت بالا {برای (int i = 2 + نمره ؛ i> 0 ؛ i--) {sx = sx [i-1] ؛ sy = sy [i - 1] ؛ } sy [0] = sy [0] - 1 ؛ if (sy [0] <0) // از مرز خارج شوید و در طرف دیگر sy [0] = 7 ادامه دهید؛ } else if (KEY == 5) // حرکت مار به سمت پایین {برای (int i = 2 + نمره ؛ i> 0 ؛ i--) {sx = sx [i-1] ؛ sy = sy [i - 1] ؛ } sy [0] = sy [0] + 1 ؛ if (sy [0]> 7) // از مرز فراتر رفته و در طرف دیگر sy [0] = 0 را ادامه دهید ؛ } else if (KEY == 4) // حرکت مار به چپ {برای (int i = 2 + نمره ؛ i> 0 ؛ i--) {sx = sx [i-1] ؛ sy = sy [i - 1] ؛ } sx [0] = sx [0] - 1 ؛ if (sx [0] <0) // از مرز خارج شوید و در طرف دیگر ادامه دهید sx [0] = 7؛ } else if (KEY == 6) // حرکت مار درست {برای (int i = 2 + نمره ؛ i> 0 ؛ i--) {sx = sx [i-1] ؛ sy = sy [i - 1] ؛ } sx [0] = sx [0] + 1؛ if (sx [0]> 7) // از مرز خارج شوید و در طرف دیگر ادامه دهید sx [0] = 0؛ } // بدن مار را با دکمه حرکت دهید} void displays () {for (number = 0؛ number <64؛ number ++) // Clear the screen {strip.setPixelColor (number، 0)؛ } strip.show ()؛ رنگ [0] = 40 ؛ // تنظیم رنگ. پارامتر R G B ، محدوده 0-255 است. رنگ [1] = 0 ؛ رنگ [2] = 0 ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ // سبز قرمز آبی // تنظیم رنگ x = روشن [FX] [FY] ؛ // نمایش strip.setPixelColor (x ، c) ؛ رنگ [0] = تصادفی (3 ، 18) ؛ // تنظیم رنگ. پارامتر R G B ، محدوده 0-255 است. رنگ [1] = تصادفی (3 ، 18) ؛ رنگ [2] = تصادفی (3 ، 18) ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ // سبز قرمز آبی // تنظیم رنگ برای (int i = 2 + score ؛ i> 0؛ i--) // نمایش بدن مار {x = light [sx [sy ؛ strip.setPixelColor (x ، c) ؛ } رنگ [0] = 0 ؛ // تنظیم رنگ. پارامتر R G B ، محدوده 0-255 است. رنگ [1] = 40 ؛ رنگ [2] = 0 ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ // سبز قرمز آبی // تنظیم رنگ x = روشن [sx [0] [sy [0] ؛ // نمایش نوار سر مار. setPixelColor (x، c)؛ strip.show ()؛ // ارسال داده} حلقه void () {mobile ()؛ myDelay (speedS) ؛ // درون () زمان تاخیر است. نمایش ()؛ SX = sx [0] ؛ SY = sy [0] ؛ // مختصات سر مار را برای (int i = 1 ؛ i <= 2+نمره ؛ i ++) {if (SX == sx && SY == sy ) gameover () دریافت کنید. } // قضاوت کنید که آیا سر مار به بدن او برخورد کرده است یا خیر. اگر لمس شد ، سپس به GameOver منتقل کنید. if (SY == FY && SX == FX) {RANDOM ()؛ نمره ++ ؛ رنگ [0] = 40 ؛ // تنظیم رنگ. پارامتر R G B ، محدوده 0-255 است. رنگ [1] = 0 ؛ رنگ [2] = 0 ؛ c = نوار. رنگ (رنگ [1] ، رنگ [0] ، رنگ [2]) ؛ // سبز قرمز آبی // تنظیم رنگ x = روشن [FX] [FY] ؛ // نمایش strip.setPixelColor (x ، c) ؛ strip.show ()؛ // ارسال داده اگر (! (نمره٪ 5)) {// سرعت مار را مطابق نمره بدست آورید. هر 5 غذای خورده شده ، 100 میلی متر جمع کنید. speedS = speedS - 50 ؛ if (speedS <150) // حد پایین 200 میلی ثانیه است. اگر سرعت کمتر از 200 میلی ثانیه باشد ، سرعت 200 میلی متر باقی می ماند. speedS = 150؛ }} // در مورد خوردن غذا قضاوت کنید. اگر مار غذا می خورد ، به علاوه نمره می دهد و غذا را به طور تصادفی بازسازی می کند. }
نتیجه آزمایش
مرحله 4: نتیجه آزمایش
خواندن نسبی:
ماشین بلوتوث FreaksBot
اولین مهره را روی ماتریس NeoPixels 8*8 با آردوینو روشن کنید
Micro: bit Experiment 05: RGB LED - Elecfreaks Mirco: bit Starter Kit Course
جمعه پست محصول: کیت لحیم کاری نمایش طیف فرکانس موسیقی LED
برای ایجاد یک نور هوشمند از ElecFreaks Micro: bit Tinker Kit استفاده کنید
توصیه شده:
لیزربیک Nightvision! (یا چگونه می توان یک چراغ قوه محافظ شب ، LED Throwie ، ترانسفورماتور اسباب بازی اسباب بازی!): 5 مرحله
لیزربیک Nightvision! (یا چگونه می توان یک چراغ قوه شب تاب ، LED Throwie ، ترانسفورماتور اسباب بازی اسباب بازی ترانسفورماتور ساخت!): یک دستورالعمل برای noob برای noob. هنگامی که یک چراغ قوه محافظ شب ، یک پرتاب کننده LED و یک ترانسفورماتور تند را مخلوط می کنید ، چه چیزی دریافت می کنید. اسباب بازی؟ آموزشی با نام واقعاً طولانی! ما آن را & quot؛ Laserbeak Nightvision & quot؛ برای
بازی های نینتندو را در Idevice با Wiimote به صورت رایگان بازی کنید!: 6 مرحله
بازی های Nintendo را در Idevice با Wiimote به صورت رایگان بازی کنید !: آیا تا به حال برای دریافت بازی Super Nintendo به فروشگاه برنامه رفته اید ، اما نمی توانید یکی را برای بازی پیدا کنید. خوب حالا می توانید این بازی های نینتندو را با شبیه ساز snes از cydia انجام دهید. این شبیه ساز به شما امکان می دهد بازی های نینتندو را بر روی دستگاه خود انجام دهید ، حتی
بازی های Steam خود را بر روی بازی Retro Arcade Kit با Raspberry Pi اجرا کنید: 7 مرحله
بازی های Steam خود را روی Retro Arcade Kit با Raspberry Pi اجرا کنید: آیا دارای حساب Steam با جدیدترین بازی ها هستید؟ کابینت بازی چطور؟ اگر چنین است ، چرا هر دو را به یک دستگاه بازی شگفت انگیز Steam Streaming ترکیب نکنید. با تشکر از افراد Steam ، اکنون می توانید جدیدترین بازی ها را از رایانه شخصی یا Ma
کنترل کننده بازی مبتنی بر آردوینو - کنترل کننده بازی Arduino PS2 - بازی Tekken With DIY Arduino Gamepad: 7 مرحله
کنترل کننده بازی مبتنی بر آردوینو | کنترل کننده بازی Arduino PS2 | بازی Tekken With DIY Arduino Gamepad: سلام بچه ها ، بازی کردن همیشه سرگرم کننده است اما بازی با کنترلر بازی سفارشی DIY خود سرگرم کننده تر است. بنابراین ما در این دستورالعمل یک کنترلر بازی با استفاده از arduino pro micro ایجاد می کنیم
بازی Arduino OLED Snake: 3 مرحله
بازی Arduino OLED Snake: سلام و خوش آمدید ، به دستورالعمل های ما در مورد نحوه ساخت و arduino OLED Game ، این پروژه زمانی به وجود آمد که ما سعی می کردیم اولین بازی خود را با arduino انجام دهیم ، بنابراین ، ما فکر کردیم که بهتر از نوکیا از کجا شروع کنیم مار کلاسیک (خوب حداقل