Доброго дня, мозгочины! Самоделка о которой пойдет речь в этой статье, это лазерный 3D-сканер с открытым кодом под названием «FabScan», разработанный, кстати, как диссертация бакалавра.
Корпус своего мозгосканера я сделал их листов МДФ и еще нескольких деталей крепежа, а чтобы показать то, что у меня получилось, решил написать это руководство.
Выражаю свою признательность компании Arduino за софт и команде «FabScan» за написанное приложение, а также огромное спасибо за этот великолепный лазерный мозгопроект!
Полезная информация по этому 3D-сканеру
Итак, поехали!
Шаг 1: Нам понадобится
Что рекомендует «FabScan»:
— Arduino Uno
— драйвер A4988 для шагового двигателя
— щилд для 3D-сканера «FabScan»
— 5мВт лазерный модуль
— биполярный шаговый двигатель NEMA 17 (200 шагов)
— блок питания 12В, 1А
— веб-камера Logitech C270
— материал для корпуса (4 листа МДФ 60х30х0.5см, более подробно здесь)
То, что использовал я:
— Arduino Uno
— шаговый двигатель NEMA 17 (200 шагов)
— драйвер L298N для шагового двигателя
— 5мВт лазерный модуль (красный луч)
— блок питания 12В, 2А
— веб-камера Logiteck C270
Я бы рекомендовал все же придерживаться списка от команды-создателя.
Шаг 2: Создание корпуса
Из МДФ вырезаем детали корпуса, я для этих целей использовал дремель, и собираем его. Процедура эта не простая, так как для верного сканирования мозгокамера, двигатель и лазерный модуль должны правильно располагаться.
Шаг 3: Подключение электроники
Это довольно просто: монтируем шилд FabScan на Arduino, а уже на шилд устанавливаем драйвер в первый разъем для двигателя. К выходным контактам подключаем шаговый двигатель, а лазерный модуль к аналоговому контакту A4, и, наконец, подсоединяем питание и USB-кабель. Более подробно об этом здесь.
Если же вы используете компоненты из моего списка, то необходимо подключить драйвер L298 к контактам 10, 11, 9, 8 на Arduino (по желанию их можно поменять), а лазерный модуль также на контакт A4. Затем подключить питание и USB-кабель.
Шаг 4: Код
Перед вами код для поделки от команды-разработчика, и который можно загрузить на Arduino прямо из браузера с помощью плагина Codebender. Для этого необходимо установить этот плагин и нажать кнопку «Run on Arduino», тем самым запустив «заливку» прямо из окна с кодом.
(https://codebender.cc/sketch:186175)
Если вы «идете мои путем», то необходимо нажать кнопку «Edit» и добавить строки:
#include
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
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)
— задайте камеру
— далее «File» — «Control Panel»
— запустите обнаружение лазера (detect laser), при этом не помещая еще ничего в принтер, и выберите «включить(enable)»
— нажмите «получить кадр (Fetch Frame)» и убедитесь, что синяя горизонтальная линия касается верха поворотного стола, а желтая горизонтальная линия касается низа поворотного стола. Желтая вертикальная линия должна проходить через центр круглого поворотного стола. Не выровненная камера будет давать искаженные сканы!
После настройки закрываем окно панели управления, помещаем в сканер объект и нажимаем кнопку «начать сканирование (start scan)».
Совет: Можно изменить файл конфигурации от команды-разработчика configuration.xml следуя представленным здесь инструкциям.
Сохранение полученного 3D-изображения:
Когда мозгосканирование завершено полученный 3D-образ можно сохранить в формате 3D pointcloud .pcd или .ply файлов. Можно сохранить и в формате 3D stl файла, но он работает не на всех платформах. Открыть файл с отсканированным объектом можно выбрав «File» — «OpenPointCloud».
Ну а что дальше?
А дальше можно обработать полученный 3D-скан в MeshLab и распечатать его на 3D-принтере! И вот как это делается:
— убедитесь, что файл со сканом имеет расширение .ply
— открываем файл в MeshLab и вычисляем нормали ( Filters/Point Set/Compute normals for point sets)
— воссоздаем поверхности используя реконструкцию Пуассон (Filters/Point Set/Surface Reconstruction: Poisson).
На этом все! И всем мозгоудачи!
( Специально для МозгоЧинов #DIY-Arduino-3D-Laser-Scanner
У кого-нибудь получилось заменить функцию step()?
Ардуинка ругается на «поправленный» скетч.
Можно поподробней что именно надо заменить?
У кого-нибудь получилось заменить функцию step()?
Если «ДА», расскажите, плиз, поподробней как и что надо заменить?
Луч можно сделать из обычной лазерной указки, дополнив специальной линзой. На Али поищите «Line lens» или можно купить там же готовый линейный лазер
А где можно найти линейную линзу?
Воот только писать собрался, а как вертикальный луч сделать. И где эту линзу взять можно?
Вот только уважаемый автор забыл указать, что требуется специальная линейная линза (вроде так называется) для формирования лазерного пучка.