Специальные цены   новые товары
Закрытая тема
Показано с 1 по 20 из 20

Контроллер на 2 сигнала STEP/DIR

Тема раздела Драйверы и контроллеры для CNC в категории Станки ЧПУ, Hobby CNC, инструмент; Приветствую всех! Надо тут разработать контроллер для двух драйверов на основе микроконтроллера PIC18Fxxxx. Драйверы готовые китайского производства. Управляются с помощью ...

  1. #1

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54

    Контроллер на 2 сигнала STEP/DIR

    Приветствую всех!
    Надо тут разработать контроллер для двух драйверов на основе микроконтроллера PIC18Fxxxx.
    Драйверы готовые китайского производства. Управляются с помощью стандартных сигналов типа STEP/DIR.

    Есть готовый девайс-контроллер STEP/DIR на одном PIC18F.
    Но он умеет управлять только одной парой сигналов STEP/DIR.

    С целью уменьшения цены и дальнейшего удобства по увеличению функциональности
    решил управлять двумя китайскими драйверами ШД с помощью одного пик контроллера.

    Какие грабли могут ждать меня при таком алгоритме?

    PIC18F Был выбран по причине наличия в нем нескольких 16 разрядных таймеров. Для создания независимых временных периодов необходимых для двух сигналов
    STEP/DIR.
    А скорость у меня задается с помощью АЦП. АЦП нужен для джойстика-потенциометра который указывает направление и скорость вращения ШД.
    Последний раз редактировалось Гани; 22.01.2010 в 19:35. Причина: дополнение

  2.  
  3. #2

    Регистрация
    13.07.2006
    Адрес
    Харьков, украина
    Возраст
    57
    Сообщений
    928
    Какой предполaгается тираж?

  4. #3

    Регистрация
    18.05.2009
    Адрес
    Syktyvkar
    Возраст
    51
    Сообщений
    190
    А в чем суть? Управление в ручном режиме? Руками неудобно рулить.

  5. #4

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от mura Посмотреть сообщение
    Какой предполaгается тираж?
    Пока совсем небольшой. Но...

    Кто нибудь разрабатывал такой 2 осевой контроллер на базе МК?
    Сам немного программирую PIC контроллеры. Но именно на одном контроллере две независимые частоты еще не реализовывал.
    Ну ясно что будет использовано прерывание и таймеры. Ну кто знает какие грабли меня ждут. пока делаем как было, два PIC18 работают каждый на свою координату.
    Захотелось сделать индикатор, кнопки и.т.д. А это значить(да и вообще так правильно) что должен быть ОДИН управляющий контроллер.

    Где то уважаемый AT_LAB писал про какие то недостатки подобной реализации управления. Но никак не смог найти эту тему.

    Цитата Сообщение от Evgeny_l Посмотреть сообщение
    А в чем суть? Управление в ручном режиме? Руками неудобно рулить.
    Есть два варианта. Управление с помощью компьютера и джойстика
    со встроенным контроллером(ручной режим). Оба варинта генерируют
    стандартные сигналы STEP/DIR.
    Хотя в будущем кто знает. В МК можно залить и операционную систему.
    Подключить внешнюю память типа SD, загонять туда какие нибудь операции или даже алгоритмы и.т.д. Но это потом конечно.

  6.  
  7. #5
    Забанен
    Регистрация
    09.03.2008
    Адрес
    Украина, граница между Днеп
    Возраст
    57
    Сообщений
    1,671
    Цитата Сообщение от Гани Посмотреть сообщение
    Подключить внешнюю память типа SD
    Просто для ознакомления http://it-en.ru/cnc/

  8. #6

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от Dj_smart Посмотреть сообщение
    Просто для ознакомления http://it-en.ru/cnc/
    Ну, система хорошая. Понравилось. Но что-то не понял сколько они просят за прошитый контроллер.
    Но к сожалению там Атмега, а я не умею писать под Атмелы.
    А программу все равно придется переделывать.
    Причина по вышеописанным причинам. Мне все же нужен именно ручной режим, причем с управлением от джойстика-потенциометра. Где отклоняя угол можно менять скорость и направление.(дозировать)

  9. #7

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Неужели здесь никто не разрабатывает свои контроллеры для ШД?

  10.  
  11. #8

    Регистрация
    13.07.2006
    Адрес
    Харьков, украина
    Возраст
    57
    Сообщений
    928
    Разрабатывает, разрабатывает..

  12. #9

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от mura Посмотреть сообщение
    Разрабатывает, разрабатывает..
    Я на форуме не часто бываю. Но вы mura кажется имеете достаточный уровень квалификации по разработкам контроллеров ШД. Не так ли?
    Пробовали создавать нечто подобное что я собираюсь делать?
    Пишите для АВР?

  13. #10

    Регистрация
    13.07.2006
    Адрес
    Харьков, украина
    Возраст
    57
    Сообщений
    928
    Пишу и для AVR то-же, скажу что для получения двух независимых частот хватит и одного таймера. Был пульт, но там было все кнопками.

  14. #11

    Регистрация
    01.04.2009
    Адрес
    Lutsk
    Возраст
    36
    Сообщений
    176
    Я бы делал для каждой координаты свой кристалл, максимально быстрый алгоритм роботы и обработки данных. Насчет SD это хорошо, но для хобииста это лишнее. Если бы я рассчитывал на массовость своей продукции, то есть тысячами, так бы и сделал, а одну две или 100 – незачем нагружать микроконтроллер лишними движениями. Насчет PIC, у AVR тоже есть несколько таймеров 16-ти разрядных таймеров, и тоже есть прерывания по переполнению. Дело привычки. А кристалл бы сделал с возможностью подключения би- и униполярных ШД. Большой шаг деления скажем 1/32 или 1/256 .

  15. #12

    Регистрация
    22.03.2006
    Адрес
    Железногорск
    Возраст
    61
    Сообщений
    827
    А в результате получается, что дешевле и быстрее поставить старый комп с ДОС и какой-нибудь программой. Или даже с win XP/Linux - что-нибудь в ITX формате.
    Разработка - дело дорогое и небыстрое, особенно когда ТЗ толком не сформулировано, а все держится на неясных вопросах/пожеланиях.

  16. #13

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от ATLab Посмотреть сообщение
    А в результате получается, что дешевле и быстрее поставить старый комп с ДОС и какой-нибудь программой. Или даже с win XP/Linux - что-нибудь в ITX формате.
    Разработка - дело дорогое и небыстрое, особенно когда ТЗ толком не сформулировано, а все держится на неясных вопросах/пожеланиях.

    Да ладно вам разработка. Старые компы как раз есть. даже 466 селерон рабочий дома валяется.

    Алгоритм довольно прост. Это даже за разработку считать нельзя.
    С потенциометра измеряем напряжение с помощью АЦП.
    Результат через перекодировочную таблицу помещается в таймер, и ждем пока не установится флаг.
    Как только флаг таймера установится, все повторяется снова. (следующий микрошаг)
    Просто, как лучше сделать чередование для двух сигналов. То есть уже не один а два процесса. (временных интервалов.)
    Я хотел посоветоваться только на счет этого и все.

  17. #14

    Регистрация
    13.07.2006
    Адрес
    Харьков, украина
    Возраст
    57
    Сообщений
    928
    Цитата Сообщение от ATLab Посмотреть сообщение
    А в результате получается, что дешевле и быстрее поставить старый комп с ДОС и какой-нибудь программой.
    Это правда!
    Но в этом случае, похоже, запуск станка не цель.

  18. #15

    Регистрация
    22.03.2006
    Адрес
    Железногорск
    Возраст
    61
    Сообщений
    827
    Цитата Сообщение от Гани Посмотреть сообщение
    Да ладно вам разработка....
    Алгоритм довольно прост. Это даже за разработку считать нельзя.
    ...Я хотел посоветоваться только на счет этого и все.
    Так что же советоваться то? Это же не разработка: минут 10 посидел и готово
    "Нравится" мне такой подход: мне самому думать лень и свое время тратить не хочется, а вам что, трудно? Это же фигня, не разработка...

  19. #16

    Регистрация
    30.01.2008
    Адрес
    Славянск, Россия
    Возраст
    47
    Сообщений
    16
    Цитата Сообщение от Гани Посмотреть сообщение
    С потенциометра измеряем напряжение с помощью АЦП.
    Результат через перекодировочную таблицу помещается в таймер, и ждем пока не установится флаг.
    Как только флаг таймера установится, все повторяется снова. (следующий микрошаг)
    Просто, как лучше сделать чередование для двух сигналов. То есть уже не один а два процесса. (временных интервалов.)
    Делал я такую ерундовину, когда в мастерской компа не было, а станок покрутить хотелось.
    Система элементарная - два джойстика - 4 потенциометра на АЦП
    AVR, один таймер на максимальную частоту шага. В прерывании таймера выставляем степ на нужном канале по перекодированным через таблицу данным АЦП и запускаем второй таймер, который сбрасывает степ. Заодно вывод скорости по осям на ЖКИ, пару кнопок, светодиодов, два выхода вкл/выкл.

    Делалось на макетке ATmega32.

    если надо - могу забросить схему и программу.


    ЗЫ. Делалось чтобы попробывать станок, так что для нормальной работы нужно добавить ограничение максимального ускорения - чтобы при резких рывках джойстика не срывался движок. Но мне лень

  20. #17

    Регистрация
    01.04.2009
    Адрес
    Lutsk
    Возраст
    36
    Сообщений
    176
    Думаю будут проблемы с контроллером для двух драйверов и самая большая – синхронизация двух потоков step.

  21. #18

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от Sergh Посмотреть сообщение
    Делал я такую ерундовину, когда в мастерской компа не было, а станок покрутить хотелось.
    Система элементарная - два джойстика - 4 потенциометра на АЦП
    AVR, один таймер на максимальную частоту шага. В прерывании таймера выставляем степ на нужном канале по перекодированным через таблицу данным АЦП и запускаем второй таймер, который сбрасывает степ. Заодно вывод скорости по осям на ЖКИ, пару кнопок, светодиодов, два выхода вкл/выкл.

    Делалось на макетке ATmega32.

    если надо - могу забросить схему и программу.


    ЗЫ. Делалось чтобы попробывать станок, так что для нормальной работы нужно добавить ограничение максимального ускорения - чтобы при резких рывках джойстика не срывался движок. Но мне лень
    Спасибо за толковый ответ! Если вас не затруднит с удовольствием бы посмотрел на программу и схему.

    И еще хотел спросить. А где запускаете измерение АЦП. В основной программе?
    Измеряете сразу все 4 канала? Или идет случайный характер?

  22. #19

    Регистрация
    30.01.2008
    Адрес
    Славянск, Россия
    Возраст
    47
    Сообщений
    16
    Цитата Сообщение от Гани Посмотреть сообщение
    Спасибо за толковый ответ! Если вас не затруднит с удовольствием бы посмотрел на программу и схему.
    К сожалению нашел только промежуточный вариант на два канала.

    Коротко о программе:

    Таймер 1 - по прерыванию от переполнения выводит на контроллер станка частоту для Charge Pomp.

    Таймер 2 - определяет длительность импульса step, по переполнению сбрасывая его.

    Таймер 0 - прерывание по переполнению - собственно генерит step сигналы. Период таймера определяется заданной максимальной частотой сигнала step. Сигналы step устанавливаются каждый T[i] - й период, где T[i] - от 1 - частота максимальна до 255, 0 - выключен.
    Значение T[i] для каждого step определяется соответствующим каналом АЦП.
    Если в текущем прерывании был установлен хоть один сигнал step, то при выходе запускается Таймер 2.

    АЦП - Производится циклический опрос каналов. Мне было вполне достаточно 16 градаций скорости на направление, поэтому младшие биты отбрасываются. Так как ноль джойстика приходится на ~2,5В, значение приводится к числу градаций, одновременно выставляется соответствующий сигнал dir. Далее устанавливается значение T[i] по вектору TT. Значения TT подбираются эмпирически и зависят от мотора, джойстика, требуемого диапазона шагов.

    INT0,INT1 – по нажатию кнопки инвертируют соответствующие выход и светодиод.

    Програмка писалась не для повседневного использования, так что если есть желание на ее основе сделать что нибудь полезное нужно:
    - ввести защиту от дребезга на кнопки;
    - ввести контроль максимального ускорения для step.

    Программа написана на IAR C, схема на Proteus и в pdf.


    ЗЫ. Конечно ATmega32 здесь абсолютно избыточна, просто валялась под рукой.
    Вложения

  23. #20

    Регистрация
    03.07.2009
    Адрес
    Шымкент,Казахстан
    Возраст
    37
    Сообщений
    54
    Цитата Сообщение от Sergh Посмотреть сообщение
    К сожалению нашел только промежуточный вариант на два канала.

    Коротко о программе:

    Таймер 1 - по прерыванию от переполнения выводит на контроллер станка частоту для Charge Pomp.

    Таймер 2 - определяет длительность импульса step, по переполнению сбрасывая его.

    Таймер 0 - прерывание по переполнению - собственно генерит step сигналы. Период таймера определяется заданной максимальной частотой сигнала step. Сигналы step устанавливаются каждый T[i] - й период, где T[i] - от 1 - частота максимальна до 255, 0 - выключен.
    Значение T[i] для каждого step определяется соответствующим каналом АЦП.
    Если в текущем прерывании был установлен хоть один сигнал step, то при выходе запускается Таймер 2.

    АЦП - Производится циклический опрос каналов. Мне было вполне достаточно 16 градаций скорости на направление, поэтому младшие биты отбрасываются. Так как ноль джойстика приходится на ~2,5В, значение приводится к числу градаций, одновременно выставляется соответствующий сигнал dir. Далее устанавливается значение T[i] по вектору TT. Значения TT подбираются эмпирически и зависят от мотора, джойстика, требуемого диапазона шагов.

    INT0,INT1 – по нажатию кнопки инвертируют соответствующие выход и светодиод.

    Програмка писалась не для повседневного использования, так что если есть желание на ее основе сделать что нибудь полезное нужно:
    - ввести защиту от дребезга на кнопки;
    - ввести контроль максимального ускорения для step.

    Программа написана на IAR C, схема на Proteus и в pdf.


    ЗЫ. Конечно ATmega32 здесь абсолютно избыточна, просто валялась под рукой.
    Благодарю от души! Будем изучать алгоритм! Блин, надо Си учить.

Закрытая тема

Похожие темы

  1. Контроллер на мощный шаговик 4А, 48V униполярный
    от codename1182 в разделе Общие вопросы
    Ответов: 81
    Последнее сообщение: 06.03.2008, 21:43
  2. Объеденение нескольких контроллеров на l297+l298
    от CeBep в разделе Общие вопросы
    Ответов: 8
    Последнее сообщение: 21.10.2006, 16:52
  3. R&D open source клон g320 (step/dir сервоконтроллер)?
    от razdvatri в разделе Общие вопросы
    Ответов: 20
    Последнее сообщение: 15.09.2006, 10:46
  4. разъясните про Geckodrive 320(340) (step/dir servodrive)
    от razdvatri в разделе Общие вопросы
    Ответов: 6
    Последнее сообщение: 11.08.2006, 16:50
  5. Управление станком через rs232 , контроллер на pic16F877
    от STEPMOTOR в разделе Общие вопросы
    Ответов: 41
    Последнее сообщение: 22.05.2006, 18:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения