2월, 2019의 게시물 표시

CNC 만들기 #5 - G Code

G Code 참고 링크 :  http://www.linuxcnc.org/docs/2.4/html/gcode_overview.html#sec:Modal-Groups 1. G Code란 G Code는 RS274/NGC 언어를 기본으로하는 EMC2 G Code 언어이다. G Code는 라인으로 구성되는데, 이 각 라인을 "block"으로 부른다. 이 라인은 여러가지 다른 일을 할 명령어셋으로 구성될 수 있다. 각 명령어라인(이하 블럭)은 하나 혹은 다수의 글자들(words)로 시작하는데, 이 글자들 뒤에는 숫자들이 따로오게 되어 있다. 예를 들면, "G1 X3"이라는 블럭은 2개의 글자로 구성되어 있다. "G1"은 기존에 설정되어 있는 속도로 직선운동을 하라는 것이고, "X3"은 G1의 인자로 인식된다. 대부분의 EMC2 G Code는 G(General) 혹은 M(Miscellaneous)로 시작하고, 각각 G Code, M Code로 불린다. EMC2 언어는 프로그램의 시작을 알리는 지시자가 없고, 인터프리터는 파일 단위로 처리한다. 하나의 프로그램은 하나의 파일일 수도 있고, 여러 파일로 구성될 수도 있다. 파일 내에서는 %로 구분한다. 파일이 %로 시작하지 않으면 에러를 발생시키지만, 종료시에는 해당사항이 없다. EMC2 G Code 언어는 M2 혹은 M30이라는 2개의 특수 명령어를 가지고 있다. 이 명령어들은 프로그램의 종료를 명시한다. 즉, 파일의 최종라인까지 실행하기 전에 이 명령어가 실행되면 프로그램이 종료된다. 1.1 명령어 라인 형식 아래 형식을 허용한다. "/" line number 모둔 문자 라인 종료문자 (캐리지리턴 혹은 라인피드) 명시적으로 허용하는 문자 이외는 모두 에러로 처리된다. 스페이스문자와 탭문자는 허용되지만, 아무런 영향을 끼치지 않는다. 예를 들어 "G0X +0. 12

CNC 만들기 #6 - GRBL V1.1 설정

GRBL V1.1 설정 참고사이트 :  https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration GRBL 바이너리를 올린 아두이노 보드에 터미널접속을 하면 아래 프롬프트가 나오게 된다. Grbl 1.1f ['$' for help] $를 입력하면 도움말이 나온다. [HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x] $로 시작하는 명령어($$ $# $G ...... $H)들은 GRBL 시스템 명령어들로 GRBL의 설정을 조정하거나 상태를 조회하거나 실행모드를 변경하는데 사용된다. $로 시작하지 않는 4개의 명령어(~ ! ? ctrl-x)는 실시간 명령어들로 GRBL이 어떤 일을 하든 상관없이 바로 명령어를 실행할 수 있다. 실시간 명령어는 GRBL의 동작을 즉시 변경하거나 현재의 위치와 같은 중요 데이터를 출력할 수 있다. GRBL 설정하기 설정값은 EEPROM에 지속적으로 저장되므로, 아두이노를 재 기동 시 설정한 값들을 불러오게 된다. $$ : GRBL 설정 보기. 이전 버전에는 () 안에 해당 설정값의 설명이 들어 있었으나, v1.1에는 없음. $0 : Step pulse, microseconds. 스테퍼 드라이버는 최소 스텝 펄스 길이값을 가지고 있다. 스태퍼 드라이버의 데이터 시트를 확인하고, 조정하기 바란다. 당신은 스태퍼 드라이버가 인지할 수 있는 최소 펄스 길이를 원할거다. 만약 펄스가 너무 길면, 매우 높은 펄스속도로 시스템을 구동시킬 때 펄스끼리 오브랩되는 문제가 발생할 것이다. 우리는 대략 10 microseconds의 값을 추천한다.  $1 : Step idle delay, milliseconds. 스텝 모터가 동작을 종료하고 멈출 때마다 GRBL은 이 값을 기준으로 전원 종료를 지연시킨다. 혹은 당신이 전 축을 지속적으로 전원을 인가하여 위치를 유지시키길 원한다면 $1