memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Scratch2Romoを動かしてみた

2年連続でやってきた小学校でのプログラミング授業

今年もぜひ開催させていただこうと準備を進めています。

昨年度まではコロコロ工作ブロックを使わせていただきました。

小学生には非常にウケがよかったのですが、小学校のネットワーク環境ではちょっと辛いところもありました。

今年は王道のScratchで授業を実施しようと考えています。

Scratchは何度か遊んだことがありましたが、授業では初めて。

情報学科の大学1年生が扱うには少々やさしすぎると思いますが、教えるとなると別です。

いかに楽しんで学んでもらうか?楽しませることを考えるのはエンジニアとして大切な要素と思いますし、将来メンターになったときに教えた経験は役に立つでしょう。。。という期待からです。何より教えることは楽しいはずということで。

ちなみに2年生の少人数授業では昨年に引き続きRomoを使ったiPhoneアプリ開発の基礎をテーマとして考えています。

で、色々と準備を進めていたときにタイトルのソフトウェアを発見しました。ScratchでRomoを制御できちゃう。。。凄いソフトウェアです。

Scratchは閉じた世界で動作するソフトウェアと思っていましたので、なぜそれでRomoが制御できちゃうのか理解できませんでした。オリジナルのブロックを開発したのかしら?と。そのあたりの詳しい話は作者の以下のブログに書かれていました。勉強になりました。

僕は発展途上技術者

開発されたのはずいぶん前のようですが知りませんでした。。。見かけたような記憶もあるのですが当時はScratchにあまり興味がなかったのでスルーしていたと思います。

github.com

古い記事を見るとこのソフトウェア(iPhoneアプリ)はストアで販売していたようですが最近オープンソースとして公開されるようになったようです。間違っていたらごめんなさい。

で、ダウンロードして動かしました。

GitHubのREADME.mdに導入手順が書かれていますのでiPhoneアプリ開発者の方なら迷うことは少ないと思いますが、少しつまづいたというか試行錯誤したところがありましたので情報まで以下書きます。

上記、GitHubよりScratch2Romo-master.zipをダウンロードしてきて解凍しXcodeのプロジェクトファイルを開きます。シミュレータではそのまま動作しますが、実機転送となるといくつか修正が必要です。

左から赤枠をクリックしていきます。ライセンス形態によると思いますがTeamというところが作者のものが設定されていますのでご自身のものに選択しなおします。そして緑枠のBuid Settingをクリックします。

f:id:ke_takahashi:20150910181958p:plain

一番下のPRODUCT_BUNDLE_IDENTIFIERをご自身のものに書き換えます。

f:id:ke_takahashi:20150910182146p:plain

続いて、ちょっと上の方にスクロールしていくとCode Signingという欄がありますので、この赤枠のところを自分のものに選び直します。実機登録したIDがたぶん選択肢にあると思います。

f:id:ke_takahashi:20150910182233p:plain

あとはscratch2romoTestsのターゲットも同様にすればいいのですが、たぶん使わないのでターゲットごと削除(DELETE)してしまっていいと思います。ダメかなぁ?

f:id:ke_takahashi:20150910182337p:plain

以上でビルドは成功するはずなのでMaciPhoneを接続してアプリ転送します。転送が終わったらRomoに接続し、iPhoneのアプリ上で、MacIPアドレスを入力しConnectを押します。

Connectを押す前にScratch1.4をこちらからダンロードしてMacにインストールして起動しましょう。Scratchを起動したらScratch2Romo-masterフォルダ内にScratch Projectsというフォルダがありますので、その中のsampleを開きます。開くときはScratchのファイルメニューから開くを選択すればいいようです。

で、iPhoneMacの接続が完了したら(iPhoneに転送したアプリでIPアドレスを入力してConnectを押してConnect to 192.168...といった感じにiPhoneアプリに表示されたら)、あとはカーソルキーを押してRomoが動くか確認してください。

ちなみに。。。カーソルキー上(前進)、カーソルキー下(後進)を押しても動きませんでした。私の環境固有の問題かもしれません。

iPhoneアプリ画面をみるとspeedが0と表示されていました。

Romoプログラミングはしたことがあったのでspeedが0では進まないことはわかりました。

コード内でspeedの初期値は30を設定しているのですが、Scratchに接続した途端に0になります。

以下のようにScratchのサンプルを書き換えて動くようになりました。

これ

f:id:ke_takahashi:20150910183403p:plain

f:id:ke_takahashi:20150910183415p:plain

しました。

あまり意識してきませんでしたが、Scratch教育用言語としてはもちろん、ここで使われている遠隔センサー接続を利用すると様々な外部機器(RasPi、Arduino、Kiect、LeapMotionなど)とも接続できるようで、研究用のプロトタイピングツールの選択肢の一つとしても活用できるような気もしています。

まずはやってみないとわかりませんので後期にいろいろと学生さんと一緒にチャレンジしてみたいと思います。

では!