1.タッチセンサーを使った課題
Private Sub cmdSensor_Click()
RCX.SelectPrgm (4)
With RCX
.BeginOfTask (0)
.SetSensorType 0, 1
.SetSensorMode 0, 1, 0
.Loop 2, 0
If 9, 0, 2, 2, 0
.On "0"
.On "1"
.Else
.AlterDir "0"
.AlterDir "1"
.EndIf
.EndLoop
.EndOfTask
End With
End Sub
|
ソースの基本部分は教科書の通りです。 If文によりタッチセンサーの状態を確認し押さ れている場合はアウトプットAおよびBにつなが れているモーターをONにします。 押されていない場合にはAおよびBのモーターを AlterDir命令により逆回転させます。 実際に動作させた結果、マシンは壁にぶつかると ちゃんと後退しました! |
Private Sub cmdSensor2_Click()
RCX.SelectPrgm (4)
With RCX
.BeginOfTask (0)
.SetSensorType 1,3
.SetSensorMode 1, 4, 0
.Loop 2, 0
.If 9, 1, 1, 2, 22
.On "0"
.On "1"
.Else
.Off "0"
.Off "1"
.EndIf
.EndLoop
.EndOfTask
End With
End Sub
|
1.と基本的なプログラム構造は変わりません。 SetSensorTypeおよびSetSensorModeのパラメータ を書き換え光センサー対応にします。 さらにIf文のパラメータを書き換えます 光センサーで実際に明るさの度合いを測った ところ黒と白を区別するにはだいたい条件値 は22ぐらい設定すればよいようでした。 Elseの部分はOFFとし黒領域ではモーター がとまる仕組みにしました。 実際にプログラムを走らせた結果、思ったとおり の動作をしてくれました。 |
Private Sub cmdSensor3_Click()
RCX.SelectPrgm (4)
With RCX
.BeginOfTask (0)
.SetSensorType 1, 4
.SetSensorMode 1, 7, 0
.Loop 2, 0
.If 9, 1, 0, 2, 720
.Off "0"
.Off "1"
.Else
.On "0"
.On "1"
.EndIf
.EndLoop
.EndOfTask
End With
End Sub
|
2.と同じように基本となる部分は1.と同じ。 SetSensorTypeおよびSetSensorModeのパラメータ を書き換え今度は角度センサー対応にします。 角度センサーを実際に回転させてみたところ、 1回転あたりセンサーの測定値が15となり、 その時の入力パラメータ値はその約6.5倍で あったので720と入力すると理論的には6回転するはず。 実際に動作させたところ6回転したので推論 は正しかったようです。 |