Skip to content

poleseArthur/routerCNCProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Router CNC

Projeto final da disciplina Automação I.

  • Objetivo

    Projetar um sistema de controle para um Router CNC com interface de comandos pela porta serial e interface homem máquina simples com display de LCD e botões. Projetar o placa de controle para os servomotores e spindle.

  • Background

    Um Router CNC é basicamente uma fresadora controlada eletronicamente por um sistema microprocessado e acionada por servomotores. A estrutura mecânica básica consiste em 3 eixos ortogonais, X, Y e Z, e um eixo rotativo, normalmente denominado eixo árvore ou spindle, Figura 1.

figura1
  • Projeto

    O diagrama de blocos do sistema é apresentado na figura 2.

diagrama
  • Interface Homem-Máquina

    O bloco de interface deve conter um display de LCD 16x2 e 4 botões. A interface deverá apresentar a posição atual dos eixos, velocidade do spindle bem como possibilitar a modificação do estado da máquina, referência, manual ou automático.

    Teclado

              P: Ativar/Desativar e Selecionar eixo para movimento manual.
              +: Movimenta eixo no sentido positivo, horário (CW).
              -: Movimenta eixo no sentido negativo, anti-horário (CCW)
              S: Liga spindle em manual.
    
    teclado

    Telas

    Ao energizar o sistema:

    Retornar ao ponto de referência quando pressionado tecla S. Para que seja possível executar a referência a entrada Cover Closed deve estar em nível lógico alto, chave fechada.

    telainicial
    Caso a entrada Cover Closed esteja em nível baixo (chave aberta), e a tecla S for pressionada, o display deverá informar o erro durante 3 segundos e retornar à tela inicial.
    telaerro
    Após satisfeita a condição da entrada Cover Closed, quando pressionada a tecla S, o sistema entra no modo de referência, nesse modo os motores dos eixo X, Y e Z se movem (em velocidade baixa) no sentido horário até atingirem o sensores de referência, Home X, Home Y e Home Z. Durante este processo deverá ser mostrado a tela de referenciamento. Se em qualquer momento a entrada Cover Closed for desacionada, a tela de erro deverá ser mostrada por 3 segundos e retornar à tela inicial para reiniciar o processo.
    telareferenciamento
    Quando o processo de referenciamento estiver concluído, sensores Home X, Home Y e Home Z em ativados (ativados = nível alto), deverá ser mostrada a tela posição.
    telaposicao

    No processo de referência as variáveis de contagem de posição deve ser zeradas e a variável eixos referenciados setada para um. A partir da tela de posição deve ser possível mover os eixo de forma manual (X, Y e Z), para tanto deverá ser pressionado a tecla P a fim de selecionar um dos eixos. O eixo selecionado deve ser destacado com o caractere de sublinhado, indicando o movimento manual habilitado. Para sair do modo manual deve-se percorrer os eixos Z, X e Y, pressionando a tecla P, se a seleção atual for do eixo Y e a tecla P for pressionada novamente, o modo manual é desabilitado e a tela de posição é mostrada novamente.

    telaeixos

    Em modo manual o eixo selecionado é movido através da teclas + e - . Quando pressionado a tecla + o eixo se move no sentido horário (CW), quando pressionada tecla - em sentido anti-horário (CCW). O movimento deve respeitar os limites físicos do curso mecânico de cada eixo, exposto abaixo:

    Curso de deslocamento dos Eixos:

    ● Eixo X: 0… 200mm
    ● Eixo Y: 0… 300mm
    ● Eixo Z: 0… 150mm
    

    Caso o eixo que está sendo movimentado atingir o final do curso, uma mensagem de erro deverá ser informada, indicando o eixo e o sentido em que ocorreu o final do curso, exemplo abaixo.

    eixopositivonegativo

    Durante o modo manual, o eixo spindle é ligado através da tecla S. Pressionando a tecla S uma vez o eixo Spindle liga em velocidade fixa de 500 RPM, Pressionando novamente S, o eixo Spindle desliga. Se o Spindle for ligado manualmente e o modo manual for desativado, o eixo é desligado automaticamente.

    spindlemanual

Nenhum movimento deve ser permitido quando a entrada Cover Closed estiver em nível lógico baixo. Se um comando de movimento ocorrer, a tela de erro deverá ser mostrada.

  • Interface Serial

    Se o modo manual não estiver ativado, o controlador aceita comandos pela entrada serial, os comandos permitidos são listados abaixo:

    interfaceserial

    As mensagens recebidas devem ser estar entre os caracteres delimitadores de início ($) e final (#) de mensagem. Exemplos de mensagem válida:

    ● Ex1.: Ajustar a velocidade do spindle para 1000 RPM, ativar o giro no sentido CW, ajustar a velocidade de movimento dos eixo em rápido e mover o eixo Z para a posição 10.

        $S=1000M3Z=10F=Rapido#
    

    ● Ex2.: Mover eixo X para a posição 10 e o eixo Y para a posição 5. Neste caso os eixo movem com a última velocidade ajustada (Lento, Medio, Rapido ).

        $X=10Y=5#
    

    Exemplo de interpolação para o comando acima supondo a posição anterior de X e Y em 1:

    interpolacao

    Para o cálculo da interpolação levar em consideração o incremento mínimo do sistema, para este o projeto, o menor incremento possível é uma unidade (10 passos no motor de passos equivalem a uma unidade ou 1mm). Realizar o cálculo do fator de interpolação m utilizando a divisão de inteiros, veja abaixo:

    calculo1

    Assim, para cada dois incrementos em X ocorre um incremento em Y, ao final da interpolação, como visto na figura acima, o eixo x deve andar mais uma unidade, resto da divisão, para atingir a posição final. Como será utilizado a divisão de inteiros, o numerador deve ser sempre o maior valor, supondo que no exemplo acima o deslocamento comandado fosse de X=5 e Y=10 a interpolação seria:

    calculo2

    Assim, para cada dois incrementos em Y ocorre um incremento em X, ao final da interpolação o eixo Y é que deve andar mais uma unidade, resto da divisão, para atingir a posição final.

  • MCU

    O microcontrolador é o ATMEGA328P (Arduino).

atmega
  • Driver

    O driver utilizado é circuito integrado L293D - Quadruple Half-H Drivers, pinagem mostrada abaixo:

driver
  • Motor dos eixos

    Serão utilizados motores de passo unipolares, esquema de ligação conforme abaixo.

motorEixos
  • Spindle

    O motor do Spindle será simulado com um Motor DC e um encoder de 20PPR. A velocidade atual, não a programada, deverá ser mostrada no display da interface.

spindle
  • Heart Beat

    Um LED deverá ser utilizado para informar que o sistema está em execução. O LED deverá permanecer aceso caso o driver de saída esteja desabilitado.

  • Chaves e sensores

    Devem ser utilizados chaves normalmente abertas para simular o comportamento dos sensores de referência (Home) e de proteção aberta (Cover Closed).

  • Softwares utilizados

    ● Sloeber, IDE do Eclipse para o Arduino

    ● Proteus 8 Professional

  • Diagrama esquemático

esquematico
esquematico
esquematico
esquematico
  • Placa de circuito impresso
pcb
pcb
pcb
  • Desenvolvedores do projeto

    Arthur Polese - Arthur

    Enzo Miozzo Petry - Enzo

About

Projeto Final da disciplina de Automação I

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published