3d сканер з двох камер. D Scanner власноруч

В черговий раз магазин запропонував взяти на огляд щось. Оскільки мене давно цікавило питання застосування цієї штуки для потреб декоративного 3d-друку – я вибрав сканер.

Отже, сам сканер був розроблений іспанською компанією BQ, яка в даний час припинила його підтримку (нібито через китайські підробки, але сумнівно. Зараз даним сканером торгує і американська CowTech. Вихідники для 3d друку частин сканера - лежать у вільному доступі (там ж посилання на софт та електроніку).

У комплекті маємо ось такий «розсип»:

Складання нехитра, проте є кілька моментів:
1. Поспішати затягувати всі гайки не варто - доведеться підлаштовувати геометричні розміри - збіжність лазерів в центрі майданчика, відстані до поворотної платформи.
2. У моїй стійці камера трохи «бовталася», на частини міліметра – але цього вистачило для перекосу картинки. Усунув підкладання спіненого матеріалу.
4. Поворотна платформа була прозорою і не мала покриття (як в оригіналі) – я пофарбував її plastidip-ом.
5. Перевіряйте шаблони калібрувальної «шахівниці». Не знаю як друкували ту, яка з мого комплекту – але пропорції квадратиків було порушено. Взяв із інтернету і передрукував сам.
6. Фокус камери не налаштовано на відстань до платформи. Зняв кришку та підкрутив фокус за місцем.











Як бачимо, «мозками» сканера є звичайна Arduino Uno у зв'язуванні шилдом ZUM Scan та драйвером крокового двигуна A4988. Керується господарство "рідним" софтом Horus від BQ.

Після складання, сканер пройшов калібрувальні процедури у рідному софті Horus.

Оскільки до цього моменту я вже знав, що якість сканування дуже залежить від якості освітлення (стабільності, розсіяності, колірної температури) я заздалегідь перейнявся наявністю маленького лайтбоксу, щоб хоча б забезпечити більш-менш порівняні умови для проб.

Підібравши «кандидатів» для спроб, я приготувався.

Вимоги до об'єкта заявлено такі:
1. Об'єкт має бути більше 5х5 см, але менше ніж 20х20см
2. Об'єкт повинен бути непрозорим та нерухомим
3. Об'єкт повинен важити не більше 3 кг

Важко сканувати:
1. Блискучі об'єкти, що світяться
2. Занадто темні об'єкти
3. Об'єкти з розмитою поверхнею (наприклад, м'які іграшки)

Результатом сканування є хмара точок у форматі PLY (які потім необхідно перетворити на поверхню). Ось тут і підготовка STL-файлу.

Почитавши сканування, спробувати я вирішив із простого циліндричного предмета.
Після кількох спроб я переконався, що маю поширену проблему - розбіжності хмар точок від правого та лівого лазера, та й із пропорціями питання.



Нічого путнього з цього приводу крім спроби відкалібрувати налаштування вебкамери (вони не калібруються при роботі майстра калібрування) знайти не вдалося (чувак на ім'я Ісус із саппорта BQ – давно не відповідає на запитання). Для цього необхідно зробити кілька знімків з різними положеннями калібрувальної таблиці. Наробив. Становище покращало, але не до кінця.
Довелося ручками правити калібрувальний файл (calibration.json у папці Horus-a) і шляхом спроб помилок, скануючи циліндричний предмет - домагатися збігу хмар.
І ось начебто все ок:



Але ні – на складних предметах фрагменти хмар все одно часом не збігаються, до того ж утворюється багато «сліпих» зон:





Крім того, очевидно, що сканування яскраво червоних предметів буде неможливим, принаймні зі штатними лазерами.

Можна, звичайно, продовжувати експериментувати зі скануванням окремими лазерами і спробами в сторонньому софті поєднати все це господарство, а потім спробувати приводити в життєздатний для STL вигляд.

Все це нагадує один анекдот із корабликами у пляшках.

Як ти робиш кораблики у пляшках?
-У пляшку поміщаю пісок, силікатний клей, палички та трясу.
Виходить усяке гівно, а іноді – кораблики.


Загалом, я зрозумів, що адептом подібної творчості не є, і маю підозру, що з нуля змоделювати предмети, які за сканером - простіше.

А складні - зі складними не справляється сканер у штатному режимі, замало йому двох лазерів залишаються сліпі зони. Для усунення цієї проблеми - треба сканувати в інших положеннях і потім знову мучитися із поєднанням хмар. Ні, дякую.

У результаті - штука пригодиться тільки для вивчення основ лазерного сканування, для чогось більш - абсолютно марна. Ні, звичайно, отримати щось обрисами схоже на вихідну модель – можна, але на цьому (і це з урахуванням усіх бубнів з обробкою хмар) – все. Недаремно бачити іспанці закинули цю справу.
Магазин підстрахувався – в описі чесно викладено, що результат залежить від становища планет та настрою тітки Соні з третього поверху. Опенсорс і таке інше, давайте танцювати разом. Ні, дякую.

Висновок – не брати, а якщо полювання екстриму – зібрати самому з того ж, з чого товариш з анекдоту робить кораблики.

Товар надано для написання огляду магазином. Огляд опубліковано відповідно до п.18 Правил сайту.

Планую купити +9 Додати в обране Огляд сподобався +101 +156

FabScan - це опенсорсний, зроблений своїми руками лазерний 3d сканер. Я зібрав свій лист МДФ і різних підручних засобів і як приклад вирішив викласти для вас процес створення.

Крок 1: Що вам знадобиться




Для офіційного сканера FabScan необхідні:

  • Ардуїно УНО
  • Кроковий двигун A4988
  • Модуль лазерного 3д сканера FabScan-Shield для Ардуїно
  • Модуль червоного лазера 5mW
  • Блок живлення 12V - 1A
  • Веб-камера Logitech C270

Для створення коробки вам знадобиться 4 листи МДФ розміром 600*300*5 мм.

У своєму проекті я використав:

  • Ардуїно УНО
  • Біполярний кроковий двигун NEMA 17 (200 кроків)
  • Кроковий двигун A4988
  • Модуль червоного лазера 5mW
  • Блок живлення 12V - 2A
  • Веб-камера Logitech C270

Так як ми будемо використовувати ПЗ FabScan, то я рекомендую триматися їх списку деталей, всю документацію по еталонному 3-дюймовому сканеру FabScan ви легко знайдете в інтернеті.

Крок 2: Збираємо коробку-галерею для 3D-сканера




Показати ще 4 зображення





Для складання короба для сканера я використовував Дремель і свою уяву. Це не так просто, адже для того, щоб отримати коректне 3Д-зображення камера, лазер та кроковий двигун повинні бути на правильних позиціях. Якщо ви не хочете морочитися, то можна просто купити готові частини, але це обійдеться недешево.

Крок 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
  • Вибере камеру в Camera
  • File - Control Panel
  • Клацніть на detect laser (не кладіть нічого в сканер на даному етапі) і виберіть 'enable'
  • Клацніть на «Fetch Frame» і переконайтеся, що синя горизонтальна лінія стосується верхівки столу, що обертається, а жовта горизонтальна лінія стосується його нижньої частини. Вертикальна жовта лінія повинна проходити через центр столу, що обертається. Незакріплена камера може спричинити спотворені скани!

Після налаштування закрийте вікно панелі керування, помістіть об'єкт у сканер і натисніть кнопку початку сканування (start scan).

Збереження 3D зображення:
Коли процес сканування завершиться, можна зберегти 3Д об'єкт у файлі у форматах.pcd або.ply. Можна зберегти його у форматі stl, але він підтримується не всіма платформами. Також можна відкрити раніше відсканований об'єкт, вибравши File OpenPointCloud.

Що робити із 3Д файлами?
Можна відкрити їх у MeshLab та надрукувати на 3Д-принтері.
Для друку об'єктів у MeshLab:

  • Збережіть об'єкт у форматі.ply
  • Відкрийте файл у MeshLab
  • У MeshLab розрахуйте нормалі (Filters/Point Set/Compute normals for point sets)
  • Реконструюйте поверхню за допомогою реконструкції пуассонів (Filters/Point Set/Surface Reconstruction: Poisson)
  • Готово

FabScan – це open-source, DIY 3D лазерний сканер.

Початок проекту було покладено під час розробки бакалаврського проекту Франциска Енгелмана. Офіційна сторінка проекту знаходиться.

На підставі цього проекту розроблено аналог, який і розглянутий у статті. Для боксу використовується МДФ. Електронна начинка теж дещо відрізняється.

Програма для Arduino була взята з оригінального проекту. Тож дякую команді FabScan за відмінний open-source 3D сканер!

Отже, почнемо.

Необхідні компоненти

Деталі та вузли для оригінального проекту FabScan:

  • Драйвер крокового двигуна A4988;
  • Шилд FabScan;
  • Біполярний кроковий двигун NEMA 17 (200 кроків);
  • Джерело живлення 12 В – 1 А;
  • Вебкамера Logitech C270.

Для корпусу треба 4 листи із МДФ. Розміри – 600 мм на 300 мм. Товщина – 5 мм. Більш детальна інформація.

Деталі та вузли, які використовуються в цій інструкції:

  • (200 кроків);
  • Драйвер крокового двигуна L298N;
  • Модуль лазера на 5 мВт. Red Line;
  • Джерело живлення 12 В – 2 А;
  • Вебкамера Logiteck C270.

Тобто ми просто не використовуватимемо шилд FabScan і використовуємо інший модуль драйвера крокового двигуна

Розробка корпусу для 3D-сканера

Процес та результат розробки корпусу нашого 3D сканера показані на фотографіях. Основна складність – максимально точна установка камери, модуля лазера та крокового двигуна. Якщо ви бажаєте полегшити собі життя, можете замовити ці деталі за 35 євро.

Складання 3Д сканера







1. З шилдом.

Встановіть FabScan шилд на Arduino. Драйвер крокового двигуна A4988 встановлюється на передбачені колії. Кроковий двигун підключається до відповідних контактів на шилді. Модуль лазера підключається до аналогового піну A4. Після цього можете підключати живлення та кабель USB. Більш детальна іструкція знаходиться.

2. Без шилду.

Якщо ви вирішили зібрати сканер без використання шилда, підключіть драйвер крокового двигуна L298 до контактів 10, 11, 9, 8 на Arduino (в принципі, ці контакти можна змінити з відповідними редагуваннями в скетчі). Модуль лазера підключається до піна A4 на Arduino. Всі. Можна підключати живлення та кабель USB.


Скетч для Arduino

Важлива примітка! Якщо ви використовуєте опцію "Try Ubuntu", переконайтеся, що ви зберегли файли перед тим, як вимкнути персональний комп'ютер!

Виконайте вказівки, фотографії до яких наведені нижче:

  • Виберіть SerialPort;
  • Виберіть Camera;
  • File – Control Panel;
  • Натисніть detect laser (поки що не встановлюйте жодних об'єктів перед сканером) та оберіть "enable";
  • Натисніть "Fetch Frame" і переконайтеся, що синя горизонтальна лінія стосується вершини столу, що обертається, а жовта горизонтальна лінія стосується нижньої частини обертового столу. Крім того, жовта вертикальна лінія повинна збігатися з центром столу, що обертається. Якщо камеру встановлено некоректно, результат сканування не буде чітким!

Після налаштування закрийте вікно, встановіть об'єкт у 3D сканері та натисніть кнопку Start Scan.

Примітка: додаткові матеріали з налаштування файлу configuration.xml викладені в цьому гайді .

Збереження 3D-зображення

Коли процес 3Д сканування завершиться, ви зможете зберегти сканований 3D об'єкт з розширенням .pcd або .ply. Можна зберегти і у форматі 3D stl файл, але ця можливість доступна не на всіх платформах. Відкрити сканований та збережений раніше об'єкт можна, вибравши File – OpenPointCloud.

Що далі?

Ви можете використовувати MeshLab для обробки сканованого 3Д об'єкта та роздрукувати його на 3D принтері!

При обробці файлу в MeshLab:

1. Переконайтеся, що ви зберегли об'єкт як файл.ply.

2. Відкрийте файл за допомогою програми MeshLab.

3. У MeshLab розрахуйте нормалі (Filters/Point Set/Compute normals).

4. Після цього перебудуйте поверхню, використовуючи Poisson reconstruction (Filters/Point Set/Surface Reconstruction: Poisson)

Остаточно зібрана конструкція наведена на фото нижче.


Відео роботи оригінального FabScan 3-Д сканера:

Велике дякую команді FabScan за приголомшливий open-source сканер на Arduino!

Залишайте Ваші коментарі, питання та ділитесь особистим досвідомнижче. У дискусії часто народжуються нові ідеї та проекти!

Є аналогом відомого лазерного сканера FabScan, який розробив Франциск Енгелман. Як бокс для такого сканера автор використовував МДФ, що стосується начинки, вона також трохи відрізняється від оригіналу.

Оригінальною є програма для Arduino, вона була взята з оригінального проекту.

Матеріали та інструменти для створення сканера:

4 листи МДВ 600Х300 мм, товщина 5 мм (вони потрібні для створення корпусу);
- Кроковий двигун (NEMA 17 на 200 кроків);
- драйвер для крокового двигуна L298N;
- модуль лазера потужністю 5 мВт (використовується від виробника Red Line);
- для живлення пристрою потрібне джерело 12 В - 2 А;
- Веб-камера моделі Logiteck C270.






В оригінальній саморобці використовується драйвер крокового двигуна A4988, а щодо крокового двигуна, то це також NEMA 17. В іншому елементи саморобки точно такі, як і в оригінальній версії.

Процес виготовлення сканера:

Крок перший. Робимо корпус
Весь процес створення корпусу сканера можна побачити на фото. Найголовніше у цій справі – точність. Модуль лазера кроковий двигун та веб-камера повинні бути чітко на потрібних місцях, відповідно до проекту.













Крок другий. Підключаємо електроустаткування


Є два способи підключення обладнання, це з шилдом та без нього. Розглянемо докладніше кожен із цих вариантов.

Підключення без шилду
Якщо прийнято рішення збирати пристрій без використання шилда, то висновки крокового двигуна L298 підключаються до контактів Arduino під номерами 10, 11, 9, 8. В принципі, можна використовувати інші контакти, але при цьому потрібно буде вносити зміни в скетч.
Що стосується модуля лазера, його потрібно підключити до піна А4 на контролері Arduino. Після цього можна буде підключати USB-кабель та живлення.

Підключення з шилдом
Потрібно встановити шилд FabScan на Arduino. Що стосується драйвера крокового двигуна, його потрібно встановити на рейки, які для цього передбачені. Контакти крокового двигуна підключають до відповідних контактів на шилді.
Модуль лазера необхідно підключити до піна А4 на Arduino. Ось і все, після цього підключається живлення та USB-кабель.

Крок третій. Установка скетчу
Тепер потрібно скачати та встановити офіційний скетч для FabScan. Щоб прошити Arduino, потрібно завантажити Codebender плагін і потім натиснути кнопку "Run on Arduino". При цьому скетч можна буде встановити прямо через браузер із офіційного сайту.


Якщо не використовувався шилд, потрібно натиснути кнопку Edit і потім додати такі рядки:

const int stepsPerRevolution = 200; // Змініть цей параметр, щоб налаштувати кількість кроків на поворот валу Вашого крокового двигуна

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
Замініть функцію step():

myStepper.setSpeed(1);

myStepper.step(1);

Крок четвертий. ПЗ для сканера
Для встановлення програми потрібно завантажити образ "FabScan Ubuntu Live DVD", після встановлення з'явиться програмне забезпечення FabScan.

У програмі потрібно зробити деякі опції:

Спочатку потрібно вибрати SerialPort;
- Далі вибираємо Camera;
- після цього File – Control Panel;
- потім тиснемо detect laser і вибираємо "enable" (при цьому ставити ніяких об'єктів перед лазером не потрібно);
- Ну а тепер тиснемо «Fetch Frame», при цьому синя горизонтальна лінія повинна торкатися нижньої частини столу, що обертається. Жовта лінія має бути по центру столу. Якщо камеру буде встановлено неправильно, зображення буде поганої якості.












Ось і все, програма налаштована. Тепер можна ставити в сканер якийсь об'єкт і після цього натискаємо кнопку Start Scan.

Крок п'ятий. Зберігаємо зображення
Після завершення сканування об'єкта зображення можна буде зберегти у форматі .pcd або .ply. Ще можна зберегти у форматі stl, але це вже залежить від використовуваної платформи.
Щоб відкрити об'єкт, збережений раніше, потрібно вибрати File - OpenPointCloud.

) ми вирішили спробувати свої сили в його збиранні та по можливості покращити його конструкцію. Ми навіть не уявляли, що з цього вийде і тим більше не уявляли, що переможемо з ним на кількох науково-інженерних виставках. Але по порядку. Кому цікаво дізнатися результат, ласкаво просимо під кат (багато фотографій).

Перший прототип

Спочатку ми вирішили зібрати лазерний далекомір. Зроблено його за мотивами статті на радіоаматорському форумі. Просто лазерна указка та камера. Для обробки зображень було написано програму на Java. Для одного виміру робилися дві фотографії: з лазером та без лазера. Після їхнього порівняння ми могли однозначно знайти лазерну точку. Після того, як це запрацювало, далекомір був встановлений на платформу, яка могла обертатися у двох площинах. Перш ніж я покажу те, що вийшло, треба попередити – на літній школі не так багато матеріалів, а тому ми зібрали прототип з того, що ми мали:

Камеру видно одразу, а лазер – це той латунний циліндрик над нею. Для обертання платформи ми застосували два крокові двигуни, які в свою чергу були підключені до плати управління на мікроконтролері Atmega32. До неї підключався лазер. Сама плата з'єднувалася з комп'ютером за допомогою USB-UART перехідника. Програма на комп'ютері робила знімки, обробляла їх, заносила координати одержаних точок у файл і надсилала команди платі управління.

Результат був цікавим. Так, ми знаходили відстань. Так, ми могли «націлитись» на будь-яку точку в півсфері над сканером. І нашої радості не було межі. Але коли ми провели оцінку часу сканування цієї півсфери, воно виявилося рівним 48 годин. І річ не в камері. І навіть не в Java. А в тому, що установка була настільки хисткою, що коливалася після кожного повороту протягом п'яти секунд. Доводилося робити вимір, повертатися і чекати на п'ять секунд, поки вона не перестане гойдатися. До того ж бібліотека для камери перед кожним знімком включала її, а потім вимикала. На це йшло 1-2 секунди. Але літня школа закінчувалася, і переробляти було ніколи: це була вже ніч перед здаванням проекту. Точніше ранок. Наступного дня ми представляли наш проект на конкурсі перед науковим журі та несподівано виграли. Напевно, саме через цю перемогу ми вирішили продовжити нашу роботу над цим проектом.

Версія два

Насправді літо скінчилося, а навчальний рік розпочався. Бажання працювати зникло. Установку планували закінчити до наступного конкурсу, до якого був цілий місяць. Місяць. А потім раптово три дні. Але за місяць ми вирішили змінити встановлення. Зібрати її міцною, встановити на лазерну указку лінзу, яка створюватиме лазерну лінію. Це дозволило б сканувати одразу 720 пікселів (у сканері стояла HD камера). Ось лише три дні внесли свої корективи:

Зібраний другий сканер із візирних пластикових лінійок, клею, малярського скотчу та тримається лише завдяки синій ізоленті. Замість лінзи стоїть пробірка. На цю пробірку світить зелений лазер. Промінь, що відобразився, створює на екрані більш-менш рівномірну лазерну смужку. Дальномір закріплений лише одному моторі, який обертає їх у горизонтальній площині. Плату управління замінили на STM32VLDiscovery. Просто STM32 я знаю краще та ще й Atmega згоріла, а програматор був давно втрачений. Виглядає не дуже, зате працює! Вагання зменшилися, а швидкість відповідно збільшилася. Але не дуже. Тут було виявлено дуже цікаву каверзу - китайська лазерна указка включалася не відразу, а плавно збільшувала свою потужність протягом секунди. Таким чином, секунда на коливання, секунда на прогрівання лазера, секунда на знімок, а їх два. Ось і отримуємо 4 секунди. Але за один вимір ми знаходимо відстань до 720 пікселів! Виглядав процес сканування приблизно так:

А результат так:

Картинка виглядає не дуже цікаво, але гурток був у програмі об'ємним. Можна було подивитися її з різних боків.

А що, власне, конкурс? А ось нічого! Ми закінчили сканувати все поспіль о 4-й годині ночі, а о 9-й ранку на стенді виявили, що лазер згорів. Як виявилося, поки ми несли його з готелю до стенду, до нього потрапив дощ, і при включенні він згорів. А виглядає вона у неробочому стані так, що повірити у слова «воно працювало 5 годин тому» складно. Ми засмутилися. Бажання продовжувати зникло з димком з лазера. Але все ж таки була зібрана…

Третя версія

І зібрано її знову ж таки до конкурсу. Причому до нього ми готувалися довго та ґрунтовно. Більше тижня. І ось результат:

Перше що впадає у вічі - це те, що тепер ми скануємо не область навколо сканера, а об'єкт, який обертається на платформі. А так само ми дістали потрібну лінзу, зібрали все нормально, переписали програму, а ще замінили налагоджувальну плату на саморобну. І ще тепер ми робимо лише один знімок на вимір. Лазер досить потужний, а лінза досить хороша для того щоб однозначно знаходити лазер на фотографії. Завдяки цьому ми не чекаємо на прогрівання лазера - він завжди включений. А ще камеру тепер вмикаємо лише один раз. Тобто час витрачається здебільшого на поворот платформи та обробку зображення. У програмі додали меню вибору точності. Час сканування – від двох до десяти хвилин. Залежно від вибраної точності. За максимальної точності виходить, що платформа за крок повертається на 0,5 градуса, а відстань визначається з точністю 0,33 мм. Платформа рухається кроковим мотором через редуктор. Власне платформа – великий диск, а гумовий валик на валу двигуна – маленький. Мотором та лазером керував мікроконтролер STM32F050F4 через польові транзистори. На початку статті саме скан іграшки, отриманий за допомогою цього сканера. Так як сканер видає хмару точок у форматі.obj, то після тріангуляції ми можемо надрукувати відсканований об'єкт на 3D принтері, що видно на тій же фотографії. На екрані ми можемо бачити модель після тріангуляції. Жодної ручної роботи над моделлю не проводилося.

На конкурсі ми перемогли. А він давав прохід на міжнародний конкурс Intel ISEF. Тому ми почали працювати над наступним сканером.

Четверта версія

на Наразіце остання версіясканера, яку ми зібрали. Для порівняння на платформі стоїть друга версія. До розробки четвертого сканера ми постаралися підійти з усією ґрунтовністю, з якою тільки могли. Установка була накреслена в САПРі, деталі вирізані лазером, все пофарбовано, нічого зайвого зовні не стирчить. Зміни: тепер платформа справді є шестернею. Вона вирізана з оргскла і по краях у неї 652 зубчики. Це вирішує проблему, яка сильно псувала скани у попередньому сканері: гумовий валик трохи прослизав, через що платформа часто поверталася не так на 360 градусів. Скани були або з вирізаним шматочком, або з перекриттям. Тут ми завжди точно знали наскільки повернута платформа. Потужність лазера зробили програмно регульованою. Завдяки цьому можна було на ходу змінювати потужність лазера, уникаючи засвітки непотрібних частин при малій освітленості приміщення. Для керування всією електронником вирішили не розводити нову плату, а просто застосувати налагоджувальну F401RE-Nucleo. На ній встановлений ST-LinkV2.1, який працює відладником та USB->UART адаптером.

Точність вийшла приголомшлива: Кутова роздільна здатність 0.14 градуса. На відстані 0,125 мм. Область сканування є циліндром висотою 20 см і діаметром 30 см. Ціна всіх деталей і різання лазером на момент його створення (травень 2014) становила менше 4000 рублів.

У процесі використання ми лише один раз ставили максимальну точність. Сканування тривало 15-20 хвилин. Отримали майже 2 мільйони крапок. Ноутбук відмовився розраховувати модель із хмари крапок. Експеримент більше не повторювали.

Висновок

Найближчим часом ми плануємо відновити роботу над проектом, а тому допрацьовуватимемо і програму, і встановлення. Сподіваюся, найближчим часом напишемо про покрокове складання, викладемо креслення, програми та все інше. У цю статтю це вже не поміститься.

Дякую всім, хто дочитав до кінця!

UPD:
Колега знайшов відео про роботу сканера, яке ми знімали на ISEF:

Так, більшість відео не цікава, але в кінці моделька на ноутбуці.

А ще приклади відсканованих об'єктів. Але всі вони належать до третьої версії сканера.
Dropbox
У файлі model.obj добре видно, що виходить при ковзанні цього гумового валика на моторі - у собаки три очі. Сканування зупинили, через що вийшов виріз. Усі файли – це хмари точок. Відкривати можна за допомогою MeshLab. Моделі не опрацьовувалися руками. Цілком сирі дані. Зверху видно «білі плями» – ділянки без крапок. Їх не бачить камера. Так само білі плями можна побачити і в інших місцях. Вони з'являються або на темних ділянках, або при перекритті поверхонь. Наприклад, у файлі stn_10.obj роги козла перекривають один одного, через що внутрішня поверхня рогів не відсканувалася.




Top