이 튜토리얼에서는 이전 영상에서 제작한 DIY 3D 프린팅 SCARA 로봇 팔을 레이저 각인기로 변환하는 방법을 보여드리겠습니다. 아래 영상을 시청하거나 기사를 읽어보세요.
프로젝트 개요
SCARA 로봇은 4개의 자유도를 가지며 4개의 NEMA 17 스테퍼 모터로 구동되고 아두이노 보드로 제어됩니다. 원본 영상에서는 아두이노 우노와 CNC 쉴드를 사용했지만, 이번에는 아두이노 메가 보드와 RAMPS 보드 조합을 사용합니다. 마를린 3D 프린터 펌웨어로 로봇을 제어하기 위해 이 조합이 필요합니다.
기계적 부분에서는 그리퍼 메커니즘을 레이저 모듈로만 교체하면 됩니다. 여기서는 각인하기에 충분한 5.5W 레이저 모듈을 사용합니다.
이 SCARA 로봇 설정의 멋진 기능은 Z축 이동 범위가 더 넓어져 더 높은 물체에 레이저 각인을 할 수 있다는 점입니다.
로봇의 작은 설치 면적을 고려할 때 작업 영역이 꽤 인상적입니다. 로봇 앞쪽 영역뿐만 아니라 양쪽 측면도 사용할 수 있습니다. 실제로 로봇 주변 거의 360도 전체를 작업 영역으로 설정할 수 있습니다. 레이저 각인과 SCARA 로봇 설정을 위한 옵션이 있는 오픈소스 마를린 3D 프린터 펌웨어 덕분입니다.
G-코드 생성을 위해 또 다른 오픈소스 소프트웨어인 Inkscape와 그 플러그인인 Inkscape-Lasertools를 사용합니다. 동일한 벡터 이미지에서 윤곽만 또는 윤곽과 인필 모두에 대한 G-코드를 생성할 수 있으며, 레이저 빔, 이동 속도, 인필 속도, 외곽선 속도, 레이저 온/오프 명령(PWM 제어 포함) 등 다양한 옵션을 조정할 수 있습니다.
자, 이제 SCARA 로봇을 레이저 각인기로 설정하는 전체 과정을 안내해드리겠습니다. 이 SCARA 로봇의 설계, 우리 머신에 맞게 마를린 펌웨어를 설치하고 구성하는 방법, 각인을 위한 도면과 G-코드 준비 방법을 살펴보겠습니다. 시작해볼까요.
설계 및 3D 모델
이 SCARA 로봇의 3D 모델을 간단히 살펴보며 어떻게 작동하는지 확인해보세요. 원본 튜토리얼에서 자세히 설명한 제작 과정을 보지 못하신 분들을 위해 준비했습니다.
이 로봇은 대부분의 부품을 쉽게 3D 프린팅할 수 있도록 설계되었습니다. 관절은 NEMA 17 스테퍼 모터로 구동되며, GT2 벨트와 적절한 3D 프린팅 GT2 풀리로 감속됩니다. 로봇은 4자유도를 가지지만, 이 경우에는 작업 영역의 임의의 점에 도달하기 위한 두 번의 회전과 레이저 높이를 조절하기 위한 한 번의 선형 운동, 이렇게 3자유도만 필요합니다.
엔드 이펙터를 회전시키는 4번째 관절은 사용하지 않지만, 레이저 모듈은 여기에 부착됩니다. 레이저 빔이 4번째 축의 회전 중심에 오도록 홀더를 만들었으므로, 이 축이 회전해도 최종 위치에는 영향을 주지 않습니다.
Thangs에서 이 3D 모델을 찾고 다운로드하거나 브라우저에서 탐색할 수 있습니다:
Thangs에서 어셈블리 3D 모델 다운로드.
이 튜토리얼을 지원해준 Thangs에 감사드립니다.
3D 프린팅용 STL 파일:
후원
이 SCARA 로봇을 3DEXPERIENCE SOLIDWORKS for Makers로 설계했는데, 이 또한 이 영상의 후원사입니다. 네, 제대로 들으셨습니다. 3DEXPERIENCE SOLIDWORKS for Makers로 SOLIDWORKS가 마침내 업계 최고의 설계 도구를 말도 안 되게 저렴한 가격으로 모든 종류의 메이커들에게 제공합니다.
메이커들은 이제 연간 $99로 최고의 SOLIDWORKS 설계 도구에 접근할 수 있지만, 제 시청자들을 위해 SOLIDWORKS가 한시적으로 이 도구들을 더 저렴하게 제공하는 특별 혜택을 준비했습니다!
맞습니다. 이 영상 시청자분들은 클라우드 연결 버전의 SOLIDWORKS와 3D Creator, 3D Sculptor 같은 브라우저 기반 설계 도구가 포함된 이 번들을 재고 소진 시까지 특별 20% 할인 가격으로 오늘 바로 구매하실 수 있습니다!
제 다음 링크를 클릭하고 무료 3DEXPERIENCE ID를 생성하기만 하면 됩니다. 이 특별 20% 할인 혜택에 접근할 수 있어 오늘 바로 최고의 도구로 제작을 시작할 수 있습니다. SOLIDWORKS가 이런 교육 콘텐츠를 후원하고 지원해주셔서 대단히 감사합니다.
SOLIDWORKS for makers 확인하기
SOLIDWORKS for makers 20% 할인
레이저 모듈 설치
먼저, 네 개의 볼트로 고정되어 있던 그리퍼 메커니즘을 로봇에서 제거했습니다.
그리퍼 서보 제어용으로 사용되던 선들을 이제 레이저 모듈 제어에 사용합니다.
사용하는 레이저 모듈은 12V로 작동하며 Ground와 VCC 두 선만으로 PWM 신호로 제어할 수 있습니다. 레이저 연결을 위해 모듈과 함께 제공되는 3핀 커넥터를 사용했습니다. 왼쪽 검은 선이 Ground이고, 중간의 흰 선(제 경우)이 VCC입니다. 이 선들에 수 점퍼 와이어 커넥터를 납땜해 엔드 이펙터용 와이어에 쉽게 연결할 수 있게 했습니다.
그런 다음 커넥터를 제자리에 놓고, 홀더의 구멍 중 하나로 선을 통과시킨 후, 두 개의 M3 볼트로 레이저 모듈을 고정했습니다. 네 개의 M4 볼트로 레이저 모듈을 로봇에 고정했습니다.
다음으로, 원본 영상에서 로봇 제어에 사용했던 아두이노 우노 보드 대신, 이제는 아두이노 메가 보드와 RAMPS 보드 조합이 필요합니다.
여기서 먼저 드라이버의 스텝 해상도를 선택해야 합니다. 당연히 더 부드러운 모션을 위해 각 스테퍼 드라이버에 세 개의 점퍼를 추가해 최고 해상도를 선택했습니다. 저는 16분할 스텝 해상도의 A4988 스테퍼 드라이버를 사용하지만, 1/32 스텝 해상도의 DRV8825 스테퍼 드라이버도 사용할 수 있습니다.
그런 다음 모든 선을 제자리에 연결했습니다. 선들을 모두 표시해둬서 헷갈리지 않게 했습니다.
SCARA 로봇 레이저 각인기 회로도
모든 것을 연결하는 방법에 대한 회로도입니다.
스테퍼 모터들은 드라이버 바로 위에 연결되고, 리미트 스위치(2선식 상시 닫힘)는 각 축의 엔드스톱 S와 - 핀에 각각 연결됩니다.
레이저 모듈 제어를 위해 3D 프린터 설정에서 팬 제어용으로 사용되는 D9 핀을 사용합니다. 이 핀은 PWM 기능이 있어 레이저 강도를 제어할 수 있습니다. 모든 것의 전원 공급을 위해 최소 3A 정격의 12V 파워 서플라이가 필요합니다.
이 프로젝트에 필요한 구성품은 아래 링크에서 구할 수 있습니다:
스테퍼 모터 – NEMA 17………………
A4988 스테퍼 드라이버…………………..…
RAMPS 1.6 보드………………………..…
아두이노 메가………………….…..………
리미트 스위치 …………………………………. 아마존 / 뱅굿 / 알리익스프레스
DC 파워 서플라이 …………………………. 아마존 / 뱅굿 / 알리익스프레스
레이저 모듈 ………………………………… 아마존 / 뱅굿 / 알리익스프레스
레이저 안전 고글 …………………….. 아마존 / 뱅굿 / 알리익스프레스
기계 부품은 원본 기사를 참고하세요.
설명대로 모든 것을 연결한 후, 선들을 조금 정리하고 전자 부품을 덮어 모든 것이 깔끔하고 깨끗해 보이도록 했습니다.
조립 마무리
SCARA 로봇이 제대로 작동하도록 한 가지 더 변경해야 할 것이 있습니다. 두 번째 팔 리미트 스위치가 트리거되는 시점을 변경하는 것입니다. SCARA 로봇이 오른손잡이 모드로 설정되어 작동하므로, 두 번째 팔의 홈밍은 첫 번째 팔과 일직선인 0도에서 이루어져야 하며, 왼쪽으로 회전할 수 있어야 합니다. 이를 위해 팔 관절에 작은 조각을 접착해 설명한 위치에서 리미트 스위치가 트리거되도록 했습니다.
사실 하나 더 작은 세부 사항을 변경해야 했습니다. 원래 리미트 스위치 트리거가 팔 아래쪽의 너트 중 하나와 간섭해 팔이 완전한 동작 범위에 도달하지 못했습니다.
그 너트를 제거하고 나사산 인서트로 교체해 부품을 다시 고정할 때 튀어나오지 않게 했습니다.
이제 SCARA 로봇이 레이저 각인기로 작동할 준비가 되었습니다. 하지만 먼저 아두이노 보드에 펌웨어를 설치해야 합니다.
참고: 스마트폰 제어 DIY 아두이노 로봇 팔
SCARA 로봇 레이저 각인용 마를린 펌웨어
앞서 말했듯, 레이저 각인과 SCARA 로봇 설정 옵션도 가진 가장 널리 사용되는 3D 프린터용 오픈소스 펌웨어인 마를린 펌웨어를 사용하겠습니다. 마를린 펌웨어는 공식 웹사이트나 Github.com에서 다운로드할 수 있습니다.
아두이노 메가 보드에 마를린 펌웨어를 설치하기 위해 아두이노 IDE 대신 PlatformIO IDE를 사용하겠습니다. 마를린 펌웨어가 크고 복잡하기 때문에 아두이노 IDE로는 때때로 에러가 발생하거나 컴파일하지 못할 수 있습니다.
PlatformIO는 Visual Studio Code 에디터 위에 구축되어 있으며, 확장으로 설치할 수 있습니다. 즉, 먼저 Visual Studio Code를 설치한 다음, 확장 관리자에서 PlatformIO를 검색해 설치하면 됩니다.
설치가 완료되면 Open Project 버튼을 클릭하고, 다운로드해 압축을 푼 마를린 폴더로 이동해 "Open Marlin"을 클릭합니다.
그러면 모든 마를린 파일이 에디터에 로드되어 열리고 편집할 수 있습니다. 우리 머신 설정에 따라 모든 조정을 하는 두 주요 파일은 Configuration.h와 Configuration_adv.h입니다.
사실 마를린 폴더를 열기 전에, Github.com의 Configuration 저장소로 가서 우리에게 적합한 사전 테스트된 설정 파일들을 다운로드해야 합니다. "Examples" 폴더에서 "SCARA" 폴더로 가서 이 두 설정 파일을 복사해 우리 마를린 폴더에 붙여넣습니다.
참고: GRBL 설정 및 아두이노로 CNC 머신 제어하는 방법
마를린 펌웨어 구성하기
자, "SCARA" 설정 파일로 마를린 폴더를 다시 열면 Configuration.h 파일을 열고 우리 머신에 따라 몇 가지 파라미터를 편집할 수 있습니다. 여기서 가장 먼저 할 일은 우리가 가진 SCARA 로봇 유형을 선택하는 것입니다.
/** * MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013. * Implemented and slightly reworked by JCERNY in June, 2014. */ //#define MORGAN_SCARA /** * Mostly Printed SCARA is an open source design by Tyler Williams. See: * https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */ #define MP_SCARA #if EITHER(MORGAN_SCARA, MP_SCARA) // If movement is choppy try lowering this value #define SCARA_SEGMENTS_PER_SECOND 100 // Length of inner and outer support arms. Measure arm lengths precisely. #define SCARA_LINKAGE_1 228.15 // Arm 1 lenght - 228(mm) #define SCARA_LINKAGE_2 136.2 // Arm 2 lenght - 136.5(mm) // SCARA tower offset (position of Tower relative to bed zero position) // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. #define SCARA_OFFSET_X 300 // (mm) #define SCARA_OFFSET_Y 150 // (mm)Code language: Arduino (arduino)
"MORGAN_SCARA"는 병렬 SCARA 로봇용이고, "MP_SCARA"는 우리가 가진 것과 같은 직렬 SCARA 로봇용입니다. 이는 Tyler Williams의 오픈소스 설계에 기반하며, 일반적인 데카르트 시스템용으로 생성된 G-코드에 역기구학을 구현합니다.
이전 튜토리얼에서 이 SCARA 로봇의 역기구학이 무엇이고 어떻게 작동하는지 이미 설명했으므로 자세한 내용은 그 튜토리얼을 참고하세요. 간단히 말해, 역기구학으로 주어진 X, Y 좌표에 도달하기 위해 두 팔이 어떤 각도로 위치해야 하는지 계산합니다. 역기구학의 수학적 원리는 삼각법에 기반하며, 결과는 오직 두 팔의 길이에만 의존합니다.
그렇다면 여기서는 로봇 팔의 길이를 입력해야 하는데, 이 경우 첫 번째 팔 228mm, 두 번째 팔 136.5mm입니다. 다음으로 설정해야 할 파라미터는 작업 베드의 영점 위치입니다. 이 값은 SCARA_OFFSET_X와 Y 값으로 입력되며, 타워(첫 번째 관절)에서 베드 영점 위치까지의 거리입니다.
우리 머신에 맞게 조정해야 할 파라미터 세트가 하나 더 있습니다. 바로 X와 Y에 대한 MANUAL_X_HOME_POS 값들입니다. 이 값들은 이전에 설정한 베드 영점 위치에 상대적인 홈 위치에서 로봇 팔 엔드 이펙터(또는 레이저)의 X, Y 거리입니다. 이 값들을 얻기 위해 두 선으로 SCARA 로봇의 두 팔을 나타내는 간단한 스케치를 SOLIDWORKS에서 만들었습니다.
여기서 원하는 베드 영점 위치를 설정하고 MANUAL_X_HOME_POS 변수들의 값을 얻을 수 있습니다.
다음으로 엔드스톱 커넥터를 정의해야 합니다. 우리 경우 각 축마다 최소 위치에 하나의 엔드스톱이 있습니다.
이 값들은 프로그램이 스테퍼 드라이버에 몇 스텝을 보내야 모터가 한 단위(이 경우 관절의 1도 회전) 이동하는지 나타냅니다. 제 SCARA 로봇의 이 값들을 계산한 방법은 다음과 같습니다.
NEMA 17 스테퍼 모터는 한 바퀴에 200 스텝이 필요하지만, 16분할 스텝 해상도를 사용하므로 드라이버에 3200 스텝을 보내야 모터가 완전한 360도 회전을 합니다. 여기에 첫 번째 관절은 20:1 감속비가 있어 완전 회전에 64000 스텝이 필요합니다. 이를 360으로 나누면 177.777이 나오는데, 이는 프로그램이 드라이버에 보내 관절을 한 단위(1도) 회전시키기 위해 필요한 스텝 수입니다.
두 번째 팔은 16:1 감속비라 값은 142.222가 됩니다. Z축의 경우 8mm 피치의 리드 스크루를 사용하므로 모터 한 바퀴 회전에 8mm 선형 운동이 일어납니다. 한 단위가 1mm이므로 3200 스텝을 8로 나누면 400이 나와 Z축이 한 단위(1mm) 이동하는 데 필요한 스텝 수가 됩니다. 네 번째 값은 익스트루더 스테퍼용이지만 여기서는 익스트루더가 없으므로 변경할 필요가 없습니다.
스테퍼 모터 방향은 선을 어떻게 연결했는지에 따라 달라집니다. 잘못되었다면 선을 뒤집거나 소프트웨어에서 INVERT_X_DIR 변수를 TRUE로 설정해 변경할 수 있습니다.
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. #define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR falseCode language: Arduino (arduino)
이 마를린 펌웨어를 작동시키기 위해 몇 가지 변경이 더 필요합니다. 마를린은 주로 클래식 데카르트 스타일 프린터용 펌웨어라, 특징인 SCARA 모드에는 제가 이 프로젝트를 만들 당시 아직 해결되지 않은 작은 버그들이 있습니다. 이를 작동시키기 위해 제가 한 변경사항들입니다.
scara.cpp 75줄에서 MORGAN_SCARA를 MP_SCARA로 교체했습니다. motion.cpp에서 1716, 1717줄을 주석 처리했고, configuration.h에서 VALIDATE_HOMING_ENDSTOPS를 주석 처리했으며, configuration_adv.h에서 QUICK_HOME의 주석을 해제했습니다.
사실 이런 변경에도 홈밍이 여전히 100% 제대로 작동하지는 않았지만, 이를 작동시키기 위해 사용한 우회 방법을 설명하겠습니다.
어쨌든 이제 에디터 왼쪽 하단의 Upload 버튼을 클릭하면 마를린 펌웨어가 아두이노 보드에 설치됩니다. 이 SCARA 로봇에서 작동하도록 제가 수정한 특정 마를린 펌웨어를 아래에서 다운로드하거나, 물론 Github.com에서 원본 마를린 펌웨어를 다운로드해 제가 설명한 대로 직접 모든 변경사항을 적용할 수도 있습니다.
제어 소프트웨어 – Repetier-Host
자, 마를린 펌웨어가 설치되었으니 이제 로봇을 제어하고 G-코드를 전송할 컴퓨터 프로그램이 필요합니다. 옵션이 많지만 인기 있는 3D 프린팅 소프트웨어인 Repetier-Host를 선택했습니다. 이 소프트웨어를 무료로 다운로드해 사용할 수 있습니다. 설치 후 Config > Printer Settings로 가서 몇 가지를 조정합니다.
아두이노가 연결된 COM 포트를 선택하고 마를린 펌웨어에서 설정한 Baud Rate를 선택합니다. Printer Shape 탭에서 X, Y 최대값과 프린터 영역을 설정합니다.
이 설정을 적용한 후 Connect 버튼을 클릭하면 소프트웨어가 우리 SCARA 로봇에 연결됩니다. 그런 다음 Manual Control 탭으로 가서 프린터를 이동해볼 수 있습니다.
X나 Y 화살표를 누르면 로봇이 즉시 역기구학을 구현하므로 이상하게 동작할 수 있으며, 하나의 화살표만 눌러도 두 팔이 모두 움직일 수 있습니다.
어쨌든 로봇을 작동시키려면 먼저 홈밍해야 합니다. 홈 버튼을 클릭하기 전에 관절들을 리미트 스위치 쪽으로 수동으로 가깝게 이동시킵니다.
Home 버튼을 클릭하면 로봇이 리미트 스위치 쪽으로 움직이기 시작합니다. 실제로 두 번째 팔(Y축)이 리미트 스위치 쪽으로 움직이기 시작하면서 첫 번째 팔(X축)은 반대 방향으로 움직여야 합니다. 두 번째 팔(Y축)이 리미트 스위치에 닿으면 첫 번째 팔(X축)도 리미트 스위치 쪽으로 움직이기 시작합니다. X 리미트 스위치에 도달하면 로봇은 Z 리미트 스위치로 이동합니다.
홈밍이 완료되면 각인을 시작하거나 로봇을 작업 영역 내에서 수동으로 이동할 수 있어야 합니다. 하지만 홈밍 직후 아무 작업이나 시도하면 어떤 이유로 로봇이 이상하게 동작하며 이상한 움직임을 보입니다. 이 이상한 동작을 피하려면 홈밍 후 소프트웨어에서 로봇 연결을 끊었다가 다시 연결하면 됩니다.
이제 수동 이동이나 각인을 할 수 있고 로봇이 제대로 작동합니다. 이는 마를린 펌웨어의 버그일 가능성이 높으며, SCARA 모드에 관심이 별로 없어 잘 지원되지 않기 때문입니다.
어쨌든 G-코드 명령 G00 X0 Y0을 보내면 로봇이 마를린 Configuration.h 파일에 설정한 영점 위치로 이동해야 합니다.
M106 S10 명령으로 레이저를 활성화할 수 있습니다. S 뒤의 값은 0~255로 레이저 파워의 0~100% PWM 제어입니다. 여기서는 S10 값을 사용해 태우지는 않지만 영점 위치를 볼 수 있고 레이저 초점도 조정할 수 있게 했습니다.
초점은 레이저 하단의 렌즈를 돌려 수동으로 조정하며, 동시에 작업물과의 거리에 따라 달라집니다. 약 5cm 거리를 설정하고 가장 작은 점이 될 때까지 초점을 조정하는 것이 권장됩니다.
SCARA 로봇으로 레이저 각인하기
머신을 캘리브레이션하기 위해 간단한 사각형 모양을 각인해 제대로 작동하는지 확인하는 것이 좋습니다.
첫 시도에서 사각형 모양이 올바른 위치와 방향이 아니었는데, MANUAL_X_HOME_POS 변수에 잘못된 값을 설정했기 때문이었습니다. 이를 수정하니 사각형이 의도한 대로 나왔습니다.
제 로고의 G-코드를 불러와 로봇에 각인시켰습니다.
솔직히 이 SCARA 로봇이 레이저 각인기로 작동하는 모습을 보니 정말 멋지지만, 레이저의 자외선으로부터 눈을 보호하는 레이저 안전 고글을 반드시 착용해야 합니다. 매우 위험합니다. 또한 안전 호흡기 마스크를 착용하고 야외나 환기가 잘 되는 곳에서 작업해야 합니다. 레이저 각인 시 발생하는 연기도 건강에 해롭기 때문입니다.
어쨌든 로고 각인 결과는 잘 나왔지만, 완벽하게 정사각형은 아니었습니다.
문제가 무엇인지 알아보기 위해 다시 간단한 사각형 모양을 각인했습니다. 문제는 팔 길이 치수에 있음을 깨달았습니다. 로봇이 그리 견고하지 않아 팔이 뻗어 있을 때 팔 자체의 무게로 로봇이 약간 앞으로 기울어집니다. 이로 인해 팔의 실제 치수나 위치가 약간 어긋납니다.
수십 번의 테스트 끝에 첫 번째 팔은 228에서 228.15mm로, 두 번째 팔은 136.5에서 136.2mm로 길이 값을 조정했습니다. 이로써 가장 정확한 결과를 얻었고 이제 사각형 모양이 정확해졌습니다. 다만, 인쇄 위치에 따라(팔이 완전히 뻗어 있는지 여부) 정확도는 여전히 달라질 수 있습니다.
레이저 각인용 G-코드 생성
마지막으로 도면을 준비하고 레이저 각인용 G-코드를 생성한 방법을 보여드리겠습니다. 이를 위해 오픈소스 벡터 그래픽 소프트웨어인 Inkscape를 사용했습니다.
여기서 먼저 페이지 크기를 우리 작업 영역 크기로 설정합니다. 예로 아두이노 로고를 레이저 각인용으로 준비하는 방법을 보여드리겠습니다.
아두이노 로고 이미지를 다운로드해 Inkscape로 가져왔습니다. Trace Bitmap 기능을 사용해 이미지를 먼저 벡터 포맷으로 변환합니다. 벡터 모양에서만 G-코드를 생성할 수 있는데, 이를 위해 Inkscape-Lasertools라는 플러그인을 사용했습니다. 이 플러그인은 Github.com에서 다운로드할 수 있으며, 압축 파일에서 파일들을 복사해 Inkscape 확장 프로그램 디렉토리에 붙여넣어 설치합니다.
플러그인이 설치되면 Extensions > Lasertools로 가서 열고 G-코드 생성에 사용합니다. 이 플러그인으로 설정하고 조정할 몇 가지 옵션이 있습니다. 레이저를 팬 제어용 D9 핀에 연결했으므로 M106 명령으로 레이저를 활성화할 수 있습니다.
G-코드에 모양의 윤곽만 포함할지, 닫힌 루프의 인필도 포함할지 선택할 수 있습니다. 레이저 이동 속도, 인필 속도, 외곽선 속도를 설정할 수 있습니다.
인필을 선택할 때 인필 영역에서 레이저 강도를 낮추고 싶다면 M106 명령에 PWM 값을 추가해 레이저 강도를 설정할 수 있습니다. 예: M106 S128로 50% 레이저 파워. 레이저 파워를 100%로 두고 인필 영역에서 이동 속도를 높여도 비슷한 효과를 낼 수 있습니다. 이 설정들은 우리에게 가장 잘 작동하는 것을 찾아봐야 하는 것들입니다.
Preferences 탭에서 "Remove tiny infill paths"를 선택하고, Bounding Box 탭에서 "Generate G-Code for bounding box preview"를 선택할 수 있습니다. 이 기능은 드로잉이 이루어질 영역의 미리보기 G-코드를 생성해 작업물을 정확히 배치할 수 있게 해줍니다.
자, G-코드를 생성하면 Repetier-Host 프로그램에 불러옵니다. 이건 3D 프린팅이 아니라 이동 명령뿐이므로 "Show Travel Moves" 체크박스를 선택해 G-코드를 미리봅니다.
마침내 "Print" 버튼을 클릭하면 우리 SCARA 로봇이 작업물을 레이저 각인합니다. 이미 말했듯 이 SCARA 로봇이 레이저 각인하는 모습을 보는 건 정말 만족스럽고, 이것으로 정말 많은 것들을 각인할 수 있습니다.
좋은 기능은 조절 가능한 Z축이 있어 높은 물체에도 레이저 각인을 할 수 있다는 점입니다. 예로 포스너 비트용 나무 상자를 들 수 있습니다. 앞면에 제 로고를, 뒷면에는 "Forstner bits" 텍스트를 각인했습니다.
같은 벡터 모양(이 경우 박쥐 실루엣)을 윤곽만으로, 그리고 닫힌 루프에 인필을 넣어 각인한 예시입니다.
물론 인필로 각인하면 작업 완료 시간이 훨씬 길지만 최종 모습도 훨씬 좋습니다.
마지막으로 이 SCARA 로봇으로 600x450mm 면적의 거대한 드로잉을 각인한 방법을 보여드리겠습니다.
로봇을 작업물 위에 올려 앞쪽과 양쪽에 도달할 수 있게 했습니다. 작업물과 로봇을 수동으로 중앙에 놓고 평행하게 맞췄습니다.
마를린 펌웨어에서 영점 위치를 작업물의 왼쪽 아래 모서리로 설정했습니다. 이는 로봇으로부터 X 방향 300mm, Y 방향 150mm 떨어진 곳입니다. 이 값들을 정의할 때 부호에 주의해야 합니다. 이에 따라 MANUAL_X와 Y_HOME_POS 변수들도 변경했습니다.
이 새 값들로 펌웨어를 업로드한 후, 앞서 설명한 대로 로봇을 홈밍하고 레이저를 영점 위치로 보냈습니다. 그런 다음 레이저를 활성화해 작업물 방향을 더 조정했습니다.
직선 이동인 G01 명령들을 보내 작업물이 제대로 위치했는지 확인하고 조정했습니다.
이제 이 각인용 G-코드 준비를 위해 Inkscape에서 이 작업물과 로봇 구성의 템플릿을 만들었습니다. 여기서 로봇이 레이저로 어디까지 도달할 수 있는지 보고 드로잉을 수정했습니다.
드로잉을 위해 이미지를 다운로드하고 Trace Bitmap 도구로 벡터 이미지로 변환했습니다.
이미지를 원하는 대로 크기 조정하고 배치한 후, Erase 도구로 로봇이 있는 영역과 로봇이 닿지 않는 영역을 지웠습니다.
그런 다음 G-코드를 생성해 머신에 작업을 맡겼습니다. 이 드로잉을 레이저 각인하는 데 4시간이 걸렸습니다.
완료 후 로봇이 있던 빈 영역을 채우고 싶었습니다. 이를 위해 로봇과 작업물을 재배치하고, 마를린 파라미터를 변경해 로봇의 새 작업 영역이 작업물의 이 빈 공간이 되도록 했습니다.
전반적으로 이 방법은 설정에 약간의 작업이 필요하지만 여전히 잘 작동합니다. 이 각인 결과가 어떻게 나왔는지 정말 마음에 듭니다.
마무리
마무리하자면, 펌웨어에 몇 가지 문제가 있었지만 우회 방법들을 찾아 이 SCARA 로봇을 레이저 각인기로 작동시켰습니다. 각인 결과를 자세히 보면 완벽하지는 않습니다.
로봇이 그리 견고하지 않고 백래시가 있어 정밀하고 부드러운 움직임을 얻을 수 없습니다. 하지만 이 튜토리얼에서 배운 것들은 어떤 SCARA 로봇에도 적용할 수 있으므로 분명히 더 나은 결과를 얻을 수 있을 것입니다.
이 튜토리얼을 즐기시고 새로운 것을 배우셨기를 바랍니다. 아래 댓글 섹션에 자유롭게 질문해주시고 제 아두이노 프로젝트 모음도 확인해보세요.