Derek Schulte: 3D 프린터 경로 계획
[Derek Schulte]는 소비자용 3D 프린터를 설계하고 판매하며 이를 통해 무엇이 프린터를 작동하게 만드는지에 대한 많은 통찰력을 제공합니다. 그의 프린터인 New Matter MOD-t는 현재 사용하고 있는 3D 프린터와 몇 가지 다른 점에서 다릅니다. 가장 흥미로운 점은 스테퍼 대신 폐쇄 루프 피드백과 DC 모터를 사용하고, 많은 프린터에서 실행되는 Arduino Uno 대신 상당히 강력한 32비트 ARM 프로세서를 사용한다는 것입니다.
이러한 선택 중 첫 번째는 [Derek]이 자신의 모터 제어 및 경로 계획 소프트웨어를 작성해야 한다는 것을 의미했고, 두 번째는 이를 백업할 처리 능력이 있다는 것을 의미했습니다. 그의 강연에서 그는 경로 계획 시스템을 어떻게 구축하게 되었는지, 그리고 정확히 어떻게 작동하는지 자세히 설명합니다. 운동량을 지닌 물리적 프린트헤드가 G 코드에서 지시하는 대로 무한히 날카로운 모서리를 만드는 방법에 대해 깊이 생각해 본 적이 있다면 이 강연이 여러분을 위한 것입니다. (스포일러: 물리학 법칙을 어기지 않으며 곡선을 탐색하는 데에는 수학이 필요합니다.)
경로 계획은 3D 프린터 내부에서 진행됩니다. 이는 3D 프린터의 펌웨어가 수신된 G 코드를 사용하여 압출기뿐만 아니라 X, Y, Z 축을 따라 모터의 물리적 동작으로 바꾸는 작업입니다. G 코드는 보편적이지만 비현실적이기도 합니다. 4D 공간(압출기, 기억하시나요?)의 일련의 지점과 거기에 도달하는 데 필요한 속도를 지정합니다. 경로 계획은 실제 프린터의 모션 제어 능력에 대한 지식을 혼합하고 최종 결과가 시간을 낭비하지 않고 합리적으로 가능한 한 G 코드와 일치하도록 시도합니다. 이상적인 G 코드와 실제 프린터 사이의 인터페이스인 계획 펌웨어는 프린터 자체의 설계와 모든 물리적 한계를 고려해야 합니다.
언옵테이늄, 용의 비늘, 1년치 주말의 미지급 노동력을 활용하여 나만의 일회용 3D 프린터를 만들 수 있습니다. 하지만 일반 대중에게 합리적인 가격으로 판매할 수 있는 제품을 만들고 싶다면 상용 부품을 사용하여 제작하고 견고하게 작동해야 합니다. 이것이 [Derek]이 대부분의 다른 3D 프린터에서 사용하는 편재하고 무겁고 상대적으로 비싼 스테퍼 모터 대신 인코더가 있는 DC 모터를 사용하게 된 이유입니다. 개방 루프 피드백으로 DC 모터를 구동한다는 것은 "표준" 프린터 펌웨어 중 어느 것도 작동하지 않는다는 것을 의미했습니다. 그는 스스로 펌웨어를 굴려야 했습니다. 이것이 바로 우리가 A에서 C로, B의 모퉁이를 돌면서 최대한 빠르고 정확하게 이동하는 것에 대해 이야기하는 방법입니다.
"50mm/초의 속도로 북쪽으로 이동한 다음 50mm/초의 속도로 서쪽으로 이동"이라는 G 코드 조각을 기계 이동으로 바꾸는 몇 가지 방법이 있습니다. 하나는 전속력으로 북쪽으로 가서 급정거한 다음 전속력으로 서쪽으로 급히 출발하는 것입니다. 이것이 DIY 3D 프린터 펌웨어의 초기 버전이 수행한 작업이며 그 결과 소음, 프린트 헤드의 진동 및 인쇄 품질 저하가 발생했습니다. 추악한 시간이었습니다.
[Derek]과 grbl의 경로 플래너는 다음으로 가장 복잡한 솔루션을 선택했습니다. 즉, 경로의 각 세그먼트에 대해 일정한 가속도로 이동하여 사다리꼴 속도 프로파일을 생성하는 것입니다. 이는 실제로 잘 작동하고 계산하기 쉬운 것으로 나타났습니다. [Derek]은 루틴에 코너 라운딩을 추가했습니다. G 코드가 날카로운 코너를 만들라고 지시한 경우 펌웨어는 보기에 나쁘지 않을 정도로 가까운 곡선 코너를 취하지만 노즐 속도를 늦출 필요도 없습니다. 중지합니다. 두 가지를 결합하는 것은 기본적으로 잘 작동할 수 있는 가장 간단한 솔루션입니다.
몇 개의 세그먼트를 함께 연결하는 것이 다음 단계이지만 경로 끝에 있거나 사용자가 일시 중지 버튼을 눌렀기 때문에 프린터가 결국 멈출 수 있습니다.
대부분의 스테퍼 구동 3D 프린터는 개방 루프 제어 모드에서 작동합니다. 펌웨어는 스테퍼 모터 드라이버에게 10단계 앞으로 나아가고 최선을 다하도록 지시합니다. 프린터가 단계를 잃으면 레이어가 서로 정렬되지 않고 인쇄 도중에 이런 일이 발생했다면 이것이 왜 짜증나는지 아실 것입니다.