فهرست مطالب:

اسکنر لیزری رزبری پای: 9 مرحله (همراه با تصاویر)
اسکنر لیزری رزبری پای: 9 مرحله (همراه با تصاویر)

تصویری: اسکنر لیزری رزبری پای: 9 مرحله (همراه با تصاویر)

تصویری: اسکنر لیزری رزبری پای: 9 مرحله (همراه با تصاویر)
تصویری: Try to build a 3d scanner with a laser and a camera #scanner #scanner3d #raspberrypi #laser #camera 2024, جولای
Anonim
Image
Image
اسکنر لیزری رزبری پای
اسکنر لیزری رزبری پای

Laser Scanner یک دستگاه سیستم جاسازی شده رزبری پای است که می تواند اشیاء را با استفاده از چاپ سه بعدی در فایل های مش.obj برای تولید مثل دیجیتالی کند. دستگاه این کار را با استفاده از لیزر خطی و PiCam یکپارچه برای انجام بینایی رایانه انجام می دهد. لیزر 45 درجه از لیزر فاصله دارد و یک خط قرمز روشن را بر روی یک برش عمودی از جسم نشان می دهد. دوربین فاصله برش را از مرکز تشخیص می دهد تا یک تکه مشبک ایجاد کند. جسم بر روی سینی چرخان می چرخد و این روند تا زمان اسکن کامل شی تکرار می شود. فایل.obj تولید شده در نهایت برای کاربر ایمیل می شود و سیستم را کاملاً مستقل و جاسازی می کند.

این دستورالعمل نحوه ساخت دستگاه ، برخی نتایج و مراحل آینده را بررسی می کند.

مرحله 1: الهام بخش

الهام بخش
الهام بخش
الهام بخش
الهام بخش

من به عنوان یک سازنده مشتاق ، چندین سال است که چاپ سه بعدی و مدل سازی جامد انجام می دهم. من با بسیاری از ابزارهای نمونه سازی اولیه از روترهای CNC گرفته تا برش لیزری تا چاپگرهای سه بعدی کار کرده ام. یکی از وسایلی که سازندگان محلی من هنوز آن را خریداری نکرده اند ، اسکنر سه بعدی است - و دلیل آن را می توانم به شما بگویم.

آنهایی که ارزان تر بودند (چند صد دلار) غیرقابل اعتماد بودند ، به شرایط کاملی احتیاج داشتند و همچنان نتایج بسیار ضعیفی را به همراه داشتند. گران قیمت ها … خوب ، گران قیمت بودند و تا چندین هزار دلار متغیر بودند ، که باعث می شد عملکرد آن در بسیاری از موارد ارزش آن را نداشته باشد. علاوه بر این ، بیشتر اوقات تصمیم می گیرم اندازه گیری کنم و یک مدل را از ابتدا طراحی کنم تا اینکه با مش سطحی ایجاد شده از اسکن مقابله کنم.

به همین دلیل ، من می خواستم یک اسکنر مستقل مقرون به صرفه بسازم تا ببینم چقدر می توانم یک شی را با استفاده از اجزای قفسه اسکن کنم.

پس از انجام برخی تحقیقات ، دیدم که بسیاری از اسکنرهای سه بعدی از یک پلت فرم چرخشی و سپس انواع حسگرهای مختلف برای اندازه گیری فاصله از مرکز به منظور ایجاد یک مدل چرخشی استفاده کردند. بسیاری از این دوربین ها از دوربین دوگانه مشابه دوربین Kinect استفاده می کردند. سرانجام به Yscanner برخورد کردم که یک اسکنر با وضوح پایین است و از لیزر استفاده می کند. با نگاه به سادگی و امکان سنجی ، این تکنیک لیزری ، که در آن لیزر نسبت به دوربین برای اندازه گیری فاصله از مرکز افست می شود ، مانند یک مسیر روشن به جلو به نظر می رسید.

مرحله 2: ابزارها و قطعات

قطعات:

  • رزبری پای 35.00 دلار
  • Raspberry Pi Camera V2 30.00 دلار
  • LED ها ، مقاومت ها و سیم ها
  • رشته چاپ سه بعدی
  • ورق چوب 12x12x0.125
  • سخت افزار M3
  • استپر موتور - 14 دلار
  • لیزر خط - 8 دلار
  • رانندگان پله ای LN298 - 2.65 دلار
  • دکمه فلزی - 5 دلار

ابزارها:

  • آهن لحیم کاری
  • دستگاه برش لیزری
  • چاپگر سه بعدی
  • پیچ گوشتی
  • انبر

مرحله 3: طراحی سطح بالا

طراحی سطح بالا
طراحی سطح بالا
طراحی سطح بالا
طراحی سطح بالا

جزء اصلی در این طراحی ، لیزر خطی است که بر روی یک تکه عمودی از اجسام قرار می گیرد. این طرح می تواند بر روی دوربین ضبط شود ، چشم انداز آن اصلاح شود و سپس قبل از پردازش تصویر فیلتر شود. در پردازش تصویر ، فاصله بین هر قسمت از خط از مرکز شی را می توان جمع آوری کرد. در مختصات شعاعی ، این تصویر اجزای r و z را به دست می آورد. بعد سوم ، Θ ، با چرخاندن جسم به یک برش جدید بدست می آید. این مفهوم در شکل اول نشان داده شده است.

برای انجام اقدامات شرح داده شده در بالا ، از Raspberry Pi به عنوان واحد محاسبات مرکزی استفاده کردم. یک موتور پله ای و یک راننده موتور را به Pi متصل کردم ، که از منبع تغذیه 5 ولت خارجی استفاده می کرد و توسط پین های GPIO Pi کنترل می شد. یک لیزر خط روی خط 3.3 V روی Pi و یک PiCam به ورودی دوربین در Pi متصل شد. در نهایت ، یک دکمه ساده کشیده شده نصب شد و یک LED وضعیت نشان داد که کاربر در چه وضعیتی سیستم قرار دارد. سیستم کامل در یک بلوک نمودار سیستم خلاصه شده است.

از ابتدا ، برنامه ریزی شده بود تا وسایل الکترونیکی در یک جعبه برش لیزری قرار گیرد که همراه با اسلات T و سخت افزار M3 نگهداری می شود. وسایل الکترونیکی در محفظه زیرین از دید پنهان می شوند و درب آن به راحتی امکان قرار دادن اجسام در سینی چرخان را فراهم می کند. این درپوش به منظور به حداقل رساندن میزان نشتی به سیستم ضروری است ، زیرا این نور خارجی می تواند در اسکن نهایی نویز ایجاد کند.

مرحله 4: سخت افزار

سخت افزار
سخت افزار
سخت افزار
سخت افزار
سخت افزار
سخت افزار

همانطور که در بالا مشاهده شد ، قبل از شروع برش لیزری یا چاپ سه بعدی ، از Autodesk Fusion 360 برای ایجاد یک مدل سه بعدی دقیق از طراحی خود استفاده کردم. به طور کلی ، دستگاه یک جعبه ساده با درب با لولا برش لیزری است. دو لایه اصلی دستگاه وجود دارد: تخت الکترونیکی و تخت اصلی ، با سوراخ هایی برای سیم بین دو لایه.

بیشتر جعبه ما با برش لیزری ساخته شده است ، طرح هایی که در Fusion 360 تولید شده و برش برش لیزری Epilog Zing 40 W بریده شده است. طرح های ما در شکل های بالا نشان داده شده است. از بالا به چپ که به سمت راست حرکت می کند ، قطعات عبارتند از تخت اصلی ، تخت الکترونیکی ، دو قطعه برای درپوش ، قطعه پشتی ، قطعه جلویی و دو قطعه جانبی. در بستر اصلی ، سه برش اصلی وجود دارد: یکی برای نصب موتور پله ای ، یکی برای مسیریابی سیم ها از لیزر و دیگری برای مسیریابی کابل عریض PiCam. قطعه تخت دارای سوراخ هایی برای محکم کردن Pi ، تخته نان و راننده موتور و یک برش بزرگتر برای دسترسی به موتور پله ای است. قطعات درپوش به سادگی به هم می چسبند و قطعه مثلثی که در بالا مشاهده می کنید را تشکیل می دهند و لولا یک اکستروژن ساده است که عرض قطر سوراخ تخته های جانبی است. قطعه پشتی و یکی از قطعات جانبی دارای شکاف هایی در طرفین هستند تا بتوان به راحتی به پورت های Pi (HDMI ، USB ، اترنت ، پاور) دسترسی داشت. قسمت جلویی یک قطعه ساده است که من در نهایت با یک مته دستی برای نصب دکمه و LED آن را سوراخ کردم. همانطور که در همه قطعات دیده می شود ، قطعات ما توسط سخت افزار M3 با استفاده از اتصالات T و شکاف ها به هم متصل می شوند. این روشی برای نگه داشتن قطعات برش خورده لیزری به صورت عمودی و ایمن است. باله های قطعات با شکافهای دیگر قطعات هم تراز شده و برش تی شکل روی لبه ها باعث می شود که مهره M3 بدون چرخاندن در آنها گیر کند. این به ما این امکان را می دهد که از پیچ M3 برای قفل کردن قطعات بهمراه اتاق تکان دادن بسیار کم بدون نیاز به مونتاژ کامل دائمی استفاده کنیم.

من تصمیم گرفتم اکثر قطعات ما را با یک برش لیزری به دلیل سرعت و سهولت انجام دهم. با این حال ، من هنوز مجبور بودم برخی از قطعات را به دلیل هندسه سه بعدی آنها که ایجاد بر روی برش دشوارتر بود ، چاپ سه بعدی کنم. اولین قطعه نگهدارنده لیزر خط بود. این قطعه قرار بود بر روی تخت اصلی در 45 درجه از دید دوربین نصب شود و دارای حفره ای باشد تا لیزر بتواند اصطکاک محکمی در آن ایجاد کند. من همچنین مجبور شدم یک پایه موتور ایجاد کنم زیرا محور موتور بسیار طولانی بود. اصطکاک سوار بر روی قطعات برش لیزری قرار می گیرد و صفحه ای را که موتور به آن وصل شده بود پایین می آورد به طوری که سکوی چرخشی با سطح اصلی هم سطح می شود.

مرحله 5: الکترونیک

الکترونیک
الکترونیک

سخت افزار سیم کشی این پروژه بسیار ساده بود زیرا اسکنر سه بعدی نیازی به وسایل جانبی زیاد نداشت. یک موتور ، دکمه ، LED ، لیزر و دوربین برای اتصال به Pi لازم بود. همانطور که در تصویر نشان داده شد ، من مطمئن شدم که مقاومت ها را به صورت سری به هر پینی که برای محافظت از پین ها استفاده می کنیم متصل می کنم. یک پین GPIO برای کنترل LED وضعیت اختصاص داده شده بود که وقتی دستگاه آماده به کار می شد روشن می شد و هنگام کار دستگاه با PWM پالس می کرد. یک پین GPIO دیگر به یک دکمه کشیده متصل شده بود ، وقتی دکمه فشرده نمی شد HIGH را ثبت می کرد و وقتی دکمه فشرده می شد LOW. در نهایت ، من چهار پین GPIO را به رانندگی استپر موتور اختصاص دادم.

از آنجا که موتور ما فقط تا حدی باید بدون نیاز به کنترل سرعت قدم بردارد ، ما یک راننده پله ای ساده تر (L298N) را انتخاب کردیم که به سادگی خطوط کنترل را افزایش می دهد تا به ورودی های موتور وارد شود. برای آشنایی با نحوه عملکرد موتورهای پله ای در سطح بسیار پایین ، ما هم به برگه اطلاعات L298N و هم به کتابخانه آردوینو مراجعه کردیم. موتورهای پله ای دارای هسته مغناطیسی با انگشتان قطبی متناوب هستند. این چهار سیم برای کنترل دو آهنربای الکتریکی پیچیده شده اند که هر کدام از انگشتان مخالف دیگر موتور را تغذیه می کنند. بنابراین ، با تغییر قطبیت انگشتان ، می توانیم پله را یک قدم فشار دهیم. با آگاهی از نحوه عملکرد استپرها از نظر سخت افزاری ، ما توانستیم استپرها را به راحتی کنترل کنیم. ما ترجیح دادیم موتور پله ای خود را از منبع تغذیه 5 ولت در آزمایشگاه به جای Pi خاموش کنیم زیرا حداکثر جریان آن حدود 0.8 A است که بیشتر از Pi می تواند تامین کند.

مرحله 6: نرم افزار

نرم افزار
نرم افزار
نرم افزار
نرم افزار
نرم افزار
نرم افزار
نرم افزار
نرم افزار

نرم افزار این پروژه را می توان به چهار جزء اصلی تقسیم کرد که با هم تعامل دارند: پردازش تصویر ، کنترل موتور ، ایجاد مش و توابع تعبیه شده.

به عنوان خلاصه ای از نرم افزار ، می توانیم به شکل اول نگاه کنیم. با بوت شدن سیستم ،.bashrc به طور خودکار وارد Pi می شود و کد پایتون ما را اجرا می کند. سیستم چراغ وضعیت را روشن می کند تا به کاربر اطلاع دهد که به درستی بوت شده است و منتظر فشار دکمه است. سپس کاربر می تواند مورد مورد اسکن را قرار داده و درب آن را ببندد. پس از فشردن دکمه ، چراغ LED به کاربر اطلاع می دهد که دستگاه در حال کار است. دستگاه بین پردازش تصویر و کنترل موتور حلقه می کند تا زمانی که چرخش کامل کامل شود و تمام داده های شی جمع آوری شود. در نهایت ، مش ایجاد می شود و فایل به یک ایمیل از پیش انتخاب شده ارسال می شود. این چرخه را مجدداً راه اندازی می کند و دستگاه آماده انجام اسکن دیگری با فشار یک دکمه است.

پردازش تصویر

اولین کاری که انجام شد پردازش یک تصویر گرفته شده به منظور استخراج اطلاعات ذخیره شده در تصویر به شکلی است که می تواند برای ایجاد مجموعه ای از نقاط در فضا استفاده شود. برای انجام این کار ، من با گرفتن یک عکس از جسم روی سکو همراه با تمام نویز پس زمینه ایجاد شده توسط لیزر که به پشت جعبه می درخشد و پراکنده می شود ، شروع کردم. این تصویر در شکل خام خود دو مشکل اصلی داشت. اول ، این شیء با زاویه دید با زاویه دید بالا مشاهده شد و دوم ، سر و صدای زیادی در پس زمینه وجود داشت. اولین کاری که باید انجام دهم این بود که این زاویه دید را در نظر بگیرم ، زیرا استفاده از عکس به همان اندازه که به ما اجازه می دهد ارتفاع یک شیء ثابت را تعیین کنیم. همانطور که در شکل دوم دیده می شود ، ارتفاع شکل "L" وارونه ثابت است. اما به دلیل طولانی بودن یک طرف نسبت به طرف دیگر ، به نظر می رسد ارتفاعات متفاوتی در لبه نزدیک به بیننده دارند.

برای رفع این مشکل ، مجبور شدم فضای کاری موجود در تصویر را از شکل ذوزنقه ای شکل قبلی به مستطیل تبدیل کنم. برای انجام این کار ، از کدی که در این پیوند ارائه شده است استفاده کردم ، که وقتی یک تصویر و چهار نقطه به آن داده می شود ، تصویر را بین چهار نقطه بریده و تصویر بریده شده را برای جبران چشم انداز تبدیل می کند. این تبدیل از چهار نقطه برای ایجاد یک مستطیل به جای شکل ذوزنقه ای استفاده می کند ، همانطور که در شکل سوم دیده می شود.

مشکل بعدی که باید حل می شد ، نویز پس زمینه به شکل نور بیرونی و بازتاب نور توسط خود لیزر بود. برای انجام این کار ، من نور را با استفاده از تابع inRange () OpenCV فیلتر کردم. من آستانه را طوری تنظیم کردم که فقط چراغ قرمز را در یک سطح مشخص بگیرد. برای به دست آوردن مقدار صحیح ، من با یک آستانه نرم شروع کردم و سطح آستانه را افزایش دادم تا زمانی که تنها نوری که گرفته می شد نور لیزر روی شی مورد اسکن بود. هنگامی که این تصویر را داشتم ، روشن ترین پیکسل را در هر ردیف پیدا کردم تا خطی از یک پیکسل در هر ردیف که با بیشترین سمت چپ خط لیزر هم مرز بود دریافت کنید. سپس هر پیکسل به یک راس در فضای سه بعدی تبدیل شده و در یک آرایه ذخیره می شود ، همانطور که در بخش ایجاد مش توضیح داده شده است. نتایج این مراحل در شکل چهارم قابل مشاهده است.

کنترل موتور

پس از اینکه بتوانم یک تصویر واحد را با موفقیت پردازش کنم تا برشی از شی را بدست آورم ، باید بتوانم شی را بچرخانم تا یک عکس جدید با زاویه متفاوت بگیرم. برای انجام این کار ، من موتور پله ای را در زیر سکویی که شیء مورد اسکن روی آن قرار دارد کنترل کردم. من با ایجاد یک متغیر برای ردیابی وضعیت موتور و میکرواستپینگ با جابجایی هر یک از چهار ورودی موتور ، پایه عملکرد پله ای ما را ایجاد کردم.

برای ایجاد مش از همه تصاویر پردازش شده ، ابتدا باید هر پیکسل سفید در تصویر پردازش شده را به یک راس در فضای سه بعدی تبدیل کنم. از آنجا که من برش های جداگانه ای از شی را با تقارن استوانه ای جمع آوری می کنم ، منطقی بود که شروع به جمع آوری مختصات استوانه ای کنم. این امر منطقی بود زیرا ارتفاع تصویر می تواند محور z را نشان دهد ، فاصله از مرکز میز چرخان می تواند نشان دهنده محور R و چرخش موتور پله ای می تواند محور تتا را نشان دهد. با این حال ، زیرا من داده های خود را در مختصات استوانه ای ذخیره کردم ، مجبور شدم هر یک از این رأس ها را به مختصات دکارتی تبدیل کنم.

پس از ایجاد این راس ها ، آنها در یک لیست ذخیره می شوند و لیست ذکر شده در یک لیست دیگر که شامل لیست های راس ایجاد شده برای هر تصویر گرفته شده است ، ذخیره می شود. هنگامی که همه تصاویر پردازش و به راس تبدیل شدند ، مجبور شدم راس هایی را انتخاب کنم که در واقع می خواستم در مش نهایی نمایش داده شوند. من می خواستم راس بالا و راس پایین گنجانده شود و سپس بر اساس وضوح ، تعداد راس هایی را که برای هر تصویر استفاده می شود ، به طور مساوی انتخاب کردم. از آنجا که همه لیست های راس یکسان نبودند ، مجبور شدم آنها را با یافتن لیستی با کمترین تعداد راس و حذف رئوس از لیست های دیگر تا زمانی که همه آنها یکنواخت شوند ، یکسان کنم. با ایجاد لیست های راس ، اکنون قادر به یک مش ایجاد کنید من تصمیم گرفتم مش خود را با استاندارد فایل.obj قالب بندی کنم زیرا ساده و قابل چاپ سه بعدی است.

عملکرد تعبیه شده

پس از عملکرد دستگاه ، با افزودن قابلیت های جاسازی شده کامل ، آن را جلا دادم. این بدان معناست که صفحه کلید ، ماوس و مانیتور را حذف کرده و پس از اتمام پردازش ، فایل بی سیم.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: ادغام

ادغام
ادغام

پس از ساخت قطعات مختلف دستگاه ، آن را با هم مونتاژ کردم. شکل بالا به ترتیب نشان می دهد:

(الف) جعبه مونتاژ شده در خارج

(ب) جعبه مونتاژ داخل با دوربین و لیزر

ج) نمای داخلی تخت لوازم الکترونیکی

(د) پشت Pi با دسترسی به پورت های Pi و ورودی موتور 5V

ه) دکمه فشاری با حلقه LED و چراغ وضعیت در جلوی دستگاه

مرحله 8: نتایج

نتایج
نتایج
نتایج
نتایج
نتایج
نتایج
نتایج
نتایج

اسکنر سه بعدی لیزری توانست اشیا را با دقت مناسب اسکن کند. ویژگی های اجسام متمایز و قابل تشخیص است و با استفاده از یک نرم افزار برش مانند Repetier ، قطعات بسیار آسان برای چاپ سه بعدی هستند. شکلهای بالا نمونه هایی از اسکن یک تکه چوب و یک اردک لاستیکی را نشان می دهد.

یکی از بزرگترین یافته ها و موفقیت های ما که در حین آزمایش کشف کردم ، قوام دستگاه بود. در طی چندین آزمایش روی یک شیء ، اسکنر قادر به تولید یک فایل.obj بود که هر بار بسیار شبیه به هم بود ، حتی اگر محل قرارگیری جسم را کمی تغییر دهیم. همانطور که در سه اسکن جداگانه دیده می شود ، همه آنها بسیار شبیه به هم هستند و جزئیات یکسان و مقدار جزئیات مشابهی را ثبت می کنند. در کل از ثبات و استحکام سیستم ما بسیار تحت تأثیر قرار گرفتم.

یکی از متغیرهایی که من واقعاً توانستم تنظیم کنم ، وضوح اسکن ها است. از آنجا که 400 مرحله در پله وجود دارد ، می توانم اندازه هر ΔΘ را برای تعیین وضوح زاویه ای انتخاب کنم. به طور پیش فرض ، من وضوح زاویه ای را روی 20 تکرار تنظیم کرده ام ، بدین معنی که هر فریم ، موتور 20 مرحله می چرخد (20/400/2000). این مورد عمدتا به نفع زمان انتخاب شد - برای تکمیل اسکن به این روش حدود 45 ثانیه طول می کشد. با این حال ، اگر می خواهم اسکن با کیفیت بسیار بالاتری داشته باشم ، می توانم تعداد تکرارها را تا 400 افزایش دهم. این امر امتیازهای بیشتری به ساخت مدل می دهد و اسکن بسیار دقیق تری ایجاد می کند. علاوه بر وضوح زاویه ای ، می توانم وضوح عمودی را نیز تنظیم کنم ، یا اینکه چند نقطه مختلف را برای انتخاب در طول برش لیزر انتخاب کنم. برای علاقه مشابه در زمان ، من این پیش فرض را روی 20 تنظیم کرده ام ، اما می توانم آن را برای نتایج بهتر افزایش دهم. در بازی با این پارامترهای وضوح زاویه ای و وضوح فضایی ، من توانستم نتایج اسکن های مختلف زیر را در شکل آخر گردآوری کنم. هر برچسب به گونه ای قالب بندی شده است که وضوح زاویه ای x وضوح مکانی است. همانطور که در تنظیمات پیش فرض اسکن دیده می شود ، ویژگی های اردک قابل تشخیص است اما جزئیات آن مشخص نیست. با این حال ، با افزایش وضوح تصویر ، ویژگیهای دقیق فردی از جمله چشم ، منقار ، دم و بالهای اردک نمایان می شود. بالاترین وضوح تصویر حدود 5 دقیقه طول کشید تا اسکن شود. دیدن این وضوح بالا و یک راه حل قابل دستیابی موفقیت بزرگی بود.

محدودیت ها

با وجود نتایج موفقیت آمیز پروژه ، هنوز محدودیت های کمی در طراحی و اجرا وجود دارد. با استفاده از لیزر ، مشکلات زیادی در مورد نحوه پراکندگی نور به وجود می آید. بسیاری از اجسامی که من سعی کردم آنها را اسکن کنم ، شفاف ، براق یا بسیار تیره ، با نحوه بازتاب نور از سطح مشکل ساز شد. اگر جسم نیمه شفاف بود ، نور جذب می شد و پراکنده می شد ، و خواندن پر سر و صدا از برش ها را ایجاد می کرد. در اجسام براق و تیره ، نور یا منعکس می شود یا جذب می شود تا جایی که برداشتن آن دشوار است. علاوه بر این ، زیرا من از یک دوربین برای ضبط ویژگی های اجسام استفاده می کنم ، تشخیص آن توسط خط دید آن محدود می شود ، به این معنی که اجسام مقعر و زوایای تیز اغلب توسط قسمت های دیگر شی مسدود می شوند. این در مثال اردک لاستیکی ما نشان داده شده است زیرا گاهی دم انحنای خود را در اسکن از دست می دهد. دوربین فقط می تواند ساختارهای سطحی را تشخیص دهد به این معنی که حفره ها یا هندسه های داخلی قابل ضبط نیستند. با این حال ، این یک مشکل رایج است که بسیاری از راه حل های اسکن دیگر نیز دارند.

مراحل بعدی

اگرچه از نتایج پروژه ما خوشحال بودم ، اما چند مورد وجود داشت که می توان آن را بهتر کرد. برای شروع ، در حالت فعلی ، رزولوشن اسکن تنها با تغییر متغیرهای وضوح سخت افزاری در کد ما قابل تغییر است. برای جاسازی بیشتر پروژه ، می توان یک پتانسیومتر وضوح را در نظر گرفت تا کاربر بتواند بدون نیاز به اتصال مانیتور و صفحه کلید به اسکنر ، وضوح تصویر را تغییر دهد.علاوه بر این ، اسکنر تصاویری را ایجاد می کند که گاهی اوقات ناهموار به نظر می رسند. برای رفع این مشکل ، تکنیک های صاف کردن مش را می توان برای برطرف کردن بی نظمی ها و گوشه های خشن اجرا کرد. در نهایت ، من متوجه شدم که مختصات پیکسل به خوبی در دنیای واقعی مقیاس نمی شوند. شبکه هایی که من ایجاد کردم 6 تا 7 برابر بزرگتر از شیء واقعی بودند. در آینده پیاده سازی روشی برای مقیاس بندی مشها برای دقیق تر بودن اندازه واقعی جسم مفید خواهد بود.

مرحله 9: منابع

من کد ، فایل های STL برای چاپ و فایل های DXF را برای برش در کل پروژه درج کرده ام.

مسابقه رزبری پای 2020
مسابقه رزبری پای 2020
مسابقه رزبری پای 2020
مسابقه رزبری پای 2020

اولین جایزه در مسابقه رزبری پای 2020

توصیه شده: