roboforum.ru

Технический форум по робототехнике.
Текущее время: 04 апр 2025, 13:06

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 23 янв 2020, 22:06 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Myp писал(а):
вобще цифра 511 подозрительно совпадает с таблицей синусов


Число 511 подозрительно совпадает с установленными всеми битами в "1" в двоичном коде. 511 = 0x1FF = 0b111111111 :)
И это логично, т.к. задает диапазон ШИМ, который желательно иметь кратный двоичному коду, чтоб не делать дикое колич. проверок и создавать таблицы синусов выровненные для двоичных масок...

Добавлено спустя 5 минут 28 секунд:
Re: MKS SERVO42B шаговик с обратной связью не пропускающий шаги
Вы не там ищете повышение частоты ШИМ. Выше частоты шины периферии не прыгните. Есть только один вариант - уменьшать разрядность ШИМ (период VREF_MAX), также выравнивая по двоичному коду: 511, 255, 127. Каждое послед. число увеличивает частоту ШИМ в 2 раза, соотв. уменьшая разрядность ШИМ тоже в 2 раза...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 23 янв 2020, 22:36 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Блин, а как тогда нормальные люди делают ШИМ управление моторами чтобы они не пищали обмотками?
если даже с 72 мегагерцами получается писк, а там всего-то 512 значений.

и всё равно непонятно
посчитали синус по таблице, получили красивое в битовом плане число
а потом хренакс и засунули красивое число в формулу с каким то фигом фиксированными цифрами тока 3300 мА и 1500 мА
vrefSin = (uint16_t)((mA * fastAbs(sin) + 1500) / 3300);
в итоге при угле в 90 градусов sin=511 и получатся говняшка
vrefSin = (500мА*511+1500)/3300 = 77,88
а при нуле градусов vrefSin = 0,44
в сумме тоже фигня, 78,333333
потом эту цифру тащат в процедуру setVREF(vrefSin,vrefCos);
которая делает я не знаю что
Код:
//Vref
inline static void setVREF(uint16_t VREF12, uint16_t VREF34)
{
   VREF_TIM->CCR3 = VREF12;                  //TIM_SetCompare3(VREF_TIM, VREF12);
   VREF_TIM->CCR4 = VREF34;                  //TIM_SetCompare4(VREF_TIM, VREF34);
}

#define VREF_TIM TIM3
VREF_TIM->CCR3 = 77,88 это что блин значит ? :(
это тоже какая-то битовая магия?

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 24 янв 2020, 03:32 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Myp писал(а):
если даже с 72 мегагерцами получается писк, а там всего-то 512 значений.

APB1 может питаться только пониженной в 2 раза частотой от 72 мГц. 72/2/512 = уже 70 кГц. максимум. А это мы еще даже в код не заглядывали.Там шим простой или какой-нибудь центрированный?
Потом, а кто сказал что это пищит шим? Надо мерить частоту. Это может пищать PID регулятор с максимальной частотой снятия данных с энкодера.
Myp писал(а):
посчитали синус по таблице, получили красивое в битовом плане число
а потом хренакс и засунули красивое число в формулу

С точность до наоборот. Посчитали что угодно в грязных цифрах, любой разрядности, а потом хренакс и обрезали до красивого числа двоичной маской.
Myp писал(а):
в итоге при угле в 90 градусов sin=511 и получатся говняшка

Не очень понял, 90 град. от полного поворота сервы? Таблица в 512 дискрет в таком случае очень мало. Если 90град. от полного одного шага шаговика, то не понимаю где говняшка, т.к. полный шаг = 360/200 град.
Myp писал(а):
это что блин значит ?

ХЗ! Ты хочешь меня заставить лопатить исходники? :cry: Тогда вопрос: В чем затык? Не нравится свист? Искать источник, может это не шим. Кста, а сколько драйвер шаговика может сьесть кГц ШИМ-а?

Попробуй поставить дроссели на шаговик (по 1 шт на обмотку, т.е. 2 :) ), Чтоб они полностью убрали пульсации шим. Потом лезь осциллом и изучай аналоговый сигнал на пинах двигателя после дросселей. Тогда станет понятно кто пищит, ШИМ или кривой алгоритм управления.

Эх возбуждаете меня этой сервой, где ее можно быстро купить? Ненавижу ждать по 30 дней с али...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 24 янв 2020, 23:13 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Dmitry__ писал(а):
Потом, а кто сказал что это пищит шим? Надо мерить частоту. Это может пищать PID регулятор с максимальной частотой снятия данных с энкодера.

блин, куда не глянь всюду непойми чё, я незнаю, пойду посмотрю как там угол снимается.

Dmitry__ писал(а):
Посчитали что угодно в грязных цифрах, любой разрядности, а потом хренакс и обрезали до красивого числа двоичной маской.

там таблица посчитанных синусов уже забита, в таблице цифры от -511 до 511
Код:
static const int16_t sineTable[1280] = {
0,3,6,9,13,16,19,22,25,28,31,34,38,41,44,47,
50,53,56,59,63,66,69,72,75,78,81,84,87,90,94,97,
   // и так далее до
501,502,502,503,503,504,505,505,505,506,506,507,507,508,508,508,
509,509,509,509,510,510,510,510,510,511,511,511,511,511,511,511,
   //и дальше в обратную сторону через ноль до -511



Dmitry__ писал(а):
Не очень понял, 90 град. от полного поворота сервы? Таблица в 512 дискрет в таком случае очень мало. Если 90град. от полного одного шага шаговика, то не понимаю где говняшка, т.к. полный шаг = 360/200 град.

Для полного физического шага.
Для 90 градусов синус по табличке в памяти равен 511.
это красивое число 511 зачем-то засунули в странную формулу масштабирования до 3300 мА
(Это максимальный ток для шаговика размера 57, такое ощущение что формулу забыли исправить под 42 шаговик, у меня стоит драйвер A4954 и он в пике 2 ампера может дать)
текущий ток мотора умножают на синус угла, прибавляют 1500 мА и делят на 3300 мА
Вложение:
Снимок.PNG
Снимок.PNG [ 9.4 КиБ | Просмотров: 5805 ]

получили цифру 77,87878787 запихали её в uint16_t и отправили в регистр ШИМа
Твоя теория про красивость цифр в битовом плане рушится.
нафига диапазон 0-511 масштабировать в 0-77?

Dmitry__ писал(а):
ХЗ! Ты хочешь меня заставить лопатить исходники?

Да, там всего пара строчек, даже я почти разобрался.

Dmitry__ писал(а):
Эх возбуждаете меня этой сервой, где ее можно быстро купить? Ненавижу ждать по 30 дней с али...

У нас не видел :(


Dmitry__ писал(а):
Кста, а сколько драйвер шаговика может сьесть кГц ШИМ-а?

в даташите не нашёл http://elecanisms.olin.edu/handouts/2.3 ... asheet.pdf
там есть некая Toff Constant Off-time = 25 мкс
The current in each of the two output full bridges is regulated
with fixed off-time pulse width modulated (PWM) control circuitry
возможно надо от неё плясать
Вложение:
Безымянный1.png
Безымянный1.png [ 34.48 КиБ | Просмотров: 5436 ]


Добавлено спустя 1 час 52 минуты 24 секунды:
Re: MKS SERVO42B шаговик с обратной связью не пропускающий шаги
феерически :shock:
у китайцев в прошивке вырезан пункт меню установки рабочего тока, оставлен только пункт тока удержания
при этом пункт удержания переименован как будто это рабочий ток
но по факту если на экране выбрать 100 мА то ток 100мА запишется в motorHoldCurrent, а в motorCurrent запишется 200 :o
при этом само собой в PID алгоритме выбирается ток для корректировки согласно этим двум величинам.
ma = (int32_t)((fastAbs(u) * fastAbs((int32_t)(motorParams.currentMa - motorParams.currentHoldMa))) / fullStep) + motorParams.currentHoldMa;
а потмо хренакс и та странная формула с масштабированием...
я понимаю если бы масштабировалась в заданные пределы 100-200 мА, но масштабируется в 1500-3300

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 25 янв 2020, 18:26 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Вобщем обратился к истокам
китайцы при передирании с оригинала выбросили кусок кода который масштабировал ток)))
заодно выбросили опцию уставки тока удержания отдельно от рабочего тока...

фик знает что ещё

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 27 янв 2020, 01:34 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
вернул кусок кода для масштабирования и меню для выбора тока.
вроде норм стало.

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

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 27 янв 2020, 11:09 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Myp писал(а):
вроде норм стало.

Молодчага, а норм стало что? :) Пропал свист? Или управление стало лучше?
А ссылки не дашь на ориг. код?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 27 янв 2020, 18:21 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Свист есть.
Работать стал лучше, вал нагружаешь, сперва идёт смещение немного, а потом хоп и возвращает в ноль.
до этого чем сильнее крутишь тем сильнее он сопротивлялся, но и погрешность тоже росла.

теперь бы ему добавить быстродействия
ато на вал нажимаешь, он успевает сместиться на градус, потом спохватывается и обратно возвращается.
киатйцы стопудово с ПИД накосячили))) "лишние" режимы работы тоже выкинули.

Прошивка китайская https://github.com/makerbase-mks/MKS-SERVO42B
Прошивка исходного автора https://github.com/Misfittech/nano_step ... _nano_zero

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 28 янв 2020, 09:29 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
ты гляди, так и китайский ширпотреб напильником до ума доведешь !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 28 янв 2020, 21:00 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Myp, спасиба, гляну на днях. Не удаляй :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 31 янв 2020, 12:39 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Сравнил код, да ну на фиг, один на ардуино иде32, другой на платформио. Удалил все с компа, свое время дороже :)
Буду вялотекуще наблюдать за развитием этого MKS SERVO42B, пока даже въехать не могу зачем замутили сервопривод на шаговике :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 10 сен 2020, 07:47 
Не в сети

Зарегистрирован: 22 янв 2015, 10:55
Сообщения: 142
Откуда: Барнаул
Использую в своих принтерах MKS SERVO42А в директ экструдере. На мой взгляд лучше обычного шаговика.

_________________
https://vk.com/centrit_3d


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 23 авг 2022, 12:22 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Купил 3 сервы MKS-SERVO42C
Одну серву поставил в mendel90. 2-ю в быструю поворотку для камеры (ради нее все и затеивалось). 3-я пока лежит без дела :)
Первым делом начал изучать систему команд для управления по uart, т.к. хотелось сделать поворотное устройство из желудей и веточек. Серва иногда замирает на 0.2 сек. и как с этим бороться пока не понял. Забил на uart, занялся step/dir как в 3d принтерах. На базе библиотеки AccelStepper написал управлялку, все замирания пропали, все крутится норм. И тут я решил проверить максимальную скорость сервы. Выставил запредельные параметры и начал крутить:

Код:
   myStepper.setMaxSpeed(10000);
   myStepper.setAcceleration(30000);
   myStepper.setSpeed(10000);


Ардуина выдала макс. частоту на step 4кГц. Серва крутилась примерно 8 об/сек. Что близко к ее параметрам. И тут я нажал reset на ардуине. Серва как крутилась так и осталась крутиться :))
Крутилась еще около 5 секунд. Т.е. серва не успевала обработать данные, накапливала их и отрабатывала по мере возможностей. Вот и думайте как это работает в принтере 8)

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

2. Для своих изделий: Сырое управление по uart. До сих пор нет исходников. В отличии от SERVO42B - применен китайский контроллер вместо stm32, пока не понял как его программировать :(

Фотки поворотки с тепловизором:

Вложение:
tepl_1.jpg
tepl_1.jpg [ 100.64 КиБ | Просмотров: 3735 ]
Вложение:
tepl_2.jpg
tepl_2.jpg [ 102.79 КиБ | Просмотров: 3738 ]

Вложение:
tepl_3.jpg
tepl_3.jpg [ 106.55 КиБ | Просмотров: 3737 ]
Вложение:
tepl_5.jpg
tepl_5.jpg [ 107.44 КиБ | Просмотров: 3740 ]


Последний раз редактировалось Dmitry__ 18 сен 2022, 20:25, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 13 сен 2022, 10:26 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Алоха!

Запили своё. :)
А то попахивает блогерством и обзорами. :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MKS SERVO42B шаговик с обратной связью не пропускающий ш
СообщениеДобавлено: 15 сен 2022, 13:37 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
я добавлю что вместо сглаживания скорее получается повторяемый "шов" перехода через ноль магнитного энкодера, хотя понятно это от прошивки зависит. нужно пилить свою и перед запоминанием калибровочных данных их "сглаживать"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO