サブゴール2


<サブゴール2>
種目は競技1.スピード競争に決まりました。
    <<programcode>>
        Private Sub kyougi_1_Click()
         RCX.SelectPrgm (4)
         With RCX
          .BeginOfTask (0)
          .StartTask 1
          .StartTask 2
          .EndOfTask
          .BeginOfTask (1)
           .SetSensorType 2, 3             '3に光センサ
           .SetSensorMode 2, 4, 0
           .SetSensorType 0, 4             '1に角度センサ
           .SetSensorMode 0, 7, 0
           .ClearSensorValue "0"            '角度センサの値を初期化
           .Loop 2, 0
            .If 9, 2, 0, 2, 55               '銀紙の上では
              .Off "1"                  '前輪は動かない
            .Else
              .If 9, 2, 0, 2, 39             '白の時
                .Off "0"                '一旦停止
                .SetFwd "1"             '前輪を右に曲げる
                .SetPower 1, 2, 4          'モーターのパワー調節
                .On "1"                '前輪モーターオン
                .If 9, 0, 1, 2, -1           '角度センサーが右24度曲がったら
                  .Off "1"              '前輪モーター停止
                  .On "0"              '後輪オン
                .EndIf
              .Else
                .If 9, 2, 1, 2, 38           '黒、灰色領域に入ったら
                  .If 9, 2, 1, 2, 32         '黒領域に入ったら
                    .Off "0"            '一旦停止
                    .SetRwd "1"         '前輪を左に曲げる
                    .SetPower 1, 2, 4
                    .On "1"
                    .If 9, 0, 0, 2, 0       '角度センサーが0になったら
                      .Off "1"         '前輪モーター停止
                      .On "0"         '後輪オン
                    .EndIf
                  .Else               '灰色領域に入ったら
                    .Off "0"           '一旦停止
                    .SetRwd "1"        '前輪を左に曲げる
                    .SetPower 1, 2, 4
                    .On "1"
                    .If 9, 0, 0, 2, 1       '角度センサーが左24度曲がったら
                      .Off "1"         '前輪モーター停止
                      .On "0"         '後輪オン
                    .EndIf
                  .EndIf
                .EndIf
              .EndIf
            .EndIf
              .EndLoop
          .EndOfTask
          .BeginOfTask (2)                '銀紙の上で音を鳴らす
             .SetSensorType 2, 3
             .SetSensorMode 2, 4, 0
             .Loop 2, 0
               .If 9, 2, 0, 2, 60
                 .PlaySystemSound 1
                 .PlaySystemSound 2
                 .PlaySystemSound 1
                 .Wait 2, 150            '無限に鳴るのをやめる
               .EndIf
             .EndLoop
            .EndOfTask
         End With
        End Sub
     <考察>

サブゴール2では2週間の余裕があると思ったので1週目でLEGOを完成させ2週目でプログラムを完成
させる予定だった。ところが思ったよりもレゴ、プログラムともに難しく完成にはほど遠いです。車体を曲
    がらせるのは難しく今週の課題でもある。レゴをくみたてる時ギア比など機械工なみのことに苦戦
   した。今週がんばって競技会では満足できる走りのできるレゴを作りたいとおもいます。


このページは GeoCitiesです 無料ホームページをどうぞ