সুচিপত্র:
ভিডিও: NeoPixels Matrix : Snake Game: 4 ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:57
আমাদের ছোটবেলায় আমরা আমাদের গেম বক্স বা মোবাইলে যে সাপের খেলা খেলেছিলাম তা কি এখনও মনে আছে? আজ আমরা শিখব কিভাবে 8*8 NeoPixels ম্যাট্রিক্স দিয়ে একটি সাপের খেলা তৈরি করা যায়। আমরা সাপ নিয়ন্ত্রণের জন্য Arduino uno কে নিয়ন্ত্রণ কেন্দ্র এবং জয়স্টিক ব্রেকআউট মডিউল হিসাবে বেছে নিই।
ধাপ 1: উপাদান তালিকা:
হার্ডওয়্যার:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X নমনীয় 64 RGB LED 8*8 NeoPixels ম্যাট্রিক্স
1 এক্স জয়স্টিক ব্রেকআউট মডিউল BKOUT_MD01
3 এক্স গাইড লাইন
সফটওয়্যার:
Arduino IDE
পদক্ষেপ 2: হার্ডওয়্যার সংযোগ
D2 পিন করতে NeoPixels সংযুক্ত করুন।
জয়েস্টিক ব্রেকআউট মডিউলে "X" Arduino UNO বোর্ডে পিন A0, "Y" সংযোগ পিন A1, "K" সংযোগ পিন A2 সংযুক্ত করে।
ধাপ 3: প্রোগ্রামিং
পি#অন্তর্ভুক্ত
#ডিফাইন পিন 2 // আউটপুট পিন #ডিফাইন MAX_LED 64 // পুঁতির পরিমাণ uint32_t c; int a = 0, সংখ্যা; স্বাক্ষরহীন চর হুয়ান = 0, সিআই = 0; স্বাক্ষরবিহীন চার u = 40; // ওয়ার্ড গ্রুপের স্বাক্ষরহীন স্বাক্ষরযুক্ত অক্ষর x = 0; স্বাক্ষরবিহীন চর রঙ [3]; স্বাক্ষরবিহীন চর গো = {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},}; স্বাক্ষরবিহীন অক্ষর [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, 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, 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, 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 },}; স্বাক্ষরবিহীন চার ডিসপ্লেস্কোর [8] [8]; int গতি S = 400; // সাপের int স্কোরের প্রাথমিক গতি; // গেম স্কোর int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // খাদ্যের সমন্বয় SX, SY; // সাপের মাথার সমন্বয় KEY, K; int সক্রিয়; // খেলা চর এসএক্স [64] পুনরায় চালু করতে সক্ষম করুন; // সাপের শরীরের চর sy [64] এর সমন্বয়; Adafruit_NeoPixel স্ট্রিপ = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); অকার্যকর RANDOM () {A: FX = এলোমেলো (0, 7); FY = এলোমেলো (0, 7); জন্য (int i = 0; i <3+score; i ++) // সাপের শরীরে খাদ্য প্রদর্শন প্রতিরোধ {যদি (FX == sx && FY == sy ) goto A; }} অকার্যকর MyDelay (স্বাক্ষরবিহীন int সময়) {// সাপের চলাচলের বিলম্বকালীন সময়ে, আমাদের খাদ্য গ্লিটার এর মত কিছু করতে হবে এবং (int t = 1; t 950 && KEY! = 5) এর জন্য জয়স্টিকের নির্দেশনা পড়তে হবে। কে = 8; } অন্যথায় যদি (yValue <50 && KEY! = 8) {K = 5; } অন্যথায় যদি (xValue 950 && KEY! = 4) {K = 6; }} // এখানে আপনি তুলনা করতে পারেন কীপ্যাডের দিক সাপের চলার দিকের বিপরীত কিনা। যদি এটি বিপরীত হয়, তাহলে কীপ্যাড ছেড়ে দিন। /***************************************************** ****************************************************** ****************************************************** ****************************************************** ********/ অকার্যকর গেমওভার () {// একবার গেমওভার প্রোগ্রাম বন্ধ হয়ে গেলে, গেমটি পুনরায় চালু করতে কেন্দ্রীয় বোতাম টিপুন। স্বাক্ষরবিহীন চার মান, y; রঙ [0] = এলোমেলো (3, 18); // সেট রঙ প্যারামিটার হল R G B, পরিসীমা 0-255। রঙ [1] = এলোমেলো (3, 18); রঙ [2] = এলোমেলো (3, 18); c = strip. Color (কালার [1], কালার [0], কালার [2]); মান = স্কোর / 10; মান = মান * 4; y = 0; জন্য (সংখ্যা = মান; সংখ্যা <মান+4; সংখ্যা ++) {জন্য (স্বাক্ষরবিহীন চারটি উল্লম্ব = 0; উল্লম্ব <8; উল্লম্ব ++) {ডিসপ্লেস্কোর [y] [উল্লম্ব] = অক্ষর [সংখ্যা] [উল্লম্ব]; } y ++; } মান = স্কোর % 10; মান = মান * 4; জন্য (সংখ্যা = মান; সংখ্যা <মান+4; সংখ্যা ++) {জন্য (স্বাক্ষরবিহীন চারটি উল্লম্ব = 0; উল্লম্ব <8; উল্লম্ব ++) {ডিসপ্লেস্কোর [y] [উল্লম্ব] = অক্ষর [সংখ্যা] [উল্লম্ব]; } y ++; } এর জন্য (স্বাক্ষর না করা চর অনুভূমিক = 0; অনুভূমিক <8; অনুভূমিক ++) {জন্য (স্বাক্ষরবিহীন চারটি উল্লম্ব = 0; উল্লম্ব <8; উল্লম্ব ++) {যদি (ডিসপ্লেস্কোর [অনুভূমিক] [উল্লম্ব] == 1) // আলো কিনা তা বিচার করুন চালু আছে {strip.setPixelColor (হালকা [অনুভূমিক] [উল্লম্ব], গ); } অন্য strip.setPixelColor (হালকা [অনুভূমিক] [উল্লম্ব], 0); }} strip.show (); // ডেটা বিলম্ব পাঠান (5000); কে = 0; // রিসেট জয়স্টিক দিক sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // সাপ সমন্বয় স্কোর = 0 রিসেট করুন; // রিসেট গেম স্কোর স্পীড = 400; // সাপের প্রাথমিক গতি} অকার্যকর সেটআপ () {Serial.begin (9600); // লাইব্রেরি strip.begin () শুরু করুন; // তথ্য পাঠান. প্রতিটি বিন্দুর রঙ 0 হিসাবে ডিফল্ট। সুতরাং প্রতিটি বিন্দু শুরুতে আলোকিত হয় না। strip.show (); কে = 0; // জয়স্টিক 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 = strip. Color (কালার [1], কালার [0], কালার [2]); // সবুজ লাল নীল // রং সেট করুন (সংখ্যা = 0; সংখ্যা <24; সংখ্যা ++) {strip.setPixelColor (go [number], c); } strip.show (); // ডেটা বিলম্ব পাঠান (2000); র্যান্ডম (); // খাদ্য উত্পাদন} অকার্যকর মোবাইল () {KEY = K; // সাপের প্রতিটি চলাচল একবারের জন্য দিক পরিবর্তন করে। যদি (KEY == 8) // সাপের wardর্ধ্বমুখী আন্দোলন {জন্য (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] - 1; যদি (sy [0] <0) // সীমানা পেরিয়ে যান এবং অন্য দিকে sy [0] = 7 চালিয়ে যান; } অন্যথায় যদি (KEY == 5) // সাপের নিম্নমুখী আন্দোলন {জন্য (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] + 1; যদি (sy [0]> 7) // সীমানা পেরিয়ে যান এবং অন্য দিকে sy [0] = 0 চালিয়ে যান; } অন্যথায় যদি (KEY == 4) // সাপের বাম আন্দোলন {জন্য (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] - 1; যদি (sx [0] <0) // সীমানা ছাড়িয়ে যান এবং অন্য দিকে চলুন sx [0] = 7; } অন্যথায় যদি (KEY == 6) // সাপের ডান গতি {{int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] + 1; যদি (sx [0]> 7) // সীমানা ছাড়িয়ে যান এবং অন্য দিকে চলুন sx [0] = 0; } // বোতাম দিয়ে সাপের দেহ সরান} অকার্যকর প্রদর্শন () {জন্য (সংখ্যা = 0; সংখ্যা <64; সংখ্যা ++) // পর্দা সাফ করুন {strip.setPixelColor (সংখ্যা, 0); } strip.show (); রঙ [0] = 40; // রঙ সেট করুন। প্যারামিটার হল R G B, পরিসীমা 0-255। রঙ [1] = 0; রঙ [2] = 0; c = strip. Color (কালার [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 = strip. Color (কালার [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 = strip. Color (কালার [1], কালার [0], কালার [2]); // সবুজ লাল নীল // সেট রঙ x = হালকা [sx [0] [sy [0]; // প্রদর্শন সাপের মাথা strip.setPixelColor (x, c); strip.show (); // send data} void loop () {mobile (); myDelay (speedS); // Within এর মধ্যে) বিলম্বের সময়। প্রদর্শন (); SX = sx [0]; SY = sy [0]; // সাপের মাথার সমন্বয় পান (int i = 1; i <= 2+score; i ++) {if (SX == sx && SY == sy ) গেমওভার (); } // সাপের মাথা তার শরীরে স্পর্শ করেছে কিনা বিচার করুন। যদি স্পর্শ করা হয়, তাহলে GameOver- এ ফরওয়ার্ড করুন। যদি (SY == FY && SX == FX) {RANDOM (); স্কোর ++; রঙ [0] = 40; // রঙ সেট করুন। প্যারামিটার হল R G B, পরিসীমা 0-255। রঙ [1] = 0; রঙ [2] = 0; c = strip. Color (কালার [1], কালার [0], কালার [2]); // সবুজ লাল নীল // সেট রঙ x = আলো [FX] [FY]; // প্রদর্শন খাদ্য strip.setPixelColor (x, c); strip.show (); // তথ্য পাঠান যদি (! (স্কোর % 5)) {// স্কোর অনুযায়ী সাপের গতি বাড়ান। প্রতি 5 টি খাবার খাওয়া, 100ms accerlerate। speedS = speedS - 50; যদি (speedS <150) // নিচের সীমা 200ms হয়। যদি গতি 200ms এর কম হয়, গতি 200ms থাকে। speedS = 150; }} // খাবার খাওয়া হয় কিনা বিচার করুন। যদি সাপ খাবার খায়, তাহলে প্লাস স্কোর এবং এলোমেলোভাবে খাদ্য পুনর্জন্ম। }
পরীক্ষার ফলাফল
ধাপ 4: পরীক্ষার ফলাফল
আপেক্ষিক পাঠ:
FreaksBot ব্লুটুথ কার
Arduino দিয়ে 8*8 NeoPixels ম্যাট্রিক্সে প্রথম মালা জ্বালান
মাইক্রো: বিট এক্সপেরিমেন্ট 05: RGB LED - Elecfreaks Mirco: bit স্টার্টার কিট কোর্স
শুক্রবার প্রোডাক্ট পোস্ট: এলইডি মিউজিক ফ্রিকোয়েন্সি স্পেকট্রাম ডিসপ্লে সোল্ডারিং কিট
একটি স্মার্ট লাইট তৈরি করতে ElecFreaks মাইক্রো: বিট টিঙ্কার কিট ব্যবহার করুন
প্রস্তাবিত:
DIY স্মার্ট LED ম্যাট্রিক্স (ESP8266 + WS2812 / NeoPixels): 7 টি ধাপ (ছবি সহ)
DIY স্মার্ট LED ম্যাট্রিক্স (ESP8266 + WS2812 / NeoPixels): এখানে আমার একটি প্রজেক্টের পরিচিতি দেওয়া হল যা আমি আপনাকে দেখাতে খুবই উৎসাহিত। এটি একটি DIY স্মার্ট LED ম্যাট্রিক্স যা আপনাকে এটি দেখাতে দেবে, যেমন ইউটিউব পরিসংখ্যান, আপনার স্মার্ট হোম পরিসংখ্যান, যেমন তাপমাত্রা, আর্দ্রতা, একটি সাধারণ ঘড়ি হতে পারে
M5StickC ESP32 এবং NeoPixels LED রিং এলোমেলো রঙ: 7 ধাপ
M5StickC ESP32 এবং NeoPixels LED রিং এলোমেলো রঙ: এই প্রজেক্টে আমরা শিখব কিভাবে M5StickC ESP32 বোর্ড ব্যবহার করে NeoPixels LED রিং এ এলোমেলো রঙ প্রদর্শন করতে হয়। ভিডিওটি দেখুন
Arduino Gemma এবং NeoPixels এর সাথে সহজ ইনফিনিটি মিরর: 8 টি ধাপ (ছবি সহ)
Arduino Gemma এবং NeoPixels এর সাথে সহজ ইনফিনিটি মিরর: দেখুন! মোহনীয় এবং প্রতারণামূলকভাবে সহজ অনন্ত আয়নার গভীরে দেখুন! সীমাহীন প্রতিবিম্বের প্রভাব তৈরি করতে একটি আয়না স্যান্ডউইচের উপর এলইডিগুলির একটি একক ফালা ভিতরের দিকে জ্বলজ্বল করে। এই প্রকল্পটি আমার ভূমিকা Arduin থেকে দক্ষতা এবং কৌশল প্রয়োগ করবে
Arduino OLED Snake Game: 3 ধাপ
আরডুইনো ওএলইডি স্নেক গেম: হাই এবং ওয়েলকাম, কিভাবে আমাদের আর্ডুইনো ওএলইডি গেম তৈরি করা যায় সে সম্পর্কে আমাদের নির্দেশাবলীতে, এই প্রকল্পটি এসেছিল যখন আমরা একটি আর্ডুইনো, সোও দিয়ে আমাদের প্রথম গেম তৈরির চেষ্টা করছিলাম, আমরা ভেবেছিলাম নকিয়ার চেয়ে কোথায় শুরু করা ভাল ক্লাসিক সাপ (ভাল অন্তত
Arduino Pocket Game Console + A -Maze - Maze Game: 6 ধাপ (ছবি সহ)
Arduino Pocket Game Console + A -Maze - Maze Game: আমার প্রথম নির্দেশযোগ্যতে আপনাকে স্বাগতম! যে প্রকল্পটি আমি আজ আপনার সাথে শেয়ার করতে চাই তা হল Arduino maze গেম, যা Arduboy এবং অনুরূপ Arduino ভিত্তিক কনসোল হিসাবে সক্ষম একটি পকেট কনসোল হয়ে উঠেছে। এটি আমার (বা আপনার) ভবিষ্যতের গেমগুলির সাথে ঝলকানো যেতে পারে ধন্যবাদ এক্সপোকে