비글본에 옥토프린터 설치하기

0
1007

저번에는 라즈베리파이에 옥토프린터를 설치했었다. 헌데 라즈베리는 gpio가 비글본보다 적고 pwm이나 adc를 사용하려면 외부에 별도 IC나 회로가 필요했지만 adc와 pwm이 각각 8개씩 존재하는 비글본은 그 자체만으로도 내가 원하는 시스템을 구성하기에 충분했다. (adc는 약간의 외부 회로가 필요할 것 같다.) 헌데 단점은 언제나 그렇듯 비글본은 해외에서도 라즈베리파이에 비해 사용자가 부족하여 자료나 정보를 찾기가 쉽지가 않다. 이번에도 고난이 예상되지만 안되는 것을 되게 만들었을 때 느껴지는 희열은 엔지니어만의 특권이 아닌가 싶다. 고로 험난한 길을 간다.

∗필자는 집에 굴러다니던 비글본이 있어서 비글본을 이용해보려 한다. 가격만 보자면 비글본의 그렇게 저렴하진 않으므로 라즈베리가 있다면 추가로 IC나 회로를 꾸미는게 더 저렴할지도 모르겠다.

당장 내가 원하는 시스템은 3D 프린터 이곳 저곳에 온도 센서를 이용하여 온도를 측정 및 저장하여 그래프로 보여주고, 온도에 따라 팬의 세기를 조절하는 것이다. TMC2100을 사용하다보니 드라이브나 모터에서 발열이 상당한데 지금은 모터에 방열판과 팬을 이용해서 24v로 돌리고 있고 최대 36°C까지 측정이 되었다. 근데 팬 소음이 상당하다..
팬이 온도에 따라 자동제어 될 때 그 효율이 얼마나 올라 갈지, 소음은 얼마나 줄어들지 봐야겠다.

그럼 설치를 시작해보자.

준비 : 리눅스가 설치된 비글본(필자는 https://elinux.org/Beagleboard:BeagleBoneBlack_Debian 에서 strech snapshot console 17-11-05에 릴리즈된 이미지를 받아서 emmc에 설치함. kernel ver:  4.9.59-ti-r74)
참조 사이트 : https://github.com/foosel/OctoPrint/wiki/Setup-BeagleBone-Black-Rev-C-(Jessie)

기본적으로 위의 참조사이트를 참조하며 진행하였다.

시작 전에 필요한 패키지를 설치하자.

sudo apt-get update
sudo apt-get install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential cpufrequtils usbutils

 

  1. cpufrequtils 를 사용하여 비글본의 cpu 성능을 최대치로 설정한다.cpufreq-info 를 이용하여 현재 cpu의 속도를 보자.
    pi@beaglebone:~$ cpufreq-info 
    cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
    Report errors and bugs to cpufreq@vger.kernel.org, please.
    analyzing CPU 0:
      driver: cpufreq-dt
      CPUs which run at the same hardware frequency: 0
      CPUs which need to have their frequency coordinated by software: 0
      maximum transition latency: 300 us.
      hardware limits: 300 MHz - 1000 MHz
      available frequency steps: 300 MHz, 600 MHz, 720 MHz, 800 MHz, 1000 MHz
      available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
      current policy: frequency should be within 300 MHz and 1000 MHz.
                      The governor "performance" may decide which speed to use
                      within this range.
      current CPU frequency is 1000 MHz.
      cpufreq stats: 300 MHz:0.00%, 600 MHz:0.00%, 720 MHz:0.00%, 800 MHz:0.00%, 1000 MHz:100.00%

    필자는 이미 최고 성능으로 셋팅을하여 속도가 1000 MHz로 보여진다.
    보통 ondemand로 셋팅이 되어있어서 속도가 300 MHz로 되어있을 것이다.

    sudo nano /etc/init.d/cpufrequtils

    를 하여 cpufrequtils를 살펴보면 GOVERNOR=”ondemand” 라고 되어있는데 ondemand를 performance로 수정하고 저장한다. (저장은 ctrl + o, 종료는 ctrl + x)
    재부팅 후 cpufreq-info를 다시 해보면 바뀐 것을 확인할 수 있다.

  2. pi 유저 추가하고 재부팅
    cd~
    sudo adduser pi
    sudo adduser pi tty
    sudo adduser pi sudo
    sudo reboot -h now
  3.  옥토프린트 설치에 필요한 파일을 받는다.
    git clone https://github.com/foosel/OctoPrint.git OctoPrint

     

  4. 옥토프린트 설치
    cd OctoPrint
    sudo python setup.py install

    설치 시간이 어느정도 걸린다.

  5. 설치가 끝나면 테스트를 해본다.
    ./run

    을 실행하면 옥토프린트 서버가 시작되는 것을 볼 수 있다.
    http://ip주소:5000으로 접속하면 옥토프린트 화면을 볼 수 있다.
    ctrl+c를 눌러 서버를 중지한다.

  6. 옥토프린터 시작시 자동실행 되게 하기.
    cd ~
    sudo nano OctoPrint/scripts/octoprint.default
    
    #DAEMON=/home/pi/OctoPrint/venv/bin/octoprint 에서 #을 지우고
    DAEMON=/home/pi/OctoPrint/venv/bin/octoprint 로 수정후 저장후 나온다.
    
    sudo cp OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
    sudo chmod +x /etc/init.d/octoprint
    sudo cp OctoPrint/scripts/octoprint.default /etc/default/octoprint
    sudo update-rc.d octoprint defaults

     

  7. 자동실행 테스트
    sudo service octoprint start

    start 대신 reboot을 넣어봐도 된다.
    필자는 위에서 DAEMON 앞에 #을 그대로 두고 reboot을 했을 때 시작할 수 없다는 메시지가 나왔었다.
    재부팅을 하면 옥토프린트 서버가 자동실행되서 웹상에서 바로 접속이 가능하다.

추가 사항

위에서 #제거를 안하는 바람에 다음을 실행했었다.

cd OctoPrint
virtualenv venv
./venv/bin/pip install pip --upgrade
./venv/bin/python setup.py install

시리얼 포트 접속이 안 된다면

sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi

여기까지 비글본과 ramps를 연결하고 옥토프린트에서 연결까지 되는 것을 확인하였다.

 

다음 포스트는 GPIO or PWM 제어 or ADC값읽기 중 한가지 주제로 포스팅을 하겠습니다.

guest
0 Comments
Inline Feedbacks
View all comments