nao2g's memo

fueling creativity.

MacでRaspberry Pi 2 Model Bをセットアップする方法(2)

 

前記事(1)で、マイクロSDカードほか、準備するものについて書きました。  

 

今日は、マイクロSDカードにOSイメージを用意するところまで。

 

マイクロSDカードに、OSイメージを書き込む

MacBook Air 11インチの場合、SDカードスロットが無いので、カードリーダー/ライターが必要なのでゲットしました。

 

このあとの手順は、以下のとおり。

  1. Raspberry Pi用のOS、Raspbianをダウンロードする。
  2. マイクロSDカードのデバイスファイル番号を調べておく。
  3. マイクロSDカードをフォーマット。
  4. マイクロSDカードに書き込み。 

 

Raspberry Pi用のOS、Raspbianをダウンロードする

Raspberry Pi財団のホームページ、ダウンロードページに行きます。

 

2015-11-21リリースのRASPBIAN JESSIEという最新版のzipファイルをダウンロードします。普通は20分ぐらいでダウンロードできますが、時々、すごく重くて時間がかかることがあるので、時間のあるときにあらかじめ落としておくと良いです。ファイルは、2015-11-21-raspbian-jessie.zip、1.43GBでした。ダブルクリックして解凍すると、2015-11-21-raspbian-jessie.img、3.93GBになります。

追記:

2016-02-03に新バージョンがリリースされました。すぐに修正版が出て、2016-02-09になっています。2016-02-09-raspbian-jessie.imgです。4.13GB(成長してる)

 

マイクロSDカードのデバイスファイル番号を調べておく

MacにマイクロSDカードを挿入する前に、「ターミナル」を立ち上げます。

あとで必要になる、デバイスファイル番号を調べるためです。

挿入前に、$ df -hを実行、マイクロSDカードを挿入、

もう一度、$ df -hを実行、挿入後に増えた行に注目します。

(先頭の$は、システムのプロンプトなので、入力しないで良いです。)

$ df -h

Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk2s1 15Gi 3.1Mi 15Gi 1% 0 0 100% /Volumes/BOOT

この場合、disk2s1となっているので、2番です。

 

マイクロSDカードをフォーマットする

SDアソシエーションのホームページに行って、公式フォーマットアプリ、「SDカードフォーマッター」をゲットします。

SDカードフォーマッター Mac OS用 - SD Association

 f:id:naohiro2g:20160206232203p:plain

「SDカードフォーマッター」を起動、Quickではなく、Overwrite Formatします。10分ほどかかります。カードの名前は気にしなくて良いです。
 

マイクロSDカードに書き込み

フォーマットが終わったら、アンマウントします。イジェクトしちゃダメです。

$ sudo diskutil unmount /dev/disk2s1

Volume BOOT on disk2s1 unmounted

 

イメージファイル、2015-11-21-raspbian-jessie.imgをコピーします。

$ sudo dd bs=1m of=/dev/rdisk2 if=

ここまでコピペしたら、「ターミナル」のウィンドウにイメージファイルをドラッグアンドドロップすると、ファイルパスが文字列として追加されるので、エンター。

こんな感じになっているはず。

$ sudo dd bs=1m of=/dev/rdisk2 if=/Users/xxxxxxxx/Downloads/2015-11-21-raspbian-jessie.img

(disk2s1ではなくて、rdisk2となっていることに注意。この方が10倍早い。)

 

3752+0 records in

3752+0 records out

3934257152 bytes transferred in 374.863015 secs (10495186 bytes/sec)

 

6分ちょっと、かかりました。
ちなみに、待っている間に、ctrl-Tを押すと、途中経過を見ることができます。


イジェクトします。

$ sudo diskutil eject /dev/rdisk2



今日は、ここまで。

 

MacでRaspberry Pi 2 Model Bをセットアップする方法(1)

モニター、キーボード、マウス無しでMacとRaspberry Pi 2 Model BをEthernet接続、sshログイン、各種設定して、さらにWi-Fi接続するところまで、数回に分けて書きます。そのあとも、基本的にMacからリモートで開発するスタイルです。
 

Raspberry Piを使うために準備しないといけないことは、意外とたくさんあって、しかも、Raspberry Pi自体もそれを取り巻く環境も変化しているので、2年前のノウハウがそのまま通用するところ、あまり有効でないところもある。

というわけで、2016年1月時点での記録。

 

まず、この記事では、揃えるものについて。

ポイントは、SDカードの相性問題と電源容量(供給/消費)。

 

RSコンポーネンツで調達したもの。(2016年1月時点、ビジネスアカウント)

  • Raspberry Pi 2 Model B 5,200円(購入直後、400円以上下落。。)
  • RS公式、ラズパイロゴケース 310円(RoHS対応に伴う切り替えで大特価。直後に売り切れ、860円に)
  • Sense HAT 4,300円(直後に在庫切れ、2ヶ月待ちに)

Amazonで調達したもの。(2016年1月時点)

  • Samsung MB-MP16D/FFP microSDカード 16GB / Class 10 / UHS-I 800円
  • Planex GW-USNANO2A/FFPUSBドングル型 無線LAN子機 11n / g / b 150Mbps 1,100円
  • Anker 10W USB急速充電器 2A出力 AC折りたたみ白色 1,000円
  • Anker Micro USBケーブル 急速充電対応 高耐久 800円
  • サンワサプライ USBスリムキーボード ホワイト SKB-SL18W 1,600円
  • Logicool ロジクール 有線光学式3ボタン マウス M105 ホワイト 840円
  • ロジクール ワイヤレスコンボ ホワイト MK240SWH 2,100円(無線キーボード/マウスのセット。これでも問題なかった)


SDカードの相性問題

Raspberry Piは、(なんと)SDカードを起動メディア、外部記憶として使います。Flashメモリーをそのように使う手法は、最初はびっくりだったけど、iPod以降、当たり前になり、数年のうちにSSDでないLaptopはありえない状態に。これがないとスマホも成立しない。とはいえ、リムーバルのSDカードでは、やはり互換性が問題になります。Class 10かClass 4か、USH-I対応、ブランド、などは関係なく、ロットによっても変化するという面倒臭さ。最新情報に従って買わないと、失敗の元。今使っていて問題ないものも信用できない。互換性情報があちこちにあります。

 

電源問題

 本体だけで、待機時200mA=1Wから、4コアがブンブン働いている時で4W、5Wといわれています。1Aの電源では明らかにダメ。また、キーボード、マウスもUSBの規格的には500mAまで使っても良いので、気を使っていない設計のものだと大変。WiFiBluetoothアダプタも消費電力に注意しないといけません。

ましてや、GPIO(汎用入出力)を使って電子工作、フィジカルコンピューティング、となると、いくらあっても安心できません。

2A=10W供給できる充電器、そして、「急速充電可能」をうたっているケーブルが必要です。 100円ショップのケーブルは避けた方が良いでしょう。

 

電源事情と不具合と不安定性の問題

電源事情に問題があると、元々あるマイクロSDカードの相性問題が、より悪化する方向に行きます。普段は問題ないけど、何かの拍子にフリーズする、など。

 

電源が落ちたり、フリーズすると、運が悪いとSDカードの情報が壊れて再起動できなくなります。情報が壊れるのは、一時的にメモリー上に展開してある情報が書き戻されないため、不整合が起きるから。

 

ブートブロックが不整合を起こすと、仮に再起動できたとしても、おかしな設定条件になっていたりして不安定要素が増します。

当然のことながら、アプリの設定情報やデータ部分でも不整合が起きる可能性があります。知らない間に傷ついていて、ある時、不具合が出現する。不具合が起きると、さらに、全然関係ない部分が傷つく可能性あり。なんか調子が悪くなってきたなぁ、という感じに。

 

調子の悪いパソコンがだんだん調子悪くなる、のと同じです。確率の問題。

 というわけで、SDカード、電源、電源ケーブル、接続するUSB機器は、真剣に選ばないといけないのです。

 

よーし、そろそろ、Raspberry Pi 2 で本気出すか。の巻

1.4か、2.0か。

2年前、Scratch教室で教えることになったとき、2.0で行くべきか、1.4で行くべきか、で、かなり悩みました。


当時、まだ2.0は若くて、6歳差のお兄さん1.4の安定度から見劣りしたこと、いずれフィジカルコンピューティングへ進めたいから、やはりRaspberry Pi。そうなると1.4しかない。ということで、1.4を選びました。

しかし、一通りRaspberry Piを触ってみての感想は、「うーん、肝心のScratchが重い」でした。 子供達はスプライトを100個出すとか、100,000,000回繰り返すとか、無茶します。いや、もうちょっと普通に使っていても、フリーズ状態になったり、ぎこちない動きになり、思い通りにいきません。

 

さらに、小学生に教えること x コーディングを教えること、の2重のノウハウのなさから、最初から冒険はできない事情。

 

結果としては、Laptop PC / WindowsでScratch 1.4となりました。

 

Scratch 2.0もかなりしっかりしてきた。けど。

2年やってみて、ようやくいろいろ見えてきました。

Scratch 2.0も良くなったし、何よりコミュニティが成長してきました。オンライン登録ユーザーだけでも、本日、970万人達成。5月のScratch Dayまでに1,000万人突破は確実だと思います。それにしても、1.4の完成度はすごい。

 

ちなみに、2015年1月7日で500万人突破。私の記録によれば、5月670万人、8月21日721万人、10月30日817万人というペースで急成長が続きました。

2013年5月のScratch 2.0登場までは、 2011年12月で95万人、2013年5月150万人、1年半でかかって60万人、月間3万人程度増加のゆっくりした推移でした。

2013年5月のScratch 2.0登場/ウェブサイト大改造以降、月間平均23万人増加など、明らかにペースが変わりました。ウェブブラウザでの動作によりインストール不要、またプロジェクトを簡単に公開でき、それぞれに掲示板機能がついたことが大きいです。

ただし、小学生のネット接続、という課題もあり、Scratch 2.0のオフライン版から徐々に始めています。一部の生徒(小4かな)は、Google翻訳を駆使して果敢に世界に出て行ってます。

 

ラズパイ2が出た。Scratchも速くなった。 

そして、2015年5月にRaspberry Pi「2」が出て、4コア、クロックアップ、メモリー倍増と、パフォーマンスが俄然上がり、おまけに、ScratchのベースとなっているSqueakVM仮想マシン)が根本的に書き直され、速くなりました。2015年9月にリリースされたRaspbian "Jessie"のタイミング。

 

パックマンのゲームがサンプルとして付いてきますが、公式ページの記述によると、初期版のScratchをラズパイ1でプレイすると、良くて秒速1コマ程度だったのが、ラズパイ1での最新版Scratchだと12から15コマ、ラズパイ2だと30コマ以上になり、ようやく使えるレベルになったとのこと。

Our favourite “scary big demo” is Andrew Oliver’s implementation of Pac-Man. The original release of Scratch on the Raspberry Pi Model B could manage almost one frame per second, at best. The same Model B with the latest Scratch system can manage about 12-15 frames per second, and on a Raspberry Pi 2 we can get a bit over 30, making a very playable Pac-Man.

パックマンに限って言えば、ハード的に2倍、ソフト的に15倍、ということです。

 ちなみに、そのパックマンはここにあります。お手元のパソコンでは、どんなもんですか?

https://github.com/raspberrypi/scratch/blob/master/Pacman%20for%20Scratch.sb?raw=true

 

実際に、ラズパイ2を使ってみた。

これはいけます!ただ、MacWindowsではなくてLinuxパソコンであること、依然として電源が弱い、電源が弱いので起動ディスクとして使われるSDカードが壊れやすいこと、など注意すべき点は残ります。

 

あとの課題は、ほとんどがLinuxパソコン由来のものに帰結しますが、日本語で扱えるか、バックアップの問題はないか、ウイルス対策はどうか、など、小学2年生が使うことを前提に考えるとまだまだ、懸念が残ります。

でも、中学生だと、ぜんぜんいける。 英語の勉強含め、まさにcode to learnです。

 

というわけで、最近は、ラズパイに再び、注目中。

 

ラズパイ2と一緒に買うと良いものを貼り付けてみよう。
そのうち、小学生にも使えるセッティングマニュアルを書きたい。
 

Samsung microSDHCカード 16GB SAMSUNG EVO Class10 UHS-I対応 MB-MP16DA/FFP

Samsung microSDHCカード 16GB SAMSUNG EVO Class10 UHS-I対応 MB-MP16DA/FFP

 

 

 

 

 

PFNのChainerで、ネコ写真をゴッホ風にしてみた。

f:id:naohiro2g:20160203220847p:plain

Deep Neural Networkを使って画像を好きな画風に変換できるプログラムの、Chainer実装が公開されています。

画風を変換するアルゴリズム | Preferred Research

結果もとても分かりやすく載っています。

 

だがしかし、なるほどねー、と分かった気になってないで自分でやってみないと、というわけで、「やってみた」シリーズ。2011年物のMacBook Airにインストール、ブンブンやりました。フーフーかな。

CPU、Intel Core i7 2GHz (Ivy Bridge)です。Intel HD Graphics 4000なので、残念ながらGPUライブラリは使えません。裏で回しながら通常業務をやっていましたが、全く支障なし。

 

インストール&実行自体も特に支障なく、非常に簡単。

1. githubでクローン。

 

2. インストール。

pip install chainer

 

3. Caffeのモデルを使うので、ダウンロード、同じディレクトリーに配置。

  https://gist.github.com/ksimonyan/211839e770f7b538e2d8#file-readme-md

  ページ内のこのファイルをゲットします。→ caffemodel_url:

  http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel

 

4. PIL (Python Imaging Library) が足りない!と言われたので、インストール。

pip install Pillow

 

 5. ディレクトリーを用意して、実行!

python chainer-gogh.py -m vgg -i sample_images/cat.png -s sample_images/style_0.png -o sample_images -g -1

 

6. 完全にノイズからスタート、10分ごとに、だんだんと細部までゴッホ風に表現されていきました。

元のネコ写真と画風のテンプレートとなるゴッホの名画「星月夜」

f:id:naohiro2g:20160203105927p:plain f:id:naohiro2g:20160203105936p:plain

MacBook Air にて9時間ちょっと計算した結果をGIFアニメにしてみました。

f:id:naohiro2g:20160203105912g:plain <---- GIFアニメです。

4時間ぐらいやると、大体、いい感じになりました。4時間経過時の物。

f:id:naohiro2g:20160203112104p:plain

 

テンプレート、対象写真、共に題材を選ぶ感じですが、いろいろ試してみたいです。

Chainer、一応入門できたので、しばらく食いついてみよう。