Almond + Octoprint + Raspberry Pi

Almond With Raspberry Pi

3D 프린터 웹으로 관리하기

Shapeoko 2

CNC 밀링 머신 Shapeoko 2 가 작업실에 들어옴에 따라, 관리 툴의 필요성이 절실해졌다. 굴러다니는 Raspberry Pi 와 우선 3D 프린터 아몬드를 테스트겸 세팅해 보았다. 아몬드를 기준으로 작성했으나 대부분의 GCode를 이용하는 장치는 무난하게 작동할것으로 예상된다.

준비물

  • 3D Printer (Almond)
  • Raspberry Pi

Rapberry Pi with Octopi

1. Burning Octopi Image

Octoprint 웹사이트에서는 친절하게도 Linux Raspbian 이미지에 Octoprint 를 함께 패키징 하여 Octopi 라는 것을 배포하고 있다. 다운로드 받아 압축을 풀면 2014-06-20-wheezy-octopi-0.9.0.img 따위의 이름의 파일이 나올 것이다. (당연히 이 글을 읽는 시점에 따라 파일 이름은 달라질 것이다.)

Octopi Image

다음 Octopi Image 를 굽는 과정은 Mac 을 기준으로 설명하되 윈도우즈나 리눅스 사용자의 경우 링크를 참조하자.

Apple-Pi Baker(이름도 참 재미있다)라는 프로그램을 다운받아, 설치하고 실행하면 다음과 같은 화면이 나오는데 이 때 비밀번호는 관리자 비밀번호이고 관리자 계정이 아닐 경우 (시험은 해보지 않았지만) 계정을 변경해야할 수 도 있다. 계정 비밀번호를 묻는 이유는 SD Card 에 접근해야 하기 때문으로 보인다.

관리자 계정 비밀번호

사용방법은 매우 단순하다. 왼쪽에 Pi-Crust 라고 하는 부분에 사용자가 집어넣은 SD Card 의 리스트가 나오는데 하나를 선택하고, 오른쪽 Pi-Ingredient 에 좀전에 다운받은 Octopi Image 를 지정해준 후 Restore Backup 버튼을 클릭하면 된다. (간혹 SD Card 에 이미 Raspbian 이나 기타 Raspberry Pi 이미지가 들어있는 경우 접근할 수 없다는 메시지가 나올 수가 있는데 무시하면 된다.)

Restore Backup 버튼을 클릭하자

버튼을 클릭하면 아래와 같은 진행화면이 나오는데 가끔 위쪽 빨간색 글씨로 ETA (예상 소요 시간) 이 나오지 않는 경우가 있다. 그런 경우에는 SD Card 가 잘못 연결되었을 수 있으니 하단의 Abort 버튼을 클릭하여 취소시키고, 다시한번 Restore Backup 버튼을 클릭하면 작동한다.

Octopi Image 를 굽고 있다

2. Wiring 3D Printer to Raspberry Pi

전원버튼근처 USB B Type 소켓이 보인다

우선 3D 프린터와 Raspberry Pi 를 연결하고 정상적으로 연결되었는지 체크해보자. 아몬드 3D 프린터 뒷 편에는 USB B Type 소켓이 있다. 다만, 프린터의 종류나 아몬드의 경우에도 프린터 버젼에 따라 소켓의 위치가 다를 수 있으니 잘 확인하자.

USB B Type Cable

위와 같은 케이블을 준비하여 연결하면 된다.

연결된 모습

케이블을 연결하고 Raspberry Pi 와 3D 프린터에 전원을 넣은 뒤 제대로 연결되었는지 체크해보자. 여기서부터는 리눅스를 콘솔로 접근해야 하므로 난이도가 다소 어렵다고 생각될 수 있으나, 실제로 하는 일은 많지 않기 때문에 가벼운 마음으로 시도해보자.

우선 Raspberry Pi 가 어떤 IP 로 연결되었는지 체크해야 한다. 이 또한 공유기 종류마다 매우 다르기 때문에 내가 가지고 있는 Iptime 공유기를 기준으로 설명해보겠다.

공유기 내부 네트워크 정보

공유기의 관리자 메뉴로 들어가 내부 네트워크 정보를 확인해보자. 현재 사진에 보여지는 바와 같이 3번째에 192.168.0.81(octopi) 라고 Raspberry Pi 가 접속되어 있는 것을 확인할 수 있다. 해당 ip 주소를 기억하고 Terminal 을 열어 아래와 같은 방식으로 입력하자. (윈도우의 경우 PuTTY 와 같은 프로그램을 사용해야 하는데, 링크를 참조하자.)

$ ssh pi@192.168.0.81

물론 octopi 가 연결되어 있는 ip 는 공유기 혹은 기기 마다 다를수 있으니 실제 ip 를 적어주면 된다. 그러면 비밀번호를 입력하라는 메시지가 나오는데 여기에서는 디폴트 값인 raspberry 를 입력하면 된다. 비밀번호를 입력할때 별표 같은 모양은 전혀 표시되지 않으니 착오가 없도록 한다. 아래와 같은 화면이 나오면 정상이다.

SSH 로 Rapsberry Pi에 접속한 모습

USB 에 어떠한 장치들이 연결되었는지 확인하기 위한 명령어를 입력하자.

$ lsusb

아마 마우스나 기타 장치를 물려놓은 상태가 아니라면 다음과 같이 리스트될 것이다.

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 16c0:0483 VOTI Teensyduino Serial

여기서 4번째 VOTI Teensyduino Serial 이라고 된 부분이 바로 3D 프린터이다. (여기서 우리는 아몬드 3D 프린터가 Teensyduino를 제어 보드로 사용했음을 알 수 있다.) 역시 프린터의 종류에 따라 다른 보드로 표시될 수 있으니 혼동하지 말도록 하자.

여기까지 문제 없다면 아몬드와 Octopi 가 잘 연결된 것이다.

3. Octoprint on Web Browser

Octoprint는 Octopi 에서 service 로 자동으로 실행시키기 때문에 따로 실행 시켜야할 필요는 없다. 다만, 여러 사람의 접근을 차단하기 위해 아래와 같이 config 파일에 접근해 수정해야할 필요는 있다. DDNS 세팅을 통해 집 바깥에서도 접근할 수 있도록 하기 위한 기능으로, 혼자만 사용하거나 집에서만 사용할 경우에 굳이 필요치는 않다.

cd .octoprint/
vi config.yaml

두 명령어로 config.yaml 에 접근하여 수정하자. vi 에디터의 사용법은 이곳을 참고한다. accessControl:enabled: 은 다른 로그인이 필요한지에 대한 내용이고, server:firstRun 은 처음 실행시키는 것인지 체크하여 관리자 아이디를 작성할 수 있도록 하게 할 것인지에 대한 옵션이다. 가/부 에 따라 true/false 로 수정하자. (모르면 걍 둘다 true로)

accessControl:
  enabled: true
...
server:
  firstRun: true 

옵션 설정이 완료 되면 다음 명령어로 Raspberry Pi 를 재부팅시키고 2~3분 정도 기다린다. 기타 자세한 설정 방법은 Octoprint Wiki에서 찾을 수 있다.

sudo reboot

자 이제 Octoprint에 접근해보자. 아까전에 Raspberry Pi로 접근할때 사용했던 IP 를 웹 브라우저의 주소창에 입력하고 아래와 같이 포트번호로 5000 번을 입력하자.

192.168.0.81:5000

아래와 같이 나오면 정상적으로 접속된 것이다. 처음 사용자의 경우 사용자 계정을 등록하라는 메시지가 출력될 것이고 필요하다면 입력하고, 그렇지 않은 경우에는 오른쪽 버튼을 눌러 넘기자. 등록안하면 보안이 안좋니 뭐니 하니까 왠만하면 하자.

로그인 전

로그인이 되면 다음과 같은 화면이 나타나는데 Serial Port 와 Baudrate 가 전부 Auto 로 되어있을 것이다. 이대로 Connect 를 눌러본다.

로그인 후

바로 연결이 될수도 안될수도 있다. 됬다면 그대로 사용하면 되고, 안된경우에는 Serial Port 를 변경하면서 시도해보자. 우리 작업실의 경우 ttyACM0 의 포트를 사용하였다. 포트를 변경해도 안되면 아몬드를 껏다 켜보면 되는 경우도 있으니 참고한다.

시리얼 포트

연결이 되면 오른쪽 현재 온도가 표시되기 시작하고, 아래 New Target 에 숫자를 입력하면 온도가 오르기 시작한다.

Temperature Tap

제대로 연결되었는지 온도를 올려보자. Set 버튼을 누르고 PLA 를 선택하자. 반응이 다소 느리다. 애교로 봐주자. Target 온도가 설정되고 온도의 변화가 그래프와 숫자로 나타나는 모습을 알 수 있다.

온도가 올라가고 있다

자 이제 모터를 제어해보자. 상단의 Control 탭 메뉴를 누른다. 각 버튼을 클릭하면서 제어가 되는지 확인해보자. 다른 메뉴들도 클릭해보면서 어떠한 기능이 있는지 확인하자.

Control Tab

온도 제어의 경우 상단 Setting 을 클릭하면 나오는 팝업 메뉴의 Temperatures 에서 프로파일을 등록하거나 기존 값을 변경할 수 있으므로 편리하게 사용할 수 있다.

Temperatures

4. 프린트 하기

테스트용 3D 모델 in Cura

지금까지 문제가 없었으면 실제 프린트를 해보자. 모델로는 간단한 상자 모양 기본 모델을 만들었다.

SD Card 가 장착된 경우

3D 프린터에 SD Card 가 삽입되어있으면 Files 메뉴에 저장되어있는 파일들이 보인다. 이 파일명 옆에 보이는 프린트 버튼을 클릭해도 되고, 직접 GCode 를 업로드해도 된다.

업로드

업로드한 Box.gcode 파일이 Files 목록에 추가된다. 우측에 있는 프린터 모양 아이콘을 클릭하도록 하자.

프린터 아이콘

프린터가 정상적으로 동작하면 성공.

Octoprint 를 이용하여 인쇄한 결과물

*팁: 공유기의 DDNS 설정을 이용하면 외부에서 접근 가능한 URL 을 만들 수 있다. 서교전파사 Octoprint 는 iptime 의 무료 DDNS 서비스를 사용해도 된다.

5. Connecting WebCam

Octoprint 의 강력한 점중의 하나가 WebCam 을 장착하여 실제 프린터의 작동 모습까지 확인할 수 있다는 점이다. WebCam을 장착하는 내용은 다음번에 이어가도록 하겠다.

comments powered by Disqus