2017a/Member/Taiki/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
* 課題2 [#pbb2e130]
#ref(./2017a-mission2.png,75%,コース全体像)
上図のコースを作成し、そのラインを認識して走らせるプログ...
詳しくは[[課題2>2017a/Mission2]]参照
私は「E地点右折コース」のプログラムを作成した。
* ロボットの説明 [#m7645e56]
#ref(./1499343142721.jpg,75%,コース全体像);
#ref(./1499304166499.jpg,75%,コース全体像);
#ref(./1499304158029.jpg,75%,コース全体像);
最初は、説明書の通りに作ったベースの前方にセンサーを付け...
コースから大きくズレてしまうというという問題が生じた。
そこで、上の写真のようにタイヤを接続する部分のパーツを極...
* プログラムの説明 [#qefd5b8e]
** 定数 [#r361ab3f]
センサーによって今どこを走っているのかを認識させるために...
#define SHIRO 50 //コース外の紙の上の色
#define SHIROHAI 44 //コースの縁の境界面
#define HAI 39 //コース内側
** マクロ [#t7c8ebec]
#define turn_r Off(OUT_C);OnFwd(OUT_A);Wait(2);Off(OUT_A...
#define turn_l Off(OUT_A);OnFwd(OUT_C);Wait(2);Off(OUT_A...
#define senkai_l OnFwd(OUT_C);OnRev(OUT_A);Wait(1);Off(O...
#define senkai_r OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(O...
交差点に到着して次のコースへ入る分岐点には、3つの動きを...
#define tenkan_r OnFwd(OUT_AC); Wait(40);OnFwd(OUT_A);On...
#define tenkan_l OnFwd(OUT_AC); Wait(40);OnFwd(OUT_C);On...
#define tenkan_tyokusin OnFwd(OUT_AC);Wait(30);Off(OUT_A...
#define itiziteisi Off(OUT_AC); PlaySound(SOUND_DOWN); W...
**ライン上を走らせるブログラム [#u9d8abb1]
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while( n < 40)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;n++;}
}
ラインの境界上を走らせ、一番黒い所を走ったらカウンターを...
このカウンターの定数と総数を区間ごとに変えて設定すること...
HからGまでのコースは、小さいカーブの内側を走る部分があり...
** メインタスク [#vc84780d]
task main()
{ SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while( n < 40)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;n++;}
} //AからE
PlaySound(SOUND_UP); tenkan_r;
int m=0;
while( m < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_l;m++;}
} //EからP
itiziteisi; OnFwd(OUT_C);tenkan_l;
int l=0;
while( l < 4)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;l++;}
} //PからQ
PlaySound(SOUND_UP); tenkan_tyokusin;
int o=0;
while( o < 4)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;o++;}
} //QからR
PlaySound(SOUND_UP);tenkan_tyokusin;
int p=0;
while( p < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;p++;}
} //RからT
itiziteisi; tenkan_tyokusin;
int q=0;
while( q < 9)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;q++;}
} //TからT
itiziteisi; tenkan_tyokusin;
int r=0;
while( r < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;r++;}
} //TH
PlaySound(SOUND_UP); tenkan_r;
int a=0;
while( a < 130)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;a++;}
} //HからG
PlaySound(SOUND_UP); tenkan_tyokusin;
int b=0;
while( b < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;b++;}
} //GからS
itiziteisi; tenkan_l;
int c=0;
while( c < 3)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;c++;}
} //SからP
PlaySound(SOUND_UP); tenkan_tyokusin;
int x=0;
while( x < 1)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;x++;}
} //PからQ
PlaySound(SOUND_UP); tenkan_tyokusin;
int y=0;
while( y < 3)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;y++;}
} //QからF
PlaySound(SOUND_UP); tenkan_r;
int z=0;
while( z < 50)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;z++;}
} //FからA
PlaySound(SOUND_DOWN); Off(OUT_AC);
}
* まとめ [#e8264463]
** 反省 [#w4ea5522]
まずロボットの形状については、今回は4輪による走行を行っ...
この問題は、タイヤを二輪にしていれば、回転の幅やセンサー...
次に、プログラムについては、線上を走らせるだけならば上手...
ある程度似た距離を走らせる部分毎にまとめて上手く良い最大...
** 感想 [#bdcc8e67]
今回の課題は、前回のものと違い、ロボットよりもプログラム...
次に機会があった時には、カーブや交差点がより増えて複雑に...
終了行:
目次
#contents
* 課題2 [#pbb2e130]
#ref(./2017a-mission2.png,75%,コース全体像)
上図のコースを作成し、そのラインを認識して走らせるプログ...
詳しくは[[課題2>2017a/Mission2]]参照
私は「E地点右折コース」のプログラムを作成した。
* ロボットの説明 [#m7645e56]
#ref(./1499343142721.jpg,75%,コース全体像);
#ref(./1499304166499.jpg,75%,コース全体像);
#ref(./1499304158029.jpg,75%,コース全体像);
最初は、説明書の通りに作ったベースの前方にセンサーを付け...
コースから大きくズレてしまうというという問題が生じた。
そこで、上の写真のようにタイヤを接続する部分のパーツを極...
* プログラムの説明 [#qefd5b8e]
** 定数 [#r361ab3f]
センサーによって今どこを走っているのかを認識させるために...
#define SHIRO 50 //コース外の紙の上の色
#define SHIROHAI 44 //コースの縁の境界面
#define HAI 39 //コース内側
** マクロ [#t7c8ebec]
#define turn_r Off(OUT_C);OnFwd(OUT_A);Wait(2);Off(OUT_A...
#define turn_l Off(OUT_A);OnFwd(OUT_C);Wait(2);Off(OUT_A...
#define senkai_l OnFwd(OUT_C);OnRev(OUT_A);Wait(1);Off(O...
#define senkai_r OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(O...
交差点に到着して次のコースへ入る分岐点には、3つの動きを...
#define tenkan_r OnFwd(OUT_AC); Wait(40);OnFwd(OUT_A);On...
#define tenkan_l OnFwd(OUT_AC); Wait(40);OnFwd(OUT_C);On...
#define tenkan_tyokusin OnFwd(OUT_AC);Wait(30);Off(OUT_A...
#define itiziteisi Off(OUT_AC); PlaySound(SOUND_DOWN); W...
**ライン上を走らせるブログラム [#u9d8abb1]
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while( n < 40)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;n++;}
}
ラインの境界上を走らせ、一番黒い所を走ったらカウンターを...
このカウンターの定数と総数を区間ごとに変えて設定すること...
HからGまでのコースは、小さいカーブの内側を走る部分があり...
** メインタスク [#vc84780d]
task main()
{ SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while( n < 40)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;n++;}
} //AからE
PlaySound(SOUND_UP); tenkan_r;
int m=0;
while( m < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_l;m++;}
} //EからP
itiziteisi; OnFwd(OUT_C);tenkan_l;
int l=0;
while( l < 4)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;l++;}
} //PからQ
PlaySound(SOUND_UP); tenkan_tyokusin;
int o=0;
while( o < 4)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;o++;}
} //QからR
PlaySound(SOUND_UP);tenkan_tyokusin;
int p=0;
while( p < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;p++;}
} //RからT
itiziteisi; tenkan_tyokusin;
int q=0;
while( q < 9)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;q++;}
} //TからT
itiziteisi; tenkan_tyokusin;
int r=0;
while( r < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;r++;}
} //TH
PlaySound(SOUND_UP); tenkan_r;
int a=0;
while( a < 130)
{ if(SENSOR_1 > SHIRO)
{senkai_l;}
else if(SENSOR_1 > SHIROHAI)
{turn_l;}
else if(SENSOR_1 > HAI)
{turn_r;}
else
{senkai_r;a++;}
} //HからG
PlaySound(SOUND_UP); tenkan_tyokusin;
int b=0;
while( b < 10)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;b++;}
} //GからS
itiziteisi; tenkan_l;
int c=0;
while( c < 3)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;c++;}
} //SからP
PlaySound(SOUND_UP); tenkan_tyokusin;
int x=0;
while( x < 1)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;x++;}
} //PからQ
PlaySound(SOUND_UP); tenkan_tyokusin;
int y=0;
while( y < 3)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;y++;}
} //QからF
PlaySound(SOUND_UP); tenkan_r;
int z=0;
while( z < 50)
{ if(SENSOR_1 > SHIRO)
{senkai_r;}
else if(SENSOR_1 > SHIROHAI)
{turn_r;}
else if(SENSOR_1 > HAI)
{turn_l;}
else
{senkai_l;z++;}
} //FからA
PlaySound(SOUND_DOWN); Off(OUT_AC);
}
* まとめ [#e8264463]
** 反省 [#w4ea5522]
まずロボットの形状については、今回は4輪による走行を行っ...
この問題は、タイヤを二輪にしていれば、回転の幅やセンサー...
次に、プログラムについては、線上を走らせるだけならば上手...
ある程度似た距離を走らせる部分毎にまとめて上手く良い最大...
** 感想 [#bdcc8e67]
今回の課題は、前回のものと違い、ロボットよりもプログラム...
次に機会があった時には、カーブや交差点がより増えて複雑に...
ページ名: