情報処理学会 インタラクション 2014
IPSJ Interaction 2014

C3-4
2014/3/1

物質プログラミング-物質によるプログラムの可視化と開発環境の制作八城 朋仁1,a)

迎山 和司1,b)

概要：コンピュータの普及に伴い，プログラミングは一部の専門職の行為だけではなく，広く一般に行われるようになってきた. そのため，使いやすいプログラミング言語が必要となってきている.Scratch というプログラミング言語は直感的に手でブロックを組み立てるようにプログラミングできるため初心者にも簡単に使いやすい. しかし，直接ブロックを手で組み立てるわけではない. そこで，Scratch のブロックを実体のあるブロックとして再現し，ブロックを組み合わせることでプログラミングができる環境の制作を行った. また，制作したプログラミング環境をイベントに出展し，体験者の観察を行った.
キーワード：Scratch，ビジュアルプログラミング，USB カメラ

Material Programming-a Visual Programming Development Environment With MaterialYashiro Tomohito1,a)Mukaiyama Kazushi1,b)

Abstract: Increasing popularization of computers, programming is used by not only professionals but also
ordinal people. Therefore, we need more easy-to-use programming environment rapidly. Scratch is a good
example because beginners can make a program easier such as building blocks on screen. However, Scratch
will not be able to assemble the block directly by hand. So, we made real blocks of Scratch and also made a
total programming development environment using with real blocks. Additionally, we observed people who
use this environment in an exhibition.
Keywords: Scratch, Visual programming, USB camera

1. はじめに職の行為だけではなく，広く一般に行われるようになってきた．その例として，大学の情報教育の授業の一環としてコンピュータが一般に普及すると共に，より使いやすいプログラミングを取り入れている事例がある [1]．そのたプログラミング言語が求められるようになっている．そこめ，専門知識の無い人々でも使いやすいプログラミング言で，本研究ではプログラムの要素を実体のあるブロックと語が必要となってきている．

することで，より使いやすいプログラミング環境の制作を目指す．

使いやすいプログラミング言語として，MIT メディアラボが開発した低年齢向けプログラミング教育のためのコンピュータは PC，タブレット端末，スマートフォン

Scratch というものがある．Scratch のコンセプトのひとつなどと挙げられるように，より身近な形で一般に普及してとして，直感的に手でブロックを組み立てるようにプログきている．その普及に伴い，プログラミングは一部の専門ラミングできるため，初心者にも簡単に使いやすいと言う

1a)b)

公立はこだて未来大学大学院
Future University Hakodateg2113032@fun.ac.jp
kazushi@fun.ac.jp© 2014 Information Processing Society of Japan点がある [2]．しかし，あくまでもマウスによる入力を主としており，ブロックを直接手で組み合わせるわけではない．
そこで，本研究では Scratch の中でプログラムの要素を647

表している仮想のブロックを，実体のあるブロックとして再現することにより，より使いやすいプログラミング環境の制作を目指した．

2. 関連研究
ここでは，使いやすいプログラミング言語の研究として，上述した Scratch と，アルゴブロックについて述べる．

Scratch とは PC の画面上で絵を配置し，その絵に対してプログラミングを行うことでアニメーションなどを作成できるプログラミング言語である．プログラミングは，プログラムの要素を表した仮想的なブロックを組み合わせることで行っていくことができる [2]．
アルゴブロックとは，鈴木らによって開発された協同プ
ログラミング学習の支援を目的とするブロック型プログラ

図 1

物質プログラミング

Fig. 1 Material programming

ム言語である．このシステムでは，実体をもったブロックを手で接続することによってディスプレイ画面上の潜水艦の動きをコントロールするプログラムを作成することができる．鈴木らは，アルゴブロックによってプログラミングという本来個人的な作業が共同作業の場に引き出され，結果として学習者は，協同でプログラム言語を操作し，作業の過程を共有し，作業について語り合うことができると述べている [3]．

3. 物質プログラミング
3.1 概要物質プログラミングは，実体のあるブロックを組み合わせることによってプログラミングを行うことができるシステムである (図 1)．このシステムでは，車型ロボット，または PC の画面上の車を操作するためのプログラムを構築

図 2 システム接続図

Fig. 2 System compornents

することができる．実体のあるブロックは，Scratch の仮想的なブロックを参考に制作した．ブロックはそれぞれプロそして車型ロボットを使用する (図 2)．USB 赤外線カメグラムの要素を表している．以降，これらを命令ブロック

ラには，フォーカスと絞りが手動で調整可能なレンズを取と呼ぶ．PC の画面には車が描画されており，命令ブロッり付けている．システムの事前準備として，このレンズのクによって構築されたプログラムを実行すると PC はプロ調整が必要である．赤外線ライトは USB 赤外線カメラのグラムに従い，車を移動させる．PC はまた，Bluetooth 通照明として用いる．車型ロボットには，うおーるぼっと R4

信によって車型ロボットもプログラムに従って移動させを用いる [4]．うおーるぼっと R4 には Bluetooth USB ドる．プログラムの実行は，PC に付属しているポインティングルが取り付けられており，PC との Bluetooth 通信にングデバイスを用いた実行ボタンによって行われる．

よってデータの送受信が行なわれている．

本システムでは，命令ブロックの組み合わせが，画面上の車や車型ロボットを操作するプログラムとなる．命令ブ

3.3 命令ブロック

ロックの組み合わせは，USB 赤外線カメラによって PC

プログラムの構築に用いる命令ブロックを４色の不透明に入力される画像から認識される．実行ボタンが押されるなカラーアクリル板を用いて制作した．命令ブロックにはと，PC は認識した命令ブロックの組み合わせから，プロ車の動きを操作するための「move」「turn（right）」「turnグラムを構築する．そして，構築されたプログラムが実行（left）」，操作を繰り返すための「repeat begin」「repeatされる．

end」，操作を条件分岐するための「if begin」「if end」「else」「more than」「less than」，数を表す「変数」の 11 種類があ3.2 仕様本システムでは，USB 赤外線カメラ，赤外線ライト，PC，© 2014 Information Processing Society of Japanる (図 3)．命令ブロックの形や色そして色によるグループ分けの仕方は Scratch を参考にした．命令ブロックには凹648

プログラムの構築は，命令ブロックの情報のソート，「変数」ブロックから値への変換，操作を繰り返す部分の展開の順番で行われる．まず，命令ブロックの情報は，USB 赤外線カメラで撮影した際，より上部に写っていた順番にソートされる．次に，命令ブロックの組み合わせの中に「変数」ブロックがあった場合，「変数」ブロックのマーカの角度と，その他の命令ブロックのマーカの角度から，その「変数」ブロックのダイアルが示す値を計算し，その値を保持する．最後に「if begin」ブロック，「if end」ブロックを検索し，繰り返しによって省略されている命令を展開する.
展開は，「if begin」ブロックの情報の前にある「変数」 ブロックの値を繰り返す回数と見なして行う.「if begin」ブロックと「if end」ブロックの情報は展開が終わったときに命令ブロックの情報の並びから削除する．展開は「if end」ブロックの情報が無くなるまで行う．
図 3 命令ブロック

プログラムの実行は，ソートされた命令ブロックの情報

Fig. 3 Command blocksに従って行われる．実行される命令は，それぞれの命令ブ
ロックの情報の前に並んでいる「変数」 ブロックの示す値部，凸部があり，それぞれの裏側には磁石を付け，ブロッによって度合が変化する.「move」ブロックならば，車の移ク同士を近づけると凹部と凸部が数珠つなぎで連結する様動距離が変化する.「turn(right)」ブロック，「turn(left)」ブになっている．また，命令ブロックの組み合わせを認識す

ロックならば，車の向きの回転角度が変化する.「if begin」

るために，それぞれの命令ブロックには固有のマーカが貼

ブロックは自身のダイアルの値と前に並んでいる「変数」り付けられている．加えて，「if begin」ブロック，「変数」ブロックの示す値を比較し，条件分岐を行う．比較は「変ブロックは他のブロックと異なり，０から 30 までの目盛が数」ブロックの示す値 (比較演算子) 「if begin」ブロック

記されたダイヤルが付いている．ダイヤルが示す値によっの示す値，という形で行われる．比較演算子は，「if begin」て，命令ブロックを組み合わせた時のプログラムの挙動がブロックの直後に「more than」ブロック，または「less異なる．例えば，「変数」ブロックと「move」ブロックをthan」ブロックを組み合わせることで指定される．プログ

組み合わせた時，「変数」ブロックの示す値は車の移動距離

ラムの実行が行われると，実行された命令に合わせて車のとなる．

座標と角度を再計算し，再描画する. この時，Bluetooth 通信によってうおーるぼっと R4 の制御も行われる．

3.4 命令ブロックの認識方法

うおーるぼっと R4 との Bluetooth 通信は，「move」ブ

命令ブロックの認識は USB 赤外線カメラと PC，そしてロック，「turn(right)」ブロック，「turn(left)」ブロックの命令ブロックに貼り付けられたマーカによって行われる．

３種類の命令が実行された時のみ行う．PC からうおーる

PC は USB 赤外線カメラから入力された画像に対し，画像

ぼっと R4 へ送信される情報は，命令ブロックの種類と，処理を行いマーカを検出する．そして，PC は検出された速度である．速度は「変数」ブロックが示す値を変換してマーカから命令ブロックの組み合わせの情報を抽出する．

求められる．うおーるぼっと R4 は受信した命令ブロック

マーカの検出は，光学的に行われるため，周囲の環境光の種類からタイヤの回転方向を決定し，速度をタイヤの回の影響を受けやすい．そこで，マーカの検出率を安定させるために，USB 赤外線カメラの照明として赤外線ライトを用いる．また，マーカの素材に再帰性反射材を用いる．再転速度として動作する．

4. 展示

帰性反射材には入射光を光源の方向に戻す特性がある．そ物質プログラミングを展示し，体験者から物質プログラのため，周囲の環境光からの影響を軽減し，赤外線ライトミングの評価を得た．展示は，2013 年 5 月 19 日に行われたの効果を高めることができる．

Scratch Day 2013 in Tokyo と 2013 年 11 月４日から 2013年 11 月５日にかけて行われた Maker Faire Tokyo 2013 の3.5 プログラムの構築と実行２つのイベントで行なった．

命令ブロックの組み合わせの情報は，PC 内でプログラムの構築を行う際に使用される．プログラムの構築，実行の手順をフローチャートとして示す (図 4)．

© 2014 Information Processing Society of Japan

4.1 展示内容物質プログラミングの展示内容は，２つのイベントで異649

図 4

図 5

フローチャート

体験者の様子Fig. 5 People who use this environment

Fig. 4 Flowchart

きつける対象だったと考えられる．これは，命令ブロックなるものだった．

Scratch Day 2013 in Tokyo では通常の USB カメラ，PC，命令ブロックを使用し，USB 赤外線カメラ，赤外線ライト，そして，うおーるぼっと R4 は使用しなかった．また，「if begin」ブロック，「if end」ブロック，「else」ブロック，の形や色が要因として考えられる．その他にも，実体のブロックに対して可能な身体的動作が多かったことも考えられる．

6. 今後の課題「more than」ブロック，「less than」ブロックは無かった．

システム上の課題として，命令ブロックの認識率が低い

Maker Faire Tokyo 2013 では，3.2 章で示した内容で展ことが挙げられる．カメラは周辺の環境からの影響を受け示を行なった．しかし，当日の展示会場では電波を使う展やすいため，今後はカメラを用いない命令ブロックの認識示が多く，通信状態が良くなかったため，うおーるぼっと方法を考える必要がある．

R4 と PC 間の通信が出来なかった．そのため，体験者には PC の画面上の車の操作のみを体験させた．

また，アクリルを使った実体のブロックは体験者の行動を誘発しやすいことが分かった．特に年齢の低い体験者の興味を惹きつけやすい．これらの理由としてはブロックの4.2 観察結果

色，形，そして可能な身体的動作の多さなど様々な要因が命令ブロックによって画面上の車の動きが変わることを考えられるため，実験によって明らかにする必要がある．

確認した体験者から「面白い」，「楽しい」という 意見を得

今後は，命令ブロックの認識方法の再検討と，システムた. 体験者が自ら「変数」ブロックが示す数を変化させたの評価実験の計画と実施を行っていく．また，本システム

り，命令ブロックを取り替えてプログラムを再度実行するの有用性を確かめるために日常的な場面への応用を考察し様子が見られた. 特に，年齢の低い体験者ほど，この傾向ていきたい．

が強く見られた (図 5)．また，年齢の低い体験者の中にはシステムの説明を聞かず，さらにプログラムとして実行せ参考文献ずとも，何度も命令ブロックを組み合わせたり，重ねたり，[1]裏返したりする人もいた．
[2]

5. まとめ[3]

本研究では，プログラムの要素を実体のあるブロックとすることで，より使いやすいプログラミング環境の制作を行った．また，制作した環境をイベントで展示した．展示[4]

大西建輔：プログラミング，何をどう教えているか 連載開始にあたって，情報処理, Vol. 51, No.10, p. 1341, 2010.
RESNICK M, et al: Programming for All, Communications of the ACM, Vol. 52, No. 11, pp. 60-67, 2009.
加藤浩, 有元典文: 認知的道具のデザイン, 金子書房, 東京, pp. 72-73.
勝 純 一：う お ー る ぼ っ と サ ポ ー ト ペ ー ジ ，入手 先 hhttp://jksoft.cocolog-nifty.com/blog/wllbot.htmli(2013.11.20).

では，実体のブロックを用いることで，プログラミングを行う上で必要であるプログラムの動作を確認しながらプログラムの構築を行う試行錯誤を引き出せた. また，シス
テムの説明を聞かず，さらにプログラムとして実行せずとも，何度も命令ブロックを組み合わせたりする体験者がいたことから，命令ブロック自体が体験者にとって興味を惹© 2014 Information Processing Society of Japan

650