プログラムは, コンピューターの マウスや キーボードを つかって やる ものと 思って いる 方も いるでしょう. しかし, この ワーク ショップでは, マウスや キーボードを つかわずに, 木の ブロックを ならべて 移動 ロボットを うごかす プログラムを つくります. 木の ブロックを つかって プログラムを つくる 道具の ことを P-CUBEと よびます. うまく ゆけば, ロボットが 走行 コースから はみださないように じぶんで うごきを 調節 する プログラムが つくれます.
ワーク ショップは, 導入, プログラムの つくりかた, 練習 問題, アンケートの 順で すすめます. 導入では, 移動 ロボット, 走行 コース, プログラム マット, および P-CUBEで つかわれる プログラミング ブロックを かくにん します.
これから P-CUBEを つかって プログラムを つくる まえに, つかう ものを たしかめて おきましょう. たしかめる ものは 「移動 ロボット」 「走行 コース」 「プログラム マット」 「プログラミング ブロック」の 4種類です.
ワーク ショップで とりくむのは プログラミングです. プログラムで うごかすのは 移動 ロボットです. まず, 移動 ロボットを さわって ロボットの “まえ”と “うしろ”を 確認 しましょう. フチが まるい ほうが まえ, 直線の ほうが うしろです.
ロボットの うしろよりの ひだりと みぎに それぞれ 1基ずつ, モーターで まわす 大きな 車輪が ついて います. ひとつの 車輪に 1台の モーターが ついて います. 車輪が 回転 する 方向を 調節 すると 前進, 後進(バック), 右旋回, 左旋回と すすむ 方向を かえる ことが できます. これは ロボットの 足ですね.
移動 ロボットには 目の 役割を する 赤外線 センサーと いう ものも ついて います. ロボットの 前の 下, ひだりと みぎに 1つずつ あります. 赤外線 センサーを つかうと ロボットの したに ある 道の 色を 見わける ことが できます. じょうずに プログラムを つくると, 黒い 線に そって ロボットが うごいて くれるように なります.
移動 ロボットを 走行 させる コースは, 白と 黒で ぬりわけられて います. いちど 走行 コースを さわって みましょう. スポンジのような やわらかさが ある ところと 紙で さらさら した ところが あるのが わかるでしょうか. スポンジのように やわらかい ところが 黒色, 紙の さらさら した ところが 白色です.
プログラム マットは, P-CUBEの プログラミング ブロックを はめこんで ならべる ための マットです. プログラム マットには 30個の 枠が あり, プログラムを つくる ときは, 上(とおい ほう)から 下(てまえ)に 向かって ブロックを おいて いきます. いちばん はじめ (プログラムの さいしょ)の ブロックは, 下の 図の 赤い まるで かこまれた ところ, もっとも 上の 段の 左側の わくに 入れます. さいしょに たしかめて おきましょう.
P-CUBEは, 木の ブロックを 並べて 移動 ロボットの プログラムが できる 装置です. ブロックは 「プログラミング ブロック」と よばれ, 移動 ロボットに 指示 する 内容に よって つかいわけます. プログラミング ブロックの 種類を じゅんばんに たしかめて いきましょう.
移動 ロボットの うごく 方向を 指定 する ための ブロックです. スギで できて いて 立方体のような 形を して います. さらさら して いて 木の かおりが するのが わかるでしょうか.
なにも 凹凸が ない 面が 上と 下です. 上側の 角は ななめに きりとられて いて すぼまって いるのが わかるでしょうか. つぎに 凹凸が ある 横側の 側面に うつります. 側面は ぜんぶで 4面 あります. それぞれの 面が 「前進」 「後進 (バック)」 「右旋回」 「左旋回」を あらわして います. どの 面が どんな 動作か わかるでしょうか. 凹凸は 矢印の かたちを して いて, スポンジ状の やわらかい ところが さす むきが 移動 ロボットの すすむ 方向を あらわして います.
タイマー ブロックは, 移動 ロボットの 動作 時間を 設定 する ための ブロックです. もちあげて みましょう. どうさ ブロックと おもさや てざわりが ちがうのが わかるでしょうか. タイマー ブロックは コルクと いう かるい 材料で できて います. かたちは どうさ ブロックと おなじです. 角が ななめに きりとられて いて すぼまって いるのが 上側です. 側面 4面には 動作 させる 時間の ながさを あらわした 砂時計が 凹凸で かかれて います. 4つの 凸が ある 面が もっとも ながい 動作 時間, 1つしか 凸が ない 面が もっとも みじかい 動作 時間を あらわして います.
くりかえし(LOOP=ループ) ブロックは, 移動 ロボットの 動作を 持続 させたい ときに 使います. さわって みると どうさ ブロックや タイマー ブロックに くらべて 大きくて おもい ことが わかるでしょうか. くりかえし ブロックは, ケヤキで できて います. 2つの ブロックが ひもで つながれて 対(セット)に なって います. くりかえしたい 処理, たとえば 「前進」などを 対(セット)の ブロックで はさみます. あいだに はさむ ブロックの かずは, プログラム マットに はいる 範囲で あれば 制限は ありません.
IFブロックは 「イフ ブロック」と 読みます. 日本語で 「もしも ブロック」と よんでも よいでしょう. この ブロックは 移動 ロボットの 状態に よって ロボットの うごきを かえたい ときに つかいます. 移動 ロボットに 赤外線 センサーが ある ことは ロボットに さわった ときに 確認 して いるでしょう. たとえば, この 赤外線 センサーから よみこまれた 情報が 白 (さらさら)か, 黒 (やわらかい)かに よって 移動 ロボットの うごきを 「白の ときは 前進, 黒の ときは 右旋回」などと かえたい ときに つかいます.
IFブロックも くりかえし ブロックと おなじように, 2つの ブロックが 対(セット)に なって いて, 条件に よって かえる 処理を 「はじまり ブロック」と 「おわり ブロック」で はさみます. 「はじまり ブロック」は, 手で ふれる 面が ひしがたに ちかい かたちを して います. 「おわり ブロック」は, 半円に 近い かたちを して います. 「はじまり ブロック」の 上面は 白色と 黒色で 分かれて いますが, これは ロボットの 走行 コースの 白色 (さらっと した 紙)と 黒色 (やわらかい スポンジ)と 同じ 材料が 使われて います. 手触りで 確認 して みて ください.
「はじまり ブロック」は, ロボットに ある 赤外線 センサーの みぎ用と ひだり用で わかれて います. それぞれの ブロックの 色は きいろ(右)と あおいろ(左)で ぬりわけられて います. また, 赤外線 センサーの 位置 (みぎか ひだりか)と おなじ側が おもく なって います. ほかにも 赤外線 センサーの ばしょと おなじ側, ブロックの うえに ちいさく まるい 凸が あります. 手ざわりでも 確認 して みましょう. 「はじまり ブロック」は, はめこむ ときの むきが きまって います. 上(むこうがわ)に くる 面には, 手で もつ ときの 指の くぼみが あります. また, 「おわり ブロック」は まるい ほうが 下(てまえ)です.
さいしょに どうさ ブロック(前進)を 1個, プログラム マットに 配置 して みましょう. ロボットは 動くでしょうか. 動かない はずです. なぜでしょう・・・?
移動 ロボットを 動かす ためには, タイマー ブロックを 使って みる 方法が あります. さきほど 【プログラム 1】で 置いた どうさ ブロックの 右側に タイマー ブロックを 置いて みましょう. ロボットは どんな 動きを するでしょうか? また, 時間が あったら タイマー ブロックの 置く 面を 変えると 動きは どのように 変わるでしょうか?
さきほどの プログラム(【プログラム 2】)では, ロボットが 動いた あと, すぐに 止まって しまいます. ロボットを 動かしつづけたい とき (たとえば, ずっと 右に 旋回 させつづけたい とき)は, 「くりかえし ブロック」を 使う 方法が あります. では, くりかえし ブロックの 片方を 一番 上に 置き, 次に どうさ ブロック (右旋回 させつづけたい ときは 右旋回を 上に)を 置きましょう. その 下に くりかえし ブロックの 片方を 置いて どうさ ブロックを はさんで みたら, ロボットを 走らせて みましょう.
これまでの プログラムでは, ロボットは プログラム マットの うえに おいた どうさ ブロックの 方向にしか うごけませんでした. ロボットが コース ラインに そうように うごく ためには, ラインから はずれないように うごく 方向を 調整 しなければ なりません. ラインから はずれて いるかは 赤外線 センサーを つかって ロボットの したに ある 色を 見わける ことで 判断 します. 色に よって うごく 方向を かえながら ラインに そって うごく プログラムの ことを ライン トレース プログラムと いいます. 赤外線 センサーが よみとった 色に 応じて うごく 方向を 変えるには IFブロックを つかいます.
まず, IFブロックを ひとつ (右センサー/左センサーの どちらでも 構いません) つかった ライン トレース プログラムに 挑戦 して みましょう. コースは 四角い 周回 コースです. IFブロック (はじまり)の 下には, ロボットの 赤外線 センサーから 読み取られた 情報に 応じた どうさ ブロックを 置きます. こう する ことで, センサーからの 条件に よって ロボットは 動く 方向を 変えます. さて, ロボットの 下が 白色 (さらさらの 紙)の ときと 黒色 (やわらかい スポンジ)の とき, それぞれ どの どうさ ブロックを 置けば, コースに 沿って 走るでしょうか. ここで 注意 しなければ ならないのは, IFブロックと どうさ ブロックだけでは, ロボットは 動きません. どの ブロックが 必要でしょう?
【プログラム 4】では 赤外線 センサーを 1個だけ 使いました. さいごに, 赤外線 センサー 2つを 使う 方法を 考えて みましょう. コースの ラインは 黒色 (やわらかい マット)ですか? それとも 白色 (さらさら した 紙)ですか? ロボットに ある ふたつの 赤外線 センサーで コースの 線を はさむように して 走らせる ことが できる はずです. <右, 左>の 赤外線 センサーが 読んだ 情報が <黒 (やわらかい), 黒 (やわらかい)>の とき, <白 (さらさら), 白 (さらさら)>の とき, <黒 (やわらかい), 白 (さらさら)>の とき, <白 (さらさら), 黒 (やわらかい)>の とき, それぞれ どのような 動きを すれば よいか 考えて みて ください.
こたえは つぎの ページ
さて, あたらしい コースを 用意 しました. さっき 【プログラム 5】で とりくんだ ときと コースの 色 (やわらかい ところと さらさら した ところ)が 逆に なって いるのが わかりますか? では 赤外線 センサー 2個を つかって コースに そって はしる プログラムを つくって みましょう.
こたえは つぎの ページ