Comments
Description
Transcript
Vol. 2 エデュケーター活用編
Vol. 2 エデュケーター活用編 もくじ III. はじめてのプログラム かつよう ロボットエデュケーターの活用 2 1. 音を出してみよう (01. 音を再生) 3 2. 画面に絵を出してみよう (02. ディスプレイを使用) 5 3. ロボットを動かしてみよう1-① (03. 前進、04. 後進) 8 11 5. ロボットを動かしてみよう2-① (06. カーブを曲がる、07. ポイントターン) 13 6. ロボットを動かしてみよう2-② (08. 四角の範囲内を走る) 15 7. 応用チャレンジ (10. 駐車帯) 17 べ ん り き の う PL E 4. ロボットを動かしてみよう1-② (05. 加速) 8. 便利な機能1-① (09. マイブロック1) 19 9. 便利な機能1-② (11. 動作の再生) 21 IV. はじめてのセンサープログラム NXTのセンサー 23 25 2. サウンドセンサーを使ってみよう② (13. サウンド制御) 27 SA M 1. サウンドセンサーを使ってみよう① (12. 音を検出) ちょうお んぱ 3. 超音波センサーを使ってみよう① (14. 距離を検出) 29 4. 超音波センサーを使ってみよう② (15. 距離制御) 31 5. 光センサーを使ってみよう① (16. 濃いラインを検出) 33 6. 光センサーを使ってみよう② (17. ライン上を進む) 36 7. タッチセンサーを使ってみよう (18. タッチを検出) 39 8. センサーチャレンジ① (19. センサーバンパー) 41 9. センサーチャレンジ② (20. 赤いボールを打つ) 43 きほんこうぞう V. プログラムの基本構造 45 じゅんじしょり 1. 順次処理(シーケンシャルプロセス) 45 ぶ ん き し ょ り 2. 分岐処理(ブランチプロセス) く かえ 46 し ょ り 3. 繰り返し処理(ループ) 47 Ⅲ. はじめてのプログラム きょうつう へん ロボットエデュケーターの活用 ~ 共通パレット編 ~ ほん にゅうもんへん つく てじゅん そうさほうほう せつめい きほんてき 本ガイドのVol.1 NXT入門編では、プログラムを作る手順や、操作方法を説明しました。この基本的な操作方 むずか 法がわかっていれば、NXTのプログラムを作ることはそんなに 難 しいことではありません。しかし、NXTを動 めいれい し よ う かすためにどんな命令があるのか、それをどうやって使用すると、どんなことができるのかが分からなけれ じ ぶ ん おも どう よ ば、自分の思い通りのプログラムを作ることはできないでしょう。では、それぞれの命令の説明を読めば作れ すべて じっさい うご り か い ふか るかというと、 全 てがそうでもありません。やはり実際にプログラムを作りながら動かすことで理解が深まるも かだい ひつよう かんが SA MP LE れんしゅうよう よ のです。そのためには練習用の課題が必要になります。自分で課題を 考 えてできれば良いですが、課題を たいへん くみ た かた だんかいてき 考えるのも大変です。そこで、NXTソフトウェアでは、ロボットの組み立て方、プログラムのつくり方を段階的に まな かたち ていきょう 学 ぶことができるチュートリアル(練習課題)を「ロボットエデュケーター」という 形 で提供 しています。このロ かつよう ボットエデュケーターを活用して、まずは、基本的なプログラムのつくり方、そしてセンサーの使い方を学んで たんじゅん お い み いきましょう。しかし、ただ単 純 に「エデュケーターのサンプルの通りに作って動かして終わり」では意味があり おうよう ません。その課題で学んだことをさらに応用して、自分でプログラムをつくる、また、前の課題で学んだことと あたま く かえ ほんしょ おうよう 組み合わせてみるというように、自分の 頭 で繰り返し考えるということをしましょう。また、本書では応用課題 ついか じょうほう まいかい よ う い や追加の情報 を理解するための課題を毎回「やってみよう!」として用意 しています。しかし、プログラムの せいかい じつげん 正解はありません(用意していません)、設定された課題が実現 できれば、それがあなたにとっての正解で がんば す。頑張って課題をクリアして下さい。 2 3.ロボットを動かしてみよう 1 - ① がいよう [ チャレンジの概要 ] こうしん ぜんしん 03. 前進 かいてん モーターを回転させて、ロボットを前進さ せてみましょう 04. 後進 モーターを回転させて、ロボットを後進さ せてみましょう 1 ~ 9番は、PCからNXTへダウ さが LE ンロードしたプログラムを探 して こと あらわ 実行している事を 表 していま す。 ダウンロードしたプログラムの探 し方は、ガイドVol.1のP.23を見て ください。 [ 組み立てガイド ] かだい し よ う MP この課題では、ドライビングベースを使用します。 したが SA 組み立てガイドに 従 って、ドライビングベースを組み立て てください。 画面の組み立てガイドが見にくい場合は、セットに入ってい せ つめいし ょ さ っ し る組み立て説明書(冊子P.8~P.22)でも組み立てられます。 モーターを接続するケーブルのポート ま ち が を間違えないように注意しましょう。 [ プログラミングガイド 03.前進 ] ブロックの設定ができたら、USBケーブルをつないだま あんぜん ば し ょ ま、ロボットが動いても安全な場所において、「ダウンロー ドして実行」ボタンをクリックしてみましょう! なにが起こった? さぁ、このプログラムを実行したら、どんなことがおきましたか? 8 [ プログラミングガイド 04.後進 ] ブロックの設定ができたら、「ダウンロード」ボタンをクリック して、プログラムをNXTへダウンロードします。 せいこう ぬ ダウンロードに成功 したら、USBケーブルをNXTから抜 い て、ロボットが動いても安全な場所に置きます。 そ う さ NXTボタンを操作して、ダウンロードしたプログラムを探し、 実行してみましょう! さぁ、このプログラムを実行したら、どんなことがおきましたか? LE なにが起こった? [ 「移動」ブロックと設定パネル ~その1~ ] 「移動」ブロック ほうこう かい すう A~Cポートに接続されたモーターをコントロールします。モーターが回転する方向 や、回転させる回数 、 か く ど じ ぞ く じ か ん SA MP 角度(持続時間)を設定します。 コントロールするモーターが 接続されているポートの設定 モーターを回転させる持続時間の設定。 数字の部分をクリックして、キーボードか ら入力します モーターの回転 方向の設定 回転方向に注意!! 「↑」に設定したから必ず、上に動いたり、前に動きたりするわけ ではありません。モーターの向きや、ギアの使い方によって、ロ ボット全体が動く向きは変わります。どちらの方向に回転させれ ばよいかは、ロボットを作ってから実際に回転させてみないと分 からないことがあります。 持続時間のタイプ クリックすると、持続時間のタイプの 設定を変えることができます。 し て い 回転する回数で指定 できます。「1.5回転」のように、 しょうすうてん 回転 小数点も使えます。 角度 回転する角度で指定できます。0度以上で指定しま す。360度以上の指定もできます。 時間 時間(秒数)で指定できます。「0.5秒」のように、小数 点も使えます。 むげん て い し 無限 めいれい プログラムが終わるまで、または「停止」の命令があ るまで回り続けます。 9 やってみよう! き ょ り はか 1. 進んだ距離を測ってみよう。 「持続時間」を次の①~③の設定にした時、ロボット は何センチ前に進むでしょうか?進んだ距離を測っ て記録しましょう。 算数で習ったことを使ってみよう! (小学5年生以上) 予想(計算)してみよう! ロボットのタイヤがどれだけ回る と、ロボットは何センチ進むか、 予想(計算)してみましょう。 ① 1回転 (予想) cm (結果) cm タイヤの直径は、56mmです。 ② 360度 えんしゅう cm (結果) cm ③ 1秒 cm (結果) cm ゆうどう (ヒント) 円周は、次の式で計算できます 直径 × 円周率(π) = 円周 円周率(π)は、3.14とします。 MP (予想) LE (予想) 56mm すると、タイヤの周りの長さ(円周)は、 何mmになるでしょうか? 2. ロボットを誘導しよう! は 床にスタートライン(テープ)を貼ります、そこから25cm、50cm、100cmの所にもテープを貼ります。 ロボットをスタートラインにおいて、それぞれの線まで誘導しましょう!「移動」ブロックの「持続時間」をどん な設定にすればロボットは線の上できちんと止まってくれるでしょうか? 25cm 50cm 「持続時間」の設定 100cm SA スタート 25cm 50cm 100cm (ヒント) き ょ り 1.でしらべた距離をもとにして、モーターをどれだけ回せばよいか計算するとどうでしょうか? むげん 3. 本当に「無限」に動きつづける? 「持続時間」の設定には、「無限」という設定もできます。本当に無限に動きつづけるのでしょうか? 試してみましょう! ① 「移動」ブロックを1つパレットからワークエリアにおいて、「持続時間」の設定を「無限」にしたらNXTへダ ウンロードして実行してみましょう。 結果: ② ①のプログラムの後ろに、「待機」コマンドを置き、待ち時間 を5秒に設定。 ダウンロードして実行してみましょう。 結果: 10 Ⅳ. はじめてのセンサープログラム NXTのセンサー きほん しゅるい こ ふ ぞ く NXTの基本セットには、4種類、5個のセンサーが付属しています。 せつぞく し よ う き 1~4のポートに接続して使用します。どのポートにどのセンサーを接続するかは決まっていませんが、ロボッ トエデュケーターのサンプルプログラムでは、タッチセンサーを1、サウンドセンサーを2、ライトセンサーを3、 ちょうお んぱ せってい さんこう 超音波センサーを4に、それぞれ接続するように設定されていますので参考にして下さい。 サウンドセンサー (1個) ライトセンサー (1個) SA MP タッチセンサー お 超音波センサー (1個) LE タッチセンサー (2個) はな で ん き なが なに スイッチになっています。押したり、離されたりすると、電気が流れたり、流れなかったりして、何かにぶつ はんだん こと かっているかいないかを判断する事ができます。 サウンドセンサー(音センサー) おんりょう たんい はか さい だ い て い ど おんりょう はか 音量の大小を「デシベル」という単位で測ることができます。最大で90dB(デシベル)程度の音量まで測る そくてい りょうほう ひょうじ さいだいち ことができます。測定 は、dB、dBAの両方 で行えます。表示 は、デシベルではなく、最大値 を100%とし ひゃくぶんりつ た、百分率で表示されます。 き はんい ふく dB :人間には聞こえない範囲の音も含めたすべての音の音量を測ります。 dBA:人間に聞こえる範囲の音の音量を測ります。 ライトセンサー(光センサー) はっこう は んし ゃ 赤いLEDを発光して、その反射してくる光の明るさを測り、0~100%の百分率で表示します。 しょうとう まわ かんきょう 赤いLEDを消灯して、周りの環境の明るさを測ることもできます。 超音波センサー(ウルトラソニックセンサー) はっしゃ は かえ たいしょうぶつ き ょ り 超音波を発射して、跳ね返ってくるまでの時間で対象物までの距離を測る事ができます。 そくていたんい せいど 距離の測定単位は、「cm(センチメートル)」、「in(インチ)」の両方が使えます。±3cm程度の精度で0~25 0cmまで測ることができます。 23 やってみよう! あたい それぞれのセンサーがどのような 値 を出すのか調べてみましょう。 でんげん NXT本体だけで、センサーの値を調べる事ができます。NXTのトップメニュー(電源を入れた時に出てくるメ ニュー)に、「View」(ビュー)モードというのがあります。 てじゅん れい 下に、ポート3にライトセンサーを接続して、ビューモードで値を調べる手順の例を示します。同じようにして、 それぞれのセンサーをNXTに接続して、ビューモードでしらべてみましょう。 LE 例:ポート3に、光センサーを接続、赤色LEDを発光させて、色々な色の明るさを調べるための手順 1.タッチセンサーの値を調べよう タッチセンサーをポート1に接続して、押した 時、離した時のセンサーの値を調べてみよう。 離した時: へ や まえ お こえ 部屋や、テレビの前 に置 いた時、小さな声 を出 した時、大きな声を出した時のセンサーの値を 調べてみよう。 また、dBとdBAの違いも、調べてみるとよいで しょう。 静かな部屋: テレビの前: 大きな声: 小さな声: 4.超音波センサーの値を調べよう 超音波センサーをポート4に接続して、色々な SA 3.ライトセンサーの値を調べよう ライトセンサーをポート3に接続して、色々な色 の明るさを調べてみよう。 ば し ょ 物、場所の距離を調べてみよう。 せ つめいし ょ たと 組 み 立 て説明書 の P.69 の 下 のカラ ー バー で 色 々 な色の 明る さを調べてみ ましょ う。赤色 LEDを発光させ、紙の上約1cmくらいの所で測 るとよいでしょう。 色 しず サウンドセンサーをポート2に接続して、静かな MP 押した時: 2.サウンドセンサーの値を調べよう てんじょう つくえ ゆか 例えば、天井までの距離や、机 から床の高さな ど色々なところの距離を測ってみましょう。 測った物・場所 センサーの値 24 距離(cm) き ほ ん こ う ぞ う Ⅴ. プログラムの基本構造 かぎ きほんてき こうぞう すべ NXTのプログラムに限らず、コンピューターのプログラムには基本的な構造があり、全てのプログラムはこの あつ つく り か い ふくざつ 基本構造の集まりで作られています。つまり、この基本構造さえ理解できていれば、どんな複雑なプログラム げんご こ と ば でも、どんなプログラム言語(プログラムを作る言葉、NXTソフトは、NXTコンピュータ用のプログラムを作る言 葉の一つです)でもプログラムを作ることができるようになります。 かんたん しゅるい プログラムの基本構造はとても簡単です、3種類の構造しかありません。それでは、その3種類の基本構造 LE を見ていきましょう。 じゅんじしょり 1.順次処理(シーケンシャルプロセス;Sequential Processes) めいれい なら もの プログラムとは、コンピューターへのいくつかの命令を並べた物です。そして、コンピューターはその命令を き じゅんばん じっこう し ょ り 決まった順 番 で実行(処理)していきます。その順番とは、上から下(左から右)が基本とまります。並べられ SA MP た順番に処理をしていくから、「順次処理」というわけです。 左から右に順番に実行される フローチャート(流れ図) Start(開始) なが プログラムでは、この処理の流 れ(「フロー」といいます)を 基本にして、プログラムステップ(命令の順番)を考えて作って 画面に絵を出す とき いきます。この時 、プログラムステップのフローを考えるため べ ん り 「Hello」と音を出す ず に便利 な図 (チャート)があります。それが、「フローチャート (流れ図)」です。流れ図が考えられれば、プログラムはほぼ かんせい い よ モーターを動かす 完成したと言 っても良 いでしょう。あとは、それをNXTソフトや ほか ひょうげん 他のプログラム言語を使ってコンピューター用の言葉で表現 1秒間待つ するだけです。 モーターを止める End(終了) 45 上から下に順 番に実行される ど う じ NXTソフトは、左から右へプログラムフローも同時に考えられるように、グラフィカルなプログラム言語として じゅ 作られています。したがって、プログラムステップのフローを考えたら、そのフローに従ってコマンドブロックを どうさせってい 並べ、それぞれの動作設定をしてゆけば、プログラムを作ることができるわけです。これからは、プログラムを ぜ ひ くせ くだ 作るときには、是非このフローチャートを作る癖をつけて下さい。そうすれば、NXTソフトだけではなく、他のプ よ う い さくせい ログラム言語でも容易にプログラム作成ができるようになるでしょう。 ぶ ん き し ょ り 2.分岐処理(ブランチプロセス;Branching Process) じょうけん か こと し よ う プログラムの中で、ある条件によって流れを変えたい事があるかもしれません。そのような時に使用するの め せいりつ ちが LE が、基本構造の2つ目、「分岐処理」です。この分岐処理は、「もし、~ならば(条件が成立するならば)、○○ なに あたい する。違う(成立しない)ならば、××する。」という考え方が基本になります。そして、条件は何か( 値 )と何か べつ ひ か く だいしょうかんけい ひと しん ぎ はんてい (別の値)を比較して、その大小関係や等しさが成立する(真;True)かしない(偽;False)かで判定されます。 よ う い せってい NXTソフトウェアでは、「スイッチ」コマンドという命令で用意されています。条件の設定は、「コントロール」で し て い MP センサーを指定すれば、センサーの値で分岐の条件を設定する事になります。 SA 成立 (真;True) Start(開始) 光センサーの値>50 「Red」と音を出す 不成立 (偽;False) 「Blue」と音を出す End(終了) 何の値を基にして分岐の条件を設定するか決める。 この場合、センサー(光センサー)の値をもとに条件を決める 比較の条件 46