Страница 4 из 8

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 07 окт 2015, 14:59
Сергей Саныч
grakun писал(а):В конечном итоге дуга все равно преобразуется в вектора
Не обязательно. К примеру, алгоритм Брезенхема https://ru.wikipedia.org/wiki/%D0%90%D0 ... 0%BC%D0%B0 прекрасно строит дуги и окружности, не преобразуя их в вектора и не пользуясь "тяжелыми" операциями типа умножения и деления.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 07 окт 2015, 15:05
selenur
grakun писал(а):
sas_75 писал(а):Ваша неправда. Например Mach3 очень даже понимает команды G02 и G03. При обработке отверстий и закруглений с постоянным радиусом программа получается очень компактной.
Понимает на уровне макрокоманды, как руководство к действию. В конечном итоге дуга все равно преобразуется в вектора что бы получить координаты точек и выдать импульсы на оси x,y. Программа компактная, но математики для процессора больше. Mach3 тянет эту математику, на Atmega328 любое лишнее движение это потеря быстродействия. Поэтому часть математики я передал программе подготовки кода, ту часть которую возможно передать. Код больше но скорость обработки вырастает в несколько раз.
По поводу того что дуга всегда преобразуется в отрезки, я с вами не соглашусь! Т.к. используя алгоритм брезенхема для окружности, мы сразу получаем для оси X,Y в булевом варианте (нужно/не нужно) необходимость формировать импульс на STEP вывод драйвера осей.
По поводу того что любое лишнее движение на Atmega, уменьшает быстродействие, с этим соглашусь, т.к. по старой моей теме http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=4215 (разработка контроллера на атмега-16) я когда занялся оптимизацией, и вычислял количество тактов процессора необходимых для вычислений траекторий, то применение прямолинейного движения самое оптимальное, позволяло получать до 20кГц, применение движений по дуге не превышало 10 кГц.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 07 окт 2015, 16:32
michael-yurov
grakun писал(а):
michael-yurov писал(а):Mach3 сильно по разному движется по траектории с дугами и по той же траектории, преобразованной в отрезки.
Вы имеете виду преобразованной в отрезки другой программой?
Я имею в виду, что если сохранить траекторию, например, в арткаме с дугами, или только линейными отрезками - Mach3 будет двигаться по ним по разному и пройдет за разное время.
А сам Mach3 не умеет преобразовывать дуги в отрезки.

Вот, для примера, одна и та же траектория с дугами и без.
Обрати внимание на прямоугольник со скругленными углами вверху справа.
1.png (5472 просмотра) <a class='original' href='./download/file.php?id=59724&mode=view' target=_blank>Загрузить оригинал (125.88 КБ)</a>
(здесь специальна были заданы настройки / условия при которых Mach3 сильно отклоняется от траектории)

Вот здесь движение близко к траектории, но, получается разное время выполнения (что интересно - для отрезков время меньше)
2.png (5472 просмотра) <a class='original' href='./download/file.php?id=59725&mode=view' target=_blank>Загрузить оригинал (117.8 КБ)</a>
А здесь в режиме точной остановки - наоборот, медленнее там, где дуга отрезками:
3.png (5472 просмотра) <a class='original' href='./download/file.php?id=59727&mode=view' target=_blank>Загрузить оригинал (104.33 КБ)</a>

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 01:27
grakun
Сергей Саныч писал(а):
grakun писал(а):В конечном итоге дуга все равно преобразуется в вектора
Не обязательно. К примеру, алгоритм Брезенхема https://ru.wikipedia.org/wiki/%D0%90%D0 ... 0%BC%D0%B0 прекрасно строит дуги и окружности, не преобразуя их в вектора и не пользуясь "тяжелыми" операциями типа умножения и деления.
У меня немного другой алгоритм, я этот еще не проверял, возможно он будет работать быстрее.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 01:33
grakun
selenur писал(а):По поводу того что дуга всегда преобразуется в отрезки, я с вами не соглашусь! Т.к. используя алгоритм брезенхема для окружности, мы сразу получаем для оси X,Y в булевом варианте (нужно/не нужно) необходимость формировать импульс на STEP вывод драйвера осей.
Движение на один шаг тоже отрезок, но в булевом варианте это конечно должно работать быстрее.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 01:42
grakun
selenur писал(а):применение прямолинейного движения самое оптимальное, позволяло получать до 20кГц, применение движений по дуге не превышало 10 кГц.
У меня основная проблема из за нехватки ног. Пришлось делать аналоговую клавиатуру, а она сожрала все. Время на опрос и осмысление опроса большое. В результате те же 8-10 кГц на ось.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 01:59
grakun
michael-yurov писал(а):Я имею в виду, что если сохранить траекторию, например, в арткаме с дугами, или только линейными отрезками - Mach3 будет двигаться по ним по разному и пройдет за разное время.
А сам Mach3 не умеет преобразовывать дуги в отрезки.
Понятно, про Mach3, я с ним очень мало работал. Думаю вектора имеют начало и конец соответственно ускорение и торможение, а по дуге торможение только в конце, скорость прохода постоянная, но она может отличатся от рабочей.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 02:04
grakun
megagad писал(а):И да - выж вроде писали, что "дуги" ваш контроллер не понимает? Только линейная интерполяция(вместо дуги - кучка отрезков)?
Как и обещал здесь работа контроллера с дугами состоящими из отрезков https://www.youtube.com/watch?v=5foHD0- ... e=youtu.be

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 07:33
selenur
grakun писал(а):
selenur писал(а):применение прямолинейного движения самое оптимальное, позволяло получать до 20кГц, применение движений по дуге не превышало 10 кГц.
У меня основная проблема из за нехватки ног. Пришлось делать аналоговую клавиатуру, а она сожрала все. Время на опрос и осмысление опроса большое. В результате те же 8-10 кГц на ось.
Использование аналогового входа плохая идея, т.к. реально теряется очень много тактов процессора, намного проще использовать вот такой вариант http://robocraft.ru/blog/arduino/520.html тебе будет достаточно подключить 2 сдвиговых регистра, и работать с ними через аппаратный spi, так-же есть удобные преобразователи i2c <=> дисплей, что сокращает количество необходимых выводов, и процесс передачи данных отдается отдается аппаратному модулю, в результате чего, у тебя появляется куча свободного времени у процессора для других задач. :-)

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 09:43
grakun
selenur писал(а):так-же есть удобные преобразователи i2c <=>
К сожалению с этого и и начались проблемы. После подключения библиотеки i2c. Да прекрасно работает индикатор, читается карта, но полный стопор в обработке кода. Может насчитать что угодно. Проверял на 15 микросхемах.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 09:50
grakun
selenur писал(а):аппаратный spi
Вывода 10,11,12,13 заняты SD картой, этот вариант не получается.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 09:58
selenur
т.е. стопор? неравномерность шагов, правильно понимаю? тогда для генерации step импульсов правильнее применять таймер, с прерываниями, это обеспечит достаточно равномерный сигнал.
У SPI наверняка замечал применение вывода ss? так вот это позволяет на одной шине держать огромное количество устройств. вот пример http://robocraft.ru/blog/arduino/541.html

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 10:25
ALS
Как вариант, если есть хотя бы 4 свободные ноги - можно подключить до восьми кнопок с пом. дешифраторов или мультиплексоров (напр., CD4052).
5 ног дают уже 16 кнопок :)

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 10:43
grakun
selenur писал(а):т.е. стопор? неравномерность шагов, правильно понимаю?
Нет еще хуже. Он читает правильно карту, передает информацию на подпрограмму обработки, а там она может посчитаться или может вообще зависнуть, хотя все остальное адекватно работает.(я это вижу на мониторе при пошаговом просмотре). До шагов дело не доходит. Для меня это так и осталось загадкой.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 10:49
grakun
ALS писал(а):Как вариант, если есть хотя бы 4 свободные ноги
К сожалению ни одной цифровой, заняты даже 2 и 3 нога. Заняты (работают как цифровой выход аналоговые ) 28,27,26. Тестирование в течении двух месяцев показывает стабильную работу. Я выложу схему, просто пока нет в приличном виде.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 10:54
grakun
selenur писал(а):применять таймер, с прерываниями, это обеспечит достаточно равномерный сигнал.
Таймер не совсем подходит к заложенному алгоритму. Ускорение, торможение, интерполяция все будет по другому и это надо все будет перепроверять.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 10:57
grakun
selenur писал(а):У SPI наверняка замечал применение вывода ss?
Ну да это правильно, я думал про это. Но время считывание и так не самое лучшее, а здесь его нужно будет дополнительно тратить.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 11:01
selenur
Вариант 1) У таймера есть ctc режим, которым можно регулировать ускорение.
Вариант 2) Используя алгоритм брезенхема можно еще и это реализовать.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 08 окт 2015, 11:09
grakun
selenur писал(а):Вариант 1) У таймера есть ctc режим, которым можно регулировать ускорение.
Вариант 2) Используя алгоритм брезенхема можно еще и это реализовать.
Ну наверно буду пробовать, это будет следующий этап. Сейчас пока в производстве то что уже стабильно работает и прошло испытания.

Re: АВТОНОМНЫЙ КОНТРОЛЛЕР

Добавлено: 20 окт 2015, 20:45
grakun
selenur писал(а):и процесс передачи данных отдается отдается
Да, именно "отдается"потому что передача данных последовательно занимает много времени.