Управление сотней Шаговиков. Подскажите направление мысли.

Тема в разделе "Флудилка", создана пользователем Toutlemond, 13 ноя 2019.

  1. Toutlemond

    Toutlemond Нуб

    Добрый день!

    Есть задача управлять сотней шаговых моторов. (с возможность смасштабировать до 200)
    Причем делать это почти одновременно.(ну для глаза человека - а не для секундомера)
    (Скорость их поворота не столько важна как то насколько одновременно они будут начинать движение )
    Могли бы подсказать направление мысли?

    Пока идеи лишь две, Ну 2 с половиной) и возможно неверные.
    1. ATmega2560 на ней масса сдвиговых регистров каскадами а к ним подключены драйверы шаговиков. Ну и какой то массив хранящий в себе адреса того или иного мотора.

    2.1 - Те же меги десять штук, но на каждой получается по 10 (макс 12 ) шаговиков. И объединить их по какой либо шине... модбас например. Получается такой массивчик 10х10. Они как слейвы и какой либо мастер который опять же знает на каком адресе на шине та или иная плата и тот или иной мотор.

    2.2 - Каждый мотор = своя мелкая AVR-ка, все объедено опять же шиной с мастером - по модбасу или по I2C

    На модбасе может быть до 247 устройств вроде как, на I2C 127 И там и там хватает в теории но как оно на практике пока не ясно.

    А ну хотя есть третий бредовый вариант - на каждый мотор навешать ESP8266 И все объединить по вайфаю. Протокол tcp-ip так что 253 устройства я могу получить - но тут будет проблема l2 уровня - ибо каналов то 15 . все забьется нафиг при 100 одновременно светящихся вайфай устройств...

    Да, возможно вы скажете, что есть готовые устройства типа UMAC CPU 256 Axis. Но они стоят десятки тысяч $ ну и сами понимаете - это не наш метод.
     
  2. DetSimen

    DetSimen Guest

    Задай себе простой вопрос, А почему они стоют десятки тысяч $ если такую же хню можно сотворить на грошовом Ардуино, как тебе кажеца.
     
    NikitOS нравится это.
  3. Toutlemond

    Toutlemond Нуб

    Ну разумеется я это понимаю и за все надо платить. В данном случае можно платить скоростью и "неодновременностю". Те устройства стоят столько ибо работают достаточно быстро и достаточно одновременно что бы сторонний наблюдатель счел это -"мгновенно" и "полностью одновременно". Нам в данном случае не требуются такие жесткие критерии.
     
  4. Airbus

    Airbus Радиохулиган Модератор

    П 2.2 Дешево и сердито.Вопрос я так понимаю чисто теоретический?
     
    Последнее редактирование: 13 ноя 2019
    parovoZZ и Toutlemond нравится это.
  5. KindMan

    KindMan Гуру

    Уточните - все шаговики всегда будут сдвигаться на шаг одновременно? И в одну сторону?
     
  6. Toutlemond

    Toutlemond Нуб

    Нет не обязательно, каждый должен сдвигаться разном направлении в разное время.
    Представим что шаговики управляют выдвижением столбиков.
    Ну грубо говоря их можно представить как массив 10х10
    { { 0, 0, 0, 0, 0 ... 0 },
    { 0, 0, 0, 0, 0 ... 0},
    ....
    { 0, 0, 0, 0, 0 ... 0 } };
    Где ноль это их текущее нижнее положение столбиков которое определяется при включении путем доворота всех шаговиков в одну сторону до срабатывания концевиков.
    Далее массив скажем
    { { 0, 0, 0, 0, 0 ... 0 },
    { 0, 5, 5, 5, 0 ... 0},
    ....
    { 0, 0, 0, 0, 0 ... 0 } };
    Должен заставить 3 движка сделать 5 полных оборотов вправо. Массив как память состояния
    если придет скажем
    { { 0, 0, 5, 0, 0 ... 0 },
    { 0, 3, 3, 3, 0 ... 0},
    ....
    { 0, 0, 0, 0, 0 ... 0 } };
    То нужно повернуть на разницу то есть Три штуки на 2 оборота влево и один в первом ряду на 5 оборотов вправо... и так далее.
     
  7. Toutlemond

    Toutlemond Нуб

    Ну тут скажем так - если придумается способ достаточно изящно реализовать это на практике то вопрос будет практическим.
    Если же такого способа за вменяемые деньги не существует - то возможно останется теоретическим.
    По возможности верните тему в моторы и сервоприводы, ибо это не флуд как таковой а вполне актуальный вопрос.
     
    Последнее редактирование: 13 ноя 2019
  8. Daniil

    Daniil Гуру

    I2c медленная шина (200-400 кГц), spi может быть быстрее (1-50 МГц), чем выше скорость тем сложнее разводка.
    Есть параллельный интерфейс - он может дергаться с тактовой частотой мк.Причем при одинаковых тактовых частотах интерфейсов и протоколу параллельный будет выигрывать по скорости, т.к. параллельному для передачи 8 бит, можно дернуть 1 раз 8-ю ногами, а spi/i2c надо дергать 8 раз ногами.
    Я бы начал реализацию гибрида - сеть камушков, которые управляются мастером, а каждый камушек управляет набором моторов - меняя кол-во камушков и кол-во моторов на камушке можно найти какой-то баланс в скорости выполнения
     
    Toutlemond нравится это.
  9. DetSimen

    DetSimen Guest

    вот примерно десяток тыщ долларов и выйдет. :)
     
  10. Toutlemond

    Toutlemond Нуб

    Спасибо Daniil . Разумный подход! Наверное буде двигаться в этом направлении.
    DetSimen ну уж не долларов. десятки тыщ рублей возможно..
     
  11. b707

    b707 Гуру

    Toutlemond, что-то подобное пытаетесь сделать? :)
    http://posterspb.ru/articles/nauka/view/101-kineticheskaya-installyatsiya-bmw
    Обсуждали уже, человек даже проект пытался заказать.
    В принципе, ничего экстра сложного. На каждую строчку по своей ардуино Мега со своей программой. управляющей 10-15 моторами.
    Синхронизация по любой шине - да можно даже просто синхроимпульс
    Только все равно на круг дорого выходит.
    От полумиллиона рублей...
     
    Toutlemond нравится это.
  12. Toutlemond

    Toutlemond Нуб

    Добрый день!
    b707 - да в целом что-то именно такое. :) Не так масштабно, лишь 10 на 10. Посему не 700 моторов а лишь 100. Но в целом вы правы. Если как в бмв то выходит не меньше 400 000 при моих текущих подсчетах . Только на детали - без учета разработки, что тоже существенно, разумеется. Так ,что да, от полмиллиона - это верно сказано.
     
  13. parovoZZ

    parovoZZ Гуру

    Цепляй на каждый шаговик по одному МК, связь между ними или RS-485, или CAN, или ещё что - это как соль по вкусу.
     
  14. Toutlemond

    Toutlemond Нуб

    parovoZZ Пока мне больше по вкусу идея b707 -
    Кажется оптимальный вариант и связь по spi как сказал Daniil
    Пока делаю в этом направлении на примере 4х моторчиков. Отлажу и можно попробовать смасштабировать.
     
  15. ИгорьК

    ИгорьК Гуру

    Как сказал тов. Сталин, количество уже само по себе есть качество. Это в ответ на утверждение тов. Гегеля.
    В общем, отладка на 4 моторчиках не приблизит масштаб в 100 ни на шаг. Только если к 8 или 10.
     
    Последнее редактирование: 18 ноя 2019
    Daniil и parovoZZ нравится это.
  16. Daniil

    Daniil Гуру

    Пару раз переписать код, и переделать схему, и переосмыслить идею, увеличивая кол-во моторчиков от 1 до 4, от 4 до 10 ... до 100 и будет норм)
     
  17. ostrov

    ostrov Гуру

    SPI внутрисхемный интерфейс, все должно быть рядышком. А вообще, идея "много контроллеров" верная. Не обязательно каждому ШД свой, но штук по нескольку можно. Плюс драйвера, без них контроллерам будет трудно.
     
  18. ostrov

    ostrov Гуру

    Думаю, скорее такое: https://tjournal.ru/flood/55536-digital-out-of-analog
     
  19. Onkel

    Onkel Гуру

    есть чипы ws2811, на каждый драйвер шаговика по чипу, например, пин 2811 red будет dir, pin 2811 blue будет step, пин 2811 green будет enable. 800 kHz на частота обновления будет примерно 10 к/число моторов. А все ws2811 cвязаны последовательно, так что никакой паутины - все строгу цугом. Подобную систему делал для судомоделистов, но не 1000, а примерно 50 исполнительных устройст, от лампочек до лебедок, и все управлялись выходами ws2811.
     
    Последнее редактирование: 21 ноя 2019
    alp69, Toutlemond, b707 и 4 другим нравится это.
  20. witt64

    witt64 Гик

    Einfach genial-genial einfach
    просто гениально-гениальное просто
     
    Onkel нравится это.