সুচিপত্র:
ভিডিও: ATtiny85 এবং OLED ডিসপ্লে SSD1306 এ Flappy Bird: 6 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
হেই সবাই, আজ আমি আপনাকে তৈরি একটি মৌলিক flappy পাখি ক্লোন দেখাতে যাচ্ছি, এবং আপনি কিভাবে একটি অনুরূপ খেলা তৈরি করতে যেতে পারেন। আমি মূলত আপনার সাথে আমার কোডটি চালাব এবং ব্যাখ্যা করব কিভাবে এটি প্রতিটি ধাপে কাজ করে। এই গেমটি তৈরি করা হয়েছে ATTiny85 এ 1MHz এ ক্লক করা, I2C OLED ডিসপ্লে সহ। এগিয়ে!
ধাপ 1: হার্ডওয়্যার
যদি আপনি আসলে গেমের জন্য একটি সার্কিট তৈরিতে আগ্রহী না হন কিন্তু এর পিছনের তত্ত্বটি বুঝতে চান, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।
আমার গেমের জন্য দুটি বোতাম, একটি ATtiny85, একটি I2C OLED 128x64px স্ক্রিন এবং কিছু শক্তির উৎস প্রয়োজন। আমার ইন্সট্রাক্টেবল বিজনেস কার্ড/গেম কনসোল: ATtiny85 এবং OLED স্ক্রিন আপনাকে দেখায় যে কিভাবে একটি বোর্ড তৈরি করতে হবে যাতে আপনার প্রয়োজনীয় সবকিছু আছে! আপনি যদি আমার বোর্ড তৈরিতে আগ্রহী না হন তবে আপনার রুটিবোর্ডটি বের করুন এবং আমি আপনাকে স্পেসিফিকেশন বলব। আপনি ATtiny85 এর যেকোনো রূপ ব্যবহার করতে পারেন। আমি এই মত OLED প্রদর্শন সুপারিশ
- আপনার ATtiny85 এ 2 এবং 3 পিনে দুটি পুশবাটনের এক পাশে ওয়্যার করুন। এই তারগুলিতে, মাটির সাথে সংযুক্ত একটি 10k ওহম প্রতিরোধকও যুক্ত করুন (টান-ডাউন প্রতিরোধক)।
- এই pushbuttons এর অন্য দিকে ভোল্টেজের ওয়্যার করুন। যখন বোতামটি চাপানো হয় না, তখন পিনের অবস্থা কম হবে। যখন এটি চাপা হয়, পিন অবস্থা উচ্চ হবে।
- আপনার ডিসপ্লেতে এসসিএল পিনের সাথে পিন 7 সংযুক্ত করুন এবং আপনার ডিসপ্লেতে এসডিএ পিনের সাথে 5 পিন করুন। সেই অনুযায়ী ডিসপ্লেতে পাওয়ার পিন (VCC এবং GND) লাগান।
- অবশেষে, ATTiny- এ পিন 4 কে মাটিতে সংযুক্ত করুন এবং 8 টি ভোল্টেজে পিন করুন।
পদক্ষেপ 2: সফ্টওয়্যার
গেমটি চালানোর জন্য আপনার প্রয়োজনীয় সমস্ত ফাইল সহ একটি ফোল্ডার এখানে সংযুক্ত করা হয়েছে। দুটি ফাইল, FlappyBird.ino এবং WallFunctions.h, আপনার পড়ার আনন্দের জন্য খুব ভালভাবে মন্তব্য করা হয়েছে। আপনি আপনার ATtiny85 (1MHz এ) এ FlappyBird.ino স্কেচ আপলোড করতে পারেন এবং খেলতে পারেন! যদি এই গেমের পিছনে তত্ত্ব শেখা আপনার আগ্রহী হয়, অথবা আপনি নিজের খেলা তৈরি করতে চান, তাহলে পড়ুন!
আমার খেলায় এখনও কিছু সমস্যা আছে। I2C কোনও উপায়ে ডেটা প্রেরণের সেরা উপায় নয়। এই পোস্ট অনুসারে, ডিসপ্লে শুধুমাত্র 100KHz এ ডেটা গ্রহণ করতে পারে, তাই আমরা ATTiny ঘড়ির গতি 8MHz পর্যন্ত বাড়ালেও I2C চ্যানেলটি বাধা হয়ে থাকবে। ডিসপ্লে সর্বোচ্চ 10fps আউটপুট করতে পারে। ডিসপ্লেতে যত বেশি আলাদা ছবি আঁকতে হবে, পুরো প্রক্রিয়া তত ধীর হবে। সুতরাং, আমার খেলাটি বেশ সহজ কারণ আপনি পর্দা জুড়ে দেয়ালগুলি খুব দ্রুত সরাতে পারবেন না! আপনার জন্য কিছু চ্যালেঞ্জ নিচে দেওয়া হল যদি আপনি মনে করেন যে আপনি কাজটি করছেন:
- গেমটিকে আরও কঠিন করার জন্য, দেখুন যে আপনি দেয়ালের মধ্যে ব্যবধান 4 এর পরিবর্তে 2 করতে পারেন কিনা, আমার প্রোগ্রাম কীভাবে কাজ করে তা বুঝতে পারলে এটি খুব কঠিন হওয়া উচিত নয়:)। আপনি যদি এটি কাজ করতে পারেন তবে মন্তব্যগুলিতে পোস্ট করুন!
- আমার গেমের আরেকটি জিনিসের অভাব হল একটি স্কোর সিস্টেম এবং স্কোর প্রদর্শন এবং সংরক্ষণ করার একটি উপায়। আপনি একটি বাস্তবায়ন করতে পারেন কিনা দেখুন!
- পরিশেষে, দেয়ালগুলি এক সময়ে একটি কলাম সরানোর চেয়ে, মসৃণ গতির জন্য প্রতিটি দেয়ালকে এক সময়ে একটি পিক্সেল সরানোর চেষ্টা করুন।
ধাপ 3: ফ্ল্যাপি বার্ড ATtiny85: তত্ত্ব
যদিও আমরা যে ডিসপ্লেটি ব্যবহার করছি তা গেমের জন্য ব্যবহার করার জন্য 64 পিক্সেল উচ্চতা, এটি শুধুমাত্র 8 পিক্সেলের ব্লকে উপাদানগুলি স্থাপন করা সম্ভব। এইভাবে, শুধুমাত্র 8 টি সম্ভাব্য y- স্থানাঙ্ক রয়েছে। জিনিসগুলিকে আরও সহজ করার জন্য, সফ্টওয়্যারে আমি এই পদ্ধতিতে পুরো স্ক্রিনটি ভাগ করেছি, 16 টি ব্লকের 8 টি ব্লকের একটি গ্রিড তৈরি করেছি, যেখানে প্রতিটি ব্লক 8x8 পিক্সেল। প্রতিটি ব্লক পূরণ করতে, গেমের প্রতিটি স্প্রাইট 8x8 পিক্সেল। এটি সবকিছু পরিচালনা করা অনেক সহজ করে তোলে। আপনি যদি উপরের চিত্রটি দেখেন তবে আপনি দেখতে পাবেন যে আমি কীভাবে পর্দা ভাগ করেছি। প্রতিটি দেয়াল 6 টি ব্লকের সমন্বয়ে গঠিত, যার উচ্চতা 2 টি ব্লক, প্রতিটি দেয়ালের মোট উচ্চতা 8 টি ব্লক।
প্রোগ্রামে, প্রতিটি প্রাচীরকে একটি কাঠামো হিসেবে উপস্থাপন করা হয়, যাকে বলা হয় ওয়াল। প্রতিটি প্রাচীর কাঠামোর দুটি বৈশিষ্ট্য রয়েছে - গর্ত অবস্থান এবং কলাম। 'হোলপজিশন' একটি সংখ্যা 0-6, কারণ 8 টি ব্লকের একটি প্রাচীরের মধ্যে 2 টি ব্লকের উচ্চতার জন্য কেবল 7 টি সম্ভাব্য অবস্থান রয়েছে। 'কলাম' হল 0-15 নম্বর, কারণ স্ক্রিনে 16 টি ব্লক সম্ভব।
প্রস্তাবিত:
OLED ডিসপ্লে এবং Arduino এর সাথে মজা: 12 টি ধাপ (ছবি সহ)
ওএলইডি ডিসপ্লে এবং আরডুইনো সহ মজা: আমি নিশ্চিত যে আপনি অবশ্যই ওএলইডি ডিসপ্লে প্রযুক্তি সম্পর্কে শুনেছেন। এটি অপেক্ষাকৃত নতুন এবং পুরানো এলসিডি প্রযুক্তির চেয়ে উন্নত মানের প্রস্তাব দেয়। এই টিউটোরিয়ালে আমরা সবচেয়ে সাধারণ একক কোম্পানিতে ডেটা প্রদর্শনের জন্য প্রয়োজনীয় পদক্ষেপগুলি পর্যালোচনা করতে চাই
Arduino Uno এবং OLED 0.96 SSD1306 ডিসপ্লে দিয়ে একটি PONG গেম খেলুন: 6 টি ধাপ
Arduino Uno এবং OLED 0.96 SSD1306 ডিসপ্লে দিয়ে একটি PONG গেম খেলুন: হাই বন্ধুরা আজ আমরা Arduino এর সাথে একটি PONG গেম তৈরি করব। আমরা অ্যাডাফ্রুট এর 0.96 ওলেড ডিসপ্লে ব্যবহার করব গেমটি প্রদর্শনের জন্য & খেলা নিয়ন্ত্রণ করতে বোতাম চাপুন
Arduino এবং TFT ডিসপ্লে ব্যবহার করে কিভাবে রিয়েলটাইম ঘড়ি তৈরি করবেন - 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: 4 টি ধাপ
কিভাবে Arduino এবং TFT ডিসপ্লে ব্যবহার করে রিয়েলটাইম ক্লক তৈরি করবেন | 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: আমার ইউটিউব চ্যানেলে যান। ভূমিকা:- এই পোস্টে আমি 3.5 ইঞ্চি TFT টাচ LCD, Arduino Mega ব্যবহার করে "রিয়েল টাইম ক্লক" তৈরি করতে যাচ্ছি 2560 এবং DS3231 RTC মডিউল …. শুরু করার আগে … আমার ইউটিউব চ্যানেল থেকে ভিডিওটি দেখুন .. নোট:- যদি আপনি Arduin ব্যবহার করেন
ESP32 এবং OLED ডিসপ্লে: ইন্টারনেট ঘড়ি - DHT22: 10 ধাপ (ছবি সহ)
ইএসপি 32 এবং ওএলইডি ডিসপ্লে: ইন্টারনেট ঘড়ি - ডিএইচটি 22: এই নির্দেশযোগ্য প্রতিযোগিতা প্রতিযোগিতা: " জিআইএফ চ্যালেঞ্জ 2017 " আপনাকে অনেক ধন্যবাদ
পরিবাহী আঠালো এবং পরিবাহী থ্রেড: একটি LED ডিসপ্লে এবং ফ্যাব্রিক সার্কিট তৈরি করুন যা রোল হয়।: 7 টি ধাপ (ছবি সহ)
পরিবাহী আঠালো এবং পরিবাহী থ্রেড: একটি LED ডিসপ্লে এবং ফ্যাব্রিক সার্কিট তৈরি করুন যা রোল হয়। এবং পরিবাহী থ্রেড আপনি যে কোনো নমনীয় কাপড়ে LED ডিসপ্লে এবং সার্কিট তৈরি করতে পারেন।