ラズベリー・パイを使って、Mathematica で遊ぼう!


  • Global Moderator

    はじめに

    Raspberry Pi(ラズベリー・パイ)という名の、シングルボード・コンピューターがあります。教育目的で開発されたもので、本体は35ドルです。必要な付属品をフルセットにしたものでも、日本で1万円未満で入手できます。アマゾンでも買えます。シングルボード・コンピューターというのは、手のひらサイズの1つの電子基板の上に、普通のパソコン本体に相当する要素が一通り搭載されたものです。パソコン本体と同じように使うことが出来ます。

    0_1499988458437_raspberry-pi.png
    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/


  • Global Moderator

    ラズベリー・パイを買おう!

    どれでも大して変わらないと思いますが、私は、

    Raspberry Pi3 コンプリートスターターキット (Basic)
    Physical Computing Lab

    というものをアマゾンを通して注文しました。8640円でした。基板が剥き出しだと扱いにくいですが、このセットには専用のケースも付いていて安心そうです。またOSをインストールするディスクとなるマイクロSDカードも付いていて、すでにMathematicaも含んだリナックスOS(Raspbian)が書き込み済みです。届いたら続きをレポートします。

    リファレンス:
    Raspbian - https://www.raspbian.org



  • @ソム さん

    面白そう!
    使っていないノートPCをディスプレイにして動く??

    (って、私だと何に使えるのでしょう。全くの買って動かしてみるだけではつまらないし)
    (って、そもそもLinux使えなかったわ)


  • Global Moderator

    @はな さん

    コメントありがとうございます。

    使っていないノートPCをディスプレイにして動く??

    ノートPCの画面に外から信号を入れるのは難しそうですね。

    (って、私だと何に使えるのでしょう。全くの買って動かしてみるだけではつまらないし)

    とても重要な問いですね。買ってスイッチを入れるだけじゃつまらないですよね。それから、パソコンでできることを繰り返すだけもつまらないですね(このスレッドを否定!

    私の場合は、ここには書かない別のプロジェクトも想定していて、その様子見です。実際に触ってみないと使えるのか実感がわかない面もあるので。一人でやっていてもつまらないので、レポートするというわけです(笑 ということで、ここでは「遊び」ということにしています。

    単にリナックスが使いたいだけなら、バーチャル・プライベート・サーバー(VPS)をレンタルすれば、すぐに使い始められ、必要なくなったら解約すればよいだけです。値段も一年で1万円未満のものもあります。

    となると、実物が手元にあり、ラズベリー・パイである理由はなにか? 一つには、マイコンと同じようなデジタル入出力が使えることです。つまり、センサーその他の好きなものを繋ぎ、電子工作的なことができることです。これはVPSではできないことですし、パソコンでやるには、高い専用のIOボードが必要になったりと、大げさになります。

    はなさんが使うとしたら??? このスレッドの成り行きをご覧の上、考えてみてください(笑


  • Global Moderator

    ラズベリー・パイを動かそう!

    先ほど届きました。本体はちびちゃいです。名刺ケースぐらいの感じです。
    0_1500097026748_UNI_0022-h170715.jpg

    パッケージを開けて、ディスプレイに繋ぎ、ACケーブルを繋ぎ、USBマウス、USBキーボードに繋ぎ、スイッチON!

    7/17追加: それから、OSの入ったマイクロSDカードを本体裏側の差し込み口に差し込んでおくことも必要です。

    (HDMIケーブルは、セットに入っていると思い込んでいましたが、私の買った Basic セットには入っておらず、パソコンに使っているケーブルを流用しました。Standardセットのほうなら付いているのかもしれません。)

    10秒ぐらいしたら起動が終わり、使える状態になりました。
    0_1500096184086_2017-07-15-050610_1680x1050_scrot-25p.jpg

    その30秒後ぐらいには、Wifiで無線ルーターに繋ぐ方法を見つけ、その10秒あとぐらいには、ウェブブラウザを開け、このフォーラムを見ることが出来ました。
    0_1500096248046_2017-07-15-050714_1680x1050_scrot-25p.jpg

    初期状態では、時間が変だったり、日本語が入力できないなどの問題はありますが、それ以外はあまりにも普通に使えて拍子抜けします。USBマウスを刺すと直ぐ認識して、エクスプローラーみたいなのでファイルをコピーも出来ました。

    古いノートパソコンを引っ張り出して使うよりは、よほど快適な使い心地です。

    すでに主要なアプリケーションはインストールされていて、プログラミング関係では、Mathematicaもちゃんとインストール済みです。

    0_1500096506893_2017-07-15-050820_1680x1050_scrot-25p.jpg

    起動も、パソコン版と遜色ない時間で出来ました。

    0_1500096529622_2017-07-15-050908_1680x1050_scrot-25p.jpg

    あまりにも普通です(笑

    ※scrotというソフトがすでにインストールされていて、それでスクリーンショットを撮りました。画像ファイルは、とりあえずUSBメモリーでパソコンに転送しました。その後、1/16に縮小してファイルサイズを小さくしました。だから、元は大画面(1680 x 1050 ピクセル)で、もっと精彩に見えます。


  • Global Moderator

    ベンチマークをしてみよう!

    Mathematicaでの処理速度を、標準のベンチマークで試してみました:
    0_1500098367239_2017-07-15-055413_1200x973_scrot.png

    総合ポイントは、0.03で、普通のパソコンを1.0ぐらいとして、1/33ぐらいでした。比較として表示されているビリの0.01が、Raspberry Pi 1の成績だと思います。だから、昔より3倍ぐらいましになったという見方も出来ます。

    ベンチマーク:
    Mathematica上で以下を実行します。

    Needs["Benchmarking`"]
    BenchmarkReport[]
    

  • Global Moderator

    ここまでについて、改善マンのための、メモ:

    • 時刻が変
    • 日本語が入力できない
    • キーボードのマッピングが合っていない(記号の類について、キートップと実際に入力される文字が一致していない)
    • スクリーン画像のファイルをPCに持っていくのが面倒(USBメモリーの抜き差し)→日本語が入力可能なら、ラズベリー・パイ上から直接ここに書き込めるのだが...

  • Global Moderator

    Mathematica を使おう!

    さて、ここでの目的であった、浮き入り水槽の3Dグラフィックスを作ってみます。ラズベリー・パイ上で、Mathematicaを起動し、以下を実行します:

    0_1500102531839_2017-07-15-070533_809x957_scrot.png

    1. cosmosさんの水槽が表示されました。マウスでぐりぐり動かせるでしょうか?

    ...
    意外にまともです。ぐりぐりは無理でしたが、ぐ・り・ぐ・りぐらいには動かせました。計算時間も含めて、実用の許容範囲だと思いました。

    もう終わってしまいました。おしまい(笑


  • Global Moderator

    以下の予定:

    • 改善マンの活躍
    • Mathematcaでいろんなことを試してみる。特にインターネット経由の統計データ取得・可視化などもやってみる(Wolfram Researchは、Mathematicaから利用可能な、キュレートされたデータバンクを提供していたはず。ラズベリー・パイ版から使えるかどうかはしらないけれど)。

  • Global Moderator

    科学データを取得しよう!

    Wolfram Researchの提供するデータバンクから、データを取り出してみます。何でも良いですが、例えば、太陽系の惑星について。

    全惑星について、写真と、重力係数について出してみます。重力係数については、棒グラフにしてみましょう。
    0_1500110031693_2017-07-15-090856_809x932_scrot.png

    ちゃんとデータも利用できるようです。木星の重力が強いようですね。


  • Global Moderator

    社会学?データを取得しよう!

    Wolfram Data Repository の以下のページから、アメリカ合衆国におけるUFO(未確認飛行物体)の2015年の目撃情報を得ます。
    https://datarepository.wolframcloud.com/resources/UFO-Sightings-2015

    目撃地点の分布を地理ヒストグラムにしてみます。それから、目撃情報の回数を月別のヒストグラムにしてみます。

    0_1500116920069_2017-07-15-110439_809x984_scrot.png

    11月の目撃が多いようですが、意味は分かりません。

    Wolfram Data Repository について:

    • 自然科学以外の、社会・文化・疫学・政治などの幅広いデータの登録を目指しているようです。
    • 最近出来たばかりで、登録データがあまり多くありません。
    • アメリカ合衆国の情報に偏っています。

  • Global Moderator

    自分だけのタイムライン図を作って見よう!

    書籍 "To Explain the World" に登場する人物達の生年・没年をWikipediaで調べ、それをタイムライン上にプロットしてみます。最後に、SVG形式で結果をエクスポートし、webページに貼り付けられるようにします。

    0_1500118826285_2017-07-15-113519_808x936_scrot.png

    結果の画像ファイルは、こんな風になります。
    timeline


  • Global Moderator

    日本語を入力しよう!

    このコメントは、ラズベリー・パイから書いています。

    以下のページを参考にしました:
    https://ngc1952.net/archives/991

    terminalで、

    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の表示自体も日本語になってしまいました。

    まとめ:

    • 日本語を入力できるようになりました。
    • おかげで、このフォーラムに直接書けるようになりました。
    • 特に何もしなかったのですが、キーボードのマッピングが変だった問題が解消しました。

  • Global Moderator

    時刻を直そう!

    表示時刻が変なので、デスクトップのメニューから、設定→Raspberry Piの設定を起動します。「ローカリゼーション」タブの「タイムゾーンの設定」から、Japanを設定します。ついでに、「無線LANの国設定」も日本にしておきます。「キーボードの設定」は、私の場合は英語キーボードを使っているせいか、得に設定なく初期状態のまま使えているよるようです。

    指示に従って再起動します。

    おしまい。


  • Global Moderator

    テキストを解析してみよう!

    「不思議の国のアリス」の全テキスト・データを取得し、冠詞などを除く単語について、特に良く用いられている単語をワードクラウドによって可視化してみます。

    次に、ヤマネ("Dormouse")の登場回数をカウントしてみます。

    最後に、ヤマネの出てくる文章を抽出してみます。

    0_1500131236684_2017-07-16-000701_808x814_scrot.png

    ヤマネ("Dormouse")は6回、5つの文章に登場することが分かりました。

    参考:
    http://blog.wolfram.com/2015/10/01/literary-analysis-and-the-wolfram-language-jumping-down-a-reading-rabbit-hole/


  • Global Moderator

    機械学習をさせてみよう!

    インターネット上から、惑星の写真をコピー&ペーストで集めます。そして、それらを機械学習させ、「惑星分類器」を作ります。

    0_1500161949350_2017-07-16-083813_759x834_scrot.png

    初めてClassify関数を用いるときに、Wolfram Researchのサーバーから、機械学習のためのプログラムがダウンロードされるようです。そのため、最初だけ余分に時間がかかります。その後は、375秒(=6分15秒)ぐらいで学習完了しました。

    次に、学習の成果を試してみましょう! 惑星の学習には用いなかった新たな画像を用意し、分類させてみます。例として、木星と土星にしてみましょう。

    0_1500162073713_2017-07-16-084044_759x594_scrot.png

    正しく分類できました! 賢いです。


  • Global Moderator

    ここまでのRaspberry Pi雑感:

    • 教育用を志向したものらしいですが、その目標通りに良くできていると思います。適度にシンプルですが、本質的にはプロ用の環境と同じものを提供しています。処理速度的にも、ぎりぎり許容範囲だと思います。

    • ひねりはないですが、これを配布教材として、プログラミング教室が可能です。コンピューター教育を教科書だけで行うのは、一度もプールに入らずに、泳ぎ方を学ぶ水泳教室のようなものです。生徒にRaspberry Pi一式を買い取って貰います。そして、課題とその説明を提供します。全く同じ環境が再現性よく安価に手に入るということは、教育を提供する側にとっても利点になります。

    • これを教材とした場合、以下の様なものを学べそうです:

      • OSの基本
      • ネットワークやセキュリティの基本
      • プログラミングやデータ解析の基本
      • オープンソース(フリー)・ソフトウェアの意義
      • さらに、ハードウェア的な拡張まで手を出した場合には、組み込みシステムの基本(ロボットや測定器など)


  • @ソム さん
    面白そうです。
    田舎での書庫の整理(かなり時間がかかりそうですが、)が終わったら
    チャレンジしてみようかな、と興味がわいてまいりました。(^^♪


  • Global Moderator

    ラズベリー・パイを使って、Mathematica で遊ぼう!で@riffraffさんが発言 :

    田舎での書庫の整理(かなり時間がかかりそうですが、)が終わったら
    チャレンジしてみようかな、と興味がわいてまいりました。(^^♪

    コメントありがとうございます。お気軽に出来るのが良いと思います。失敗して壊しても、せいぜい数千円、ゴミもちょっとしか出ませんし。一緒に遊びましょう!

    書物は重いし場所を取るし、大変ですね。私は、技術書のほぼ全てを、引っ越しを期にスキャン・サービスに回してしまいました。本棚が4つ不要になりました。4~500キロぐらい減量も出来たと思います(笑



  • ソムさん
    ラズベリー・パイ、面白そうですね。
    水槽パズルの水槽が、ぐりぐりorぐ・り・ぐ・り 動くのですね\(^o^)/。
    やってみたいです!

    ディスプレイはHDMI端子の刺さる液晶テレビでも大丈夫ですか?
    現在使用しているキーボードは、Bluetooth接続なのですが、wifiタイプを購入した方がいいでしょうか?(Bluetooth接続だと初期設定ができないと聞きました。テレビに繋ぐのならワイヤレスにしたいです。)

    コンピューターは全く分からないし、プログラミング言語なんてチンプンカンプンです。
    組み立ても心配です。繋ぐだけでしょうか?
    それから英語も苦手ですし、読む努力をするエネルギーはありません(>_<)。
    幼稚園児のような質問ばかりしてしまうと思うのですが、よろしくお願いします。
    水槽ぐりぐりと、欲を言えば、動く展開図が目標です。



パズルハウスへの接続が失われたと思われます。再接続されるまでしばらくお待ちください。