中高生やプログラミング初心者、プログラミングに苦手意識のある学生向けに、飛行船を用いたロボット制御のソフトウェア開発の教育を行うための教材を開発した。
また、この教材は生徒が数名程度でチームを作り、チーム開発を行うことを前提としている。
産業界で必要とされている組込みソフトウェア開発への興味や意欲、チームでの開発を行うことで身につくコミュニケーション能力を楽しみながら養い、身のまわりにあるコンピュータやシステムについて考えるきっかけを提供する。
ハードウェアは、基地局PC、地上MPU(Micro Processing Unit、図1.参照)、2つ合わせて地上局という。飛行船はバルーンと(図2.参照)、機体搭載MPUから成っている。基地局PCからの入力は地上MPUを通して無線で機体搭載MPUに送信され、飛行船に取り付けられたプロペラが回転し、飛行船が動作する[2]。
飛行船は、ヘリウムガスによって浮力を得て浮かんでいるが、上昇・下降・前進や旋回などの動作はプロペラの回転によって推力を得て変化する。飛行船には、左プロペラ、上下プロペラ、右プロペラの3つのプロペラが取り付けられている(図3.参照)。実際の授業では、飛行船を操作するためのハードウェア環境は既に用意されており、生徒が直接手を加えることはないことを前提としている。
開発言語には、日本語プログラミング言語である「ドリトル」を用いる。「ドリトル」とは、大阪電気通信大学教授が開発した教育用の日本語プログラミング言語である。日本語でのプログラミングが可能なため、英単語等の知識を必要としない。JavaやC言語など英語ベースのプログラミング言語では、単語や文法の理解に注力せざるを得ず、単にプログラミング言語習得のための授業で終わる可能性がある。日本語のネイティブスピーカーにとってはソースコードが読みやすいため、文法の理解に時間を割く時間が少なくて済み、学習効果が得られやすいと考えられる。
また、初心者だけではなく、プログラミングに苦手意識や、「難しい」という先入観を持っている学生も対象にし、プログラミングに親しみと学習への意欲をもたせたいというねらいもある。さらに、ボタンの作成など、GUIの実装が非常に簡単に行うことができる。
「ドリトル」は開発者のサイト(http://dolittle.eplang.jp/)からダウンロードすることが可能である[1]。本研究では開発版のバージョン(V2.10pre1)を用いて開発した。
本システムの飛行船制御用ソフトウェアの実行画面は図(図5.参照)のとおりである。
実行画面ではボタンが配置され、このボタンをマウスでクリックすることで飛行船を操作できる。
各ボタン、表示の説明を以下で述べる。
画面左側の十字に並べられた5つのボタンは、水平方向の移動を制御するための左プロペラ、右プロペラ(図3.参照)を操作するためのボタンである。
画面右側に縦に並べられた4つのボタンは、垂直方向の移動を制御するための上下プロペラ(図3.参照)を操作するためのボタンである。
前述したソフトウェア(2.2.2.参照)は、ラジコン操作で飛行船を操作する為の基本的なソフトウェアとする。
教材として生徒が用いる場合は、まずドリトルの基本的な知識を学ぶための授業を行い、その後本ソフトウェアを用いることを考えている。後述する相撲競技で勝つためなど、設定した目標の通りに飛行船をさせるためにチームでディスカッションを行い、改造していくことで目標を達成することをねらいとしている。
たとえば、マウスでボタンをクリックすることでの飛行船操作に不便さを感じた場合は、ボタンをキーボードから操作できるような設定を加えたり、ゲームのコントローラを用いることが考えられる。
あるいは、一部のボタンを省いたり、「前」ボタンをクリックした際に飛行船が「右旋回」するような動作をするような問題のあるソースコードを生徒に提供し、起こっている問題を解決するという使い方もできると考えられる。
相撲競技とは飛行船をラジコンで操作して、相手チームの飛行船と1対1で対戦し、勝敗を競う。(図6.参照)この競技は、情報処理学会 組込みシステム研究会の組込みシステムシンポジウム(ESS)で実施されているコンテストの競技の1つである[3]。この相撲競技のエンタテイメント性に着目し、生徒の意欲的な学習を促す為にこの競技を教材として用いたいと考えた。
本教材では、作成したソフトウェアを使って実際に飛行船を操作しながら、自分の成果物を確かめることができる。また、他の飛行船と対戦させることで他チームとの成果物の比較ができる。
自分のチームのソフトウェアの作り方や操作技術が勝負に影響すること、空気の流れの影響などで相手の飛行船が同じパターンで動くことは二度とないことなど、従来のゲームとは違った楽しみを得ることができる。
ソフトウェアが正しく動作すれば、飛行船が思い通りに飛ぶと考えがちであるが、実際には空気の流れや室内の温度、周囲にあるものの動きなど、外的要因に動作が影響される。そのため、成果物であるソフトウェアを正しく作っても、ハードウェアの観察なしには思い通りに動かないことがある。
飛行船は思い通りに動かないことが多い。組込みソフトウェアは異常処理、思い通りに動かないことを前提としている[4]。その挙動を踏まえた上でいかにして思い通りに、面白い動作をさせることについてチームで議論することで、生徒が楽しみながら学習出来るのではないかと考える。
ゲームでは、ロールプレイングゲームやアクションゲームなどジャンルを問わず、様々な謎解きや障害をプレイヤーが解決し、ゲームを最終的な目標の達成=ゲームクリアに進めていく。飛行船の、"思い通りに動かない"という要素は、ゲームの謎解きや障害に相当すると考えられる。相撲競技であれば相手の飛行船に勝つことがゲームクリアに相当すると考えられる。
ゲームの進行中には、プレイヤーの手助けとなる手がかりがしばしば現れる。飛行船の場合、この手がかりに該当するものは制御速度の遅さであると考えられる。飛行船は入力に対する反応がリアルタイムで現れない。この反応の遅さが、生徒にとっては入力に対する反応を観察し、思い通りに飛ばすための手がかりを得やすいという利点となる[5]。
2009年7月7日に大阪府立桃谷高等学校にて、授業を実施した。
授業時間は、45分×4コマで、対象とする生徒数は24人であった。
アンケート結果からは、ミュウロボや飛行船などのロボットがコンピュータで制御出来ることなどの組込みソフトウェア開発への理解は深まったが、これらが自分にとって役に立つと考えた生徒は少なかった。また、この授業では相撲競技を行わなかったため、今後は相撲競技を用いた授業実践の必要があると考えている。
また、京都コンピュータ学院にてドリトルの知識習得のための集中講座を2009年3月、9月にそれぞれ行った。
授業時間は1.5時間×3コマ×5日間で、プログラミングに苦手意識のある学生を対象とし、3月に9人、8月に6人を対象にして授業を実施した。最終日には殆どの学生がオリジナルのゲームやソフトウェアを作成することができた。
飛行船は多くの生徒にとっては馴染みのないものである。ロボットカーなどを用いた授業の方が、実際に良く目にする車と関連させて考える事ができ、空気の流れや気温に動作が左右されないため、学生にとって負荷が少ない。
中高生向けの教材として考えた場合、飛行船を用いることは負荷が多いとも考えられる。本研究では生徒への負荷を軽減するために、ハードウェアのセットアップは生徒にはさせないことや、ソフトウェアも最低限動作するものを予め作成しておくことで対応している。
また、飛行船に用いる機材の準備や費用を考慮すると、授業で用いるには教師側の負担が重い。
これらの要素が、教材として本システムを用いる課題となると考えられる。
また、現時点では本ソフトウェアは開発版のバージョン(V2.10pre1)に対応させている。新しいバージョン(V2.1)が出れば、これに対応させた修正を行う必要がある。
我々の考える問題解決プロセスは図(図7.参照)のとおりである。
飛行船はわずかな風や気温思い通りに飛ばない要素が多い。しかし、この要素は負担のみでなく、ゲームのような「攻略する」楽しみも含んでいると我々は考えている。現在の中高生や大学生は、物心ついた頃からゲームに親しんでいる。ゲームの持つエンターテインメント性を積極的に取り入れ、今後の研究に活かしたい。
最後に、ドリトルの使用にあたり、大阪電気通信大学の兼宗進教授、大阪府立桃谷高校での授業及びアドバイスを頂きました野部緑教諭、相撲競技という競技種目・名称を用いるにあたり、MDDロボットチャレンジ2009実行委員会技術顧問 二上貴夫氏、飛行船操作用のソフトウェア作成にあたり、京都情報大学院大学の村上智史氏、ハードウェアの開発にあたり、株式会社ヒューマンエンジニアリングロボティックスの岡村勝 氏、西村憲二 氏、高橋嘉也 氏、竹内勇貴 氏、松井委宏樹 氏、岡部拓矢 氏、古川彬 氏、集中講座の実施やドリトルを用いた授業実施にあたり助言をいただきました京都情報大学院大学の作花一志教授、本研究全般に渡り助言をいただきました京都情報大学院大学の江見圭司准教授のご協力を賜りましたことを感謝いたします。