Универсальный Wi-Fi пульт из смартфона / планшета
Добавлено: 29 июн 2015, 20:39
Подбирал я недавно новый контроллер. Ориентир был на управление с ноутбука, по возможности не Mach3 и желательно по сети (ethernet, wi-fi). При этом хотелось по привычке иметь отдельный пульт для ручной подстройки - ноль заготовки выставить, вкл/выкл шпинделя и т.п. Выбор по моим деньгам был небольшой. На контроллер еще можно было потратиться, а вот пульты для ручной подстройки меня почему-то не вдохновили. Какой-то скудноватый у них был функционал за свои деньги. Думаю, многим в такой момент приходила мысль - а почему бы не сделать пульт, например из смартфона. Я даже видел что-то такое для Mach3 под Android. Идея неоднократно обсуждалась и очень проста. Рядом с софтом котроллера на ПК должна работать программка, которая будет эмулировать привычные действия оператора - нажимать кнопки на клаве, тыкать мышкой, вводить текст, смотреть на текущие позиции осей и т.п. Назовём эту программку - сервером. А в смартфоне у нас должно быть приложение-клиент, которое по сети этим сервером управляет. Я уже было хотел сам что-то попроще своять, но оказывается, все уже придумано за нас! У меня самого простой Android смартфон. Поэтому поиск я начал c Play маркета и нашёл!
Оказывается, есть такая штука как универсальный пульт для ПК. Это чисто софт, причём, мультиплатформенный. Говоря мультиплатформенный, я имею ввиду, что сервер и клиент есть под все ОС. Android, iOS, Windows, Linux и т.д. На компе ставим сервер, а на смартфон приложение. Для комуникации используется Wi-Fi, Bluetooth, ethernet, в общем - сеть. А для управления сервером используются LUA скрипты и интерфейс на XML. Документация хорошая, поэтому я за пару дней сообразил тестовый вариант для CNC USB контроллера Mk1. Ничего другого под рукой не было проверить. Система работает! Координаты осей берем из текстовых полей окна на ПК, и показываем их в приложении. Кнопки приложения эмулируют нажатия горячих клавиш в окне программы на ПК. Тестировал вчера и сегодня такое же для Mach3. Выполнимо, но вот координаты осей трудновато взять с окна программы, они хранятся чисто в памяти процесса и рисуются поверх форм для ввода в окне. С Mach4 таких проблем нет, координаты осей тоже берем с текстовых полей окна. Linux'ов под руками нет проверить, но думаю, что сделать тоже можно.
Итак, используем программу UnifiedRemote (https://www.unifiedremote.com/). С сайта качаем сервер под вашу ОС и ставим его на компе. Там же на сайте есть ссылки, чтобы скачать приложение под ваш смартфон. Сразу оговорюсь, есть бесплатная версия приложения и платная (3$). Я скачал бесплатную. Потыкал для начала в стандартные виды пультов - все пашет. Полез в документацию на предмет создания своего пульта, и уже через пол часа разборок с разбегу занес в кассу разработчика 3$ за полную версию приложения. Разрабы очень тщательно подошли к процессу, и дают нам большой функионал для визуального управления ПК с мобильного устройства. При желании вы можете создать для себя любой вид пульта с любым вашим функционалом. Под планшет, под смарфтон, под любые программы на ПК - Mach, CNCUSB, LinuxCNC и т.д. Все доки программы и исходники стандартных пультов лежат здесь - https://github.com/unifiedremote . Всем, кто знаком с программированием будет интересно полистать.
Для начала запустите сервер на ПК. В трее появится иконка, правый клик по ней, выбрать "Logs..". Откроется папка, в которой будет папка Remotes, внутри есть папка Custom. Архив c папкой пульта распаковываем в неё. Если у вас бесплатная версия приложения в смартфоне, то нестандартные пульты из этой папки юзать нельзя. Но на правах тестирования, можете заменить один из стандартных пультов в соседней папке \Remotes\Bundled\Main на свой. Главное, названия стандартных папок не менять, а их содержание может быть другое (надеюсь, намёк ясен). В приложении на смартфоне заходим в меню Remotes, жмем на экране ( + ), чтобы добавить к показу новых пультов. Находим в списке CNC USB Controller (или тот стандартный пульт, который вы изменили) и ставим напротив галочку. В списке пультов теперь можно нажать на CNC USB Controller и приступить к тестированию. Если в списках нигде нет нового пульта, то на ПК правый клик по иконке сервера в трее, выбрать Manager... Откроется браузер с вебмордой сервера. Там во вкладке Status > Dashboard жмем Reload Remotes. Кстати, советую для начала попробовать стандартные пульты, типа Mouse, File Manager. Будет интересно посмотреть как управлять мышкой и клавой ПК со смартфона, вкл/выкл звук, запускать/закрывать программы, смотреть на рабочий стол и т.д. Инструкция не совсем исчерпывающая, так что, если будут вопросы - задавайте.
- - - ПУЛЬТ ДЛЯ MACH3 - - - - - - - - - - - - - - - - - -
Пульт проверен на версии Mach3 3.043.053 со стандартным скринсетом Mach3Mill. Вертикальная версия пульта для смартфона. Для ввода MDI команд с клавиатуры используется комбинация клавиш CTRL + M. Для управления 4-ой осью (A) используются кнопки на цифровой клавиатуре - num4 и num6.
- - - ПУЛЬТ ДЛЯ NCSTUDIO 5 - - - - - - - - - - - - - - - - - -
Пульт проверен на версии NCStudio 5.5.6. Это вертикальная версия пульта (для смартфона). Получилось довольно функционально, т.к. из окна программы можно выдернуть много параметров.
- - - ПУЛЬТ ДЛЯ CNC USB CONTROLLER (PlanetCNC) - - - - - - - - - - - - - - - - - -
Пульт проверен на версии CNC USB Controller 2.10.1412.1501. Вертикальная версия пульта для смартфона.
https://gitlab.com/unified-remote-cnc
Оказывается, есть такая штука как универсальный пульт для ПК. Это чисто софт, причём, мультиплатформенный. Говоря мультиплатформенный, я имею ввиду, что сервер и клиент есть под все ОС. Android, iOS, Windows, Linux и т.д. На компе ставим сервер, а на смартфон приложение. Для комуникации используется Wi-Fi, Bluetooth, ethernet, в общем - сеть. А для управления сервером используются LUA скрипты и интерфейс на XML. Документация хорошая, поэтому я за пару дней сообразил тестовый вариант для CNC USB контроллера Mk1. Ничего другого под рукой не было проверить. Система работает! Координаты осей берем из текстовых полей окна на ПК, и показываем их в приложении. Кнопки приложения эмулируют нажатия горячих клавиш в окне программы на ПК. Тестировал вчера и сегодня такое же для Mach3. Выполнимо, но вот координаты осей трудновато взять с окна программы, они хранятся чисто в памяти процесса и рисуются поверх форм для ввода в окне. С Mach4 таких проблем нет, координаты осей тоже берем с текстовых полей окна. Linux'ов под руками нет проверить, но думаю, что сделать тоже можно.
Итак, используем программу UnifiedRemote (https://www.unifiedremote.com/). С сайта качаем сервер под вашу ОС и ставим его на компе. Там же на сайте есть ссылки, чтобы скачать приложение под ваш смартфон. Сразу оговорюсь, есть бесплатная версия приложения и платная (3$). Я скачал бесплатную. Потыкал для начала в стандартные виды пультов - все пашет. Полез в документацию на предмет создания своего пульта, и уже через пол часа разборок с разбегу занес в кассу разработчика 3$ за полную версию приложения. Разрабы очень тщательно подошли к процессу, и дают нам большой функионал для визуального управления ПК с мобильного устройства. При желании вы можете создать для себя любой вид пульта с любым вашим функционалом. Под планшет, под смарфтон, под любые программы на ПК - Mach, CNCUSB, LinuxCNC и т.д. Все доки программы и исходники стандартных пультов лежат здесь - https://github.com/unifiedremote . Всем, кто знаком с программированием будет интересно полистать.
Для начала запустите сервер на ПК. В трее появится иконка, правый клик по ней, выбрать "Logs..". Откроется папка, в которой будет папка Remotes, внутри есть папка Custom. Архив c папкой пульта распаковываем в неё. Если у вас бесплатная версия приложения в смартфоне, то нестандартные пульты из этой папки юзать нельзя. Но на правах тестирования, можете заменить один из стандартных пультов в соседней папке \Remotes\Bundled\Main на свой. Главное, названия стандартных папок не менять, а их содержание может быть другое (надеюсь, намёк ясен). В приложении на смартфоне заходим в меню Remotes, жмем на экране ( + ), чтобы добавить к показу новых пультов. Находим в списке CNC USB Controller (или тот стандартный пульт, который вы изменили) и ставим напротив галочку. В списке пультов теперь можно нажать на CNC USB Controller и приступить к тестированию. Если в списках нигде нет нового пульта, то на ПК правый клик по иконке сервера в трее, выбрать Manager... Откроется браузер с вебмордой сервера. Там во вкладке Status > Dashboard жмем Reload Remotes. Кстати, советую для начала попробовать стандартные пульты, типа Mouse, File Manager. Будет интересно посмотреть как управлять мышкой и клавой ПК со смартфона, вкл/выкл звук, запускать/закрывать программы, смотреть на рабочий стол и т.д. Инструкция не совсем исчерпывающая, так что, если будут вопросы - задавайте.
- - - ПУЛЬТ ДЛЯ MACH3 - - - - - - - - - - - - - - - - - -
Пульт проверен на версии Mach3 3.043.053 со стандартным скринсетом Mach3Mill. Вертикальная версия пульта для смартфона. Для ввода MDI команд с клавиатуры используется комбинация клавиш CTRL + M. Для управления 4-ой осью (A) используются кнопки на цифровой клавиатуре - num4 и num6.
- - - ПУЛЬТ ДЛЯ NCSTUDIO 5 - - - - - - - - - - - - - - - - - -
Пульт проверен на версии NCStudio 5.5.6. Это вертикальная версия пульта (для смартфона). Получилось довольно функционально, т.к. из окна программы можно выдернуть много параметров.
- - - ПУЛЬТ ДЛЯ CNC USB CONTROLLER (PlanetCNC) - - - - - - - - - - - - - - - - - -
Пульт проверен на версии CNC USB Controller 2.10.1412.1501. Вертикальная версия пульта для смартфона.
https://gitlab.com/unified-remote-cnc