Перейти к содержанию
Олег А.

Управление токарным на Atmega. Электронная гитара.

Какая версия "гитары", в текущий момент, установлена на Вашем станке?  

241 пользователь проголосовал

  1. 1. Какая версия "гитары", в текущий момент, установлена на Вашем станке?

    • Digital_Feed_2e
      30
    • Digital_Feed_3b
      5
    • Digital_Feed_3b_Uno
      13
    • Digital_Feed_4k
      3
    • Digital_Feed_4k_lite
      5
    • Digital_Feed_5d
      5
    • Digital_Feed_6c_auto
      22
    • Digital_Feed_7e2
      158


Рекомендуемые сообщения

Дата: (изменено)

Добаввить резьба / подача / делилка/ параметры

 

Параметры, шаг ХВ, Люфт ХВ

я пытался озвучить рабочие режимы,

параметры станка логичней спрятать подальше в меню или пробить на уровне "исходного кода" или отдельно шить в пзу.

но я двумя руками за реализацию по схеме Андрея, т.е. за максимальное быстродействие

 

А экран какой? ЖКИ на две строки на HD44780 ?

Да, 16x2, 32 символа, на мой взгдяд, более чем достаточно

голый

по моему мнению предпочтительно шилдом с набором кнопок на борту

 

p.s. а почему выбор режима тоже не сделать кнопками? Меньше тумблеров и крутилок- проще.....

 

выбор режима должен происходить без долгих переборов меню и чтений инструкций

 

p.s. поворотный энкодер что-то типа такого

на мой взгляд обеспечит большую оперативность чем перебор кнопками.

сейчас глянул в местном радиомагазине, выбор более чем из 20 вариантов, цена менее чем по ссылке.

Изменено пользователем Олег А.

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

параметры станка логичней спрятать подальше в меню или пробить на уровне "исходного кода" или отдельно шить в пзу.

По моему все же лучше параметры снаружи.

Защитить от дурак случайностей.

Ну можно вывести куда нить кнопочку и ежели кнопка нажата в момент старта устройства, то переводим контроллер в режим установки параметров. При этом все остальные функции не доступны.

Равно как и не доступна функция управления параметрами ежели устройство в рабочем режиме.

Ну примерно как тест принтера. Включаем устройство при нажатай кнопке - параметры.

Там делов меньше чем я тут писал :)

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение

Ну примерно как тест принтера. Включаем устройство при нажатай кнопке - параметры

Юрий, я понял,

режим программирования устройства предлагаю обсудить чуть позже.

 

пока у меня неясность в голове по "выбор длины прохода"

если брать минимальную дискрентость 0.01 то ни кнопкой ни энкодером это делать неудобно.

???нарастающая скорость перебора в зависимости от времени удержания кнопки??? даже близко не представляю

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

Кстати там еще и проблема с шагом винта. Ежели у кого попадется дюймовый (например TSA16), то точности 0,01 может быть ужо и маловато. :unknw:

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение

А ежели скажем так, в режиме установки длины прохода, кнопки вправо/влево задают целую часть

А вверх/вниз дробную. ?

Поделиться сообщением


Ссылка на сообщение

1.2. режим подача

...........

1.2.1. направление

а. задается тумблером

Я бы сделал самодельный тумблер на 5 положений (а может такие и есть в продаже)

ускоренная подача лево - подача лево фиксируется - нейтраль - подача право фиксируется - ускоренная подача право

 

на ускоренной - идет максимально быстро

на рабочей согласно заданной скорости

 

пока у меня неясность в голове по "выбор длины прохода"

 

Если будет реализована ускоренная подача то можно подогнать суппорт в нужное место, потом тонкая настройка кнопками, давим "запомнить"

аналогично задаем другое крайнее положение.

 

потом останется только давить кнопки и крутить поперечку - многопроходный цикл в контроллере.

Поделиться сообщением


Ссылка на сообщение

Я бы сделал самодельный тумблер на 5 положений (а может такие и есть в продаже)

ускоренная подача лево - подача лево фиксируется - нейтраль - подача право фиксируется - ускоренная подача право

Такого типа переключателей много всяких разных

post-44073-058202000 1353861736_thumb.jpg

неплохой вариант :good: оперативный и понятный

можно продумать: резьба лево - подача лево - делилка - подача право - резьба право

ускоренное перемещение надо только в том случае, если есть режим возврата,

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

Поделиться сообщением


Ссылка на сообщение

Ну тогда помимо оборотов, хорошо бы вывести и положение резца по Х, потому как иначе без мерительного инструмента попасть в размер буит затруднительно.

Или я чегото не понял?

Поделиться сообщением


Ссылка на сообщение

Ну тогда помимо оборотов, хорошо бы вывести и положение резца по Х

только это будет относительное положение, если разомкнуть маточную гайку или рычаг автоподачи результаты будут не актуальны, и про люфт надо помнить.

А так, наверное это будет удобно, особенно на некоторых китайцах с продольной подачей 18,6303750387302 :fool: мм на оборот

Поделиться сообщением


Ссылка на сообщение

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

даже если разъемы будут глючить можно их выкусить и пропаять стержневыми перемычками,

незамедлительно взял парочку.

 

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

Поделиться сообщением


Ссылка на сообщение

Олег, может тут ответы будут. :unknw:

Поделиться сообщением


Ссылка на сообщение

Юр, их есть у меня, времени нет и отстал я лет на 20-25,

признаюсь программировал последний раз на Бейсике в далеком 86-88-ом, когда компьютеров в совдепии никто не видел, но потом как-то дорожка в другую сторону увела...

Поделиться сообщением


Ссылка на сообщение

программировал последний раз на Бейсике в далеком 86-88-ом

 

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

Фактически останется только микроконтроллер + пару микрух логики.

Если постараться то можно упихнуть это в формат корпуса дро-350.

Получится компактный блок управления, который умеет резать метрические и дюймовые резьбы и различные конуса + будет управление от mpg и ehn.

Поделиться сообщением


Ссылка на сообщение

Основная проблема при Ардуине, как мне видится, это скорость обработки прерываний от энкодера. Может тупо не хватить производительности. Если бы была серва на основном приводе, то программирование было бы примитивным - импульс на серву, импульс на шаговик. И несколько таблиц пересчета количества импульсов шаговика к импульсам сервы, в зависимости от шага резьбы.

А если поставить на штатный движек драйвер от сервы, это не облегчит задачу? Все же серву можно из любого движка сделать. Точности конечно особо не добиться, т.к. обмоток мало, но заставить крутиться в необходимом режиме можно. А как раз драйвер и будет с энкодера данные считывать. Так Ардуинку и разгрузим.

Как идея? Покритикуйте пожалуйста. :)

Поделиться сообщением


Ссылка на сообщение

Так прерывание все равно обрабатывать с частотой = энкодер*обороты,

а далее выводи шим (который тоже можно таблицей оформить) на родные (или свои) силовики - вот и псевдо серва.

Поделиться сообщением


Ссылка на сообщение

Для энкодера используйте аппаратный декодер - есть куча микросхем. Либо ставте еще один малоногий но шустрый контроллер (можно хоть в корпус энкодера влепить, хоть на проводах платку). Программа, нежно написаная на асемблере, успеет обработать каждый фронт каждого импульса. Я поставил контроллер, т.к. имел его в наличии. Работает на 8 мипсах и успевает обрабатывать энкодер почти аж до 3000 об/мин.

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

Поделиться сообщением


Ссылка на сообщение

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

Если постараться то можно упихнуть это в формат корпуса дро-350.

 

Получится блок размером 220х140х40, при кнопках 12х12 и индикаторе не более 116х37(WH2002A), если взять кнопки 6х6, то и в корпус 160х100 войдёт.

 

post-17240-078770000 1355294747_thumb.gif

Поделиться сообщением


Ссылка на сообщение

Выпало пару часов свободного времени, попытался запустить датчик энкодера, который время назад выдернул из Canon IP4200.

 

post-44073-095373800 1355429616_thumb.jpg

 

post-44073-061317200 1355429628_thumb.jpg

 

на самом датчике маркировка:

A36

5x47

даташитов и какой либо документации не нашел, выходы грузил на 5мА,

если кто видел какую-либо документацию на похожие датчики, просьба кинуться ссылкой.

В общем на выходах я увидел не совсем то, что ожидал,

уровни соответствуют или близки к TTL

внутри тригеры со странной логикой работы

логика работы в принципе понятна, но в голове четко не прорабатывается

каналы не симметричны, на одном из них джитер невозможен даже при неустойчивом состоянии диска,

т.е. этот канал меняет состояние только если риски прошли полный цикл в какую либо сторону,

если одна "риска" перекрыла диод, а вторая мечется туда-сюда - тригер состояние не изменит

если одна "риска" не перекрыла диод, а вторая мечется туда-сюда - тригер состояние не изменит

на втором канале при этом будет отображено реальное состояние "риски"

Поделиться сообщением


Ссылка на сообщение

на втором канале при этом будет отображено реальное состояние "риски"

поправлю,

на втором канале при этом будет отображено реальное состояние "2-ой риски" при условии прохода первой риски в любом направлении

Поделиться сообщением


Ссылка на сообщение

Продолжил эксперименты с энкодером,

для делилки дискретность 0.2градуса с точностью +-0.2 достаточна?

Поделиться сообщением


Ссылка на сообщение

Хотя этого, на грани, хватает для делилки

олег, А зачем для делилки такая скорость, Шпиндель можно повернуть и не быстро. Или я чегото не догнал?

Ну может все же рассмотреть вопрос с одной меткой на один оборот, параллельно энкодеру.

Т.е. для оборотов выше скажем 1000 пользуемся по сути "тахометром" из одной метки, на этих скоростях в общем то резьбы не режем. И позиционироваться не нужно,

А шаговик свою длину обработки пройдет с заданной скоростью без относительно оборотов шпинделя,

Ежели скорость меньше, то забываем о тахометре и обрабатываем энкодер.

Ну както так.

Поделиться сообщением


Ссылка на сообщение
В 25.12.2012 в 01:04, Аэробус сказал:

олег, А зачем для делилки такая скорость, Шпиндель можно повернуть и не быстро. Или я чегото не догнал...

давайте считать,

у меня энкодер 1800 рисок, при честном декодировании, что для делителя необходимо (как мне кажется) 1800 х 4 = 7200 импульсов - 5.5 об/сек

насколько резко можно дернуть (не провернуть оборот) шпиндель? а защита от дурака?

у буржуев якобы есть рабочий на 80 кГц, но под старую среду, на 1.0.2 я не запустил или до конца не разобрался.

В 25.12.2012 в 01:04, Аэробус сказал:

Ну может все же рассмотреть вопрос с одной меткой на один оборот, параллельно энкодеру...

можно просто делить наш энкодер (внутренним счетчиком) до приемлимых значений, но только в режиме подач, для резьбы не годится,

я все же думаю в каждом режиме обрабатывать энкодер различными алгоритмами.

возможно спасет написание быстрой библиотеки, (быстрый грамотный обработчик) у Андрея же работает до МГц на 20тактовой.

 

Изменено пользователем Олег А.

Поделиться сообщением


Ссылка на сообщение

1800 х 4 = 7200 импульсов

Я про умножение на 4 не понял. Как я понимаю схему эккодера, там 2 выхода. С первого выхода на восходящий фронт вешается прерывание. По нему обработчик смотрит уровень на втором выходе. Если уровень 1, то вращение в одну сторону, если уровень 0, то в другую. Исходя из этого добавляем +1 или -1 в переменную положения. Откуда умножение на 4 берется?

Поделиться сообщением


Ссылка на сообщение

Пара советов

 

Про делилку:

Зачем прерывание на каждый клок для делилки? Используйте просто счетчик, реализованный на таймере. Опять же говорю: нужен аппаратный декодер сигнала энкодера. С квадратурными сигналами напрямую - точно не успеете или потеряете 4х разрешенку и все равно съест много ресурсов.

 

Вот кусочки кода:

 

для делилки нужно прерывание по изменению направления вращения шпинделя:

void __attribute__((__interrupt__, no_auto_psv)) _CNInterrupt(void)

{

unsigned int tmp_tmr_value;

tmp_tmr_value = ReadTimer3();

Spindle_dir_flag = ENCODER_DIR_PIN;

tmp_tmr_value = Encoder_resolution_x4 - 1 - tmp_tmr_value;

WriteTimer3(tmp_tmr_value);

Clear_Intr_Status_Bit;

}

 

угол можно посчитать в любое время, когда захочется:

 

void Calc_Spindle_Angle(void)

{

Spindle_Angle = ReadTimer3();

if (Spindle_dir_flag == 1)

{

Spindle_Angle = Encoder_resolution_x4 - 1 - Spindle_Angle;

}

Spindle_Angle = (unsigned int)(((float)Spindle_Angle)*36000/((float)Encoder_resolution_x4)+0.5); // значение угла х100

}

 

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

 

Про дребезг.... дребезга на входе в мк нет.

Оптрон энкодера совсем не глупый - это раз, предусматривайте внешнюю давилку дребезга - это два.

Поделиться сообщением


Ссылка на сообщение

Опять же говорю: нужен аппаратный декодер сигнала энкодера.

что должно быть на выходе декодера? степ/дир, или...?

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.