সুচিপত্র:

রাস্পবেরি পাই লেজার স্ক্যানার: 9 টি ধাপ (ছবি সহ)
রাস্পবেরি পাই লেজার স্ক্যানার: 9 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই লেজার স্ক্যানার: 9 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই লেজার স্ক্যানার: 9 টি ধাপ (ছবি সহ)
ভিডিও: Try to build a 3d scanner with a laser and a camera (2) #scanner #scanner3d #raspberrypi #laser 2024, জুলাই
Anonim
Image
Image
রাস্পবেরি পাই লেজার স্ক্যানার
রাস্পবেরি পাই লেজার স্ক্যানার

লেজার স্ক্যানার হল একটি রাস্পবেরি পাই এমবেডেড সিস্টেম ডিভাইস যা 3D প্রিন্টিং ব্যবহার করে প্রজননের জন্য.obj জাল ফাইলে বস্তুগুলিকে ডিজিটাইজ করতে সক্ষম। কম্পিউটার ভিশন সঞ্চালনের জন্য একটি লাইন লেজার এবং একটি সমন্বিত পাইক্যাম ব্যবহার করে ডিভাইসটি এটি করে। লেজারটি লেজার থেকে degrees৫ ডিগ্রি বিপরীত অবস্থানে থাকে এবং বস্তুর এক উল্লম্ব স্লাইসে একটি উজ্জ্বল লাল রেখা প্রজেক্ট করে। একটি জাল স্লাইস দিতে ক্যামেরা কেন্দ্র থেকে স্লাইসের দূরত্ব সনাক্ত করে। বস্তুটি ঘোরানো ট্রেতে ঘুরানো হয় এবং সম্পূর্ণ বস্তু স্ক্যান না হওয়া পর্যন্ত প্রক্রিয়াটি পুনরাবৃত্তি হয়। উত্পন্ন.obj ফাইলটি অবশেষে ব্যবহারকারীর কাছে ইমেল করা হয়, যা সিস্টেমটিকে সম্পূর্ণ স্বতন্ত্র এবং এম্বেড করে।

এই নির্দেশযোগ্য ডিভাইসটি কীভাবে তৈরি করা হয়েছিল, কিছু ফলাফল এবং ভবিষ্যতের পদক্ষেপগুলি দিয়ে চলবে।

ধাপ 1: অনুপ্রেরণা

অনুপ্রেরণা
অনুপ্রেরণা
অনুপ্রেরণা
অনুপ্রেরণা

একজন আগ্রহী নির্মাতা হিসাবে, আমি এখন বেশ কয়েক বছর ধরে 3D মুদ্রণ এবং কঠিন মডেলিং করছি। আমি সিএনসি রাউটার থেকে লেজার কাটার থেকে থ্রিডি প্রিন্টার পর্যন্ত বিভিন্ন প্রোটোটাইপিং টুল নিয়ে কাজ করেছি। একটি ডিভাইস যা আমার স্থানীয় নির্মাতারা এখনো কিনতে পারেনি সেটি হল একটি 3D স্ক্যানার - এবং আমি আপনাকে বলতে পারি কেন।

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

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

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

ধাপ 2: সরঞ্জাম এবং যন্ত্রাংশ

অংশ:

  • রাস্পবেরি পাই $ 35.00
  • রাস্পবেরি পাই ক্যামেরা V2 $ 30.00
  • LEDs, প্রতিরোধক এবং তারের
  • 3 ডি প্রিন্টিং ফিলামেন্ট
  • 12x12x0.125 কাঠের চাদর
  • M3 হার্ডওয়্যার
  • স্টেপার মোটর - $ 14
  • লাইন লেজার - $ 8
  • LN298 স্টেপার মোটর ড্রাইভার - $ 2.65
  • মেটাল পুশবাটন - $ 5

সরঞ্জাম:

  • তাতাল
  • লেজার কাটার
  • 3D প্রিন্টার
  • স্ক্রু ড্রাইভার
  • প্লাস

ধাপ 3: উচ্চ স্তরের নকশা

উচ্চ স্তরের নকশা
উচ্চ স্তরের নকশা
উচ্চ স্তরের নকশা
উচ্চ স্তরের নকশা

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

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

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

ধাপ 4: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

উপরে যেমন দেখা গেছে, লেজার কাটিং বা থ্রিডি প্রিন্টিং শুরু করার আগে, আমি আমাদের ডিজাইনের বিস্তারিত 3D মডেল তৈরির জন্য অটোডেস্ক ফিউশন 360 ব্যবহার করেছি। একটি সংক্ষিপ্ত বিবরণ হিসাবে, ডিভাইসটি একটি সাধারণ বাক্স যা laserাকনা সহ লেজার কাটের কব্জা। ডিভাইসের দুটি প্রধান স্তর রয়েছে: ইলেকট্রনিক্স বিছানা এবং প্রধান বিছানা, দুটি স্তরের মধ্যে তারের জন্য ছিদ্র রয়েছে।

আমাদের বাক্সের অধিকাংশই লেজার কাটার দিয়ে তৈরি করা হয়েছিল, ফিউশন in০ -এ ডিজাইন তৈরি করা হয়েছে এবং এপিলগ জিং W০ ওয়াটার লেজার কাটারে কাটা হয়েছে। আমাদের নকশাগুলি উপরের চিত্রগুলিতে দেখানো হয়েছে। উপরের বাম থেকে ডানদিকে, টুকরাগুলি হল প্রধান বিছানা, ইলেকট্রনিক্স বিছানা, piecesাকনার জন্য দুটি টুকরা, পিছনের অংশ, সামনের অংশ এবং দুই পাশের টুকরা। প্রধান বিছানায়, তিনটি প্রধান কাটআউট রয়েছে: একটি স্টেপার মোটর মাউন্ট করার জন্য, একটি লেজার থেকে তারের রুট করার জন্য এবং আরেকটি পিক্যামের প্রশস্ত তারের রুট করার জন্য। বিছানার টুকরোটিতে পাই, ব্রেডবোর্ড এবং মোটর ড্রাইভারকে সুরক্ষিত করার জন্য মাউন্ট করা ছিদ্র রয়েছে এবং স্টেপার মোটর অ্যাক্সেস করার জন্য আরও বড় কাটআউট রয়েছে। Seenাকনা টুকরা একসঙ্গে স্ন্যাপ করে উপরে দেখা ত্রিভুজাকার টুকরা তৈরি করে এবং কব্জা হল একটি সহজ এক্সট্রুশন যা পাশের বোর্ডগুলির গর্তের ব্যাসের প্রস্থ। পিছনের টুকরো এবং পাশের টুকরোগুলির একপাশে স্লট আছে যাতে Pi (HDMI, USB, Ethernet, Power) এর পোর্টগুলি সহজেই অ্যাক্সেস করা যায়। সামনের অংশটি একটি সাধারণ টুকরা যা আমি অবশেষে বোতাম এবং এলইডি মাউন্ট করার জন্য একটি হ্যান্ড ড্রিলের সাহায্যে গর্ত করেছিলাম।যেমন সব টুকরোতে দেখা যায়, আমাদের অংশগুলি টি-জয়েন্ট এবং স্লট ব্যবহার করে এম 3 হার্ডওয়্যার দ্বারা একসাথে রাখা হয়। এটি লেজার কাটা টুকরোগুলো অরথোগোনালি এবং সুরক্ষিতভাবে রাখার একটি পদ্ধতি। টুকরাগুলির পাখনাগুলি স্লটের সাথে অন্যান্য টুকরো এবং প্রান্তে টি-আকৃতির কাটা একটি এম 3 বাদামের জন্য স্পিন না করে তাদের মধ্যে জ্যাম করার জায়গা দেয়। এটি আমাদের একটি এম 3 স্ক্রু ব্যবহার করতে দেয় যাতে সমাবেশ সম্পূর্ণরূপে স্থায়ী না হয়ে খুব সামান্য উইগল রুমের সাথে টুকরাগুলিকে লক করতে পারে।

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

ধাপ 5: ইলেকট্রনিক্স

ইলেকট্রনিক্স
ইলেকট্রনিক্স

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

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

ধাপ 6: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার

এই প্রকল্পের সফটওয়্যারটি চারটি প্রধান অংশে বিভক্ত হতে পারে যা একসাথে ইন্টারঅ্যাক্ট করে: ইমেজ প্রসেসিং, মোটর কন্ট্রোল, মেষ ক্রিয়েশন এবং এমবেডেড ফাংশন।

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

ইমেজ প্রসেসিং

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

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

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

মোটর নিয়ন্ত্রণ

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

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

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

এম্বেডেড ফাংশন

ডিভাইসটি কার্যকরী হওয়ার পরে, আমি সম্পূর্ণ এমবেডেড কার্যকারিতা যোগ করে এটিকে পালিশ করেছি। এর অর্থ হল কীবোর্ড, মাউস এবং মনিটর অপসারণ করা, এবং এটি তারবিহীনভাবে.obj ফাইলটি প্রক্রিয়াকরণ শেষ করার পরে পাঠান। শুরু করার জন্য, আমি.bashrc কোডটি স্বয়ংক্রিয়ভাবে লগ ইন করতে এবং স্টার্টআপে প্রধান পাইথন প্রোগ্রাম চালু করার জন্য পরিবর্তন করেছি। এটি sudo raspi-config ব্যবহার করে এবং "Console Autologin" নির্বাচন করে এবং "sudo python /home/pi/finalProject/FINAL.py" লাইনটি যোগ করে /home/pi/.bashrc এ যোগ করা হয়েছে। এর পাশাপাশি, আমিও ব্যবহারকারী ইনপুট এবং আউটপুট জন্য একটি বোতাম এবং স্থিতি LED যোগ করা হয়েছে। বোতামটি ব্যবহারকারীকে ডিভাইসটি কখন স্ক্যান করা শুরু করবে এবং LED ব্যবহারকারীকে মেশিনের অবস্থা বলতে দেবে। যদি LED চালু থাকে, ডিভাইসটি নতুন স্ক্যান শুরু করার জন্য প্রস্তুত। যদি LED স্পন্দিত হয়, ডিভাইসটি বর্তমানে স্ক্যান করছে। যদি LED অফিস হয়, একটি সফ্টওয়্যার ত্রুটি আছে, একটি সিস্টেম পুনরায় চালু করার জন্য আহ্বান। সবশেষে, আমি ইমেইলে.obj ফাইল পাঠাতে ডিভাইসটি সক্ষম করেছি। এটি smtplib এবং ইমেল লাইব্রেরি ব্যবহার করে করা হয়েছিল। ইমেইল পাঠানোর এই ক্ষমতা আমাদের ব্যবহারকারীর কাছে বিভিন্ন প্ল্যাটফর্মে অ্যাক্সেস করার জন্য উত্পাদিত ফাইল পৌঁছে দেওয়ার একটি খুব সুবিধাজনক এবং বেতার উপায় দিয়েছে।

ধাপ 7: ইন্টিগ্রেশন

মিশ্রণ
মিশ্রণ

ডিভাইসের বিভিন্ন টুকরো তৈরির পরে, আমি এটি একত্রিত করেছি। উপরের চিত্রটি ক্রম অনুসারে দেখায়:

(ক) বাইরে একত্রিত বাক্স

(খ) ক্যামেরা এবং লেজার দিয়ে ভিতরে একত্রিত বাক্স

(গ) ইলেকট্রনিক্স বেডের ভিতরের দৃশ্য

(d) Pi এর পিছনে Pi পোর্ট এবং 5V মোটর ইনপুট অ্যাক্সেস সহ

(ঙ) ডিভাইসের সামনে LED রিং এবং স্ট্যাটাস লাইট সহ পুশ বাটন

ধাপ 8: ফলাফল

ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল

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

আমাদের সবচেয়ে বড় ফলাফল এবং সাফল্যের মধ্যে যা আমি পরীক্ষার সময় আবিষ্কার করেছি তা হল ডিভাইসের ধারাবাহিকতা। একই বস্তুর একাধিক পরীক্ষা চলাকালীন, স্ক্যানার একটি.obj ফাইল তৈরি করতে সক্ষম হয়েছিল যা প্রতিবার খুব অনুরূপ ছিল, এমনকি যদি আমরা বস্তুর স্থান পরিবর্তন কিছুটা পরিবর্তন করি। তিনটি পৃথক স্ক্যান হিসাবে দেখা যায়, তারা সব একই রকম দেখতে, একই বিবরণ এবং একই পরিমাণ বিস্তারিত ধারণ করে। আমি সামগ্রিকভাবে আমাদের সিস্টেমের ধারাবাহিকতা এবং দৃ়তায় মুগ্ধ হয়েছিলাম।

ভেরিয়েবলগুলির মধ্যে একটি যা আমি সত্যিই টিউন করতে পেরেছি তা হল স্ক্যানের রেজোলিউশন। যেহেতু স্টেপারে 400 টি ধাপ আছে, আমি কৌণিক রেজোলিউশনের জন্য কতটা বড় তা বেছে নিতে পারি। ডিফল্টরূপে, আমার কৌণিক রেজোলিউশন 20 টি পুনরাবৃত্তিতে সেট করা আছে, যার মানে প্রতিটি ফ্রেম, মোটর 20 টি ধাপে (400/20 = 20) ঘুরছে। এটি মূলত সময়ের স্বার্থে বেছে নেওয়া হয়েছিল - এইভাবে স্ক্যান করতে প্রায় 45 সেকেন্ড সময় লাগে। যাইহোক, যদি আমি অনেক বেশি মানের স্ক্যান করতে চাই, তাহলে আমি পুনরাবৃত্তির সংখ্যা 400 পর্যন্ত বাড়িয়ে তুলতে পারি। এটি মডেলটি নির্মাণের জন্য আরও অনেক পয়েন্ট দেয়, যাতে আরো বিস্তারিত স্ক্যান করা যায়। কৌণিক রেজোলিউশন ছাড়াও, আমি উল্লম্ব রেজোলিউশন সামঞ্জস্য করতে পারি, অথবা লেজার স্লাইস বরাবর নির্বাচন করার জন্য আমি কতগুলি ভিন্ন পয়েন্ট নির্বাচন করি। সময়ের অনুরূপ আগ্রহের জন্য, আমার এই ডিফল্ট সেট 20 আছে কিন্তু আমি এটি ভাল ফলাফলের জন্য বাড়িয়ে তুলতে পারি। কৌণিক রেজোলিউশন এবং স্থানিক রেজোলিউশনের এই পরামিতিগুলির সাথে খেলতে গিয়ে, আমি শেষ চিত্রের নীচে বিভিন্ন স্ক্যানের ফলাফল সংকলন করতে সক্ষম হয়েছিলাম। প্রতিটি লেবেল এমনভাবে ফরম্যাট করা হয়েছে যে এটি কৌণিক রেজোলিউশন x স্থানিক রেজোলিউশন। ডিফল্ট স্ক্যানিং সেটিংসে দেখা যায়, হাঁসের বৈশিষ্ট্যগুলি সনাক্তযোগ্য কিন্তু বিস্তারিত নয়। যাইহোক, আমি রেজোলিউশন বাড়ানোর সাথে সাথে হাঁসের চোখ, চঞ্চু, লেজ এবং ডানা সহ পৃথক সুনির্দিষ্ট বৈশিষ্ট্যগুলি দেখা শুরু করে। সর্বোচ্চ রেজোলিউশনের ছবিটি স্ক্যান করতে প্রায় ৫ মিনিট সময় লেগেছে। একটি অর্জনযোগ্য রেজোলিউশনের এই উচ্চতা দেখা একটি খুব বড় সাফল্য ছিল।

সীমাবদ্ধতা

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

পরবর্তী পদক্ষেপ

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

ধাপ 9: সম্পদ

আমি প্রকল্পের সম্পূর্ণতার জন্য কোড, মুদ্রণের জন্য STL ফাইল এবং DXF ফাইলগুলি অন্তর্ভুক্ত করেছি।

রাস্পবেরি পাই প্রতিযোগিতা ২০২০
রাস্পবেরি পাই প্রতিযোগিতা ২০২০
রাস্পবেরি পাই প্রতিযোগিতা ২০২০
রাস্পবেরি পাই প্রতিযোগিতা ২০২০

রাস্পবেরি পাই প্রতিযোগিতা ২০২০ -এ প্রথম পুরস্কার

প্রস্তাবিত: