2015a/Member/T.M./Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*初めに [#d2c11a9c]
今回の課題のうち、CからAへのコースに挑戦した。
黒線の左側をなぞって動くプログラムを組んだ。
*マシンの説明 [#v98e875f]
光センサーの両脇にアームを取り付け、その上の動作可能なア...
これで、多少距離があってもマシン本体にボールを引き寄せる...
前輪と後輪が近いが、これは小回りを利かせるため。
&ref(./sono1.jpg,20%);
&ref(./1437044059851.jpg,20%);
&ref(./1437044064800.jpg,20%);
*プログラミング [#k8fea77b]
複雑なプログラムになることが予想されたので、多くの定義...
#define THRESHOLD 40
#define speed1 50
#define speed2 20
#define Onrl(t,u) OnFwd(OUT_B,t);OnFwd(OUT_C,u);
#define gost Onrl(speed1,speed1);
#define turnleft1 Onrl(speed2,-speed2);
#define turnleft2 Onrl(speed2,0);
#define turnright1 Onrl(-speed2,speed2);
#define turnright2 Onrl(0,speed2);
#define step 1
#define nmax 300
#define shortstop Off(OUT_BC);Wait(2000);
#define xtime 1000
#define xline Onrl(speed1,speed1);Wait(xtime);shortstop;
#define armdown OnFwd(OUT_A,30);Wait(500);Off(OUT_A);
#define armup OnRev(OUT_A,30);Wait(500);Off(OUT_A);
光センサーとカウンターをセットした。カウンターは黒を検出...
task main()
{
SetSensorLight(S3);
int kuro=0;
while(true){
while(kuro < nmax){
if(SENSOR_3 < THRESHOLD-7) {
turnleft1;
kuro++;
} else {
if(SENSOR_3 < THRESHOLD-3) {
turnleft2;
} else if (SENSOR_3 < THRESHOLD+3) {
gost;
} else if (SENSOR_3 < THRESHOLD+7) {
turnright2;
} else {
turnright1;
}
kuro=0;
}
Wait(step);
}
以下は交差点を検出した時のプログラム。turnright1をはさむ...
shortstop;
turnright1;
Wait(250);
Off(OUT_BC);
armdown;
xline;
タイマーをセットする。10秒後にシュートに移行。
long time1 = CurrentTick();
kuro=0;
while(CurrentTick()-time1 <= 10000){
if(SENSOR_3 < THRESHOLD-7) {
turnleft1;
kuro++;
} else {
if(SENSOR_3 < THRESHOLD-3) {
turnleft2;
} else if (SENSOR_3 < THRESHOLD+3) {
gost;
} else if (SENSOR_3 < THRESHOLD+7) {
turnright2;
} else {
turnright1;
}
kuro=0;
}
Wait(step);
}
シュートするプログラム。腕をあげて、ボディ本体で押し出し...
armup;
gost;
Wait(1000);
Off(OUT_BC);
}
}
}
*反省・感想 [#n7809137]
ボールを捉える機構はかなり安定性の高いものができた。
また、可動する腕はボールにふたをするように動くので、シュ...
プログラミングでの定義づけが多すぎて逆に混乱してしまった...
ただ、自分としても驚くほど安定性の高いものが出来上がった...
終了行:
目次
#contents
*初めに [#d2c11a9c]
今回の課題のうち、CからAへのコースに挑戦した。
黒線の左側をなぞって動くプログラムを組んだ。
*マシンの説明 [#v98e875f]
光センサーの両脇にアームを取り付け、その上の動作可能なア...
これで、多少距離があってもマシン本体にボールを引き寄せる...
前輪と後輪が近いが、これは小回りを利かせるため。
&ref(./sono1.jpg,20%);
&ref(./1437044059851.jpg,20%);
&ref(./1437044064800.jpg,20%);
*プログラミング [#k8fea77b]
複雑なプログラムになることが予想されたので、多くの定義...
#define THRESHOLD 40
#define speed1 50
#define speed2 20
#define Onrl(t,u) OnFwd(OUT_B,t);OnFwd(OUT_C,u);
#define gost Onrl(speed1,speed1);
#define turnleft1 Onrl(speed2,-speed2);
#define turnleft2 Onrl(speed2,0);
#define turnright1 Onrl(-speed2,speed2);
#define turnright2 Onrl(0,speed2);
#define step 1
#define nmax 300
#define shortstop Off(OUT_BC);Wait(2000);
#define xtime 1000
#define xline Onrl(speed1,speed1);Wait(xtime);shortstop;
#define armdown OnFwd(OUT_A,30);Wait(500);Off(OUT_A);
#define armup OnRev(OUT_A,30);Wait(500);Off(OUT_A);
光センサーとカウンターをセットした。カウンターは黒を検出...
task main()
{
SetSensorLight(S3);
int kuro=0;
while(true){
while(kuro < nmax){
if(SENSOR_3 < THRESHOLD-7) {
turnleft1;
kuro++;
} else {
if(SENSOR_3 < THRESHOLD-3) {
turnleft2;
} else if (SENSOR_3 < THRESHOLD+3) {
gost;
} else if (SENSOR_3 < THRESHOLD+7) {
turnright2;
} else {
turnright1;
}
kuro=0;
}
Wait(step);
}
以下は交差点を検出した時のプログラム。turnright1をはさむ...
shortstop;
turnright1;
Wait(250);
Off(OUT_BC);
armdown;
xline;
タイマーをセットする。10秒後にシュートに移行。
long time1 = CurrentTick();
kuro=0;
while(CurrentTick()-time1 <= 10000){
if(SENSOR_3 < THRESHOLD-7) {
turnleft1;
kuro++;
} else {
if(SENSOR_3 < THRESHOLD-3) {
turnleft2;
} else if (SENSOR_3 < THRESHOLD+3) {
gost;
} else if (SENSOR_3 < THRESHOLD+7) {
turnright2;
} else {
turnright1;
}
kuro=0;
}
Wait(step);
}
シュートするプログラム。腕をあげて、ボディ本体で押し出し...
armup;
gost;
Wait(1000);
Off(OUT_BC);
}
}
}
*反省・感想 [#n7809137]
ボールを捉える機構はかなり安定性の高いものができた。
また、可動する腕はボールにふたをするように動くので、シュ...
プログラミングでの定義づけが多すぎて逆に混乱してしまった...
ただ、自分としても驚くほど安定性の高いものが出来上がった...
ページ名: