Перейти к содержанию
evilruff

Управление фрезерным станком на Atmega

Рекомендуемые сообщения

Решил я открыть тему, аналогичную теме в токарных станках. 

Все началось с того, что я начал прикручивать автоподачу на свой WM25 и понял, что из того что есть под рукой в плане электроники все как то не совсем то что нужно.. SPC-02 самое близкое к тому что хотелось, но ряд вещей как то не зашел поэтому начал свой проект.. итак

Комплектация

Платфорам            - Arduino Uno R3

Индикация/кнопки -  Led&Key

Джойстик с фиксацией - одна ось - ручная подача, вторая ось - выбор режима Step, Mpg, автоподача.. в таком варианте есть защита от включения автоподачи в режимах где она не предусмотрена.

Энкодер с кнопкой - настройка режимов

Энкодер 100 шагов - для MPG/Step

Концевые выключатели

Функционал

- Подача с заданной скоростью до концевика, также планирую сделать "электронные концевики" - переехали куда-то, запомнили положение ограничителя

- Режим Step по заданным параметрам винта

- Режим Mpg

Все настройки через меню, никаких простыней дефайнов в исходниках

Кнопки на Led&Key могут служить для запоминания позиций с быстрыми возвратами, так же для запоминания пользовательских скоростей подач

Настройка шага винта, люфта (не уверен что будет хорошо работать, надо пробовать на станке.. есть DRO поэтому можно будет поиграться)...

Настройка параметров разгона, торможения

Настройка параметров драйвера - задержка Dir, ширина Step, максимальной частоты, минимальной частоты старта, торможения..

Технологии

- Базовые функции через меню, тонкие настройки через регистры по аналогии с тем как сделано в шпиндельных инверторах

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

- Все энкодеры и кнопки с программным подавлением дребезга

 

Текущее состояние

ПО готово вообщем-то на процентов 90%, добиваю меню, тестирую.. Параллельно проектирую корпус - материал будет скорее всего сталь со вставками для индикаторной панели и контроллера напечатанные на 3D принтере.. Маркировка самоклеющейся пленкой 3M.. 

Исходники, прошивки буду доступны на github, но сразу скажу - все сделано на обычной Atmel Studio без всяких ардуиновских приблуд, порты забиты под завязку, поэтому отладка только через DebugWire, хотя залиться можно будет и через обычный ISP.. 

800 шагов на оборот, уверенно крутиться на 12KHz - 900RPM.. судя по осциллографу вполне можно поднять до 15-17 KHz, запас по объему кода и частоты в прерывании вполне себе приличный.. 

Буду рад мнениям, комментариям, пожеланиям.

Планы

На базе этого же ядра и исходников планирую свой вариант модуля для автоподачи на токарный

 

 

 

 

 

 

20201015_105340.jpg 

c3.png 

c2.png 

c1.png 

Поделиться сообщением


Ссылка на сообщение

Весьма похвальный порыв - делиться  с сообществом подобными разработками! На мой взгляд необходимо переходить на больший контроллер, хотелки неизбежно  приведут к этому, а портов свободных уже нет. И самое главное организовать синхронную подачу, а вот как синхронизироваться вопрос открытый... Ставить энкодер на шпиндель - вариант трудно осуществимый. Я вижу так: у меня на фрезере BLCD мотор, в нём явно присутствуют датчики хола, сколько импульсов на оборот не известно (боюсь что не густо..). В некоторых моделях стоят энкодеры тахометров, но там тоже не богато с количеством импульсов на оборот. Вот необходимо придумать алгоритм относительной (нам же не резьбу нарезать) синхронизации по малому количеству импульсов.

Поделиться сообщением


Ссылка на сообщение
8 часов назад, Ифкин67 сказал:

Весьма похвальный порыв - делиться  с сообществом подобными разработками! На мой взгляд необходимо переходить на больший контроллер, хотелки неизбежно  приведут к этому, а портов свободных уже нет. И самое главное организовать синхронную подачу, а вот как синхронизироваться вопрос открытый..

Спасибо на добром слове! На самом деле можно легко перейти на 2560, просто пока хватает, а там посмотрим, быстрее все равно не станет...три порта еще есть (rx/tx и один пин у меня мигает просто, я по нему оцениваю частоту main loop, чтобы понять загрузку фактическую микроконтроллера), можно в целом отказаться от концевиков механических скоммутировав их просто через Enable и оставив только "цифровые".. уже 5 будет.. собственно это была одна из причин почему я не стал ставить стандартную панель с двух или четырех строчным индикатором.. много занимает, а кнопок-индикации мало получается... на мой вкус панель с семи-сегментниками + 8 led + 8 кнопок гораздо функциональнее на трех портах.

А можно попросить сформулировать требования к синхронной подаче? просто для себя я планирую добавить в прошивку "калькулятор" подач.. я так как начинающий фрезеровщик, мне бывает сложно превратить подачи на зуб, диаметр, скорость вращения в подачу.. поэтому я добавлю режим калькулятора, где задаешь обороты, число зубов, диаметр фрезы и подачу на зуб которая собственное берется уже из справочника для материала и она пересчитает в фактическую подачу от которой можно уже будет подстраиваться... 

Поделиться сообщением


Ссылка на сообщение
9 часов назад, evilruff сказал:

быстрее все равно не станет..

Ну чтобы стало быстрее можно на Cortex M перейти, хоть бы и на атмелевский, оставшись в той же среде разработки. Вопрос только в том - даст ли это что то на развитие.

Поделиться сообщением


Ссылка на сообщение

Во первых, синхронная подача позволит избежать аварийных ситуаций когда вдруг перестаёт вращаться шпиндель (перегрузка двигателя, обрыв ремня, поломка шестерни и т.д.), во вторых, имея точную подачу на оборот мы продлеваем срок службы режущему инструменту (особенно актуально для твердосплава), в третьих имеем высокое качество обработанной поверхности. В эл. гитаре Олега используется энкодер с 1800 имп/об. (оптимально) что без проблем обеспечивает очень точную синхронизацию. А вот синхронизироваться по (допустим) 10 импульсам - задача не тривиальная. Надо как-то измерять длительность каждого импульса и согласно этой длительности выдавать пачку на шаговик с определённой скважностью, и так каждый импульс энкодера...

Поделиться сообщением


Ссылка на сообщение
1 час назад, Velund сказал:

Ну чтобы стало быстрее можно на Cortex M перейти, хоть бы и на атмелевский, оставшись в той же среде разработки.

Спасибо за совет, я честно говоря пока не вижу недостатка в производительности, ну и в целом задел есть еще по оптимизации..  но буду имень ввиду.. просто у меня с авр очень давняя почти 20 летняя любовь ;)))

Поделиться сообщением


Ссылка на сообщение
1 час назад, Ифкин67 сказал:

А вот синхронизироваться по (допустим) 10 импульсам - задача не тривиальная. Надо как-то измерять длительность каждого импульса и согласно этой длительности выдавать пачку на шаговик с определённой скважностью, и так каждый импульс энкодера..

Мне как то пока больше нравится вариант попробовать тогда уж внешний энкодер поставить.. для обработки именно аварийных режимов мне кажется и 10 импульсов на оборот хватит.. надо подумать =)

Поделиться сообщением


Ссылка на сообщение

Если ставить энкодер, то и разрабатывать ничего не надо, в эл. гитаре Олега весь функционал с избытком...

Поделиться сообщением


Ссылка на сообщение
1 час назад, Ифкин67 сказал:

Если ставить энкодер, то и разрабатывать ничего не надо, в эл. гитаре Олега весь функционал с избытком...

мне интересно сделать самому =)

Поделиться сообщением


Ссылка на сообщение
6 часов назад, evilruff сказал:

мне интересно сделать самому =)

Мне тоже было интересно сделать все самому. Когда было 20-25 и казалось что жизни еще - завались. ;) А сейчас, перевалив за полтинник, мнение резко поменялось. ;) Жалею, что не поменялось раньше, сколько бы полезного еще успел вместо "изобретения своего варианта велосипеда". ;)

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Velund сказал:

Мне тоже было интересно сделать все самому. Когда было 20-25 и казалось что жизни еще - завались

Да мне тоже не 20 и даже 25, но я программирую всю сознательную жизнь и в данном случае металлобработка это как раз хобби.. поэтому мой проект это личное мнение на прикладную проблему в свободное время.. я с огромным уважением отношусь к творчеству других, но в данном случае тема открыта как отдельный проект и очень надеюсь будет так и развиваться..

Поделиться сообщением


Ссылка на сообщение
6 минут назад, evilruff сказал:

но в данном случае тема открыта как отдельный проект

Я не либерал, и не буду оспаривать право каждого идти в ад своим путем, даже если он с моим не совпадает. ;)

Но, думаю, когда смените первую пару износившихся на отладке ходовых винтов - мое предложение покажется чуть более приемлемым. ;)

Поделиться сообщением


Ссылка на сообщение
12 часов назад, evilruff сказал:

Спасибо за совет, я честно говоря пока не вижу недостатка в производительности, ну и в целом задел есть еще по оптимизации..  но буду имень ввиду.. просто у меня с авр очень давняя почти 20 летняя любовь ;)))

ну как бы можно в аттини упихать с запасом, если всю критику переписать

Поделиться сообщением


Ссылка на сообщение
11 часов назад, Dmitriy.A. сказал:

ну как бы можно в аттини упихать с запасом, если всю критику переписать

Сорри, не понял видимо я юмора.. 

 

11 часов назад, Velund сказал:

Но, думаю, когда смените первую пару износившихся на отладке ходовых винтов

Ну сносится - значит поменяю ;) 

Поделиться сообщением


Ссылка на сообщение
23 часа назад, evilruff сказал:

Ну чтобы стало быстрее можно на Cortex M перейти, хоть бы и на атмелевский, оставшись в той же среде разработки.

 

43 минуты назад, evilruff сказал:
11 часов назад, Dmitriy.A. сказал:

ну как бы можно в аттини упихать с запасом, если всю критику переписать

Сорри, не понял видимо я юмора.. 

что бы стать быстрее нужно просто не делать лишнего. и тогда хватит производительности простенького контроллера.

Поделиться сообщением


Ссылка на сообщение
В 16.10.2020 в 10:38, Velund сказал:

Ну чтобы стало быстрее можно на Cortex M перейти

Ну какой Кортекс?, AVR-ка вполне может Мегагерцами шагать, надо только изначально корректно продумать, на ось - свой таймер, войля, 8Мгц потолок шагания, при пропускной драйвера 200кГц, ресурсы процессора на 99% свободны, т.е. он вообще ничего не делает,что 16мГц, что 72,, что 8бит, что 64, до фонаря, при смене режима разовое вычисление подачи и разовый вывод на дисплей.

Поделиться сообщением


Ссылка на сообщение
1 час назад, Олег А. сказал:

Ну какой Кортекс?, AVR-ка вполне может Мегагерцами шагать

Ну я пока тоже причин для замены не вижу.. посмотрим.. на следующей неделе исходники выложу ну и какие то примеры работы

Поделиться сообщением


Ссылка на сообщение

Проект в рамках бегалки туда-сюда, вполне интересно.

А все остальное то проще уж  копеечный комп с Linuxcnc со всеми его плюшками.

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...

Важная информация

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