2019a/Member/gacchan/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題 [#j496acd3]
[[2019a/Mission2]]
&ref(./2019a-mission2.png,60%);
私は以下のルートで走行するロボットを作成した。
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
*ロボットの構造 [#kc253e0a]
**ロボット全体の構造 [#r52dd6c8]
レゴのクラフトガイドを参考にタイヤと光センサーを付け、そ...
&ref(./image1.jpeg,40%);
**アームの構造 [#a7ffc8ff]
ピンポン玉をすくい取るような機構にした。ピンポン玉まで進...
&ref(./image3.jpeg,60%);
*プログラム内容 [#v7c13868]
**ライントレースの方法 [#na352db6]
図のように光センサーの取る値に対するロボットの動きを5段...
&ref(./hikari3.png,60%);
**交差点での止まり方 [#r0a1c5c8]
&ref(./hikari5.png,60%);
?よりも?の方が長い時間、線上を通るので、光センサーの値が...
**#define[#lab1035a]
***5段階に分けた光センサーの取る値 [#kf9da661]
#define BLACKS 38
#define BLACK 45
#define THRESHOLD 53
#define WHITE 60
#define WHITES 68
***光センサーに対応したロボットの動き [#g27bc6bf]
#define left_s OnFwd(OUT_A,20);OnRev(OUT_B,20);
#define left OnFwd(OUT_A,20);Off(OUT_B);
#define right_s OnFwd(OUT_B,20);OnRev(OUT_A,20);
#define right OnFwd(OUT_B,20);Off(OUT_A);
#define forward OnFwd(OUT_AB,20);
**サブルーチン [#wb67a32a]
***線の左側をライントレースするプログラミング [#x98e539a]
sub follow_line_left()
{
SetSensorLight(S3);
long t0=0,t1=0,time_max=2;
while(t1-t0<time_max){
if(SENSOR_3<BLACKS){
t0=CurrentTick();
left_s;until(SENSOR_3<THRESHOLD);
t1=CurrentTick();
}else if(SENSOR_3<BLACK){
left;
}else if(SENSOR_3<THRESHOLD){
forward;
}else if(SENSOR_3<WHITE){
right;
}else if(SENSOR_3<WHITES){
right_s;
}
}
Off(OUT_AB);
Wait(1000);
}
***線の右側をライントレースするプログラミング [#ja616424]
sub follow_line_right()
{
SetSensorLight(S3);
long t0=0,t1=0,time_max=2;
while(t1-t0<time_max){
if(SENSOR_3<BLACKS){
t0=CurrentTick();
right_s; until(SENSOR_3<THRESHOLD);
t1=CurrentTick();
}else if(SENSOR_3<BLACK){
right;
}else if(SENSOR_3<THRESHOLD){
forward;
}else if(SENSOR_3<WHITE){
left;
}else if(SENSOR_3<WHITES){
left_s;
}
}
Off(OUT_AB);
Wait(1000);
}
**メインプログラム [#ne8b38c8]
task main()
{
long t=1000;
forward;
Wait(1000); //Aから出る。
follow_line_left(); //BからCを通りDで止まる。
forward;
Wait(t); //Dの交差点を渡る。
follow_line_left(); //DからEを通りFで止まる。
right;
Wait(t); //Gで方向転回。
follow_line_right(); //GからHまで移動。
repeat(2){
forward;
Wait(t);
follow_line_right();
} //HからIを通りJで止まる。
right_s;
Wait(t);
follow_line_right(); //JからKまで移動。
left_s;
Wait(t); //Kで方向転換。
follow_line_left(); //KからLに移動。
OnRev(OUT_C,20);
Wait(500); //ボールをすくい取る。
left_s;
Wait(4000); //Lで方向転換。
follow_line_right(); //LからKに移動。
forward;
Wait(2000); //交差点を渡る。
follow_line_right(); //KからMに移動。
OnFwd(OUT_C,20);
Wait(500); //ボールを下ろす。
OnRev(OUT_AB,20);
Wait(500);
OnFwd(OUT_AB,100);
Wait(t); //シュート。
Off(OUT_AB); //停止。
}
*反省・感想[#d7a75c1d]
今回の課題ではライントレース、交差点で止まるなどの点で前...
終了行:
#contents
*課題 [#j496acd3]
[[2019a/Mission2]]
&ref(./2019a-mission2.png,60%);
私は以下のルートで走行するロボットを作成した。
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
*ロボットの構造 [#kc253e0a]
**ロボット全体の構造 [#r52dd6c8]
レゴのクラフトガイドを参考にタイヤと光センサーを付け、そ...
&ref(./image1.jpeg,40%);
**アームの構造 [#a7ffc8ff]
ピンポン玉をすくい取るような機構にした。ピンポン玉まで進...
&ref(./image3.jpeg,60%);
*プログラム内容 [#v7c13868]
**ライントレースの方法 [#na352db6]
図のように光センサーの取る値に対するロボットの動きを5段...
&ref(./hikari3.png,60%);
**交差点での止まり方 [#r0a1c5c8]
&ref(./hikari5.png,60%);
?よりも?の方が長い時間、線上を通るので、光センサーの値が...
**#define[#lab1035a]
***5段階に分けた光センサーの取る値 [#kf9da661]
#define BLACKS 38
#define BLACK 45
#define THRESHOLD 53
#define WHITE 60
#define WHITES 68
***光センサーに対応したロボットの動き [#g27bc6bf]
#define left_s OnFwd(OUT_A,20);OnRev(OUT_B,20);
#define left OnFwd(OUT_A,20);Off(OUT_B);
#define right_s OnFwd(OUT_B,20);OnRev(OUT_A,20);
#define right OnFwd(OUT_B,20);Off(OUT_A);
#define forward OnFwd(OUT_AB,20);
**サブルーチン [#wb67a32a]
***線の左側をライントレースするプログラミング [#x98e539a]
sub follow_line_left()
{
SetSensorLight(S3);
long t0=0,t1=0,time_max=2;
while(t1-t0<time_max){
if(SENSOR_3<BLACKS){
t0=CurrentTick();
left_s;until(SENSOR_3<THRESHOLD);
t1=CurrentTick();
}else if(SENSOR_3<BLACK){
left;
}else if(SENSOR_3<THRESHOLD){
forward;
}else if(SENSOR_3<WHITE){
right;
}else if(SENSOR_3<WHITES){
right_s;
}
}
Off(OUT_AB);
Wait(1000);
}
***線の右側をライントレースするプログラミング [#ja616424]
sub follow_line_right()
{
SetSensorLight(S3);
long t0=0,t1=0,time_max=2;
while(t1-t0<time_max){
if(SENSOR_3<BLACKS){
t0=CurrentTick();
right_s; until(SENSOR_3<THRESHOLD);
t1=CurrentTick();
}else if(SENSOR_3<BLACK){
right;
}else if(SENSOR_3<THRESHOLD){
forward;
}else if(SENSOR_3<WHITE){
left;
}else if(SENSOR_3<WHITES){
left_s;
}
}
Off(OUT_AB);
Wait(1000);
}
**メインプログラム [#ne8b38c8]
task main()
{
long t=1000;
forward;
Wait(1000); //Aから出る。
follow_line_left(); //BからCを通りDで止まる。
forward;
Wait(t); //Dの交差点を渡る。
follow_line_left(); //DからEを通りFで止まる。
right;
Wait(t); //Gで方向転回。
follow_line_right(); //GからHまで移動。
repeat(2){
forward;
Wait(t);
follow_line_right();
} //HからIを通りJで止まる。
right_s;
Wait(t);
follow_line_right(); //JからKまで移動。
left_s;
Wait(t); //Kで方向転換。
follow_line_left(); //KからLに移動。
OnRev(OUT_C,20);
Wait(500); //ボールをすくい取る。
left_s;
Wait(4000); //Lで方向転換。
follow_line_right(); //LからKに移動。
forward;
Wait(2000); //交差点を渡る。
follow_line_right(); //KからMに移動。
OnFwd(OUT_C,20);
Wait(500); //ボールを下ろす。
OnRev(OUT_AB,20);
Wait(500);
OnFwd(OUT_AB,100);
Wait(t); //シュート。
Off(OUT_AB); //停止。
}
*反省・感想[#d7a75c1d]
今回の課題ではライントレース、交差点で止まるなどの点で前...
ページ名: