Activity
Всем привет!
Работаю сейчас над дугами - G02/G03 - занятная, я вам скажу, штука 😵
А пока к ним готовился, по-честному реализовал линейную интерполяцию (по секрету: GIGAMESH до сих пор делал сплайн-интерполяцию (по двум точкам 😛 )).
Инструкция:
П.С.: При появлении новой версии, во все записи, где можно было ранее скачать GIGAMESH, всегда добавляю ссылку на новую версию. Все версии, опубликованные ранее, считаются устаревшими, в блоге их оставляю лишь для соблюдения хронологии развития GIGAMESH`a, т.к. это блог.
С уважением, Spike.
Добавлено 08.05.14 13.00
Сделал сохранение настроек.
Добавлено 08.06.09 16.10
Новая версия
Судя по комментариям к предыдущей записи пинания не получилось - видимо пинать нечего было 😛
Вот по этой версии может быть удастся услышать отзывы:
Что изменилось:
- GIGAMESH 1H теперь позволяет запускать Ж-программу с более свободным синтаксисом
- круговая интерполяция подменяется линейной (вместо дуги выполняется отрезок прямой из точки начала дуги в точку конца дуги)
- немного изменился интерфейс
Ожидается:
- GIGAMESH 1H ПОКА НЕ ОБРАБАТЫВАЕТ КОНЦЕВИКОВ!!! - скоро будет
- круговая интерполяция
Добавлено 08.05.07 12.20:
накропал мурзилку…
Добавлено 08.06.09 16.10
Новая версия
В прикрепленном архиве самый что ни на есть пилотный пилот программы GIGAMESH1 H для PCNC:
Добавлено 08.05.09 0.31:
здесь более свежая версия.
С ДНЕМ ПОБЕДЫ!!!
Кратко о том как работает GIGAMESH1 H:
- программу в Ж-коде можно загрузить нажав кнопку со стандартной иконкой “открыть”, при этом происходит интерпретация Ж-кода и заполнение списка. Также становится доступной кнопка “Запустить интерполятор”.
- далее нажимаем эту кнопку - запускаем интерполятор, при этом мигает зеленый индикатор, ползут проценты и ячейки списка закрашиваются зеленым (программа подает признаки жизни 😛 )
- если на вкладке “настройка” стоит крыжик “Запустить выполнение программы по окончании интерполяции”, то, если все включено (кнопкой “Включить”), GIGAMESH1 H, проcчитав траекторию приступит к выполнению программы (замигает синий индикатор, поползут проценты и ячейки будут закрашиваться синим.
- на вкладке “настройка” можно настроить ноги LPT-порта, настройки, которые стоят по умолчанию, по умолчанию же и загружаются, чтобы изменить текущие настройки необходимо нажать кнопку “Установить конфигурацию”
- в процессе выполнения программы можно поменять частоту шагов
- на вкладке “ручное управление” можно поерзать осями вручную
Внимание:
- GIGAMESH1 H НЕ ОБРАБАТЫВАЕТ КОНЦЕВИКОВ!!! - скоро будет
- GIGAMESH1 H обрабатывает пока только G00 и G01
- Могут быть глюки различного свойства, как при интерполяции, так и при выполнении.
- Так уж устроен GIGAMESH1 H, что сначала необходимо выполнить интерполяцию, т.е. просчитать траекторию, а потом выполнить ее на внешнем устройстве. Впринципе можно запустить интерполяцию и выполнение одновременно, но нет гарантии что процесс интерполяции будет быстрее чем процесс выполнения.
Добавлено 05.05.08 14.10
Выяснилось что GIGAMESH1 H работает только с теми файлами, которые есть у меня 😛 . Оказывается что Ж-программа имеет довольно свободный синтаксис 😃. Сейчас пробую создать нормальный анализатор Ж-кода.
Вывод: сначала спецификацию смотреть надо.
Добавлено 08.06.09 16.10
Новая версия
Программа становится похожа на продукт, сырой пока еще, однако уже кое что:
и результат (Ж-программа другая 😎 ):
видео: 08.03.23.rar
На работе комп двухъядреный - работает влет, а вот дома - если программу запустить, комп ни на что больше не реагирует, даже диспетчер задач имеет приоритет ниже 😛 - думаю сделать чтоб можно было регулировать, хотя…
С ручным управлением опять же на двухъядреном - все ОК, а вот дома - поток дергающий ногами - забивает поток обработки интерфейса, а там для ручного используется скроллбар.
Так что выводы:
- повышенный приоритет потока не всегда добро
- отладку на мощном компе лучше не делать - может оставить баги.
Решил я продолжить свой блог.
Работа над проектом не останавливалась и продолжается по сей день.
На данный момент вычертились новые направления и ответвления работы, но…, выбрано несколько приоритетных задач. Кстати сказать название блога поменял в связи с перестановкой приоритетов. 😎
Над одной из этих задач, а именно, разработка ПО для ЧПУ, я сейчас работаю.
Вот сформулировал список минимальных требований к пилотной версии программы для ЧПУ:
- Конфигурирование LPT - порта
- Конфигурирование приводов
- Ручное управление приводами
- Конфигурирование дома (0, 0, 0)
- Обработка G-кодов G0 и G1,
- Рассчет траектории по G0, G1
- Автоматическое управление приводами (3 оси)
- Автоматический контроль дома привода
На перспективу такие пожелания есть:
- Отображение траектории на 3D
- Компенсация инструмента
- Круговая интерполяция
- Look-ahead
Пилотная версия сейчас на стадии примерно 80% готовности, т.е. с разной степенью стабильности работают следующие пункты: 1, 2, 5, 6, 7
Интересующимся - велкам, потестировать, обсудить.
Принимаются также пожелания по программе, что я забыл, что не знаю? 😉
З.Ы.: приветствуются также рассуждения о полезности разработки нового ПО, ведь их то (программ) уже весьма много.
Попричесал програмку, повесил на другой таймер (с б о льшим разрешением), теперь максимальная частота которую я видел на выходе CLOCK - что-то около 4кГц.
На своем L297-8 драйвере я получил в полношаговом (NormalDriveMode) 330Гц без пропуска шагов (пальцами довольно сильно придерживая вал 😎 ), в полушаговом - до 700Гц.
Добавлено 29.05.2007:
Старую версию убрал. Новая версия, добавлено: частота при отключенном отображении - до 90кГц (Pentium D 3.2GHz W2k)
😎
Попробовал построить зависимости размеров рабочего пространства от расположения ног, при заданных изменениях длинн ног, максимальных отклонениях ног в шарнирах:
Пока на словах:
- Рабочее пространство выгоднее вынести на другую сторону, т.е. развернуть шпиндель.
- Объем рабочего пространства оптимален при радиусе расположения ног равном примерно половине средней длинны ноги, т.е. для ног длинной 600-1200мм оптимально разнести ноги на расстояние 450мм относительно общего центра
- Угол нормали опоры ноги к рабочей плоскости пока промыслить не удалось, но есть подозрение что он мало влияет на общую картину.
Для тестирования драйвера L297+L298 написал прогу:
,
фунциклирует пока еще не все, но основную функцию выполняет.
Защит никаких нету, так что может повиснуть, но ctrl+alt+del и Диспетчер задач проблему устраняют.
Скорость зависит от производительности машины, на которой выполняется программа, ничего не оптимизированно, больше 1100 шагов/секунду ставить не рекомендую - повиснет (1000 шагов/секунду конечно же не выдаст
😎 ).
Может кому пригодится…, пишите пожелания если есть.
Добавлено 2007.03.04
Новая версия.
Продолжаю ковыряться с драйвером:
Схему взял вот эту:
,
сделал разводку:
,
печатнул и протравил плату, напаял элементы, запускать - опять двадцать пять, движок туда сюда колбасится, и, соответственно, не крутится. Управление через LPT, написал для этого прогу небольшую, протестил на светодиодах - все ок.
Просто делать шаги (по одному) вообще не получается - шаг вперед, шаг назад, что-то на месте…
Есть подозрение что L297 барахлит 😮 :
,
эти зависимости я снимал на входах L298 (на выходах L297 то же самое), делая по одному шагу и измеряя мультиметром напряжение, в абсолютных это 4.35В, там где чуть пониже - 4В.
но пробовал две L297 - движок работает примерно так же. Графики для второй микросхемы не делал.
Еще такое наблюдение: когда подается 1 на вход направление движок вообще еле слышно пощелкивает при подаче CLOCK и даже не дергается
Добавлено: 2007.02.21 2.33
Нашел жучка 😲 - SYNC была заземлена!
Поменял микросхему (третью поставил) далее последовательность действий такая:
Режим полношаговый (на входе HALF/FULL - 0)
- Запускаю прогу, она при инициализации сбрасывает все регистры LPT в ноль и выставляет на CLOCK 1
- Включаю питание
- Подаю ENABLE
- Подаю RESET, снимаю, опять подаю, проверяю наличие HOME - есть, проверяю ABCD = 0101, как доктор прописал, раньше и этого не было - радуюсь…
- Делаю шаг - все ОК АВСD = 1001 - радуюсь…
- Делаю второй - пошло-поехало (рано радовался), ну да видно на графике ниже - перескочил в режим с одной включенной фазой, потом вообще перескочил через одно состояние…
Пишу вот пункт 6 и думаю, опа, а какой должна быть пауза в тактовом сигнале (у меня было 10мс), смотрю даташит - минимум 0.5 мкс, ну да навсяк случай попробую щас 50мс поставить. Попробовал - нифига.
Да вот померял напряжение на ABCD при DIRECTION=1 что-то около ABCD = (0 0.2 0 0.2)
Добавлено 2007.02.21
Вся эта бредятина 😃 была из-за того, что LPT-шную землю к земле драйвера не подцепил 😃
Из плюсов: я теперь точно знаю как работает шаговый двигатель в полушаговом и полношаговых режимах, и как ими управлять - даташит на L297 был перечитан раз 300 😎.
Гоняю движок в полном шаге с двумя фазами уже минут двадцать, какая частота реально - хрен его знает (использую виндовский таймер) - не очень быстро. Греется движок довольно сильно сейчас уже руке очень горячо, но терпеть можно, драйвер с маленьким радиатором теплый - градусов 40-50.
Добавлено 2008.05.21
Набор для лазерно-утюжной технологии: L297_8_Driver_v.2.zip
Собрал на слепыше вот такую схему
,
только поставил сборку диодную L6210 вместо UF54… Понатыркал резисторов между входами L297 и +5В. Включил - что то нестабильное получилось, причем шаг делался при замыкании входа на землю, что в принципе логично, но вот не знаю, можно ли на LPT получить замыкание на землю, поэтому отпаял резисторы и все заработало. При подаче ENABLE микросхема включалась, при подаче CLOCK двигатель делал шаги, по CW/CCW менялось направление вращения.
Понес на работу чтобы на LPT подключить на старенький комп, пока донес работать драйвер перестал 😃. И дальше что только я не пробовал 😵, дрыгается туда-сюда мотор. Причем меряю напряжение на входах - все как доктор прописал (если надо 0 - значит он есть, если 5В - значит 5В), а не пашет.
Большая просьба коментируйте свой выбор.
Купил тут домкрат нивовский = 190 р, довольный, еще продавцов спрашиваю: “еще мол есть?” - они: “есть 9 шт!”, ух ты думаю - нормалек, чуть сразу не купил 7 шт - удержался. Приехал в гараж и давай его разбирать - разобрался без проблем, но что я увидел! 😢, даже не знаю каким инструментом можно ТАК изуродовать сталь 😃 ! Фордовский домкрат казался более менее. Все, домкраты отпадают как класс - буду заказывать - тем более с хвостовиками свободы больше.
Оценка рабочего пространства гексапода
Для нового варианта с шаровыми опорами как снизу так и сверху. Каркас описан в пункте 4. В конструкции ног изменений почти нет.
Исходные данные:
- Максимальный угол отклонения от нормали ног = 33 градуса
- Длинна ног 590-860 мм
Данные получены измерениями при моделировании физической динамики в SolidWorks
Красными точками отображены точки крепления ног к неподвижной платформе. Крепление ног к подвижной платформе на расстоянии 100 мм от оси фрезера, расстояние от рабочей точки до плоскости подвижной платформы 150мм.
Рабочее пространство с учетом углов наклона пока не придумал как просчитать (т.е. как отобразить).
Вот долго думая пришел к такой схеме:
Сверху используются модифицированные шаровые опоры от “классики” ВАЗа, снизу все-таки пока карданы.
Добавлено 2006.12.22:
Похоже буду делать с шаровыми и внизу, только вот нашел кое-что получше чем от “классики”… - пальцы рулевой КАМАЗ (бывают отдельно = 80р., бывают с сухарями = 115 р.)
Для управления ногами гексапода, при использовании актуаторов с шаговыми двигателями и винтами будет использоваться такая схема:
Микросхема L297 сильно разгружает управляющий микроконтроллер, так как от него требуется только тактовая частота CLOCK (частота повторения шагов) и несколько статических сигналов: DIRECTION – направление (сигнал внутренне синхронизирован, переключать можно в любой момент), HALF/FULL – полушаговый/полношаговый режим, RESET – устанавливает фазы в исходное состояние (ABCD = 0101), ENABLE – разрешение работы микросхемы, V ref – опорное напряжение, которое задает пиковую величину тока при ШИМ-регулировании. Кроме того, имеется несколько дополнительных сигналов. Сигнал CONTROL задает режим работы ШИМ-регулятора. При его низком уровне ШИМ-регулирование происходит по выходам INH1, INH2, а при высоком – по выходам ABCD. SYNC – выход внутреннего тактового генератора ШИМ. Он служит для синхронизации работы нескольких микросхем. Также может быть использован как вход при тактировании от внешнего генератора. HOME – сигнал начального положения (ABCD = 0101). Он используется для синхронизации переключения режимов HALF/FULL. В зависимости от момента перехода в полношаговый режим микросхема может работать в режиме с одной включенной фазой или с двумя включенными фазами.
Предполагается следующий набор управляющих сигналов:
СLOCK - Такты шагов - 1 нога порта
DIRECTION - Направление - 6 ног порта
ENABLE - Разрешение шага - 6 ног порта
Входы:
HOME - начальные положения - 6 ног порта
Ну и далее возможны варианты…
Рама: сварная из трубы прямоугольного сечения
Винты: первоначально от домкратов (Нива),
Гайки: капролон
Двигатели: первоначально что найду, потом серии FL с моментом 1-1.5кгс*см
Драйвера: L297+L298, возможно позже покупные
Контроллер: пока не предуматривается - будет использоваться PromPC с параллельными интерфейсами
Приступаю к созданию фрезерного станка. Предварительно задаюсь следующими параметрами:
Тех.требования:
Размеры обрабатываемой детали: 300х300х300мм;
Тип привода: шаговые моторы и винтовая пара;
Инструмент: фрезы до 4мм с цилиндрическими хвостовиками ;
Точность позиционирования обрабатывающего инструмента: 0.01мм;
Материалы обработки: дерево, пластики, композиты, алюминий;
Скорость подачи: 50-300мм/мин;
Кинематика: параллельный манипулятор, гексапод.
Идея формировалась в несколько этапов:
- Лет 7-8 назад впервые пришла мысль о плоттере, это теперь я знаю как он называется, а тогда… для рисования керамическими красками. Подумал - подумал и забросил.
- В конце прошлого лета мысль ко мне вернулась. Ну и как-то сидя в курилке с одним товарищем, я высказал эту идею, а он говорит, мол пойдем к нам в отдел, я тебе покажу кой чего. Показал он мне плоттер, построенный одним мужиком из нескольких релюх (РП-21), с ручным управлением (когда он его строил компьютер был чем-то большим в здании ИВЦ). Попрошу как нибудь кого нибудь сфоткать это чудо, сейчас работаю в другом месте, а то предприятие - режимное.
- Простота идеи того плоттера меня просто поразила - линейный шаговый двигатель представлял собой четыре реле - принцип ползанья гусеницы: закрепился одним концом - подтянул второй, закрепил второй - выдвинул первый.
- Плоттер это конечно хорошо, но гравер - лучше, а фрезер еще лучше. Хочется конечно лучшего…, соответственно расширился и круг задач, для решения которых нужен этот станок и меньшего теперь не нужно.
- В процессе поиска компонентов для станка происходил одновременный поиск конструктивных решений, позволяющих из имеющихся и/или легкодоступных (или вообще существующих в природе) компонентов сделать нужный конструктив. И была найдена ссылка LME’s Computer Craftsmanship - заинтересовали роботы с параллельной кинематикой.
- Конечно конструкций параллельных роботов множество, в основном рассматривались два варианта: трехкоординатный (собственной конструкции, позже фото модели из конструктора) и шести (аналог LMECC).
Почему гексапод?
Во-первых очень мне понравилась идея, во-вторых шесть координат, в третьих не нужны точные направляющие. Есть и минусы: сложность управления, сложность актуаторов.
P.S.: Ссылка на ветку форума