『わっぜかブートキャンプ』開催

鹿児島県霧島市にて、来たる03/27(火)から二泊三日でプログラミング学習合宿を開催します。詳細はこちらから

Raspberry Pi 3を組み込んだpi-topと、その上で動作するScratchを教材に使います。二日目は終日プログラミング漬けです。ほんの数時間PCを触るだけの「プログラミング体験」とは一線を画した内容になります。

WiFi環境は協賛のKpnetworks(株)から提供されます。

2018/02/18追記: フライヤーを画像を最新版に差し替えました。

2018/02/19追記: 鹿児島県教育委員会からもご後援頂けることになりましたので、フライヤーを更新しました。

プログラミング学習合宿開催

来月末に鹿児島県霧島市の霧島自然ふれあいセンターにて、中学1年生を対象としたプログラミング学習の二泊三日の合宿を開催します。詳細は後日、FacebookやTwitterでお知らせする予定です。

教材はRaspberry Pi 3を組み込んだSTEM教育用のノートPC、pi-topです。UIが英語のままの部分が多いので、pi-topのサポートにi18nの手伝いを申し出ています。

pi-top v2評価中 GUI編

pi-topを起動するとスプラッシュイメージが表示された後に、ランチャー (pi-topDASHBOARD)が表示されます。最初はウィザードに従って設定していくことになるのですが、どうもpi-topのツール類が英語とスペイン語にしか対応していないようで、ウィザードでは日本語を設定することができず、ひたすら英語です。

英語に苦手意識のない高校生なら問題なく使いこなせそうですが、このままでは小学生どころか中学生が使うのも難しいかも知れません。

ランチャーは大きく3つのペインに分かれています;

  • 左: pi-topCODERとCEEDuniverse
  • 中: アプリのランチャー (デスクトップ、Chromium等)
  • 右: 備忘メモ

ここでランチャーのデスクトップボタンを押すとLXDEに切り替わります。こちらの画面でRaspberry Piの設定ツールを起動して、言語やタイムゾーン、WiFiの国コードを設定しておきましょう。LXDEのメニューを日本語化できますが、pi-topDASHBOARDの方は英語のままです。

pi-topCODERはプログラミングのチュートリアルアプリです。言語や難易度などを指定してワークシートを検索し、そのワークシートに従ってプログラミングを学習できる、というツールです。ここでinventor’s kitの使い方も学べるようです。

CEEDuniverseはプログラミングの概念を理解できるミニゲームです。バタ臭いキャラクタデザインなので日本人受けしにくいかも知れません。

LXDEのメニューからはScratchのオフラインエディタやMathematicaといったRaspberry Pi定番のプログラミング環境の他、JavaやPythonのIDEを使うこともできます。

pi-topDASHBOARDの設定画面からアクセスできるpi-topCLASSROOMを使ってみたいのですが、使い方が不明です。pi-topのサポートに問い合わせを投げていますが、今のところはまだ回答がありません。

pi-top v2評価中 H/W編

pi-top website

Raspberry Pi 3を内蔵できるモジュール式のSTEM教育用ノートPC、pi-top v2を入手して評価しています。定価284.99USD, 送料無料、通関手数料と税金で3,000円、RasPi3と合わせて総計40,000円ほどです。

このpi-topの特徴として、表題の画像のようにキーボードを手前にスライドでき、そこからRasPi3や拡張モジュールにアクセスできるようになっています。つまり、ノートPCのままでGPIO等にアクセスしてLチカできたりする訳です。専用の拡張モジュールは、マグネット式のレールに簡単に取り付けることができます。

ハードウェアスペック的には

  • 14インチのフルHD液晶
  • 英語配列のキーボード (スライド式)
  • タッチパッド (左右クリック)
  • バッテリー内蔵、電源アダプタ付属
  • ヒートシンク兼ブリッジ、モジュール用ハブ、モジュール取り付け用レール
  • モジュール (inventor’s kit) 付属
  • ケンジントンロック用の穴

という感じです。サイズは一昔前のビジネス用ノートPCぐらいです。蛍光グリーンの筐体は樹脂製で加工精度もあまり高くない感じで、正直ちょっと安っぽい質感ですが、子どもがハードにいじくり倒すことを考えれば、このぐらいでちょうどよいのかも知れません。

セットアップは非常に簡単でしたが、Raspberry Pi 3を取り付ける際に多少強引にネジを回して固定しなければならないポイントがあったりしました。おそらく加工精度の問題でしょう。

その他、気になるポイントとしては、タッチパッドのクリック時にカーソルが動いてしまうことでしょうか。キーボードを叩くと微妙にキシキシ言ったり、Raspberry Piが取り付けられるあたりが他に比べて暖かくなったりすることは瑣末ですが、カーソルが不意に動くのは結構ストレスを感じます。

謹賀新年

明けましておめでとうございます。今年もよろしくお願いします。

昨年はインダストリー向けのIoTをメインに取り組んで参りましたが、今年はまた別分野への展開も検討中です。今年も前向きに様々な分野に取り組んで参りたいと思います。

Google AIY Voice Kitが来た

Google AIY Voice Kit

Rasyberry Pi 3に繋いで音声認識で遊べるGoogle AIY Voice KitPimoroniで受注していたので注文し、初期入荷分4,000台のうちの一つを無事に入手しました。まだ箱を空けて中身の眺めただけで、組み立てていません。同梱されていた小冊子がマニュアルになっており、これに従って組み立てればよさそうです。

parcel from PimoroniPimoroniから届いた小包には「海賊ロボ忍者さる」の文字列が。どうも海外で流行ってる新種のジャンケンの手のようで、これらの頭文字からPimoroniは名付けられたとか何とか。

ちなみにPimoroniにはPi Zero Wの在庫もあったので、ついでに一つ購入しておきました。

なお、国内では今月末にKSYから発売になるようです。

Movidius NCSをTinker Boardから使う

Movidius NCSはRaspberry Pi (以下、RasPi)にも対応しています。RasPiのアーキテクチャはarmhf、OSはDebianベースのRaspbianです。どこかに似たような環境がありませんでしたか? そう、ASUS Tinker Boardです。Tinker Boardもarmhfアーキテクチャ、DebianベースのTinker OSで動作します。これはTinker Boardで動かしてみる価値がありそうです。

ということで試行錯誤してみた結果、動作させることができましたので情報を整理しておきます。キーポイントは

  • TinkerOSのPython3.5.3は互換性がなくNG
  • python3-setuptools, python3-wheelを事前に手動インストール
  • armhf向けの再配布用debパッケージを手動インストール

あたりです。

※注) 以下の方法はTinker Board上でMovidius NCSが安定して動作することを保証するものではありませんのでご注意下さい。

Tinker Boardはセットアップ済みとします。まずはapt lineを編集してベースをStretch (stable)からBuster (testing)へ変更し、システムを更新します。

$ sudo vi /etc/apt/sources.list
deb http://http.debian.net/debian/ testing main contrib non-free
#deb-src http://http.debian.net/debian/ stretch main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free
deb http://http.debian.net/debian/ buster-updates main contrib non-free
#deb-src http://http.debian.net/debian/ stretch-updates main contrib non-free

$ sudo apt update
$ sudo apt upgrade
$ sudo apt clean

src行もコメントアウトしてあります。おそらくaptコマンドで -t オプション指定してpython3だけtestingにすれば問題はないと思いますが、私は普段使いの環境もtestingなのでここではシステム全体をtestingにしています。この後に、

$ sudo apt install python3-setuptools python3-wheel

しておきます。この二つがインストールされていないと、SDKのインストール時にエラーになったりします (wheelの方はインストールしなくても大丈夫なようですが念の為)。

システムの更新が済んだら、SDKをインストールしていきます。まずはToolkitから。こちらはUbuntu環境と同様に展開してbin/setup.shを実行すればOKですが、だいぶ時間が掛かります。CPUをぶん回すためか、Tinker Boardもだいぶ熱くなりますのでご注意を。

次にAPIのインストールですが、その前にarmhf向けの再配布用debパッケージをインストールします。APIのtar.gzを展開したncapi/redist直下にもdebパッケージファイルがありますが、ここではさらにその下のpi_jessieディレクトリ以下にあるdebパッケージをインストールします。

$ sudo dpkg -i ncapi/redist/pi_jessie/*_armhf.deb

なお、ncapi/redist直下のpython3-mvncパッケージはpython3.5用、pi_jessie以下にある同名のパッケージはpython3.4用のようです。TinkerOSはpython3.5なので、pi_jessie以下のパッケージはインストールする必要はありません (all = 全アーキテクチャ向けなので前者で問題ありません)。

一旦ターミナルを開き直してToolkitが設定した環境変数を反映させてからAPIをインストールします。debパッケージをインストールしたら、ncapi/setup.shでAPIをインストールします。caffeモデルのDLにはしばらく時間が掛かりますが、その後のコンパイルはすぐ済みます。

最後にbin/data/dlnets.shを実行してcaffeのネットワークモデルをDLしたら、さっそくMovidius NCSをTinker Boardに挿してみましょう。OSの再起動は不要でした。

$ sudo dmesg | grep MA2X5X
[...] usb 1-1.4: Product: Movidius MA2X5X

OSから認識されているようですので、example00〜03を実行してみましょう。

$ cd ~/workspace/mvncsdk/bin/
$ make example00
$ make example01
$ make example02
$ make example03

エラー等も発生せず、問題なく実行できるかと思います。

Movidius NCSをセットアップする

Movidius NCS
Movidius Neural Compute Stick

intelに買収されたMovidius社から、USB接続型の機械学習(ディープラーニング)用アクセラレータ、Movidius Neural Compute Stick (以下、Movidius NCS)が発売されました。RSコンポーネンツMouserから入手できますが、現時点では在庫切れのようです。初期の入荷数が少なかったようですが無事に入手できましたので、環境をセットアップしてみました。

推奨環境はネイティブなUbuntu 16.04 amd64ですが、そんなに都合よく環境は用意できませんので、WIndows 7上のVMWare 12にUbuntuをインストールしました。

※注) 以下の方法はVMWare上のUbuntuでMovidius NCSが安定して動作することを保証するものではありませんのでご注意下さい。

Ubuntuのインストールが完了したらログインし、Movidius NCS SDKをセットアップします。手順はGetting Startedに書かれている通りに進めれば何の問題もありません。マシンパワーやネットワークの速度によっては、pythonモジュールのインストールやcaffeモデルのDL等に時間が掛かることがあります。

引っ掛かる可能性のあるポイントは、SDKのToolkitインストール後に環境変数を反映させるためにログアウト(あるいはターミナル等の立ち上げ直し)が必要なことです。これをせずにAPIをセットアップしようとすると失敗します。

SDK (ToolkitとAPI)のセットアップが完了したら、PCにMovidius NCSをUSBポートに差し込んでみましょう。認識されたかどうか確認してみます。

$ sudo dmesg | grep MA2
[...] usb 3-2: Product: Movidius MA2X5X

こんな感じの文字列が出力されれば認識されてるのでOK、と言いたいところなのですが、udevを使ってデバイスファイルのパーミッションを設定したりしているようなので、Ubuntuを一度再起動した方が確実かも知れません。

認識されない場合、VMWareのリムーバブルデバイスの設定でMovidius NCSが仮想マシンに接続されているか確認して下さい。接続されていない場合は接続して上記の手順で再度確認してみて下さい。

Movidius NCSが認識されていることを確認できたら、動作確認してみましょう。Getting Startedにもあるように、

$ cd ~/workspace/mvncsdk/bin
$ make example00
$ make example01
$ make example02
$ make example03

のexample00から03までを動かしてみて下さい。うまくいけばMovidiusを動作させることができます。私のVMWare環境では動作したりしなかったりで、記事執筆時点では安定して動作させることができていません。

追記: ネイティブなDebian testing (buster) amd64はサポート外ですが安定して動作することを確認しました。VMWareやVirtualBox上で動作させるのは必要以上に労力が必要となりますので、ネイティブ環境を用意されることをお奨めします。