о чем толкую уже пару стр форумаSerg-tmn писал(а):То есть обыкновенный преобразователь USB-COM.
ЧПУ пульты
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: ЧПУ пульты
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
чуть подробней как получить значение из емс в питоне (пример)
в скрипт импортируем модуль hal:
в скрипте (если есть класс - то пишем в функцию _init_)
даем имя всей группе создаваемых в этом скрипте пинов
далее мы создаем конкретный пин с именем "in" (любое уникальное для скрипта имя), и прописываем его свойства: тип- float,по коммутации- IN (то есть входной)
теперь наша группа "name" должна появиться в halshow ,а в ней наш пин "in"
полностью его имя будет "name.in": в хал файле коннектим его с нужным нам пином (например):
вот так можно получить значение этого пина в переменную "self.p"
проверяем:
в скрипт импортируем модуль hal:
Код: Выделить всё
import halдаем имя всей группе создаваемых в этом скрипте пинов
Код: Выделить всё
self.halcomp = hal.component("name")Код: Выделить всё
self.halcomp.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)полностью его имя будет "name.in": в хал файле коннектим его с нужным нам пином (например):
Код: Выделить всё
net cmd axis.0.motor-pos-cmd => name.in Код: Выделить всё
self.p=self.halcomp["in"]Код: Выделить всё
print self.p ,"self.p"- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
так. давай сначала.
Ты писал "в скрипт импортируем модуль hal", это надо создавать новый py-файл или изменить какой-то готовый файл?
з.ы. прошу сильно не пинать, в линуксе я чайник.
Ты писал "в скрипт импортируем модуль hal", это надо создавать новый py-файл или изменить какой-то готовый файл?
з.ы. прошу сильно не пинать, в линуксе я чайник.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
линукс тут не при чем - питон работает одинаково вездеТима писал(а):в линуксе я чайник.
я так понял у тебя задача написать скрипт на питоне?
или ты готовый будешь брать где то?
в любом случае в этот скрипт впиши приведенные выше строки
и получишь желаемый результат
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Да, хочу все с нуля попробовать сделать!nkp писал(а):я так понял у тебя задача написать скрипт на питоне?
Создаем новый py-файл, загоняем туда приведенные выше строки. Кидаем файл в папку с hal-файлом.nkp писал(а):в любом случае в этот скрипт впиши приведенные выше строки
Но, как ЕМС увидит этот файл? Ведь hal на него должен сослаться при запуске?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Получается, если взять этот py-файл, бросить его в папку с hal-фалом, в hal-файл добавитьNick писал(а):Этот arduino.py создает пины, которые можно подключать к чему угодно, а не только к панеле PyVCP.
arduino.analog-in-##
arduino.digital-out-##
or arduino-digital-in-##
arduino.analog-out-##
тоNick писал(а):loadusr -Wn arduino python arduino.py /dev/ttyUSB0 3
Я правильно мыслю?nkp писал(а):теперь наша группа "name" должна появиться в halshow
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Ооо, работает! Только период опроса 1 секунда. Буду разбираться дальше.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
Тима писал(а):Я правильно мыслю?
Код: Выделить всё
loadusr -Wn arduino python arduino.py /dev/ttyUSB0 3в хал появятся пины этого компонента
Код: Выделить всё
arduino.analog-in-##
arduino.digital-out-##
or arduino-digital-in-##
arduino.analog-outзначение пинов нам недоступно.
Чтоб это преодолеть и нужны те шаги, которые я описал выше.
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Создал в том-же файле переменную in, как ты описывал и он появился вместе с входами/выходами ардуины. Подключил к нему координаты ось Х, запустил halmeter - значения меняются. Теперь как его передать вместе с теми данными в ардуину?
И еще, я тут думаю, нужен ли джойстик? Ведь можно просто подключить кнопки к ЕМС2, а в ней уже есть. Ускорение торможение...
И еще, я тут думаю, нужен ли джойстик? Ведь можно просто подключить кнопки к ЕМС2, а в ней уже есть. Ускорение торможение...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Тут такое дело, сейчас использую файл и скетч с сайта. Насколько я понял, py-файл кидает пакет данных, а ардуина ловит этот пакет. Вопрос, как в этот пакет втиснутся? Или отдельно отправлять?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
покажи кодТима писал(а):py-файл кидает
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Выкладывал его здесь: ЧПУ пульты #757
Выложить в коде сейчас не могу. Пишу с планшета.
Выложить в коде сейчас не могу. Пишу с планшета.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
В него до формирования пакета, до начала цикла for, вписал переменную in, как ты советовал. И в hal привязал к ней координату Х.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
Код: Выделить всё
ser.write(chr(0x80 | (data >> 7)))
ser.write(chr(data & 0x7f))точно так в порт пишем и нашу переменную(как ты там ее обозвал)
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
код скрипта раньше не видел,
там же полно пинов - а мы еще новый прописывали
к готовому можно было приконнектиться
-------------
читать надо темы преждечем вклиниваться
(это я себе)
там же полно пинов - а мы еще новый прописывали
к готовому можно было приконнектиться
-------------
читать надо темы преждечем вклиниваться
(это я себе)
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
Сможешь расшифровать эти команды?
ser.write() - это отправить в порт содержимое скобок.
chr () - это пакет данных, если яправильно понял..
А что в его скобках?
Передачу данных по одной, я еще както понимаю, а как пакет формировпать не очень.
ser.write() - это отправить в порт содержимое скобок.
chr () - это пакет данных, если яправильно понял..
А что в его скобках?
Передачу данных по одной, я еще както понимаю, а как пакет формировпать не очень.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
нет - это символ кода ASCIIТима писал(а):chr () - это пакет данных, если яправильно понял..
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: ЧПУ пульты
С этим файлом еще одна проблема, если time,sleep() в конце файла меньше 1секунды передача данных не происходит.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
я не знаю что ты называешь пакетом-
данные там передаются просто:
есть бесконечный цикл
есть строка
обновление ставишь здесь:
всё - каждый проход цикла данные пишутся в порт
если поменялись - то новое значение,если нет - старое...))
данные там передаются просто:
есть бесконечный цикл
Код: Выделить всё
while 1:Код: Выделить всё
ser.write(наши_данные)Код: Выделить всё
time.sleep(1)если поменялись - то новое значение,если нет - старое...))
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ЧПУ пульты
а чем у тебя настройки порта (PORT, 9600, timeout=2) ограничиваются???Тима писал(а):С этим файлом еще одна проблема, если time,sleep() в конце файла меньше 1секунды передача данных не происходит.
в частности - скорость??