Autor Tópico: Projeto - cnc do Evangelion  (Lida 39068 vezes)

Description:

0 Membros e 2 Visitantes estão vendo este tópico.

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #195 Online: 29 de Setembro de 2010, 21:42 »
OK!

Revisei e fiz tudo de novo... No tutorial não fala nada em mexer no arquivo  (nome da minha máquina).hal , porém no zip do tutorial tem o richard.hal ... Por isso eu perguntei se tinha que fazer alguma coisa com ele. Revisei tudo e esta tudo como o tutorial manda. O EMC funciona normalmente e inclusive aparece aqueles botões para mandar cada eixo para o seu zero (isso depois da configuração) ... mas o joystick funciona parcialmente...

Fiz tudo como o tutorial , o joystick é o mesmo do dele , modelo , marca tudo igual , a única coisa é a versão dele é mais nova que a minha... V2.2.6 e a minha é V2.2.5 ... Estou pensando em atualizar o EMC e criar uma configuração nova e depois fazer as configurações do tutorial... Isso estou pensando em fazer, mas não tenho certeza se isso pode ser a fonte do problema...

Fiz tudo com Ctrl C e Ctrl V , nem digitei, assim o erro é menor de fazer alguma coisa diferente da do Richard...

Se puderem me dizer se vale a pena atualizar farei , senão estudarei mais um pouco...

Agradeço o apoio...

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re: Projeto - cnc do Evangelion
« Resposta #196 Online: 29 de Setembro de 2010, 22:06 »
Não é preciso atualizar.
Olhei a versão que uso aqui com o joy. É a 2.2.2 no ubuntu 6.06.
Pode ser de o joy estar com problemas nos botões.
Vc testou todos eles na janela do halrun? Todos funcionaram?

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #197 Online: 30 de Setembro de 2010, 10:43 »
Alebe hoje pela manhã fiz o que me sugeriu... Testei e todos os botões estão funcionando... Tem um encoder axis que fica marcando -1, porém todos os botões que precisamos estão fucionando no Halmeter...

No EMC está tudo funcionando inclusive todos os botões , menos o EIXO Z ... Por que será?

Estou configurando apenas o controle, ainda não fiz o dispositivo para zerar os eixos...

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re: Projeto - cnc do Evangelion
« Resposta #198 Online: 30 de Setembro de 2010, 13:55 »
No EMC está tudo funcionando inclusive todos os botões , menos o EIXO Z ...

Estranho, aqui funfa tudo sem problemas.
Confira que as linhas digitadas (ou copiadas/coladas) no arquivo .hal estejam igual ao tutorial.
Em especial nas linhas que comandam o z.

Só confirmando: o movimento do z é no stick da direita, com os mov. pra direta e esquerda.
(Não é pra cima e baixo)  ;)

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #199 Online: 30 de Setembro de 2010, 16:06 »
Alebe,

Ainda não consegui, porém acho que estou mais perto... Em anexo tem a tela do halmeter do tutorial do Richard. Notei que a tela dele é diferente da minha. A dele tem 4 axis(0, 1, 2, 3) e a minha tem 6 ( axis0, axis1, axis2, axis3, axis4, axis5). Então no meu axis 2 quando testo no halmeter fica marcando -1 e não mexe com nenhum comando do controle. No meu caso o stick da direita que seria o responsável pelo eixo Z é o axis 3(vertical) e o axis 4 (horizontal) . Acredito estar ai o meu problema... Acho que teria que mexer no joypad.hal e trocar o movimento do eixo Z para axis 3 ou axis 4...  Notei que no arquivo do Richard esta tudo com axis2 no qual meu controle não funciona no halmeter...

Acha que estou certo?

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #200 Online: 30 de Setembro de 2010, 16:44 »

Um print da minha tela tb em anexo... Repare que no terminal aparece uma mensagem de erro , que esta excedendo o numero de axis máximo... Acho que tai a raiz do problema... porém não faço a mínima idéia de onde começar para arrumar!

Alguma ajuda?
« Última modificação: 30 de Setembro de 2010, 17:18 por danidillen »

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re: Projeto - cnc do Evangelion
« Resposta #201 Online: 30 de Setembro de 2010, 19:32 »
Daniel,
Parece que o seu joy tem uma diferença com o usado pelo Richard.
Talvez vc tenha que modificar os comandos manualmente mesmo.

Acho que teria que mexer no joypad.hal e trocar o movimento do eixo Z para axis 3 ou axis 4... 

Faça isso, mas só modificando um comando de cada vez.
Lembre de ao fazer qualquer mudança nos arquivos de configuração, precisa sempre reiniciar o emc.

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #202 Online: 30 de Setembro de 2010, 19:39 »
Acho que o Joystick é o mesmo, pois tomei cuidado ao comprar para não ter este tipo de problema. Comprei o mesmo código ( Cód. 1022) ...
To achando que o meu Ubuntu é que ta reconhecendo algumas coisas que o Joystick nem tem... Vou tentar mexer no arquivo...

Acho que tenho que substituir todos encoder.2. por encoder.3. - Seria isso?

joypad.hal
# joypad.hal -- hal configuration file to move a cnc machine using a joypad
# [JOG]
# Components
# We will use hal_joystick to read the axis value (float) for X Y Z, we will send these values to the
# speed pin of a sim-encoder component, for X Y Z, this component outputs Phase-A and Phase-B
signal,
# just like a real quadrature rotary encoder. We will decode those signals with an encoder
component for X Y Z
# and will send the result counts value to the axis jog pin for X Y Z.
# Load the hal_joystick component that creates joypad.axis.<n> and joypad.button.<n> pins
loadusr hal_joystick -d /dev/input/js0 -p joypad
# Load three encoder and three sim_encoder components
loadrt encoder num_chan=3
loadrt sim_encoder num_chan=3
# Create links between the axis pins and the speed pin of the sim-encoder for X Y Z
net velX joypad.axis.0 => sim-encoder.0.speed
net velY joypad.axis.1 => sim-encoder.1.speed
net velZ joypad.axis.2 => sim-encoder.2.speed
# Create links between sim-encoder Phase-A and Phase-B and encoder Phase-A and Phase-B for X
Y Z
net XA sim-encoder.0.phase-A => encoder.0.phase-A
net XB sim-encoder.0.phase-B => encoder.0.phase-B
net YA sim-encoder.1.phase-A => encoder.1.phase-A
net YB sim-encoder.1.phase-B => encoder.1.phase-B
net ZA sim-encoder.2.phase-A => encoder.2.phase-A
net ZB sim-encoder.2.phase-B => encoder.2.phase-B
# Create links between encoder counts and jog counts for X Y Z
net countX encoder.0.counts => axis.0.jog-counts
net countY encoder.1.counts => axis.1.jog-counts
net countZ encoder.2.counts => axis.2.jog-counts
# Set parameter values
setp encoder.0.position-scale 1
setp encoder.0.x4-mode TRUE
setp encoder.1.position-scale 1
setp encoder.1.x4-mode TRUE
setp encoder.2.position-scale 1
setp encoder.2.x4-mode TRUE
setp encoder.capture-position.tmax 0
setp encoder.update-counters.tmax 0
setp sim-encoder.0.ppr 00000064
setp sim-encoder.0.scale 1
setp sim-encoder.1.ppr 00000064
setp sim-encoder.1.scale -1
setp sim-encoder.2.ppr 00000064
setp sim-encoder.2.scale -1
setp sim-encoder.make-pulses.tmax 0
setp sim-encoder.update-speed.tmax 0
# Enable jog for X Y Z
setp axis.0.jog-enable TRUE
setp axis.1.jog-enable TRUE
setp axis.2.jog-enable TRUE
# Attach realtime functions to threads
addf encoder.capture-position servo-thread
addf sim-encoder.update-speed servo-thread
addf encoder.update-counters base-thread
addf sim-encoder.make-pulses base-thread
# [BUTTON-SAMPLES]
# Here are two examples on how to attach some functions to joypad buttons. We will use Halui pins
for the
# second example.
# Scale button
# we set two buttons (6 and 4) to choose the jogscale value. Pressing button 6 will set the scale to
0.01
# while pressing button 4 will set it to 0.1.
# Components
# We will use a two values selector and a flipflop component
loadrt mux2
loadrt flipflop
# Link between buttons and flipflop, flipflop will output TRUE when rising edge is detected on set
pin, FALSE
# when rising edge is on reset pin.
net button4 joypad.button.4 => flipflop.0.reset
net button6 joypad.button.6 => flipflop.0.set
# Link between flipflop and mux2, mux2 will output value mux2.0.in0 when mux2.0.sel is FALSE
and mux2.0.in1
# when TRUE.
net selected flipflop.0.out => mux2.0.sel
# Link between the mux2 output and the jogscale pin for X Y Z
net jogscale mux2.0.out => axis.0.jog-scale
net jogscale mux2.0.out => axis.1.jog-scale
net jogscale mux2.0.out => axis.2.jog-scale
# Set parameters values
setp flipflop.0.tmax 3750
setp mux2.0.tmax 3601
# Set the two scale values
setp mux2.0.in0 0.1
setp mux2.0.in1 0.01
# Attach realtime functions to threads
addf flipflop.0 servo-thread
addf mux2.0 servo-thread
# Flood button
# We will set a single button (button 7) to start and stop flood. We will use Halui pins for that.
# Components
# We will use simply two and2 and 1 not components
#loadrt and2 count=2
#loadrt not
# Flood-is-on halui pin is linked to the and2.0.in0 and the not-flood-is-on, generated using the not
component
# is linked to the and2.1.in0. So, if the flood is on, we will have and2.0.in0 TRUE and and2.1.in0
FALSE.
#net flood-is-on halui.flood.is-on => and2.0.in0
#net flood-is-on halui.flood.is-on => not.0.in
#net not-flood-is-on not.0.out => and2.1.in0
# Link between button 7 and and.0.in1 and and.1.in1. In this way, if the flood for example is on,
when the
# button is pressed TRUE will be sent to and2.0.in1 and and2.1.in1, while the in0 value for and2
components
# will be TRUE for the first and2 and FALSE for the second. So the first and2 will output TRUE.
#net button7 joypad.button.7 => and2.0.in1
#net button7 joypad.button.7 => and2.1.in1
# Link between and2 outputs and halui pin flood on and off. So, as seen above, if the flood is on, the
and2.0
# will output TRUE and the flood will turn off.
#net floodOff and2.0.out => halui.flood.off
#net floodOn and2.1.out => halui.flood.on
# Attach realtime functions to threads
#addf and2.0 servo-thread
#addf and2.1 servo-thread
#addf not.0 servo-thread
#Exemplo para a programação dos meus botões
#No botão zero do joystick executa G28
net remote-home-all halui.mdi-command-04 <= joypad.button.0
#No botão hum do joystick executa G0 X0Y0Z10
net remote-tool-home halui.mdi-command-05 <= joypad.button.1
#No botão dois do joystick executa G0 X0Y0Z0
net remote-zero-all halui.mdi-command-00 <= joypad.button.2
#No botão três do joystick executa G0 X0Y0Z80
net remote-tool-change halui.mdi-command-06 <= joypad.button.3
#No botão zero do joystick executa a continuação do código paralizado
net remote-resume halui.program.resum e <= joypad.button.5
#No botão zero do joystick executa a paralização do código em execução
net remote-stop halui.program.pause <= joypad.button.7
#No botão zero do joystick executa G92.3 para alterar o sistema de coordenadas do meu emc
net remote-tool-autozero halui.mdi-command-08 <= joypad.button.8
#No botão zero do joystick executa o código-G carregado no emc
net remote-start halui.program.run halui.mode.auto <= joypad.button.9

Se alguém tiver uma sugestão de como fazer o Ubuntu reconhecer o meu Joystick como o do Richard seria muito útil!
« Última modificação: 01 de Outubro de 2010, 18:35 por F.Gilii »

Offline denilsonmanzano

  • Hobby
  • ****
  • Posts: 861
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #203 Online: 01 de Outubro de 2010, 09:47 »
Danidillen..

Só um comentario ,vc observou que o joystick ,pelo menos no meu ,precisa estar com o modo analogico ligado para o eixo Z funcionar..(para estar ligado a luz no joy fica acesa...)

abraço.
Denilson

Offline danidillen

  • Hobby
  • ****
  • Posts: 334
  • Sexo: Masculino
Re: Projeto - cnc do Evangelion
« Resposta #204 Online: 01 de Outubro de 2010, 10:19 »
Sim... Isso esta certo, ja testei... O problema é que o sistema ta identificando mais encoders do que o joystick tem... ai não funciona o eixo Z ... Pois o encoder 2 que deveria ser do Eixo Z não esta funcionando no sistema(UBUNTU).... O encoder 3 é que esta sendo identificado em vez do 2 ... Tentei trocar no Joypad.hal tudo que tinha encoder.2. por encoder.3. , mas no inicializar o EMC aparece mesagem de erro : joypad.hal pin 20  encoder .3. inexistente

Offline Rubens Claudio

  • Novato
  • *
  • Posts: 41
Re: Projeto - cnc do Evangelion
« Resposta #205 Online: 04 de Outubro de 2010, 21:33 »
Pessoal, alguém saberia me dizer se o código para zerar a ferramenta do começo deste post, funciona no TurboCNC.
Obrigado.

Rubens

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re: Projeto - cnc do Evangelion
« Resposta #206 Online: 05 de Outubro de 2010, 08:22 »
Qual é o código?

Offline Alebe

  • CNCMASTER
  • ******
  • Posts: 3688
  • Sexo: Masculino
  • Cidade - UF: São Paulo - SP
Re: Projeto - cnc do Evangelion
« Resposta #207 Online: 05 de Outubro de 2010, 10:50 »

Offline Rubens Claudio

  • Novato
  • *
  • Posts: 41
Re: Projeto - cnc do Evangelion
« Resposta #208 Online: 05 de Outubro de 2010, 11:14 »
Fabio, Alebe, o código é este


M9 (Inicia o zeramento da ferramenta) (Raio do dispositivo mm) #1006=10 (Espessura do dispositivo mm) #1008=6 (altura do dispositivo mm) #1010=22.5 (calculos para a area de varredura) #1007=[[#1006*2]+2] #1009=[#1008/2] (Inicia o zeramento de X) G92 X0 Y0 Z0 G38.2 X[#1007]F120 #1000=#5061 G0 X[#1000-[#1006+1]] G38.2 X[#1000-#1006-#1007]F120 #1003=#5061 G0 X[[#1000+#1003]/2] #1000=[[#1000+#1003]/2] (Inicia o zeramento de Y) G38.2 Y[#1007]F120 #1001=#5062 G0 Y[#1001-#1006] G38.2 Y[#1001-#1006-#1007]F120 #1004=#5062 G0 Y[[#1001+#1004]/2] #1001=[[#1001+#1004]/2] (Inicia o zeramento de Z) G0 X[#1000+[#1006+#1009]] Z[#1010] G38.2 Z0F120 #1005=#5063 (Move eixo Z para uma posicao mais alta) G0 Z[#1005+#1010] #1011=[#1005+#1010] (Centra a ferramenta no dispositivo) G0 X#1000 Y#1001 (Coloca as coordenadas dos eixos em zero) G92 X0 Y0 Z[#1010*2] (Encerra o programa com o offset zerado) M30
Pelo que eu entendi, seria só salvar estas linhas com a extensão .cnc, abrir

no TCNC e executar, mas dá varios erros!

Tenho que mudar alguma coisa no código?

Obrigado.
Abraço

 

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re: Projeto - cnc do Evangelion
« Resposta #209 Online: 05 de Outubro de 2010, 12:00 »
Rubens,

Me parece que há alguma confusão aí, porque foi escrito para o Mach3 e não para o Turbocnc...

O formato original é um pouco diferente:

M9 (Inicia o zeramento da ferramenta)
#1006=10 (Raio do dispositivo mm)
#1008=6 (Espessura do dispositivo mm)
#1010=22.5 (altura do dispositivo mm)
#1007=[[#1006*2]+2] (calculos para a area de varredura)
#1009=[#1008/2]
G92 X0 Y0 Z0 G38.2 X[#1007]F120  (Inicia o zeramento de X)
#1000=#5061
G0 X[#1000-[#1006+1]]
G38.2 X[#1000-#1006-#1007]F120
#1003=#5061
G0 X[[#1000+#1003]/2]
#1000=[[#1000+#1003]/2]
G38.2 Y[#1007]F120  (Inicia o zeramento de Y)
#1001=#5062
G0 Y[#1001-#1006]
G38.2 Y[#1001-#1006-#1007]F120
#1004=#5062
G0 Y[[#1001+#1004]/2]
#1001=[[#1001+#1004]/2]
G0 X[#1000+[#1006+#1009]] Z[#1010] (Inicia o zeramento de Z)
G38.2 Z0F120
#1005=#5063
G0 Z[#1005+#1010]  (Move eixo Z para uma posicao mais alta)
#1011=[#1005+#1010]
G0 X#1000 Y#1001  (Centra a ferramenta no dispositivo)
G92 X0 Y0 Z[#1010*2]  (Coloca as coordenadas dos eixos em zero)
M30  (Encerra o programa com o offset zerado)

Há algumas coisas estranhas porque o M9 não faz nada nesta função, a não ser que este comando tenha sido escrita para atuar como comando auxiliar M9.

Me parece que esta é uma rotina de centragem de uma peça, e não apenas de zeramento de ferramenta na altura.

 

/** * */