僕は発展途上技術者

Sphero を Scratch(スクラッチ)から動かせるようにしたのでこどもでもプログラミングできるよ

このエントリーは Sphero Advent Calendar 2013 の3日目のエントリーです。

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089


» ロボティックボール Sphero 2.0 が楽しすぎる

で予告したように、Sphero を Scratch(スクラッチ)から動かす方法を紹介したいと思います。

スクラッチは MIT が開発した教育用プログラミング言語で、ブロックを並べることで、こどもやプログラミング経験がない大人でも楽しくプログラミングできます。こども用と侮るなかれ、マリオやテトリス、頑張ればドラクエライクなゲームだって作ることができます。

スクラッチの Remote Sensor Protocol という仕組みを使うことで TCP ポートを経由して外部との接続が可能なことを利用して、Sphero とつなげるプログラムを書いてみました。

ちょうど、前日の Sphero Advent Calendar の2日目のエントリー、

» Sphero gem で Sphero を操作してみる

で紹介されている Ruby の Sphero gem を使います。

動かした環境は MacOSX 10.8.5 です。スクラッチは 1.4 を使います。

まず hybridgroup-serialport gem と sphero gem をインストールします。


% gem install hybridgroup-serialport
% gem install sphero


あるいは


% sudo gem install hybridgroup-serialport
% sudo gem install sphero


次に、コンピューターと Sphero を Bluetooth で接続します。これは通常の Bluetooth ペアリング設定です。Bluetooth 設定アシスタントより Sphero に接続しましょう。

このあたりは、Sphero gem で Sphero を操作してみるのエントリーに詳しく載っています。

次にスクラッチと Sphero とをつなぐ

» scratch2sphero


をインストールします。


git clone git@github.com:champierre/scratch2sphero.git


インストールできたら、scratch2sphero を起動する前にスクラッチを起動しておきます。Scratch 1.4 をインストールしていない場合は、Scratch 1.4 のダウンロードページより MacOS X 版をダウンロードおよびインストールします。

スクラッチを起動したら、「調べる」カテゴリーを選び、「スライダーセンサーの値」ブロックの上で右クリックして、「遠隔センサー接続を有効にする」を選んで「遠隔センサ接続」を有効にしておきます。



いよいよ scratch2sphero を起動します。


% ruby scratch2sphero.rb


このとき


serialport.rb:22:in `create': Resource busy


というエラーが出るかもしれませんが、あきらめず何度かやり直してみます。

Sphero が点滅から青く光るようになれば接続成功です。

スクラッチの画面で、「制御」カテゴリーから『「◯◯」を送る』ブロックを選び、真ん中のスクリプトエリアにドラッグして置きます。



scratch2sphero と接続したことによって backward/forward/left/right のメッセージを送ることができるようになっているので、どれかを選び、ブロックをクリックしてメッセージを送ってみましょう。Sphero を動かすことができます。

このメッセージが TCP ポートの 42001 番を経由して Scratch2Sphero に渡され、Scratch2Sphero が sphero gem を使って Sphero を動かしています。

また、スクラッチで変数「speed」(0 から 255 まで)と「initial_heading」(0 から 359 まで)に値をセットすることで、それぞれ、Sphero のスピードと Sphero の forward を受け取った時に進むデフォルトの方向を変えることができます。各変数は「変数」カテゴリーで「新しい変数を作る」をクリックすることで作ることができます。

これらを組み合わせ、たとえば Sphero をジグザグに進ませるプログラムはこんな感じで書けます。



こどもでも Sphero をプログラミングできるようになる、ということが大げさでない証拠に、小6息子が Sphero を動かしている模様を動画で撮りました。



Sphero についてもっと知りたい場合は、こちらを参考に。

» ロボティックボール Sphero 2.0 が楽しすぎる

» ころころ可愛い♡なのに高性能!Orbotix Sphero 2.0 が面白い #sphero #gosphero

Sphero Advent Calendar 2013は明日以降まだ埋まっていないところをみると、日本ではまだあまり注目されていないんでしょうか?

以下の Amazon リンクから買えるので、ぜひ Sphero 2.0 を手に入れて Advent Calendar にブログ記事を書きましょう :-)

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Raspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Twitter @jishiha

最近のエントリー

アーカイブ