Идеи ЧПУ устройств на STM32 / ARM

Контроллеры, драйверы, датчики, управляющие устройства.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение aftaev »

MX_Master писал(а):Я бы не заморачивался и взял любой серво кетайский пак.
У него есть интересное видео и про китайский пак. Так понимаю если степ/дир оторвется, станок нужно будет ловить у соседа в гараже :lol:
https://www.youtube.com/watch?v=iVSW0IJ ... kBMHlx2wiA
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

Когда тестировал китайскую плату MKS SBASE со Smoothieware в качестве прошивки, один раз поймал глюк, при котором статичный портал дёрнулся на 2 метра за пол секунды. Я даже напугаться не успел. Косяк был в прошивке Smoothieware, уже исправили. А вот кетайская плата вела себя адекватно. В общем-то, из-за остальных косяков авторов прошивки бросил эксперименты с этим Smoothieware и перешёл на LinuxCNC. И опять же на чисто китайской материнке, которую вытащили из чисто кетайского POS терминала.

Тут дело не в Китае, а в отношении производителя к своей разработке.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

Понравилось мне ковыряться с аппаратными генераторами STEP/DIR.. Недавно нарыл ещё один способ, который не кушает много оперативки. А вывод шагов на 4 оси стабильно держит до 2.5 МГц.

Не один из бюджетных контроллеров столько выдать не может. Поэтому задумался над тем, чтобы сделать простую, но всеядную выполнялку движений по STEP/DIR. Не контроллер, а именно выполнялку приказов по движению. А всеядную - чтоб можно было получать приказы любым способом - по USB, Ethernet, WiFi, и т.д. Т.е. вся логика контроллера, планировщик и всё всё остальное находятся на отдельном устройстве, будь-то ПК, ноут или планшет. А эта штуковина должна точно и в срок генерировать STEP/DIR/ENBL по заказу.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение selenur »

Главное! что-бы ещё ускорение торможение поддерживала :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

selenur писал(а):Главное! что-бы ещё ускорение торможение поддерживала :-)
Самое время снова зажечь огонь на тему S-кривых разгона и торможения :hehehe: Ускорения, стессна, будут. Есть несколько вариантов на эту тему.

Изначально думал делать сие под LinuxCNC, в качестве недорого аппаратного контроллера. А потом подумалось, что LinuxCNC это всего лишь один из многих вариантов и надо делать что-то всеядное.
Аватара пользователя
donvictorio
Мастер
Сообщения: 2457
Зарегистрирован: 11 окт 2012, 16:26
Репутация: 683
Настоящее имя: Виктор
Откуда: Санкт-Петербург
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение donvictorio »

MX_Master писал(а):Понравилось мне ковыряться с аппаратными генераторами STEP/DIR.. Недавно нарыл ещё один способ, который не кушает много оперативки. А вывод шагов на 4 оси стабильно держит до 2.5 МГц.

Не один из бюджетных контроллеров столько выдать не может. Поэтому задумался над тем, чтобы сделать простую, но всеядную выполнялку движений по STEP/DIR. Не контроллер, а именно выполнялку приказов по движению. А всеядную - чтоб можно было получать приказы любым способом - по USB, Ethernet, WiFi, и т.д. Т.е. вся логика контроллера, планировщик и всё всё остальное находятся на отдельном устройстве, будь-то ПК, ноут или планшет. А эта штуковина должна точно и в срок генерировать STEP/DIR/ENBL по заказу.
ты придумал kflop :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

Kflop за 2 бакса (:
Аватара пользователя
Argon-11
Мастер
Сообщения: 2068
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение Argon-11 »

Что-то подобное делаю на основе STM32F205 + одноплатник Orange Pi Lite.
Это будет поршневой дозатор двухкомпонентных жидкостей. Orange Pi выполняет юзер интерфейс, STM32 рулит шаговиками и прочими исполнительными устройствами, опрашивает датчики. Взаимосвязь их будет по SPI. Также будет ф-ция синхронного ускорения/торможения ШД, выполненная на основе аппаратных возможностей таймеров STM32. Ну и наверное попробую организовать "подсчет", а точнее выдачу импульсов STEP также аппаратно. Если не лень будет (в моей задаче абсолютно точное значение выданных шагов роли не играет).
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение Гагарин »

Мысли всегда у нескольких людей рождаются одновременно. :thinking:
Буквально на той неделе решил все-таки попробовать сделать "генератор шагов" , правда на atmege328 для linuxcnc.Но раз есть человек, который работает с более мощными микроконтроллерами, то пока поделюсь идеей.
Связь через usb. Тема такая была и основная проблема известна - нет гарантий передачи пакета за сервопериод.
Решение по этапам:
1)stepgen заменяется своим компонентом, который работает только в сервопериоде. Потребность в функции, работающей в базовом периоде, отпадает. Самописный stepgen каждый сервопривод собирает массив перемещей в ед.времени и конвертирует их в понятные для микроконтроллера величины для настройки таймера. Дальше этот массив передается на микроконтроллер.
2) микроконтроллер получает эти данные и с задержкой начинает их последовательно пережевывать(генерировать шаги). Задержка должна гарантировано компенсировать неопределенность по времени передачи по usb-порту. Возможно задержки в 10мс хватит.
3) Обратно на пк периодически передается инфа о количестве генерированных шагов для контроля. Естественно все события , требующие мгновенной реакции(лимит, хомы и т.д.) отрабатываются микроконтроллером.
4) так же микроконтроллер используется для расширения входов/выходов.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение aftaev »

Гагарин писал(а):Задержка должна гарантировано компенсировать неопределенность по времени передачи по usb-порту.
А что делать когда USB глюкнет от помехи в цеху?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Гагарин
Опытный
Сообщения: 142
Зарегистрирован: 18 июн 2015, 17:25
Репутация: 13
Настоящее имя: Юрий
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение Гагарин »

aftaev писал(а):
Гагарин писал(а):Задержка должна гарантировано компенсировать неопределенность по времени передачи по usb-порту.
А что делать когда USB глюкнет от помехи в цеху?
Думал об этом. Пока приходит мысль об плавной остановке станка силами микроконтроллера в случае сбоя связи.
Аватара пользователя
donvictorio
Мастер
Сообщения: 2457
Зарегистрирован: 11 окт 2012, 16:26
Репутация: 683
Настоящее имя: Виктор
Откуда: Санкт-Петербург
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение donvictorio »

aftaev писал(а):А что делать когда USB глюкнет от помехи в цеху?
как вариант - не использовать эту штуку в цеху. так, дома, хобби. для цеха есть вещи на ethercat
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение aftaev »

donvictorio писал(а):как вариант - не использовать эту штуку в цеху. так, дома, хобби.
У меня дома периодически Винда пикает, это значит что какое то из устройств USB отключилось и тут же включилось. И это не в цеху ;)
donvictorio писал(а):так, дома, хобби, для цеха есть вещи на ethercat
Если делать, так сразу нормально чтоб потом не переделывать ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

USB в цеху - не к добру. А вот Ethernet.. На этот предмет можно объединить две платки
  1. макетку с STM32F103C8T6 - 1.9$
  2. сетевой модуль на основе ENC28J60 - 2.5$
И дальше использовать кому что нравится.. TCP, UDP, HTTP, ..
Для любителей Wi-Fi (для меня) можно в комплект добавить еще и
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

Гагарин писал(а):Мысли всегда у нескольких людей рождаются одновременно. :thinking:
Буквально на той неделе решил все-таки попробовать сделать "генератор шагов" , правда на atmege328 для linuxcnc.Но раз есть человек, который работает с более мощными микроконтроллерами, то пока поделюсь идеей.
Связь через usb. Тема такая была и основная проблема известна - нет гарантий передачи пакета за сервопериод.
Решение по этапам:
1)stepgen заменяется своим компонентом, который работает только в сервопериоде. Потребность в функции, работающей в базовом периоде, отпадает. Самописный stepgen каждый сервопривод собирает массив перемещей в ед.времени и конвертирует их в понятные для микроконтроллера величины для настройки таймера. Дальше этот массив передается на микроконтроллер.
2) микроконтроллер получает эти данные и с задержкой начинает их последовательно пережевывать(генерировать шаги). Задержка должна гарантировано компенсировать неопределенность по времени передачи по usb-порту. Возможно задержки в 10мс хватит.
3) Обратно на пк периодически передается инфа о количестве генерированных шагов для контроля. Естественно все события , требующие мгновенной реакции(лимит, хомы и т.д.) отрабатываются микроконтроллером.
4) так же микроконтроллер используется для расширения входов/выходов.
Пару месяцев назад наткнулся на github репку с USB контроллером для LinuxCNC на бюджетке с STM32F103C8T6.
Рекомендую к ознакомлению - https://github.com/dabit20/dabitusb_cnc

https://www.youtube.com/watch?v=S-OcvVdvABM
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение selenur »

Вот ещё прикольно сделал: https://www.youtube.com/watch?v=5WsugS7hTLk
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

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

На первый вопрос ответом может стать USB HID (Custom HID). Подскажите еще варианты, кто в теме.

Второй вопрос пока открыт.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение Сергей Саныч »

MX_Master писал(а):желательно, чтоб устройство было доступно для любой ОСи без установки доп. драйверов.
Виртуальный COM-порт. Эмуляция распространенных конверторов, например, серии FTDI. Тогда для отладки можно будет пользоваться любой терминальной программой.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение MX_Master »

Сергей Саныч писал(а):
MX_Master писал(а):желательно, чтоб устройство было доступно для любой ОСи без установки доп. драйверов.
Виртуальный COM-порт. Эмуляция распространенных конверторов, например, серии FTDI. Тогда для отладки можно будет пользоваться любой терминальной программой.
Могу ошибаться, но драйвер всё равно придётся ставить? В интернетах любая инструкция про STM32 VCP начинается со слов "нужно установить следующий драйвер..". И, обычно, это https://my.st.com/content/my_st_com/en/ ... 32102.html
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Идеи устройств на STM32 для ЧПУ

Сообщение Сергей Саныч »

MX_Master писал(а):Могу ошибаться, но драйвер всё равно придётся ставить?
Если сэмулировать FTDI, то винда, начиная с семерки, вроде как сама справится. А линукс, так уж точно.
Насчет STM32 VCP - не знаю.
Чудес не бывает. Бывают фокусы.
Ответить

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