プログラミング入門第2回 ~レゴロボットのプログラミング~ 2008/5/13 プログラミング入門第2回 ~レゴロボットのプログラミング~ 高畠俊徳,小林 学 二宮 洋,鈴木 誠 toshi@info.shonan-it.ac.jp kobayasi@info.shonan-it.ac.jp ninomiya@center.shonan-it.ac.jp msuzuki@info.shonan-it.ac.jp
1 前回の復習 非常に重要 1.1 プログラムの制御構造1:順次 プログラムの基本ルール1(順次): 1.1 プログラムの制御構造1:順次 非常に重要 プログラムの基本ルール1(順次): 命令は一度に一つだけ実行され,一つずつ(下に)順々に実行される 命令1 命令2 命令3 命令4
非常に重要 1.2 プログラムの制御構造2:反復(ループ,リピート) プログラムの基本ルール2(反復): 反復の始まり 1.2 プログラムの制御構造2:反復(ループ,リピート) 非常に重要 プログラムの基本ルール2(反復): 反復の終わりまで来たら反復の始まりまで戻る. ある終了条件を満たすまで反復は繰り返される. 注:命令が一つずつ実行される のは変わらない 反復の始まり 反復の終わり 終了条件が書いてある(ここでは無限回繰り返す) ここでは「前進」→「左ターン」→「前進」→「左ターン」・・・を繰り返す
非常に重要 1.3 プログラムの制御構造3:条件分岐 プログラムの基本ルール3(条件分岐): 1.3 プログラムの制御構造3:条件分岐 非常に重要 プログラムの基本ルール3(条件分岐): ある条件を満たした場合には,「はい」の方が実行され,満たしていない場合には「いいえ」の方が実行される. 注:一度に実行されるのはどちらか 一方だけ. 条件が記述されている (センサー1とつながったタッチ センサーがおされているか?) 「はい」のとき実行 「いいえ」のとき実行
2. いくつかの例題 次のいくつかの例を実行してみよう (注:プログラムを理解しながら作成すること) [例1] [例2]反応をすばやくする 時間を0.1秒に
[例3]ライントレースカー(基本形) 図のようにライトセンサーをセンサーポート2番につなぐ
[例3]ライントレースカー(基本形) ①クリック ②「ライト」をクリック ③「次へ」をクリック
[例3]ライントレースカー(基本形) ①2番をクリック ③「明るい」をクリック ②「次へ」をクリック ④「次へ」をクリック
[例3]ライントレースカー(基本形) 2番のライトセンサーが明るいか? ②実行させてみよう (下が黒いところから始めること) ①「終了」をクリック
[例3]ライントレースカー(基本形) ライトセンサが明るい(下が白い)時、左に曲がる(左図) ライトセンサが暗い(下が黒い)時、右に曲がる(右図) 上の2つの動作を繰り返す。 ⇒黒線を辿って前進する。
[例4]ライントレースカー(衝突するとストップ) 1番のセンサーに接続されたボタンを押すと,何もしない.(ストップする) ボタンを押さないと,黒い線をライントレース.
[例5]前方が暗いとバック 2番のライトセンサーが暗いか? 図のようにライトセンサーをつなぐ
[例6]リモコンカー 図のようにタッチセンサーを2つつなぐ
3. 課題 次の課題の車をプログラミング及び実行しなさい [課題1]1秒前進,0.5秒左ターンを繰り返す [課題2]左ターンを繰り返し,ボタンを押している間だけ前進する [課題3]前進し,衝突したら1秒バックし,右へ障害物をよける [課題4]シートの黒枠より内側を走り続ける(ライントレースではない) [課題5]ライントレースカー(障害物に衝突したら1秒バックし,右へ障害物をよけ,再びもとのラインに戻る) [課題6]タッチセンサー1,3,ライトセンサー2をつける.センサー1だけ押すと左ターン,センサー3だけ押すと右ターン.センサー1,3両方押すと前進.両方押していないときはライントレースする [課題7]次ページ
[課題7]2つのライトセンサーを使った次の動きをするライントレースカー センサー1 センサー3 センサー接続方法
[課題7]2つのライトセンサーを使った次の動きをするライントレースカー 2つのセンサーが両方とも白の時 2つのセンサーが両方とも黒線上の時 右折 左折 直進 2つのセンサーが境界線をまたいでいる時