Страница 1 из 4

Универсальный Wi-Fi пульт из смартфона / планшета

Добавлено: 29 июн 2015, 20:39
MX_Master
Подбирал я недавно новый контроллер. Ориентир был на управление с ноутбука, по возможности не 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

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 29 июн 2015, 20:43
tooshka
Выкладывайте, а и видео насколько быстро реагирует.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 29 июн 2015, 21:50
megagad
"И тут внезапно позвонили..."
Может не стоит изобретать велосипед?

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 30 июн 2015, 21:11
MX_Master
Добавил видео http://bit.ly/1KqYzDI (есть в первом посте). Но едва ли этого хватит, чтобы показать какой-то функционал. Так что, смотрите и тестируйте сами. Все ссылки и краткая инструкция есть в первом посте.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 04 июл 2015, 23:12
WhiteMask
У меня не получается, непойму как включить соединение комп-моб. устройство. Установил программу на комп, установил приложение на планшет. Надо наверное какойто мануал для чайников по установке и настройке всей системы.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 05:04
MX_Master
WhiteMask писал(а):У меня не получается, непойму как включить соединение комп-моб. устройство. Установил программу на комп, установил приложение на планшет. Надо наверное какойто мануал для чайников по установке и настройке всей системы.
Всё зависит от вашего ПК. Но смысл коммуникации в том, чтобы и смартфон, и ПК находились в единой локальной сети.

Если настольный ПК и в нем нет никаких беспроводных (wifi, bluetooth) модулей, то, возможно, придётся прикупить что-то из этого:
1. USB Wi-Fi адаптер
2. PCI Wi-Fi адаптер
3. Wi-Fi роутер + возможно и PCI сетевой адаптер, если сетевого порта нет в ПК

В ноутбуках и смартфонах wifi/bluetooth модули, обычно, есть. Поэтому дело останется за малым - создать между ними локальную сеть, в которой одно из устройств будет Wi-Fi точкой доступа (базовой станцией), а другие будут к ней подключаться.

Если отдельного Wi-Fi роутера нет, то придется точкой доступа сделать или ПК, или сам смартфон. Ищем и читаем соответствующие темы - wi fi точка доступа windows и wi fi точка доступа андроид.

Инструкция крохотная, так что придется почитать в интернетах нужные мануалы по настройке и подобрать для себя лучший вариант. Сейчас многие контроллеры и платы развязки имеют сетевой интерфейс подключения к ПК (тот же SmoothStepper, CNCUSB Mk3 и т.п.). Поэтому очень полезно знать все эти сетевые манипуляции и настройки.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 07:02
shalek
Попробовал. Все отлично работает. Со станком пока не пробовал. Надо разобраться как и что, но а так довольно шустро реагирует. Возможно куплю полную версию.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 08:23
nik1
Штука на любителя, пробовал не понравилось
Если экран мелкий , то нужно точно попадать в иконки
Если большой, то неудобно держать

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 08:27
shalek
nik1 писал(а):Если экран мелкий , то нужно точно попадать в иконки
То же самое. Только не врублю, как допустим настроить на Ncstudio

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 10:44
WhiteMask
ну как по мне так лучше купить планшет 5-7 дюймовый за 30баксов и юзать имея разные скины пультов, чем купить безпроводной MPG для Mach3 за 100 долларов максимум на 3-4 оси и 5-ю настраиваемыми кнопками.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 10:59
WhiteMask
Всё получилось, работает офигенно быстро, пробую на Galaxy note 10.0

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 11:53
WhiteMask
MX_Master Было бы очень хорошо донести до людей которые не особо связаны с програмированием (такие как я) как набросать свой пульт. Может есть софт какойто для програмирования с графичиским интерфейсом или чтото подобное? Например языки програмирования я не знаю, но для своих нужд пишу прошивки для микроконтроллеров вполне удачно используя программу с графическим интерфейсом в виде алгоритмических блоков.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 19:58
MX_Master
WhiteMask писал(а):MX_Master Было бы очень хорошо донести до людей которые не особо связаны с програмированием (такие как я) как набросать свой пульт. Может есть софт какойто для програмирования с графичиским интерфейсом или чтото подобное? Например языки програмирования я не знаю, но для своих нужд пишу прошивки для микроконтроллеров вполне удачно используя программу с графическим интерфейсом в виде алгоритмических блоков.
Разработчики предполагают, что для создания своих пультов, у автора будет хотя бы минимальный навык программирования. Визуальных редакторов под это дело нет, поэтому всё пишем вручную. Вид пульта в XML файле ещё можно подправить без всякого программирования, а вот функциональную серверную часть без соответствующих навыков уже не взять. Базовый пример создания пульта можно глянуть здесь. Если базовый пример вызывает много вопросов, глубоко копать уже не стоит.

Давайте сделаем проще. Как минимум один прогер в теме у вас уже есть (в моём лице). Скажите для какой программы вам нужен пульт, опишите (нарисуйте) внешний вид (кнопки и т.д.) и опишите ожидаемый функционал. Я в свою очередь, открываю программку. Ковыряю её на предмет горячих клавиш, возможности получить позиции осей и т.п. Создаю пульт, в исходниках которого пишу как можно больше комментариев, чтобы вам можно было что-то потом исправить. И выкладываю исходники в этой теме. Мне-то самому пульт, к примеру, для ncstudio прямо сейчас не сильно нужен. Хотя многие этим самым ncstudio очень активно пользуются, и Wi-Fi пульт для него многим может пригодится. В итоге соберем потом в этой теме пульты (с исходниками) для популярных в народе программ. Но, если кто-то хочет создать полностью что-то своё, доки в помощь, а вопросы - в эту тему.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 22:29
WhiteMask
По сути мне нужен пульт под mach3. Просто хотелось бы свою раскладку клавиш набросать.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 05 июл 2015, 23:01
WhiteMask
Вот я просмотрел фай .lua . Ну если взять сделать исходник например для программы mach3 с коментариями, например // этот блок для этого//, //вот этот для того то// и т.д. а мы по анологии будем подставлять уже свои клавиши. Потом исходник для ncstudio так же. И пусть каждый рисует себе кнопки и добавляет нужное количество осей. Или прописать все оси возможные, а ненужные народ закоментирует и всё. Ну както так.. может?

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 06 июл 2015, 06:20
MX_Master
WhiteMask писал(а):Вот я просмотрел фай .lua . Ну если взять сделать исходник например для программы mach3 с коментариями, например // этот блок для этого//, //вот этот для того то// и т.д. а мы по анологии будем подставлять уже свои клавиши. Потом исходник для ncstudio так же. И пусть каждый рисует себе кнопки и добавляет нужное количество осей. Или прописать все оси возможные, а ненужные народ закоментирует и всё. Ну както так.. может?
Именно так и будет. Причем, код будет максимально простым, без сложной логики.

Хорошо, теперь разберемся с версиями. Нужна версия Mach3 (v0.000.000) и версия NCStudio (v0.000). Горячие клавиши могут быть одинаковыми в разных версиях, а вот элементы окна, с которых нужно снять данные (например, позиции осей), могут отличаться.

У меня есть ncstudio версии v8.313, v8.280, v8.258, v8.215, v5.5.6, v5.4.68, v5.4.53.
Mach3 версии v3.043.053.

А какими пользуетесь вы?

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 06 июл 2015, 06:54
shalek
Самые распространенные Ncstudio 5.5.60 и Mach3 Ver. R3.043.066
По Mach3 - многие пользуются разными скринсетами, здесь в отличии от студии разнобой. Вот у нцшки - проще. Интерфейс у пятых одинаковый или почти одинаковый.

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 06 июл 2015, 08:11
Ворон226
Наконец-то! Неужели этим летом я поставлю на станочек вай-фай-монитор-пульт на планшетнике? И откажусь от длиннющего провода мониторного! Как только появится время - буду копать...

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 06 июл 2015, 12:59
WhiteMask
MX_Master писал(а):Горячие клавиши могут быть одинаковыми в разных версиях, а вот элементы окна, с которых нужно снять данные ........
думаю версия Матча не особо важна т.к. скринсет тот же. Думаю подправить номер элемента можно будет для себя каждому. Большая часть сами скринсеты правят под себя, и я в том числе. Допустим оттолкнутся от стандартного, а потом каждый подправит сам... там координаты указываются или название элемениа или еще чтото?

Re: Универсальный Wi-Fi пульт из смартфона

Добавлено: 06 июл 2015, 18:54
MX_Master
WhiteMask писал(а):
MX_Master писал(а):Горячие клавиши могут быть одинаковыми в разных версиях, а вот элементы окна, с которых нужно снять данные ........
думаю версия Матча не особо важна т.к. скринсет тот же. Думаю подправить номер элемента можно будет для себя каждому. Большая часть сами скринсеты правят под себя, и я в том числе. Допустим оттолкнутся от стандартного, а потом каждый подправит сам... там координаты указываются или название элемениа или еще чтото?
У этих элементов окна зачастую нет никаких названий. Единственный параметр, который позволяет их хоть как-то разделить на группы, это название класса. Нас интересуют элементы, в названии класса которых есть EDIT или STATIC. Отсеиваем из ВСЕХ элементов окна лишние и оставляем только эти. А потом методом научного тыка ищем в получившемся списке элементы, содержащие, например, позиции осей. Сохраняем порядковые номера найденных элементов под человеко-понятными именами. Далее, когда нужно считать значение, просто берем нужный элемент из списка элементов окна по заранее найденному порядковому номеру. Читаем значение и меняем значение соответствующего элемента Wi-Fi пульта. Вкратце. В тестовом исходнике для CNCUSB эти манипуляции можно наблюдать со 174-ой по 204-ую строку.

В ncstudio и cncusb с этим проблем нет. В Mach3 такие элементы тоже есть, только вот значения в них всегда пустые. Программа рисует значения позиций осей просто поверх этих элементов. Я недавно сделал попытку взять значения позиций осей просто из оперативной памяти процесса, но не вышло. У сервера UnifiedRemote маловато прав/привилегий, чтобы читать память других процессов. Попробую вариант снятия мини скриншотов с элементов с позициями осей.