Решение для управления 9 шаговыми двигателями

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
Привет сообщество!
Я делаю робот - манипулятор. Он имеет 8 суставов и захват. Используются шаговые двигатели - всего их 9 штук. Стандартные решения (типа arduino cnc) обычно ограничены четырьмя контроллерами. Мне не хочется ставить 2 таких платы, потому как придется их синхронизировать где-то отдельно. Ищу решение для esp8266. Присматриваюсь к I2C решениям. Может кто сможет подсказать/направить в нужную сторону?
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
ESP смотрю как самую понятную для меня. Шустрая, плюс вафляй на борту. Мне как раз для ROS подойдет.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Возможность работать с множеством двигателей зависит от многих факторов. Основной ограничивающий фактор - скорость обработки траектории движения. Ну к примеру есть мотор делает 1000 полных шагов в секунду. При импульсе 4 мкс останется 996 мкс на обработку. Этого достаточно для большого количества моторов. Если делитель 32, то это уже будет 30 мкс.
После этого можно определяться с МК, что бы он за это время успел отработать все что надо. Чем выше скорость мк, тем ему проще работать будет.
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
Вот на Arduino CNC как работает. Тут пока только 3 сустава. Вполне приемлемо с учетом того, что используются планетарные редукторы с сильным понижением
 

rkit

★★★✩✩✩✩
5 Фев 2021
508
127
esp32
Не нужно 8266 использовать. Вообще никогда. Не стоят того 50 рублей разницы.
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
Тут не вопрос в контроллере, могу и ягоду и мини пк использовать. Не принципиально с учетом того, что будет управляться с помощью ПК (мне нужно и OpenCV и нейронки для определения объектов для захвата). Важен сам подход.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Может плохо смотрел, но одновременного движения по 2 и более осям не увидел. А если в один момент времени идет управление только одним мотором, то это сильно упрощает дело и снижает требования к мк.
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
И что это значит? Садись да пиши код.
Смотри: контроллер есть, для каждого шаговика минимум 2 пина. 9 моторов - 18 пинов. Я конечно заказал расширялки пинов по I2C но теперь вопрос в подборе контроллеров для ШД
А код - самое легкое для меня.
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
Ты издеваешься? Возьми esp32 и напиши код для шд. Всё.
Дружище, а куда мне 9 движков подключать? с питанием 24в? Или ты предлагаешь 9 esp32? Так тоже можно, но надежность конструкции под большим вопросом
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,415
978
58
Марий-Эл
для каждого шаговика минимум 2 пина. 9 моторов - 18 пинов
Для управления шаговиком нужно
1 - STEP
2 - DIR
3 - EN

Считаем. STEP и DIR всех драйверов объеденены.
Имеем два вывода.
EN - 9 шт
Итого 11 выводов.
 

a54

✩✩✩✩✩✩✩
25 Дек 2022
7
0
Я думал, что DIR для каждого мотора свой. Видимо не до конца понимаю суть работы контроллера ШД.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Степ модно сделать 1 для всех, но тогда индивидуальный разгон торможение делать значительно сложнее.
А вот если взять драйвера типа tmc , то у них есть отличная функция снижения тока при простое, для удержания положения. Тогда EN можно сделать один для всех.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,415
978
58
Марий-Эл
@a54, Здесь нужно узнать. Если с контроллера снять EN будет ли он выполнять заданную команду STEP.
Что бы движки двигались одновременно, нужно на нужный контроллер подать DIR, EN и STEP.
Далее следующий контроллер, и так по цепочке для всех двигателей.
Пока один двигатель выполняет команду, нужно дать команду следующему.
Таким образом будет слитное управление двигателями.
Но это, скорее, недоступно на тех библиотеках, что бродят в интернете.
И вполне возможно, что АТМЕГА не потянет.
 
  • Лойс +1
Реакции: a54