সুচিপত্র:

রুমবা পার্কিং পাল: 6 টি ধাপ
রুমবা পার্কিং পাল: 6 টি ধাপ

ভিডিও: রুমবা পার্কিং পাল: 6 টি ধাপ

ভিডিও: রুমবা পার্কিং পাল: 6 টি ধাপ
ভিডিও: DJ Snake - Taki Taki ft. Selena Gomez, Ozuna, Cardi B (Official Music Video) 2024, জুলাই
Anonim
রুমবা পার্কিং পাল
রুমবা পার্কিং পাল

এই প্রকল্পে একটি iRobot Create programmable roomba, MATLAB r2018a, এবং MATLAB মোবাইল ব্যবহার করা হয়েছে। এই তিনটি মাধ্যম এবং কোডিং সম্পর্কে আমাদের জ্ঞান ব্যবহার করে, আমরা রঙের ব্যাখ্যার জন্য iRobot ক্রিয়েট প্রোগ্রাম করেছি এবং কাজগুলি সম্পন্ন করতে অন-বোর্ড সেন্সর ব্যবহার করেছি। এই কাজগুলি সম্পাদনের জন্য রাস্পবেরি পাই এবং ম্যাটল্যাব যোগাযোগের উপর নির্ভর করে।

ধাপ 1: উপকরণ

উপকরণ
উপকরণ
উপকরণ
উপকরণ

1. iRobot রোবট তৈরি করুন

2. MATLAB r2018a

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

4. ক্যামেরা মডিউল

5. 3-ডি মুদ্রিত ক্যামেরা স্টেবিলাইজার স্ট্যান্ড

6. MATLAB মোবাইল দিয়ে স্মার্টফোন ইনস্টল করা

7. MATLAB ইনস্টল করা ল্যাপটপ/কম্পিউটার

ধাপ 2: সংযোগ

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

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

পরবর্তী ধাপ হল রোবটটিকে আপনার কম্পিউটারের সাথে সংযুক্ত করা যাতে আপনি রোবটটি সম্পাদনের জন্য কমান্ড চালাতে পারেন। প্রথম জিনিস যা আপনাকে করতে হবে তা হল আপনার কম্পিউটারকে ওয়্যারলেস নেটওয়ার্কের সাথে সংযুক্ত করুন যা আপনার রুমবা তৈরি করছে। এখন, এটি সুপারিশ করা হয় যে আপনি পাথ সেট করতে MATLAB এ সেট পথ আইকনটি ব্যবহার করুন যাতে আপনি MATLAB থেকে Roomba টুলবক্সে ফাংশন ব্যবহার করতে পারেন। প্রতিবার যখন আপনি রোবটের সাথে ব্যবহার শুরু এবং শেষ করছেন, আপনাকে অবশ্যই একটি "টু-ফিঙ্গার স্যালুট" রোবটকে পুনরায় সেট করতে হবে, যার অর্থ হল আপনি দশ সেকেন্ডের জন্য ডক এবং স্পট বোতামগুলি ধরে রাখুন যতক্ষণ না আলো নিimsসরণের ইঙ্গিত দেয়। আপনি এই হার্ড রিসেট দিয়ে সফল হয়েছেন যদি আপনি রোবটটি একটি ছোট স্কেলে খেলতে শুনতে পান। এরপরে আপনাকে অবশ্যই এই "r = roomba (x)" এর মত একটি লাইন ব্যবহার করে রুমবাতে সংযোগ করতে হবে যেখানে 'x' হল আপনার কাছে থাকা রোবটের জন্য নির্ধারিত নম্বর।

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

ধাপ 3: সেন্সর ব্যবহার করার জন্য যৌক্তিকভাবে একটি MATLAB কোড তৈরি করা

সেন্সর ব্যবহার করার জন্য যৌক্তিকভাবে একটি ম্যাটল্যাব কোড তৈরি করা
সেন্সর ব্যবহার করার জন্য যৌক্তিকভাবে একটি ম্যাটল্যাব কোড তৈরি করা

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

R2018a MATLAB এ ডিজাইন করা, এই কোডটি স্ট্যান্ডার্ড টুলবক্স, iRobot ক্রিয়েট টুলবক্স, সেইসাথে MATLAB মোবাইল টুলবক্স ব্যবহার করে। এই উদাহরণে ব্যবহৃত রুমবা 26 হিসাবে চিহ্নিত করা হয়েছে, এবং r = roomba (26) রুমবার সাথে সম্পূর্ণরূপে যোগাযোগ করার জন্য শুধুমাত্র একবার চালানো দরকার।

কোড:

ফাংশন পার্কাসিস্ট (x) যদি x == 1 হয়

r = roomba (26) % roomba এর সাথে সংযোগ স্থাপন করে

যখন সত্য

r.setDriveVelocity (.05,.05) % একটি ধীরগতির ড্রাইভিং গতিতে রুমবা সেট করে

bump = r.getBumpers % বাম্প সেন্সর থেকে ডেটা পায়

cliff = r.getCliffSensors % ক্লিফ সেন্সর থেকে ডেটা পায়

light = r.getLightBumpers % হালকা বাম্প সেন্সর থেকে তথ্য পায়

img = r.getImage;% রোবটের ক্যামেরা বন্ধ পড়ে

red_mean = mean (mean (img (:,:, 1))) % লাল পিক্সেলের গড় পরিমাণ পড়ে

green_mean = mean (mean (img (:,:, 2))) % সবুজ পিক্সেলের গড় পরিমাণ পড়ে

blue_mean = mean (mean (img (:,:, 3))) % নীল পিক্সেলের গড় পরিমাণ পড়ে

যদি bump.front == 1 %ফ্রন্ট বাম্প সেন্সর পড়ে

r.stop %রুমবা বন্ধ করে

msgbox ('পাথ অস্পষ্ট!', 'পার্কিং অ্যাসিস্ট্যান্ট মেসেজ') % মেসেজ দেখায় যে পাথ অস্পষ্ট ব্রেক % লুপ শেষ করে

অন্যথায় সবুজ_মান> 150

r.stop %রুমবা বন্ধ করে

cont = questdlg ('চালিয়ে যান?'

যদি cont == 'হ্যাঁ'

পার্কাসিস্ট (1) %কোডটি পুনরায় চালু করে

অন্য

শেষ

break % লুপ শেষ করে

অন্যথায় red_mean> 140

r.turnAngle (45) %রুমবা 45 ডিগ্রী ঘুরিয়ে দেয়

r.timeStart %টাইম কাউন্টার শুরু করে

যখন সত্য

r.setDriveVelocity (.05,.05) %রুমবা এর গতি নির্ধারণ করে

সময় = r.timeGet %একটি ভেরিয়েবলে সময় নির্ধারণ করে

bump = r.getBumpers % বাম্প সেন্সর থেকে ডেটা পায়

cliff = r.getCliffSensors % ক্লিফ সেন্সর থেকে ডেটা পায়

light = r.getLightBumpers % হালকা বাম্প সেন্সর থেকে তথ্য পায়

img = r.getImage;% রোবটের ক্যামেরা বন্ধ পড়ে

red_mean = mean (mean (img (:,:, 1))) % লাল পিক্সেলের গড় পরিমাণ পড়ে

green_mean = mean (mean (img (:,:, 2))) % সবুজ পিক্সেলের গড় পরিমাণ পড়ে

blue_mean = mean (mean (img (:,:, 3))) % নীল পিক্সেলের গড় পরিমাণ পড়ে

যদি blue_mean> 120

r.moveDistance (-0.01) % রুমবাকে পিছনের দিকে একটি নির্দিষ্ট দূরত্বের গান চালায় (r, 'T400, C, D, E, F, G, A, B, C^', 'true')

মেসেজবক্স ('জল পাওয়া গেছে!', 'পার্কিং সহকারী বার্তা') % একটি বার্তা দেখায় যে পানি পাওয়া গেছে r.turnAngle (-80) % ঘোরায় রুমবা 80 ডিগ্রী

break % বর্তমান লুপ শেষ করে

elseif light.rightFront> 25 || light.leftFront> 25 %হালকা বাম্প সেন্সর পড়ে

r.moveDistance (-0.01) % রুমবাকে একটি নির্দিষ্ট দূরত্বের পিছনে নিয়ে যায়

r.turnAngle (-35) % রুমবা 35 ডিগ্রী ঘুরায়

break %বর্তমান লুপ শেষ করে

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %উভয় ক্লিফ সেন্সর পড়ে

r.moveDistance (-0.1) % রুমবাকে একটি নির্দিষ্ট দূরত্বের পিছনে নিয়ে যায়

r.turnAngle (-80) %রুমবা 80 ডিগ্রী ঘুরায়

break % বর্তমান লুপ শেষ করে

অন্য সময়> = 3

r.stop %রুমবা বন্ধ করে

Contin = questdlg ('স্টেশন ফ্রি, চালিয়ে যান?'

r.turnAngle (-90) % রুমবা 90 ডিগ্রী ঘুরায়

পার্কাসিস্ট (1) %ফাংশন পুনরায় চালু করে

অন্য

r.stop % রুমবা বন্ধ করে

শেষ

অন্য

শেষ

শেষ

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %উভয় ক্লিফ সেন্সর পড়ে

r.moveDistance (-0.1) %রুমবাকে একটি নির্দিষ্ট দূরত্বের পিছনে নিয়ে যায়

r.turnAngle (-90) %রুমবা 90 ডিগ্রী ঘুরায়

elseif cliff.rightFront <2500 %ডান ক্লিফ সেন্সর পড়ে

r.turnAngle (-5) %ক্লিফ সেন্সরের বিপরীত দিকে রুমবাকে সামান্য ঘুরিয়ে দেয়

elseif cliff.leftFront <2500 %বাম ক্লিফ সেন্সর পড়ে

r.turnAngle (5) %ক্লিফ সেন্সরের বিপরীত দিকে রুমবাকে সামান্য ঘুরিয়ে দেয়

অন্য

শেষ

শেষ

শেষ

ধাপ 4: কোড এবং রোবট পরীক্ষা করা

কোড এবং রোবট পরীক্ষা করা হচ্ছে
কোড এবং রোবট পরীক্ষা করা হচ্ছে
কোড এবং রোবট পরীক্ষা করা হচ্ছে
কোড এবং রোবট পরীক্ষা করা হচ্ছে
কোড এবং রোবট পরীক্ষা করা হচ্ছে
কোড এবং রোবট পরীক্ষা করা হচ্ছে

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

ধাপ 5: ত্রুটির স্বীকৃতি

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

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

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

প্রস্তাবিত: