Как вылечить китайца. Часть 2 'Маскарад' (много фото)
Итак, в этой статье я расскажу о тестировании экрана моего Wanhao Duplicator 7 на предмет равномерности излучения ультрафиолета (как известно экран данного принтера освещается неравномерно) и изготовлении цифровой маски при помощи генератора маски в NanoDLP.
На данном ресурсе уже имеется несколько статей о тестировании экрана при помощи фотодатчика типа СФ2-16, обычного фоторезистора из набора arduino и при помощи датчика освещенности мобильного телефона. У первого датчика скорость работы невысокая и чувствительность в нужном диапазоне (405 нм) порядка 50%, у второго - крайне низкая чувствительность (порядка 15%) в нужном диапазоне, у третьего серьезный недостаток - для бюджетного смартфона этот способ не подходит, необходим смартфон верхнего ценового диапазона.
Фоторезистор VT83N1
Цифровой датчик TSL2561
В моем же случае был использован клон Arduino Uno (в китайском интернет-магазине от 200 рублей) и цифровой датчик освещенности GY-2561 на основе TSL2561 (от 50 рублей). У данного датчика согласно даташиту чувствительность в интересующем нас диапазоне составляет порядка 65%. Кроме того, этот датчик цифровой, точный и работает с высокой скоростью.
Инструкция:
1. Скачать среду разработки Arduino IDE с официального сайта http://arduino.cc из раздела software. Выбрать файл для своей системы (последняя версия на момент написания статьи 1.8.5), установить и запустить программу. 2. Подключить библиотеку для работы с датчиком TSL2561 в этом пункте меню:
В строке поиска набрать 2561 и выбрать из трех найденных библиотеку для установки. Работать будет любая, настройки отличаются незначительно. Новичкам в области программирования микроконтроллеров Arduino рекомендую повторить данную инструкцию, выбрав библиотеку SparkFun.
3. Выбрать пример прошивки для работы с датчиком TSL2561:Разработчик библиотеки снабдил пример комментариями, поэтому при желании можно разобраться, как подключить датчик на разных платах.
4. Найти строку с текстом gain = 0. Это усиление сигнала, 0 - без усиления, 1 - усиление 16x. Настройка датчика для работы с усилением сигнала может привести к выходу показаний за пределы рабочего диапазона, поэтому рекомендую усиление не использовать
5. Ниже найти строку unsigned int data0, data1. Здесь data0 означает видимый спектр, data1 - инфракрасный.
На этом можно закончить настройку, но для наглядности рекомендую заменить название для видимого спектра на UV, поскольку именно эти данные используются для создания маски, и вычесть из видимого спектра инфракрасный для уменьшения влияния нагрева матрицы на показания датчика:
Serial.print('UV= ';);
Serial.print(data0 -data1);
Следующие две строки удалить:
Serial.print(' data1: ';);
Serial.print(data1);
Дальше в программе настроен вывод данных в пересчете на люксы и обработка исключений. Менять что-либо в этом блоке кода нет необходимости.
6. Теперь следует подключить Arduino UNO к компьютеру, выбрать в разделе Инструменты порт, к которому подключилась плата (нужный порт отобразится в диспетчере устройств) и тип платы (в данном случае Arduino / Genuino Uno). Нажать кнопку Загрузка и подождать, когда проект будет скомпилирован и загружен в плату. Если используется клон оригинальной Arduino UNO, возможно потребуется выбрать другой тип платы (Arduino Duemilanove or Dieciila).
7. Отключить плату от компьютера и подключить датчик.
Схема подключения датчика TSL2561 к Arduino UNO.
Подключить вывод питания (VCC) на 3.3 вольт. Вывод земли соответственно на землю (GND), SCL на A5 и SDA на A4. Вывод INT использовать в данном эксперименте нет необходимости.
8. Подключить плату к компьютеру. Через несколько секунд открыть монитор порта комбинацией клавиш Ctrl+Shift+M или в меню Инструменты выбрать Монитор порта.
9. Напечатать корпус датчика, оправку для него (на фото ниже сетка 19*11 ячеек) и приступить к сбору данных. В статье Wanhao D7 делаем маску в NanoDLP при помощи Arduino данный процесс описан достаточно подробно.
Сетка 19*11
Корпус датчика
Первые опыты показали, что разница в значениях в центре экрана и по краям составляет более 10 раз!
Произошло это по причине отсечения части полезного излучения корпусом датчика (светодиодная матрица значительно меньше экрана, поэтому в углах экрана свет падает на поверхность датчика под углом). Первая версия измерительного прибора была признана неудачной.
На следующем фото представлена вторая, переработанная версия. Сетка, напечатанная на 3D-принтере, была заменена 3D-моделью.
Корпус датчика также претерпел изменения.На фото ниже представлен процесс измерения. Принтер на экран выводит сетку, углы ячеек которой служат ориентирами для позиционирования датчика.Каждое измерение записывалось в таблицу Excel (312 ячеек таблицы 24*13). Сбор данных занял около двух часов, результаты на фото ниже. Зеленым обозначены данные с датчика. Максимальные значения достаточно низкие, поскольку экран принтера был включен командой M106 S100 для уменьшения мощности светодиодной матрицы (в этом режиме нагрева от продолжительной непрерывной работы светодиодов не наблюдалось).
Коричневым цветом выделены значения, которые были использованы для генерации маски в программе NanoDLP. Формула для трансформации данных в понятные данной программе значения состоит из трех частей:
1. Поиск в таблице данных минимального значения (для Excel это =МИН(C3:Z15), записать в отдельную ячейку)
2. Преобразование исходной таблицы в диапазон до 255 (поделить минимальное значение на текущее для каждой ячейки таблицы данных, умножить на 255 и округлить до ближайшего целого. В Excel формула выглядит так: =ОКРУГЛ($G$18*255/C3;0), где $G$18 - абсолютная ссылка на ячейку с минимальным значением, C3 - ссылка на ячейку с данными для преобразования).
3. Собрать значения из столбцов в одну строку, разделив значения запятой без пробелов (в Excel это =СЦЕПИТЬ(C23;',';D23;','; и так далее все оставшиеся столбцы)) Сделать такое преобразование для всех строк.
Далее необходимо установить NanoDLP с официального сайта и настроить параметры для Wanhao Duolicator 7 в соответствии с фото ниже.
Сохранить, перейти на вкладку Projector Calibration, выбрать Mask GeneratorВнизу страницы в левое окно вставить набор данных (правильный массив данных: столбцы разделены запятой, каждая новая строка с новой строки). При первой вставке из Excel в конце добавляется еще одна строка, ее нужно удалить, выделить весь массив снова, скопировать и снова вставить в то же окно.
Вверху страницы можно убедиться в том, что таблица данных обновилась и имеет правильное количество строк и столбцов. Далее нажать кнопку Preview и перейти вниз страницы.
Здесь отображается превью маски.Нажать Save Mask, в правом окошке появится готовая маска. Правой кнопкой сохранить изображение.Подключить полученную маску в Creation Workshop и распечатать тестовую модель.Явный недосвет в центре. Маска работает не так как ожидалось. Некоторое время экспериментировал с датчиком и маской. Почитал даташит на этот датчик и обнаружил следующий график:
Согласно графику, в зависимости от угла падения излучения на датчик его чувствительность сильно меняется. Соответственно, поскольку в данном эксперименте датчик параллелен плоскости экрана во всех измеряемых точках, угол падения излучения на датчик в центре будет прямым (и показания датчика максимальными), а в углах значительно меньше (разница до двух раз).
Далее маска была обработана в фоторедакторе.
Использовать можно любой редактор фотографий, имеющий в своем наборе инструментов редактор уровней. К примеру можно использовать бесплатный редактор Paint.NET, его функционала вполне достаточно.
Открыть маску в редакторе, в меню Коррекция выбрать Уровни
Изменив гамму осветлить центр маски.Сразу поставить значение 0,10 и сохранить маску. Подключить ее в используемой для печати программе и напечатать тестовую модель. Если в центре все еще наблюдается недосвет, гамму снова уменьшить. За две-три итерации удастся подобрать адекватную маску.
Мой принтер способен печатать в центре без маски с засветкой 5 секунд. Если нужно было печатать на краю, я увеличивал время засветки до 7 секунд и в этом случае центр оказывался пересвечен. С маской при тех же 7 секундах засветки в центре пересвета нет, края печатаются. Таким образом, при использовании маски мне пришлось увеличить время засветки на слой 100 микрон на 40%.
Увеличение времени засветки на 40% достаточно большое, кроме того, показания цифрового датчика в центре и по краям экрана различались более 80%. В продолжение эксперимента была собрана схема с простым фоторезистором на основе Arduino UNO.
Фоторезистор из стартового набора ArduinoЖелания снова тратить два часа на измерения не было, поэтому за основу взята матрица 5*10. Измерения проводились трижды при разных условиях (при свете датчик без корпуса, при свете датчик в корпусе, без света датчик в корпусе). Корпус для датчика сделан из барашка, которым ванночка притягивается к принтеру.
Процесс измерений занял порядка 30 минут.В результате получены следующие таблицы данных:По ним построены поверхности для визуализации неравномерности засветки. Интересно, что разница между максимальным и минимальным значением засветки для условий исследования 'При свете, датчик без корпуса' составила наименьшее значение.Изготовление масок по этим данным выявило ту же проблему, что и в предыдущем эксперименте с цифровым датчиком - с использованием маски, сгенерированной в программе NanoDLP, центр экрана недосвечен.
Обработав новые маски в редакторе фотографий получен эффект несколько хуже, чем с обработанной маской цифрового датчика. Вероятно причина в различии в количестве измерений (более 300 цифровым датчиком и только 50 фоторезистором).
Результат печати с использованием обработанной маски с цифрового датчика.
Благодарю всех, кому хватило терпения дочитать до конца.Еще больше интересных статей
Апгрейды для Sprite Extruder Ender 3: обдув K3D, азотированные шестерни FYSETC Sprite Extruder Gear, сопло 0.6. Печать композитами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Всем привет! )
Я знаю, что сейчас не 202...
Сушилка на 4 катушки своими руками
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
А я сделал из овна и палок, ку...
Тем летом двоих закосил газоно...
Шаи-Хулуд поинтереснее кротов....
Здравствуйте. При печати кубик...
Проволка доходит до середины э...
На кораблике видно что на неко...
Сразу для любителей обсуждать...