2012b/Member/HIBINO/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2012b/Member]]
#contents
尚,case5がcase2とcase3の間にあるが,これはこの順番で正しい.
*メンバー [#fac2970d]
-atchoo
-aspect
-HIBINO
*課題 [#u09a1dc1]
#ref(2012b/Member/HIBINO/Mission2/robocon2012b.png,80%,競...
今回の課題は2台のロボットを上図の2つのstart地点からそれぞ...
*競技用ロボット [#kec7b496]
**全体 [#p6d6c1f6]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_001.jpg,60%,全...
本体は今回同じメンバーとして協力したatchooとaspectが前回...
**アーム(アームを利用したオブジェクトの壁の越え方) [#f5c9...
#ref(2012b/Member/HIBINO/Mission2/13-02-06_003.jpg,60%,ア...
アームが開いているところを上から見た図
#ref(2012b/Member/HIBINO/Mission2/13-02-06_007.jpg,60%,ア...
アームが閉じている図
尚今回の課題の要点を占める「壁を越える」方法は以下のよう...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方1.jpg,60%,壁...
アームでオブジェクトを掴みつつそのまま壁に向かって前進する.
#ref(2012b/Member/HIBINO/Mission2/壁の越え方2.png,60%,壁...
オブジェクトが壁に触れてからも前進を続けるとモーメントの...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方3.png,60%,壁...
さらに掴んだまま前進を続けるとオブジェクトが壁の上に乗り...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方4.png,60%,壁...
本体が壁に触れた時アームを開くことによってオブジェクトは...
**センサー類 [#h2a5e749]
***タッチセンサー [#g28a63fd]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_005.jpg,60%,タ...
タッチセンサーは上図のようにアームの下部に取り付けてある....
***超音波センサー [#oa88d030]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_002.jpg,60%,超...
超音波センサーは上図のようにアームよりもさらに高い位置で...
*プログラム [#e0eb135f]
**プログラム概要 [#rf97c347]
今回のプログラムはメンバーであったaspectが使用している方...
***プログラム全体 [#k04b5434]
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -20 //アームの閉じる速度
#define SPD_Ar 20 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);W...
#define trasew2 OnFwd(OUT_C,SPD);Off(OUT_B);Wait(1);
task main ()
{
SetSensorLight(S1); //ライトセンサー定義
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置
long t0 = CurrentTick(); //時間設定
int t1 = 0; //動作分岐の為の「t1」に0を...
int count = 0; //動作分岐の為の「count」に0...
while(true)
{
switch(pattern) //"pattern"の開始
{
case 1: //オブジェクトに至るまでの直進
if(SensorUS(S2) > 8)
{
if(t1 <= 300)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
pattern = 2;
break;
case 2: //オブジェクトを掴む
if(count == 1);
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(550);
}
Off(OUT_BC);
Wait(TIM_W);
if(count == 0)
{
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
pattern = 5;
break;
}
OnFwd(OUT_A,-50);
Wait(TIM_W);
pattern = 5;
break;
case 5://オブジェクトを掴んだままオブジェクトを壁越え...
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3600);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(4200);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
case 3: //タッチセンサーが接触するまで前進してそこか...
if(SENSOR_3 == 0)
{
if(t1 <= 10000000)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ar);
Wait(TIM_W);
Off(OUT_A);
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3000);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1200);
count ++ ;
Off(OUT_BC);
pattern = 1;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(1550);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1100);
Off(OUT_BC);
pattern = 4;
break;
case 4://向こう側から越えてきたオブジェクトを感知して...
if(SensorUS(S2) > 8)
{
if(t1 <= 90)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
***本プログラムにおける定義 [#b4a42852]
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -20 //アームの閉じる速度
#define SPD_Ar 20 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,40,OUT_REGMODE_SYNC);Wa...
#define trasew2 OnFwd(OUT_C,40);Off(OUT_B);Wait(1); //...
最初に,BとCの端子についてだがそれぞれ(B:右タイヤ C:左...
今回のプログラムは定義が少な目になっている.プログラムの各...
(1)と(2)についてであるが,これはまっすぐ前進をするのに必要...
OnFwdReg(OUT_○,○,OUT_REGMODE_SYNC);
を使用しているにも関わらずどうしても左に曲がっていってし...
***プログラムの開始,およびプログラム内での設定 [#r652b56a]
task main ()
{
SetSensorLight(S1); //ライトセンサー定義(未使用)
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置 (3)
long t0 = CurrentTick(); //時間設定 (未使用)
int t1 = 0; //動作分岐の為の「t1」に0を...
int count = 0; //動作分岐の為の「count」に0...
while(true)
{
switch(pattern) //"pattern"の開始
{
(3)についてであるが,これは今回のプログラムを作成する上で...
(4)についてであるが,これは定義の中で出てきた(1)と(2)を場...
(5)についてであるが,今回の課題はそれぞれのロボットがオブ...
また,「patternの開始」となっている「switch」を「while」で...
***case1:オブジェクトまでの移動 [#k5b0bae4]
case 1: //オブジェクトに至るまでの直進
if(SensorUS(S2) > 8)// (6)
{
if(t1 <= 300)// (7)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break; //(8)
}
pattern = 2;//(9)
break;//(8')
(6)についてであるが,これは超音波センサーの真下に超音波セ...
(7)の「if」内についてであるが,これはオブジェクトにたどり...
***case2:オブジェクトを掴む [#f92c223c]
case 2: //オブジェクトを掴む
if(count == 1);//(10)
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(550);
}
Off(OUT_BC);//オブジェクトは掴める位置にあるために前...
Wait(TIM_W);
if(count == 0)//(11)
{
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
pattern = 5;
break;
}
OnFwd(OUT_A,-50);//(12)
Wait(TIM_W);
pattern = 5;
break;
case1によって超音波センサーがオブジェクトを感知した段階で...
(10)についてだが,これは先述したように1回目の動作であるの...
(11)についてであるが,これは1個だけを運ぶ時なのかどうかを...
***case5:オブジェクトを掴んだまま壁越えをする地点までの移...
case 5://オブジェクトを掴んだままオブジェクトを壁越え...
if(count == 0)//(13)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3600);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);//(14)
Wait(4200);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
(13)についてだが,ここでは持っているオブジェクトが1個か2個...
***case3:オブジェクトを壁の向こう側まで運ぶ [#oac533e4]
case 3: //タッチセンサーが接触するまで前進してそこか...
if(SENSOR_3 == 0)//(15)
{
if(t1 <= 10000000)//(16)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Off(OUT_BC);//(17)
OnFwd(OUT_A,SPD_Ar);
Wait(TIM_W);
Off(OUT_A);
if(count == 0)//(18)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3000);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1200);
count ++ ;
Off(OUT_BC);
pattern = 1;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);//(19)
Wait(1550);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1100);
Off(OUT_BC);
pattern = 4;
break;
(15)ではタッチセンサーが反応しているかどうかを判断してい...
(17)ではタッチセンサーが反応している=本体が壁に接してい...
(19)以下は2回目のオブジェクトの運搬後の動作,つまり向こう...
***case4:送られてきたオブジェクトを掴み,目的地まで運ぶ [#...
case 4://向こう側から越えてきたオブジェクトを感知して...
if(SensorUS(S2) > 8)//(20)
{
if(t1 <= 90)//(21)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);//(22)
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
(20)では超音波センサーが反応する=アームが掴める距離に向...
*感想 [#oef1b823]
課題2は課題1の時のメンバーを2つ統合して1つのメンバーとな...
終了行:
[[2012b/Member]]
#contents
尚,case5がcase2とcase3の間にあるが,これはこの順番で正しい.
*メンバー [#fac2970d]
-atchoo
-aspect
-HIBINO
*課題 [#u09a1dc1]
#ref(2012b/Member/HIBINO/Mission2/robocon2012b.png,80%,競...
今回の課題は2台のロボットを上図の2つのstart地点からそれぞ...
*競技用ロボット [#kec7b496]
**全体 [#p6d6c1f6]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_001.jpg,60%,全...
本体は今回同じメンバーとして協力したatchooとaspectが前回...
**アーム(アームを利用したオブジェクトの壁の越え方) [#f5c9...
#ref(2012b/Member/HIBINO/Mission2/13-02-06_003.jpg,60%,ア...
アームが開いているところを上から見た図
#ref(2012b/Member/HIBINO/Mission2/13-02-06_007.jpg,60%,ア...
アームが閉じている図
尚今回の課題の要点を占める「壁を越える」方法は以下のよう...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方1.jpg,60%,壁...
アームでオブジェクトを掴みつつそのまま壁に向かって前進する.
#ref(2012b/Member/HIBINO/Mission2/壁の越え方2.png,60%,壁...
オブジェクトが壁に触れてからも前進を続けるとモーメントの...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方3.png,60%,壁...
さらに掴んだまま前進を続けるとオブジェクトが壁の上に乗り...
#ref(2012b/Member/HIBINO/Mission2/壁の越え方4.png,60%,壁...
本体が壁に触れた時アームを開くことによってオブジェクトは...
**センサー類 [#h2a5e749]
***タッチセンサー [#g28a63fd]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_005.jpg,60%,タ...
タッチセンサーは上図のようにアームの下部に取り付けてある....
***超音波センサー [#oa88d030]
#ref(2012b/Member/HIBINO/Mission2/13-02-06_002.jpg,60%,超...
超音波センサーは上図のようにアームよりもさらに高い位置で...
*プログラム [#e0eb135f]
**プログラム概要 [#rf97c347]
今回のプログラムはメンバーであったaspectが使用している方...
***プログラム全体 [#k04b5434]
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -20 //アームの閉じる速度
#define SPD_Ar 20 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);W...
#define trasew2 OnFwd(OUT_C,SPD);Off(OUT_B);Wait(1);
task main ()
{
SetSensorLight(S1); //ライトセンサー定義
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置
long t0 = CurrentTick(); //時間設定
int t1 = 0; //動作分岐の為の「t1」に0を...
int count = 0; //動作分岐の為の「count」に0...
while(true)
{
switch(pattern) //"pattern"の開始
{
case 1: //オブジェクトに至るまでの直進
if(SensorUS(S2) > 8)
{
if(t1 <= 300)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
pattern = 2;
break;
case 2: //オブジェクトを掴む
if(count == 1);
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(550);
}
Off(OUT_BC);
Wait(TIM_W);
if(count == 0)
{
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
pattern = 5;
break;
}
OnFwd(OUT_A,-50);
Wait(TIM_W);
pattern = 5;
break;
case 5://オブジェクトを掴んだままオブジェクトを壁越え...
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3600);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(4200);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
case 3: //タッチセンサーが接触するまで前進してそこか...
if(SENSOR_3 == 0)
{
if(t1 <= 10000000)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ar);
Wait(TIM_W);
Off(OUT_A);
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3000);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1200);
count ++ ;
Off(OUT_BC);
pattern = 1;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(1550);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1100);
Off(OUT_BC);
pattern = 4;
break;
case 4://向こう側から越えてきたオブジェクトを感知して...
if(SensorUS(S2) > 8)
{
if(t1 <= 90)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
***本プログラムにおける定義 [#b4a42852]
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -20 //アームの閉じる速度
#define SPD_Ar 20 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,40,OUT_REGMODE_SYNC);Wa...
#define trasew2 OnFwd(OUT_C,40);Off(OUT_B);Wait(1); //...
最初に,BとCの端子についてだがそれぞれ(B:右タイヤ C:左...
今回のプログラムは定義が少な目になっている.プログラムの各...
(1)と(2)についてであるが,これはまっすぐ前進をするのに必要...
OnFwdReg(OUT_○,○,OUT_REGMODE_SYNC);
を使用しているにも関わらずどうしても左に曲がっていってし...
***プログラムの開始,およびプログラム内での設定 [#r652b56a]
task main ()
{
SetSensorLight(S1); //ライトセンサー定義(未使用)
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置 (3)
long t0 = CurrentTick(); //時間設定 (未使用)
int t1 = 0; //動作分岐の為の「t1」に0を...
int count = 0; //動作分岐の為の「count」に0...
while(true)
{
switch(pattern) //"pattern"の開始
{
(3)についてであるが,これは今回のプログラムを作成する上で...
(4)についてであるが,これは定義の中で出てきた(1)と(2)を場...
(5)についてであるが,今回の課題はそれぞれのロボットがオブ...
また,「patternの開始」となっている「switch」を「while」で...
***case1:オブジェクトまでの移動 [#k5b0bae4]
case 1: //オブジェクトに至るまでの直進
if(SensorUS(S2) > 8)// (6)
{
if(t1 <= 300)// (7)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break; //(8)
}
pattern = 2;//(9)
break;//(8')
(6)についてであるが,これは超音波センサーの真下に超音波セ...
(7)の「if」内についてであるが,これはオブジェクトにたどり...
***case2:オブジェクトを掴む [#f92c223c]
case 2: //オブジェクトを掴む
if(count == 1);//(10)
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(550);
}
Off(OUT_BC);//オブジェクトは掴める位置にあるために前...
Wait(TIM_W);
if(count == 0)//(11)
{
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
pattern = 5;
break;
}
OnFwd(OUT_A,-50);//(12)
Wait(TIM_W);
pattern = 5;
break;
case1によって超音波センサーがオブジェクトを感知した段階で...
(10)についてだが,これは先述したように1回目の動作であるの...
(11)についてであるが,これは1個だけを運ぶ時なのかどうかを...
***case5:オブジェクトを掴んだまま壁越えをする地点までの移...
case 5://オブジェクトを掴んだままオブジェクトを壁越え...
if(count == 0)//(13)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3600);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);//(14)
Wait(4200);
OnFwd(OUT_B,SPD_H);
OnFwd(OUT_C,-SPD_H);
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
(13)についてだが,ここでは持っているオブジェクトが1個か2個...
***case3:オブジェクトを壁の向こう側まで運ぶ [#oac533e4]
case 3: //タッチセンサーが接触するまで前進してそこか...
if(SENSOR_3 == 0)//(15)
{
if(t1 <= 10000000)//(16)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Off(OUT_BC);//(17)
OnFwd(OUT_A,SPD_Ar);
Wait(TIM_W);
Off(OUT_A);
if(count == 0)//(18)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);
Wait(3000);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1200);
count ++ ;
Off(OUT_BC);
pattern = 1;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC);//(19)
Wait(1550);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(1100);
Off(OUT_BC);
pattern = 4;
break;
(15)ではタッチセンサーが反応しているかどうかを判断してい...
(17)ではタッチセンサーが反応している=本体が壁に接してい...
(19)以下は2回目のオブジェクトの運搬後の動作,つまり向こう...
***case4:送られてきたオブジェクトを掴み,目的地まで運ぶ [#...
case 4://向こう側から越えてきたオブジェクトを感知して...
if(SensorUS(S2) > 8)//(20)
{
if(t1 <= 90)//(21)
{
t1++;
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);//(22)
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,SPD_Ah);
Wait(TIM_W);
OnFwd(OUT_B,-SPD_H);
OnFwd(OUT_C,SPD_H);
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC);
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
(20)では超音波センサーが反応する=アームが掴める距離に向...
*感想 [#oef1b823]
課題2は課題1の時のメンバーを2つ統合して1つのメンバーとな...
ページ名: