Помощь в осмыслении.

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Есть проект GRBL под STM32. Удалить лишние оси и добавить обработку кнопок с чтением профилей с флешки.
И получится монстр:) для одной оси.
Понимаю что изобретаю велосипед. Стараюсь сделать все сам.
Реклама
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

ну... тоже верно. если от этого есть удовольствие и опыт
Реклама
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Вот потренируюсь и начну делать другого монстра:)
Хочу соединить установку HLDI по засветке фоторезиста с ЧПУ. Один контроллер на все с выбором режимов работы.
Загружаешь Gerber и работаешь.
Плюсы Компактность, Один станок значит и меньше расхождений при экспонировании, сверлении.
Но это пока лишь мечты.
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

точно, засыпать в него горсть компонентов, на выходе спаянная плата :)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Помощь в осмыслении.

Сообщение Just_Fluffy »

Nranddek писал(а):точно, засыпать в него горсть компонентов, на выходе спаянная плата
Это уже не станок, а живой китаец получается )))))
Муркиз писал(а):Ни лазеров, ни гидропробивки нет...
Что то мне подсказывает, что если б эта технология была выгодна, то китайские заводы (где горсть плат за 2 бакса делают) об этом кричали на каждом углу своих сайтов... Ан нет... Пишут, что от какого то минимального до какого то максимального диаметра drilling сверлами стандартных метрических и имперских диаметров.. А свыше максимального диаметра грызут фрезой (CNC routed from a smaller drilled hole)...
И нигде ни слова про лазер ни про клизму гидропробивку...
Кстати, а как на современных заводах с лазером борятся с обугливанием краев отверстия... Лазер же прожигать должен...
Белая и Пушистая
Реклама
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

а может и не борются, а наоборот, используют для последующего омеднения... надо узнать. но вроде, краем уха слышал, что там от эффективности продувки зависит
Реклама
Аватара пользователя
Муркиз
Друг Кота
Сообщения: 25763
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Re: Помощь в осмыслении.

Сообщение Муркиз »

Вы не путайте массовое производство и гаражное, где делают платы на заказ частникам.

А крупные заводы все - молчуны. Они не любят выставлять напоказ свои секреты.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Помощь в осмыслении.

Сообщение Just_Fluffy »

ну так не одними отверстиями под детали плата жива... Крепежные тоже есть... Их от лазера потом чистить надо... Лазер - это локальный нагрев платы, он как прогар - может быть электропроводным. Да и характеристики материала поменять может. а композит платы - он же с определенными характеристиками должен быть, которые перегрев может испортить, не?

ну и если б эта технология была удобна - то явно б китаезы не шифровались. А наоборот, писали б - Super precision LASER drilling technology!

и я не знаю, кроме сквозных отверстий на многослойках и глухари бывают... Сверление дает прогнозируемую и повторяемую точность по глубине сверления... А гидролазер?...
Муркиз писал(а): крупные заводы все - молчуны. Они не любят выставлять напоказ свои секреты.
ну как бы технология если успешна, то шила в мешке утаить нельзя. Но как по мне - CNC и drilling - пока самые дешевые технологии с повторяемым результатом
Белая и Пушистая
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

Так ведь нагрев - процесс медленный. А если ещё и материал не очень теплопроводный... Полагаю, при мощном лазере и с мощной продувкой там нагрев очень и очень локальный.
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Все эти потуги направлены на изучение и практику.
Для конкретной сверлилки. Избыточно.
Это 47 исправление прошивки.
Над пива с неделю попить. А то устал уже:)

Теперь в прошивке:
Удалён Peck Drill.
Есть режимы Drill и DrillPCB.
Управление перемещениями через меню, кнопки UP/DOWN убраны.
Добавлены параметры: speedMoveUp, speedMoveDown, acceleration.
Функция движения переработана: раздельные скорости вверх/вниз + плавный разгон/торможение.
В меню доступны настройки скоростей и ускорения, а также пункт Set Drill Start (сохранение текущей позиции в EEPROM).
Параметры по умолчанию:

Скорость UP: 150-300 мм/мин
Скорость DOWN: 80-150 мм

Структура Config:

struct Config {
// Существующие параметры
float speedMoveDrill;
float speedMovePCB;

// Новые параметры
float speedMoveUp; // скорость движения вверх
float speedMoveDown; // скорость движения вниз
float acceleration; // ускорение в мм/с²

// Остальные параметры...
};
Модификации функции движения:

void moveToPositionMM(float target_mm) {
float current_mm = stepsToMM(stepper.currentPosition());
float speed_mm_min;

// Определение направления движения
if (target_mm > current_mm) {
speed_mm_min = cfg.speedMoveUp;
} else {
speed_mm_min = cfg.speedMoveDown;
}

// Конвертация параметров движения
float speed_steps_sec = mmPerMinToStepsPerSec(speed_mm_min);
float accel_steps_sec2 = cfg.acceleration * stepsPerMM;

// Настройка параметров шагового двигателя
stepper.setMaxSpeed(speed_steps_sec);
stepper.setAcceleration(accel_steps_sec2);

// Выполнение движения
long tgt = mmToSteps(target_mm);
stepper.moveTo(tgt);
while (stepper.distanceToGo() != 0) {
// Проверки на концевики
if (digitalRead(PIN_Z_MIN) == LOW && stepper.distanceToGo() < 0) {
emergencyStop("Z-min");
return;
}
if (digitalRead(PIN_Z_MAX) == LOW && stepper.distanceToGo() > 0) {
emergencyStop("Z-max");
return;
}
stepper.run();
}
}
Изменения в интерфейсе
Обновленное меню:

const char* speedsMenu[] = {
"1. Скорость UP",
"2. Скорость DOWN",
"3. Скорость Drill",
"4. Скорость PCB",
"5. Ускорение",
"6. Возврат"
};
Обработка выбора в меню:

switch(selectedItem) {
case 1: // Скорость UP
menuEditFloat("Speed UP (mm/min)", cfg.speedMoveUp, 1.0f, 10.0f, 3000.0f);
break;
case 2: // Скорость DOWN
menuEditFloat("Speed DOWN (mm/min)", cfg.speedMoveDown, 1.0f, 10.0f, 3000.0f);
break;
case 3: // Скорость Drill
menuEditFloat("Speed Drill (mm/min)", cfg.speedMoveDrill, 1.0f, 10.0f, 3000.0f);
break;
case 4: // Скорость PCB
menuEditFloat("Speed PCB (mm/min)", cfg.speedMovePCB, 1.0f, 10.0f, 3000.0f);
break;
case 5: // Ускорение
menuEditFloat("Acceleration (mm/s²)", cfg.acceleration, 10.0f, 50.0f, 500.0f);
break;
}

Планирую переход на TFT ST7789V 240×320 (SPI, 7 pin) - По цене даже дешевле чем LCD 2004.

ST7789V TFT — TFT-дисплей 240×320 с интерфейсом SPI.
7 пинов: VCC, GND, SCL, SDA, RES, DC, CS.

Буду использовать:

TFT_eSPI (поддерживает STM32).

Код инициализации (пример для Adafruit_ST7789)
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>

// Подключение SPI пинов STM32 → ST7789V
#define TFT_CS PB12
#define TFT_RST PB13
#define TFT_DC PB14

Adafruit_ST7789 tft = Adafruit_ST7789(&SPI, TFT_CS, TFT_DC, TFT_RST);

void setup() {
tft.init(240, 320); // разрешение
tft.setRotation(1); // поворот 0-3
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK);
tft.setTextSize(2);
tft.setCursor(0,0);
tft.print("Drill Controller");
}

Изменения логики меню

Все вызовы lcd.print() заменить на tft.print().
Установка курсора lcd.setCursor(col,row) → на tft.setCursor(x,y) (в пикселях).
Размер символов задаётся tft.setTextSize(n) (например, n=2 для удобного чтения).
Аватара пользователя
Муркиз
Друг Кота
Сообщения: 25763
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Re: Помощь в осмыслении.

Сообщение Муркиз »

Позиционные двигатели шаговые ? Редукторные ?
Шаг с пикселом синхронизирован ?

А если на аналоговых движках - то датчиков перемещения ?
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Использую шаговый двигатель.
Количество шагов автоматически пересчитывается в соответствии с выставленным микрошагом.
1/1 -200 шагов. 1/16 =200х16 = 3 200 шагов. на оборот.
Пример: двигатель работает с расчётом, что один шаг равен 1,8 градуса, полный оборот двигателя (360 градусов) будет совершён за 200 шагов.
Если переключиться на микрошаговый режим 1/16, то количество шагов на оборот составит 3200 (200 × 16)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Помощь в осмыслении.

Сообщение Just_Fluffy »

Zauruss34, а кнопка/педаль "начать сверление" есть? Или каждая дырка через меню?

PS. Научитесь прятать простыни своего кода под спойлер + тут есть блок code, который делает текст моноширинным, вроде даже с автоформатированием..
Белая и Пушистая
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Just_Fluffy, Прошу прощения. Исправлюсь.
Кнопка Drill -Ручное сверление.
Кнопка DrillPCB - автомат (после сверления возврат в стартовую позицию = +2мм от поверхности платы - СТОП шпиндель).
Педалька запланирована.
Осталось 3 кнопки:
2 режима сверления и кнопка смены инструмента.
Всё остальное в меню (используется только для настроек).

Пока чищу от режима Peek. Ибо как оказалось только мешает.
Собрал все в кучу:
Вроде прошилось и пока не отваливается:)
Скетч использует 38044 байт (58%) памяти устройства. Всего доступно 65536 байт.
Глобальные переменные используют 1792 байт (8%) динамической памяти, оставляя 18688 байт для локальных переменных. Максимум: 20480 байт.
До этого проверял кусками.
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Помощь в осмыслении.

Сообщение Just_Fluffy »

вот как по мне - все эти режимы для _ручной_ сверлилки только мешают. Удобнее всего рукоятка - ею и скорость подачи регулируется, и обратная связь чувствуется... И бегом назад вернуться, если прицелился плохо... А вот такие изыски нужны только если потом это будет полноценный CNC...

Кстати, если будете делать педаль, то сделайте немедленное поднятие шпинделя при отпускании педали. Те. пока нажата педаль - шпиндель идет в нижнюю точку. Далее - ну либо сам поднимается, либо ждет отпускания педали (это можно в настройки вынести). А если педаль отпущена в процессе опускания шпинделя - немедленно поднять его вверх. Тогда при случайном нажатии педали или при плохом прицеливании снизится шанс получить незапланированное отверстие в неправильном месте
Белая и Пушистая
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

Можно сделать две педали, их сложнее случайно нажать :)
Аватара пользователя
Just_Fluffy
Вымогатель припоя
Сообщения: 532
Зарегистрирован: Ср июн 29, 2022 16:25:45

Re: Помощь в осмыслении.

Сообщение Just_Fluffy »

тогда три :)
и селектор режимов сверления справа
"...плачет девушка в беемве...
педалек три, а ножек две..."
Белая и Пушистая
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Just_Fluffy,

При нажатии кнопки BTN_DRILL (PA3): (Ручное сверление)

Процесс сверления:
Включается шпиндель с мощностью, заданной в конфигурации (cfg.speedPWMDrill)
Происходит движение вниз с заданной скоростью (cfg.speedDrillDrill)
Шаг движения вниз составляет 0.2 мм

Движение прекращается при:
Достижении нижнего предела (surface_mm - maxManualDepth)
Отпуске кнопки
аварийной ситуации

Завершение операции:
После отпускания кнопки или достижения предела:
Происходит возврат в стартовую позицию (posDrillStart)
Отключается шпиндель

Я понимаю что то что я делаю избыточно.
Но для мастерских где часто производят сверление думаю оправданно.
В том числе и режим peck drill для всех режимов сверления.
А скоростью шпинделя на больших сверлилках можно рулить частотником (0-10v, 4-20ma)
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: Помощь в осмыслении.

Сообщение Nranddek »

[uquote="Zauruss34",url="/forum/viewtopic.php?p=4742085#p4742085"]Но для мастерских где часто производят сверление думаю оправданно.[/uquote]Сомнительно. Для них будет более оправданно купить за 10-15 тысяч маленький CNC3018, или дороже, но побольше, или ещё дороже и ещё больше и т.д.
Аватара пользователя
Zauruss34
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Сб авг 16, 2025 20:33:24

Re: Помощь в осмыслении.

Сообщение Zauruss34 »

Nranddek, Смотря что сверлить. При цене управляющей платы + детальки вместе с педалью не более 10 долларов. Вопрос о приобретении нового оборудования и стоять не будет.
CNC3018 уже за бюджет вылез. А если сверлить сталь 5мм то уже и не годится. Все что надёжно и может сверлить от 5мм сильно дороже.
Сверлильный станок с автоподачей шпинделя и регулировкой оборотов начинается от 200000 р.
Либо полноценный ЧПУ станок по металлу.
Ответить

Вернуться в «ARM»