okiami1983のブログ

クオリティーが低い記事はあとで書き直します。。

Raspberry pi でMathematica(Macからリモートログイン)

Mathematicaを使ってみたかったのでRaspberry pi2を手に入れて、Macからリモートログインして使えるように設定しました。

 

できること

  1. MacからRaspberry pi2にリモートログインしてMathematicaの利用
  2. Raspberry piに保存したMathematicaプロジェクトファイルをMacから閲覧。

2は必須ではないのですが、やはりRaspberry pi2は性能は低くて少し手の込んだことをすると動きがもっさりして耐えられないので、Mac側にCDF Playerをインストールして閲覧だけできるようにしました。CDF Playerは閲覧専用のソフトですが、MacのCPUを使うのでサクサク動きます。

 

f:id:okiami1983:20160101134341p:plain

 

Mathematicaとは?
数式を解いたり視覚化することができるソフト。一昔前は数十万円払わないと手に入らないものだった。Raspberry piをつかえば1万円でおつりがくる。Mathematicaで編集したファイルを閲覧するだけなら無料ソフト(CDF Player)でできます。
(余談ですが、こういった計算ソフトは一部では高校教師用の教材として使われているようですが、ぜひとも中高生に触ってもらいたいですね。。)

 サンプル(3つの電荷から発生する電界を視覚化)
http://demonstrations.wolfram.com/ElectricFieldsForThreePointCharges/

 

セッティングの流れ

  1. SDカードにRaspberry pi用のOSである“Raspbian”を書き込む。
  2. Raspberry piに電源、ディスプレー、キーボード、マウス、有線LANを配線する。
  3. 電源を入れるとRaspbianが立ち上がって自動でログインする。
  4. Raspbianを最新にアップデートする。
  5. Raspberry piMacからリモートログインするための設定する。
  6. Macからリモートログインする。
  7. Raspberry piにファイルサーバーを構築する
  8. MacにCDF Playerをインストールする

 

MathematicaはRaspbian JESSIEにはじめから入っているので、インストールは不要。手順6まですれば、MacからリモートログインしてRaspberry pimathematicaが使えるようになります。手順7でMacからRaspberry piのファイルにアクセス出来るようにします。

なお、1〜4は一般的なRaspberry piのインストールなので割愛します。

 

使うソフト

エディタ nano

このエディタ、ちょっと編集するのによいです。viみたいにモードの概念ないし。

  • 上書き保存 Ctrl + o
  • 終了 Ctrl + x
リモートデスクトップ用のソフト x11vnc

リモート用のソフトはx11vnc。インストールしたあとにもう少し頑張って、Raspberry piの電源を入れたらx11vncが起動するように設定してしまいます。

 

Raspberry piMacからリモートログインするための設定

 

x11vncのインストール

$ sudo apt-get install x11vnc

 

接続パスワード設定

~/.x11vnc/passwdを作ります。~/.x11vncがないのでついでに作成。

$ mkdir ~/.x11vnc
$ x11vnc -storepasswd ****** ~/.x11vnc/passwd

******は好きなパスワードを書く。これはMacから接続するときに必要になるパスワード。

 

x11vnc自動起動設定

~/.config/autostart/x11vnc.desktopを作ります。デフォルトの状態だと~/.config/autostartディレクトリがないのでこれもついでに作成。

$ cd ~/.config
$ mkdir autostart
$ cd autostart
$ sudo nano x11vnc.desktop

 

 x11vnc.desktopの内容

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -display :0 -rfbauth /home/pi/.x11vnc/passwd
StartupNotify=false
Terminal=false
Hidden=false

 

画面解像度を大きく設定

接続時の解像度を設定しておきます。これやってないと、ディスプレーを外した状態でMacから接続したときに画面が小さくなってしまうので。。

$ sudo nano /boot/config.txt

 

config.txtの解像度設定を有効にするため、下記の行の#を外します。

#framebuffer_height=1280
#framebuffer_width=720 

 

ipアドレスの固定 

アドレスを固定しておけばリモートログインするときに手間が少なくて済みます。
なんでもいいですが、今回は192.168.100.113に設定しておきます。

参考:
RaspberryPi - Raspberry Pi 2 (Raspbian: jessie) でIPアドレスを固定する - Qiita

 

ここまでで設定は完了。


Raspberry piは電源を急にオフするとメモリーカードのデータが高確率で破損するので、ここでSDカードの全領域バックアップをとることをお勧めします。SDカードのディスクイメージを丸ごと吸い出すソフトがあるのでそれを使いましょう。(RaspberryPiのハードウェアには電源断のときの保護機構が入ってないんですよね。。普通ならマイコンが電源電圧が下がってきたことを察知してノンマスカブル割り込みを入れてメモリアクセスを禁止すると思うんですが。。。)

 

再起動

$ sudo reboot

Macからリモートログインする

Finder > 移動 > サーバへ接続 

vnc://192.168.100.113:5900

あとは接続ボタンを押せばOK。パスワードを求められるので、設定したパスワードを入力する。

追記:リモート画面の遅延が気になる
リモート操作のレスポンスが悪いのは、どうやらMacデフォルトの接続ソフトが原因なようです。vnc viewerを使うと気にならないレベルまで遅延が解消されました。

https://www.realvnc.com/download/viewer/

 

 Raspberry piにファイルサーバー構築

netatalkを入れます。

$ sudo apt-get install netatalk 

これでMacのFinderからアクセス出来るようになります。

 

MacにCDF Playerをインストールする

ソフトをダウンロードしてインストールするだけなのでダウンロード先を記載しておきます。

https://www.wolfram.com/cdf-player/

 

f:id:okiami1983:20160122225519p:plain

電荷による電位分布を3次元で表示させました。

  • 左がRaspberry pi2で表示させたもの(VNC ViewerでMacから操作してます)
  • 右がMac上でCDF Playerを使ったもの。

Raspberry pi2はもっさりなのに対して、Macはサクサク動きます。

 

参考 

http://miracle-kktn.blogspot.jp/2014/11/raspberry-pi-vnc.html

http://www.1ft-seabass.jp/memo/2015/04/17/raspberry-pi-vnc-remote/

 

おまけ

 

Mathematicaの用途ですが、個人的には純粋な数学の問題を解くために使うよりも物理学の数式を解釈するのに使えるかなあと。

 

レクチャーズオンMathematica

レクチャーズオンMathematica

 
Mathematicaによる電磁気学

Mathematicaによる電磁気学

 
Mathematicaによる通信工学

Mathematicaによる通信工学

 

 

<追記 2016/12/24> 

PIXELが公開されましたので、mathematicaを使いたい人はPCにPIXELを入れた方がいいかもしれません。

Raspberry Pi's PIXEL OS Now Available for Windows and Mac | NDTV Gadgets360.com

 

と思ってましたけど、今のところmathematicaはPIXELに含まれていないようですね。