Страница 5 из 5
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 12:59
selenur
sidor094 писал(а):По моему это для окружностей и дуг
На самом деле алгоритм очень универсален, и можно просчитывать не только, движение по дугам, или по прямой, в 2-х,3-х,4 и более осях для станка, но и для вычисления ускорения, при генерации step, и для кучи других задач, там список получается не маленький.....
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 18:07
Morroc
Tomasina писал(а):в тему целочисленной арифметики - какого ляда разработчики AccelStepper используют данные размерностью float, ведь операции с ними на порядок медленнее. Где там могут возникать дробные числа, если оперируем целыми шагами, а на 1/8 или 1/16 делит сам драйвер?
Думаю задачи сделать офигенно быстро и плавно автор перед собой и не ставил, зато ее используют в аналогах ардуин на других мк и она работает.
Да вот взять хотя бы обновление данных на выходах, тот же float только в профиль.
Код: Выделить всё
for (i = 0; i < numpins; i++)
digitalWrite(_pin[i], (mask & (1 << i)) ? (HIGH ^ _pinInverted[i]) : (LOW ^ _pinInverted[i]));
Зато можно взять какую нибудь teensy 3.1(2) запустить там тот же скетч (с хорошей вероятностью вообще без переделок) и поиметь x5-x7 в скорости нахаляву
За плавность и параллельность с другими задачами может быть и имеет смысл пободаться с ней, а если скорость нужна и не нужна совместимость с другими дуинами - лучше поискать что то другое или свою писать.
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 18:08
grakun
selenur писал(а):но и для вычисления ускорения
Алгоритм мне очень понравился, кстати по Вашей рекомендации я его и делал, правда только для прямой.
Про ускорение не совсем понял, что имеете ввиду?
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 18:30
sidor094
grakun писал(а):Алгоритм мне очень понравился, кстати по Вашей рекомендации я его и делал, правда только для прямой.
А как это?Для прямой?
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 19:20
grakun
sidor094 писал(а):А как это?Для прямой?
Извиняюсь не прямой, вектора. Для окружности и вектора, есть различия. Делал только для вектора, постпроцессор(в арткаме) выдает окружность и дуги в в виде векторов, попробовал понравилось, на этом остановился.
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 19:42
sidor094
Алгоритм Брезенхэма не позволяет разбить окружность на равные сектора .Из-за этого становится невозможным рассчитать движение с равномерным подъёмом по оси z.А так-же построение равномерно увеличивающегося радиуса.Поэтому не смотря на простоту и высокую точность построения дуг, отказался от этого алгоритма .
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 19:56
selenur
grakun писал(а):selenur писал(а):но и для вычисления ускорения
Алгоритм мне очень понравился, кстати по Вашей рекомендации я его и делал, правда только для прямой.
Про ускорение не совсем понял, что имеете ввиду?
Представь что в алгоритме ты вычисляешь не X и Y, а X и длительность между импульсами
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 20:05
grakun
sidor094 писал(а):Алгоритм Брезенхэма не позволяет разбить окружность
Не разбирался с этим, не знаю. Пока цель, сделать что то очень бюджетное, меня он устраивает.
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 20:10
grakun
selenur писал(а):Представь что в алгоритме ты вычисляешь не X и Y, а X и длительность между импульсами
Понятно, я это делаю по другому.
Re: Arduino AccelStepper
Добавлено: 03 фев 2016, 20:44
selenur
grakun писал(а):sidor094 писал(а):Алгоритм Брезенхэма не позволяет разбить окружность
Не разбирался с этим, не знаю. Пока цель, сделать что то очень бюджетное, меня он устраивает.
Алгоритм брезенхема для окружности, имеет один нюанс, он позволяет просчитать дугу равную 1/8 окружности,или если смотреть от центра круга то участок круга в 45 градусов.
Re: Arduino AccelStepper
Добавлено: 15 окт 2019, 20:02
evgenymcp
Кто-нибудь использует эту библиотеку? Столкнулся с тем, что на этой библиотеке невозможно получить нормальный сигнал STEP. Хочу собрать антенный ротатор проекта Satnogs. Использую червячный редуктор с редукцией 1:233. Без проблем могу крутить им из GRBL со скоростью 1 оборот за 30сек. Заливаю скетч из проекта и не могу добиться скорости от ШД. Перестает реагировать на переменную #define MAX_SPEED после какого-то небольшого значения. ШД сильно шумит . Мне нужно получить около 500об/мин на 8 микрошаге для этого по моим подсчетам мне нужен сигнал STEP 13333им/сек (200*8*500)/60
Re: Arduino AccelStepper
Добавлено: 15 окт 2019, 21:08
evgenymcp
Нашел ответ внутри AccelStepper.h
Похоже 4кГц предел для этой библиотеки
Код: Выделить всё
/ \par Performance
/// The fastest motor speed that can be reliably supported is about 4000 steps per
/// second at a clock frequency of 16 MHz on Arduino such as Uno etc.
/// Faster processors can support faster stepping speeds.
/// However, any speed less than that
/// down to very slow speeds (much less than one per second) are also supported,
/// provided the run() function is called frequently enough to step the motor
/// whenever required for the speed set.
/// Calling setAcceleration() is expensive,
/// since it requires a square root to be calculated.
///
/// Gregor Christandl reports that with an Arduino Due and a simple test program,
/// he measured 43163 steps per second using runSpeed(),
/// and 16214 steps per second using run();
Re: Arduino AccelStepper
Добавлено: 15 окт 2019, 21:11
nkp
evgenymcp писал(а): для этой библиотеки
если у тебя такая же частота процессора
Re: Arduino AccelStepper
Добавлено: 15 окт 2019, 21:21
evgenymcp
nkp писал(а):если у тебя такая же частота процессора
Да выбор не велик. 8 и 16Mhz

Тот же GRBL переварил эту частоту без проблем.
Re: Arduino AccelStepper
Добавлено: 16 окт 2019, 07:15
MX_Master
на STM'ах GRBL тоже работает

Re: Arduino AccelStepper
Добавлено: 16 окт 2019, 08:20
evgenymcp
MX_Master писал(а):на STM'ах GRBL тоже работает

Проблема в том, что мне нужен не GRBL а другая прошивка, которая как выяснилось не умеет. Выход или использовать шаг, 1/2 шага либо редукцию снижать. Вопрос, чем отличается на драйвере полушаг 2/a от 2/b?
Re: Arduino AccelStepper
Добавлено: 16 окт 2019, 09:17
selenur
evgenymcp писал(а):чем отличается на драйвере полушаг 2/a от 2/b?
А откуда у тебя информация о таком полушаге с буквами?
Re: Arduino AccelStepper
Добавлено: 16 окт 2019, 14:08
evgenymcp
selenur писал(а):evgenymcp писал(а):чем отличается на драйвере полушаг 2/a от 2/b?
А откуда у тебя информация о таком полушаге с буквами?
На tb6600 таблица микрошага.
Re: Arduino AccelStepper
Добавлено: 16 окт 2019, 14:39
Сергей Саныч
evgenymcp писал(а):чем отличается на драйвере полушаг 2/a от 2/b?
В режиме B в промежуточных положениях через обе обмотки течет полный ток, а в режиме A - 71% от полного. Это способствует выравниванию момента удержания во всех положениях ротора. В современных драйверах используется только режим A.
Re: Arduino AccelStepper
Добавлено: 18 окт 2019, 19:51
vmarkiv