競技会


<>

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, 45 '銀紙の上では
.Off "1" '前輪は動かない
.On "0"
.Else
.If 9, 2, 0, 2, 36 '白の時
.Off "0" '一旦停止
.SetFwd "1" '前輪を右に曲げる
.If 9, 0, 1, 2, -3 '角度センサーが右に十分曲がったら
.Off "1" '前輪モーター停止
.SetPower 0, 2, 7 '後輪モーターのパワー調節
.On "0" '後輪オン
.Else '前輪が十分曲がっていない時
.SetFwd "1" '前輪を右に曲げる
.On "1"
.EndIf
.Else
.If 9, 2, 1, 2, 36 '黒、灰色領域に入ったら
.SetPower 0, 2, 2 '後輪のパワー調節
.Off "0" '一旦停止
.On "0" '後輪オン(白と黒の境界で止まってしまわないように)
.If 9, 2, 1, 2, 31 '黒領域に入ったら
.Off "0" '一旦停止
.SetRwd "1" '前輪を左に曲げる
.SetPower 1, 2, 2 '前輪のパワー調節
.If 9, 0, 0, 2, 5 '角度センサーが0に近くなったら(ほんの少し外向き)
.Off "1" '前輪モーター停止
.SetPower 0, 2, 7 '後輪のパワー調節
.On "0" '後輪オン
.Else
.SetRwd "1" '前輪が真っ直ぐになるまで
.On "1" '左に曲げる
.EndIf
.Else '灰色領域に入ったら
.Off "0" '一旦停止
.SetRwd "1" '前輪を左に曲げる
.SetPower 1, 2, 2 '前輪のパワー調節
.If 9, 0, 0, 2, 10 '角度センサーが少し左(外向き)に曲がったら

.Off "1" '前輪モーター停止
.SetPower 0, 2, 7 '後輪パワー調節
.On "0" '後輪オン
.Else
.On "1" '十分になるまで左に曲げる
.EndIf
.EndIf
.EndIf
.EndIf
.EndIf
.EndLoop
.EndOfTask
.BeginOfTask (2) '銀紙の上で音を鳴らす
.SetSensorType 2, 3
.SetSensorMode 2, 4, 0
.Loop 2, 0
.If 9, 2, 0, 2, 45
.PlaySystemSound 1
.PlaySystemSound 2
.PlaySystemSound 1
.Wait 2, 150 '無限に鳴るのを止める
.EndIf
.EndLoop
.EndOfTask
End With
End Sub
(結果) タイム:1分22秒84
2周する事を目標としたためタイムは遅くなりました。二回目、三回目も改良してもっと
いい結果をだしたっかった。
     (考察) まず前輪を変えたのが一番大きかった。角度センサを回転させない限り前輪は動かなくな
ったおかげで安定してカーブをまがれるようになった。プログラムのOFFという所があるた
めに色が変わる度に車が止まってタイムが遅くなってしまった。黒と外側の白をいったり
きたりしたため非常にタイムが遅くなってしまった。この点を改良したらもっと早くなる
と思う。二周走れたのは満足です


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