Raspberry PiにOctoPrintを入れてWebブラウザから3Dプリンタを制御する
Posted by arms22 on 2013年08月04日

Raspberry PiにOctoPrintを入れてWEBブラウザから3Dプリンタを操作できるようにしました。OctoPrintはホストコントローラーとよばれる3Dプリンタ用のソフトウェアで、制御コマンドを3Dプリンタに送る働きをします。
ホストコントローラーにはPrintrun、Repetier Host、Curaなどいくつか存在します。これらはパソコン上で動作するソフトウェアですが、OctoPrintはサーバサイドで動作するソフトウェアで、WEBブラウザを通してネットワーク越しに3Dプリンタを操作できるよう設計されています。
またOctoPrintはRaspberry Piなど組み込み向けのデバイスで動作するように開発されています。Raspberry Pi+OctoPrintがあれば既存の3Dプリンタに簡単にWiFi機能を追加できます。
こんな感じでiPadからWEBブラウザを通して3Dプリンターを操作します。
以下にRaspberry Piの立ち上げからOctoPrintのインストールまでの手順をまとめました。Raspberry Piの立ち上げがすでに終わってる人は最後のOctoPrintのインストールだけ行えば動くと思うよ。
NOOBSを使ってRaspbianをインストール
久しぶりにRaspberry Piを動かすのでOSを入れ直すところから始めます。NOOBSという新しいインストラー形式のソフトウェアが今年の6月頃に公開されていたので、これを使ってRaspbianをインストールします。
まずSDアソシエーションが公開しているSD Formatterを使用してSDカードをフォーマットします。オプションの論理アドレス調整を「する」に変更し、上書きフォーマットを行います。
SD Formatter 4.0 for Mac Download - SD Association
次にNOOBSのzipファイルをダウンロードし解凍します。zipファイルの中身をすべてSDカードにコピーします。
New Out Of Box Software (Recommended)
コピーが終わったらRaspberry PiにSDカードを入れてキーボード、HDMIケーブルを接続し電源を入れます。そうすると次のような画面が表示されるのでRaspbianを選択します。10分ほどでインストールが完了します。

Raspi-configで初期設定
インストールが完了すると自動的に再起動し、Raspi-configが立ち上がります。以下に変更した項目を列挙します。
- Expand Filesystem
SDカードの容量全体を使うようにする。OSのインストール作業中に自動的に行われるようになったので今回は不要です。 - Enable Boot to Desktop
Raspberry Piの起動後すぐにGUIを起動。あとでVNCサーバーを入れるので今回は無効にしています。 - Internationalisation
localeにen_us.UTF-8とja_jp.UTF8、ja_jp.EUC-JPを追加して、default system localをja_ja.UTF8に変更します。 - Timezone
Asia→Tokyoを選択。 - Keyboard Layout
Generic 105-key (Intl) PCを選択し、適当に日本語キーボードを選びます。 - Advanced Options
これ以降の作業は基本的にSSHで行うのでsshを有効にしておきます。あとTVに繋いだ時に画面一杯に使えるようにOverscanを無効にしておきます。
Raspi-configは次のコマンドで再度起動させることができます。
$ sudo raspi-config
初期設定の続き
ここからはssh経由で作業を行います。Raspberry PiのIPアドレスをifconfigで調べてMacからSSHで接続します。ユーザ名は pi、パスワードは raspberry です。
# ssh pi@192.168.111.103
ログインに成功したら取りあえずアップデートします。$ sudo apt-get update
$ sudo apt-get upgrade
日本語フォントをインストールします。GUIを使わない場合はインストール不要です。$ sudo apt-get install fonts-ipafont ttf-vlgothic xfonts-intl-japanese xfonts-intl-japanese-big
言語を日本語に設定します。システムのデフォルト言語を日本語したのでこの設定は不要かも。。$ echo export LANG=ja_JP.UTF-8 >> .profile
WiFiの設定
/etc/network/interfaces を編集します。
$ sudo nano /etc/network/interfaces
iface wlan0 inet manual
↓
iface wlan0 inet dhcp
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
↓
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
次に /etc/wpa_supplicant/wpa_supplicant.conf を編集します。wpa_passphraseコマンドでSSIDとパスフレーズをwpa_supplicant.confに追記します。hogenetに接続先のSSID、11223344にパスワードを指定します。$ sudo bash
# wpa_passphrase hogenet 11223344 >> /etc/wpa_supplicant/wpa_supplicant.conf
さらに幾つかの設定を追加します。# nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
scan_ssid=1 #非公開ネットワークに接続するときは1
key_mgmt=WPA-PSK
proto=WPA2
pairwise=CCMP
group=CCMP
ssid="hogenet"
#psk="11223344"
psk=36a27d75d232205e4806fdbf745cd2351af30c43d53794dd14c2afe08d892e09
}
接続できるか確認します。$ ifdown wlan0
$ ifup wlan0
$ ifconfig wlan0
wlan0 Link encap:イーサネット ハードウェアアドレス 10:6f:3f:ea:71:ce
inetアドレス:192.168.111.103 ブロードキャスト:192.168.111.255 マスク:255.255.255.0
...
正常にIPアドレスが取得できれば成功です。ホスト名でリモート接続する
avahi-daemonをインストールします。
$ sudo apt-get install avahi-daemon
ホスト名をpiに変更します。piの方が短くて入力しやすいだけなので、デフォルトのraspberrypiのままでも構いません。$ sudo nano /etc/hostname
raspberrypi
↓
pi
ホスト名を変えたので /etc/hosts も変更します。$ sudo nano /etc/hosts
127.0.1.1 raspberrypi
↓
127.0.1.1 pi
OctoPrintのインストール
pythonとgitをインストールします。
$ sudo apt-get install python-pip python-dev git
OctoPrintをGitHubからダウンロードして、幾つかのPythonライブラリをインストールします。$ cd ~
$ git clone https://github.com/foosel/OctoPrint.git
$ cd OctoPrint
$ sudo pip install -r requirements.txt
piユーザーでシリアルポートにアクセスできるように設定します。$ sudo usermod -a -G tty pi
$ sudo usermod -a -G dialout pi
試しにOctoPrintを起動させます。$ ./run
ブラウザを立ち上げて http://pi.local:5000 もしくは http://ラズパイのIPアドレス:5000 にアクセスするとOctoPrintの画面が表示されます。
最後にRaspberry Piの起動時にOctoPrintを立ち上げるように設定しておきます。
$ sudo cp octoprint.init /etc/init.d/octoprint
$ sudo chmod 755 /etc/init.d/octoprint
$ sudo insserv octoprint
これですべての設定が完了しました。お疲れ様でした。
OctoPrintと3Dプリンターを接続する時のボーレートは115200以下に設定してください。pySerialが250000に対応していないみたい。ファームウェアのボーレートを変更するのを忘れないで。
2013/9/24 追記
pySerialにパッチを当てることで、3Dプリンターとの接続にボーレート250000を指定できるようになります。
https://github.com/foosel/OctoPrint/issues/222
https://groups.google.com/forum/#!topic/ultimaker/BNjPpoJpfrE
$ svn co http://pyserial.svn.sourceforge.net/svnroot/pyserial/trunk pyserial
$ cd trunk/
$ wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ patch -p0 < pyserial.patch
$ cd pyserial/
$ python setup.py install --user
$ python3 setup.py install --user
関連URL
Raspberry Pi を始める (NOOBSで)
http://pi-ras.blogspot.jp/2013/06/raspberry-pi-noobs.html
Raspberry Pi の初期設定
http://openrtm.org/openrtm/ja/node/266
Raspberry Piで遊ぼう [No.5:VNC接続をしよう] [Raspberry Pi]
http://assimane.blog.so-net.ne.jp/2013-03-27
RPi VNC server
http://moon-forest.com/category/raspberry-pi/page/2/
OctoPrint.org
http://octoprint.org/
Setup on a Raspberry Pi running Raspbian
https://github.com/foosel/OctoPrint/wiki/Setup-on-a-Raspberry-Pi-running-Raspbian
Raspberry Pi(ラズベリーパイ)届いたよ。
http://arms22.blog91.fc2.com/blog-entry-483.html
Raspberry Piで無線LANの反応が悪い時の対処法 | ものづくりエクスペリメント
http://denshikousaku.net/fix-sluggish-response-of-raspberry-pi-wifi-adaptor
Raspberry Pi 2 Model B (1)
posted with amazlet at 15.10.05
Raspberry Pi
売り上げランキング: 747
売り上げランキング: 747
BUFFALO エアーステーション 11n/g/b 150Mbps USB2.0用 無線LAN子機 ソフトウェアルーター機能付 エコパッケージ WLI-UC-GNME
posted with amazlet at 15.10.05
バッファロー (2015-08-05)
売り上げランキング: 113
売り上げランキング: 113
Ads by Google
3 Comments
octoprintの情報有難うございました。
最近ATOMを購入し、遊んでいる中、本サイトにてoctoPrintの存在をしることができました。昔から本サイトはググってやりたいことを探すとヒットすることが多くありがたく拝見させて頂いています。
octoPrintのインストール手順などをquitaに纏めており
arms22さんの本サイトを参考箇所としてリンクを入れさせていただきました。問題あるようでしたらご指摘ください。
http://qiita.com/abe00makoto/items/45c4a4cfe91a0c70972a
最近ATOMを購入し、遊んでいる中、本サイトにてoctoPrintの存在をしることができました。昔から本サイトはググってやりたいことを探すとヒットすることが多くありがたく拝見させて頂いています。
octoPrintのインストール手順などをquitaに纏めており
arms22さんの本サイトを参考箇所としてリンクを入れさせていただきました。問題あるようでしたらご指摘ください。
http://qiita.com/abe00makoto/items/45c4a4cfe91a0c70972a
阿部さん
こんばんは。
情報ありがとうございます。
うまく纏まっていますね。
こんばんは。
情報ありがとうございます。
うまく纏まっていますね。
このコメントは管理人のみ閲覧できます
Leave a reply
該当の記事は見つかりませんでした。