ЧПУ пульты

Контроллеры, драйверы, датчики, управляющие устройства.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: ЧПУ пульты

Сообщение aftaev »

Serg-tmn писал(а):То есть обыкновенный преобразователь USB-COM.
о чем толкую уже пару стр форума :) Ардуино это МК+преобразователь USB-COM и загрузка идет скорее всего через bootloader. Сейчас размер скетча моей программы Размер скетча в двоичном коде: 19 698 байт (из 126 976 байт максимум) компиляция с загрузкой идет пол минуты что напрягает, а если всю память использовать нажал компилировать и пошел чай пить :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

чуть подробней как получить значение из емс в питоне (пример)
в скрипт импортируем модуль hal:

Код: Выделить всё

import hal
в скрипте (если есть класс - то пишем в функцию _init_)
даем имя всей группе создаваемых в этом скрипте пинов

Код: Выделить всё

		self.halcomp = hal.component("name")
далее мы создаем конкретный пин с именем "in" (любое уникальное для скрипта имя), и прописываем его свойства: тип- float,по коммутации- IN (то есть входной)

Код: Выделить всё

self.halcomp.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
теперь наша группа "name" должна появиться в halshow ,а в ней наш пин "in"
полностью его имя будет "name.in":
Выделение(056).jpg (1756 просмотров) <a class='original' href='./download/file.php?id=9260&mode=view' target=_blank>Загрузить оригинал (61.09 КБ)</a>
в хал файле коннектим его с нужным нам пином (например):

Код: Выделить всё

net cmd   axis.0.motor-pos-cmd => name.in 
вот так можно получить значение этого пина в переменную "self.p"

Код: Выделить всё

self.p=self.halcomp["in"]
проверяем:

Код: Выделить всё

print self.p ,"self.p"
Выделение(057).jpg (1752 просмотра) <a class='original' href='./download/file.php?id=9261&mode=view' target=_blank>Загрузить оригинал (72.93 КБ)</a>
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

так. давай сначала.
Ты писал "в скрипт импортируем модуль hal", это надо создавать новый py-файл или изменить какой-то готовый файл?
з.ы. прошу сильно не пинать, в линуксе я чайник.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

Тима писал(а):в линуксе я чайник.
линукс тут не при чем - питон работает одинаково везде
я так понял у тебя задача написать скрипт на питоне?
или ты готовый будешь брать где то?
в любом случае в этот скрипт впиши приведенные выше строки
и получишь желаемый результат
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

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

Re: ЧПУ пульты

Сообщение Тима »

Nick писал(а):Этот arduino.py создает пины, которые можно подключать к чему угодно, а не только к панеле PyVCP.
arduino.analog-in-##
arduino.digital-out-##
or arduino-digital-in-##
arduino.analog-out-##
Получается, если взять этот py-файл, бросить его в папку с hal-фалом, в hal-файл добавить
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: ЧПУ пульты

Сообщение nkp »

Тима писал(а):Я правильно мыслю?

Код: Выделить всё

loadusr    -Wn arduino    python arduino.py /dev/ttyUSB0 3
после подобной строки подгрузится компонент arduino (arduino.py )
в хал появятся пины этого компонента

Код: Выделить всё

arduino.analog-in-## 
arduino.digital-out-##
or arduino-digital-in-## 
arduino.analog-out
их можно коммутировать в хал ,но в самом скрипте (arduino.py )
значение пинов нам недоступно.
Чтоб это преодолеть и нужны те шаги, которые я описал выше.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

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

Re: ЧПУ пульты

Сообщение Тима »

Тут такое дело, сейчас использую файл и скетч с сайта. Насколько я понял, py-файл кидает пакет данных, а ардуина ловит этот пакет. Вопрос, как в этот пакет втиснутся? Или отдельно отправлять?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

Тима писал(а):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: ЧПУ пульты

Сообщение nkp »

Код: Выделить всё

        ser.write(chr(0x80 | (data >> 7)))
        ser.write(chr(data & 0x7f))
вот запись в порт значения переменной (в данном случае data)
точно так в порт пишем и нашу переменную(как ты там ее обозвал)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

код скрипта раньше не видел,
там же полно пинов - а мы еще новый прописывали :)
к готовому можно было приконнектиться
-------------
читать надо темы преждечем вклиниваться :)
(это я себе)
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

Сможешь расшифровать эти команды?
ser.write() - это отправить в порт содержимое скобок.
chr () - это пакет данных, если яправильно понял..
А что в его скобках?
Передачу данных по одной, я еще както понимаю, а как пакет формировпать не очень.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

Тима писал(а):chr () - это пакет данных, если яправильно понял..
нет - это символ кода ASCII
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: ЧПУ пульты

Сообщение Тима »

С этим файлом еще одна проблема, если time,sleep() в конце файла меньше 1секунды передача данных не происходит.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

я не знаю что ты называешь пакетом-
данные там передаются просто:
есть бесконечный цикл

Код: Выделить всё

 while 1:
есть строка

Код: Выделить всё

ser.write(наши_данные)
обновление ставишь здесь:

Код: Выделить всё

time.sleep(1)
всё - каждый проход цикла данные пишутся в порт
если поменялись - то новое значение,если нет - старое...))
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ЧПУ пульты

Сообщение nkp »

Тима писал(а):С этим файлом еще одна проблема, если time,sleep() в конце файла меньше 1секунды передача данных не происходит.
а чем у тебя настройки порта (PORT, 9600, timeout=2) ограничиваются???
в частности - скорость??
Ответить

Вернуться в «Электроника»