메뉴 건너뛰기

GRBL

하드웨어개조/아두이노(Arduino)

tunity 2020.01.17 17:45 조회 수 : 152

0-1. 24v 사용을 위해서, D1 제너다이오드 제거

※   D1 제너다이오드는 ramp 1.4보드에서 아두이노 메가보드로 전원이 공급되도록 하는 역할을 함.

  단, ramp 1.4 보드가 12v 전원만을 사용하도록 되어 있기 때문에

  이것을 연결한 채로 아두이노 메가가 사용되면 아두이노 메가가 24v 전원이 공급되어서 타버림~~!!!!!

  

0-2. 24v 사용을 위해서, 11A용 전원단에 붙은 휴즈 교체 

   http://www.mythoughtspot.com/2017/09/18/modify-ramps-for-24-volts/ 참조

   베드가열을 위한 전원 입력부에 과열방지를 위해서 MF-R1100 폴리 퓨즈가 달려있는데, 이것은 16v 용이라서,

   24v 전원에서는 아마 타버릴 것이기 때문에, 자동차용 32v 10A 퓨즈로 교체(퓨즈홀더를 직접 기판에 납땜하는 방식으로)

   http://www.devicemart.co.kr/goods/view?no=1153151

   http://www.devicemart.co.kr/goods/view?no=11510 

   이상 두 부품을 사용함

 

1. Arduino Mega 2560 을 위한 grbl 다운로드

   2019년 2월 현재, grbl은 1.1 버전이 나와있으며,

   https://github.com/gnea/grbl-Mega/releases 에는 2017년 8월 2일부로 v1.1f 가 있다고 하나, 

   업데이트후에 확인해본 결과, 1.1g 버전으로 업데이트된 상황임.

    

   https://github.com/gnea/grbl-Mega 에서,

   우측편에 있는 “Clone or download”를 선택하여, zip 파일로 다운로드 받음.

   

   다운로드된 파일명은 grbl-Mega-edge.zip 파일이며, 이 파일의 압축을 풀어준다.

   하위에 build, doc, grbl 디렉토리가 있다. 중요한 것은 grbl 디렉토리이다.

 

2. 아두이노 IDE 설치

   아두이노 IDE 최신버전을 설치하고, 

   https://www.arduino.cc/en/Main/Software 에서 다운로드, 2019년 2월 현재 최신버전은 1.8.8

   

3. EEPROM 청소

   grbl을 업로드하기 전에 꼭 반드시 EEPROM을 깨끗이 청소하는 작업이 필요하다고 함!!!!

   최상위 메뉴에서 “파일” -> “예제” 에서 중간쯤  

   “EEPROM” -> “eeprom_clear” 를 선택하고 파일이 열리면, 한번 업로드 실행을 해주면 됨.

   

4. grbl mega 라이브러리 설치

   최상위 메뉴에서 “스케치” -> “라이브러리 포함하기” -> “ZIP 라이브러리 추가...” 를 선택

   파일선택 다이얼로그가 뜨면, 1번의 과정에서 확인된 grbl 디렉토리가 보이는 곳으로 이동하여, 

   grbl 디렉토리를 선택한 다음 “선택” 버튼 클릭

   

5. grbl mega 소스 수정 (정말로 중요한 곳이다.)

   ~/Documents/Arduino/libraries/grbl 디렉토리로 이동한 다음,

   config.h 파일을 편집기로 연 다음, 다음 두 라인을 코멘트 처리하고,(맨 앞에 // 를 추가한다.)

   #define DEFAULTS_GENERIC

   #define CPU_MAP_2560_INITIAL

   

   다음 두 라인을 실제 코드 라인으로 바꿔준다. (맨 앞에 있는 // 를 제거한다.)

   // #define DEFAULTS_RAMPS_BOARD

   // #define CPU_MAP_2560_RAMPS_BOARD

   

6. grbl mega 소스 수정, 스핀들 모터의 PWM 속도 제어 가능

   기존 소스로는 PWM 속도 제어 불가능

   https://lotronblog.wordpress.com/2018/01/25/changing-spindle-pin-on-grbl-mega/ 에서

   제안한 방법으로 소스를 수정한다.

   ~/Documents/Arduino/libraries/grbl 디렉토리로 이동한 다음,

   cpu_map.h 파일을 편집기로 연 다음, 다음과 같이 수정한다.

   

  //Control Digital Pin 6 which is Servo 2 signal pin on Ramps 1.4 board

  #define SPINDLE_TCCRA_REGISTER    TCCR4A

  #define SPINDLE_TCCRB_REGISTER    TCCR4B

  //#define SPINDLE_OCR_REGISTER      OCR4C   <- 바뀐 부분

  //#define SPINDLE_COMB_BIT          COM4C1   <- 바뀐 부분, 그리고 아래 두 줄을 추가

  #define SPINDLE_OCR_REGISTER      OCR4A

  #define SPINDLE_COMB_BIT          COM4A1

 

  // 1/8 Prescaler, 16-bit Fast PWM mode

  //#define SPINDLE_TCCRA_INIT_MASK ((1<<WGM40) | (1<<WGM41))   <- 바뀐 부분

  //#define SPINDLE_TCCRB_INIT_MASK ((1<<WGM42) | (1<<WGM43) | (1<<CS41))    <- 바뀐 부분

  //#define SPINDLE_OCRA_REGISTER   OCR4A // 16-bit Fast PWM mode requires top reset value stored here.   <- 바뀐 부분, 그리고 아래 세 줄을 추가

  #define SPINDLE_TCCRA_INIT_MASK (1<<WGM41)

  #define SPINDLE_TCCRB_INIT_MASK ((1<<WGM42) | (1<<WGM43) | (1<<CS40)) 

  #define SPINDLE_OCRA_REGISTER   ICR4

  #define SPINDLE_OCRA_TOP_VALUE  0x0400 // PWM counter reset value. Should be the same as PWM_MAX_VALUE in hex.

 

  // Define spindle output pins.

  #define SPINDLE_PWM_DDR   DDRH

  #define SPINDLE_PWM_PORT  PORTH

  //#define SPINDLE_PWM_BIT   5 // MEGA2560 Digital Pin 8    <- 바뀐 부분, 그리고 아래 한 줄을 추가

  #define SPINDLE_PWM_BIT   3 // MEGA2560 Digital Pin 6 

   

  RAMPS 1.4 보드에서 스핀들모터와 스핀들모터 PWM 신호는 리셋스위치 오른쪽의 12개 핀아웃에서 나온다.

    PWM    ON/OFF

  O  ~  O  X  

  O  O  O  O

  O  O  O  O  <- All ground pin

 

7. grbl mega 컴파일 및 업로드

   최상위 메뉴에서 “파일” -> “예제” 에서 아래쪽 “사용자 지정 라이브러리의 예제”쪽에 있는 

   “grbl” -> “grblUpload” 를 선택하면, 파일이 열립니다.

   

   다시, 최상위 메뉴에서 “툴” -> “보드” -> “Arduino/Genuino Mega or Mega 2560” 

   “툴” -> “프로세서” -> “ATmega2560 (Mega 2560)”

   “툴” -> “포트” -> “/dev/cu.usbmodem14201”  ※포트명은 컴퓨터에 따라 달라질 수 있음!

   각각을 잘 선택하고, 업로드(오른쪽방향 화살표 동그란 아이콘 클릭)하면 됩니다.

   

   ※ 미리 컴파일이 잘 되는지만 확인해보고(체크 표시 동그란 아이콘 클릭), 업로드하는 것이 좋습니다.

 

P.S. 여기에 사용한 grbl은 순수하게 Mega 보드용이므로, 다른 보드를 위한 grbl을 사용하기 위해서는 미리 제거해야 한다.

     (grbl 이라는 폴더 이름이 충돌하기 때문에...)

   

   기존 설치된 라이브러리를 제거하려면,

   ~/Documents/Arduino/libraries 폴더로 이동한 다음에 해당 grbl 디렉토리를 삭제하고,

   Arduino IDE를 다시 시작하면, 해당 라이브러리가 없어진 것을 확인할 수 있다.

   (최상위 메뉴에서 “스케치” -> “라이브러리 포함하기” 에서 grbl 이름이 없는 것을 확인!)

   

------------------------------------------------------------------------------------------   

Grbl Controller 와 Universal G-Code Sender 를 다운받아서 설치한다.

Port name은 “/dev/cu.usbmodem14201”

Baud Rate는  115200 으로 설정

 

Open 버튼을 클릭했을때, 다음과 같은 메시지가 나와야 정상이다.

 

Grbl 1.1g['$'for help]

>$G

...

>$$

$0=10

...

...

...

$132=200.000

번호 제목 글쓴이 날짜 조회 수
공지 Grbl v0.9 구성 visljs@gmail.com 2020.03.27 448
공지 GitHUB GRBL tunity 2020.03.18 717
공지 GRBL위키 tunity 2020.01.17 94
4 아두이노UNO CNC 쉴드 CNC Shield A4988용 tunity 2020.01.17 11888
» 하드웨어개조/아두이노(Arduino) tunity 2020.01.17 152
2 Arduino Uno + gShield v5b Board + GRBL 1.1 tunity 2020.01.17 160
1 GRBL tunity 2020.01.17 148
위로