2006b/A6/課題2−2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2006b/A6/R Room/mission 2]]
制作者(TAKA)
#define THRESHOLD 40
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // センサー1を光センサーに
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー2をタッチセンサーに
SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー3を光センサーに
OnFwd(OUT_A+OUT_C); //前進
while(true){
if(SENSOR_3>THRESHOLD) //センサー3の値が40以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
if(SENSOR_1>THRESHOLD) //センサー1の値が40以上になったら
{
Off(OUT_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else(OUT_A+OUT_C); //それ以外は前進
if(SENSOR_2==1) //センサー2が反応したら (ぶっつかって避ける)
{
OnRev(OUT_A+OUT_C); //後退
Wait(50);
Off(OUT_A+OUT_C);
OnFwd(OUT_A); //A側正回転
Wait(20);
OnFwd(OUT_C); //C側正回転 → 前進
Wait(50);
Off(OUT_A+OUT_C);
OnFwd(OUT_C); //C側正回転
Wait(35);
OnFwd(OUT_A); //A側正回転 → 前進
}
}
}
*改善版 [#za919cc6]
#define THRESHOLD 48
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー2をタッチセンサーに
SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー3を光センサーに
OnFwd(OUT_A+OUT_C); //前進
while(true){
if(SENSOR_1<THRESHOLD) //センサー1の値が48以下になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
else if(SENSOR_3<THRESHOLD) //それ以外でセンサー3の値が48以下になったら
{
Off(OUT_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else(OUT_A+OUT_C); //それ以外前進
if(SENSOR_2==1) //センサー2が反応したら (ぶつかったら右に避けて進む)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
Off(OUT_A+OUT_C);
OnFwd(OUT_A); //A側正回転
Wait(60);
OnFwd(OUT_C); //C側正回転 → 前進
Wait(100);
Off(OUT_A+OUT_C);
OnFwd(OUT_C); //C側正回転
Wait(110);
OnFwd(OUT_A); //A側正回転 → 前進
}
}
}
-動きをスムーズにするようにこちらのプログラムも『else if』を使いました。あと、おなじく避けるときのプログラムも少しいじりました。
終了行:
[[2006b/A6/R Room/mission 2]]
制作者(TAKA)
#define THRESHOLD 40
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // センサー1を光センサーに
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー2をタッチセンサーに
SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー3を光センサーに
OnFwd(OUT_A+OUT_C); //前進
while(true){
if(SENSOR_3>THRESHOLD) //センサー3の値が40以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
if(SENSOR_1>THRESHOLD) //センサー1の値が40以上になったら
{
Off(OUT_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else(OUT_A+OUT_C); //それ以外は前進
if(SENSOR_2==1) //センサー2が反応したら (ぶっつかって避ける)
{
OnRev(OUT_A+OUT_C); //後退
Wait(50);
Off(OUT_A+OUT_C);
OnFwd(OUT_A); //A側正回転
Wait(20);
OnFwd(OUT_C); //C側正回転 → 前進
Wait(50);
Off(OUT_A+OUT_C);
OnFwd(OUT_C); //C側正回転
Wait(35);
OnFwd(OUT_A); //A側正回転 → 前進
}
}
}
*改善版 [#za919cc6]
#define THRESHOLD 48
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー2をタッチセンサーに
SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー3を光センサーに
OnFwd(OUT_A+OUT_C); //前進
while(true){
if(SENSOR_1<THRESHOLD) //センサー1の値が48以下になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
else if(SENSOR_3<THRESHOLD) //それ以外でセンサー3の値が48以下になったら
{
Off(OUT_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else(OUT_A+OUT_C); //それ以外前進
if(SENSOR_2==1) //センサー2が反応したら (ぶつかったら右に避けて進む)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
Off(OUT_A+OUT_C);
OnFwd(OUT_A); //A側正回転
Wait(60);
OnFwd(OUT_C); //C側正回転 → 前進
Wait(100);
Off(OUT_A+OUT_C);
OnFwd(OUT_C); //C側正回転
Wait(110);
OnFwd(OUT_A); //A側正回転 → 前進
}
}
}
-動きをスムーズにするようにこちらのプログラムも『else if』を使いました。あと、おなじく避けるときのプログラムも少しいじりました。
ページ名: