реклама на сайте
подробности

 
 
> Генерация импульсов dir step
sergey sva
сообщение Nov 28 2013, 17:20
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Есть задачка управлять серво приводом(3шт) от платы с микроконтроллером at91. Плата получает по 485 команду в формате, система отсчета абсолютная:
Код
struct{
double x; // все в мм
double y;
double z;
double a;
double b;
double c;
double feed;
double pulse_mm;
}freemovG00;

В микроконтроллере нужно сформировать импульсы step dir. Понятно что это не просто поэтому буду благодарен любой информации,может есть готовые примеры.
Думаю сделать все в прерываниях по таймеру, может как по другому можно сделать.
Код
freemovG00 indata; //данные которые пришли по 485
freemovG00 actualdata; // где сейчас находится супорт

void interrupttimer_10us()
{
//здесь вычислять сколько импульсов step и направление dir на каждый серво-привод в зависимости от отношения ><xyz feed


}

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Dec 1 2013, 09:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Благодарю. еще вопрос, для линейной интерполяции в самый раз, а если нужно переместить ось по дуге? Что еще нужно будет в контроллере кроме этих параметров step acc dacc speed ?
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Dec 1 2013, 09:45
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(sergey sva @ Dec 1 2013, 13:01) *
... Что еще нужно будет в контроллере...


когда-то делал такое под писюк. там чтоб не напрягать мозги постоянно - внешний PIT ставил и PPI. Таймер - то задавал
кол-во шагов и частоту, интерфейс - сохранял все остальные сигналы.

Собственно при решении на МК - всё есть на борту. ШИМ, прерывание по окончанию счёта, фиксация других сигналов.
Если подумать хорошенько, то думаю можно внешней обвзякой(а может и без неё - зависит от протокола обмена с железом)
и парочкой таймеров - решать задачу одновременного
перемещения по двум векторам или ышо круче - элептическим кривым(думаю можно попробывать).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 05:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.02186 секунд с 7
ELECTRONIX ©2004-2016