2019b/Member/kurisuke/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
目次
#contents
*課題2 [#e4a51b43]
下の図のようなコースを各チームで作成し,A地点を出発して黒...
私は,コース1を選択した.コース1は下図の赤線の通りで,A-B...
&ref(2019b/Member/kurisuke/Mission2/Inked2019b-mission2_L...
**今回のポイント [#r93b0d77]
黒線を正確にトレースして進むことができるか,交差点を認識...
*ロボットの説明 [#p4b74d62]
**掴む機構 [#af220d59]
ボールをしっかりつかみたかったので,掴む機構を両側からア...
&ref(2019b/Member/kurisuke/Mission2/S__5455883_LI.jpg,30%...
**車体の構造 [#u8debd6b]
基本的な構造は,NXTの設計例に載っているものとほとんど変わ...
&ref(2019b/Member/kurisuke/Mission2/ロボットの車体.jpg,30...
&ref(2019b/Member/kurisuke/Mission2/光センサーの位置.jpg,...
*プログラムの説明 [#k2e277be]
**定義 [#tde25d57]
プログラムを簡潔にするためや値の変更を簡単にするために以...
#define turn_right OnFwd(OUT_C,28); OnFwd(OUT_B,-18); /...
#define turn_left OnFwd(OUT_B,25); OnFwd(OUT_C,-15); //...
#define around_right OnFwd(OUT_C,20); OnFwd(OUT_B,-25);...
#define around_left OnFwd(OUT_B,20); OnFwd(OUT_C,-25); ...
#define go_straight OnFwd(OUT_BC,35); //直進
#define black 35 //黒の値は35
#define black_gray 43 //黒灰の値は43
#define white_gray 57 //白灰色の値は57
#define white 65 //白の値は65
#define catch OnFwd(OUT_A,-15);Wait(250); //ボールキャ...
下図のように,ライントレースで重要となる閾値は4つに分けて...
&ref(2019b/Member/kurisuke/Mission2/line..png,90%,ライン...
**左のライントレース [#f3879664]
私の選んだ課題1は工夫をすれば,左ライントレースだけでゴー...
void follow_line(long tmin,long tmax) //左トレース
{
SetSensorLight(S1);
long t = CurrentTick(); //ひとつ前のCurrentTick()を作...
long t_start = CurrentTick(); //follow_lineのプログラム...
while((CurrentTick()-t<100 || CurrentTick()-t_start<tmi...
t_start<tmax)){
if(SENSOR_1<black){
around_left;} //値<黒...
else if(SENSOR_1<black_gray){turn_left;
t = CurrentTick();} //黒の閾...
else if(SENSOR_1<white_gray){ go_straight;
t = CurrentTick();} //黒灰の...
else if(SENSOR_1<white){turn_right;
t = CurrentTick();} //白灰の...
else if(SENSOR_1>=white){around_right;
t = CurrentTick();} //白の閾...
}
Off(OUT_BC);
Wait(1000);
}
ロボットをスムーズに真っ直ぐ進めるために,黒灰と白灰の閾...
&ref(2019b/Member/kurisuke/Mission2/交差点認識.png,52%,交...
**ボールをつかむ動き [#n57d5846]
void fetch_ball(long t1)//ボールキャッチ
{
go_straight;
Wait(400);
Float(OUT_BC);
around_left; //ボールの前まで旋回
Wait(1560);
Off(OUT_BC);
Wait(500);
catch; //ボールをつかむ
Off(OUT_BC);
Wait(4000);
around_left; //旋回して方向転換
Wait(t1);
Off(OUT_BC);
Wait(1000); //以下ライントレースが続く
}
今回は,超音波センサーを用いない方針にしたため,プログラ...
&ref(2019b/Member/kurisuke/Mission2/sennkai.png,40%,旋回...
**交差点を渡る [#h7445faa]
交差点を渡るプログラムは下のようになる.交差点を認識した...
void intersection_straight()
{
turn_right; //右折
Wait(100);
go_straight; // 直進
Wait(300);
Off(OUT_BC); //以下ライントレースが続く
}
**メインプログラム [#w2083b3d]
少し長いマクロをインライン関数を使うことで,メインのプロ...
task main()
{
go_straight;
Wait(1500);
follow_line(0,50000);//AからD
intersection_straight();//交差点
follow_line(900,50000);//DからG
follow_line(2500,5000);//GからH
fetch_ball(3550);//HからI
follow_line(10000,500000);//IからA
go_straight;
Wait(1500);
Off(OUT_BC);//終了
}
*課題2の反省と感想 [#f0f14ef7]
今回は,課題1の時よりもプログラミングに慣れ大まかなプログ...
次の課題3では,今までの課題の反省を生かして,さらに良いロ...
終了行:
[[2019b/Member]]
目次
#contents
*課題2 [#e4a51b43]
下の図のようなコースを各チームで作成し,A地点を出発して黒...
私は,コース1を選択した.コース1は下図の赤線の通りで,A-B...
&ref(2019b/Member/kurisuke/Mission2/Inked2019b-mission2_L...
**今回のポイント [#r93b0d77]
黒線を正確にトレースして進むことができるか,交差点を認識...
*ロボットの説明 [#p4b74d62]
**掴む機構 [#af220d59]
ボールをしっかりつかみたかったので,掴む機構を両側からア...
&ref(2019b/Member/kurisuke/Mission2/S__5455883_LI.jpg,30%...
**車体の構造 [#u8debd6b]
基本的な構造は,NXTの設計例に載っているものとほとんど変わ...
&ref(2019b/Member/kurisuke/Mission2/ロボットの車体.jpg,30...
&ref(2019b/Member/kurisuke/Mission2/光センサーの位置.jpg,...
*プログラムの説明 [#k2e277be]
**定義 [#tde25d57]
プログラムを簡潔にするためや値の変更を簡単にするために以...
#define turn_right OnFwd(OUT_C,28); OnFwd(OUT_B,-18); /...
#define turn_left OnFwd(OUT_B,25); OnFwd(OUT_C,-15); //...
#define around_right OnFwd(OUT_C,20); OnFwd(OUT_B,-25);...
#define around_left OnFwd(OUT_B,20); OnFwd(OUT_C,-25); ...
#define go_straight OnFwd(OUT_BC,35); //直進
#define black 35 //黒の値は35
#define black_gray 43 //黒灰の値は43
#define white_gray 57 //白灰色の値は57
#define white 65 //白の値は65
#define catch OnFwd(OUT_A,-15);Wait(250); //ボールキャ...
下図のように,ライントレースで重要となる閾値は4つに分けて...
&ref(2019b/Member/kurisuke/Mission2/line..png,90%,ライン...
**左のライントレース [#f3879664]
私の選んだ課題1は工夫をすれば,左ライントレースだけでゴー...
void follow_line(long tmin,long tmax) //左トレース
{
SetSensorLight(S1);
long t = CurrentTick(); //ひとつ前のCurrentTick()を作...
long t_start = CurrentTick(); //follow_lineのプログラム...
while((CurrentTick()-t<100 || CurrentTick()-t_start<tmi...
t_start<tmax)){
if(SENSOR_1<black){
around_left;} //値<黒...
else if(SENSOR_1<black_gray){turn_left;
t = CurrentTick();} //黒の閾...
else if(SENSOR_1<white_gray){ go_straight;
t = CurrentTick();} //黒灰の...
else if(SENSOR_1<white){turn_right;
t = CurrentTick();} //白灰の...
else if(SENSOR_1>=white){around_right;
t = CurrentTick();} //白の閾...
}
Off(OUT_BC);
Wait(1000);
}
ロボットをスムーズに真っ直ぐ進めるために,黒灰と白灰の閾...
&ref(2019b/Member/kurisuke/Mission2/交差点認識.png,52%,交...
**ボールをつかむ動き [#n57d5846]
void fetch_ball(long t1)//ボールキャッチ
{
go_straight;
Wait(400);
Float(OUT_BC);
around_left; //ボールの前まで旋回
Wait(1560);
Off(OUT_BC);
Wait(500);
catch; //ボールをつかむ
Off(OUT_BC);
Wait(4000);
around_left; //旋回して方向転換
Wait(t1);
Off(OUT_BC);
Wait(1000); //以下ライントレースが続く
}
今回は,超音波センサーを用いない方針にしたため,プログラ...
&ref(2019b/Member/kurisuke/Mission2/sennkai.png,40%,旋回...
**交差点を渡る [#h7445faa]
交差点を渡るプログラムは下のようになる.交差点を認識した...
void intersection_straight()
{
turn_right; //右折
Wait(100);
go_straight; // 直進
Wait(300);
Off(OUT_BC); //以下ライントレースが続く
}
**メインプログラム [#w2083b3d]
少し長いマクロをインライン関数を使うことで,メインのプロ...
task main()
{
go_straight;
Wait(1500);
follow_line(0,50000);//AからD
intersection_straight();//交差点
follow_line(900,50000);//DからG
follow_line(2500,5000);//GからH
fetch_ball(3550);//HからI
follow_line(10000,500000);//IからA
go_straight;
Wait(1500);
Off(OUT_BC);//終了
}
*課題2の反省と感想 [#f0f14ef7]
今回は,課題1の時よりもプログラミングに慣れ大まかなプログ...
次の課題3では,今までの課題の反省を生かして,さらに良いロ...
ページ名: