Т.е. Arduino Uno сразу не вариант? Там ATmega328, с той же тактовой частотой 16 МГц, правда памяти в 2 раза больше.selenur писал(а):Я по схожему принципу на Atmel mega16 делал, но скорость тактов при выполнении движения по дуге не превышало 15кГц, а с учетом микрошага 1/8 больно медленно получалось (мк 8-ми битный), новую версию хочу сделать на Arduino Due, тут уже 32 бита, да и скорость в 6 раз выше, и многие математические операции не 15-20 тактов, а 1 будут занимать
MicroSlice - лазерный мини станок на ардуино
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Я когда делал, экономил каждый такт, использовал алгоритм брезенхема для движения, в произвольном направлении по прямой максимум получался примерно 15 кгц, по дуге 10 кгц.
В меге 328 памяти больше, но максимальная скорость такая-же.
Если у драйвера использовал микрошаг не 1/8 а например 1/2 все двигалось быстрее, но моторы гудели.
Поэтому решил сменить платформу
т.к. для хранения координаты 1 байта мало, а 4-х в самый раз, но математические операции резко ухудшали ситуацию, например сложение или вычитание занимает примерно 16 асемблерных комманд, а теперь всего одна получается, в итоге прирост ресурсов во много раз повышается;-)
В меге 328 памяти больше, но максимальная скорость такая-же.
Если у драйвера использовал микрошаг не 1/8 а например 1/2 все двигалось быстрее, но моторы гудели.
Поэтому решил сменить платформу
т.к. для хранения координаты 1 байта мало, а 4-х в самый раз, но математические операции резко ухудшали ситуацию, например сложение или вычитание занимает примерно 16 асемблерных комманд, а теперь всего одна получается, в итоге прирост ресурсов во много раз повышается;-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Изучал я эту RaspberryPi, основная проблемма в ней это сложность работы с портом, в плане выдержки необходимых интервалов между дерганьем выводов, сложно выдрживать интервалы, т.к. этим рулит операционка, а ещё мне я любитель хардкора, когда сделав функцию смотрю как она получилась на асемблере, а потом ищу способ как оптимизировать, просто обожаю сам процесс
Плюс у меня аппаратный отладчик для AVR, т.е. ардуино средой не пользуюсь.
Я этим занимаюсь для собственного удовольствия.
Плюс у меня аппаратный отладчик для AVR, т.е. ардуино средой не пользуюсь.
Я этим занимаюсь для собственного удовольствия.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Я правильно понимаю, что 15 кГц - это уже частота импульсов STEP, уже с учётом вычислений координат в контроллере?selenur писал(а):Я когда делал, экономил каждый такт, использовал алгоритм брезенхема для движения, в произвольном направлении по прямой максимум получался примерно 15 кгц, по дуге 10 кгц.
Т.е.: 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 - лазерный мини станок на ардуино
ну вроде правильно посчитал, но тут есть еще нюанс в том что это без расчета плавного ускорения и торможения, если добавить то медленнее будет. (станок замучал быстрее чем дописал прошивку )
А если сюда добавить и чтение с sd-карты то совсем печально, т.к. приходится оперировать значениями явно длиной не 1 байт, если использовать сетевой контроллер как источник данных, так-же нехватало немного свободных тактов
А если сюда добавить и чтение с sd-карты то совсем печально, т.к. приходится оперировать значениями явно длиной не 1 байт, если использовать сетевой контроллер как источник данных, так-же нехватало немного свободных тактов
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Да уж, печально.. Если б я это делал, то, учитывая мои дилетантские способности к программированию, можно результат по скорости перемещения ещё на 10 поделить. Т.е. скорость была бы примерно 100 мм/мин
Значит, ещё и SD-карта тормозит процесс. Это связано только с обработкой данных с SD-карты, или ещё и от класса карты зависит? Поставить 10-й класс, может быстрее будет?
А какие ещё тормозящие факторы встречались? И вообще - использовался ли какой-нибудь сторожевой таймер выполнения программы (типа watchdog драйвера в mach3)? Какой-нибудь контроль зависания программы или превышения времени выполнения одного цикла программы?
Значит, ещё и SD-карта тормозит процесс. Это связано только с обработкой данных с SD-карты, или ещё и от класса карты зависит? Поставить 10-й класс, может быстрее будет?
А какие ещё тормозящие факторы встречались? И вообще - использовался ли какой-нибудь сторожевой таймер выполнения программы (типа watchdog драйвера в mach3)? Какой-нибудь контроль зависания программы или превышения времени выполнения одного цикла программы?
-
- Почётный участник
- Сообщения: 348
- Зарегистрирован: 01 апр 2014, 19:16
- Репутация: 111
- Откуда: Москва
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Позволю себе ответить (в свое время под AVR много чего писал)Kopyloff писал(а):какие ещё тормозящие факторы встречались?
Банально 8-битная архитектура и основная частота не позволяют сделать кардинально быстрее.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
1) Нет смысла использовать карту памяти более скоростную, т.к. на процесс выполнения движения моторами тратиться больше времени (у меня по крайней мере).Kopyloff писал(а):Да уж, печально.. Если б я это делал, то, учитывая мои дилетантские способности к программированию, можно результат по скорости перемещения ещё на 10 поделить. Т.е. скорость была бы примерно 100 мм/мин
Значит, ещё и SD-карта тормозит процесс. Это связано только с обработкой данных с SD-карты, или ещё и от класса карты зависит? Поставить 10-й класс, может быстрее будет?
А какие ещё тормозящие факторы встречались? И вообще - использовался ли какой-нибудь сторожевой таймер выполнения программы (типа watchdog драйвера в mach3)? Какой-нибудь контроль зависания программы или превышения времени выполнения одного цикла программы?
2) watchdog имеет смысл если есть непредсказуемые зависания, или это уже законченный продукт
3) например в 3Д принтерах программа делает движения такие, что-бы по возможности движение было лишь по 1-й оси, благодаря чему, не требуется математика вычисления пропорций движений по одновременному движению по нескольким осям.
Абсолютно согласен.leprud писал(а):Позволю себе ответить (в свое время под AVR много чего писал)Kopyloff писал(а):какие ещё тормозящие факторы встречались?
Банально 8-битная архитектура и основная частота не позволяют сделать кардинально быстрее.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Спасибо за информацию! Очень ценная и интересная инфа.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: MicroSlice - лазерный мини станок на ардуино
Не будет. Класс карты имеет отношение к скорости записи на нее. Скорость чтения в микроконтроллерных решениях ограничена программной реализацией SPI-интерфейса, необходимостью обработки файловой системы (а не просто тупого последовательного чтения). Все это еще и отнимает ресурсы процессора, а их и так маловато.Kopyloff писал(а):Поставить 10-й класс, может быстрее будет?
Чудес не бывает. Бывают фокусы.