اسکنر سه بعدی با دو دوربین. اسکنر DIY D

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

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

در کیت ما این "شل" را داریم:

مونتاژ ساده است، اما چند نکته وجود دارد:
1. برای سفت کردن تمام مهره ها نیازی به عجله نیست - همچنین باید ابعاد هندسی را تنظیم کنید - همگرایی لیزرها در مرکز سایت، فاصله تا صفحه گردان.
2. در استند من، دوربین کمی، کسری از میلی‌متر "لرزید" - اما این برای انحراف تصویر کافی بود. با افزودن مواد فوم از بین می رود.
4. صفحه گردان شفاف بود و روکش نداشت (مثل نسخه اصلی) - من آن را با پلاستیکی دیپ رنگ کردم.
5. الگوهای شطرنجی کالیبراسیون را بررسی کنید. نمی‌دانم چگونه آن را از مجموعه من چاپ کردند، اما نسبت مربع‌ها خاموش بود. از اینترنت گرفتم و خودم دوباره چاپش کردم.
6. فوکوس دوربین با فاصله تا پلت فرم تنظیم نمی شود. کاور را برداشتم و فوکوس را در جای خود تنظیم کردم.











همانطور که می بینید، "مغز" اسکنر یک Arduino Uno معمولی است که با یک محافظ اسکن ZUM و یک درایور استپر موتور A4988 ترکیب شده است. مزرعه توسط نرم افزار بومی Horus از BQ مدیریت می شود.

پس از مونتاژ، اسکنر مراحل کالیبراسیون را در نرم افزار بومی Horus انجام داد.

از آنجایی که در این زمان می دانستم که کیفیت اسکن بسیار به کیفیت نور (پایداری، انتشار، دمای رنگ بستگی دارد)، از قبل مراقبت کردم که یک لایت باکس کوچک داشته باشم تا حداقل شرایط کم و بیش قابل مقایسه را فراهم کنم. برای آزمایش.

با انتخاب "کاندیداها" برای آزمون، آماده شدم.

شرایط مورد نیاز برای شی به شرح زیر است:
1. جسم باید بزرگتر از 5x5 سانتی متر، اما کمتر از 20x20 سانتی متر باشد
2. جسم باید کدر و بدون حرکت باشد
3. وزن جسم نباید بیش از 3 کیلوگرم باشد

اسکن کردن مشکل است:
1. اشیاء براق و درخشان
2. اشیا خیلی تاریک هستند
3. اشیاء با سطوح تار (مانند حیوانات عروسکی)

نتیجه اسکن ابری از نقاط در قالب PLY است (که سپس باید به یک سطح تبدیل شود). این جایی است که شما فایل STL را آماده می کنید.

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



ما هیچ چیز مفیدی در این مورد به جز تلاش برای کالیبره کردن تنظیمات وب کم پیدا نکردیم (هنگامی که جادوگر کالیبراسیون در حال اجرا است، آنها کالیبره نمی شوند) (مردی به نام Jesus از پشتیبانی BQ مدت زیادی است که به سوالات پاسخ نمی دهد). برای این کار باید چندین عکس با موقعیت های مختلف جدول کالیبراسیون بگیرید. من کردم. وضعیت بهتر شده است، اما نه به طور کامل.
من مجبور شدم فایل کالیبراسیون را به صورت دستی ویرایش کنم (calibration.json در پوشه Horus-a) و با آزمایش و خطا، یک شی استوانه ای شکل را اسکن کنم تا اطمینان حاصل کنم که ابرها مطابقت دارند.
و به نظر می رسد همه چیز خوب است:



اما نه - در اشیاء پیچیده، قطعات ابر گاهی اوقات هنوز همخوانی ندارند و بسیاری از مناطق "کور" تشکیل می شوند:





علاوه بر این، بدیهی است که اسکن اشیاء قرمز روشن حداقل با لیزرهای استاندارد غیرممکن خواهد بود.

البته می توانید به آزمایش اسکن با لیزرهای جداگانه و تلاش برای ترکیب همه اینها در نرم افزار شخص ثالث ادامه دهید و سپس سعی کنید آن را به شکلی مناسب برای STL بیاورید.

همه اینها مرا به یاد یک شوخی در مورد کشتی های در بطری می اندازد.

چگونه قایق در بطری درست می کنید؟
-ماسه، چسب سیلیکات، میله ها را داخل بطری ریختم و تکان دادم.
به نظر می رسد همه نوع گه، و گاهی اوقات - قایق.


به طور کلی، متوجه شدم که من طرفدار این نوع خلاقیت نیستم و این شک دارم که مدل کردن اشیایی که در توان یک اسکنر هستند، راحت تر است.

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

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

نتیجه گرفتنش نیست ولی اگه شکار افراطی میخوای خودت از همون چیزی که دوست تو جوک ازش قایق درست میکنه جمع کن.

محصول برای نوشتن نقد توسط فروشگاه ارائه شده است. بررسی مطابق با بند 18 قوانین سایت منتشر شد.

من قصد خرید +9 را دارم اضافه کردن به علاقه مندی ها من نقد را دوست داشتم +101 +156

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

مرحله 1: آنچه شما نیاز دارید




برای اسکنر رسمی FabScan شما نیاز دارید:

  • آردوینو UNO
  • موتور پله ای A4988
  • ماژول اسکنر لیزری سه بعدی FabScan-Shield برای آردوینو
  • ماژول لیزر قرمز 5mW
  • منبع تغذیه 12 ولت - 1 آمپر
  • وب کم لاجیتک C270

برای ساخت جعبه به 4 ورق ام دی اف به ابعاد 600*300*5 میلی متر نیاز دارید.

در پروژه ام از:

  • آردوینو UNO
  • موتور پله ای دوقطبی - NEMA 17 (200 پله)
  • موتور پله ای A4988
  • ماژول لیزر قرمز 5mW
  • منبع تغذیه 12 ولت - 2 آمپر
  • وب کم لاجیتک C270

از آنجایی که ما از نرم‌افزار FabScan استفاده خواهیم کرد، توصیه می‌کنم به لیست قطعات آن‌ها بچسبید؛ می‌توانید تمام اسناد مربوط به اسکنر سه بعدی مرجع FabScan را به راحتی در اینترنت پیدا کنید.

مرحله 2: مونتاژ جعبه گالری برای اسکنر سه بعدی




نمایش 4 تصویر دیگر





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

مرحله 3: اتصال ماژول ها


مونتاژ سخت افزار بسیار ساده است:
ماژول FabScan را به آردوینو وصل کنید و موتور A4988 را در موقعیت مرحله اول قرار دهید. موتور را به پایه های خروجی و ماژول لیزر را به پایه آنالوگ A4 وصل کنید. در نهایت منبع تغذیه و کابل USB را وصل کنید.

اگر تصمیم دارید اسکنر را طبق لیست قطعات من مونتاژ کنید:
سپس باید موتور A4988 را به پایه های 10، 11، 9، 8 آردوینو وصل کنید (در صورت تمایل، پین ها قابل تغییر هستند)، و ماژول لیزر را به پایه A4 وصل کنید. در انتها منبع تغذیه و کابل USB را نیز وصل کنید.

مرحله 4: کد برای آردوینو

ما از کد رسمی FabScan استفاده خواهیم کرد. آن را در آردوینو آپلود کنید و کارتان تمام شد.

اگر افزونه Codebender را نصب کرده اید، می توانید با مراجعه به این لینک، کد را در آردوینو آپلود کنید.

اگر اسکنر را مطابق لیست قطعات من مونتاژ می کنید، روی دکمه Edit کلیک کنید و موارد زیر را انجام دهید:

  • اضافه کردن خطوط #include const int stepsPerRevolution = 200;//تغییر به تعداد مراحل موتور خود Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • تابع step() را با عبارت زیر جایگزین کنید: void step() ( myStepper.setSpeed(1)؛ myStepper.step(1)؛ )

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






ما از تصویر "FabScan Ubuntu Live DVD" استفاده خواهیم کرد. می توانید آن را دانلود کنید. در این تصویر نرم افزار FabScan از قبل نصب شده است. تصویر را می توان در یک درایو فلش نوشت؛ نحوه انجام این کار را می توان در اینترنت یافت.

نکته مهم: اگر گزینه “Try Ubuntu” را انتخاب کرده اید، قبل از خاموش کردن کامپیوتر، فایل های خود را ذخیره کنید!

به عکس های پیوست نگاه کنید و مراحل را دنبال کنید:

  • پورت را در SerialPort انتخاب کنید
  • دوربین را در دوربین انتخاب کنید
  • فایل - کنترل پنل
  • روی شناسایی لیزر کلیک کنید (در این مرحله چیزی در اسکنر قرار ندهید) و "فعال" را انتخاب کنید.
  • بر روی "Fetch Frame" کلیک کنید و مطمئن شوید که خط افقی آبی بالای صفحه گردان و خط افقی زرد رنگ پایین را لمس می کند. خط زرد عمودی باید از وسط صفحه گردان عبور کند. شل شدن دوربین می تواند اسکن های مخدوش ایجاد کند!

پس از تنظیم، پنجره کنترل پنل را ببندید، شی را در اسکنر قرار دهید و روی دکمه شروع اسکن کلیک کنید.

ذخیره تصویر سه بعدی:
وقتی فرآیند اسکن کامل شد، می‌توانید شی 3 بعدی را در یک فایل با فرمت‌های pcd. یا ply. ذخیره کنید. شما همچنین می توانید آن را با فرمت stl ذخیره کنید، اما در همه سیستم عامل ها پشتیبانی نمی شود. همچنین می توانید با انتخاب File - OpenPointCloud یک مورد اسکن شده قبلی را باز کنید.

با فایل های سه بعدی چه کنیم؟
می توانید آنها را در MeshLab باز کنید و روی چاپگر سه بعدی چاپ کنید.
برای چاپ اشیاء در MeshLab:

  • شی را در قالب .ply ذخیره کنید
  • فایل را در MeshLab باز کنید
  • در MeshLab، نرمال ها را محاسبه کنید (فیلترها/مجموعه نقاط/محاسبه نرمال ها برای مجموعه های نقطه)
  • بازسازی سطح با استفاده از بازسازی پواسون (فیلترها / مجموعه نقطه / بازسازی سطح: پواسون)
  • آماده

FabScan یک اسکنر لیزری سه بعدی منبع باز و DIY است.

این پروژه در طول توسعه پروژه لیسانس فرانسیس انگلمن آغاز شد. صفحه رسمی پروژه قرار دارد.

بر اساس این پروژه، یک آنالوگ ایجاد شد که در مقاله مورد بحث قرار گرفته است. از ام دی اف برای بوکس استفاده می شود. پر کردن الکترونیکی نیز تا حدودی متفاوت است.

برنامه آردوینو از پروژه اصلی گرفته شده است. بنابراین از تیم FabScan برای یک اسکنر سه بعدی منبع باز عالی تشکر می کنیم!

پس بیایید شروع کنیم.

قطعات مورد نیاز

قطعات و اجزای پروژه اصلی FabScan:

  • درایور موتور پله ای A4988;
  • Shield FabScan;
  • موتور پله ای دوقطبی NEMA 17 (200 پله);
  • منبع تغذیه 12 ولت - 1 آمپر؛
  • وب کم لاجیتک C270.

برای بدنه به 4 ورق ام دی اف نیاز دارید. ابعاد - 600 میلی متر در 300 میلی متر. ضخامت - 5 میلی متر. اطلاعات دقیق تر

قطعات و مجموعه های مورد استفاده در این راهنما:

  • (200 قدم)؛
  • درایور استپر موتور L298N;
  • ماژول لیزر 5 مگاواتی - سازنده خط قرمز;
  • منبع تغذیه 12 V - 2 A;
  • وب کم لاجیتک C270.

یعنی ما به سادگی از سپر FabScan استفاده نمی کنیم و از یک ماژول درایور موتور پله ای متفاوت استفاده می کنیم

ساخت مسکن برای اسکنر سه بعدی

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

مونتاژ اسکنر سه بعدی







1. با سپر.

FabScan Shield را روی آردوینو نصب کنید. درایور استپر موتور A4988 بر روی ریل های ارائه شده نصب شده است. استپر موتور به کنتاکت های مربوطه روی پلاک وصل می شود. ماژول لیزر به پایه آنالوگ A4 متصل است. پس از این، می توانید کابل برق و USB را وصل کنید. دستورالعمل های دقیق تر در دسترس است.

2. بدون سپر.

اگر تصمیم دارید اسکنر را بدون استفاده از شیلد بسازید، درایور استپر موتور L298 را به پین ​​های 10، 11، 9، 8 در آردوینو وصل کنید (در اصل، این پین ها را می توان با ویرایش های مناسب در طرح تغییر داد). ماژول لیزر به پایه A4 در آردوینو متصل است. همه. می توانید کابل برق و USB را وصل کنید.


طرحی برای آردوینو

یادداشت مهم! اگر از گزینه "Try Ubuntu" استفاده می کنید، مطمئن شوید که فایل های خود را قبل از خاموش کردن رایانه شخصی خود ذخیره کرده اید!

دستورالعمل ها را دنبال کنید که عکس های آن در زیر آمده است:

  • SerialPort را انتخاب کنید.
  • دوربین را انتخاب کنید؛
  • فایل - کنترل پنل.
  • روی تشخیص لیزر کلیک کنید (فعلاً هیچ شیئی را جلوی اسکنر قرار ندهید) و «فعال» را انتخاب کنید.
  • روی «واکش قاب» کلیک کنید و مطمئن شوید که خط افقی آبی بالای صفحه گردان و خط افقی زرد رنگ پایین صفحه گردان را لمس می کند. علاوه بر این، خط عمودی زرد رنگ باید با مرکز صفحه گردان منطبق باشد. اگر دوربین به درستی نصب نشود، نتیجه اسکن مشخص نخواهد شد!

پس از تنظیم، پنجره را ببندید، شی را در اسکنر سه بعدی قرار دهید و روی دکمه Start Scan کلیک کنید.

توجه: مطالب اضافی در مورد تنظیم فایل configuration.xml در این راهنما ارائه شده است.

ذخیره یک تصویر سه بعدی

هنگامی که فرآیند اسکن سه بعدی کامل شد، می توانید شی 3 بعدی اسکن شده را با پسوند pcd. یا ply. ذخیره کنید. شما همچنین می توانید آن را به عنوان یک فایل stl سه بعدی ذخیره کنید، اما این ویژگی در همه سیستم عامل ها در دسترس نیست. با انتخاب File - OpenPointCloud می توانید یک شی که قبلاً اسکن شده و ذخیره شده را باز کنید.

بعدش چی؟

می توانید از MeshLab برای پردازش یک شیء اسکن شده سه بعدی و چاپ آن بر روی یک چاپگر سه بعدی استفاده کنید!

هنگام پردازش یک فایل در MeshLab:

1. مطمئن شوید که شی را به صورت فایل .ply ذخیره کرده اید.

2. فایل را با استفاده از MeshLab باز کنید.

3. در MeshLab، نرمال ها را محاسبه کنید (Filters/Point Set/Compute normals).

4. پس از آن، سطح را با استفاده از بازسازی پواسون بازسازی کنید (فیلترها / مجموعه نقطه / بازسازی سطح: پواسون)

ساختار نهایی مونتاژ شده در عکس زیر نشان داده شده است.


ویدئویی از اسکنر اصلی FabScan 3-D در حال کار:

با تشکر فراوان از تیم FabScan برای اسکنر متن باز شگفت انگیز در آردوینو!!!

نظرات، سوالات خود را بنویسید و به اشتراک بگذارید تجربه شخصیزیر ایده ها و پروژه های جدید اغلب در بحث ها متولد می شوند!

این یک آنالوگ از اسکنر لیزری معروف FabScan است که توسط Francis Engelmann ساخته شده است. نویسنده از ام دی اف به عنوان جعبه ای برای چنین اسکنر استفاده کرده است؛ در مورد پرکننده نیز کمی متفاوت از اصلی است.

برنامه اصلی برای آردوینو است، از پروژه اصلی گرفته شده است.

مواد و ابزار برای ایجاد اسکنر:

4 ورق MDV 600X300 میلی متر، ضخامت 5 میلی متر (برای ایجاد کیس مورد نیاز هستند).
- موتور پله ای (NEMA 17 برای 200 پله)؛
- درایور برای استپر موتور L298N؛
- ماژول لیزر 5 مگاواتی (مورد استفاده از سازنده Red Line)؛
- برای تغذیه دستگاه به منبع 12 ولت - 2 آمپر نیاز دارید.
- وب کم مدل Logiteck C270.






محصول خانگی اصلی از درایور موتور پله ای A4988 استفاده می کند و در مورد موتور پله ای آن نیز NEMA 17 می باشد در غیر این صورت المان های محصول خانگی دقیقا مشابه نسخه اصلی می باشد.

فرآیند ساخت اسکنر:

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













مرحله دو. تجهیزات الکتریکی را به هم وصل می کنیم


دو راه برای اتصال تجهیزات وجود دارد، با و بدون سپر. بیایید نگاهی دقیق تر به هر یک از این گزینه ها بیندازیم.

اتصال بدون سپر
اگر تصمیم دارید دستگاه را بدون استفاده از سپر مونتاژ کنید، سرنخ‌های استپر موتور L298 به پین‌های آردوینو با شماره‌های 10، 11، 9، 8 متصل می‌شوند. در اصل، می‌توانید از سایر کنتاکت‌ها استفاده کنید، اما باید آن را بسازید. تغییرات در طرح
در مورد ماژول لیزر، باید به پایه A4 روی کنترلر آردوینو متصل شود. پس از این، می توانید کابل USB و برق را وصل کنید.

ارتباط با سپر
شما باید شیلد FabScan را روی آردوینو نصب کنید. در مورد درایور استپر موتور باید روی ریل هایی که برای این کار در نظر گرفته شده نصب شود. کنتاکت های استپر موتور به کنتاکت های مربوطه روی پلاک وصل می شوند.
ماژول لیزر باید به پایه A4 در آردوینو متصل شود. این همه است، پس از آن کابل برق و USB را وصل کنید.

مرحله سوم. نصب طرح
اکنون باید طرح رسمی FabScan را دانلود و نصب کنید. برای فلش آردوینو باید افزونه Codebender را دانلود کنید و سپس روی دکمه Run on Arduino کلیک کنید. در این مورد، طرح را می توان مستقیماً از طریق مرورگر از وب سایت رسمی نصب کرد.


اگر از سپر استفاده نشده بود، باید روی دکمه Edit کلیک کنید و سپس خطوط زیر را اضافه کنید:

const int stepPerRevolution = 200; // این پارامتر را برای تنظیم تعداد مراحل در هر چرخش شفت موتور استپر خود تغییر دهید

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
تابع step() را جایگزین کنید:

myStepper.setSpeed(1);

myStepper.step(1);

مرحله چهارم نرم افزار اسکنر
برای نصب برنامه باید تصویر "FabScan Ubuntu Live DVD" را دانلود کنید، پس از نصب ظاهر می شود. نرم افزار FabScan.

باید تنظیماتی را در برنامه انجام دهید:

ابتدا باید SerialPort را انتخاب کنید.
- سپس Camera را انتخاب کنید.
- پس از آن فایل - کنترل پنل؛
- سپس روی detect laser کلیک کنید و "enable" را انتخاب کنید (نیازی به قرار دادن هیچ جسمی در مقابل لیزر نیست).
- خوب، اکنون روی "Fetch Frame" کلیک کنید، در حالی که خط افقی آبی باید پایین جدول چرخان را لمس کند. خط زرد باید در مرکز جدول باشد. اگر دوربین به درستی نصب نشده باشد، تصویر خواهد بود کیفیت بد.












این همه، برنامه پیکربندی شده است. اکنون می توانید مقداری شی را در اسکنر قرار دهید و پس از آن دکمه Start Scan را فشار دهید.

مرحله پنجم تصویر را ذخیره کنید
پس از اتمام اسکن شی، تصویر را می توان با فرمت pcd. یا .ply ذخیره کرد. شما همچنین می توانید آن را با فرمت stl ذخیره کنید، اما این بستگی به پلتفرمی دارد که از آن استفاده می کنید.
برای باز کردن یک شی که قبلاً ذخیره شده است، باید File - OpenPointCloud را انتخاب کنید.

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

اولین نمونه اولیه

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

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

نتیجه جالب بود. بله، فاصله را پیدا کردیم. بله، ما می‌توانیم هر نقطه از نیمکره بالای اسکنر را "هدف بگیریم". و شادی ما حد و مرزی نداشت. اما زمانی که زمان اسکن این نیمکره را ارزیابی کردیم، معلوم شد که 48 ساعت است. و این در مورد دوربین نیست. و نه حتی در جاوا. مشکل این بود که نصب آنقدر ضعیف بود که بعد از هر چرخش به مدت پنج ثانیه تکان می خورد. مجبور شدم اندازه گیری کنم، بچرخم و پنج ثانیه صبر کنم تا نوسانش متوقف شود. و علاوه بر این، کتابخانه دوربین قبل از هر عکس آن را روشن و سپس خاموش می کرد. این 1-2 ثانیه طول کشید. اما مدرسه تابستانی در حال پایان بود و دیگر زمانی برای انجام مجدد آن وجود نداشت: شب قبل از اتمام پروژه بود. یا بهتر است صبح. روز بعد پروژه خود را در مسابقه ای در مقابل هیئت داوران علمی ارائه کردیم و به طور غیرمنتظره ای برنده شدیم. احتمالاً به خاطر این پیروزی بود که تصمیم گرفتیم کارمان را روی این پروژه ادامه دهیم.

نسخه دو

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

اسکنر دوم از خط کش های پلاستیکی، چسب، نوار ماسک مونتاژ می شود و فقط با نوار برق آبی در جای خود ثابت می شود. به جای لنز یک لوله آزمایش وجود دارد. یک لیزر سبز رنگ بر روی این لوله آزمایش می تابد. پرتو منعکس شده یک نوار لیزری کم و بیش یکنواخت روی صفحه ایجاد می کند. فاصله یاب فقط به یک موتور متصل است که آن را در یک صفحه افقی می چرخاند. برد کنترل با STM32VLDiscovery جایگزین شد. فقط STM32 را بهتر می شناسم و علاوه بر این، Atmega سوخت و برنامه نویس مدت ها پیش گم شد. خیلی خوب به نظر نمی رسد، اما کار می کند! ارتعاشات کاهش یافته و بر این اساس سرعت افزایش یافته است. اما نه زیاد. یک شکار بسیار جالب در اینجا کشف شد - نشانگر لیزری چینی بلافاصله روشن نشد، اما به تدریج قدرت خود را در طول یک ثانیه افزایش داد. بنابراین، یک ثانیه برای نوسان، یک ثانیه برای گرم کردن لیزر، یک ثانیه برای گرفتن عکس، و دو مورد از آنها وجود دارد. بنابراین ما 4 ثانیه دریافت می کنیم. اما در یک اندازه گیری فاصله هایی تا 720 نقطه پیدا می کنیم! روند اسکن چیزی شبیه به این بود:

و نتیجه به این صورت است:

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

رقابت واقعی چیست؟ ولی هیچی! ما اسکن همه چیز را در ساعت 4 صبح تمام کردیم و در ساعت 9 صبح در جایگاه متوجه شدیم که لیزر سوخته است. همانطور که معلوم شد، در حالی که ما آن را از هتل به غرفه حمل می کردیم، باران وارد آن شد و وقتی روشن شد، سوخت. و وقتی کار نمی کند، آنقدر بد به نظر می رسد که باور کردن کلمات "5 ساعت پیش کار کرده است" دشوار است. ما ناراحت شدیم. میل به ادامه با دود لیزر ناپدید شد. اما باز هم جمع شد...

نسخه سوم

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

اولین چیزی که توجه شما را جلب می کند این است که اکنون ما اطراف اسکنر را اسکن نمی کنیم، بلکه جسمی را که روی پلت فرم می چرخد، اسکن می کنیم. ما همچنین لنز مورد نیاز را دریافت کردیم، همه چیز را به درستی مونتاژ کردیم، برنامه را دوباره نوشتیم و همچنین برد اشکال زدایی را با یک صفحه خانگی جایگزین کردیم. و اکنون در هر اندازه گیری فقط یک عکس می گیریم. لیزر به اندازه کافی قدرتمند است و لنز آن به اندازه کافی خوب است که لیزر را به طور منحصر به فرد در یک عکس قرار دهد. به لطف این، ما منتظر گرم شدن لیزر نیستیم - همیشه روشن است. و حالا فقط یک بار دوربین را روشن می کنیم. یعنی زمان بیشتر صرف چرخش پلت فرم و پردازش تصویر می شود. منوی انتخاب دقت به برنامه اضافه شده است. زمان اسکن از دو تا ده دقیقه است. بسته به دقت انتخاب شده. با حداکثر دقت، معلوم می شود که سکو در هر مرحله 0.5 درجه می چرخد ​​و فاصله با دقت 0.33 میلی متر تعیین می شود. پلت فرم توسط یک موتور پله ای از طریق یک گیربکس هدایت می شود. پلت فرم خود یک دیسک بزرگ است و غلتک لاستیکی روی شفت موتور کوچک است. موتور و لیزر توسط میکروکنترلر STM32F050F4 از طریق کنترل می شد ترانزیستورهای اثر میدانی. در همان ابتدای مقاله اسکن اسباب بازی به دست آمده با استفاده از این اسکنر است. از آنجایی که اسکنر یک ابر نقطه ای را با فرمت .obj تولید می کند، پس از مثلث بندی می توانیم شی اسکن شده را روی یک چاپگر سه بعدی چاپ کنیم، همانطور که در همان عکس دیده می شود. در صفحه ما می توانیم مدل را بعد از مثلث بندی ببینیم. هیچ کار دستی روی مدل انجام نشد.

مسابقه را بردیم. و به مسابقه بین المللی Intel ISEF راه یافت. بنابراین ما شروع به کار بر روی اسکنر بعدی کردیم.

نسخه چهارم

بر این لحظهاین آخرین نسخهاسکنر که ما مونتاژ کردیم برای مقایسه، نسخه دوم روی پلتفرم وجود دارد. ما سعی کردیم تا جایی که می‌توانیم به توسعه اسکنر چهارم نزدیک شویم. نصب با CAD کشیده شد، قطعات برش لیزری شدند، همه چیز رنگ آمیزی شد، هیچ چیز غیر ضروری از بیرون گیر نکرد. تغییرات: پلت فرم اکنون در واقع یک چرخ دنده است. از پلکسی برش خورده و دارای 652 دندانه در امتداد لبه ها است. این مشکلی را حل می کند که اسکن های اسکنر قبلی به شدت آسیب دیده است: غلتک لاستیکی کمی می لغزد، به همین دلیل است که پلت فرم اغلب 360 درجه نمی چرخد. اسکن ها یا "بریده شده" یا همپوشانی داشتند. در اینجا ما همیشه می دانستیم که پلت فرم چقدر چرخیده است. قدرت لیزر توسط نرم افزار قابل تنظیم بود. به لطف این، امکان تغییر قدرت لیزر در حال پرواز، اجتناب از روشن شدن قطعات غیر ضروری در شرایط کم نور وجود داشت. برای کنترل تمام وسایل الکترونیکی، تصمیم گرفتیم از هم جدا نشویم هیئت مدیره جدید، اما به سادگی از اشکال زدایی F401RE-Nucleo استفاده کنید. ST-LinkV2.1 را نصب کرده است که به عنوان دیباگر و آداپتور USB->UART کار می کند.

دقت شگفت انگیز بود: وضوح زاویه ای 0.14 درجه. در فاصله 0.125 میلی متر. منطقه اسکن یک استوانه با ارتفاع 20 سانتی متر و قطر 30 سانتی متر است که قیمت تمام قطعات و برش لیزری در زمان ایجاد آن (اردیبهشت 1393) کمتر از 4000 روبل بوده است.

در حین استفاده، فقط یک بار آن را روی حداکثر دقت تنظیم می کنیم. اسکن 15-20 دقیقه طول کشید. تقریبا 2 میلیون امتیاز گرفتیم. لپ تاپ از محاسبه مدل از روی ابر نقطه خودداری کرد. آزمایش تکرار نشد.

نتیجه

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

با تشکر از همه کسانی که تا آخر خواندند!

UPD:
یکی از همکاران ویدیویی در مورد عملکرد اسکنر که ما در ISEF فیلمبرداری کردیم پیدا کرد:

بله، اکثر ویدیوها جالب نیستند، اما در پایان یک مدل روی لپ تاپ وجود دارد.

و در اینجا نمونه هایی از اشیاء اسکن شده وجود دارد. اما همه آنها متعلق به نسخه سوم اسکنر هستند.
دراپ باکس
در فایل model.obj به وضوح می توانید ببینید که وقتی این غلتک لاستیکی روی موتور می لغزد چه اتفاقی می افتد - سگ سه چشم دارد. اسکن متوقف شد و باعث بریدگی شد. همه فایل ها ابر نقطه هستند. می توانید آن را با استفاده از MeshLab باز کنید. مدل ها با دست پردازش نشدند. داده های کاملا خام از بالا می توانید "لکه های سفید" - مناطق بدون نقطه را ببینید. دوربین آنها را نمی بیند. لکه های سفید در جاهای دیگر نیز دیده می شود. آنها یا در مناطقی که خیلی تاریک هستند یا زمانی که سطوح روی هم قرار می گیرند ظاهر می شوند. برای مثال در فایل stn_10.obj شاخ های بز روی هم قرار گرفته اند و به همین دلیل سطح داخلی شاخ ها اسکن نشده است.




بالا