ICT・Educationバックナンバー
ICT・EducationNo.43 > p21〜p25

教育実践例
台車型ロボットによる問題解決学習
─アルゴリズムとフローチャートの学習を通して─
大阪府立東百舌鳥高等学校 稲川 孝司
inagawa@higashimozu.osaka-c.ed.jp
1.はじめに
 教科「情報」の授業が始まって7年が過ぎ,この間様々な教材を模索し授業を行ってきた。今回,現行学習指導要領の「情報B」の目標「コンピュータにおける情報の表し方や処理の仕組み,情報社会を支える情報技術の役割や影響を理解させ,問題解決においてコンピュータを効果的に活用するための科学的な考え方や方法を習得させる」を達成すべく,台車型ロボットを使って授業を行ったので報告する。
 ロボットには電子技術,制御技術,人工知能など,工学の英知がたくさん詰まっている。日本が誇るこのロボットは,近年様々な種類や用途のものが発明され,大学や企業の研究目的だけでなく,実用的なものやホビーとしても利用されるようになった。そして,価格も下がり,情報教育の教材としても活用できるようになってきた。
 そこで,台車型ロボットを一人に1台ずつ準備して,アルゴリズムからフローチャートを考えさせ,プログラムを作成させた。そして,そのプログラムを転送し,スタンドアロンで動くロボットを使って問題解決学習の授業を行った。
 付属のプログラムは,フローチャートとほぼ同じ形式のGUIのため,生徒は理解しやすく短時間で実際のロボットを動かすことができた。また,ロボットの動きから自分で間違いに気づくことが問題解決の糸口になり,その後の問題解決学習においてコースを作成し,その解法について積極的に考えることができた。
2.教材について
 利用した台車型ロボットはヴイストン社製Beauto Racerである(図1)。部品数も少なく10分程度で簡単に組立ができて,手のひらに乗る大きさなので,手軽に机上のコースを走らせることができる。また,今までの台車型ロボットに比べてかなり安価になっている。

Beauto Racer
▲図1 Beauto Racer

 このBeauto Racerは,USBでパソコンと接続すると標準のデバイスとして認識され,読み書きができる。また,ソフトウェア自身もインストール作業が不要なため,インストールが制限されていたりシン・クライアント環境になっていたりする学校においても,ファイルをコピーするだけで使うことができる。赤外線センサーは標準で左右に2個搭載しており,白黒の濃淡の違いをアナログ値で計測してライントレース制御ができる。
 プログラムは「アクション・ブロック」というGUIを持っているため,フローチャート風に書き矢印でつなぐとプログラムが完成する。そして,ロボットに書き込んでケーブルを外すと,独立したコンピュータとしてプログラム通りに動く。

プログラム作成画面例
▲図2 プログラム作成画面例

 この教材とソフトウェアを使えば,プログラムを作った経験や制御についての事前の知識がまったくなくても学習ができる。
3.授業について
 プログラミングによる問題解決学習の単元を効率的に行うために,全体の授業を3時間でできるように工夫した(表1)。単元の目標は,以下の通りである。
  • アルゴリズムについて学びフローチャートを書けること
  • フローチャートからプログラムを作りロボットを動かせること
  • 計測と制御のアルゴリズムを理解してライントレースができること
  • これらの知識の習得から活用・探求を目指して自分のコースを造り問題解決を行うこと
  • 今まで学習してきたことからコンピュータの動作や仕組みについて理解を深めること
授業内容(3時間)
第1時 ○アルゴリズムとフローチャート学習
  • プログラムの作成方法・転送と実行
  • 迷路脱出
  • プログラムのデバッグ作業
  • 繰り返し命令
第2時 ○センサーによる計測と制御
  • 赤外線センサーの原理と測定
  • 線の上で停止する
  • ライントレースの原理を学習
  • ライントレース実習
    (時計回り,反時計回り,S字)
第3時 ○問題解決学習
  • 車輪制御ブロックの使い方
  • 変数の使い方と演算方法
  • 様々なコースの作成
  • 応用問題
▲表1 授業全体の流れ

(1)1限目の授業
─アルゴリズムとフローチャート─


 1限目の授業の流れを表2に示す。
授業内容
導入 ○本時の授業の流れを説明
  • アルゴリズムとフローチャートの学習
  • 順序処理型プログラムの学習
展開1 ○実習1(前進)
  • 台車型ロボットを前進させる例題を通じて,プログラムの作り方と転送方法を学び,実際に動かす実習を行う。
○実習2(回転)
  • 1.5秒の回転動作でどれくらい回転するかを測定する。また,45度回転するには何秒必要か計算する。
展開2 ○課題1(迷路脱出)
  • 台車型ロボットを動かし,正方形の迷路を1周する。
  • プログラム作成と動作チェック,問題点の洗い出し,プログラム修正のデバッグ操作で知識を定着させる。
  • 繰り返し(ループ)の学習
まとめ
  • 授業でわかったことを自己評価する。
  • プリントを回収する。
▲表2 1限目の授業内容

 実習1では,順序処理型(図3)プログラムの例として台車型ロボットを前進させてから停止することを考える。この実習を通じて,アルゴリズムとフローチャートの関係,さらにGUIによるプログラムとの関係を理解する。そして,プログラムを作成し(図4),ロボットへプログラムを転送して,スタンドアロンでロボットを動作させて動作の確認を行う。その後,1.5秒間でどれくらい進むか,どれくらい回転するかを計測させ,10cmを進む時間と45度回転する時間を計算させる。

順序処理型フローチャート
▲図3 順序処理型フローチャート

実習1のプログラム例
▲図4 実習1のプログラム例

 課題1では,前進・右の命令を組み合わせて図5の迷路脱出を図り,デバッグ操作でプログラミング知識の定着を図る。

課題1の迷路脱出コース
▲図5 課題1の迷路脱出コース

 ここでは,正方形のコースを1周するためのアルゴリズムを考え,同じ動作を繰り返して使っていることから,ループについて学ぶ。同じことを繰り返すときに使うループはコンピュータが得意とする処理であり,同じ動作を簡潔にプログラムで記述できることがわかる。このような簡単な例を示すことで,生徒たちはループを使えるようになる。
 モータ自身のトルクのばらつきやプーリの摩擦メカニズムの関係で両輪が全く同じように回転するとは限らないため,左右のモータ速度が気になる場合は0〜100%の間で調整することができる(図6)。

左右のモータ速度の調整
▲図6 左右のモータ速度の調整

(2)2限目の授業
─計測と制御─


 この時間は,赤外線を対象物に当ててその反射光の量を調べ,白黒の違いを調べる計測(実習3)から授業を始める。
 対象物が白の場合は反射光の量が多く,黒の場合は光が吸収されるので反射光の量が少ない。そこで,赤外線センサーの値の違いを読み取る(計測する)と,対象物が区別できることを学ぶ。
 実際に実習3では,白黒のグラデュエーションのついた帯(図7)の上で台車型ロボットを移動させ,線上の濃淡によってセンサーの数値が変化することを画面上で確認(計測)する。

授業内容
導入 ○本時の授業の流れを説明
  • 条件分岐型プログラムの学習
展開1 ○実習3(センサーによる計測)
  • 赤外線センサーの動作原理を学習し,白黒の線の赤外線反射の値の違いを読み取る実習を行う。
展開2 ○実習4(センサー制御1)
  • 線の上で止まるプログラムを作成する。
○実習5(センサー制御2)
  • 右センサーを使って楕円の上を時計方向にライントレースする原理を学習し,実際にプログラムを作成する。
展開3 ○課題2-1(反時計回り)
  • 実習4を参考に,左センサーを使って楕円の上を反時計回りにライントレースするプログラムを考える。
○課題2-2(S字カーブ)
  • 左右のセンサーをつかって,S字コースを走るプログラムを考える。
まとめ
  • 授業でわかったことを自己評価する。
  • プリントを回収する。
▲表3 2限目の授業内容

センサーによる計
▲図7 センサーによる計測

 実習4は,条件分岐型の例(図8)として,センサーを活用して白の紙の上を移動し黒の線上で止まる課題(図9)である。アルゴリズムはセンサーが白か黒かを調べ,白であれば進み,黒であれば停止すればよい。そこで,フローチャート(図10)を書き,プログラム(図11)を作成し,実際に台車型ロボットを動かし,動作チェックをする。

条件分岐型フローチャート
▲図8 条件分岐型フローチャート

実習4 線の上でとまる
▲図9 実習4 線の上でとまる

線上で止まるフローチャート
▲図10 線上で止まるフローチャート

実習4のプログラム例
▲図11 実習4のプログラム例

 実習5は,図12の楕円上の黒の線に沿ってロボットが右回りするライントレースである。アルゴリズムについて説明し,フローチャートを考えさせる(図13)。実習4と考え方が同じなので,プログラム(図14)を提示し実際に動かす。

楕円コース
▲図12 楕円コース

右回りライントレースのフローチャート
▲図13 右回りライントレースのフローチャート

実習5のプログラム例
▲図14 実習5のプログラム例

 その後,実習5の応用として次の2つの課題を考えさせる。
 課題2-1は左回りのライントレースである。右回りとほとんど同じアルゴリズムで,実習5のプログラムを少し修正するだけでよい。
 課題2-2はS字カーブである(図15)。右回りのライントレースを修正し,左右のセンサーを共に使って動かすことを考えさせ,プログラムを作成させる。右回りと左回りの両方を順に動かすアルゴリズムがうまくいったときに,S字カーブを抜けることができる。

S字カーブ
▲図15 S字カーブ

(3)3限目の授業
─問題解決学習─


 3限目は,今まで学習した内容をさらに高めたコースを自分で考え,その上で走るプログラムを作る問題解決学習を試みる(表4)。

授業内容
導入 ○本時の授業の流れを説明
  • 上級者向けオプション
  • 問題解決学習
展開1 ○応用的学習
  • 車輪制御や変数の使用や,演算が可能な上級者向けオプションの使い方を学習する。
○実習6
  • 線の上を動き,最後にゴール地点で停止するプログラムを考える。
展開2 ○問題解決学習
  • これまで学習してきた内容を元に各自でオリジナルなコースを考え,それを解決する方法を探る。
まとめ
  • 授業でわかったことを自己評価する。
  • プリントを回収する。
▲表4 3限目の授業内容

 はじめに,上級者向けオプションの車輪制御ブロックと演算ブロックの使い方を説明する。
 車輪制御ブロックは,動作の途中でモータの左右の回転や前進の速さを変えることができるため,曲率半径の異なるカーブを効率よく曲がったり,単純なコースを早く走ったり,複雑なコースで速度を遅くしたりできる。
 演算ブロックは,それぞれ0〜255の値を持つ8個の独立した変数(a-h)やモータの速度,センサーの値などがあり,簡単な計算式が使えるものである。1つずつ増加・減少させてカウンターとして利用したり,センサーの値を記憶しておき,その値より大きいか小さいかを比較することで,さらに高度な制御ができたり,モータ速度の値を1つずつ増加・減少させて加速や減速ができたりするようになる。
 これらのことを説明した後,ライントレースしてゴールで止まる課題(図16)を考えさせる。その後自分でコースを考え,その上を走る問題解決学習の課題を行う。

ゴールで停止
▲図16 ゴールで停止

生徒作成のコース
▲図17 生徒作成のコース
4.結果および考察
  • この台車型ロボットとその制御プログラムを使うことで,生徒たちはアルゴリズムを考えてフローチャートを作成し,そこから容易にプログラムを作ることができた。
  • プログラムは,文法や作法を学ぶことなくGUIで記述できるため,直感的に生徒が理解でき,プログラム作成についての説明時間が少なくて済んだ。
  • アルゴリズムを考えて作成したフローチャートやプログラムが正しいかどうかを,ロボットを動かしてすぐに自分の眼で確かめることができ,高度なプログラムを作る意欲が生まれた。
  • プログラムをロボットに書き込み,ロボットがスタンドアロンで動くことから,ロボット自身がコンピュータであることを理解し,コンピュータの機能や仕組みについて理解できた。
  • パソコンだけがコンピュータではなく,世の中には多くの組み込み型のコンピュータがあることが認識でき,自分で制御することも体験できた。
  • 自分でコースを作成しそれを解決する方法を考え,実際にロボットを動かし,問題解決学習につながる学習が積極的にできた。
プログラム作成の様子
▲図18 プログラム作成の様子
5.おわりに
 今回,教科「情報」における問題解決学習の一つの方法として,台車型ロボットを使ってアルゴリズムとフローチャートを考え,自分でコースを作り,その上を走らせることで問題解決のPDCAサイクルを実行しようとした。
 新学習指導要領でも「社会と情報」,「情報の科学」の両方に問題解決学習についての記述があり,問題を解決する方法を学ぶことの重要性に触れている。
 プログラムが,フローチャートとほとんど同じであるGUIのインターフェイスを持っているため,生徒にとって理解しやすく短時間で作成でき全体を見通すことができる。一人に1台ずつのロボットを使うこととリアルタイムで間違いがわかるので,アルゴリズムとフローチャートの学習が効果的に行える。そこから,問題解決学習につながるさまざまな課題を積極的に考えることができる。
 高校生向けの教材として目標を問題解決学習としたが,計測・制御についての知識が全くなくても理解して動かせるので,アルゴリズムとフローチャートの学習や,新しい中学校の学習指導要領の「計測と制御」の分野でも利用可能な教材になる。
前へ   次へ
目次に戻る
上に戻る