Заметки о самодельной рисующей машине: узоры, код и то, что обычно идёт не по плану.
Веду это скорее для себя, чем для читателей — чтобы не забывать, какая настройка сработала,
а какая нет. Плоттер самодельный, на двух шаговиках и Arduino, пишет обычными ручками и перьями
на бумаге до A4. Если вы сюда как-то попали — привет.
Смена пера
Перешёл с гелевых Sakura на перьевую Lamy Safari с картриджами Diamine. Разница сразу
заметна: перо требует более-менее постоянного прижима, иначе линия то пропадает, то
расплывается кляксой на поворотах.
Пришлось откалибровать сервопривод по Z — старые значения подъёма/опускания были рассчитаны
под жёсткий гелевый стержень. Для пера снизил усилие примерно на треть, скорость в поворотах
тоже пришлось урезать.
Погонял семейство r = cos(kθ) при разных k — искал, где узор перестаёт быть скучным
кругом, но ещё не превращается в кашу из самопересечений. Дробные k в районе 2.3–2.7
дают что-то похожее на лепестки, но плоттеру такие кривые тяжело даются: слишком много
резких разворотов пера на малом радиусе.
Заодно окончательно отказался от идеи заливки сплошных областей штриховкой — на моей
механике это и медленно, и протирает бумагу до дыр на пересечениях линий.
Инструмент: p5.js → экспорт в SVG. ~25 минут на лист A5.
Кривая Гильберта на A4
Сгенерировал кривую Гильберта 6-го порядка, экспортировал через svg.js и прогнал на
целый A4. Печать заняла почти 40 минут — на плотных участках, где линии идут близко
друг к другу, чернила успевали немного растечься, пока перо было рядом.
В следующий раз добавлю паузу между соседними проходами или просто увеличу шаг сетки —
сейчас на глаз это 2–3 мм, маловато для гелевой ручки.
Порядок кривой: 6. Формат: A4. Ручка: Sakura Microperm 0.3.
Первый рабочий прогон
После трёх вечеров переделок машина наконец дорисовала лист до конца, не потеряв
положение пера. Проблема была в ремне GT2 — слишком слабое натяжение давало люфт в
пару миллиметров на резких сменах направления, что на глаз почти незаметно, но на
бумаге выглядит как дрожащая линия.
Подтянул ремень, добавил натяжной ролик — на тестовом квадрате 10×10 см расхождение
по углам ушло почти полностью.
Механика: 2× NEMA17, Arduino Uno + CNC shield, GRBL.