Главная Статьи OsmModbusControl в *nix ОС

Управление шаговым двигателем в ОС Linux

Универсальность комплекта OSM SDK, предназначенного для максимального упрощения управления шаговыми двигателями с ПК, заключается не только в высокой гибкости применения и развитой функциональности, но и в возможности использования на различных платформах. Данная статья посвящена управлению шаговым двигателем в Unix подобных ОС с использованием библиотеки OsmModbusControl.dll из комплекта SDK. Поскольку программа управления, как и сама библиотека OsmModbusControl были написаны для работы в ОС семейства Windows, необходимости совершить ниже приведённые действия для использования в Unix подобных ОС.

При настройке использовалось следующее оборудование:

  • переходник с USB порта на COM порт; 
  • драйвер Silicon Labs cp210x
  • образ ОС Linux ubuntu-10.10-desktop-i386; 
  • программа управления виртуальными машинами VirtualBox; 
  • контроллер управления шаговыми двигателями OSM 17 RA
  • программа управления шаговым двигателем, созданная с использованием библиотеки OsmModbusControll.dll из комплекта SDK;
  • в качестве хостовой системы использовалась Windows 7.

Необходимо установить драйвер CP210x USB to UART Bridge. Далее вставить сам переходник и убедиться, что оборудование установлено правильно и распознано. Для этого можно зайти в Диспетчер устройств и во вкладке Порты будет виден установленный драйвер и номер COM порта.

Далее необходимо настроить виртуальную машину (если у вас ещё не создано виртуальной машины с указанным образом, то инструкцию можно найти здесь). Запускаем VirtualBox и переходим на вкладку свойства созданной виртуальной машины.

Переходим на вкладку USB, отмечаем пункт Включить котроллер USB и добавляем новый фильтр Silicon Labs.

После этого запускаем виртуальную машину. В гостевой ОС добавляем созданного пользователя в группу vboxsf . Группа создаётся по умолчанию при инициализации образа с использованием программы Vitual Box. Для других программных продуктов настройки могут отличаться. Для этого запускаем терминал и вводим следующую команду:

gpasswd -a [user] vboxsf

где [user] – здесь и далее это созданный при установке образа виртуальный машины пользователь.

Далее необходимо отредактировать файл fstab. Для этого необходимо выполнить команду:

grep "vboxsf" /etc/group

В результате её выполнения получиться примерно следующее:

vboxusers:x:502:[user]

Необходимо запомнить цифру и перейти к редактированию файла fstab. Для этого необходимо выполнить следующую команду:

sudo gedit /etc/fstab

sudo использовалось, т.к. fstab защищён от редактирования обычными пользователями. После выполнения команды откроется файл в конец которого необходимо будет добавить строку следующего вида:

usbfs /proc/bus/usb usbfs devgid=502,devmode=664 0 0

где 502 – число, полученное ранее. Далее необходимо сохранить этот файл и перезагрузить виртуальную машину. При запуске она может выдать ошибку монтирования и предложит два варианта: пропустить (S) и исправить (M). Выбираем вариант пропустить.

После загрузки системы выбираем среди USB устройств виртуальной машины нужное (Silicon Labs) и монтируем его в систему (ставим галочку).

Виртуальная машина должна забрать устройство под свой контроль (из диспетчера задач Windows пропадёт COM порт Silicon Labs). Если этого не произошло, то необходимо вынуть-вставить само устройство физически.

Для проверки в терминале виртуальной машины набираем следующую команду:

dmesg | grep tty

в ответ должны получить что-то типа:

[ 0.000000] console [tty0] enabled

[ 6.803051] usb 1-2: cp210x converter now attached to ttyUSB0

Во второй строке видно, что к ttyUSB0 примонтирован порт Silicon Labs.

Теперь запустим тестовую программу управления шаговым двигателем, созданную с использованием библиотеки OsmModbusControll.dll из комплекта SDK. Для этого необходимо установить программный продукт MonoDevelop. Для запуска программы можно воспользоваться и другими возможностями, но MonoDevelop позволяет работать с исходным кодом программ написанных с использованием NET Framework, как и Visual Studio, что позволяет реализовать все возможности библиотеки OsmModbusControll.dll из комплекта SDK, отладить или отредактировать код, а потом пересобрать приложение.

Зайдём в центр ПО Ubuntu (Ubuntu Software Centre).

Выберем необходимый компонент и начнём установку.

После завершения установки программу можно найти во вкладке меню Приложения->Программирование->MonoDevelop (Applications->Programming->MonoDevelop).


Для запуска тестовой программы управления шаговым двигателем необходимо осуществить его установку в выбранный каталог. Для этого необходимо запустить MonoDevelop и открыть проект.

 Далее нажать правой кнопкой мыши на открытом решении и выбрать в выпадающем меню Утилиты-> Установить (Tools->Install).


 Далее необходимо выбрать каталог, в который будет происходить установка, а также имя проекта.

 В выбранной папке создаются две папки lib и bin. В папке lib находятся все файлы, необходимые для запуска приложения (библиотеки, исполняемый файл и пр.). В папке bin находится скриптовый файл, запускающий приложение.

 Перед процедурой установки рекомендуется пересобрать приложение для исключения появления ошибок.

 Для запуска необходимо перейти в папку ./bin и запустить на выполнение в терминале скриптовый файл.

Другой способ заключается в ручном написании скрипта и копировании всех необходимых файлов в целевой каталог. Для этого необходимо создать sh файл со следующим содержанием:

#!/bin/sh

exec mono “/[dest-dir]/lib/ProjectName/[ExecuteFileName.exe]” “$@”

где [dest-dir] – папка, в котором находится исполняемый файл и библиотеки, необходимые для запуска. [ExecutFileName.exe] – имя исполняемого файла.  

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