[참고 자료]
https://kwonkyo.tistory.com/388
https://bugwhale.tistory.com/entry/raspberry-octoprint-install-02?category=839480
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=joonhaa&logNo=221414809204
https://blog.naver.com/21ahn/221821076179
1. 설치 및 연결
1) 옥토 프린트를 사용하기 위해서는 파이썬 사용 환경을 만들어주어야 한다. 현재 파이썬 버전을 확인한다.
python3 --version
2) 프로그램 간의 충돌을 방지하기 위해서는 가상 환경에 옥토 프린트를 설치하는 것이 좋다.
3) Python 패키지, 종속성, 가상 환경 등을 설정하기 위해 다음 명령어를 실행한다.
$ cd ~
$ sudo apt update
$ sudo apt install python3-pip python3-dev python3-setuptools
$ sudo apt install python3-venv git libyaml-dev build-essential
$ mkdir OctoPrint && cd OctoPrint
$ python3 -m venv venv
$ source venv/bin/activate
4) 옥토 프린트 및 Python 종속성은 pip 를 이용해 설치할 수 있다.
$ pip install pip --upgrade
$ pip install octoprint
5) 옥토 프린트 시작 전, 사용자가 시리얼 포트에 접근할 수 있도록 dialout 그룹과 tty 에 pi 계정을 추가한다.
$ sudo usermod -a -G tty pi
$ sudo usermod -a -G dialout pi
6) 재부팅 후 옥토 프린트 서버를 실행한다.
$ reboot
$ ~/OctoPrint/venv/bin/octoprint serve
7) 웹브라우저에 옥토 프린트의 주소를 입력하여 접속합니다. 옥토 프린트의 기본 포트는 5000번이다.
http://192.168.0.xx:5000
8) 3D 프린터와 라즈베리파이를 USB 케이블로 연결해준다.
(라즈베리파이에 연결될 USB 단자의 5V 핀 부분(아래 그림에서 1번 위치)에 테이프를 붙여 전류가 통하지 않게 만들어준다. )
(이 부분을 막아주지 않으면 3D 프린터의 전원이 항상 켜있게 된다. )
2. 기본 설정
'Next' 버튼을 누른다.
접속 시 사용할 'Username' 과 'Password' 를 입력해준다.
'Create Account' 를 누른 후 'Next' 버튼을 누른다.
기본값으로 설정한 후 'Enable Connectivity Check' 버튼을 누른다.
'Next' 버튼을 누른다.
'Enable Anonymous Usage Tracking' 버튼을 누른다.
'Next' 버튼을 누른다.
'Enable plugin Blacklist Processing' 버튼을 누른다.
'Next' 버튼을 누른다.
가지고 있는 3D 프린터의 프로파일을 입력해준다.
'Next' 버튼을 누른다.
가지고 있는 3D 프린터 사양에 맞는 값들을 입력해준다.
'Next' 버튼을 누른다.
'Next' 버튼을 누른다.
'Next' 버튼을 누른다.
'Finish' 버튼을 누른다.
설정 완료 후 접속 초기 화면
3. 메뉴 구성
Serial Port : 3D 프린터 연결 이후 라즈베리파이에 할당된 시리얼 포트번호를 지정해준다.
Baudrate : 자신의 3D 프린터에 맞는 것으로 지정해준다. 만약, 잘 모르겠으면 가장 큰 것부터 작은 것 순으로 하나씩 줄여나가본다.
설정이 끝났으면 'Connect' 버튼을 누른다.
3D 프린터와 연결이 되면 다음과 같은 정보들이 상태창에 보여진다.
출력 가능한 파일 목록이 보여진다.
'Upload' 버튼을 누르면 3D 프린터로 gcode 파일을 전송할 수 있다.
'Temperature' 항목을 누르면 3D 프린터의 노즐과 베드 온도가 표시된다.
'Control' 항목을 누르면 3D 프린터를 제어할 수 있다.
WebCAM이 연결되었을 경우에는 상단에 영상이 표시된다.
'GCode Viewer' 항목을 누르면 현재 진행 상황이 화면이 표시된다.
'Terminal' 항목
'Timelapse' 항목
4. 자동 시작
1) 옥토 프린트의 repository 에서 init 스크립트 파일을 다운로드한다.
$ wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service
2) 해당 폴더로 이동한 후 init 스크립트를 실행 가능하게 만든다.
$ sudo mv octoprint.service /etc/systemd/system/octoprint.service
3) 옥토 프린트의 바이너리 경로를 조정한다.
$ ExecStart=/home/pi/OctoPrint/venv/bin/octoprint
4) 다음의 명령어를 사용하여 자동 시작을 위한 스크립트를 추가한다.
$ sudo systemctl enable octoprint.service
5) 다음 명령어를 통해 옥토 프린트 데몬을 시작/중지/재시작 할 수 있다.
$ sudo service octoprint {start|stop|restart}
5. WebCAM & Timelapse
1) 'WebCAM' 과 'TimeLapse' 를 사용하기 위해서는 'MJPG-Streamer' 를 다운로드하고 컴파일해야 한다.
$ cd ~
$ sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ export LD_LIBRARY_PATH=.
$ make
2) RaspberryPi 카메라 모듈을 사용하려면 다음을 실행해야 한다.
$ ./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so"
3) 우측 상단에 위치한 옥토 프린트 Settting 메뉴에서 'WebCAM & TimeLapse' 항목에 다음의 주소를 입력한다.
Stream URL : http://<your Raspi's IP>:8080/?action=stream
(http://192.168.0.18:8080/?action=stream5fps)
Snapshot URL : http://127.0.0.1:8080/?action=snapshot
Path to FFMPEG : /usr/bin/ffmpeg
6. OctoLapse
1) 우측 상단에 위치한 옥토 프린트 Settting 메뉴에서 'Plugin Manager' 를 선택한다.
2) Installed Plugins 항목에서 우측 상단에 위치한 '+ Get More' 버튼을 누른다.
3) 'Install new Plugins...' 항목에서 'octolapse' 를 검색한 후 'Install' 버튼을 눌러 설치한다.
# 만약, 'octolapse' 이 검색되지 않으면 다음의 과정을 따른다.
OctoPrint Plugin 사이트에 접속한다.
https://OctoPrint Plugin Repository
'octolapse' 를 검색한다.
우측에 있는 'Installation URL' 복사한다.
'... from URL' 에 복사한 주소를 붙여넣은 후 'Install' 버튼을 누른다.
4) 비활성화 되어 있는 'octolapse' 항목을 활성화시켜준다.
5) 라즈베리파이를 로그아웃 시킨 후 재접속한다.
6) 재부팅하면 Octolapse 항목 보인다.
7) 'Octolapse' 메뉴의 'Printer' 항목을 선택한다.
8) 'Cura' 를 실행한 후 자신의 프린터 'Profile' 에 맞게 기본 설정을 해준다.
9) 'Stabilization' 항목을 선택한 후 타임랩스 스냅 사진을 찍을 때의 베드 위치를 선택한다.
9) TIMELAPSE TEST
필라멘트가 꼬여 실패
여러 번의 시도 끝에 성공
7. OctoRemote for OctoPrint APP