roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 13:20

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




Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 13:15 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
Топик является продолжением http://roboforum.ru/forum11/topic10041-165.html#p209543
Поскольку отошли от темы bldc-hv, решили продолжить мусолить DC_Servo_Controller тут.
сайт http://wiki.makerbot.com/dc1
-------------------
По состоянию на сегодня имеем железо с невменяемыми мозгами(о чём на сайте не упоминается)
-------------------
Вариант с оптическим энкодером http://www.thingiverse.com/thing:6814
-------------------
Видео с магнитным энкодером


######################
### LOG
######################
В схеме makerbot-magnetic-rotary-encoder-2.1-REV-C
C2,C3 - электролиты
пока C2 удалил, C3 10х16 поставил
---------------------
Тематические ссылки:
[[Сдвоенный_энкодер]]
http://roboforum.ru/forum2/topic5043.html
http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-shim.html
http://robocraft.ru/blog/arduino/34.html
http://robocraft.ru/blog/arduino/45.html
http://openservo.org/StepByStep


Последний раз редактировалось ilalexey 07 июл 2011, 19:54, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 13:21 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
А энкодер какой марки ?

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 13:24 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
Магнитный? - AS5040


Вложения:
AS5040_Datasheet_v2_01.pdf [693.76 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 13:44 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
У меня есть аналоги, а магнит вы специальный использовали или подходящий ?

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
специальный


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 16:12 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Схема подключение драйвера A3949 c контроллером atmega168
-----------------
mega168 | a3949
-----------------
pb0(d8) | 2(mode)
pd6(d6) | 3(phase/dir)
pd7(d7) | 5(sleep)
pd5(d5) | 6(enable)


ilalexey,
в драйвере A3949 реализовано три алгоритма торможения (честно говоря это мой вольный перевод)
1)Brake (slow decay) медленное торможение ( ток частично идёт через диоды) 2,4,8 состояния по диаграммам
2) Fast decay SR (synchronous rectification) быстрое торможение (ток идёт через два нижних транзистора) 3,9 состояния по диаграммам
3) Fast decay SR быстрое торможение с зарядом батареи (ток течёт в направлении батареи, остальное естественно не реализовано) - шестое состояние по диаграммам.

Но опять же это по диаграммам, которые не очень понятны см http://www.allegromicro.com/en/Products ... 9/3949.pdf

Добавлено спустя 1 час 51 минуту 45 секунд:
Я вот что ещё подумал.

А если попробовать такой алгоритм.
1) даём ШИМ 70% (т.е. заведомо большой ток, чтобы быть уверенным что мы стронулись с места)
2) ждём какое то количество микро секунд.
3) тормозим.
4) ждём какое то количество микро секунд.
5) смотрим положение сместились или нет. (abs(position-target) )
6) если нет, прыгаем на первый шаг

Это должно быть примерно тоже самое что один шаг у шагового двигателя.
если период импульсов step будет больше периода на шаге 2+4, всё должно работать.
Нужно будет только подобрать временные константы.
Начать нужно с частоты шим.

Конечно щёткам на двигателе будет не сладко. Но это в любом случае при таком способе управления.
Чтобы уменьшить помехи обязательно нужно зашунтировать двигатель маленьким керамическим конденсатором, где то на вики кажется про это было.


Кстати, кажется в коде ошибка:

//super primitive control of the motor.
if (position > target)
{
digitalWrite(MOTOR_DIR_PIN, HIGH);
analogWrite(MOTOR_SPEED_PIN, motor_speed);
}
else if (position < target)
{
digitalWrite(MOTOR_DIR_PIN, LOW);
digitalWrite(MOTOR_SPEED_PIN, motor_speed);
}
else
{
digitalWrite(MOTOR_SPEED_PIN, LOW);
}


должно быть
else if (position < target)
{
digitalWrite(MOTOR_DIR_PIN, LOW);
analogWrite(MOTOR_SPEED_PIN, motor_speed);
}

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

За то на один шаг мы получим n импульсов с энкодера.
допустим передаточное число N=10, т.е. за 10 оборотов двигателя редуктор поворачивает на один оборот
допустим нам нужна точность 0,5градуса, чтобы сделать один оборот редуктора нужно 360/0,5=720 шагов (сигналов step) .
за один шаг редуктора, ротор мотора должен повернуться на 0,5*10=5градусов, при этом энкодер выдаст 5градусов/0,35градусов=14 импульсов.
Это уже кое что, в смысле за 14 импульсов можно рассчитать начальную и конечную точку в шаге.
При этом точно контролировать когда жать на тормоз.
Но писать нужно не на языке ардуино а на чистом СИ.
Одна функция digitalwrite чего стоит! (в смысле очень медленная, есть тесты производительности)

Добавлено спустя 3 минуты 1 секунду:
Тут может получиться так что atmega не будет успевать за импульсами step, нужно всё очень точно рассчитывать.
Какая максимальная скорость должна быть у сервомотора на выходе? т.е. на выходе редуктора.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 17:01 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
Редуктор получается такой:
1) G6_G5 ... 48/20=2.4
2) G4_G3 ... 44/18=2.444444
3) G2_G1 ... 40/16=2.5
итого 14.666666 : 1
у нас имеется энкодер на 1024 позиции и 360гр. Что дальше с этими цифрами делать пока не решил.
>Я бы лучше поставил энкодер на вал двигателя
В том-то и затея - хотел баги редуктора обойти, чтобы на выдаче было больше чем позволяет шаговик. Я с этим єткодером ещё и сглупил на лишние 70грн. Узнал, что существует as5045 с разрешением 4096 позиций. Купил и впаял, а чтоб даташит поштудировать ума не хватило. Кинулся кабель подключать, а у 45й-то 3 и 4 нога "нот коннектед" оказывается :shock:
Скорость, в данной ситуации, не так важна в принципе. В репликаторЖ шаговики комфортно живут на 68 едениц. Что это за еденицы, какой эквивалент чего с чем хз.
По секундомеру не засекал, так что это для меня пока абстракция.


Вложения:
AS5045.pdf [584.85 КиБ]
Скачиваний: 0
DC_servo_gear.png
DC_servo_gear.png [ 35.84 КиБ | Просмотров: 5027 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 17:49 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
>хотел баги редуктора обойти,
не понял, что значит обойти?

>В репликаторЖ шаговики комфортно живут на 68 едениц. Что это за еденицы, какой эквивалент чего с чем хз.
обычно скорость подачи определяется как мм/сек,
нужно выяснить.
скорость двигателя может быть разной, всё зависит от конструкции передачи.
Редуктор потом тоже что то будет вращать? шпильку или ремень?

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 18:17 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
>не понял, что значит обойти?
Размышлял так: энкодер даёт информацию о конечном положении вала, значит имея шестерни с люфтом, мы получим конечное положение вала в нужном месте.
>Редуктор потом тоже что то будет вращать? шпильку или ремень?
зависит от результата(если он будет конечно). скорее всего это будет маленький червячёк.
Как я ранее говорил, это на четвёртую ось(формы вращения диаметром до 50-60мм) затея была.

Добавлено спустя 3 минуты 49 секунд:
>обычно скорость подачи определяется как мм/сек
точно 68 не мм/сек. в 5мин больше похоже :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 28 июн 2011, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
>Размышлял так: энкодер даёт информацию о конечном положении вала, значит имея шестерни с люфтом, мы получим конечное положение вала в нужном месте.
а как быть с инерцией? и при торможении люфт всё равно даст о себе знать только в обратном направлении.

Попробуй для начала просто точно повернуть выходной вал редуктора, хотя бы на 1 шаг.
Т.к. кроме люфта, есть ещё переходной процесс, даже если всё работает идеально, с момента сигнала step до реального перемещения происходит какое то время.
За это время другие двигатели тоже сместятся, в результате фреза может быть не на том месте, где рассчитывала программа.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 29 июн 2011, 14:12 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
твой код заливал - ещё хуже ведёт себя. назад вообще перестаёт ехать, стоит и шкварчит. раньше зум шёл.
Скоростон кареток на шаговых осях 1.14мм/сек.(50мм/44сек)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 29 июн 2011, 14:19 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
а выложи исходный файл, что у тебя получилось?

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 29 июн 2011, 14:36 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
я пробовал несколько изменений. это то, что на последний момент


Вложения:
stepper_emulator_01.zip [1.13 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 29 июн 2011, 20:50 
Не в сети
Аватара пользователя

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
тут в конце редуктора http://www.reprap.org/wiki/Magnetic_Rotary_Encoder_1_0


Вложения:
Cache-2631512184_1f6131b123.jpg
Cache-2631512184_1f6131b123.jpg [ 130.67 КиБ | Просмотров: 4993 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DC Servo Controller(makerbot)
СообщениеДобавлено: 30 июн 2011, 10:35 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Попробуй эту версию? http://pastebin.com/PwB2herb
у тебя не было olddir = dir;

и я вернул
else if (position < target)
{
digitalWrite(MOTOR_DIR_PIN, LOW);
analogWrite(MOTOR_SPEED_PIN, motor_speed);
}

назад он тоже должен использовать шим, иначе смысл управления теряется.
если использовать digitalWrite(MOTOR_SPEED_PIN, motor_speed);
то контроллер включит задний ход на полную мощность, если motor_speed>0.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

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