সুচিপত্র:

প্রকল্প 3: সোনারডুইনো: 9 টি ধাপ
প্রকল্প 3: সোনারডুইনো: 9 টি ধাপ

ভিডিও: প্রকল্প 3: সোনারডুইনো: 9 টি ধাপ

ভিডিও: প্রকল্প 3: সোনারডুইনো: 9 টি ধাপ
ভিডিও: পূর্বাচল প্রকল্পের সময় বারবার বাড়ছে কেন? || Purbachal Project 2024, সেপ্টেম্বর
Anonim
Image
Image

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

ধাপ 1: আপনার যা লাগবে

অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন

এই বিল্ডটি তৈরি করতে আপনাকে নিম্নলিখিতগুলি কিনতে হবে:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?: rk: 2: pf: 0

প্রোটোটাইপিং বোর্ডগুলি ~ Zbl232: rk: 13: pf: 0

সার্ভো মোটরস: 16: pf: 0 & var

অতিস্বনক সেন্সর: ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

ধাপ 2: ডকুমেন্টেশন

যেহেতু আপনারা কেউ কেউ ইতিমধ্যেই এটি জানেন, এই প্রকল্পটি "আরডুইনো রাডার প্রজেক্ট" নামক আরেকটি ওপেন-সোর্স প্রকল্প থেকে অনুপ্রাণিত যা দেজান "হাউ টু মেকাট্রনিক্স" থেকে তৈরি করেছেন @ নিচের লিঙ্ক: https://howtomechatronics.com/projects/arduino -রাদার-প্রকল্প/

আরেকটি বিষয় যার জন্য ডকুমেন্টেশন প্রয়োজন তা হল আপনার বিকাশের পরিবেশে নিম্নলিখিত দুটি লাইব্রেরি ডাউনলোড করা:

Adafruit-GFX-Library:

Adafruit_SSD1306:

এটি বলা হচ্ছে, সি কোডটি সত্যিই বোঝার জন্য আপনাকে উপরের উভয় লাইব্রেরির কিছু ডকুমেন্টেশন করতে হবে। এর বাইরে, আমার কোডে আমি যে ফাংশন ব্যবহার করেছি তার নাম আছে যা তারা যা করে তা বলে।

ধাপ 3: অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন

অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন
অতিস্বনক সেন্সর সমর্থন প্রস্তুত করুন

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

ধাপ 4: একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন

একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন
একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন
একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন
একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন
একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন
একটি প্রোটোটাইপিং বোর্ডে সবকিছু মাউন্ট করুন

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

ধাপ 5: চূড়ান্ত সংযোগ তৈরি করা

চূড়ান্ত সংযোগ তৈরি করা
চূড়ান্ত সংযোগ তৈরি করা
চূড়ান্ত সংযোগ তৈরি করা
চূড়ান্ত সংযোগ তৈরি করা
চূড়ান্ত সংযোগ তৈরি করা
চূড়ান্ত সংযোগ তৈরি করা

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

ধাপ 6: প্রোগ্রাম বুট করা

প্রোগ্রাম বুট করা
প্রোগ্রাম বুট করা

দুটি কোড আছে যা আপনাকে বুট করতে হবে

Arduino (C):

প্রসেসিং (জাভা):

কোডটি চালানোর সময়, আপনার কাছে দুটি বিকল্প থাকবে:

বিকল্প 1: OLED ডিসপ্লে ব্যবহার করে, এর জন্য আপনাকে C কোডে পরিবর্তনশীল মোড 0 তে সেট করতে হবে।

বিকল্প 2: আপনার মনিটর ব্যবহার করে, এর জন্য আপনাকে C কোডের ভেরিয়েবল মোড 1 তে সেট করতে হবে। উপরন্তু, আপনাকে প্রসেসিং ডেভেলপমেন্ট এনভায়রনমেন্ট ডাউনলোড এবং ইনস্টল করতে হবে এবং এই লিংক থেকে রাডার ফন্ট ডাউনলোড করতে হবে: https:// github.com/lastralab/ArduinoRadar/blob/ma…

এবং সেই ফাইলটি আপনার প্রসেসিং কোড ফাইলে যুক্ত করুন যাতে আপনার জাভা কোড কল করার সময় ফন্ট চিনতে পারে।

ধাপ 7: সি কোড বোঝা

সি কোড বোঝা
সি কোড বোঝা

কোডটি প্রধানত দুটি 'ফর' লুপ নিয়ে গঠিত। একটি ফরোয়ার্ড পাসের সাথে সম্পর্কযুক্ত এবং অন্যটি পিছনের পাসের সাথে। তাদের উভয়ের ভিতরে, মূল ফাংশন draw_scanner (), যা রাডারের রেখাগুলি স্ক্রিনে আঁকবে, তাকে অনেকবার বলা হয়। একাধিক কনফিগারেশন পরীক্ষা করার পর, আমি এই সিদ্ধান্তে পৌঁছেছি যে আমাদের সাদা রাডার লাইনগুলিকে মুছে ফেলার জন্য সেই সময় রাডার লাইনগুলিকে কালো+1 তে কালোতে ওভাররাইট করতে হবে। অন্যথায়, নতুন পিক্সেল গ্রিড ঠেলে দেওয়ার আগে "clearDisplay ()" ফাংশন ব্যবহার করে ডিসপ্লে পরিষ্কার করার সময় ঝলকানি ঘটবে। যেহেতু আমি 7 টি লাইন নিয়ে কাজ করছিলাম- নকশা উদ্দেশ্যে- আমাকে 7 টি উপাদানের পূর্ণসংখ্যা অ্যারে সংরক্ষণ এবং পাস করতে হয়েছিল, যেখানে প্রতিটি উপাদান রাডারের কেন্দ্রের মধ্যে সনাক্তকৃত বস্তুর ব্যাসার্ধের জন্য দাঁড়িয়ে থাকে, যদি থাকে। এটি মাথায় রেখে, বাকি কোডটি বোঝার জন্য সরাসরি এগিয়ে থাকা উচিত।

ধাপ 8: জাভা কোড বোঝা

প্রক্রিয়াকরণে, আমাকে সিরিয়াল ইভেন্ট () এর জন্য ফাংশন কলটি বাইপাস করতে হয়েছিল, যা শুধুমাত্র COM নামে সিরিয়াল পোর্টগুলির সাথে কাজ করে। আমি যখন ম্যাক -এ কাজ করছিলাম, আমার সিরিয়াল পোর্টগুলি ভিন্ন নামে এসেছে। বলা হচ্ছে, আমি "ড্র ()" প্রক্রিয়াকরণের প্রধান ফাংশনে সেই ফাংশনটি আনপ্যাক করেছি। অন্য সবকিছু সম্পর্কে, আমি সম্পূর্ণ বিপ্লব নকশা পূরণ করার জন্য অ্যাপ্লিকেশন আপডেট করেছি। অবশেষে, আমি স্ক্রিনের প্রস্থের সাথে সমস্ত আঁকা আকার এবং পাঠ্য আপডেট করেছি যাতে চূড়ান্ত পণ্যটি বিভিন্ন স্ক্রিন রেজোলিউশনের সাথে খাপ খায়। আমি ব্যক্তিগতভাবে 1000X1000 এবং 500X500 উভয় রেজোলিউশনের জন্য এটি পরীক্ষা করেছি, এবং এটি সূক্ষ্ম কাজ করেছে:)।

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

এই কাজটি 3 টি অতিস্বনক সেন্সর, প্রতিটি 120 ভিউ অ্যাঙ্গেল, অথবা 4 টি সেন্সর (90 ডিগ্রী*4) -> দ্রুত 360 ডিগ্রি থাকার জন্য আপগ্রেড করা যেতে পারে। স্ক্যান.

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

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

প্রস্তাবিত: