সুচিপত্র:

নভোচারী-সহায়ক রুমা: 4 টি ধাপ
নভোচারী-সহায়ক রুমা: 4 টি ধাপ

ভিডিও: নভোচারী-সহায়ক রুমা: 4 টি ধাপ

ভিডিও: নভোচারী-সহায়ক রুমা: 4 টি ধাপ
ভিডিও: মাছির লার্ভা থেকে তৈরী হচ্ছে মুরগি ও মাছের খাবার! | Fly farm | Channel 24 Exclusive 2024, নভেম্বর
Anonim
নভোচারী-সহায়ক রুমা
নভোচারী-সহায়ক রুমা

এই প্রকল্পটি iRobot ক্রিয়েট ভার্সন 2 -এ রাস্পবেরি পাই 3 ব্যবহার করে তৈরি করা হয়েছে। ম্যাটল্যাবটি রোবটকে সেন্সর এবং ক্যামেরা ব্যবহার করে নির্দিষ্ট নির্দেশাবলী অনুসরণ করার জন্য ব্যবহার করা হয়। সেন্সর এবং ক্যামেরাগুলি নির্দিষ্ট কাজ সম্পাদনের জন্য ব্যবহার করা হয় যা একটি মহাকাশচারীকে অনুসরণ করে এবং কিছু ভুল হলে তার/তার বাড়ির বেসের সাথে যোগাযোগ করার ক্ষমতা প্রদান করে।

ধাপ 1: প্রয়োজনীয় অংশ

প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ
প্রয়োজনীয় যন্ত্রাংশ

1. iRobot সংস্করণ 2 তৈরি করুন

IRobot তৈরি এই প্রকল্পের সবচেয়ে প্রয়োজনীয় অংশ কারণ এটি প্রোগ্রামযোগ্য এবং একটি প্রকৃত রোভার যা মহাকাশচারীদের অনুসরণ করে এবং ভবিষ্যতে তাদের সহায়তা করে তাদের জন্য একটি দুর্দান্ত প্রতিনিধিত্ব হতে পারে।

2. রাস্পবেরি পাই 3

রাস্পবেরি পাই এই প্রকল্পের জন্য ব্যবহৃত প্রোগ্রামযোগ্য ছিল। কোডটি Pi এর জন্য ডিজাইন করা হয়েছে এবং Pi সংযুক্ত সংস্করণটি 3 (মডেল B)। অন্যান্য প্রোগ্রামযোগ্য বোর্ড যেমন আরডুইনো ব্যবহারযোগ্য, তবে, আরডুইনো এবং অন্যান্য বোর্ডের জন্য অন্য ধাপে বর্ণিত চেয়ে ভিন্ন কোডিংয়ের প্রয়োজন হবে।

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

এই প্রকল্পের জন্য রাস্পবেরি পাইয়ের একমাত্র বহিরাগত সংযোগ হল ক্যামেরা মডিউল। ক্যামেরা মডিউল এই প্রকল্পের অবিচ্ছেদ্য অংশ, যেহেতু রুমবা ক্যামেরায় যা দেখে তার উপর ভিত্তি করে কাজগুলি সম্পাদন করবে।

4. MATLAB 2018a

MATLAB এর দ্বিতীয় সাম্প্রতিক সংস্করণ, 2018a, এই সেটআপের সাথে জড়িত কোডিংয়ের জন্য ব্যবহৃত হয়েছিল। এটি সম্ভবত MATLAB এর অন্যান্য সংস্করণগুলির সাথে কাজ করবে কারণ রুমবা প্রোগ্রামিং কিছু সময়ের জন্য ছিল

ধাপ 2: ফাইল এবং ক্যামেরা কনফিগারেশন

ফাইল এবং ক্যামেরা কনফিগারেশন
ফাইল এবং ক্যামেরা কনফিগারেশন

1. রুমবাতে রাস্পবেরি পাই এবং ক্যামেরা সংযোগ

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

2. ফাইল

  • সবকিছু সেট আপ এবং সংযুক্ত করার পরে, নিশ্চিত করুন যে রোবটটি পুনরায় সেট করা হয়েছে এবং 10 সেকেন্ডের জন্য "স্পট" এবং "ডক" বোতামগুলি ধরে রেখে যাওয়ার জন্য প্রস্তুত।
  • এখানেই MATLAB এর প্রথম প্রয়োজন। রুমবা জন্য ফাইলগুলি প্রথমে ইনস্টল করা দরকার এবং এই ফাইলগুলির জন্য যা প্রয়োজন তা হল এই লিঙ্কে দেওয়া কোড:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

ধাপ 3: প্রাথমিক রুমবা টেস্টিং

এটি কাজ করছে কিনা তা নিশ্চিত করার জন্য রুমবাতে অনেক প্রাথমিক পরীক্ষা করা দরকার।

1. নিশ্চিত করুন যে আপনি রুমবা হিসাবে একই ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত। এটি ছাড়া, আপনি কখনই ম্যাটল্যাবের মাধ্যমে সংযুক্ত হবেন না।

2. আপনার রুমবাকে কোন নম্বরটি বরাদ্দ করা হয়েছে তা সন্ধান করুন যাতে আপনি বিশেষভাবে আপনার নির্বাচিত রুমবাটির সাথে সংযোগ স্থাপন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার রুমবা এর নম্বর 30 হয়, তাহলে আপনি MATLAB এর কমান্ড উইন্ডোতে roomba (30) টাইপ করে এর সাথে সংযোগ স্থাপন করবেন।

3. MATLAB- এ স্ট্রাক্টের মাধ্যমে রুমবা নিয়ন্ত্রণ করা যায়। উদাহরণস্বরূপ, যদি আপনি রুমবা ()০) ভেরিয়েবল 'r' এর জন্য আপনার কোড সেট করেন, তাহলে রোবটটি r.moveDistance (0.2, 0.1) কমান্ড দিয়ে এগিয়ে যেতে পারে।

4. অনেকগুলি বিভিন্ন কমান্ড রয়েছে যা রুমবাকে জানানো যায় এবং কমান্ড উইন্ডোতে 'ডক রুমবা' টাইপ করে এগুলি দেখা যায়।

5. 'ডক রুমবা' তে দেখা কমান্ডগুলি ব্যবহার করে আলো, বাম্প এবং ক্লিফ রিডিংয়ের সেন্সরগুলি সবই পড়া যায় কিন্তু সেন্সর ডেটা দেখার জন্য একটি ধ্রুবক, ঝরঝরে মেনু থাকার উপায় 'r.testSensors' ব্যবহার করে দেখা যায় '।

6. এই সব পরীক্ষা করার পর, রোবটের ছবি সংগ্রহ সফটওয়্যার ব্যবহার করা যাবে ছবি তোলা এবং দেখতে। এর জন্য বেসিক কোড হবে img = r.getImage এবং imshow (img); ।

7. ছবির RGB মানগুলি red_mean = mean (mean (img (:,:, 1)) কোড দিয়ে পাওয়া যাবে;

green_mean = mean (mean (img (:,:, 2))); এবং blue_mean = mean (mean (img (:,:, 3))); ।

ধাপ 4: MATLAB কোডের উদাহরণ

MATLAB কোডের উদাহরণ
MATLAB কোডের উদাহরণ

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

i = 1:.1: 3 img = r.getImage এর জন্য; image (img) red_mean = mean (mean (img (:,:, 1))); green_mean = mean (mean (img (:,:, 2))); blue_mean = mean (mean (img (:,:, 3))); যদি red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else for i = 1: 2 r.moveDistance (0.2, 0.1) r। setDriveVelocity (.3,.2) r.stop end end end যদি green_mean <35 && blue_mean <35 %গায়ের রং দেখাচ্ছে (নভোচারীর গায়ের রঙের উপর ভিত্তি করে সমন্বয় করা প্রয়োজন) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; %ইমেইল পাঠায় স্যুট বন্ধ psswd = 'হ্যাঁ'; হোস্ট = 'smtp.gmail.com'; পোর্ট = '465'; emailto = '[email protected]'; m_subject = 'বিষয়'; m_text = 'পরীক্ষা'; setpref ('ইন্টারনেট', 'E_mail', মেইল); setpref ('ইন্টারনেট', 'SMTP_Server', হোস্ট); setpref ('ইন্টারনেট', 'SMTP_Username', মেইল); setpref ('ইন্টারনেট', 'SMTP_Password', psswd); প্রপস = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', মেইল); props.setProperty ('mail.smtp.host', হোস্ট); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', পোর্ট); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'নভোচারীদের ইউনিফর্ম বন্ধ!', img); শেষ হলে red_mean 135 || সবুজ অর্থ 135 || j = 1: 2 %এর জন্য blue_mean 135 psswd = 'হ্যাঁ'; হোস্ট = 'smtp.gmail.com'; পোর্ট = '465'; emailto = '[email protected]'; m_subject = 'বিষয়'; m_text = 'পরীক্ষা'; setpref ('ইন্টারনেট', 'E_mail', মেইল); setpref ('ইন্টারনেট', 'SMTP_Server', হোস্ট); setpref ('ইন্টারনেট', 'SMTP_Username', মেইল); setpref ('ইন্টারনেট', 'SMTP_Password', psswd); প্রপস = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', মেইল); props.setProperty ('mail.smtp.host', হোস্ট); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', পোর্ট); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'নভোচারী খুঁজে পাওয়া যাবে না!', img); r.stop শেষ শেষ শেষ

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

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

প্রস্তাবিত: