Контактный сканер с помощью EMC2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

nkp писал(а):а с этим хал файлом этот скрипт
пробовал ??


Если имеешь ввиду это,то да

net motion-ai <= hm2_7i43.0.encoder.03.position => motion.analog-in-00

Выдает ошибку
сканер.hal:110: Pin 'hm2_7i43.0.encoder.03.position' was already linked to signal 'y-pos-fb'
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение Nick »

gendos писал(а):Возможно ли его подключить к мессе если пишут что у него аналоговый выход 0-10V
В Месах АЦП вроде всего 8 бит, т.е. максимум 256 значений. А чем тебе энкодер с роликом не нравится?
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

С роликом мне нравится больше,с ним надо сделать обязательно.
Просто с роликом не понятно как будет влиять на скан размер ролика.
А с лазером хочу сделать для интереса,можно будет попробовать сканировать и не только колодку.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение Nick »

По идее, чем меньше ролик, тем четче рисунок. :)
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Все получилось с этим

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

    (LOGOPEN,filename.txt)
    #<x0> = 0 
    #<w> = 10 
    #<y0> = 0 
    #<h> = 10 

    #<stepx> = 1
    #<stepy> = 1

    #<x> = #<x0>
    O<scanx> WHILE [#<x> LT [#<x0> + #<w>]]
       G0 X#<x>
       #<y> = #<y0>
       O<scany> WHILE [#<y> LT [#<y0> + #<h>]]
          G0 Z#<y>
          M66 E0 L0 (снимаем показания энкодера в параметр #5399)
          (LOG, X#5420   Y#5399   Z#5422)
          (В параметрах 5420-5428 храняться текущие координаты по XYZABCUVW)
          #<y> = [#<y> + #<stepy>]
       O<scany> ENDWHILE
       #<x> = [#<x> + #<stepx>]
    O<scanx> ENDWHILE
    (LOGCLOSE)
    M02
в hal добавил
net y-pos-fb => motion.analog-in-00

Просто невнимательно вначале все делал.
Спасибо.
Сейчас пытаюсь увеличить скорость сканирования ,а то она пока очень маленькая и рывками.
Если не получиться прийдется вернуться к варианту с halsampler.
А еще нельзя как нибудь сделать чтоб когда я в g коде укажу 360 градусов чтоб поворотная ось возвращаясь в 0 вращалась все время в одну сторону,а не крутилась туда сюда.
И еще хотелось бы попробовать чтоб в Hal пересчитывались цилиндрические координаты в обычные XYZ
В hal можно писать формулы?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение nkp »

gendos писал(а):В hal можно писать формулы?
формулы можно писать в компоненте
компонент загружать в хал
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

psha писал(а):

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

#!/usr/bin/env python

import sys
from math import sin, cos, radians

for l in sys.stdin:
	x,a,r = map(float, l.split())
	print x,r * cos(radians(a)), r * sin(radians(a))
Скрипт корвертирует stdin в цилиндрических координатах в stdout в обычных
Вытягивание из файла нужного куска сам, ибо это зависит от того как у тебя остальной обвес будет выглядеть

Стоит ли мне писать этот компанент,или проще потом конвертировать данные скриптом?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение nkp »

gendos писал(а):Стоит ли мне писать этот компанент,или проще потом конвертировать данные скриптом?
тут уж точно решать тебе :)
зы а откуда цитата???
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Цитата с этой же темы
Мне тяжело решать опыта в этом нет.Все делаю по подсказкам.

http://www.cnc-club.ru/forum/viewtopic. ... 2&start=60
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение nkp »

я просто это к тому, что разницы то
большой не будет...
если бы это какой то поток
да еще и под закозчика - тогда конечно обработка на лету
а если вышесказанное не очень актуально - то имхо и скриптом после
обработать можно...
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Понял, значит пока этот вопрос отложу.
Сейчас не знаю как задать отступ в данных энкодера ,так как при запуске начинает считать с ноля,а ролик физически не может подьехать к оси вращения,то есть энкодер должен начинать считать например с 20 мм
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение nkp »

gendos писал(а):задать отступ в данных энкодера
а отступ всегда одинаковый или надо каждый раз менять ??
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение nkp »

если нужно вводить поправку - то можно в панельке pyvcp ввод прицепить в к offset
и туда же энкодер
если это одноразово - то только offset
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Я думаю можно одноразово.
Буду пробовать.
Только мне кажется когда я вводил offset в координату Y данные с энкодера не менялись(попробую еще раз)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение Nick »

gendos писал(а):Я думаю можно одноразово.
Вводим переменную #<yoffset>, и ставим там нужное значение. И потом добавляем его к показаниям энкодера прямо в Gкоде.
И можно полные обороты сделать, в общем вот так:

ЗЫ сними видео как оно сканирует, интересно на скорость посмотреть.

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

    (LOGOPEN,filename.txt)
    #<y_offset> = 20 
    #<x0> = 0 
    #<w> = 10 
    #<y0> = 0 
    #<h> = 10 

    #<stepx> = 1
    #<stepy> = 1

    #<y> = #<y0>
    #<x> = #<x0>
    O<scanx> WHILE [#<x> LT [#<x0> + #<w>]]
       G0 X#<x>
       #<i> = 0
       O<scany> WHILE [#<i> LT [#<h>/#<stepy>]]
          G0 Z#<y>
          M66 E0 L0 (снимаем показания энкодера в параметр #5399)
          #<pos> = [#5399 + #<y_offset>]
          (LOG, X#5420   Y#<pos>   Z#5422)
          (В параметрах 5420-5428 храняться текущие координаты по XYZABCUVW)
          #<y> = [#<y> + #<stepy>]
          #<i> = [#<i>+1]
       O<scany> ENDWHILE
       #<x> = [#<x> + #<stepx>]
    O<scanx> ENDWHILE
    (LOGCLOSE)
    M02
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Вот видео,только очень короткое,другое снять пока не могу сломалась камера.
Вложения
SUNP0002.AVI.tar.gz
(1.13 МБ) 1051 скачивание
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение Nick »

Да, не быстро... Интересно, это он просто разогнаться не успевает?
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Я думаю да.Выставил шаг 1 градус ,видно по цифрам что скорость начинает увеличиваться от 0 и 1200.Движение рывками.Так что буду делать через halsampler.
Хотел попробовать движение не по спирали а с шагом по Х например 1 мм.
Сейчас у меня по спирали G код такой(сканирует 10мм)

G0 X0 a1
S3500 m3
G1 X10 a[[10-0]/1*360] F500
M5
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение Nick »

А ускорение по больше поставить нельзя?
попробуй еще написать на перемещениях не G0, а G1 и G64 в самом начале программы поставь... Может поможет...
gendos
Мастер
Сообщения: 1117
Зарегистрирован: 06 июл 2011, 15:26
Репутация: 81
Настоящее имя: Геннадий
Откуда: Ростов-на-дону
Контактная информация:

Re: Контактный сканер с помощью EMC2

Сообщение gendos »

Я пробывал не помогло.У меня же еще к томуже привод на шаговике и редуктор 1/21
Можешь мне написать G код движения не по спирали ,а с фиксированным шагом для
halsampler ?
Ответить

Вернуться в «LinuxCNC»