اسکنر سه بعدی با دو دوربین. اسکنر D خودتان آن را انجام دهید

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

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

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

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











همانطور که می بینید، "مغز" اسکنر آردوینو Uno معمولی در ارتباط با محافظ ZUM Scan و درایور موتور پله ای 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 یک اسکنر سه بعدی لیزری منبع باز و DIY است. من از ورق های ام دی اف و وسایل مختلف بداهه مونتاژ کردم و به عنوان نمونه تصمیم گرفتم روند ایجاد را برای شما ترسیم کنم.

مرحله 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 V - 1 A;
  • وب کم لاجیتک C270.

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

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

  • (200 قدم)؛
  • درایور استپر موتور L298N;
  • ماژول لیزر 5mW - سازنده خط قرمز;
  • منبع تغذیه 12 V - 2 A;
  • وب کم Logiteck 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 برای پردازش یک شی 3 بعدی اسکن شده و چاپ آن بر روی یک چاپگر سه بعدی استفاده کنید!

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

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

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

3. محاسبه نرمال ها در MeshLab (فیلترها / مجموعه نقطه / محاسبه نرمال).

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

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


ویدئوی اسکنر سه بعدی FabScan اصلی:

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

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

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

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

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

4 ورق MDF 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 را دانلود کنید، پس از نصب ظاهر می شود نرم افزار 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 رو بهتر میشناسم و حتی اتمگا هم سوخت و پروگرامر خیلی وقت پیش گم شده بود. عالی به نظر نمی رسد، اما کار می کند! ارتعاشات کاهش یافته و سرعت نیز به همان نسبت افزایش یافته است. اما نه زیاد. یک شکار بسیار جالب در اینجا کشف شد - نشانگر لیزری چینی بلافاصله روشن نشد، اما به تدریج قدرت خود را در عرض یک ثانیه افزایش داد. بنابراین، یک ثانیه برای ارتعاش، یک ثانیه برای گرم کردن لیزر، یک ثانیه برای یک شات، و دو مورد از آنها وجود دارد. بنابراین ما 4 ثانیه دریافت می کنیم. اما در یک اندازه گیری، فاصله را تا 720 نقطه پیدا می کنیم! روند اسکن چیزی شبیه به این بود:

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

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

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

نسخه سوم

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

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

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

نسخه چهارم

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

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

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

نتیجه

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

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

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

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

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




بالا