MicroSlice - лазерный мини станок на ардуино

Лазерные, плазменные станки, газо- и водорезки, плоттеры.
Kopyloff
Мастер
Сообщения: 387
Зарегистрирован: 28 мар 2013, 07:40
Репутация: 117
Настоящее имя: Сергей
Откуда: Первоуральск
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение Kopyloff »

selenur писал(а):Я по схожему принципу на Atmel mega16 делал, но скорость тактов при выполнении движения по дуге не превышало 15кГц, а с учетом микрошага 1/8 больно медленно получалось (мк 8-ми битный), новую версию хочу сделать на Arduino Due, тут уже 32 бита, да и скорость в 6 раз выше, и многие математические операции не 15-20 тактов, а 1 будут занимать :-)
Т.е. Arduino Uno сразу не вариант? Там ATmega328, с той же тактовой частотой 16 МГц, правда памяти в 2 раза больше.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение selenur »

Я когда делал, экономил каждый такт, использовал алгоритм брезенхема для движения, в произвольном направлении по прямой максимум получался примерно 15 кгц, по дуге 10 кгц.
В меге 328 памяти больше, но максимальная скорость такая-же.
Если у драйвера использовал микрошаг не 1/8 а например 1/2 все двигалось быстрее, но моторы гудели.
Поэтому решил сменить платформу :-)
т.к. для хранения координаты 1 байта мало, а 4-х в самый раз, но математические операции резко ухудшали ситуацию, например сложение или вычитание занимает примерно 16 асемблерных комманд, а теперь всего одна получается, в итоге прирост ресурсов во много раз повышается;-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
leprud
Почётный участник
Почётный участник
Сообщения: 348
Зарегистрирован: 01 апр 2014, 19:16
Репутация: 111
Откуда: Москва
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение leprud »

(для просмотра содержимого нажмите на ссылку)
selenur писал(а):Поэтому решил сменить платформу
Уходили б на старшие ARM (или аналоги) тогда.
Хоть пресловутая RaspberryPi, хоть изделия от hardkernel, типа http://www.hardkernel.com/main/products ... 1578608433
Ценники то одинаковы..
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение selenur »

Изучал я эту RaspberryPi, основная проблемма в ней это сложность работы с портом, в плане выдержки необходимых интервалов между дерганьем выводов, сложно выдрживать интервалы, т.к. этим рулит операционка, а ещё мне я любитель хардкора, когда сделав функцию смотрю как она получилась на асемблере, а потом ищу способ как оптимизировать, просто обожаю сам процесс :-)
Плюс у меня аппаратный отладчик для AVR, т.е. ардуино средой не пользуюсь.
Я этим занимаюсь для собственного удовольствия.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Kopyloff
Мастер
Сообщения: 387
Зарегистрирован: 28 мар 2013, 07:40
Репутация: 117
Настоящее имя: Сергей
Откуда: Первоуральск
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение Kopyloff »

selenur писал(а):Я когда делал, экономил каждый такт, использовал алгоритм брезенхема для движения, в произвольном направлении по прямой максимум получался примерно 15 кгц, по дуге 10 кгц.
Я правильно понимаю, что 15 кГц - это уже частота импульсов STEP, уже с учётом вычислений координат в контроллере?
Т.е.: 15 кГц - это 15000 имп/сек.
Двигатель: 1/8 шага, шаг 1,8 град -> 200*8=1600 имп/оборот
За секунду получаем: 15000 / 1600 = 9,375 об/сек
Допустим, швп с шагом 5 мм.
Тогда 9,375 * 5 = 46,875 мм/сек -> 2,8125 м/мин

Я всё правильно посчитал?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение selenur »

ну вроде правильно посчитал, но тут есть еще нюанс в том что это без расчета плавного ускорения и торможения, если добавить то медленнее будет. (станок замучал быстрее чем дописал прошивку :-) )
А если сюда добавить и чтение с sd-карты то совсем печально, т.к. приходится оперировать значениями явно длиной не 1 байт, если использовать сетевой контроллер как источник данных, так-же нехватало немного свободных тактов :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Kopyloff
Мастер
Сообщения: 387
Зарегистрирован: 28 мар 2013, 07:40
Репутация: 117
Настоящее имя: Сергей
Откуда: Первоуральск
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение Kopyloff »

Да уж, печально.. Если б я это делал, то, учитывая мои дилетантские способности к программированию, можно результат по скорости перемещения ещё на 10 поделить. Т.е. скорость была бы примерно 100 мм/мин :)

Значит, ещё и SD-карта тормозит процесс. Это связано только с обработкой данных с SD-карты, или ещё и от класса карты зависит? Поставить 10-й класс, может быстрее будет?
А какие ещё тормозящие факторы встречались? И вообще - использовался ли какой-нибудь сторожевой таймер выполнения программы (типа watchdog драйвера в mach3)? Какой-нибудь контроль зависания программы или превышения времени выполнения одного цикла программы?
leprud
Почётный участник
Почётный участник
Сообщения: 348
Зарегистрирован: 01 апр 2014, 19:16
Репутация: 111
Откуда: Москва
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение leprud »

Kopyloff писал(а):какие ещё тормозящие факторы встречались?
Позволю себе ответить (в свое время под AVR много чего писал)
Банально 8-битная архитектура и основная частота не позволяют сделать кардинально быстрее.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение selenur »

Kopyloff писал(а):Да уж, печально.. Если б я это делал, то, учитывая мои дилетантские способности к программированию, можно результат по скорости перемещения ещё на 10 поделить. Т.е. скорость была бы примерно 100 мм/мин :)

Значит, ещё и SD-карта тормозит процесс. Это связано только с обработкой данных с SD-карты, или ещё и от класса карты зависит? Поставить 10-й класс, может быстрее будет?
А какие ещё тормозящие факторы встречались? И вообще - использовался ли какой-нибудь сторожевой таймер выполнения программы (типа watchdog драйвера в mach3)? Какой-нибудь контроль зависания программы или превышения времени выполнения одного цикла программы?
1) Нет смысла использовать карту памяти более скоростную, т.к. на процесс выполнения движения моторами тратиться больше времени (у меня по крайней мере).
2) watchdog имеет смысл если есть непредсказуемые зависания, или это уже законченный продукт :-)
3) например в 3Д принтерах программа делает движения такие, что-бы по возможности движение было лишь по 1-й оси, благодаря чему, не требуется математика вычисления пропорций движений по одновременному движению по нескольким осям.
leprud писал(а):
Kopyloff писал(а):какие ещё тормозящие факторы встречались?
Позволю себе ответить (в свое время под AVR много чего писал)
Банально 8-битная архитектура и основная частота не позволяют сделать кардинально быстрее.
Абсолютно согласен. :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Kopyloff
Мастер
Сообщения: 387
Зарегистрирован: 28 мар 2013, 07:40
Репутация: 117
Настоящее имя: Сергей
Откуда: Первоуральск
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение Kopyloff »

Спасибо за информацию! Очень ценная и интересная инфа.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: MicroSlice - лазерный мини станок на ардуино

Сообщение Сергей Саныч »

Kopyloff писал(а):Поставить 10-й класс, может быстрее будет?
Не будет. Класс карты имеет отношение к скорости записи на нее. Скорость чтения в микроконтроллерных решениях ограничена программной реализацией SPI-интерфейса, необходимостью обработки файловой системы (а не просто тупого последовательного чтения). Все это еще и отнимает ресурсы процессора, а их и так маловато.
Чудес не бывает. Бывают фокусы.
Ответить

Вернуться в «Лазерные, плазменные и другие раскроечные станки»