3D сканер на Arduino

Содержание

Начало проекта было положено во время разработки бакалаврского проекта Франциска Энгелманна. Официальная страница проекта находится здесь.

На основании этого проекта, разработан аналог, который и рассмотрен в статье. Для бокса используется мдф. Электронная начинка тоже несколько отличается.

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

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

Фото необходимой электроники

Arduino Uno Шаговый двигатель Nema 17
Лазер Драйвер шагового двигателя

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

  • Arduino UNO;
  • Драйвер шагового двигателя A4988;
  • Шилд FabScan;
  • Модуль лазера на 5 мВт — производитель Red Line;
  • Биполярный шаговый двигатель NEMA 17 (200 шагов);
  • Источник питания 12 В — 1 А;
  • Веб-камера Logitech C270.

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

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

  • Arduino UNO; (200 шагов);
  • Драйвер шагового двигателя L298N;
  • Модуль лазера на 5 мВт — производитель Red Line;
  • Источник питания 12 В — 2 А;
  • Веб-камера Logiteck C270.

То есть мы просто не станем использовать шилд FabScan и используем другой модуль драйвера шагового двигателя

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

Процесс и результат разработки корпуса нашего 3D сканера показаны на фотографиях. Основная сложность — максимально точная установка камеры, модуля лазера и шагового двигателя. Если вы хотите облегчить себе жизнь, можете заказать эти детали здесь за 35 евро.

Сборка 3Д сканера

Сборка 3Д сканера 1 Сборка 3Д сканера 2
Сборка 3Д сканера 3 Сборка 3Д сканера 4
Сборка 3Д сканера 5 Сборка 3Д сканера 6
Сборка 3Д сканера 2 Сборка 3Д сканера 9

Подключение электрооборудования

Подключается все предельно просто. Особенно если вы закажете оригинальный шилд. (Статья о том, что такое шилды для Arduino и какие они бывают).

1. С шилдом.

Установите FabScan шилд на Arduino. Драйвер шагового двигателя A4988 устанавливается на предусмотренные рельсы. Шаговый двигатель подключается к соответствующим контактам на шилде. Модуль лазера подключается к аналоговому пину A4. После этого можете подключать питание и USB кабель. Более детальная иструкция находится здесь.

2. Без шилда.

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

Подключение электрооборудования

Скетч для Arduino

По этой сслыке находится официальный скетч для FabScan, который можно скачать с помощью Codebender!

Скачайте плагин Codebender и нажмите кнопку "Run on Arduino", чтобы прошит ваш Arduino.

Все! Вы загрузили скетч на ваш Arduino напрямую из браузера!

Если вы не использовали шилд, нажмите кнопку Edit и:

const int stepsPerRevolution = 200; // измените этот параметр, чтобы настроить количество шагов на поворот вала вашего шагового мотора

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);

Замените функцию step():

Программа для персонального компьютера

Программа для персонального компьютера в работе

Программа для персонального компьютера 1 Программа для персонального компьютера 2
Программа для персонального компьютера 3 Программа для персонального компьютера 4
Программа для персонального компьютера 5 Программа для персонального компьютера 6

Используется образ "FabScan Ubuntu Live DVD". Скачать образ программы можно здесь. На образе диска залито программное обеспечение FabScan. Можно записать образ на флэш-носитель с помощью Win32DiskImager и использовать его без установки linux os на ваш персональный компьютер. Более детальная информация по поводу поддержки других операционных систем находится здесь.

Важное примечание! Если вы используете опцию "Try Ubuntu", убедитесь, что вы сохранили файлы перед тем как выключить персональный компьютер!

Следуйте инструкции, фотографии к которой приведены ниже:

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

После настройки закройте окно, установите объект в 3 D сканере и нажмите кнопку 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)

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

3D сканер на Arduino

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

Огромное спасибо команде FabScan за потрясающий open-source сканер на Arduino.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!


Источник: arduino-diy.com