2016年6月7日火曜日

Raspberry Pi 3でscratch2mipを使う


みなさん、こんにちは


Scratch Day in Tokyo 2016には来てくれたかな?
毎日がScratch Day!な日々になりますように。

今回のエントリは

Raspberry Pi 3でscratch2mipを使う

ドキュメントエントリになります

「scratch2mipってなに?」というのは以下を読み進めながらリンクを見てもらうと分かると思うので興味がある人はリンク先も参照してみてください。


WowWee社の倒立振り子ロボット MiPをScratchで制御するために、jishihaさんが作ったScratchX用ヘルパーアプリのscratch2mipをRaspberry Pi 3で使う方法を説明します。

この文章は阿部和広さん(@abee2)が公開されているWindows版のドキュメントをベースとしてまとめてあります(一部、構成を変更しました)。ライセンスはオリジナルに従いCC BY-SA 4.0で公開します。

必要なモノ
  1. 必要なハードウェア
  2. 必要なソフトウェア
  • scratch2mip
    • scratch2mip_helper.zipをダウンロードして適当な場所に展開(設定手順で詳細を解説)。ここでは以下として説明する。 /home/pi/work/scratch2mip_helper
  • Node.js
    • 導入済みのNode.jsは削除(※)した上で、ここからダウンロードしてdpkgコマンドでインストール。ここではv4.2.1として説明する
    $ sudo apt-get remove --purge nodejs
    $ wget http://node-arm.herokuapp.com/node_latest_armhf.deb
    $ sudo dpkg -i node_latest_armhf.deb
     ※nodejs v0.10.29が必要な場合は削除対象パッケージをnodejs-legacyとすることでも問題ありません(追記)。
    • Chromium + Pepper Flash
          Chromium+PepperFlashのインストールを行う。以下をLXTerminalから実行
           $ curl https://naominix.github.io/pepperinstall.sh | sh

      • libudev-dev (※2016/07/14追記)
            npm installでこのパッケージが導入されていないとコケるので以下を実行
             $ sudo apt-get install libudev-dev

      以上の準備が整ったら以下の通り設定していく。

      設定の手順

      1.ヘルパーアプリのインストール
      LXTerminalを開き、以下のコマンドを入力する。ビルドとインストールにはしばらく時間がかかる
      $ cd
      $ mkdir work
      $ cd work
      $ wget https://champierre.github.com/scratch2mip/scratch2mip_helper.zip
      $ unzip scratch2mip_helper.zip
      $ cd scratch2mip_helper
      $ npm install

      2.ヘルパーアプリの実行
             1.LXTerminalに以下のコマンドを入力する
         $ sudo node scratch2mip_helper.js

           2.MiPの電源スイッチを入れると、たとえば、以下のように表示されるので、この場合は「0」を入力してエンターキーを押す
         0: WowWee-MiP-27271
         which one: 
          3. 以下のように表示され、MiPの胸のインジケーターが緑に変われば接続成功
         Server listening on: http://localhost:8080
      3.ScratchXの起動
         1. Raspberry Pi 3のChromium Webブラウザーで、以下のURLを開く
         2. 警告ダイアログが表示されたら、「I understand, continue」をクリック
         3. 「その他」カテゴリーの「MiP:」で始まるブロックを使ってプログラムを組む。命令の実行には時間がかかるので、適宜「~秒待つ」を入れること



      いかがでしたか

      倒立振り子ロボットMiPをRaspberry Pi 3から
      制御できたでしょうか

      ScratchXを使って楽しくロボットプログラミングに
      チャレンジしてみてください

      追記(2016/06/19)

      ちなみにこの設定を行ったRaspberry Pi 3では

      を使用してRollingSpider
      飛ばすことに成功しているので
      持っている人は試してみましょう

      なお、飛ばす際には安全対策を必ず行ってくださいね



      2 件のコメント:

      1. 前に、マインクラフトでもお世話になった名古屋の松成です。今回、mipを買って、iPad miniでもうまく認識せず、
        今回、ラズパイ3でやってみましたが、うまく認識しませんでした。mipの不良品何かなとも思いますが、ひとつ、
        npm install 時に赤い字でWARMというようなのが出ていました。

        なにか、心当たりがあったら教えて下さい。

        返信削除
        返信
        1. 恐らくですが、npm installする際に以下のパッケージが無くて必要なファイルがBuild出来ないというようなエラーが表示されていないでしょうか。

          libudev.h

          この場合は

          sudo apt-get install libudev-dev

          をインストールしてから再度npm installしてみていただけますでしょうか

          NOOBS1.9.2を再インストールして確認してみたところ、この作業は必須のようなので手順にも追記しました。

          ご指摘感謝します。

          削除