В этом видео мы подключим бесколлекторные двигатели к компьютеру с операционной системой Astra Linux, настроим нужное программное обеспечение, и поймем общую схему работы с двигателями, а также с абсолютными энкодерами положения вала.

Astra Linux - это российский дистрибутив Линукс, который сертифицирован для специальных применений. В этом видео мы будем использовать версию Орел, Common Edition с hardened ядром.

Для сборки стенда будем использоваться бесколлекторный двигатель со встроенными датчиками Холла и встроенным квадратурным энкодером. Также есть небольшой бездатчиковый бесколлекторный двигатель и магнитный абсолютный энкодер положения вала.

Для подключения двигателей и энкодеров к компьютеру с Astra Linux будем использовать контроллеры бесколлекторных двигателей компании Сервосила. Контроллеры бывают прямоугольной или круглой формы. На контроллерах есть разъемы для подключения двигателей, энкодеров, датчиков Холла и питания.

Контроллерам двигателей требуется напряжение питания от 7 до 60 вольт DC. Я приспособил блок питания от старого ноутбука. Блок питания выдает напряжение 19.7 вольт. Я раздвоил кабель и плоскогубцами закрепил разъемы для подключения кабелей к контроллерам.

Сборку начнем с шин данных USB и CANbus. Обыкновенный кабель USB используется для подключения одного из контроллеров к управляющему компьютеру или PLC. Остальные же контроллеры подключаются друг к другу гирляндой с помощью кабелей шины CANbus. Тот единственный контроллер, который подключен по USB к компьютеру, становится шлюзом USB-в-CABbus для всех остальных контроллеров в цепочке.

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

Обязательно соблюдайте полярность подключения питания. Напряжение питания допускается любое в диапазоне от 7 до 60 вольт.

На контроллерах двигателей есть клеммы для подключения питания, помеченные знаками плюс и минус.

На этом сборка завершена. Можно включить питание контроллеров.

Теперь перейдем к настройке программного обеспечения.

В Astra Linux контроллер Сервосила определяется, как виртуальный последовательный порт. Контроллеры посылают телеметрическую информацию через этот порт с помощью текстовых сообщений. Обратите внимание, что телеметрия идет от всей цепочки контроллеров, а не только от того, который подключен к компьютеру по USB.

Для доступа к порту необходимо добавить текущую учетную запись в группу dialout.

После настройки виртуального последовательного порта, можно установить графическую программу Сервоскоп. Для этого надо разархивировать скачанный архив с программой, запустить Терминал, перейти в директорию с разархивированными файлами, и запустить скрипт.

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

Следующий шаг - это запуск процедуры Автонастройки контроллеров. Из выпадающего списка выбираем команду "Auto-Configuration". Указываем максимальный ток из фазы-в-фазу, который двигатель может выдержать. Указываем количество полюсов ротора двигателя. Эти параметры берутся из документации на двигатель. Нажимаем кнопку Send.

Двигатель издает гудок, которые сигнализирует, что процедура Автонастройки началась.

Во время Автонастройки контроллер посылает серию импульсов для измерения различных характеристик двигателя. Эти импульсы и заставляют двигатель вращаться и ускоряться. Контроллер использует результаты измерений для самонастройки под конкретный двигатель.

Будьте осторожны, потому что двигатель несколько раз ускоряется до максимальной скорости во время процедуры Автонастройки. Повторный гудок сигнализирует окончание процедуры автонастройки.

Также надо повторить такую же процедуру Автонастройки для второго двигателя.

У процедуры автонастройки есть свои ньюансы и особенности. Рекомендую посмотреть отдельный фильм на эту тему. Процедура автонастройки формирует базовую конфигурацию контроллера. Конфигурацию потом можно настраивать и оптимизировать под конкретные задачи уже вручную.

Что ж, оба контроллера автоматически настроены, можно провести проверку работы.

Например, выбираем из списка команду Electronic Speed Control. Задаем скорость в 200 электрических оборотов в секунду. Нажимаем кнопку Send. Двигатель начинает вращаться с заданной скоростью.

В заключение фильма продемонстрирую подключение магнитного энкодера положения вала с цифровым интерфейсом BISS-C. Датчики могут быть как линейные, так и угловые.

Специальный кабель соединяет энкодер с контроллером. Для подключения энкодеров на контроллере есть специальный разъем.

Информация с датчика применяется в различных режимах сервоуправления и direct drive режимах.

Телеметрию с датчика можно посмотреть в окне управления двигателем.

Комментарии (6)


  1. pbw
    12.08.2021 18:14
    +6

    Это конечно хорошо, что вы появились на Хабре. Но, честно говоря, зашли вы неудачно. Конкретно этот текст не рассказывает ни о чем полезном для обычного читателя. При этом, статья на вашем сайте - гораздо информативнее.

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

    А как обычному человеку купить у вас 3-4 контроллера для использования в домашнем проекте? И сколько это будет стоить? Здесь расскажите, а не через форму запроса на вашем сайте. Мало кому интересно оставлять свои персональные данные где только можно.


    1. ProLimit
      12.08.2021 20:13
      +4

      Минус статье ставить не стал, все таки я за поддержку отечественного производителя. Но полностью согласен - так выходить на публику не стоит. Вы вроде как нацелены дать доступ к вашим разработкам энтузиастам (сдеалил серию видео про коннект из Raspberry Pi, Linux), но при этом приобрести ваши контроллеры привычным способом невозможно.


      1. servosila Автор
        17.08.2021 08:44
        -1

        Спасибо за поддержку! Приобрести в нашем Интернет-магазине, но там пока только для юр. лиц по безналу. Если как физ. лицо, то можно в Чип и Дип, там чуть дороже.


    1. servosila Автор
      17.08.2021 08:40
      -1

      Контроллеры изначально разрабатывались для мобильных роботов с бортовой шиной CANbus. Такая же шина данных есть и во всех современных автомобилях. Первая версия контроллеров была выпущена 7 лет назад для мобильных роботов. Потом было еще много модификаций, улучшений, доработок. В итоге получился достаточно универсальный продукт, который сейчас применяется в самых различных областях - автоматические склады, системы компьютерного зрения, системы гиростабилизации, испытательные стенды и много всего другого.


  1. CrashLogger
    13.08.2021 10:32
    +4

    Непонятно, при чем тут именно Астра Линукс. В любом другом дистрибутиве будет все то же самое. И зачем описывать какой-то Сервоскоп, который никто в глаза не видел, да еще в стиле "два раза шелкните на имени устройства" ? Здесь люди умеют пользоваться компьютером и разберутся, куда щелкнуть. Гораздо интереснее было бы описание протокола, API и как с этим работать с точки зрения программиста.


    1. servosila Автор
      17.08.2021 08:51
      -1

      В Astra Linux нестандартная библиотека QT, нет поддержки CANbus и нет OpenMP. Графическую программу для настройки контроллеров пришлось адаптировать под Astra Linux. После настройки контроллеров эта графическая программа уже не нужна, поэтому, в чем-то вы правы - в самом деле, эти контроллеры будут работать в любом Linux.

      Протокол управления через виртуальный последовательный порт называется SLCAN. Это псевдостандартный текстовый протокол, который эмулирует CANbus в последовательном порте. В Linux даже есть стандартный демон slcand, который конвертирует SLCAN в стандартный SocketCAN API. Скоро будет новое видео на тему программирования через SLCAN и CANbus.