2006b/A6/課題2−1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2006b/A6/R Room/mission 2]]
製作者(TAKA)
#define THRESHOLD 42
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の値が42以上になったら
{
Off(OUT_C); // C側のタイヤストップ
OnFwd(OUT_A); // A側のタイヤ正回転
}
if(SENSOR_3>THRESHOLD) //センサー2の値が42以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
else{OnFwd(OUT_A+OUT_C);} //それ以外常に前進
if(SENSOR_2==1) //センサー2が反応したら (ぶつかったら反転して進む)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
OnFwd(OUT_A); //A側のタイヤ正回転
OnRev(OUT_C); //C側のタイヤ逆回転
Wait(60);
}
}
}
*改善版 [#n19c46c9]
制作(TAKA)
#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_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else if(SENSOR_3>THRESHOLD) //それ以外のときにセンサー3の値が48以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤストップ
}
else {OnFwd(OUT_A+OUT_C);} //それ以外は前進
if(SENSOR_2==1) //センサー2が反応したら(ぶつかったら反転)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
OnFwd(OUT_A); //A側のタイヤ正回転
OnRev(OUT_C); //C側のタイヤ逆回転
Wait(120); //1.2秒維持
}
}
}
-上のプログラムだと動きがぎこちなかったので、センサー3の方の『if』を『else if』にして、動きを軽くしました。
あとターンの時間もうまくいかなかったので、変えました。
終了行:
[[2006b/A6/R Room/mission 2]]
製作者(TAKA)
#define THRESHOLD 42
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の値が42以上になったら
{
Off(OUT_C); // C側のタイヤストップ
OnFwd(OUT_A); // A側のタイヤ正回転
}
if(SENSOR_3>THRESHOLD) //センサー2の値が42以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤ正回転
}
else{OnFwd(OUT_A+OUT_C);} //それ以外常に前進
if(SENSOR_2==1) //センサー2が反応したら (ぶつかったら反転して進む)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
OnFwd(OUT_A); //A側のタイヤ正回転
OnRev(OUT_C); //C側のタイヤ逆回転
Wait(60);
}
}
}
*改善版 [#n19c46c9]
制作(TAKA)
#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_C); //C側のタイヤストップ
OnFwd(OUT_A); //A側のタイヤ正回転
}
else if(SENSOR_3>THRESHOLD) //それ以外のときにセンサー3の値が48以上になったら
{
Off(OUT_A); //A側のタイヤストップ
OnFwd(OUT_C); //C側のタイヤストップ
}
else {OnFwd(OUT_A+OUT_C);} //それ以外は前進
if(SENSOR_2==1) //センサー2が反応したら(ぶつかったら反転)
{
OnRev(OUT_A+OUT_C); //後退
Wait(60);
OnFwd(OUT_A); //A側のタイヤ正回転
OnRev(OUT_C); //C側のタイヤ逆回転
Wait(120); //1.2秒維持
}
}
}
-上のプログラムだと動きがぎこちなかったので、センサー3の方の『if』を『else if』にして、動きを軽くしました。
あとターンの時間もうまくいかなかったので、変えました。
ページ名: