なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Raspberry PiにOctoPrintを入れてWebブラウザから3Dプリンタを制御する

Posted by arms22 on 2013年08月04日 2  0

IMGP8704

Raspberry PiにOctoPrintを入れてWEBブラウザから3Dプリンタを操作できるようにしました。OctoPrintはホストコントローラーとよばれる3Dプリンタ用のソフトウェアで、制御コマンドを3Dプリンタに送る働きをします。

ホストコントローラーにはPrintrun、Repetier Host、Curaなどいくつか存在します。これらはパソコン上で動作するソフトウェアですが、OctoPrintはサーバサイドで動作するソフトウェアで、WEBブラウザを通してネットワーク越しに3Dプリンタを操作できるよう設計されています。

またOctoPrintはRaspberry Piなど組み込み向けのデバイスで動作するように開発されています。Raspberry Pi+OctoPrintがあれば既存の3Dプリンタに簡単にWiFi機能を追加できます。

IMGP8715

こんな感じで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分ほどでインストールが完了します。


IMGP8660

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を無効にしておきます。
最後にFinishを選んで再起動します。

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の画面が表示されます。

raspi-octoprint

最後にRaspberry Piの起動時にOctoPrintを立ち上げるように設定しておきます。
$ sudo cp octoprint.init /etc/init.d/octoprint
$ sudo chmod 755 /etc/init.d/octoprint
$ sudo insserv octoprint


これですべての設定が完了しました。お疲れ様でした。

2013/8/4 追記
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)
Raspberry Pi 2 Model B (1)
posted with amazlet at 15.10.05
Raspberry Pi
売り上げランキング: 747



Ads by Google

2 Comments

阿部 誠 says..."No title"
octoprintの情報有難うございました。

最近ATOMを購入し、遊んでいる中、本サイトにてoctoPrintの存在をしることができました。昔から本サイトはググってやりたいことを探すとヒットすることが多くありがたく拝見させて頂いています。

octoPrintのインストール手順などをquitaに纏めており
arms22さんの本サイトを参考箇所としてリンクを入れさせていただきました。問題あるようでしたらご指摘ください。

http://qiita.com/abe00makoto/items/45c4a4cfe91a0c70972a

2014.05.04 17:35 | URL | #DyU2.f5s [edit]
arms22 says..."Re: No title"
阿部さん

こんばんは。
情報ありがとうございます。
うまく纏まっていますね。


2014.05.05 23:06 | URL | #- [edit]

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。