본문 바로가기

아두이노용 CNC 만들기 (소프트웨어 편)

by rudals.kim 2023. 4. 9. 댓글 개
반응형

아두이노용 CNC를 만들기 위해서 전체적인 프레임은 3D 프린터 출력물로 만들어 보았습니다.

 

JLCPCB에서 3D 프린팅 주문해 보기 (아두이노 CNC 프레임 제작)

예전부터 생각만 해 왔던 아두이노 CNC를 만들어 보기로 하였습니다. 검색을 해 보니 대부분 CD-ROM을 분해한 프레임을 사용하여 만들다 보니 디자인이 깔끔하지는 않은 것 같습니다. 그래서 혹시

rudalskim.tistory.com

아두이노용 CNC의 펜 홀더 부분을 수작업으로 만들어 보았습니다.

 

아두이노 CNC용 펜 홀더(Pen Holder) 제작하기

아두이노를 사용하여 CNC를 제작해 보고 있는데 전체적인 CNC 프레임은 3D 프린터로 출력하여 제작해 보았습니다. JLCPCB에서 3D 프린팅 주문해 보기 (아두이노 CNC 프레임 제작) 예전부터 생각만 해

rudalskim.tistory.com

CNC의 하드웨어 부분이 어느 정도 완성이 되었으니 다음은 소프트웨어를 작성해야 합니다.

 

먼저 CNC를 제어하기 하기 위해서는 GRBL이라는 라이브러리를 사용해야 합니다. 그런데 GRBL라이브러리는 서보 모터만 제어되는 라이브러리인 것 같은데 제 경우 펜 홀더 부분을 스텝모터를 사용하였습니다. 검색을 해 보니 기존 GRBL 라이브러리를 수정하여 서보와 스텝모터를 모두 사용할 수 있게 수정해 놓은 라이브러리를 github에서 발견하여 아래 라이브러리를 다운로드 후 설치하였습니다.

 

GitHub - bdring/Grbl_Pen_Servo: Grbl CNC Controller with Pen Servo Feature

Grbl CNC Controller with Pen Servo Feature. Contribute to bdring/Grbl_Pen_Servo development by creating an account on GitHub.

github.com

위 라이브러리를 설치 후 아두이노 IDE를 실행하여 grbl 예제 중 grblUpload 예제를 불러옵니다.

예제를 불러왔으면 아두이노 우노 보드를 연결 후 업로드를 합니다. 이로써 아두이노는 수신된 GRBL 명령어를 해석하여 CNC Shield로 제어 명령어를 보낼 수 있습니다. 다음은 GRBL 명령어를 쉽게 아두이노로 보낼 수 있는 프로그램인 Universal Gcode Sender라는 프로그램을 다운로드합니다. 아래 사이트에 접속하여 위쪽의 다운로드 메뉴에서 받을 수 있습니다.

 

UGS

From here you can search these documents. Enter your search terms below.

winder.github.io

다운로드한 파일을 압축 해제 후win64-ugs-platform-app-2.0.14/ugsplatform-win/bin/ugsplatform.exe을 실행시킵니다.

저도 처음 사용해 보는 거라 아래 설정 정도만 사용해 보았습니다.

붉은색 동그라미 부분이 오른쪽에 설정된 COM 포트를 연결하는 아이콘입니다.

위 이미지 메뉴 오른쪽의 OPEN 아이콘을 클릭하여 미리 변경해 놓은 테스트용 G-CODE 파일을 불러왔습니다.

중앙에 불러온 파일의 G-CODE를 보여주고 오른쪽에 CNC가 이동될 패스를 보여줍니다.

해당 COM 포트를 연결하면 메뉴가 아래와 같이 바뀌는데 가운데 PLAY 버튼을 누르면 불러온 G-CODE 파일의 명령어를 아두이노로 전송하고 CNC Shield가 동작됩니다. 

만약 이미지가 제대로 그려지지 않는다면 아래 세팅을 수정하여 좀 더 정확성을 높일 수 있습니다.

Menu -> Machine -> Setup wizard를 실행합니다.

실행하면 아래와 같은 화면이 나오는데 아두이노의 포트를 선택 후 연결합니다.

아두이노와 연결이 되면 연결된 Grbl 버전이 표시됩니다.

아래 Next 버튼을 눌러 4번 스텝(Step calibration)으로 이동합니다.

4번 Step calibration 메뉴가 나옵니다.

이 스텝에서는 아래 Move/Measure/Calibrate 항목의 보정정값을 설정하여 실제 CNC의 X, Y, Z가 정확하게 움직일 수 있도록 설정하는 화면입니다. 

 

예를 들어 X축을 보정한다고 하면 왼쪽 Move의 X+ 나 X- 버튼을 클릭하여 1mm 단위로 이동시킵니다. 그러면 CNC도 동작이 되는데 Measure 항목에 실제 CNC의 펜이 얼마나 움직였는지를 측정한 mm값을 적어 줍니다. 그러면 Calbrate에 보정값이 계산되어 표시되는데 이 값을 아래 붉은색 사각형에 적어주고 옆의 업데이트 버튼을 눌러 보정값을 적용합니다.

같은 방법으로 X, Y, Z 축(스텝모터를 사용한 경우에는 생략)을 보정합니다.

변환된 G-CODE를 다시 불러와서 재실행한 후 좀 더 자연스럽게 동작되는지를 확인해 봅니다.

 

이걸로 우선 아두이노 CNC 1차 버전을 완성하였습니다. 2차 버전에서는 1차 버전에서의 문제점 및 보완해야 할 부분들을 정리 후 좀 더 완성도 높은 CNC를 만들어 봐야겠습니다.

반응형

댓글