Волнистость на растре (grbl)
-
wormball
- Кандидат
- Сообщения: 40
- Зарегистрирован: 03 сен 2019, 22:33
- Репутация: 1
- Контактная информация:
Волнистость на растре (grbl)
Здравствуйте!
Есть самый дешёвый китайский лазерный гравёр на grbl. Когда я рисую им растровое изображение, оно получается волнистым, то бишь с увеличением координаты У гуляет координата Х с характерной длиной волны порядка 10 мм и амплитудой в районе 0,1 - 0,3 мм. Причём гуляет, во-первых, не строго периодически, во-вторых, с Х-координатой смещение тоже изменяется и тоже непериодически, то бишь на кривизну колёс списать не получается. А самое главное - на векторе всё хорошо! И такая петрушка как с lasergrbl, так и с lightburn. Пробовал закрепить субстрат получше - всё то же самое.
Попытался поискать, нашёл только это: viewtopic.php?f=149&t=15307 Картина похожа, только у меня всё же не настолько сурово. Сомневаюсь, что там пропуск шагов, ибо, во-первых, пропускаться должны микрошаги, а во-вторых, как-то подозрительно они компенсируют друг друга.
Кто виноват и что делать?
Или альтернативный вопрос. Есть ли способ по-человечески вывести вектор из diptrace, чтобы можно было сделать из него плату?
Заранее благодарен.
Есть самый дешёвый китайский лазерный гравёр на grbl. Когда я рисую им растровое изображение, оно получается волнистым, то бишь с увеличением координаты У гуляет координата Х с характерной длиной волны порядка 10 мм и амплитудой в районе 0,1 - 0,3 мм. Причём гуляет, во-первых, не строго периодически, во-вторых, с Х-координатой смещение тоже изменяется и тоже непериодически, то бишь на кривизну колёс списать не получается. А самое главное - на векторе всё хорошо! И такая петрушка как с lasergrbl, так и с lightburn. Пробовал закрепить субстрат получше - всё то же самое.
Попытался поискать, нашёл только это: viewtopic.php?f=149&t=15307 Картина похожа, только у меня всё же не настолько сурово. Сомневаюсь, что там пропуск шагов, ибо, во-первых, пропускаться должны микрошаги, а во-вторых, как-то подозрительно они компенсируют друг друга.
Кто виноват и что делать?
Или альтернативный вопрос. Есть ли способ по-человечески вывести вектор из diptrace, чтобы можно было сделать из него плату?
Заранее благодарен.
-
tovar4i
- Кандидат
- Сообщения: 67
- Зарегистрирован: 07 апр 2017, 09:01
- Репутация: 2
- Настоящее имя: Сергеевич
- Откуда: Мариуполь
- Контактная информация:
Re: Волнистость на растре (grbl)
Та же беда, дело скорее всего в способе выжигания. Если жжем растр то там оттенки получаются от перепадов мощности и скорости. Головка лазера массивная, и искажения проявляются из-за люфтов в каретке. Почему этого нет при векторе не знаю. Выведите вектор ( файл svg, dxf) или сохраните как картинку в максимальном разрешении, её можно через Corel Draw отрисовать и превратить в вектор. С g-кодом программы при наличии вектора могу помочь.
-
wormball
- Кандидат
- Сообщения: 40
- Зарегистрирован: 03 сен 2019, 22:33
- Репутация: 1
- Контактная информация:
Re: Волнистость на растре (grbl)
Ну да, похоже, что это наиболее правдоподобное предположение - что grbl неточно синхронизирует время включения\выключения лазера с положением каретки. С другой стороны, не вполне понятно, отчего получаются такие красивые волны.
Вот файлы, ежели вы мне покажете, как их во что-то человеческое превратить, буду признателен.
Пока что лучше всего получается на растре, ежели чёрные области немного уменьшить и рисовать с шагом 0,05 мм (пятно 0,1 мм).
Вектор (dxf) отчего-то выводится так, что часть в виде областей (граница точно по краю), а часть в виде дорожек (линия ровно по центру дорожки), причём ни inkscape, ни lightburn, ни qcad не понимают, какая у дорожек толщина. И плюс ко всему некоторые (не все) области заштрихованы, причём заштрихована медь, тогда как мне надо, напротив, светить по отсутствию меди. Даже галка "негатив" не помогает - она просто рисует прямоугольник вокруг. В итоге сделал svg из гербера при помощи gerbv (хотя можно ещё в pdf печатать) и уже из него сделал растр.
Пробовал заново векторизовать растр и делать несколько обводок - отчего-то в некоторых местах обводки криво рисуются, при том, что с оригинальным вектором всё хорошо (как видно по фотографиям). Ну и заштрихованные области при этом порою вылазят за границы (для чего, собственно, и было нужно несколько обводок).
Вот файлы, ежели вы мне покажете, как их во что-то человеческое превратить, буду признателен.
Пока что лучше всего получается на растре, ежели чёрные области немного уменьшить и рисовать с шагом 0,05 мм (пятно 0,1 мм).
Вектор (dxf) отчего-то выводится так, что часть в виде областей (граница точно по краю), а часть в виде дорожек (линия ровно по центру дорожки), причём ни inkscape, ни lightburn, ни qcad не понимают, какая у дорожек толщина. И плюс ко всему некоторые (не все) области заштрихованы, причём заштрихована медь, тогда как мне надо, напротив, светить по отсутствию меди. Даже галка "негатив" не помогает - она просто рисует прямоугольник вокруг. В итоге сделал svg из гербера при помощи gerbv (хотя можно ещё в pdf печатать) и уже из него сделал растр.
Пробовал заново векторизовать растр и делать несколько обводок - отчего-то в некоторых местах обводки криво рисуются, при том, что с оригинальным вектором всё хорошо (как видно по фотографиям). Ну и заштрихованные области при этом порою вылазят за границы (для чего, собственно, и было нужно несколько обводок).
- Вложения
-
- laser.7z
- (1.86 МБ) 353 скачивания
- Q-starь
- Мастер
- Сообщения: 918
- Зарегистрирован: 04 апр 2011, 16:50
- Репутация: 604
- Настоящее имя: Гэн
- Откуда: Казахстан
- Контактная информация:
Re: Волнистость на растре (grbl)
wormball, а какие ремни? И как ПП настроен? Может округления такие?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Волнистость на растре (grbl)
Просто любому лазеру нужно время от подачи управляющего сигнала до выхода на рабочий режимwormball писал(а):Ну да, похоже, что это наиболее правдоподобное предположение - что grbl неточно синхронизирует время включения\выключения лазера с положением каретки.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
wormball
- Кандидат
- Сообщения: 40
- Зарегистрирован: 03 сен 2019, 22:33
- Репутация: 1
- Контактная информация:
Re: Волнистость на растре (grbl)
Станок такой приблизительно: https://www.aliexpress.com/item/3285062 ... b201603_52 (5500 мВт) Ремни не знаю как точно называются, но, видимо, тоже не шибко дорогие.Q-starь писал(а):wormball, а какие ремни?
ПП - это что?Q-starь писал(а):И как ПП настроен?
Ну, по идее координаты декартовы, так что на строго вертикальных границах округления не должны никак влиять.Q-starь писал(а):Может округления такие?
Не думаю, что ему столько времени надо. Скорость 5000 мм/мин, то бишь 0,1 мм он проходит приблизительно за одну миллисекунду. А у меня одна только вариабельность больше. Шим там 8 кГц вроде как, и довольно чётко на глаз видно, как лазер загорается и потухает. В понедельник ещё раз посмотрю.UAVpilot писал(а):Просто любому лазеру нужно время от подачи управляющего сигнала до выхода на рабочий режим
- Q-starь
- Мастер
- Сообщения: 918
- Зарегистрирован: 04 апр 2011, 16:50
- Репутация: 604
- Настоящее имя: Гэн
- Откуда: Казахстан
- Контактная информация:
Re: Волнистость на растре (grbl)
На них должно быть написано. Если, допустим, MXL ремень, то у него шаг 2,032. А у вас в коде после запятой один знак - то и будет округляться до ближайшего значения . И настройки грбл надо смотреть...wormball писал(а): Ремни не знаю как точно называются, но, видимо, тоже не шибко дорогие.
-
wormball
- Кандидат
- Сообщения: 40
- Зарегистрирован: 03 сен 2019, 22:33
- Репутация: 1
- Контактная информация:
Re: Волнистость на растре (grbl)
Простите, а как это может влиять? Линии-то вертикальные, ежели оно и округлит - то повсюду одинаково.
Настройки:
$0=10 (Step pulse time)
$1=25 (Step idle delay)
$2=0 (Step pulse invert)
$3=5 (Step direction invert)
$4=0 (Invert step enable pin)
$5=0 (Invert limit pins)
$6=0 (Invert probe pin)
$10=1 (Status report options)
$11=0.010 (Junction deviation)
$12=0.002 (Arc tolerance)
$13=0 (Report in inches)
$20=0 (Soft limits enable)
$21=0 (Hard limits enable)
$22=0 (Homing cycle enable)
$23=0 (Homing direction invert)
$24=25.000 (Homing locate feed rate)
$25=500.000 (Homing search seek rate)
$26=250 (Homing switch debounce delay)
$27=1.000 (Homing switch pull-off distance)
$30=255 (Maximum spindle speed)
$31=0 (Minimum spindle speed)
$32=1 (Laser-mode enable)
$100=80.000 (X-axis travel resolution)
$101=80.000 (Y-axis travel resolution)
$102=80.000 (Z-axis travel resolution)
$110=40000.000 (X-axis maximum rate)
$111=40000.000 (Y-axis maximum rate)
$112=40000.000 (Z-axis maximum rate)
$120=1000.000 (X-axis acceleration)
$121=500.000 (Y-axis acceleration)
$122=8000.000 (Z-axis acceleration)
$130=200.000 (X-axis maximum travel)
$131=200.000 (Y-axis maximum travel)
$132=200.000 (Z-axis maximum travel)
Настройки:
$0=10 (Step pulse time)
$1=25 (Step idle delay)
$2=0 (Step pulse invert)
$3=5 (Step direction invert)
$4=0 (Invert step enable pin)
$5=0 (Invert limit pins)
$6=0 (Invert probe pin)
$10=1 (Status report options)
$11=0.010 (Junction deviation)
$12=0.002 (Arc tolerance)
$13=0 (Report in inches)
$20=0 (Soft limits enable)
$21=0 (Hard limits enable)
$22=0 (Homing cycle enable)
$23=0 (Homing direction invert)
$24=25.000 (Homing locate feed rate)
$25=500.000 (Homing search seek rate)
$26=250 (Homing switch debounce delay)
$27=1.000 (Homing switch pull-off distance)
$30=255 (Maximum spindle speed)
$31=0 (Minimum spindle speed)
$32=1 (Laser-mode enable)
$100=80.000 (X-axis travel resolution)
$101=80.000 (Y-axis travel resolution)
$102=80.000 (Z-axis travel resolution)
$110=40000.000 (X-axis maximum rate)
$111=40000.000 (Y-axis maximum rate)
$112=40000.000 (Z-axis maximum rate)
$120=1000.000 (X-axis acceleration)
$121=500.000 (Y-axis acceleration)
$122=8000.000 (Z-axis acceleration)
$130=200.000 (X-axis maximum travel)
$131=200.000 (Y-axis maximum travel)
$132=200.000 (Z-axis maximum travel)
-
wormball
- Кандидат
- Сообщения: 40
- Зарегистрирован: 03 сен 2019, 22:33
- Репутация: 1
- Контактная информация:
Re: Волнистость на растре (grbl)
В исходнике grbl стоял шим 0.98kHz, и на глаз приблизительно столько же. Переставил на 7.8kHz, всё замечательно компилится и прошивается, только фактическая частота не изменилась. Попереставлял частоту несколько раз туда-сюда - всё то же самое.
cpu_map.h
ЧЯДНТ?
cpu_map.h
Код: Выделить всё
// Prescaled, 8-bit Fast PWM mode.
#define SPINDLE_TCCRA_INIT_MASK ((1<<WGM20) | (1<<WGM21)) // Configures fast PWM mode.
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS20) // Disable prescaler -> 62.5kHz
#define SPINDLE_TCCRB_INIT_MASK (1<<CS21) // 1/8 prescaler -> 7.8kHz (Used in v0.9)
// #define SPINDLE_TCCRB_INIT_MASK ((1<<CS21) | (1<<CS20)) // 1/32 prescaler -> 1.96kHz
// #define SPINDLE_TCCRB_INIT_MASK (1<<CS22) // 1/64 prescaler -> 0.98kHz (J-tech laser)
