সুচিপত্র:

MATLAB সঙ্গে Roomba: 4 ধাপ (ছবি সহ)
MATLAB সঙ্গে Roomba: 4 ধাপ (ছবি সহ)

ভিডিও: MATLAB সঙ্গে Roomba: 4 ধাপ (ছবি সহ)

ভিডিও: MATLAB সঙ্গে Roomba: 4 ধাপ (ছবি সহ)
ভিডিও: বিড়াল তার আচরণ দ্বারা আপনাকে কি বোঝাতে চাচ্ছে? | What does the cat mean to you by its behavior? 2024, নভেম্বর
Anonim
MATLAB সঙ্গে Roomba
MATLAB সঙ্গে Roomba

এই প্রকল্প MATLAB এবং একটি iRobot Create2 প্রোগ্রামযোগ্য রোবট ব্যবহার করে। ম্যাটল্যাব সম্পর্কে আমাদের জ্ঞান পরীক্ষা করে, আমরা ইমেজ ব্যাখ্যা এবং সংকেত সনাক্ত করতে Create2 প্রোগ্রাম করতে সক্ষম। রোবটের কার্যকারিতা মূলত MATLAB মোবাইল অ্যাপ এবং রাস্পবেরি পাই ক্যামেরা মডিউলের উপর নির্ভর করে।

ধাপ 1: যন্ত্রাংশ এবং উপকরণ

যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ
যন্ত্রাংশ এবং উপকরণ

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

- এটি একটি প্রোগ্রামযোগ্য রোবট যা দেখতে একটি রুম্বার মত। সচেতন থাকুন যে iRobot এর এই পণ্যটি ভ্যাকুয়াম নয়। এটি ব্যবহারকারী দ্বারা কাস্টম প্রোগ্রামিং এর উদ্দেশ্যে করা হয়েছে।

2. MATLAB 2017a

- বেশিরভাগ পুরোনো সংস্করণ আমরা নীচে ব্যবহৃত কোডের সাথে সামঞ্জস্যপূর্ণ হবে। ম্যাটল্যাব এমন একটি কমান্ড চিহ্নিত করবে যা আপনার সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয় এবং একটি সেরা ফিট কমান্ডের পরামর্শ দেবে।

3. রাস্পবেরি পাই 3 মডেল বি, সংস্করণ 1.2

- আপনার iRobot এর সাথে কোন রাস্পবেরি পাই সামঞ্জস্যপূর্ণ তা পরীক্ষা করে দেখুন। আরও সহায়তার জন্য এই লিঙ্কটি দেখুন: https://www.irobotweb.com/~/media/MainSite/PDFs/A… এই নির্দেশযোগ্য অনুমান করা হয় যে আপনি একটি পূর্বপ্রস্তুত রাস্পবেরি পাই নিয়ে কাজ করছেন। অনুগ্রহ করে সচেতন থাকুন যে নিম্নলিখিত পদক্ষেপগুলি কাজ করার জন্য আপনাকে একটি পূর্বনির্ধারিত পাইয়ের সাথে কাজ করতে হবে। প্রিপ্রোগ্রাম করা Pi ব্যবহার করলে আপনি শুধুমাত্র MATLAB এ আপনার সমস্ত কোডিং করতে পারবেন।

4. ক্যামেরা মডিউল V2 (রাস্পবেরি পাই এর জন্য)

- আপনি অবাক হতে পারেন; এর আকার সত্ত্বেও, রাস্পবেরি পাই ক্যামেরা মডিউলটি খুব ভাল মানের। এটি এই প্রকল্পের জন্য সবচেয়ে সস্তা এবং সবচেয়ে সামঞ্জস্যপূর্ণ বিকল্প।

Alচ্ছিক: 3D- মুদ্রিত স্ট্যান্ড এটি ক্যামেরা স্থিতিশীল করতে ব্যবহৃত হয়। এটি রোবটের কার্যকারিতাকে প্রভাবিত করে না, কিন্তু যদি আপনি রঙ এবং/অথবা বস্তুর স্বীকৃতির জন্য ইমেজিং ডেটা ব্যবহার করতে চান তবে এটি আপনার কোডিংকে সহায়তা করবে।

পদক্ষেপ 2: কনফিগারেশন

কনফিগারেশন
কনফিগারেশন
কনফিগারেশন
কনফিগারেশন

1. রাস্পবেরি পাই এবং ক্যামেরা মডিউল সংযুক্ত করা (হার্ডওয়্যার)

- রাস্পবেরি পাইকে পাওয়ার জন্য, আপনাকে মাইক্রোকন্ট্রোলারে মহিলা পাওয়ার পোর্টে পুরুষ এন্ড মাইক্রো ইউএসবি চালাতে হবে। Ptionচ্ছিক: ভোল্টেজ 5V অতিক্রম না নিশ্চিত করতে একটি ভোল্টেজ নিয়ন্ত্রক ব্যবহার করা যেতে পারে। রাস্পবেরি পাই পাওয়ার করার পরে, আপনি মাদারবোর্ড থেকে ইউএসবি পোর্ট এ মাইক্রোকন্ট্রোলারে পুরুষ শেষ ইউএসবি এ চালানোর মাধ্যমে এটি আপনার রোবটের সাথে সংযুক্ত করতে পারেন।

- রুমাকে Pi সংযুক্ত করার পরে, ক্যামেরাটি ইনস্টল করার জন্য প্রস্তুত। ক্যামেরা মডিউল আপনার প্রত্যাশার চেয়ে অনেক ছোট হবে। লক্ষ্য করুন যে লেন্সটি একটি সেন্সরে মাউন্ট করা হয়েছে, এবং একটি সাদা ফিতা ক্যামেরা থেকে প্রসারিত। ফিতা সরান বা ছিঁড়বেন না! রাস্পবেরি পাই এর সাথে এটি সংযুক্ত করার জন্য এটি কেবল। প্রথমে, ফিতার শেষটি ধরে রাখুন এবং সিলভার সংযোগকারী এবং নীল তারের সন্ধান করুন। এগুলো বিপরীত দিকে। এরপরে, আপনার রাস্পবেরি পাইতে ইথারনেট এবং এইচডিএমআই পোর্টের মধ্যে স্লটটি সন্ধান করুন। লক্ষ্য করুন সেখানে একটি ছোট, সাদা তালা আছে যা coveringেকে আছে। আস্তে আস্তে লকটি তুলুন, কিন্তু স্লট থেকে এটি অপসারণ করবেন না, কারণ এটি স্ন্যাপ হবে এবং স্থায়ীভাবে ক্ষতিগ্রস্ত হবে। একবার আপনি লকটি তুলে নেওয়ার পরে, ফিতাটি ধরুন এবং এইচডিএমআই পোর্টে রূপালী সংযোগকারীদের মুখোমুখি হন। নীল দিকটি ইথারনেট পোর্টের মুখোমুখি হবে। আস্তে আস্তে ফিতাটি স্লটে স্লাইড করুন যখন এটি এখনও আনলক থাকে। আপনাকে স্লটে জোর করতে হবে না। সন্নিবেশ করার পরে, লকটি নীচে চাপুন। যদি আপনার ক্যামেরাটি যথাযথভাবে সুরক্ষিত থাকে, তাহলে আপনি (আলতো করে) ফিতাটি টানতে এবং টান অনুভব করতে সক্ষম হবেন। ফিতা আলগা হওয়া উচিত নয়। আপনার ক্যামেরাটিকে পাইয়ের সাথে সংযুক্ত করার পরে, আপনি লক্ষ্য করতে পারেন এটি কতটা আলগা। এজন্য আমরা এটিকে স্থির করার জন্য একটি 3D- মুদ্রিত মাউন্ট ব্যবহার করেছি। উচ্চমানের ইমেজিংয়ের জন্য আপনার ক্যামেরা স্থির রাখতে আপনি কোন উপকরণ ব্যবহার করতে চান তা নির্ধারণ করা আপনার পছন্দ।

2. সঠিক ফাইল ইনস্টল করা এবং আপনার কম্পিউটারে রুম্বা সংযুক্ত করা আপনার সমস্ত হার্ডওয়্যার কনফিগার করার পরে, আপনি এখন সংশ্লিষ্ট এম-ফাইলগুলির সাথে MATLAB ইনস্টল করার দিকে এগিয়ে যেতে পারেন যা আপনাকে রোবটের সাথে যোগাযোগ করতে দেয়। এটি করার জন্য, MATLAB খুলুন এবং একটি নতুন ফোল্ডার তৈরি করুন যাতে সমস্ত সম্পর্কিত ফাইল একসাথে থাকে। প্রয়োজনীয় ফাইলগুলি ইনস্টল/আপডেট করতে এই স্ক্রিপ্টটি ব্যবহার করুন:

- সমস্ত ফাইল এখন আপনার তৈরি ফোল্ডারে দেখানো উচিত। বর্তমান ফোল্ডার উইন্ডোতে ডান ক্লিক করুন এবং যে পথ নির্দেশিকাগুলির তালিকায় MATLAB ফাইলগুলি সন্ধান করে সেখানে যোগ করার জন্য 'পাথে যোগ করুন' নির্বাচন করুন। আপনার সমস্ত ফাইল সঠিক পথে আছে তা নিশ্চিত করুন।

3. একবার ফাইলগুলি ইনস্টল হয়ে গেলে, আপনি এখন আপনার রোবটের সাথে সংযোগ স্থাপন শুরু করতে পারেন। আপনার রোবটটি চালু করে শুরু করুন এবং তারপরে শুরু করার পরে সরাসরি এটি পুনরায় সেট করুন (ব্যবহারের আগে এবং পরে প্রতিবার আপনার রোবটটি পুনরায় সেট করতে ভুলবেন না)। দ্বিতীয়ত, আপনার রোবট এবং ল্যাপটপ উভয়ই একই ওয়াইফাই নেটওয়ার্কে সংযুক্ত করুন। এর পরে, আমরা MATLAB এর মাধ্যমে পূর্বনির্ধারিত রাস্পবেরি পাই এর সাথে রুম্বাকে তার প্রদত্ত নাম এবং ফাংশন রুমবা ব্যবহার করে কথা বলব। উদাহরণস্বরূপ, আমি নিচের লাইনটি ব্যবহার করে রোবট 28 এর সাথে সংযুক্ত হব: R = roomba (28)।

- লক্ষ্য করুন কিভাবে আমি একটি ভেরিয়েবল R- তে বস্তুটি অর্পণ করেছি।

- আর।

ধাপ 3: ম্যাটল্যাব লজিক

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

অভিজ্ঞতা বাড়ানোর জন্য, আমরা আমাদের মোবাইল ডিভাইসে MATLAB অ্যাপ্লিকেশন ব্যবহার করেছি যাতে আমরা কেবল আমাদের ফোন কাত করে রোবটের গতিবিধি নিয়ন্ত্রণ করতে পারি। এটি একটি alচ্ছিক কার্যকলাপ, যেহেতু আপনি অবশ্যই MATLAB কোড বিভাগে moveDistance কমান্ড ব্যবহার করে রোবট মুভ করতে পারেন। মনে রাখবেন যে আপনার রোবটকে নিয়ন্ত্রণ করার জন্য MATLAB কমান্ড ব্যবহার করা পছন্দ করা হয় যদি আপনার লক্ষ্য সুনির্দিষ্ট হয়। আপনি যদি আপনার রোবটকে লক্ষ্য করতে চান যাতে ক্যামেরা একটি নির্দিষ্ট স্থানে ছবি তুলতে পারে, MATLAB এ রোবটের গতিবিধি কোড করা ভাল হতে পারে। বিনোদনের সময়, আপনার রোবটকে নিয়ন্ত্রণ করতে MATLAB অ্যাপ্লিকেশন ব্যবহার করা নির্ভুলতার জন্য কাম্য নয়।

কোডটি রুম্বাকে একটি মৌলিক সেটআপ করার নির্দেশ দেয় তারপর একটি অবিচ্ছিন্ন লুপের মাধ্যমে চালিয়ে যান। প্রাথমিকভাবে ল্যাপটপটি Roomba () কমান্ড ব্যবহার করে রুম্বার সাথে একটি লিঙ্ক স্থাপন করবে। এটি MATLAB এ webwrite () কমান্ড ব্যবহার করে টুইটার সংযোগ স্থাপন করে। রুমে চারপাশের পরিবেশের উপর নির্ভর করে লুপটিতে পাঁচটি প্রধান যৌক্তিক প্রবাহ রয়েছে। প্রথমে রুম্বা বাধাগুলি পরীক্ষা করে, এবং পিছনে সামঞ্জস্য করে যদি এটি বাধা পায়। সেই লুপে আবদ্ধ হল দ্বিতীয় পথ যা ব্যবহারকারীদের সতর্ক করে দেয় যদি রুম্বা বহন করা হয়। কঠোর মার্টিয়ান ওয়ারজোনে একটি গুরুত্বপূর্ণ উপযোগিতা। রুম্বা তার অবস্থান নিরাপদ কিনা তা নির্ধারণ করার পর, এটি তার পরবর্তী গতিবিধি নির্ধারণের জন্য মোবাইল ডিভাইসের দিকে তাকিয়ে থাকে। যদি মোবাইল ডিভাইসটি সামনের দিকে কাত করা হয় তবে এটি পিচ ডিগ্রির উপর ভিত্তি করে ঘুরতে পৃথক চাকার গতি সামঞ্জস্য করার চেয়ে রোল পরিমাপের তীব্রতার উপর ভিত্তি করে একটি বেস বেগ গণনা করবে। ফোনটি রুম্বাকে বিপরীত দিকেও সরাতে পারে। একটি নিরপেক্ষ মোবাইল ডিভাইসের রাজ্য চূড়ান্ত দুটি পথকে গেট করে। একটি বিশ্রামপ্রাপ্ত রুমা একটি এলিয়েন পতাকা অনুসন্ধান করবে এবং সেই অনুযায়ী ব্যবহারকারীকে সতর্ক করবে।

নীচে আমাদের কোড (MATLAB 2017a এ সম্পন্ন)

%ইনপুট: ওয়াইফাই সংযুক্ত ডিভাইস, ক্যামেরা থেকে ওরিয়েন্টেশন ডেটা

%তথ্য, সেন্সর ডেটা

%আউটপুট: গতি ওয়াইফাই সংযুক্ত ডিভাইস এবং গতি দ্বারা নিয়ন্ত্রিত হয়

সেন্সর ডেটা পড়ে নিরাপত্তা যাচাই করা হয়। যদি ক্যামেরা সনাক্ত করে

% একটি এলিয়েন পতাকা তারপর রুমবা শত্রু পতাকা টুইট করে সাড়া দেয়

% দেখা গেছে।

%উদ্দেশ্য: আমাদের ডিভাইস কোন উদ্দেশ্য ছাড়া বেঁচে থাকে যাদের রক্ষা করা ছাড়া

% এটি তৈরি করেছে, এটি তার স্রষ্টার সেবা করে এবং করে

% ঠিক কি বলেছে।

%ব্যবহার: মূলত প্রোগ্রামটি নিজেই চলবে।

সব পরিষ্কার করুন, সব বন্ধ করুন, clc

অবজেক্ট এবং ভেরিয়েবল শুরু করা

r = রুমবা (28);

m = মোবাইলদেব;

%ব্যবহার প্রতিক্রিয়া = ওয়েবরাইট (হোস্টনাম, ডেটা)

hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';

API = 'SGZCTNQXCWAHRCT5';

টুইট = 'রোবকপ কাজ করছে … কমান্ডের অপেক্ষায়';

ডেটা = strcat ('api_key =', API, '& status =', টুইট);

reponse = webwrite (hostname, data);

%ক্রমাগত চলমান লুপ

যখন 1 == 1

রিলেভেন্ট ডেটা ধারণকারী %স্ট্রাকচার

o = m.orientation; মোবাইল ডিভাইসের %ওরিয়েন্টেশন

আলো = r.getLightBumpers (); %হালকা বাম্পার মান

a = r.getCliffSensors (); %ক্লিফ সেন্সর মান

bump = r.getBumpers (); %বাম্পার সেন্সর

%চেক বাম্পার

যদি bump.right == 1 || bump.left == 1 || bump.front == 1

r.moveDistance (-। 2,.2);

%আলোর সেন্সর চেক করুন

elseif light.left> 60 || light.leftFront> 60 || light.leftCenter> 60 || light.right> 60 || light.rightFront> 60 || light.rightCenter> 60

r.moveDistance (-। 2,.2);

ক্লিফ সেন্সর চেক করুন

%চুরি বিরোধী সংকেত এবং বিজ্ঞপ্তি

elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300

r.stop ();

r.beep ();

টুইট = 'রোবকপ তুলে নেওয়া হয়েছে!'

ডেটা = strcat ('api_key =', API, '& status =', টুইট);

reponse = webwrite (hostname, data);

%সাধারণ ক্লিফ এভয়েডেন্স অপারেশন

elseif a.left <300 || a.right <300 || a.leftFront <300 || a.rightFront <300

r.moveDistance (-। 2,.2);

%Roomba চেক পাস এবং এখন স্বাভাবিক অপারেশন সঙ্গে চালানো হবে।

%প্রাথমিকভাবে ডিভাইসের রোল পরিমাপ করা হয় এবং একটি বেস হয়ে যায়

%বেগ যা চাকার গতি গণনা করতে ব্যবহৃত হয়

%ফরওয়ার্ড মোশন

elseif o (3)> = 0 && o (3) <= 60

baseVel = (-। 5/60)*(o (3) -60);

যদি o (2)> =-70 && o (2) <0

r.setDriveVelocity (baseVel+(। 3/50)*abs (o (2)), baseVel-(। 3/50)*abs (o (2)));

elseif o (2) = 0

r.setDriveVelocity (baseVel-(। 3/50)*abs (o (2)), baseVel+(। 3/50)*abs (o (2)));

অন্যথায় r.stop

শেষ

%পিছনের গতি

elseif o (3)> 100 && o (3) <150

r.setDriveVelocity (-। 2, -2)

r.beep ();

r.beep ();

%বিশ্রাম রুমবা ফ্লোরসেন্ট হিসাবে চিহ্নিত এলিয়েন পতাকা অনুসন্ধান করবে

%সবুজ কাগজের টুকরা

অন্য

r.stop

img = r.getImage (); %ছবি তুলুন

থ্রেশহোল্ড = গ্রেথ্রেশ (img (200: 383,:, 2))+। 1; %calc সবুজ স্তর

যদি থ্রেশহোল্ড>.42

টুইট = 'শত্রু চিহ্নিত !!'

ডেটা = strcat ('api_key =', API, '& status =', টুইট);

reponse = webwrite (hostname, data);

অন্য

r.stop

শেষ

শেষ

শেষ

ধাপ 4: উপসংহার

মনে রাখবেন, আপনি উপরে লিখিত স্ক্রিপ্টটি ব্যবহার করতে পারেন, কিন্তু আপনি সবসময় আপনার প্রয়োজন অনুসারে এটি পরিবর্তন করতে পারেন। এটি আপনার ফোন দ্বারা নিয়ন্ত্রিত হতে হবে না! (যাইহোক, এটি আরও মজাদার করে তোলে।) আপনি আপনার রোবটকে নিয়ন্ত্রণ করতে কোন পদ্ধতিটি ব্যবহার করতে পছন্দ করেন তা চয়ন করুন। আপনার রোবট নিয়ে ঘুরে বেড়ান এবং উপভোগ করুন!

প্রস্তাবিত: