- 追加された行はこの色です。
- 削除された行はこの色です。
*&size(40){〜第2回課題〜}; [#t2a38d64]
**タッチセンサ [#ac107e3e]
**光センサ [#ce82fcdc]
***プログラム [#y95d7e30]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true)
{
if(SENSOR_2<40)
{
Off(OUT_C);
OnRev(OUT_A);
OnFwd(OUT_C);
}else{
Off(OUT_A);
OnRev(OUT_C);
OnFwd(OUT_A);
}
}
}
**タッチセンサ(壁に沿って動くロボット)[#ac107e3e]
***壁にぶつかったら後退して方向転換するプログラム [#g74e8d55]
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH); //センサの宣言
OnFwd(OUT_A+OUT_C); //センサが壁にあたるまで前進
until(SENSOR_1 == 1);
off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C); //センサが壁にあたったら後退
Wait(50);
OnFwd(OUT_A); //90度回転
OnRev(OUT_C);
Wait(150);
Off(OUT_A+OUT_C); //停止
}
[[この課題の詳細はこちらへ:http://yakushi.shinshu-u.ac.jp/robotics/?2005%2FC6%2F%B2%DD%C2%EA%A3%B2%B1%A6]]
***感想 [#f1f83fe0]
壁に沿って動くロボットを作るうえで苦労したことは、タッチセンサを取り付ける位置であったり、適切なバンパーの長さにすることであった。取り付ける位置を誤るとセンサが壁にあたらなかったりしたし、バンパーが長すぎると角にひっかかって曲がりきれないことがあった。
**コメントはこちらへ [#h3ecc8d6]
#comment
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true)
{
if(SENSOR_1<40)
{
OnRev(OUT_C);
}else{
OnFwd(OUT_C);
}
if(SENSOR_3<40)
{
OnRev(OUT_A);
}else{
OnFwd(OUT_A);
}
}
}