Ого, это надо было серьёзно порыться, чтобы найти. Переделать не долго, в планах такой пункт есть. Сделано так, во-первых, для того чтобы микрошаг был, во-вторых для экономии денег, вся обработка запихнута в мк стоимостью 150 рублей. А ещё я когда это писал, не очень понимал, как работает L297, да и сейчас пока не разобрался. Как там организовано торможение тока в обмотках? Катушка просто замыкается или включается в обратной полярности? У меня полярность меняется.selenur писал(а):Крафтер - посмотрел твои исходники, и заметил что у тебя управление моторами реализовано не через драйверы моторов, где используется всего по 2 вывода (step, dir), а путем управления каждой обмоткой (т.е. практически минуя драйвер), чем обусловлена такая реализация?
Самопальный интерпретатор
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Самопальный интерпретатор
Я когда пару лет назад, делал контроллер, думал тоже драйвер сделать сам, но почитав теорию понял, нехватит текущих знаний, а изучать долго, поэтому купил готовые недорогие, конечно это дороже (1600 руб.) К тому-же я люблю больше программировать чем паять.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Самопальный интерпретатор
Я наоборот стараюсь сделать систему управления как можно более распределённой.Отдельно контроллер движения ,отдельно разгон-торможение и ,или отдельно привода.Сейчас у меня контроллер движения также занимается выводом на экран ,вводом с клавиатуры и редактированием .Я наоборот хочу сделать ввод и редактирование на отдельном контроллере или на компьютере в зависимости от желаний.На мой взгляд такое решение хоть и несколько удорожает систему ,но делает её значительно более гибкой.Что касается удорожания то оно будет незначительным ,учитывая нынешние цены на микроконтроллере.Но при таком подходе появляется дополнительная возможность подключения к работе нескольких сторонних разработчиков.При этом проект можно оставлять за собой так как свяэь кусков остаётся за основным разработчиком.
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
1. Переделан расчёт ускорения, теперь контроллер знает, сколько осталось до конца линии и скорость рассчитывает исходя из полного расстояния. Сопряжение прямых/кругов не приводит к торможениям в точке сопряжения.
2. Посылка данных с мк на компьютер сделана через DMA, в результате контроллер разгружен, максимальная частота шагов выше, скорость передачи тоже выше.
3. Добавлен ползунок регулировки скорости подачи, до нуля пока опустить нельзя, можно до 0.1%.
4. Немного наведено красоты: кнопки установки нуля, перехода к нулю, отображение текущих координат.
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
По поводу энкодеров есть интересная информация. Обнаружил новые микроконтроллеры stm32f031, которые стоят совсем копейки, и на них по идее можно сделать управление серводвигателем с офигенной максимальной частотой. У самого мк частота 48 МГц, есть встроенная обработка сигналов энкодера (увеличение/уменьшение счётчика шагов). Получается, можно сделать учёт шагов на частоте где-то до 20 МГц. То есть текущая позиция и позиция, где он должен быть, будут считаться аппаратно, а программно надо будет считать, какое напряжение подать, чтобы они совпали. Есть ли смысл возиться с написанием под него программы, или уже такое есть? Я пока только UHU накопал.Baha писал(а): если шпиндель токарника не имеет возможность позиционного управления, то нужно специальная команда резьбонарезания, и синхронизация вращения шпинделя с двумя линейными осями, с внешнего сигнала, энкодера шпинделя.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Самопальный интерпретатор
Помимо таймера, обслуживающего энкодер нужна ещё приличная куча сопутствующей логики и т.п., поэтому большинство производителей сервоприводов применяют FPGA, внутри которой можно сделать не только счётчик для энкодера, но и всю сопутствующую логику и ядро упрвляющего контроллера, хоть тот-же Cortex-M3.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- vovan
- Кандидат
- Сообщения: 49
- Зарегистрирован: 06 апр 2015, 15:01
- Репутация: -42
- Настоящее имя: Valdemar Zabanist
Re: Самопальный интерпретатор
Встроенная поддержка энкодеров присутствует даже на самых простеньких STM8.Крафтер писал(а):У самого мк частота 48 МГц, есть встроенная обработка сигналов энкодера (увеличение/уменьшение счётчика шагов).
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Хотелось бы список этой кучи. Как мне представляется оценка нагрузки на мк.UAVpilot писал(а):Помимо таймера, обслуживающего энкодер нужна ещё приличная куча сопутствующей логики и т.п.
Энкодер не нагружает мк.
Шаги от того же Мача не нагружают мк, потому что переключение направления движения (dir = !dir) делается в момент, когда скорость нулевая, шаги не идут и пропуска их не случится. В остальное время учётом шагов занимается аппаратно таймер.
Допустим, движок крутит на большой скорости без ускорения. Цикл в программе в очередной раз сравнивает текущую позицию с ожидаемой, видит небольшое отклонение, добавляет немного к текущему напряжению. Здесь огромной скорости реакции не требуется.
Второй подозреваемый : двжок крутит на большой скорости и должен ускоряться. В программном цикле наблюдаем ускорение отклонения ожидаемой позиции от текущей и соответственно корректируем напряжение на двигателе.
Ни в одном месте не требуется работа программного цикла на той же частоте, с которой приходят шаги. В случае равномерного движения можно тикать хоть раз в секунду для корректировки позиции.
И вот ещё какое соображение. ШИМ на двигателе больше 100 кГц не задерёшь, а если шаги идут с частотой 10 МГц, то за один такт ШИМа пройдёт 100 шагов. Поэтому незачем рассчитывать внутри этих 100 шагов, что скорость сильно поменяется.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Самопальный интерпретатор
Цепи контроля тока, положения ротора, ЦАП, логика контроля внешних сигналов, ...Крафтер писал(а):Хотелось бы список этой кучи.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Если перемножить подачу на сигнал от АЦП, этого хватит, или тут вход какой-то цифровой? Если надо подачу регулировать в % входным напряжением, то АЦП я уже настроил, осталось самую малость.aftaev писал(а):скорость подачи может регулироваться внешним сигналом, когда нужно быстрее, когда нужно замедляетсяКрафтер писал(а):Что значит адаптивное управление? Не нагуглил ничего.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: Самопальный интерпретатор
Есть смысл изучить основы теории автоматического регулирования, в частности про ПИД-регулирование.Крафтер писал(а):То есть текущая позиция и позиция, где он должен быть, будут считаться аппаратно, а программно надо будет считать, какое напряжение подать, чтобы они совпали. Есть ли смысл возиться с написанием под него программы, или уже такое есть?
Чудес не бывает. Бывают фокусы.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Самопальный интерпретатор
К стати у ряда моделей stm есть встроенный модуль dsp, который позволяет использовать ПИД-алгоритм, не напрягая при этом ядро мк.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Титце. Шенк. Полупроводниковая схемотехника, стр 480 и дальше. Читал я всё, знания матанализа хватит, чтобы просчитать . Ладно, если будет результат, отпишусь.Сергей Саныч писал(а):Есть смысл изучить основы теории автоматического регулирования, в частности про ПИД-регулирование.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Самопальный интерпретатор
А как найти и задать значения переменных?Крафтер писал(а):знания матанализа хватит, чтобы просчитать
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Считаем, что максимальное напряжение на двигателе крутит энкодер в положительном направлении, минимальное - в отрицательном. Известны целочисленные значения текущей позиции (энкодер) и необходимой позиции (входящие шаги), они лежат в регистрах таймеров. Необходимо задать напряжение на двигателе (скважность ШИМ).michael-yurov писал(а):А как найти и задать значения переменных?
Первый вариант. Если текущая позиция меньше ожидаемой, то напряжение = максимальному, иначе напряжение = минимальному. В данном случае будут колебания +-1 шаг. Расходимости не возникнет, поскольку в осях существует реальное трение. То есть путь, необходимый для ускорения до заданной скорости, больше пути, необходимого для замедления.
Второй вариант. Всё как в первом варианте, за исключением случая совпадения текущей и ожидаемой позиции. При совпадении задаём напряжение = интегралу предыдущих значений напряжения с затуханием. То есть на каждой итерации Uср = Uтек * eps + Uср * (1 - eps). Или для ускорения вычислений Uср += (Uтек - Uср) >> n. Это позволит уменьшить частоту колебаний в состоянии покоя.
Есть более сложные схемы, но они может быть и не понадобятся.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Самопальный интерпретатор
Понятно.
У меня в принтере так устроен привод вала подачи бумаги.
Инерции внешних усилий там практически нет, так что подобная логика работает.
У меня в принтере так устроен привод вала подачи бумаги.
Инерции внешних усилий там практически нет, так что подобная логика работает.
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Добавил регулировку подачи напряжением на входе.
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Схема контроллера ЧПУ в Sprint-Layout 5, если кому надо. Хотя там много лишнего, можно выкинуть кварц на 32 кГц, а для основного кварца влепить нормальные smd конденсаторы. Вначале была идея перед запуском измерять параметры двигателей, поэтому торчит массив штырьков, который не используется, его тоже можно выкинуть. Разводка ножек есть в архиве с программой, файл .ioc, он открывается программой MicroXplorer. Группы по 4 ножки - это выводы ШИМ для руления полумостами.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Самопальный интерпретатор
А фотки или видео, живой работы увидим?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- Крафтер
- Мастер
- Сообщения: 211
- Зарегистрирован: 27 мар 2015, 22:25
- Репутация: 61
- Настоящее имя: Андрей
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Самопальный интерпретатор
Меня просто попросили схему выложить, я выложил. Как время будет, переведу на нормальную платформу, чтобы заказать можно было, а не лепить самому. Там и схемы то никакой нет, от мк дорожки к пинам и всё.
Я решил всю механику переделать, так что ещё не скоро. В текущей реализации от надавливания пальцем можно фрезу сдвинуть на пару мм. Пришла в голову идея слепить рельсы из смеси профиля с трубами. Трубы уже вдоль пропилил болгаркой (пришлось для этого слепить приспособу). Осталось накинуть на профиль и приклеить. Хотя как показывает практика, клей в таком деле не катит .selenur писал(а):А фотки или видео, живой работы увидим?