Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » построение отрезка по координатам и движение по нему. [RSS Feed]

#1 Фев. 12, 2010 00:16:28

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

построение отрезка по координатам и движение по нему.

Привет питонеры :)

И так дано:
есть некие координаты (x1,y1.z1) = 100,100,200 и (x2,y2,z2) = 400,200,100; (мм)
буфер обмена 4096 байт;
подача на двигатель одной оси приравнена условно 1000 сигналов == 1 мм; (т.е. каждые 4 мм надо делать сброс буфера)
рабочая(суммарная) скорость перемещения по координатам V = 200мм./сек.
Для варианта “”“Б”“” плавное ускорение и торможение. Ускорение = 2мм/сек**2

Задача такая:
нарисовать блок-схему и примерный математический расчёт.
думаю так же подойдёт http://ru.wikipedia.org/wiki/Алгоритм_DDA-линии или http://e-science.ru/math/theory/?t=277
я удумаю решать так(для начала в двумерном пространстве):


V == V(x) + V(y)
X2 - X1 = AB
Y2 - Y1 = BC

AC**2 = AB**2 + BC**2
Длинна найдена, осталось движение по отрезку:
А) резкое
Б) плавное

“”“проверка движения координатного двигателя”“”
 
если X2-X1 < 0 == против_часовой_стрелки
если X2-X1 > 0 == по_часовой_стрелки
иначе стоп
#____________________

если Y2-Y1 < 0 == против_часовой_стрелки
если Y2-Y1 > 0 == по_часовой_стрелки
иначе стоп
“”“Цикл Памяти”“”
цикл_памяти = (((X2-X1)+(Y2-Y1))*1000)/(значение_буфера-96) #для очистки буфера
начало_цикла = 0
если начало_цикла не равно цикл_памяти:
начать движение пропорционально суммарно не превысив 4000 сигналов
иначе стоп
Блок-схема


______________
знаю что напортачил , если есть возможность подскажите где…

Офлайн

#2 Фев. 12, 2010 19:56:27

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

построение отрезка по координатам и движение по нему.

нахождение пропорции для 2Д, где


>>> a = модуль(x2-x1)
>>> b = модуль(у2-у1)
если а больше b
c = a/b
d = 1
если с*b равно a
подставить значение пропорционального хода(c,d)
иначе соблюдать пропорции(a,b)

если b больше a
c = b/a
d = 1
если с*a равно b
подставить значение пропорционального хода(c,d)
иначе соблюдать пропорции(a,b)

Офлайн

#3 Фев. 12, 2010 20:10:41

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

построение отрезка по координатам и движение по нему.

при распределении скоростей , знаем что скорость не должна превышать 200мм/сек. , тогда получается

максимальное_значение = 200000

суммарное_количество_за_секунду = квадратный_корень((х2-х1)**2+(у2-у1)**2)/максимальное_значение

суммарное_количество_за_секунду делим пропорционально движению

Офлайн

#4 Фев. 12, 2010 20:11:57

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

построение отрезка по координатам и движение по нему.

при плавном ускорении и торможении максимальное_значение варьируется от 0 до 200000
еще http://ru.wikipedia.org/wiki/Широтно-импульсная_модуляция может пригодиться

Отредактировано (Фев. 12, 2010 20:18:18)

Офлайн

  • Начало
  • » GUI
  • » построение отрезка по координатам и движение по нему.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version