ラズベリー・パイを使って、Mathematica で遊ぼう!
-
はじめに
Raspberry Pi(ラズベリー・パイ)という名の、シングルボード・コンピューターがあります。教育目的で開発されたもので、本体は35ドルです。必要な付属品をフルセットにしたものでも、日本で1万円未満で入手できます。アマゾンでも買えます。シングルボード・コンピューターというのは、手のひらサイズの1つの電子基板の上に、普通のパソコン本体に相当する要素が一通り搭載されたものです。パソコン本体と同じように使うことが出来ます。
(https://www.raspberrypi.org から、Creative Commons licenseのもとに公開されている画像を使用しています。)このマシンでは、このフォーラムのレンタル・サーバーマシンと同じように、リナックスOSを動かすことができます。そして、特筆すべきことの一つとして、Mathematicaという数式・データ処理ソフトが、この環境では、開発元からフリーで提供されています。買うと40万円以上、ホビー用途に限られたホーム版でも7万円します。それが、自由に使えるわけです。
最新の Raspberry Pi 3 であっても、デスクトップ・パソコンには計算性能で全く叶いません(ベンチマークにも因りますが、だいたい1/100~1/20ぐらいの性能のようです)。しかし、一昔前のパソコン程度の能力はあり、基本的なことを行うだけならば、これで十分そうです。インターネットに繋ぐこともできるし、今時のHDMI端子の刺さる液晶ディスプレイがあれば、画面も表示できます。USBメモリーも使えます。
ここでは、この Raspberry Pi を購入して、Mathematica を動かし、以前の水槽パズルのときに紹介した3Dグラフィックスを作成し、画面上でぐりぐり動かす(※)ところまでをやってみたいと思います。
※まだ、実機を触ったこともなく、試したこともないので、本当にぐりぐり動くかどうかは現時点では不明です(笑)。
リファレンス:
Raspberry Pi - https://www.raspberrypi.org/help/
Mathematica - http://www.wolfram.com/mathematica/
追加: 「統計と可視化の力」スレッドでも、Mahematicaを用いたデータ可視化例を多数紹介しています。Raspberry Pi 3で試すことが出来ます。
-
ラズベリー・パイを買おう!
どれでも大して変わらないと思いますが、私は、
Raspberry Pi3 コンプリートスターターキット (Basic)
Physical Computing Labというものをアマゾンを通して注文しました。8640円でした。基板が剥き出しだと扱いにくいですが、このセットには専用のケースも付いていて安心そうです。またOSをインストールするディスクとなるマイクロSDカードも付いていて、すでにMathematicaも含んだリナックスOS(Raspbian)が書き込み済みです。届いたら続きをレポートします。
リファレンス:
Raspbian - https://www.raspbian.org
-
@ソム さん
面白そう!
使っていないノートPCをディスプレイにして動く??(って、私だと何に使えるのでしょう。全くの買って動かしてみるだけではつまらないし)
(って、そもそもLinux使えなかったわ)
-
@はな さん
コメントありがとうございます。
使っていないノートPCをディスプレイにして動く??
ノートPCの画面に外から信号を入れるのは難しそうですね。
(って、私だと何に使えるのでしょう。全くの買って動かしてみるだけではつまらないし)
とても重要な問いですね。買ってスイッチを入れるだけじゃつまらないですよね。それから、パソコンでできることを繰り返すだけもつまらないですね(このスレッドを否定!
私の場合は、ここには書かない別のプロジェクトも想定していて、その様子見です。実際に触ってみないと使えるのか実感がわかない面もあるので。一人でやっていてもつまらないので、レポートするというわけです(笑 ということで、ここでは「遊び」ということにしています。
単にリナックスが使いたいだけなら、バーチャル・プライベート・サーバー(VPS)をレンタルすれば、すぐに使い始められ、必要なくなったら解約すればよいだけです。値段も一年で1万円未満のものもあります。
となると、実物が手元にあり、ラズベリー・パイである理由はなにか? 一つには、マイコンと同じようなデジタル入出力が使えることです。つまり、センサーその他の好きなものを繋ぎ、電子工作的なことができることです。これはVPSではできないことですし、パソコンでやるには、高い専用のIOボードが必要になったりと、大げさになります。
はなさんが使うとしたら??? このスレッドの成り行きをご覧の上、考えてみてください(笑
-
ラズベリー・パイを動かそう!
先ほど届きました。本体はちびちゃいです。名刺ケースぐらいの感じです。
パッケージを開けて、ディスプレイに繋ぎ、ACケーブルを繋ぎ、USBマウス、USBキーボードに繋ぎ、スイッチON!
7/17追加: それから、OSの入ったマイクロSDカードを本体裏側の差し込み口に差し込んでおくことも必要です。
(HDMIケーブルは、セットに入っていると思い込んでいましたが、私の買った Basic セットには入っておらず、パソコンに使っているケーブルを流用しました。Standardセットのほうなら付いているのかもしれません。)
10秒ぐらいしたら起動が終わり、使える状態になりました。
その30秒後ぐらいには、Wifiで無線ルーターに繋ぐ方法を見つけ、その10秒あとぐらいには、ウェブブラウザを開け、このフォーラムを見ることが出来ました。
初期状態では、時間が変だったり、日本語が入力できないなどの問題はありますが、それ以外はあまりにも普通に使えて拍子抜けします。USBマウスを刺すと直ぐ認識して、エクスプローラーみたいなのでファイルをコピーも出来ました。
古いノートパソコンを引っ張り出して使うよりは、よほど快適な使い心地です。
すでに主要なアプリケーションはインストールされていて、プログラミング関係では、Mathematicaもちゃんとインストール済みです。
起動も、パソコン版と遜色ない時間で出来ました。
あまりにも普通です(笑
※scrotというソフトがすでにインストールされていて、それでスクリーンショットを撮りました。画像ファイルは、とりあえずUSBメモリーでパソコンに転送しました。その後、1/16に縮小してファイルサイズを小さくしました。だから、元は大画面(1680 x 1050 ピクセル)で、もっと精彩に見えます。
-
ベンチマークをしてみよう!
Mathematicaでの処理速度を、標準のベンチマークで試してみました:
総合ポイントは、0.03で、普通のパソコンを1.0ぐらいとして、1/33ぐらいでした。比較として表示されているビリの0.01が、Raspberry Pi 1の成績だと思います。だから、昔より3倍ぐらいましになったという見方も出来ます。
ベンチマーク:
Mathematica上で以下を実行します。Needs["Benchmarking`"] BenchmarkReport[]
-
ここまでについて、改善マンのための、メモ:
- 時刻が変
- 日本語が入力できない
- キーボードのマッピングが合っていない(記号の類について、キートップと実際に入力される文字が一致していない)
- スクリーン画像のファイルをPCに持っていくのが面倒(USBメモリーの抜き差し)→日本語が入力可能なら、ラズベリー・パイ上から直接ここに書き込めるのだが...
-
Mathematica を使おう!
さて、ここでの目的であった、浮き入り水槽の3Dグラフィックスを作ってみます。ラズベリー・パイ上で、Mathematicaを起動し、以下を実行します:
- cosmosさんの水槽が表示されました。マウスでぐりぐり動かせるでしょうか?
...
意外にまともです。ぐりぐりは無理でしたが、ぐ・り・ぐ・りぐらいには動かせました。計算時間も含めて、実用の許容範囲だと思いました。もう終わってしまいました。おしまい(笑
-
以下の予定:
- 改善マンの活躍
- Mathematcaでいろんなことを試してみる。特にインターネット経由の統計データ取得・可視化などもやってみる(Wolfram Researchは、Mathematicaから利用可能な、キュレートされたデータバンクを提供していたはず。ラズベリー・パイ版から使えるかどうかはしらないけれど)。
-
科学データを取得しよう!
Wolfram Researchの提供するデータバンクから、データを取り出してみます。何でも良いですが、例えば、太陽系の惑星について。
全惑星について、写真と、重力係数について出してみます。重力係数については、棒グラフにしてみましょう。
ちゃんとデータも利用できるようです。木星の重力が強いようですね。
-
社会学?データを取得しよう!
Wolfram Data Repository の以下のページから、アメリカ合衆国におけるUFO(未確認飛行物体)の2015年の目撃情報を得ます。
https://datarepository.wolframcloud.com/resources/UFO-Sightings-2015目撃地点の分布を地理ヒストグラムにしてみます。それから、目撃情報の回数を月別のヒストグラムにしてみます。
11月の目撃が多いようですが、意味は分かりません。
Wolfram Data Repository について:
- 自然科学以外の、社会・文化・疫学・政治などの幅広いデータの登録を目指しているようです。
- 最近出来たばかりで、登録データがあまり多くありません。
- アメリカ合衆国の情報に偏っています。
-
自分だけのタイムライン図を作って見よう!
書籍 "To Explain the World" に登場する人物達の生年・没年をWikipediaで調べ、それをタイムライン上にプロットしてみます。最後に、SVG形式で結果をエクスポートし、webページに貼り付けられるようにします。
結果の画像ファイルは、こんな風になります。
-
日本語を入力しよう!
このコメントは、ラズベリー・パイから書いています。
以下のページを参考にしました:
https://ngc1952.net/archives/991terminalで、
sudo raspi-config
"4 Localisation Options" にカーソルを移動してエンター、"I1 Change Locale"を同様に選択、リストから、"ja_JP.UTF-8"にスペースキーを用いてチェック("*"記号)を入れます。すでに国際英語(en_GB.UTF-8)は選択済みですので、そのままにします。その後、OKにして、defaultのlocale(言語設定)を選ぶように言われるので、ja_JP.UTF-8を選ぶようにします。
次に、日本語フォントをインストールします(すでに日本語表示されているので、フォントはあると思うのですが、一応、参考ページに従ってみます)。
terminalで、
sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
最後に、iBusというインプット・メソッド関係のソフトをinstallします。
sudo apt-get install ibus-anthy
そして、デスクトップのメニューから、Preferences→iBus Preferencesを起動、"Input Method"タブを選択。次に Japanese - Anthy というのを選択し、"Add"します。それから、"General"タブで、インプット・メソッドの切り替え(日本語入力のON/OFFの切り替え)キーが”<Super>space"となっているところを、"<Alt>grave; <Super>space"としました。私の場合は、このキーに慣れているからです。
最後に、(これが分からず苦労したのですが)、一度、ラズベリー・パイを再起動します。再起動には、メニューから、Shutdown→Rebootを選びます。
再起動後は、設定した切り替えキーによって、日本語が入力できるようになりました。右上のところの "US" が、"Aち Anthy"というアイコンに切り替わりました。これは、別にそうなって欲しいとは思っていなかったのですが、OSの表示自体も日本語になってしまいました。
まとめ:
- 日本語を入力できるようになりました。
- おかげで、このフォーラムに直接書けるようになりました。
- 特に何もしなかったのですが、キーボードのマッピングが変だった問題が解消しました。
-
時刻を直そう!
表示時刻が変なので、デスクトップのメニューから、設定→Raspberry Piの設定を起動します。「ローカリゼーション」タブの「タイムゾーンの設定」から、Japanを設定します。ついでに、「無線LANの国設定」も日本にしておきます。「キーボードの設定」は、私の場合は英語キーボードを使っているせいか、得に設定なく初期状態のまま使えているよるようです。
指示に従って再起動します。
おしまい。
-
テキストを解析してみよう!
「不思議の国のアリス」の全テキスト・データを取得し、冠詞などを除く単語について、特に良く用いられている単語をワードクラウドによって可視化してみます。
次に、ヤマネ("Dormouse")の登場回数をカウントしてみます。
最後に、ヤマネの出てくる文章を抽出してみます。
ヤマネ("Dormouse")は6回、5つの文章に登場することが分かりました。
-
機械学習をさせてみよう!
インターネット上から、惑星の写真をコピー&ペーストで集めます。そして、それらを機械学習させ、「惑星分類器」を作ります。
初めてClassify関数を用いるときに、Wolfram Researchのサーバーから、機械学習のためのプログラムがダウンロードされるようです。そのため、最初だけ余分に時間がかかります。その後は、375秒(=6分15秒)ぐらいで学習完了しました。
次に、学習の成果を試してみましょう! 惑星の学習には用いなかった新たな画像を用意し、分類させてみます。例として、木星と土星にしてみましょう。
正しく分類できました! 賢いです。
-
ここまでのRaspberry Pi雑感:
-
教育用を志向したものらしいですが、その目標通りに良くできていると思います。適度にシンプルですが、本質的にはプロ用の環境と同じものを提供しています。処理速度的にも、ぎりぎり許容範囲だと思います。
-
ひねりはないですが、これを配布教材として、プログラミング教室が可能です。コンピューター教育を教科書だけで行うのは、一度もプールに入らずに、泳ぎ方を学ぶ水泳教室のようなものです。生徒にRaspberry Pi一式を買い取って貰います。そして、課題とその説明を提供します。全く同じ環境が再現性よく安価に手に入るということは、教育を提供する側にとっても利点になります。
-
これを教材とした場合、以下の様なものを学べそうです:
- OSの基本
- ネットワークやセキュリティの基本
- プログラミングやデータ解析の基本
- オープンソース(フリー)・ソフトウェアの意義
- さらに、ハードウェア的な拡張まで手を出した場合には、組み込みシステムの基本(ロボットや測定器など)
-
-
@ソム さん
面白そうです。
田舎での書庫の整理(かなり時間がかかりそうですが、)が終わったら
チャレンジしてみようかな、と興味がわいてまいりました。(^^♪
-
ラズベリー・パイを使って、Mathematica で遊ぼう!で@riffraffさんが発言 :
田舎での書庫の整理(かなり時間がかかりそうですが、)が終わったら
チャレンジしてみようかな、と興味がわいてまいりました。(^^♪コメントありがとうございます。お気軽に出来るのが良いと思います。失敗して壊しても、せいぜい数千円、ゴミもちょっとしか出ませんし。一緒に遊びましょう!
書物は重いし場所を取るし、大変ですね。私は、技術書のほぼ全てを、引っ越しを期にスキャン・サービスに回してしまいました。本棚が4つ不要になりました。4~500キロぐらい減量も出来たと思います(笑
-
ソムさん
ラズベリー・パイ、面白そうですね。
水槽パズルの水槽が、ぐりぐりorぐ・り・ぐ・り 動くのですね\(^o^)/。
やってみたいです!ディスプレイはHDMI端子の刺さる液晶テレビでも大丈夫ですか?
現在使用しているキーボードは、Bluetooth接続なのですが、wifiタイプを購入した方がいいでしょうか?(Bluetooth接続だと初期設定ができないと聞きました。テレビに繋ぐのならワイヤレスにしたいです。)コンピューターは全く分からないし、プログラミング言語なんてチンプンカンプンです。
組み立ても心配です。繋ぐだけでしょうか?
それから英語も苦手ですし、読む努力をするエネルギーはありません(>_<)。
幼稚園児のような質問ばかりしてしまうと思うのですが、よろしくお願いします。
水槽ぐりぐりと、欲を言えば、動く展開図が目標です。