Контроллер оптических линеек / энкодеров (Step/Dir)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение selenur »

N1X писал(а):
selenur писал(а):стоимость на самые маленькие экраны менее тысячи рублей.
Ужас... Это как ардуинка - для тех, кто хочет сделать интерфейс к чему-то, но не умеет работать с железом и программировать МК, естественно это только мое мнение.
А для проекта который идеть хоть в мелкую, но серию это убьет всю экономику...
Проще уже uC GUI взять, или ее бесплатную вариацию от ST, если нужен серьезный интерфейс, и копеешный экран от мобилы, который можно тоннами купить...
Тут как раз прикол с интерфейсом, как в Linux CNC, что пользователь сам может состряпать себе интерфейс, какие поля выводить, и какие кнопки, для определенных действий, но как сказал michael-yurov, для данного устройства это конечно очень избыточно.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Подумал, что стоит написать о новых обстоятельствах и некоторой смени курса:

- Для универсальности и упрощения настройки заменил в прошивке алгоритм обратной связи на обычный ПИД.
С одной стороны с ним все универсально и просто, а с другой - точно задать коэффициенты не видя графиков я не смог.
- Так что идея с настройкой через цифровой сегментный индикатор оказалась неудачной.
- Прихожу к выводу, что настраивать лучше через ПО на компьютере, а подключаться через COM порт или виртуальный СОМ порт на USB.
- Скорее всего, для удешевления остановлюсь на COM порте без USB.

- Были мысли реализовать автонастройку коэффициентов ПИД самим контроллером, но получается слишком сложная задача в том плане, как пользователю задать первоначальные разрешения для процедуры автонастройки и самотестирования.
Да и качество автонастройки в этом случае получается неизвестным, что мне сильно не нравится.

В общем получается тот же YAPSC, только в профиль.
Вот и думаю - а стоит ли продолжать?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение selenur »

michael-yurov писал(а):Подумал, что стоит написать о новых обстоятельствах и некоторой смени курса:

- Для универсальности и упрощения настройки заменил в прошивке алгоритм обратной связи на обычный ПИД.
С одной стороны с ним все универсально и просто, а с другой - точно задать коэффициенты не видя графиков я не смог.
- Так что идея с настройкой через цифровой сегментный индикатор оказалась неудачной.
- Прихожу к выводу, что настраивать лучше через ПО на компьютере, а подключаться через COM порт или виртуальный СОМ порт на USB.
- Скорее всего, для удешевления остановлюсь на COM порте без USB.

- Были мысли реализовать автонастройку коэффициентов ПИД самим контроллером, но получается слишком сложная задача в том плане, как пользователю задать первоначальные разрешения для процедуры автонастройки и самотестирования.
Да и качество автонастройки в этом случае получается неизвестным, что мне сильно не нравится.

В общем получается тот же YAPSC, только в профиль.
Вот и думаю - а стоит ли продолжать?
Может просто на время отложить этот проект, и заниматься другими проектами, пока не появится идея как сделать по удобнее?
У меня часто так бывает, что уперся в проблему, и что-бы не делать абы как, отлаживаю проект на время, пока не придет идея.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

selenur писал(а): Может просто на время отложить этот проект, и заниматься другими проектами, пока не появится идея как сделать по удобнее?
У меня часто так бывает, что уперся в проблему, и что-бы не делать абы как, отлаживаю проект на время, пока не придет идея
Собственно, так и поступил.
Еще месяц назад остановился.
Обдумываю варианты.
Купил max232 и заказал у китайцев usb-uart для дальнейших действий.

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

На SMD раскладчике контроллер линеек исправно работает, и это уже хорошо. Значит устройство вполне жизнеспособно.
Аватара пользователя
NKS
Мастер
Сообщения: 2516
Зарегистрирован: 30 окт 2014, 21:36
Репутация: 1233
Настоящее имя: Сергей
Откуда: Волгоград
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение NKS »

michael-yurov писал(а):Ну и, интереса особого данная тема не вызывает
Неправда, вызывает :)
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Сейчас плату хочу нарисовать для пробных устройств.
ключевые моменты:
- Настраиваться контроллер будет через COM порт.
- Одна плата на одну линейку.
- Формат управления и на входе и на выходе - Step Dir (возможно в дальнейшем сделаю вариант с аналоговым выходом).

Возникли вопросы:

Подключение линейки будет по умолчанию как у китайских разъемом DB9 с тремя линиями TTL уровнями A / B / нолевая метка
Можно сделать с дифференциальным входом RS422 A+/A- / B+/B- / 0+/0-
Нужно ли делать второй вход с дифференциальными линиями RS422?
Как вариант - развести на плате оба, но впаивать какой-то один.

Какой разъем поставить для подключения к компьютеру для настройки? Пойдет ли обычный угловой DB9?
В этом случае удобно будет использовать USB-COM переходник с USB удлинителем, или придется самому паять удлинитель DB9
Можно поставить разъем как на ледшайновских драйверах.

Нужно ли предавать сигнал Enable через плату?
Т.е. для работы платы он не нужен, но так, возможно, удобнее будет подключить Step/Dir/Enable от компьютера/контроллера к плате контроллера линеек, а потом уже так же три линии к драйверу / сервоприводу.

Что делать с сигналом с нолевой метки на линейках?
Сигнал короткий, и использовать его как сигнал с индуктивного концевика - нельзя.
Нужно ли этот сигнал как-то обработать, чтобы продлить его, или активировать при переходе метки в одну сторону и деактивировать при переходе обратно?
Или просто передать как есть?
Бармалей
Мастер
Сообщения: 1205
Зарегистрирован: 14 янв 2013, 16:46
Репутация: 144
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Бармалей »

michael-yurov писал(а):Можно сделать с дифференциальным входом RS422 A+/A- / B+/B- / 0+/0-
Нужно ли делать второй вход с дифференциальными линиями RS422?
мне кажется можно оставить ТОЛЬКО диф. вход.
michael-yurov писал(а):Сигнал короткий, и использовать его как сигнал с индуктивного концевика - нельзя.
это как?
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение N1X »

Бармалей писал(а):мне кажется можно оставить ТОЛЬКО диф. вход.
Согласен, и вывести на отдельную клемму 1/2Uоп, и вешать перемычкой его на одну из клемм дифпары, если нужен вход TTL...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Бармалей писал(а):мне кажется можно оставить ТОЛЬКО диф. вход.
RS422 реально востребован?
Если так то сделаю (хотя не собирался).

TTL вход будет в любом случае, т.к. этот вариант почти на всех китайских линейках.
Бармалей писал(а):это как?
На моих линейках есть нолевая метка. Ее длительность - 3-4 отсчета энкодера.
8.png (2382 просмотра) <a class='original' href='./download/file.php?id=87896&sid=c52dd88e90e087057912aa5c86e8d1cb&mode=view' target=_blank>Загрузить оригинал (113.38 КБ)</a>
N1X писал(а):Согласен, и вывести на отдельную клемму 1/2Uоп, и вешать перемычкой его на одну из клемм дифпары, если нужен вход TTL...
Вот здесь вообще не понял.

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

Для этих входов нужны разные нагрузочные сопротивления и в случае с TTL входом нужен двухкаскадный RC фильтр.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение N1X »

michael-yurov писал(а): не понял
С телефона лениво писать. В кратце: если напряжения дифпары 0 и 5 вольт, то выводим 2.5 например, и вешаем его на один конец дифвхода (пользователь вешает), вроде многие драйвера это позволяют. Тогда второй конец дифпары при изменении 0-5 вольт вызывает переключение входа...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Не уверен, что это будет работать, но уверен, что это будет работать плохо (вход не будет защищен от помех). При чем в обоих случаях.

Вопрос не в том как это сделать, а в том, какой функционал реально нужен. Т.к. чем больше хотелок в плане функционала придется удовлетворить - тем дороже станет устройство.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение N1X »

Это простое решение, если человекв не нужен диф. Сигнал. Позволяет отдельно не разводить лишнее, не более...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

N1X писал(а):Это простое решение, если человекв не нужен диф. Сигнал. Позволяет отдельно не разводить лишнее, не более...
Так оно. Но мои линейки с таким входом работать не смогут.
И в моем случае это простое решение создаст мне много проблем в плане ответсьвенности перед пользователями.

Оно, конечно, спасибо за совет, и, возможно есть способ его удачного применения, но я не буду так сильно рисковать без какой-либо пользы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

michael-yurov писал(а):Какой разъем поставить для подключения к компьютеру для настройки? Пойдет ли обычный угловой DB9?
В этом случае удобно будет использовать USB-COM переходник с USB удлинителем, или придется самому паять удлинитель DB9
Можно поставить разъем как на ледшайновских драйверах.
Mini-USB, а в МК реализовать конвертор USB-COM. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а): Mini-USB, а в МК реализовать конвертор USB-COM.
Мне и самому такой вариант нравится.

Хотя, как я уже сказал - все эти хотелки повышают цену конечного изделия. Нужно будет обдумать, на сколько.
Может оказаться, что ни на сколько (хотя процессор с аппаратным usb заметно дороже, есть ряд факторов компенсирующих это).
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение N1X »

michael-yurov писал(а):Но мои линейки с таким входом работать не смогут
А что за выход у них?
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

N1X писал(а):
michael-yurov писал(а):Но мои линейки с таким входом работать не смогут
А что за выход у них?
ТТЛ, но выходной ток 4 мА.
А RS422 предполагает значительно большие рабочие токи.
Сделать универсальный вход можно, но как я уже сказал - он не будет должным образом защищен от помех.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

michael-yurov писал(а):Хотя, как я уже сказал - все эти хотелки повышают цену конечного изделия. Нужно будет обдумать, на сколько.
Может оказаться, что ни на сколько (хотя процессор с аппаратным usb заметно дороже, есть ряд факторов компенсирующих это).
Ни на сколько. У STM редкий МК без аппаратного USB, вон даже в StepMaster v2.5 аж два порта уже есть. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а):Ни на сколько. У STM редкий МК без аппаратного USB, вон даже в StepMaster v2.5 аж два порта уже есть.
В степмастере стоят процессоры с большим количеством продвинутых таймеров (STM32F103RCT6), и это не самые дешевые процессоры.
Контроллер линеек я планировал сделать на STM32F100C4T6. Он вдвое дешевле, но USB нет.

Для пробы сделаю плату на дешевой китайской микросхемке CH340G (usb-uart).
Смотрел еще на PL2303SA, но она дороже и китайцы их активно подделывают (особенно PL-2303HX) из за чего часто возникают проблемы идентификации нового устройства.
А эти CH340G в ардуины активно ставят, так что, надеюсь, для моих целей будет достаточно.

В дальнейшем, может быть, перейду на процессор с поддержкой USB.
Тогда в один процессор уже можно будет засунуть два канала обработки энкодеров/линеек. Непонятное количество получается.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Вроде бы вот эти два подходят:
STM32F102CBT6 http://www.promelec.ru/catalog/1/11/1777/1/135773/
STM32F103C8T6 http://www.promelec.ru/catalog/1/11/1777/1/126937/
На это процессоры сейчас цена не высокая, но в промэлектронике как только начинаешь покупать мелким оптом - магазин поднимает цену процентов на 20.
А тут боюсь цена еще со старой партии осталась.

Остановлюсь на втором. Он более распространенный и ближе подходит к моему проекту.
Обидно только что USB занимает ту же ногу, что внешний вход таймера.
И переназначить нельзя.
Придется существенно изменять проект и переназначать таймеры. Вероятно, найду решение.
Ответить

Вернуться в «Электроника»