2018b/Member/kaito/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018b/Member]]
*課題 [#ofb64055]
指定されたコースで黒い線に沿って動き、途中でボールをゴー...
*ロボット [#m77d9da9]
&ref(2018b/Member/kaito/Mission2/KIMG0094 (2).jpg,50%,コ...
ボールを投げる腕をつけた
まっすぐボールを飛ばしやすく転がしやすくするように腕のス...
&ref(2018b/Member/kaito/Mission2/KIMG0093.jpg,50%,コース);
ボールを持った時の様子
移動の振動でボールが落ちないように幅を調整した。
*自分ができた・できなかったこと [#w72a4dbe]
・交差点を認識して止まるプログラミングが二種類できた。
・超音波センサを使って缶の位置を探るプログラミングができ...
*ライントレースのプログラミング(交差点を認識する) [#c68...
**黒が一定時間以上になた場合交差点を認識(自分で作ったプ...
#define TR_R OnFwd(OUT_B,15);OnRev(OUT_C,15); //右旋回
#define GO_R Float(OUT_B);OnFwd(OUT_C,30); //右折
#define GO_S OnFwd(OUT_BC,30); //直進
#define GO_L OnFwd(OUT_B,30);Float(OUT_C); //左折
#define TR_L OnFwd(OUT_C,15);OnRev(OUT_B,15); //直進
#define MIDL 40 //中間色
task main()
{
SetSensorLight(S1);
long t0=CurrentTick();
while (CurrentTick()-t0<1000) { //黒が1秒続くまで...
if(SENSOR_1>MIDL+20){TR_R
t0=CurrentTick();} //...
else if(SENSOR_1>MIDL+10){GO_R
t0=CurrentTick();}...
else if(SENSOR_1>MIDL){GO_S
t0=CurrentTick();} ...
else if(SENSOR_1>MIDL-10){GO_L
t0=CurrentTick();}...
else{TR_L
CurrentTick();} //真っ黒なら左旋回・...
}
Off(OUT_BC);
}
**変数を用いた場合(自分で作ったもの) [#w97dd0ba]
#define TR_R OnFwd(OUT_B,15);OnRev(OUT_C,15); //右旋回
#define GO_R Float(OUT_B);OnFwd(OUT_C,30); //右折
#define GO_S OnFwd(OUT_BC,30); //直進
#define GO_L OnFwd(OUT_B,30);Float(OUT_C); //左折
#define TR_L OnFwd(OUT_C,15);OnRev(OUT_B,15); //直進
#define MIDL 45 //中間色
task main()
{
SetSensorLight(S1);
int n=0;
while(true){
if(SENSOR_1>MIDL+8){TR_R} //真っ白なら右旋回
else if(SENSOR_1>MIDL+6){GO_R} //ちょい白...
else if(SENSOR_1>MIDL){GO_S} //グレーなら...
else if(SENSOR_1>MIDL-4){GO_L} //ちょい黒...
else do{
TR_L
Wait(1);
n++;}while (n<28); //真っ黒なら0.0...
}
Off(OUT_BC);
}
*缶を見つけるプログラミング(相方のプログラム) [#o4899f1c]
void mitsukeru()
{
ResetTachoCount(OUT_ABC);
OnFwd(OUT_A,50);
OnRev(OUT_C,50);
SetSensorLowspeed(S4);
int d1;
d1=1000;//仮の最小値
long t0=CurrentTick();
long t1=CurrentTick();
long t2=CurrentTick();
while(t2-t0<=3570){ //3.57秒間サーチする
t2=CurrentTick();
if(SensorUS(S4)<d1){
d1=SensorUS(S4);//最小値より小さい値が出た時、...
t1=CurrentTick();//時間をリセットする
}
t2=CurrentTick();
}
t0=CurrentTick();
Off(OUT_AC);
OnFwd(OUT_C,50);
OnRev(OUT_A,50);
Wait(t0-t1);//最後に、最小値をとった場所まで回る
}
ある値を設定してその値より小さくなった時の時刻を記憶し、...
*完成したプログラミング(相方のプログラム) [#u6acc65e]
task main()
{
Line();//AからBまでライントレース
RIGHT(15);//Bを右折
Line();//BからKまでライントレース
Wait(1000);//一時停止
LEFT(15);//Kを左折
Line();//KからJまでライントレース
go(50);//微調節
Line();//KからJまでライントレース
go(100);//微調節
mitsukeru();//缶を探す
OnFwd(OUT_B,30);//缶を落とす
Wait(2000);
Off(OUT_B);
Line();//JからIまでライントレース
go(50)//微調節
Line();//IからHまでライントレース
LEFT(15);//左に曲がる
Line();//HからGまでライントレース
Wait(1000);//一時停止
LEFT(15);//Gで左折
Line2();//ある場所まで進み続ける
Line();//そこからEmまでライントレース
Wait(1000);//一時停止
RIGHT(15);//Eを曲がる
Line();//Lまで行く
go(100);//ゴールに入る
Off(OUT_BC);//
}
ライントレース→交差点(右折・直進・左折)→ライントレース...
*まとめ [#icdf9542]
結局のところ課題を解決することはできなかった。次回はチー...
終了行:
[[2018b/Member]]
*課題 [#ofb64055]
指定されたコースで黒い線に沿って動き、途中でボールをゴー...
*ロボット [#m77d9da9]
&ref(2018b/Member/kaito/Mission2/KIMG0094 (2).jpg,50%,コ...
ボールを投げる腕をつけた
まっすぐボールを飛ばしやすく転がしやすくするように腕のス...
&ref(2018b/Member/kaito/Mission2/KIMG0093.jpg,50%,コース);
ボールを持った時の様子
移動の振動でボールが落ちないように幅を調整した。
*自分ができた・できなかったこと [#w72a4dbe]
・交差点を認識して止まるプログラミングが二種類できた。
・超音波センサを使って缶の位置を探るプログラミングができ...
*ライントレースのプログラミング(交差点を認識する) [#c68...
**黒が一定時間以上になた場合交差点を認識(自分で作ったプ...
#define TR_R OnFwd(OUT_B,15);OnRev(OUT_C,15); //右旋回
#define GO_R Float(OUT_B);OnFwd(OUT_C,30); //右折
#define GO_S OnFwd(OUT_BC,30); //直進
#define GO_L OnFwd(OUT_B,30);Float(OUT_C); //左折
#define TR_L OnFwd(OUT_C,15);OnRev(OUT_B,15); //直進
#define MIDL 40 //中間色
task main()
{
SetSensorLight(S1);
long t0=CurrentTick();
while (CurrentTick()-t0<1000) { //黒が1秒続くまで...
if(SENSOR_1>MIDL+20){TR_R
t0=CurrentTick();} //...
else if(SENSOR_1>MIDL+10){GO_R
t0=CurrentTick();}...
else if(SENSOR_1>MIDL){GO_S
t0=CurrentTick();} ...
else if(SENSOR_1>MIDL-10){GO_L
t0=CurrentTick();}...
else{TR_L
CurrentTick();} //真っ黒なら左旋回・...
}
Off(OUT_BC);
}
**変数を用いた場合(自分で作ったもの) [#w97dd0ba]
#define TR_R OnFwd(OUT_B,15);OnRev(OUT_C,15); //右旋回
#define GO_R Float(OUT_B);OnFwd(OUT_C,30); //右折
#define GO_S OnFwd(OUT_BC,30); //直進
#define GO_L OnFwd(OUT_B,30);Float(OUT_C); //左折
#define TR_L OnFwd(OUT_C,15);OnRev(OUT_B,15); //直進
#define MIDL 45 //中間色
task main()
{
SetSensorLight(S1);
int n=0;
while(true){
if(SENSOR_1>MIDL+8){TR_R} //真っ白なら右旋回
else if(SENSOR_1>MIDL+6){GO_R} //ちょい白...
else if(SENSOR_1>MIDL){GO_S} //グレーなら...
else if(SENSOR_1>MIDL-4){GO_L} //ちょい黒...
else do{
TR_L
Wait(1);
n++;}while (n<28); //真っ黒なら0.0...
}
Off(OUT_BC);
}
*缶を見つけるプログラミング(相方のプログラム) [#o4899f1c]
void mitsukeru()
{
ResetTachoCount(OUT_ABC);
OnFwd(OUT_A,50);
OnRev(OUT_C,50);
SetSensorLowspeed(S4);
int d1;
d1=1000;//仮の最小値
long t0=CurrentTick();
long t1=CurrentTick();
long t2=CurrentTick();
while(t2-t0<=3570){ //3.57秒間サーチする
t2=CurrentTick();
if(SensorUS(S4)<d1){
d1=SensorUS(S4);//最小値より小さい値が出た時、...
t1=CurrentTick();//時間をリセットする
}
t2=CurrentTick();
}
t0=CurrentTick();
Off(OUT_AC);
OnFwd(OUT_C,50);
OnRev(OUT_A,50);
Wait(t0-t1);//最後に、最小値をとった場所まで回る
}
ある値を設定してその値より小さくなった時の時刻を記憶し、...
*完成したプログラミング(相方のプログラム) [#u6acc65e]
task main()
{
Line();//AからBまでライントレース
RIGHT(15);//Bを右折
Line();//BからKまでライントレース
Wait(1000);//一時停止
LEFT(15);//Kを左折
Line();//KからJまでライントレース
go(50);//微調節
Line();//KからJまでライントレース
go(100);//微調節
mitsukeru();//缶を探す
OnFwd(OUT_B,30);//缶を落とす
Wait(2000);
Off(OUT_B);
Line();//JからIまでライントレース
go(50)//微調節
Line();//IからHまでライントレース
LEFT(15);//左に曲がる
Line();//HからGまでライントレース
Wait(1000);//一時停止
LEFT(15);//Gで左折
Line2();//ある場所まで進み続ける
Line();//そこからEmまでライントレース
Wait(1000);//一時停止
RIGHT(15);//Eを曲がる
Line();//Lまで行く
go(100);//ゴールに入る
Off(OUT_BC);//
}
ライントレース→交差点(右折・直進・左折)→ライントレース...
*まとめ [#icdf9542]
結局のところ課題を解決することはできなかった。次回はチー...
ページ名: