সুচিপত্র:

লেগো এবং রাস্পবেরি পাই দিয়ে তৈরি দাবা রোবট: 6 টি ধাপ
লেগো এবং রাস্পবেরি পাই দিয়ে তৈরি দাবা রোবট: 6 টি ধাপ

ভিডিও: লেগো এবং রাস্পবেরি পাই দিয়ে তৈরি দাবা রোবট: 6 টি ধাপ

ভিডিও: লেগো এবং রাস্পবেরি পাই দিয়ে তৈরি দাবা রোবট: 6 টি ধাপ
ভিডিও: তৈরী করলাম 3 in 1 মিনি কম্পিউটার | Diy Multi Module 3 in 1 Mini PC at Home | JLCPCB 2024, নভেম্বর
Anonim
Image
Image

এই দাবা রোবট দিয়ে আপনার বন্ধুদের বিস্মিত করুন!

যদি আপনি আগে লেগো রোবট তৈরি করে থাকেন এবং যদি আপনার কমপক্ষে কম্পিউটার প্রোগ্রামিং এবং লিনাক্সের প্রাথমিক জ্ঞান থাকে তবে এটি তৈরি করা খুব কঠিন নয়।

রোবটটি তার নিজস্ব চাল তৈরি করে এবং মানুষের খেলোয়াড়ের গতিবিধি নির্ধারণের জন্য চাক্ষুষ স্বীকৃতি ব্যবহার করে।

এই রোবটের একটি অভিনব জিনিস হল মুভ রিকগনিশনের কোড। এই ভিশন কোডটি অন্যান্য অনেক উপায়ে নির্মিত দাবা রোবটের জন্যও ব্যবহারযোগ্য (যেমন Lynxmotion রোবোটিক বাহু ব্যবহার করে আমার ChessRobot)।

কোন বিশেষ দাবা বোর্ড, রিড সুইচ বা যা কিছু প্রয়োজন (যেমন মানুষের পদক্ষেপ চাক্ষুষ স্বীকৃতি দ্বারা নির্ধারিত হয়)।

আমার কোড ব্যক্তিগত ব্যবহারের জন্য উপলব্ধ।

ধাপ 1: প্রয়োজনীয়তা

লাইট, ক্যামেরা, অ্যাকশন!
লাইট, ক্যামেরা, অ্যাকশন!

সমস্ত কোড পাইথনে লেখা আছে, যা অন্যান্য জিনিসের মধ্যে একটি রাস্পবেরি পাই চালাবে।

রাস্পবেরি পাই একটি ক্রেডিট কার্ড আকারের কম্পিউটার যা স্ক্রিন এবং কীবোর্ডে প্লাগ করা যায়। এটি একটি সস্তা (প্রায় $ 40), সক্ষম ছোট কম্পিউটার যা ইলেকট্রনিক্স প্রকল্প এবং রোবটিক্সে ব্যবহার করা যেতে পারে এবং আপনার ডেস্কটপ পিসি যা করে তার অনেকের জন্য।

আমার রোবট একটি রাস্পবেরি পাই এবং লেগো ব্যবহার করে। RPi এবং Lego Mindstorms EV3 মোটর এবং সেন্সরগুলির মধ্যে হার্ডওয়্যার ইন্টারফেস ডেক্সটার ইন্ডাস্ট্রিজের ব্রিকপি 3 দ্বারা সরবরাহ করা হয়েছে।

লেগো বিল্ডটি "চার্লি দ্য দাব রোবট" এর উপর ভিত্তি করে তৈরি করা হয়েছে, আমার দ্বারা সংশোধিত, লেগো মাইন্ডস্টর্মস প্রসেসরের পরিবর্তে আরপিআই ব্যবহার করার মোড সহ। লেগো মাইন্ডস্টর্মস EV3 মোটর এবং সেন্সর ব্যবহার করা হয়।

আপনার একটি টেবিল, একটি ক্যামেরা, আলো, একটি কীবোর্ড, স্ক্রিন এবং পয়েন্টিং ডিভাইস (যেমন মাউস) প্রয়োজন হবে।

এবং অবশ্যই, দাবা টুকরা এবং একটি বোর্ড।

আমি পরবর্তী ধাপে এই সমস্ত বিষয়গুলি আরও বিস্তারিতভাবে বর্ণনা করেছি।

ধাপ 2: হার্ডওয়্যার নির্মাণ

Image
Image

যেমনটি আমি পূর্বে ইঙ্গিত করেছি, ভিশন কোডের হৃদয় বিভিন্ন ধরনের নির্মাণের সাথে কাজ করবে।

আমি দারোস হাদির "চার্লি দ্য চেস রোবট" (EV3 সংস্করণ) -এর উপর আমার রোবটকে ভিত্তি করেছিলাম, সেই পৃষ্ঠার তথ্য বলছে কিভাবে বিল্ড নির্দেশনা পেতে হয়। অংশগুলির তালিকা এখানে।

আমি রোবটটিকে কয়েকটি উপায়ে পরিবর্তন করেছি।

1. দখলদার। এটা আমার জন্য কাজ করেনি। গিয়ারগুলি স্লিপ হয়ে গেছে, তাই আমি এটি রোধ করতে অতিরিক্ত লেগো টুকরা যুক্ত করেছি। এবং তারপর যখন ক্রেনটি নামানো হয়েছিল তখন এটি প্রায়শই জ্যাম হয়ে যেত, তাই আমি এটি প্রতিরোধ করার জন্য একটি ওয়াটের সংযোগ যুক্ত করেছিলাম।

উপরে দখলদার কর্মে রয়েছে, পরিবর্তিত সংযোগ দেখায়।

2. আসল বিল্ড লেগো মাইন্ডস্টর্মস EV3 প্রসেসর ব্যবহার করে, কিন্তু আমি একটি রাস্পবেরি পাই ব্যবহার করি, যা পাইথন ব্যবহার করা সহজ করে তোলে।

3. আমি রাস্পবেরি পাই 3 মডেল বি ব্যবহার করি

4. আরপিকে লেগোতে ইন্টারফেস করার জন্য, আমি ডেক্সটার ইন্ডাস্ট্রিজের ব্রিকপি 3 ব্যবহার করি। ব্রিকপি রাস্পবেরি পাইকে সংযুক্ত করে এবং একসাথে তারা লেগো মাইন্ডস্টর্মস এনএক্সটি বা ইভি 3 ইট প্রতিস্থাপন করে।

যখন আপনার লেগো ডিজিটাল ডিজাইনার ফাইল থাকে, তখন লেগো টুকরা পাওয়ার প্রশ্ন থাকে। আপনি LEGO দোকান থেকে সরাসরি ইট পেতে পারেন, এবং এটি সেগুলি পাওয়ার সবচেয়ে সস্তা উপায়। যাইহোক, তাদের আপনার প্রয়োজনীয় সবকিছু থাকবে না এবং ইটগুলি আসতে কয়েক সপ্তাহ বা তার বেশি সময় লাগতে পারে।

আপনি Rebrickable ব্যবহার করতে পারেন: একটি অ্যাকাউন্ট খুলুন, LDD ফাইল আপলোড করুন এবং সেখান থেকে বিক্রেতাদের একটি তালিকা পান।

আরেকটি ভালো উৎস হল ব্রিকলিঙ্ক।

ধাপ 3: সফটওয়্যার যা রোবটকে সরিয়ে দেয়

সমস্ত কোড পাইথন 2 এ লেখা আছে।

  1. ডেক্সটার ইন্ডাস্ট্রিজ EV3 মোটর, ইত্যাদি চালানোর জন্য কোড সরবরাহ করে। এটি BrickPi3 এর সাথে আসে।
  2. আমি মোটরগুলিকে এমনভাবে সরানোর জন্য কোড সরবরাহ করি যেন দাবার টুকরো সরানো যায়!
  3. দাবা ইঞ্জিন হল স্টকফিশ - যা যেকোন মানুষকে হারাতে পারে! "স্টকফিশ বিশ্বের অন্যতম শক্তিশালী দাবা ইঞ্জিন। এটি সেরা মানব দাবা গ্র্যান্ডমাস্টারদের তুলনায় অনেক শক্তিশালী।"
  4. দাবা ইঞ্জিন চালানোর জন্য কোড, একটি পদক্ষেপ বৈধ যাচাই, এবং তাই এগিয়ে ChessBoard.py
  5. আমি এর সাথে ইন্টারফেস করার জন্য https://chess.fortherapy.co.uk থেকে কিছু কোড ব্যবহার করি।
  6. আমার কোড (উপরের 2 তে) তারপর এর সাথে ইন্টারফেস!

ধাপ 4: মানুষের চলাচল স্বীকৃতি দেওয়ার সফটওয়্যার

প্লেয়ার তাদের পদক্ষেপ নেওয়ার পরে, ক্যামেরা একটি ছবি নেয়। কোডটি ক্রপ করে এবং ঘোরায় যাতে দাবা বোর্ডটি পরবর্তী চিত্রের সাথে ঠিক মানায়। দাবা বোর্ডের বর্গক্ষেত্রগুলি বর্গাকার হওয়া দরকার! ছবিতে বিকৃতি আছে কারণ বোর্ডের প্রান্তগুলি বোর্ডের কেন্দ্রের চেয়ে ক্যামেরা থেকে আরও দূরে। যাইহোক, ক্যামেরাটি যথেষ্ট দূরে রয়েছে যাতে ফসল কাটার পরে এই বিকৃতিটি উল্লেখযোগ্য না হয়। কারন রোবট জানে যে কম্পিউটার টুকরো টুকরো করার পর সব টুকরো কোথায় আছে, তারপর মানুষের চলাফেরার পর যা করতে হবে তা হল কোডটি নিম্নলিখিত তিনটি ক্ষেত্রে পার্থক্য জানাতে সক্ষম হবে:

  • একটা ফাঁকা চত্বর
  • যে কোন ধরনের কালো টুকরা
  • যে কোন ধরনের সাদা টুকরা।

এটি ক্যাসলিং এবং এন পাসেন্ট সহ সমস্ত ক্ষেত্রে অন্তর্ভুক্ত।

রোবট চেক করে যে মানুষের চালনা সঠিক, এবং তা না হলে তাদের জানিয়ে দেয়! একমাত্র ঘটনা যেখানে আচ্ছাদিত নয় যেখানে মানব খেলোয়াড় একটি বন্ধককে অ-রানীতে উন্নীত করে। খেলোয়াড়কে তখন রোবটকে বলতে হবে প্রচারিত অংশটি কী।

আমরা এখন চেসবোর্ড স্কোয়ারের ক্ষেত্রে ছবিটি বিবেচনা করতে পারি।

প্রাথমিক বোর্ড সেট-আপে আমরা জানি যে সমস্ত সাদা এবং কালো টুকরা কোথায় এবং খালি স্কোয়ারগুলি কোথায়।

খালি স্কোয়ারের দখলকৃত স্কোয়ারের তুলনায় রঙের পার্থক্য অনেক কম। আমরা তার সমস্ত পিক্সেল জুড়ে প্রতিটি বর্গের জন্য তিনটি RGB রঙের প্রত্যেকটির জন্য আদর্শ বিচ্যুতি গণনা করি (বর্গের সীমানার কাছাকাছি ছাড়া)। যেকোনো খালি বর্গক্ষেত্রের জন্য সর্বাধিক মান বিচ্যুতি যেকোনো দখলকৃত বর্গক্ষেত্রের ন্যূনতম মান বিচ্যুতির চেয়ে অনেক কম এবং এটি আমাদের পরবর্তী খেলোয়াড়ের স্থানান্তরের পরে কোন বর্গক্ষেত্র খালি তা নির্ধারণ করতে দেয়।

খালি বনাম দখলকৃত স্কোয়ারের জন্য থ্রেশহোল্ড মান নির্ধারণ করে, এখন আমাদের দখলকৃত স্কোয়ারগুলির জন্য টুকরো রঙ নির্ধারণ করতে হবে:

প্রাথমিক বোর্ডে আমরা প্রতিটি সাদা বর্গের জন্য, R, G, B, এর পিক্সেলের গড় (গড়) মান (বর্গের সীমানার কাছাকাছি ব্যতীত) এর জন্য গণনা করি। যেকোনো সাদা বর্গের জন্য এই অর্থগুলির সর্বনিম্ন যে কোনও কালো বর্গ জুড়ে সর্বাধিক মাধ্যমের চেয়ে বড়, এবং তাই আমরা দখলকৃত বর্গক্ষেত্রের জন্য টুকরো রঙ নির্ধারণ করতে পারি। যেমনটি আগে বলা হয়েছে, মানব খেলোয়াড়ের পদক্ষেপ কী ছিল তা নির্ধারণ করার জন্য আমাদের কেবল এটি করা দরকার।

অ্যালগরিদমগুলি সবচেয়ে ভাল কাজ করে যদি দাবা বোর্ডে এমন রঙ থাকে যা টুকরাগুলির রঙ থেকে অনেক দূরে! আমার রোবটে, টুকরাগুলি সাদা-বাদামী এবং বাদামী, এবং দাবা বোর্ড কার্ডে হাতে তৈরি এবং "কালো" এবং "সাদা" বর্গগুলির মধ্যে সামান্য পার্থক্য সহ হালকা সবুজ।

17 অক্টোবর 2018 সম্পাদনা করুন: আমি এখন বাদামী টুকরা ম্যাট কালো এঁকেছি, যা অ্যালগরিদমকে আরও পরিবর্তনশীল আলো অবস্থার অধীনে কাজ করে।

ধাপ 5: লাইট, ক্যামেরা, অ্যাকশন

আলো

আপনি বোর্ডের উপর স্থাপন আলোর একটি সমান উৎস প্রয়োজন। আমি এটি ব্যবহার করি, যা সত্যিই সস্তা, amazon.co.uk থেকে - এবং সন্দেহ নেই যে amazon.com এ একই রকম কিছু আছে। সাথে রুমের লাইট বন্ধ।

আপডেট: আমার এখন দুটি আলো আছে, আলোর আরও সমান উৎস দিতে

ক্যামেরা

কোন সন্দেহ নেই যে আপনি বিশেষ রাস্পবেরি পাই ক্যামেরা মডিউল (একটি দীর্ঘ তারের সাথে) ব্যবহার করতে পারেন, কিন্তু আমি একটি ইউএসবি ক্যামেরা ব্যবহার করি - "লজিটেক 960-001064 C525 এইচডি ওয়েবক্যাম - কালো" - যা আরপিআই এর সাথে কাজ করে। আপনাকে নিশ্চিত করতে হবে যে ক্যামেরাটি বোর্ডের প্রতি শ্রদ্ধাশীল নয়, একটি টাওয়ার তৈরি করে বা কোথাও এটিকে দৃ fix়ভাবে ঠিক করার জন্য। জ্যামিতিক বিকৃতি কমাতে ক্যামেরাটি বোর্ডের উপরে মোটামুটি উঁচু হওয়া দরকার। আমার ক্যামেরা বোর্ডের 58 সেন্টিমিটার উপরে আছে

আপডেট: আমি এখন এইচপি ওয়েবক্যাম এইচডি 2300 পছন্দ করি, কারণ আমি এটিকে আরো নির্ভরযোগ্য বলে মনে করি।

টেবিল

আপনার একটি শক্তিশালী প্রয়োজন। আমি এটা কিনেছি। তার উপরে আপনি দেখতে পাচ্ছেন যে আমার কাছে MDF এর একটি বর্গ আছে, কিছু জিনিসের সাথে রোবটটি যখন ট্রলি চলাচল করে তখন চারপাশে লাফানো বন্ধ করে দেয়। বোর্ডের উপরে একই অবস্থানে ক্যামেরা রাখা একটি ভাল ধারণা!

কীবোর্ড

RPi এর প্রথম সেটআপের জন্য একটি USB কীবোর্ড প্রয়োজন। এবং আমি কোডটি বিকাশের জন্য এটি ব্যবহার করি। প্রোগ্রামটি শুরু করা এবং দাবা ঘড়িতে আঘাত করার অনুকরণে রোবটটির জন্য কেবল একটি কিবোর্ড প্রয়োজন। আমি এর মধ্যে একটি পেয়েছি। কিন্তু সত্যিই, আপনার কেবল একটি মাউস বা RPi- এর সাথে সংযুক্ত GPIO- এর একটি বোতাম প্রয়োজন

প্রদর্শন

আমি উন্নয়নের জন্য একটি বড় স্ক্রিন ব্যবহার করি, কিন্তু রোবটের প্রয়োজন কেবলমাত্র আপনাকে বলার জন্য যে আপনার পদক্ষেপটি অবৈধ, চেক ইত্যাদি।

কিন্তু একটি ডিসপ্লের প্রয়োজনের পরিবর্তে, রোবট এই বাক্যাংশগুলি বলবে! আমি এখানে বর্ণিত কোড ব্যবহার করে পাঠ্যকে বাক্যে রূপান্তর করে এবং একটি ছোট স্পিকার সংযুক্ত করে এটি করেছি। (আমি একটি "হ্যামবার্গার মিনি স্পিকার" ব্যবহার করি)।

রোবট বাক্যাংশ বলে:

  • চেক!
  • চেকমেট
  • অবৈধ সরানো
  • তুমি জিতেছো!
  • অচল
  • তিনগুণ পুনরাবৃত্তি দ্বারা আঁকা
  • 50 টি চালের নিয়ম দ্বারা আঁকুন

দাবায় পঞ্চাশ-পদক্ষেপের নিয়ম বলছে যে যদি কোন খেলোয়াড় ড্র করতে পারে যদি কোন ক্যাপচার না করা হয় এবং শেষ পঞ্চাশটি মুভিতে কোন পয়সা না সরানো হয় (এই উদ্দেশ্যে একটি "মুভ" একটি খেলোয়াড়কে তার পালা শেষ করে প্রতিপক্ষ তাদের পালা শেষ করে)।

আপনি উপরের সংক্ষিপ্ত "বোকার সঙ্গী" ভিডিওতে রোবটকে কথা বলতে শুনতে পারেন (যদি আপনি আপনার শব্দটি বেশ উঁচু করেন)!

ধাপ 6: সফটওয়্যারটি কিভাবে পাবেন

1. স্টকফিশ

আপনি যদি আপনার RPi তে Raspbian চালান তাহলে আপনি Stockfish 7 ইঞ্জিন ব্যবহার করতে পারেন - এটা বিনামূল্যে। শেষ ঘন্টা:

sudo apt-get stockfish ইনস্টল করুন

2. ChessBoard.py

এখানে পান।

3. https://chess.fortherapy.co.uk/home/a-wooden-chess… ভিত্তিক কোড

আমার কোড নিয়ে আসে।

4. BrickPi3 এর জন্য পাইথন ড্রাইভার:

এগুলি এখানে পান।

5. আমার কোড যা উপরের সমস্ত কোডগুলিকে আমন্ত্রণ জানায় এবং যা রোবটকে চালনা করতে দেয় এবং আমার দৃষ্টি কোড।

একটি মন্তব্য পোস্ট করে আমার কাছ থেকে এটি পান, এবং আমি সাড়া দেব।

প্রস্তাবিত: