roboforum.ru

Технический форум по робототехнике.

DC Servo Controller(makerbot)

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

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 14:16

а ты внешний контроллер отключил?

Добавлено спустя 3 минуты 12 секунд:
Бли, ты прав!
Вот исправил http://pastebin.com/hUq3ERSU
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 14:17

репрап чтоли?
плата дк_сервы напрямую к фтэшке идёт. Ничего лишнего нет
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 14:21

угу, выше обновление.

Добавлено спустя 1 минуту 34 секунды:
Оно не заработает пока newEnable не 1 , а оно никогда не становилось 1 :)
теперь должно быть ок.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 14:52

Код: Выделить всёРазвернуть
C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:70: error: 'DDRA' undeclared here (not in a function)

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:79: error: 'PORTA' undeclared here (not in a function)

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:79: error: initializer element is not constant

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:79: error: (near initialization for 'port_to_output_PGM[1]')

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:88: error: 'PINA' undeclared here (not in a function)

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:88: error: initializer element is not constant

C:\arduino\hardware\arduino\cores\arduino\pins_arduino.c:88: error: (near initialization for 'port_to_input_PGM[1]')
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 15:02

Это у тебя что то поломалось. Похоже какой то путь поломался, или ты что то удалил/поставил.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 15:46

да вот я и смотрю
с предыдущим скетчем сейчас тоже самое выдаёт
вроде ничего не делал

Добавлено спустя 41 минуту 3 секунды:
вот я счудил - разные ардуино на двух дисках лежат(0018 и 0022). не обратил внимания в какой сижу.
цифры ничего не делают попрежнему. motor_speed=0
s - на 150й раз делает оборот и дрожит на месте, как на ролике от пальца.
Когда начинаю вводить, с каждой последующей s леды увеличивают свечение и зум двигателя увеличивается. Потом как на ролике.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 15:59

ну собственно ты нашёл в чём проблема.
как я и говорил чтобы его сдвинуть нужно набрать ошибку, т.е. Программа думает что она передвинула фрезу на 150 шагов а на самом деле всё стоит.
Дёргается от перерегулирования.
Вот теперь можешь играться с подборкой алгоритма управления :)
Этот кусок:
motor_speed = 0;
int distance = abs(position-target);

if (distance > 255)
motor_speed = 255;
else
motor_speed = distance;

твоя функия управления.
с каждым s ты увеличиваешь разницу position-target
попробуй подобрать константу при которой двигатель начнёт двигаться при меньшей ошибке.

Или например так:
motor_speed = distance*2;
В общем тут уже теория автоматического управления, на эту тему много материалов в интернете.

И тут есть forum2/topic5043.html
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 16:07

мне больше похоже на поеденичный набор скорости этой командой s.
150 шагов - это не целый оборот, ато и больше.
визуально выглядит, какбудто скорость с шагами попутана
почему всётаки набор цифр молчит?
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 16:40

Сейчас мыслей нет :( я в текстовом редакторе пишу, без контроллера и без компилятора.
С виду должно работать.
Вечером проверю.

Вообще у тебя есть только шаги. А скорость это функция разности между желаемым положением (количество s) и текущим (счётчик с энкодера).
Когда ты увеличиваешь ошибку увеличивается мощность подаваемая на двигатель.

Добавлено спустя 11 минут 12 секунд:
Тебе нужно понять:
http://easyelectronics.ru/avr-uchebnyj- ... -shim.html
http://robocraft.ru/blog/arduino/34.html
http://robocraft.ru/blog/arduino/45.html
wiki/%D0%A1%D0%B4%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8D%D0%BD%D0%BA%D0%BE%D0%B4%D0%B5%D1%80

Т.к. Параметры любого алгоритма придётся подбирать под твоё железо.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 17:07

ок. спасибо, почитаю.
Вернул:
------
//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);
------
и
------
// step signal is on the low to high transition.
...
byte motor_speed = 0;
------
s стало срабатывать сразу

Добавлено спустя 5 минут 59 секунд:
пс: для ссылки на вики этого сайта есть BBCode
*robowiki*Сдвоенный_энкодер*/robowiki*
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 07 июл 2011, 17:44

>digitalWrite(MOTOR_SPEED_PIN, motor_speed);

Этого я не понимаю.


>byte motor_speed = 0;

так ты теряешь возможность устанавливать скорость с консоли, правда она пока не работает.

Ну и как сейчас работает s?
чётко по градусу поворачивается?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 07 июл 2011, 17:56

нет, как от пальца, несколько оборотов и остановка.
поменял:
----
// step signal is on the low to high transition.
...
if (distance > 255)
motor_speed = 100;
----
теперь стоит и зумит, но не дёргается. при попытке вручную провернуть, возвращается назад. но это работает только в одну сторону, в другую только пытается это делать.
с обратным ходом беда всётаки.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 08 июл 2011, 10:51

Вчера получил шаговые двигатели и контроллер из китая, игрался с emc2.

вот исправил теперь скорость тоже работает http://pastebin.com/kAGQhzZr
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: DC Servo Controller(makerbot)

Сообщение ilalexey » 08 июл 2011, 11:05

Поздравляю!
А фотоотчёт где? :)
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: DC Servo Controller(makerbot)

Сообщение linvinus » 08 июл 2011, 11:15

Пока отчитываться не о чем, только голое железо :( я просто смотрел как все моторчики дрыгаются пока как бы фрезеруют демо проект.
Теперь нужны муфты подшипники, и нужно думать как это всё соединить.

Добавлено спустя 4 минуты 31 секунду:
да и в новой программе что я выложил, она не будет работать как драйвер пока не подключишь к com порту.
если тебе это не нужно то закоментируй

while(!Serial.available()){
Serial.println("A");
__builtin_avr_delay_cycles(10000000);
}
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Пред.След.

Вернуться в Электроника, электротехника

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

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