Mudanças entre as edições de "Vinyl Cutter"
(11 revisões intermediárias por 6 usuários não estão sendo mostradas) | |||
Linha 9: | Linha 9: | ||
* Tiago Anjo Santana |
* Tiago Anjo Santana |
||
* Alexandre Souza |
* Alexandre Souza |
||
+ | * Ceci |
||
+ | |||
+ | ==Updates== |
||
+ | |||
+ | ===13/12/2014=== |
||
+ | Relato por [[Usuária:Erin|Erin]]: No desktop ligado à máquina 3D ([[OptiPlex-GX270]], após muito sangue e suor, instalei o Inkscape e o fiz funcionar com uma extensão chamada Gcodetools. No arquivo ~/svgs/test.svg, já há uma configuração para a cutter, basta tacar um vetor feito por retas no lugar da imagem-teste de coração e executar Extensions -> Gcodetools -> Path to Gcode... |
||
+ | |||
+ | Fiz meio na pressa, por isso não consegui documentar mais do que isso, mas com isso o Gcode já sai limpo sem precisar usar scripts ou makercam adicionais, basta jogar no pronterface (que vai reclamar que não há extrusão mas imprime normal) e mandar imprimir. Depois tento explicar pessoalmente pra mais alguém pra passar o conhecimento adiante. |
||
+ | |||
+ | Outra dica: um modo fácil de transformar curvas em retas é selecionar toda a imagem e ir em Extensions -> Modify Path -> Flatten Beziers... Por experimentos empíricos, um fator de 0.5 obtém bons resultados. A função não taca pontos em lugares desnecessários (como em uma reta), então não é preciso escolher a dedo onde colocar mais ou menos pontos. |
||
+ | |||
+ | ===11/12/2014=== |
||
+ | O firmware reconhece apenas um subconjunto dos comandos gcode. Em particular, não implementa curvas, apenas retas. O site usado para gerar o gcode segue o que está no svg, portanto o svg deve ter apenas retas. O site acrescenta também aluns outros comandos não suportados e umas linhas que não são gcode. Para completar a meleca, ele grava as coordenadas com uma precisão absurda que o firmware não consegue ler. |
||
+ | |||
+ | Futuramente espera-se ter um script que automatize a limpeza do gcode. |
||
+ | |||
+ | O posicionamento inicial da cabeça e estabelecimento da origem precisam ser feitos manualmente, porém o firmware não aceita coordenadas negativas. |
||
+ | |||
+ | Durante o corte, prestar atenção para barulhos que indiquem perda de passo no eixo X. Se isto ocorrer, limpe e lubrifique o eixo. |
||
+ | |||
+ | '''Como usar a vinyl cutter''' |
||
+ | |||
+ | Procedimento de uso: |
||
+ | * Preparar svg |
||
+ | ** Abrir svg no inkscape |
||
+ | ** Converter objetos em path (se necessário) |
||
+ | ** Acrescentar pontos intermediários nas curvas |
||
+ | ** Converter curvas em retas |
||
+ | ** Salvar |
||
+ | * Geração do gcode |
||
+ | ** Navegar para makercam.com |
||
+ | ** File Open arquivo svg |
||
+ | ** Mover figura para perto da origem (quadrante positivo) |
||
+ | ** Selecionar cm |
||
+ | ** Ajustar tamanho |
||
+ | ** Seleciona objeto |
||
+ | ** CAM / Follow path operation / 0.1 0 1 1 1 3000 3000 / OK |
||
+ | ** CAM Calculate all |
||
+ | ** CAM Export gcode / Ok (não mexer em nada) |
||
+ | ** Abrir gcode com editor de texto e apagar tudo que não começar com G0 G1 G21 G40 G90 |
||
+ | ** Rodar script do Oda que reduz o número de casas decimais das coordenadas |
||
+ | * Cortar |
||
+ | ** Ligar vinil cutter ao PC |
||
+ | ** Colar vinil em uma chapa de raio X |
||
+ | ** Abrir pronterface |
||
+ | ** Abrir arquivo |
||
+ | ** Motor speed 120000 |
||
+ | ** Se baixar faca, mover qualquer coisa para cima |
||
+ | ** X cresce para esquerda, Y cresce na direção da barriga |
||
+ | ** Entrar manualmente com G92 X?? para poder posicionar a cabeça |
||
+ | ** Entrar com G92 X0 Y0 para marcar a origem (direita, vinil na barriga) |
||
+ | ** Print |
||
+ | |||
+ | ===16/10/2014=== |
||
+ | Aparentemente a máquina esta em ordem de novo. Falta apenas calibrar o passos por mm. O que fizemos: |
||
+ | * A gambi do conector flat da faca estava com osmar, soldei direto e congelei com cola quente. Não tem polaridade na solenóide. |
||
+ | * O Sanguino perdeu o bootloader e tudo mais. O DQ regravou, mas tem que acertar o fuse da PortC, senão dá ruim. |
||
+ | * Estamos usando o firmaware que esta no git do garoa. |
||
+ | * Toda a maquina estava impregnada com uma cola, por isso o carro grudava no eixo e tava tudo cagado. A gente desmontou tudo e limpou. A melhor substancia para remover o grude foi alcool. |
||
==Vinyl cutter voltando a dar sinais de vida== |
==Vinyl cutter voltando a dar sinais de vida== |
||
Linha 101: | Linha 160: | ||
[[User:Juca|Juca]] |
[[User:Juca|Juca]] |
||
+ | |||
+ | === 28/Ago/2014 === |
||
+ | |||
+ | Tentei usar a Vinyl cutter seguindo as instruções aqui postadas mas não consegui que a cabeça de corte atuasse. A movimentação dos motores funcionou corretamente. |
||
== geração de g-code == |
== geração de g-code == |
||
Linha 122: | Linha 185: | ||
===Pós-processamento do Gcode=== |
===Pós-processamento do Gcode=== |
||
− | * '''desnecessário:''' Remover todos os GCodes iniciais (que não são de coordenada) exceto o G21 e o G90 |
||
− | * '''desnecessário:'''Colocar o F5000 ao final da primeira instrução G1 ou G0 |
||
*Expressões regulares usadas no emacs: '''^ X''' --> '''G1 X''' e '''^ Y''' --> '''G1 Y''' |
*Expressões regulares usadas no emacs: '''^ X''' --> '''G1 X''' e '''^ Y''' --> '''G1 Y''' |
||
− | |||
− | OBS.: No caso dos passos marcados como '''desnecessário'''s o firmware consegue interpretar o g-code numa boa mesmo sem as alterações propostas. |
||
TODO: decidir sobre a melhor solução para obtermos um GCode compatível com o Sprinter |
TODO: decidir sobre a melhor solução para obtermos um GCode compatível com o Sprinter |
Edição atual tal como às 16h05min de 27 de abril de 2015
Workshops
Liste seu nome abaixo caso você tenha interesse em participar de um workshop de operação da máquina de corte de adesivos.
- Vitor Fernandes
- Rafael M. Lopes
- William Lima
- Alexandre Vecchio
- Tiago Anjo Santana
- Alexandre Souza
- Ceci
Updates
13/12/2014
Relato por Erin: No desktop ligado à máquina 3D (OptiPlex-GX270, após muito sangue e suor, instalei o Inkscape e o fiz funcionar com uma extensão chamada Gcodetools. No arquivo ~/svgs/test.svg, já há uma configuração para a cutter, basta tacar um vetor feito por retas no lugar da imagem-teste de coração e executar Extensions -> Gcodetools -> Path to Gcode...
Fiz meio na pressa, por isso não consegui documentar mais do que isso, mas com isso o Gcode já sai limpo sem precisar usar scripts ou makercam adicionais, basta jogar no pronterface (que vai reclamar que não há extrusão mas imprime normal) e mandar imprimir. Depois tento explicar pessoalmente pra mais alguém pra passar o conhecimento adiante.
Outra dica: um modo fácil de transformar curvas em retas é selecionar toda a imagem e ir em Extensions -> Modify Path -> Flatten Beziers... Por experimentos empíricos, um fator de 0.5 obtém bons resultados. A função não taca pontos em lugares desnecessários (como em uma reta), então não é preciso escolher a dedo onde colocar mais ou menos pontos.
11/12/2014
O firmware reconhece apenas um subconjunto dos comandos gcode. Em particular, não implementa curvas, apenas retas. O site usado para gerar o gcode segue o que está no svg, portanto o svg deve ter apenas retas. O site acrescenta também aluns outros comandos não suportados e umas linhas que não são gcode. Para completar a meleca, ele grava as coordenadas com uma precisão absurda que o firmware não consegue ler.
Futuramente espera-se ter um script que automatize a limpeza do gcode.
O posicionamento inicial da cabeça e estabelecimento da origem precisam ser feitos manualmente, porém o firmware não aceita coordenadas negativas.
Durante o corte, prestar atenção para barulhos que indiquem perda de passo no eixo X. Se isto ocorrer, limpe e lubrifique o eixo.
Como usar a vinyl cutter
Procedimento de uso: * Preparar svg ** Abrir svg no inkscape ** Converter objetos em path (se necessário) ** Acrescentar pontos intermediários nas curvas ** Converter curvas em retas ** Salvar * Geração do gcode ** Navegar para makercam.com ** File Open arquivo svg ** Mover figura para perto da origem (quadrante positivo) ** Selecionar cm ** Ajustar tamanho ** Seleciona objeto ** CAM / Follow path operation / 0.1 0 1 1 1 3000 3000 / OK ** CAM Calculate all ** CAM Export gcode / Ok (não mexer em nada) ** Abrir gcode com editor de texto e apagar tudo que não começar com G0 G1 G21 G40 G90 ** Rodar script do Oda que reduz o número de casas decimais das coordenadas * Cortar ** Ligar vinil cutter ao PC ** Colar vinil em uma chapa de raio X ** Abrir pronterface ** Abrir arquivo ** Motor speed 120000 ** Se baixar faca, mover qualquer coisa para cima ** X cresce para esquerda, Y cresce na direção da barriga ** Entrar manualmente com G92 X?? para poder posicionar a cabeça ** Entrar com G92 X0 Y0 para marcar a origem (direita, vinil na barriga) ** Print
16/10/2014
Aparentemente a máquina esta em ordem de novo. Falta apenas calibrar o passos por mm. O que fizemos:
- A gambi do conector flat da faca estava com osmar, soldei direto e congelei com cola quente. Não tem polaridade na solenóide.
- O Sanguino perdeu o bootloader e tudo mais. O DQ regravou, mas tem que acertar o fuse da PortC, senão dá ruim.
- Estamos usando o firmaware que esta no git do garoa.
- Toda a maquina estava impregnada com uma cola, por isso o carro grudava no eixo e tava tudo cagado. A gente desmontou tudo e limpou. A melhor substancia para remover o grude foi alcool.
Vinyl cutter voltando a dar sinais de vida
Galera!
Troquei a placa mãe da máquina de corte de vinil por uma placa Sanguinololu (que era de uma Metamáquina 3D, mas que bixou: estourou o capacitor do driver de motor de passo do extrusor). Como a placa tem 4 drivers de motor de passo (para X, Y, Z e E=extrusor) mas a máquina de corte de adesivos precisa apenas de 2 (X e Y), rola usar essa placa bichada mesmo.
Botei o Sprinter (um firmware livre de impressora 3D) nela e liguei na maquininha e consegui controlar a vinylcutter usando o Pronterface (um painel de controle livre usado em impressoras 3D). Agora estou levantando as características da polia e da correia do X pra fazer o cálculo adequado de steps_per_mm pra configurar o firmware direitinho com a calibração pra nossa máquina. Depois terei que estudar e/ou desenvolver algum gerador de gcode a partir de SVG. Outro desafio será interfacear com o solenóide da faca e com o fim-de-curso. O problema é que eles eram ligados na placa original por meio de circuito flexível e é um inferno interfacear com isso. E depois tem também os botões do painél e o display LCD pra serem explorados. Mas por enquanto meu foco é fazer essa máquina cortar um adesivo usando apenas software livre! :-D
happy hacking,
Felipe "Juca" Sanches
03/Maio/2013
detalhes técnicos
ajustes de firmware (Sprinter)
https://github.com/GaroaHC/Firmware-Vinyl-Cutter
- Curso do eixo X = 290 cm
- cerca de 125 passos por milímetro no eixo X (levantado empiricamente)
- feedrate máximo de cerca de 5000 mm/min (empírico)
- homing em direção ao endstop XMAX
- endstop XMIN virtual
pinagem do carro X e faca
O Endstop XMAX e o solenóide da faca estão ligado em uma via de circuito flexível com 12 sinais. Segue abaixo descrição dos sinais descobertos:
00 01 02 03 04 05 06 07 08 09 10 11 X+ ? ? ? ? X+ ? A A B B ?
- X+ = endstop XMAX
- A/B terminais do solenóide da faca de corte
HACK! Estou usando um terminal de circuito flexível removido de um laser de CDROM e retrabalhado na dremel (fiz uns furos e soldei uns pinos aos pontos de interesse no conector), para interfacear com a Sanguinololu usando jumper-wires.
pinagem do LCD
Victor e Bruno fizeram. O papel ficou com alguém após a atividade.
status do projeto
04/Maio/2013 03h45am
Homing do eixo X já está funcionando tanto com o endstop real (microswitch XMAX) quanto com o endstop virtual (XMIN) respeitando o curso total de 290mm.
04/Maio/2013 11h32pm
A Vinyl Cutter do Garoa voltou a funcionar, e agora 100% software livre! Nas próximas semanas pretendo aprimorar o workflow para uso da máquina. Estou com algumas idéias para automatização do processo. Por enquanto, cortar adesivos só se for no modo "piloto de avião"... Mas o que importa é que agora FUNFA!!!
happy hacking,
Felipe "Juca" Sanches
05/Mai/2013 02h02am
Próximos passos:
- fazer endstop XMAX e solenóide da faca funcionarem simultaneamente. O design da Sanguinololu e o design do cabeamento da máquina são incompatíveis. Se eu ligar as duas coisas ao mesmo tempo, o resultado será um curto-circuito. Pra resolver isso eu acho que eu teria que fazer meu próprio circuito com MOSFET levando em consideração que o solenóide e o endstop compartilham um terminal de terra.
- usar endstop mínimo virtual apenas no eixo X. No momento o Y também está limitando movimentação para coordenadas menores que Y=0. Isso atrapalha um pouco na hora de alimentar a máquina com uma folha de adesivo.
- arranjar uma fonte de alimentação que dê conta do recado sem superaquecer. A que estou usando fica bem quente, uma hora chegou até a subir um cheiro de plástico derretido e desliguei pra deixar ela descansar...
- transformar toda a gambiarra em um shield de arduino bem organizadinho e que caiba dentro da máquina. Fechar a carcaça da máquina e deixar ela num estado que as pessoas possam utilizar sem ter medo de soltar fios ou dar curto.
- gerar gcode via linha de comando. No momento eu gero pela GUI do pycam. Gerar pela linha de comando é o passo número zero para automatizar esse processo.
- fazer o gcode gerado ser compatível com o Sprinter. No momento o gcode usa uma sintaxe de abreviação que o Sprinter não entende. Há duas soluções possíveis: 1) alterar o pycam para gerar gcode com a sintaxe que o Sprinter espera. ou 2) modificar o Sprinter pra entender a sintaxe que o pycam usa.
- O Pronterface é um painel de controle para impressoras 3D. Estou usando ele pra controlar a vinyl cutter em jog-mode e também para visualizar o gcode gerado e enviá-lo à máquina. No pronterface, quando você abre um arquivo STL ele automaticamente invoca um fatiador (skeinforge, slic3r, etc) pra gerar gcode. Seria muito bacana adaptar o Pronterface para que ele invoque o pycam quando for aberto um arquivo vetorial 2d em DXF ou SVG.
- fazer uma extensão para o Inkscape que gere gcode usando os scripts de linha de comando (e se bobear usar o Printrun pra já mandar a impressora cortar um adesivo diretamente de dentro do Inkscape)
- interfacear com o display LCD e botões (esquerda, direita, OK) da máquina para exibir mensagens de status (o Sprinter já tem suporte a interface em LCD e painel de botoes)
- fazer um jog-mode direto na máquina usando o painel de botoes e LCD
- instalar uma extensão de cartão SD na Sanguinololu (já existem kits prontos pra isso e o firmware já suporta. É só conectar e configurar) A partir do SD dá pra carregar arquivos gcode e operar a máquina desconectado do USB. Utiliza-se o painel LCD para navegar no sistema de arquivo FAT e escolher que arquivo será executado.
- cortar um adesivo super looooooongo, só por que agora dá! Por que agora a gente pode! :-D
28/Ago/2014
Tentei usar a Vinyl cutter seguindo as instruções aqui postadas mas não consegui que a cabeça de corte atuasse. A movimentação dos motores funcionou corretamente.
geração de g-code
Estou usando o software livre pycam para gerar GCode a partir de um vetor SVG. O Gcode gerado por enquanto precisa ser pós-processado para remover comandos G que confundem o firmware Sprinter.
Configuração das abas do PyCAM
- Model
- nenhuma configuração adicional
- File -> Open model...
- Tools
- adicionar uma ferramenta com d=0.1 (blue plunger tip na maquininha)
- setar feedrate 5000mm/min
- shape: spherical
- tool diameter 0.1
- Process
- Selecionar process settings = Gravure
- Path strategy: contour follow
Pós-processamento do Gcode
- Expressões regulares usadas no emacs: ^ X --> G1 X e ^ Y --> G1 Y
TODO: decidir sobre a melhor solução para obtermos um GCode compatível com o Sprinter
- Alterar o Sprinter
- Alterar o PyCAM
- Fazer um script