সুচিপত্র:

Arduino এবং Touchpad Tic Tac Toe: 8 টি ধাপ (ছবি সহ)
Arduino এবং Touchpad Tic Tac Toe: 8 টি ধাপ (ছবি সহ)

ভিডিও: Arduino এবং Touchpad Tic Tac Toe: 8 টি ধাপ (ছবি সহ)

ভিডিও: Arduino এবং Touchpad Tic Tac Toe: 8 টি ধাপ (ছবি সহ)
ভিডিও: SKR Pro V1.1 - TMC2209 UART with Sensor less Homing 2024, সেপ্টেম্বর
Anonim
আরডুইনো এবং টাচপ্যাড টিক ট্যাক টো
আরডুইনো এবং টাচপ্যাড টিক ট্যাক টো

অথবা, ইনপুট এবং আউটপুট মাল্টিপ্লেক্সিংয়ের একটি ব্যায়াম, এবং বিটগুলির সাথে কাজ করা। এবং Arduino প্রতিযোগিতার জন্য একটি জমা।

এটি একটি ডিসপ্লের জন্য 3x3 অ্যারে বাইকোলারড এলইডি, একটি সাধারণ প্রতিরোধী টাচপ্যাড এবং একটি Arduino ব্যবহার করে একটি টিক টাক টো গেমের বাস্তবায়ন। এটি কীভাবে কাজ করে তা দেখতে, ভিডিওটি দেখুন: এই প্রকল্পের জন্য কী প্রয়োজন: যন্ত্রাংশ এবং উপভোগযোগ্য একটি পারফ বোর্ড (বা স্ট্রিপ বোর্ড) নয়টি বাইকোলারযুক্ত এলইডি, সাধারণ ক্যাথোড নয়টি অভিন্ন প্রতিরোধক, 100-220 ওহম পরিসরে ছয়টি অভিন্ন প্রতিরোধক, 10kohm - 500kohm পরিসীমা একটি একক মেরু, ডবল নিক্ষেপ সুইচ একটি হেডার পিনের একটি গুচ্ছ বৈদ্যুতিক তারের একটি গুচ্ছ স্বচ্ছ এক্রাইলিক একটি ছোট বর্গ শীট, ~ 1 মিমি পুরু, 8 সেন্টিমিটার পাশে পরিষ্কার স্টিকি টেপ Heatshrinks (alচ্ছিক) উপরের সব বেশ সাধারণ আইটেম, মোট খরচ USD 20 ডলারের বেশি হওয়া উচিত নয়। টুলস ওয়ান Arduino সেটআপ (Arduino Duemilanove, Arduino IDE, কম্পিউটার, ইউএসবি কেবল) সাধারণ বৈদ্যুতিক সরঞ্জাম (মাল্টিমিটার, সোল্ডার সোল্ডার গান, ওয়্যার স্নিপস, ওয়্যার কাটার) Arduino সম্পর্কিত সবকিছুই হতে পারে https://www.arduino.cc এ পাওয়া যায়। নির্মাণের সাথে!

ধাপ 1: LED ম্যাট্রিক্স আপ তারের

LED ম্যাট্রিক্স আপ তারের
LED ম্যাট্রিক্স আপ তারের
LED ম্যাট্রিক্স আপ তারের
LED ম্যাট্রিক্স আপ তারের

একটি LED থেকে আলোর জন্য, তার উভয় লিড সংযুক্ত করা আবশ্যক। যদি আমরা 18 টি LEDs (9 লাল, 9 সবুজ) প্রতিটিতে এক জোড়া পিন উত্সর্গ করতাম, আমরা দ্রুত Arduino এর পিনগুলি শেষ করে ফেলতাম। যাইহোক, মাল্টিপ্লেক্সিংয়ের মাধ্যমে, আমরা কেবল 9 টি পিনের সাহায্যে সমস্ত এলইডি সম্বোধন করতে সক্ষম হব! এটি করার জন্য, এলইডিগুলি একটি ক্রসবার ফ্যাশনে তারযুক্ত করা হয়, যেমনটি প্রথম ছবিতে দেখানো হয়েছে। এলইডিগুলিকে ত্রিশের কলামে গোষ্ঠীভুক্ত করা হয় এবং তাদের ক্যাথোডগুলিকে ছক্কা সারিতে গোষ্ঠীভুক্ত করা হয়। একটি নির্দিষ্ট অ্যানোড লাইন উঁচু, এবং একটি নির্দিষ্ট ক্যাথোড লাইন কম সেট করে, এবং অন্যান্য সমস্ত অ্যানোড এবং ক্যাথোড লাইনে উচ্চ প্রতিবন্ধকতা থাকলে আমরা করতে পারি কোন LED কে আমরা জ্বালাতে চাই তা নির্বাচন করুন, কারণ বর্তমানটি কেবলমাত্র একটি সম্ভাব্য পথ নিতে পারে উদাহরণস্বরূপ, দ্বিতীয় চিত্রে, সবুজ অ্যানোড 1 লাইন উঁচু এবং ক্যাথোড 1 লাইন কম, নীচে বাম সবুজ LED আলো জ্বলে । এই ক্ষেত্রে বর্তমান পথটি নীল রঙে দেখানো হয়েছে কিন্তু যদি আপনি বিভিন্ন লাইনে একাধিক LED জ্বালাতে চান? আমরা এটি অর্জনের জন্য দৃ of়তার দৃ use়তা ব্যবহার করব। খুব দ্রুত LED লাইনের জোড় নির্বাচন করে, এটি বিভ্রম দেয় যে সমস্ত নির্বাচিত LEDs একই সময়ে জ্বলছে।

ধাপ 2: LED ম্যাট্রিক্স লেআউট

LED ম্যাট্রিক্স লেআউট
LED ম্যাট্রিক্স লেআউট
LED ম্যাট্রিক্স লেআউট
LED ম্যাট্রিক্স লেআউট

নীচের সার্কিট ডায়াগ্রাম দেখায় কিভাবে এলইডি শারীরিকভাবে তারযুক্ত হয় (G1-G9: সবুজ LEDs, R1-R9: লাল LEDs)। এই ডায়াগ্রামটি একক লাল এবং সবুজ LEDs এর জন্য, যদি আপনি বাইকোলারড সাধারণ ক্যাথোড লাল/সবুজ LEDs ব্যবহার করেন, তাহলে প্রতি লাল/সবুজ জোড়ায় কেবল একটি ক্যাথোড লেগ আছে যা আপনাকে তারে সংযুক্ত করতে হবে। লাল এবং সবুজ অ্যানোড লাইন PWM পিনগুলিতে যায় Arduino এর (পিন 3, 5, 6, 9, 10, 11 ডুয়েমিলানোভে), যাতে আমরা পরবর্তীতে বিবর্ণ হওয়ার মত প্রভাব ফেলতে পারি। ক্যাথোড লাইনগুলি 4, 7 এবং 8 পিনে যায়।

ধাপ 3: LED ম্যাট্রিক্স সম্বোধন করা

টিক টেক টো কোডের জন্য, আমাদের LEDs সম্পর্কে নিম্নলিখিত তথ্য সংরক্ষণ করতে সক্ষম হতে হবে: একটি 9-কোষের অ্যারেতে, তিনটি সংখ্যা ব্যবহার করে রাজ্যের প্রতিনিধিত্ব করে (0 = বন্ধ, 1 = লাল চালু, 2 = সবুজ চালু)। যখনই আমাদের LED এর অবস্থাগুলি পরীক্ষা করতে হবে, উদাহরণস্বরূপ, একটি জয়ের শর্ত আছে কিনা তা পরীক্ষা করার জন্য, আমাদের অ্যারের মাধ্যমে চক্র করতে হবে। এটি একটি কার্যকরী পদ্ধতি, কিন্তু বরং clunky। আরও সুশৃঙ্খল পদ্ধতি হবে নয়টি বিটের দুটি গ্রুপ ব্যবহার করা। নয়টি বিটের প্রথম গ্রুপটি LEDs এর অন-অফ স্ট্যাটাস সংরক্ষণ করে, এবং নয়টি বিটের দ্বিতীয় গ্রুপটি রঙ সংরক্ষণ করে। তারপরে, এলইডি রাজ্যগুলি হেরফের করা কেবল বিট গাণিতিক এবং স্থানান্তরের বিষয় হয়ে ওঠে। এখানে একটি কাজের উদাহরণ। ধরা যাক আমরা আমাদের টিক ট্যাক গ্রিড গ্রাফিক্যালি আঁকছি, এবং অন-অফ স্ট্যাটাসটি উপস্থাপন করতে প্রথমে 1s এবং 0 সেকেন্ড ব্যবহার করুন (1 চালু আছে, 0 বন্ধ): 000 000 = নিচের বাম এলইডি দিয়ে ম্যাট্রিক্স 100 100 010 = ত্রিভুজ সহ ম্যাট্রিক্স LEDs জ্বালানো 001 যদি আমরা নীচের বাম থেকে কোষগুলি গণনা করি, আমরা উপরের উপস্থাপনাগুলিকে বিটগুলির একটি সিরিজ হিসাবে লিখতে পারি। প্রথম ক্ষেত্রে, এটি হবে 100000000, এবং দ্বিতীয় ক্ষেত্রে, এটি হবে 001010100। যদি আমরা এইগুলিকে বাইনারি উপস্থাপনা হিসেবে মনে করি, তাহলে প্রতিটি সিরিজের বিটকে একক সংখ্যায় ঘনীভূত করা যেতে পারে (প্রথম ক্ষেত্রে 256, 84 দ্বিতীয় ক্ষেত্রে)। সুতরাং ম্যাট্রিক্সের অবস্থা সংরক্ষণ করার জন্য একটি অ্যারে ব্যবহার করার পরিবর্তে, আমরা কেবল একটি সংখ্যা ব্যবহার করতে পারি! একইভাবে, আমরা LED এর রঙকে একইভাবে উপস্থাপন করতে পারি (1 হল লাল, 0 হল সবুজ)। আসুন প্রথমে ধরে নিই যে সমস্ত এলইডি জ্বলছে (তাই অন-অফ স্ট্যাটাসটি 511 দ্বারা উপস্থাপিত হয়)। নীচের ম্যাট্রিক্স তারপর LEDs এর রঙের অবস্থা প্রতিনিধিত্ব করবে: 010 সবুজ, লাল, সবুজ 101 লাল, সবুজ, লাল 010 সবুজ, লাল, সবুজ এখন, LED ম্যাট্রিক্স প্রদর্শন করার সময়, আমাদের কেবল প্রতিটি বিট দিয়ে চক্র করতে হবে, প্রথমে অন-অফ অবস্থায়, এবং তারপর রঙের অবস্থায়। উদাহরণস্বরূপ, ধরা যাক আমাদের অন-অফ স্টেট হল 100100100, এবং কালার স্টেট হল 010101010। LED ম্যাট্রিক্স জ্বালানোর জন্য এখানে আমাদের অ্যালগরিদম আছে: ধাপ 1. একটি বাইনারি 1 (অর্থাৎ বিট মাস্কিং)। পদক্ষেপ 2. যদি এটি সত্য হয়, LED জ্বলছে। এখন একটি বাইনারি সঙ্গে রঙ রাজ্যের একটি bitwise যোগ করুন। যদি এটি মিথ্যা হয়, সবুজ LED জ্বালান। ধাপ 4. অন-অফ স্টেট এবং কালার স্টেট দুটোই শিফট করুন, ডানদিকে এক বিট (অর্থাৎ বিট শিফটিং)। ধাপ 5. ধাপ 1 - 4 পুনরাবৃত্তি করুন যতক্ষণ না সমস্ত নয়টি বিট পড়া হয়েছে। মনে রাখবেন যে আমরা ম্যাট্রিক্সটি পিছনের দিকে পূরণ করছি - আমরা সেল 9 দিয়ে শুরু করি, তারপর সেল 1 এ ফিরে যাই। এছাড়াও, অন -অফ এবং কালার স্টেটস একটি স্বাক্ষরিত পূর্ণসংখ্যা টাইপের পরিবর্তে স্বাক্ষরবিহীন পূর্ণসংখ্যা টাইপ (শব্দ) হিসাবে সংরক্ষণ করা হয়। কারণ বিট শিফ্টিং এ, যদি আমরা সাবধান না হই, আমরা হয়তো অসাবধানতাবশত ভেরিয়েবলের চিহ্ন পরিবর্তন করতে পারি। LED ম্যাট্রিক্স আলোকিত করার জন্য কোড সংযুক্ত করা হয়েছে।

ধাপ 4: টাচ প্যাড নির্মাণ

টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ
টাচ প্যাড নির্মাণ

টাচপ্যাডটি পাতলা এক্রাইলিকের একটি শীট থেকে তৈরি করা হয়েছে, যা LED ম্যাট্রিক্সের উপর ওভারলে করার জন্য যথেষ্ট বড়। তারপরে, স্পষ্ট টেপ ব্যবহার করে সারি এবং কলামের তারগুলি এক্রাইলিক শীটে টেপ করুন। পরিষ্কার টেপ এছাড়াও তারের মধ্যে অন্তরক স্পেসার হিসাবে ব্যবহার করা হয়, ছেদগুলিতে। পরিষ্কার সরঞ্জাম ব্যবহার করতে ভুলবেন না, টেপের স্টিকি সাইডে আঙ্গুলের গ্রীস আটকাতে। ফিঙ্গারপ্রিন্টের দাগগুলি কেবল কুৎসিত দেখায় না, তবে টেপকে কম আঠালো করে তোলে প্রতিটি লাইনের এক প্রান্ত ছিঁড়ে ফেলে, এবং অন্য প্রান্তকে লম্বা তারে সোল্ডার করে। সংযোগকারীগুলিতে সোল্ডারিংয়ের আগে তারের সাথে একটি প্রতিরোধককে সোল্ডার করুন। এখানে ব্যবহৃত প্রতিরোধক 674k, কিন্তু 10k এবং 1M এর মধ্যে যে কোন মান ঠিক হওয়া উচিত Arduino এর সংযোগগুলি 6 এনালগ পিন ব্যবহার করে তৈরি করা হয়, 14-16 পিনের সাথে তারের গ্রিড সারি এবং 17-19 পিন সংযুক্ত থাকে কলামগুলি

ধাপ 5: টাচ প্যাড - এটি কীভাবে কাজ করে

টাচ প্যাড - এটি কীভাবে কাজ করে
টাচ প্যাড - এটি কীভাবে কাজ করে
টাচ প্যাড - এটি কীভাবে কাজ করে
টাচ প্যাড - এটি কীভাবে কাজ করে

ন্যূনতম পিনের সাথে একটি এলইডি ম্যাট্রিক্স স্থাপনের জন্য আমরা যেমন একটি ক্রসবার মাল্টিপ্লেক্সার ব্যবহার করেছি, তেমনি একটি স্পর্শ সেন্সর অ্যারে সেট করার জন্য আমরা অনুরূপ ক্রসবার মাল্টিপ্লেক্সার ব্যবহার করতে পারি, যা আমরা তখন LEDs সক্রিয় করতে ব্যবহার করতে পারি। এই টাচ প্যাডের ধারণাটি সহজ। এটি মূলত একটি তারের গ্রিড, যার মধ্যে তিনটি খালি তারের সারি চলছে, এবং তিনটি খালি তারের সারির উপরে কলামে চলছে। প্রতিটি ছেদ বিন্দুতে অন্তরণ একটি ছোট বর্গ যা দুটি তারের স্পর্শ থেকে বাধা দেয়। ছেদকে স্পর্শ করে একটি আঙুল উভয় তারের সাথে যোগাযোগ করবে, ফলে দুটি তারের মধ্যে একটি বিশাল, কিন্তু সীমিত প্রতিরোধের সৃষ্টি হবে। একটি ছোট স্রোত, কিন্তু সনাক্তযোগ্য, কারেন্ট আঙ্গুলের মাধ্যমে একটি তার থেকে পরের দিকে প্রবাহিত করা যেতে পারে। ধাপ 2: অভ্যন্তরীণ পুল -আপ সক্রিয় করে সারির লাইনগুলিকে INPUT- এ সেট করুন। এটি আপনাকে বলে যে কোন সারিতে চাপানো ছেদটি রয়েছে। এটি আপনাকে বলে যে কোন কলামটি চাপানো ছেদটি। গড় ফলাফল তারপর একটি থ্রেশহোল্ডের সাথে তুলনা করা হয়। যাইহোক, যেহেতু টিক ট্যাক পায়ের আঙ্গুল ঘুরে যায়, একটি একক প্রেস পড়া যথেষ্ট।একটি স্কেচ রয়েছে যা দেখায় কিভাবে টাচপ্যাড কাজ করে। এলইডি ম্যাট্রিক্সের মতো, বিট ব্যবহার করা হয় প্রতিনিধিত্ব করতে যে কোন ছেদ চাপানো হয়েছিল।

ধাপ 6: সবকিছু একসাথে রাখা

সবকিছু একসাথে রাখা
সবকিছু একসাথে রাখা

এখন যে সমস্ত স্বতন্ত্র উপাদানগুলি সম্পন্ন হয়েছে, এখন সেগুলি সব একসাথে রাখার সময় এলইডি ম্যাট্রিক্সে তারের গ্রিড ওভারলে করুন। তারের গ্রিড সেন্সরের সাথে সিঙ্ক্রোনাইজ করার জন্য আপনাকে LED ম্যাট্রিক্স কোডে পিন নম্বরগুলি পুনরায় সাজানোর প্রয়োজন হতে পারে। আপনার পছন্দের ফাস্টেনিং বা আঠালো দিয়ে তারের গ্রিডটি সুরক্ষিত করুন এবং একটি চমৎকার প্লেয়িং বোর্ডে আটকে থাকুন। এই সুইচটি 2 প্লেয়ার মোড এবং 1 প্লেয়ার মোডের (মাইক্রোকন্ট্রোলার বনাম) মধ্যে টগল করা।

ধাপ 7: Tic Tac Toe প্রোগ্রামিং

গেমটির কোড সংযুক্ত করা হয়েছে। আসুন প্রথমে টিক -টাক গেমটিকে তার বিভিন্ন ধাপে দুটি প্লেয়ার মোডে ভেঙে ফেলি: ধাপ 1: প্লেয়ার A একটি ছেদ স্পর্শ করে একটি অপূর্ণ সেল বেছে নেয়। ধাপ 2: সেই ঘরের জন্য LED রঙ A এর সাথে জ্বলে ওঠে। ধাপ 3: প্লেয়ার A জিতেছে কিনা তা পরীক্ষা করুন ধাপ 4: প্লেয়ার B একটি অপূর্ণ সেল বেছে নেয়। ধাপ 6: প্লেয়ার B জিতেছে কিনা তা পরীক্ষা করে দেখুন। ধাপ 7: একটি বিজয়ের শর্ত না হওয়া পর্যন্ত 1-6 পুনরাবৃত্তি করুন, অথবা যদি সমস্ত কোষ ভরা থাকে। । যতক্ষণ না গ্রিড সেন্সর একটি শূন্য মান নথিভুক্ত না করে, এই লুপটি চলতে থাকবে। যখন একটি ছেদ চাপানো হয়, প্রেসড ভেরিয়েবলটি চাপানো কোষের অবস্থান সঞ্চয় করে। কোষটি পূরণ না হলে পরীক্ষা করা: যখন একটি অবস্থান রিডিং পাওয়া যায় (পরিবর্তনশীল চাপানো), এটি বর্তমান কোষের স্থিতির সাথে তুলনা করা হয় (পরিবর্তনশীল গ্রিডঅনফে সংরক্ষিত) একটি বিটওয়াইজ সংযোজন ব্যবহার করে। যদি চাপা কোষটি পূরণ না হয়, তাহলে LED টি জ্বালাতে এগিয়ে যান, অন্যথায় কোষগুলি পড়ার জন্য ফিরে যান। একটি সেল বাছাই করার সময় নির্বাচিত LED রঙ এই ভেরিয়েবল দ্বারা নির্ধারিত হয়, যা প্রতিবার একটি সেল নির্বাচন করার সময় পরিবর্তিত হয়।)। দুটি বিটওয়াইজ সংযোজন জয়ী অবস্থার সাথে খেলোয়াড়ের ভরা কোষ অবস্থানের তুলনা করতে ব্যবহৃত হয়। যদি একটি ম্যাচ থাকে, তাহলে প্রোগ্রামটি একটি জয়ের রুটিন প্রদর্শন করে, যার পরে এটি একটি নতুন খেলা শুরু করে। LEDs তারপর বিবর্ণ এবং একটি নতুন খেলা শুরু হয়। মানব খেলোয়াড়ের পালা শেষে, প্রোগ্রামটি কেবল একটি এলোমেলো সেল বেছে নেয়। স্পষ্টতই, এটি সবচেয়ে স্মার্ট কৌশল নয়!

ধাপ 8: মন্তব্য এবং আরও উন্নতি

এখানে একটি প্লেয়ার মোড দেখানো একটি ভিডিও, প্রোগ্রামটি সম্পূর্ণ এলোমেলো চালনার সাথে: এখানে দেখানো প্রোগ্রামটি একটি ন্যূনতম, খালি হাড়ের সংস্করণ। এর সাথে আরও অনেক কাজ করা যেতে পারে: যাইহোক, এখানে দেখানো তারের সাহায্যে, একই সময়ে একটি ক্যাথোড লাইনের সাথে সংযুক্ত সমস্ত এলইডি জ্বালানো সম্ভব। সুতরাং, সমস্ত নয়টি পজিশনে সাইকেল চালানোর পরিবর্তে, আপনাকে কেবল তিনটি ক্যাথোড লাইনের মাধ্যমে সাইকেল চালানোর প্রয়োজন। ঝলকানি বাধা ব্যবহার করে, LEDs এর সময় সঠিকভাবে নিয়ন্ত্রিত হতে পারে এবং একটি মসৃণ ডিসপ্লে হতে পারে। 3) একটি স্মার্ট কম্পিউটার প্লেয়ার কারেন্ট কোড শুধুমাত্র কয়েক কেবি লাগে, একটি স্মার্ট কম্পিউটার টিক টেক বাস্তবায়নের জন্য কিছুটা বেশি রেখে পায়ের আঙ্গুলের খেলোয়াড় আশা করি আপনি এই নির্দেশনাটি পড়তে উপভোগ করেছেন যতটা আমি এতে কাজ করে মজা পেয়েছি!

প্রস্তাবিত: