2005/A1/課題2左
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2005/A1]]
*壁伝いロボ [#c7618245]
#ref(051125_1602~0001.jpg)
作成者 Harada (コンパス 今井)
*机の脚に沿って進むロボットのプログラム [#m8332caa]
//制作 harada
#define back 20 //転回時に後退する時間
#define rotate 60 //転回時の回転時間
task main ()
{
SetSensor(SENSOR_1, SENSOR_TOUCH); //センサ種別指定(左タッチセンサ)
SetSensor(SENSOR_3, SENSOR_TOUCH); //センサ種別指定(右タッチセンサ)
OnFwd(OUT_A+OUT_C); //壁に接触するまで前進
until(SENSOR_1 == 1);
while(true) //無限ループ
{
if(SENSOR_3 == 0)
{
if(SENSOR_1 == 1) //壁から離れたとき
{
OnFwd(OUT_A+OUT_C);
until ((SENSOR_1 == 0) || (SENSOR_3 == 1)) ;
}
else //壁に当たったとき
{
OnFwd (OUT_C);Float(OUT_A);
until ((SENSOR_1 == 1) || (SENSOR_3 == 1)) ;
}
}
else //足の部分など、回転するとき
{
OnRev (OUT_A+OUT_C); Wait(back);
Off (OUT_A+OUT_C);
OnFwd (OUT_A); OnRev (OUT_C); Wait(rotate);
}
}
}
*感想(解説) [#abb2f014]
バンパーを高い所と低い所の両方に対応できるように二重にして、スムーズに進むようにローラーも付けました。プログラムでは、常に壁に当たっているようにしたいため、二つにタッチセンサーを使うことにより、全く当たってない時、片方当たっているとき、両方当たっている時とで条件を設定しました。壁に引っかかったり、曲がりすぎてしまったりして苦労しました。
#comment
終了行:
[[2005/A1]]
*壁伝いロボ [#c7618245]
#ref(051125_1602~0001.jpg)
作成者 Harada (コンパス 今井)
*机の脚に沿って進むロボットのプログラム [#m8332caa]
//制作 harada
#define back 20 //転回時に後退する時間
#define rotate 60 //転回時の回転時間
task main ()
{
SetSensor(SENSOR_1, SENSOR_TOUCH); //センサ種別指定(左タッチセンサ)
SetSensor(SENSOR_3, SENSOR_TOUCH); //センサ種別指定(右タッチセンサ)
OnFwd(OUT_A+OUT_C); //壁に接触するまで前進
until(SENSOR_1 == 1);
while(true) //無限ループ
{
if(SENSOR_3 == 0)
{
if(SENSOR_1 == 1) //壁から離れたとき
{
OnFwd(OUT_A+OUT_C);
until ((SENSOR_1 == 0) || (SENSOR_3 == 1)) ;
}
else //壁に当たったとき
{
OnFwd (OUT_C);Float(OUT_A);
until ((SENSOR_1 == 1) || (SENSOR_3 == 1)) ;
}
}
else //足の部分など、回転するとき
{
OnRev (OUT_A+OUT_C); Wait(back);
Off (OUT_A+OUT_C);
OnFwd (OUT_A); OnRev (OUT_C); Wait(rotate);
}
}
}
*感想(解説) [#abb2f014]
バンパーを高い所と低い所の両方に対応できるように二重にして、スムーズに進むようにローラーも付けました。プログラムでは、常に壁に当たっているようにしたいため、二つにタッチセンサーを使うことにより、全く当たってない時、片方当たっているとき、両方当たっている時とで条件を設定しました。壁に引っかかったり、曲がりすぎてしまったりして苦労しました。
#comment
ページ名: