ПОЛЕЗНО GRBL Commander - автономный контроллер на ESP32

    Рекомендованный
  • #811
  • Последнее редактирование:
Последнее редактирование:
+
напечатал коробку под девайс (как раз остался комплект плат от экспериментов) для дисплея 2004D (уменьшенный 2004А).
Box_1.pngBox_2.jpg
Если всё запихается нормально, добавлю STL-ки в папку проекта.
Под 2004А, возможно тоже дорисую.
В общем, код и хэлп немного "причешу" и можно будет потестить версию 1.5
 
Дополнительный ролик к этому посту.
 
Посетила меня завиральная идея, навеянная роликом этого камрада.

где он использует реперные отверстия, для выравнивания G-кода по изделию на промежуточных этапахс помощью своей софтины.
У меня сейчас можно с помощью "пробинга" по X определить угол "наклона" заготовки относительно оси Y и выполнить поворот УП относительно рабочего 0 на измеренный или пользовательский угол в пределах +/-90 град.
А если добавить в диалог поворота возможность ввода координат пары реперных отверстий (не четырёх, как в ролике), по ним рассчитать угол поворота и повернуть УП на этот угол, то, КМК, получится что-то аналогичное.
Не?
Или в палату №6 меня? :)
 
Посетила меня завиральная идея, навеянная роликом этого камрада.

где он использует реперные отверстия, для выравнивания G-кода по изделию на промежуточных этапахс помощью своей софтины.
У меня сейчас можно с помощью "пробинга" по X определить угол "наклона" заготовки относительно оси Y и выполнить поворот УП относительно рабочего 0 на измеренный или пользовательский угол в пределах +/-90 град.
А если добавить в диалог поворота возможность ввода координат пары реперных отверстий (не четырёх, как в ролике), по ним рассчитать угол поворота и повернуть УП на этот угол, то, КМК, получится что-то аналогичное.
Не?
Или в палату №6 меня? :)

Весчь конечно интересная. Хотя я практически не сталкивался с проблемами при перевороте двухслойных плат. Смещения бывают, но не критичными. Но в любом случае это интересно, и возможно это даже как то связать с G68 и соответствующим макросом ( поворот на угол) в Визуализаторе. Короче, проблема требует изучения.... до встречи в Палате №6 :)
 

У нас новые пациенты в палате №6 ? :cautious:

оффтоп
 
Хотя я практически не сталкивался с проблемами при перевороте двухслойных плат.
Дело не в перевороте. Обмусоливаю идею засветки ФР на лазернике (отдельном), там же можно и с маской поэкспериментить, а вот обрезка и сверление уже на фрезерном. Тут, как раз и встаёт вопрос о совмещении всей этой фигни - потеря 0 детали и потеря положения её в пространстве. В общем, просто надо проэкспериментить, я уже расширил диалог до такого состояния -
IMG_20250412_104235.jpg
со вводом по выбору п.3 координат точек, расчётом угла и разворотом G-кода.
теперь только "и опыт, сын ошибок трудных" :)
Ваши сообщения автоматически объединены:

У нас новые пациенты в палате №6 ?


Пока пустует, но шиза штука такая, она не дремлет :)
IMG_20250126_191526_690.jpg

оффтоп
 
где он использует реперные отверстия, для выравнивания G-кода по изделию на промежуточных этапахс помощью своей софтины.
У меня сейчас можно с помощью "пробинга" по X определить угол "наклона" заготовки относительно оси Y и выполнить поворот УП относительно рабочего 0 на измеренный или пользовательский угол в пределах +/-90 град.
А если добавить в диалог поворота возможность ввода координат пары реперных отверстий (не четырёх, как в ролике), по ним рассчитать угол поворота и повернуть УП на этот угол, то, КМК, получится что-то аналогичное.
Не?

Да прибудут с тобой ChatGPT с DeepSeek :ninja:

оффтоп
 
Да прибудут с тобой ChatGPT с DeepSee
Штуки полезные, но в данном случае без надобности.
Сделал простую УП, состоящую из пары пятаков D3мм, 4х реперных отверстий и пары отверстий в пятаках - все по 0.8мм.
Реперные отверстия смещены по периметру платы на 5 мм, а на левое нижнее отверстие назначил дом и 0 УП.
(совмещать их - это отдельная песня и все слова в ней будут нецензурными)
Bilderman 2025.04.12 14-32-04.png
Далее, закрепил огрызок стеклотекстолита и сперва нарезал пятаки, затем просверлил реперные отверстия.
IMG_20250412_135257.jpg
потом перевернул плату и по левому нижнему реперу на глаз выставил сверло, обнулил оси XY
IMG_20250412_142420.jpg
затем перегнал ко второму отверстию и записал его координаты. Выбрал УП сверления и запустил поворот G-кода по координатам [0.0, 0.0] и [0.298, 30.130], получил угол поворота (надо же, почти в 0 градусов попал на глаз :))
IMG_20250412_142841.jpg
Отсверлился
IMG_20250412_142945.jpg
Переворачиваем и смотрим
IMG_20250412_143030.jpg
Как бы, вот...
 
OlegK, мне это напоминает в Chipmaker. ru разработку "электронной гитары", где без оЧПУшивания токарника, но, однако, на микроконтроллере, с управления продольным винтом, надобавляли кучу автоматических функций, со всякими подменю, аж все органы управления не вмещаются на панель управления. Таков итог 8-летних изысканий.
 
Таков итог 8-летних изысканий.
Ну, у мене ещё только 3+ года прошло, есть куда стремицца :)
Оно, то, что нужно оперативно - под рукой, то, что не особо нужно - подальше, в меню, вроде не мешается ничего...
Да и ничего больше пока не планирую добавлять, мне всего хватает.
 
Дело не в перевороте. Обмусоливаю идею засветки ФР на лазернике (отдельном), там же можно и с маской поэкспериментить, а вот обрезка и сверление уже на фрезерном. Тут, как раз и встаёт вопрос о совмещении всей этой фигни - потеря 0 детали и потеря положения её в пространстве. В общем, просто надо проэкспериментить, я уже расширил диалог до такого состояния -
IMG_20250412_104235.jpg
со вводом по выбору п.3 координат точек, расчётом угла и разворотом G-кода.
теперь только "и опыт, сын ошибок трудных" :)
Я вот тоже, насмотрелся на взрослые станки, на днях набросал простенькую программку на pythone для пересчета координат.
Пока рассматриваю разные варианты... и с посчитанным углом и с измеренными точками, чтобы угол считался в программе, даже траектории рисуются...
А тут такая красота! нужно срочно обновлять прошивку пульта - есть ли?
 
нужно срочно обновлять прошивку пульта - есть ли?
Всё вышеописанное, с поста #800, будет в версии 1.5, я её ещё не выкладывал, вроде предварительно всё опробовал, осталось самое нелюбимое - писанина хэлпа, думаю, к концу месяца сподоблюсь закончить. А если нет, то выложу без хэлпа :)
Ещё сделал рисунок варианта платы на ESP32 Wroom 32U - она с внешней антенной, но чуть различается по распиновке - это для "дальнобойности" вафли, просто хотел попробовать, ибо она у меня есть.
Bilderman 2025.04.12 15-32-09.png
 
Штуки полезные, но в данном случае без надобности.
Сделал простую УП, состоящую из пары пятаков D3мм, 4х реперных отверстий и пары отверстий в пятаках - все по 0.8мм.
Реперные отверстия смещены по периметру платы на 5 мм, а на левое нижнее отверстие назначил дом и 0 УП.
(совмещать их - это отдельная песня и все слова в ней будут нецензурными)
Bilderman 2025.04.12 14-32-04.png
Далее, закрепил огрызок стеклотекстолита и сперва нарезал пятаки, затем просверлил реперные отверстия.
IMG_20250412_135257.jpg
потом перевернул плату и по левому нижнему реперу на глаз выставил сверло, обнулил оси XY
IMG_20250412_142420.jpg
затем перегнал ко второму отверстию и записал его координаты. Выбрал УП сверления и запустил поворот G-кода по координатам [0.0, 0.0] и [0.298, 30.130], получил угол поворота (надо же, почти в 0 градусов попал на глаз :))
IMG_20250412_142841.jpg
Отсверлился
IMG_20250412_142945.jpg
Переворачиваем и смотрим
IMG_20250412_143030.jpg
Как бы, вот...
Олег, попробуй считать угол по методу наименьших квадратов, что позволяет существенно уменьшить ошибку его измерения. Минимальное количество точек измерений = 3.
C++:
void line_approximation(double x[], double y[], int np, double &a, double &b, double &rms, double &angDeg, double &angErr) {
//approximates y(x) data by line y=ax+b with minimum rms. Returns a, b, rms, angDeg, angErr
/*--------usage-----
 crdX[msrPoints], crdY[msrPoints], msrPoints;//input
 double a, b, rms, angDeg, angErr; //output
 line_approximation(crdX, crdY, msrPoints, a, b, rms, angDeg, angErr);
 angRad = angle * M_PI / 180.0;
*/
  double xi = 0, x2i = 0, xiyi = 0, yi = 0, y2i = 0, s2 = 0;
  int i;
 
  for (i = 0; i < np; ++i) {
    xi += x[i]; yi += y[i];
    x2i += x[i] * x[i]; y2i += y[i] * y[i];
    xiyi += x[i] * y[i];
  }
  b = (xiyi*xi - x2i * yi) / (xi*xi - (double)np * x2i);
  a = (yi - (double)np*b) / xi;
  for (i = 0; i < np; ++i) {
    s2 += (a*x[i] + b - y[i])*(a*x[i] + b - y[i]);
  }
  rms = sqrt(s2) / (double)np;
  if (a < 0.0 && abs(a)>1.0) angDeg = atan((long double)a)*180.0 / M_PI + 180.0; else angDeg = atan((long double)a)*180.0 / M_PI;  
}
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать