2013a/Member/A.K.416/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2012b/Member]]
プログラムを貼り付ける時は整形済みテキストを使う
詳しく加工丁寧すぎるくらいがいい
写真は小さめで
コマンド convert -geometry サイズ 元のファイル
*ライントレースde空き缶運び [#fc3e4d1d]
*ロボットの紹介 [#n619a93f]
今回のライントレースでは、角やカーブがあり大きなロボット...
~特徴的なのはやはり前面から延びる2本の棒です。棒の間隔を...
~棒の間隔と空き缶の幅が同じだと棒の間に入れ込むときに、ず...
空き缶→○ ○ ...
棒→| | ⇒ |○| これは入る | | これ...
*コースの攻略法 [#y4d4ac72]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
**時計回り [#h952dd39]
+スタート直後の曲がり角を曲がるためにスタートから?までは...
+空き缶をつかむまでは速度を落としたライントレースをする。
+それ以降は交差点有りのプログラムに切り替えてライントレー...
+空き缶を置くところをちょっとすぎたところで、空き缶を置く...
+再びただのライントレース用プログラムに切り替える。
*プログラムの説明 [#e15a1eb1]
#define off Off(OUT_BC);
#define TURN_TIME 500 //1/4回転の時間
#define BLACK 31 //下限
#define WHITE 62 //上限
#define go OnFwd(OUT_BC,);
#define left OnFwd(OUT_B,35);Off(OUT_C);
#define right OnFwd(OUT_C,35);Off(OUT_B);
#define THRESHOLD 46
#define lleft OnFwd(OUT_B,35);OnRev(OUT_C,35);
#define rright OnFwd(OUT_C,35);OnRev(OUT_B,35);
task main()
{
SetSensorLight(S1);
int n=0;
long t0 = CurrentTick();
long t1 = CurrentTick();
変数を定義する
while(CurrentTick()-t0 <= 5350)
{
時間指定でプログラムの切り替えを行う
if (SENSOR_1 < 35){OnFwd(OUT_B,20);Off(OUT_C);}
else {if(SENSOR_1 < 42){OnFwd(OUT_B,20);OnRev(OUT_...
else if (SENSOR_1 < 50){OnFwd(OUT_BC,20);}
else {OnFwd(OUT_C,20);Off(OUT_B);}
}
}
速度を早くしすぎると脱線する確率が高くなるので最初だけ速...
while (true)
{
while(CurrentTick()-t1 <= 43500)
{
while(n<5000)
{
if (SENSOR_1 < 35){left;n++; }
else {if(SENSOR_1 < 42){lleft}
else if (SENSOR_1 < 50){go}
else if (SENSOR_1 < 56){right}
else {rright}
n=0;
}
}
Wait(1000);
rright;
Wait(5000);
go
Wait(200);
n=0;
}
交差点用プログラム:nが一定値を超えたら交差点と判断する
off
Wait(500);
OnFwd(OUT_C,25);OnRev(OUT_B,25);
Wait(1100);
off
Wait(500);
OnRev(OUT_BC,30);
Wait(900);
off
rright
Wait(1000);
缶を指定の場所に置くためにプログラム。行動終了時に他のラ...
while(true)
{
if (SENSOR_1 < 35){left}
else {if(SENSOR_1 < 42){lleft}
else if (SENSOR_1 < 50){go}
else {right}
}
}
缶をおいたあとのライントレース用プログラム。右回転は必要...
}
}
*まとめ [#yd2e7fd2]
交差点用のnの値がおかしいのか、最後の交差点を渡ることがた...
~次回の課題の時も、色々と工夫をして安定性に富んだものを作...
終了行:
[[2012b/Member]]
プログラムを貼り付ける時は整形済みテキストを使う
詳しく加工丁寧すぎるくらいがいい
写真は小さめで
コマンド convert -geometry サイズ 元のファイル
*ライントレースde空き缶運び [#fc3e4d1d]
*ロボットの紹介 [#n619a93f]
今回のライントレースでは、角やカーブがあり大きなロボット...
~特徴的なのはやはり前面から延びる2本の棒です。棒の間隔を...
~棒の間隔と空き缶の幅が同じだと棒の間に入れ込むときに、ず...
空き缶→○ ○ ...
棒→| | ⇒ |○| これは入る | | これ...
*コースの攻略法 [#y4d4ac72]
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
**時計回り [#h952dd39]
+スタート直後の曲がり角を曲がるためにスタートから?までは...
+空き缶をつかむまでは速度を落としたライントレースをする。
+それ以降は交差点有りのプログラムに切り替えてライントレー...
+空き缶を置くところをちょっとすぎたところで、空き缶を置く...
+再びただのライントレース用プログラムに切り替える。
*プログラムの説明 [#e15a1eb1]
#define off Off(OUT_BC);
#define TURN_TIME 500 //1/4回転の時間
#define BLACK 31 //下限
#define WHITE 62 //上限
#define go OnFwd(OUT_BC,);
#define left OnFwd(OUT_B,35);Off(OUT_C);
#define right OnFwd(OUT_C,35);Off(OUT_B);
#define THRESHOLD 46
#define lleft OnFwd(OUT_B,35);OnRev(OUT_C,35);
#define rright OnFwd(OUT_C,35);OnRev(OUT_B,35);
task main()
{
SetSensorLight(S1);
int n=0;
long t0 = CurrentTick();
long t1 = CurrentTick();
変数を定義する
while(CurrentTick()-t0 <= 5350)
{
時間指定でプログラムの切り替えを行う
if (SENSOR_1 < 35){OnFwd(OUT_B,20);Off(OUT_C);}
else {if(SENSOR_1 < 42){OnFwd(OUT_B,20);OnRev(OUT_...
else if (SENSOR_1 < 50){OnFwd(OUT_BC,20);}
else {OnFwd(OUT_C,20);Off(OUT_B);}
}
}
速度を早くしすぎると脱線する確率が高くなるので最初だけ速...
while (true)
{
while(CurrentTick()-t1 <= 43500)
{
while(n<5000)
{
if (SENSOR_1 < 35){left;n++; }
else {if(SENSOR_1 < 42){lleft}
else if (SENSOR_1 < 50){go}
else if (SENSOR_1 < 56){right}
else {rright}
n=0;
}
}
Wait(1000);
rright;
Wait(5000);
go
Wait(200);
n=0;
}
交差点用プログラム:nが一定値を超えたら交差点と判断する
off
Wait(500);
OnFwd(OUT_C,25);OnRev(OUT_B,25);
Wait(1100);
off
Wait(500);
OnRev(OUT_BC,30);
Wait(900);
off
rright
Wait(1000);
缶を指定の場所に置くためにプログラム。行動終了時に他のラ...
while(true)
{
if (SENSOR_1 < 35){left}
else {if(SENSOR_1 < 42){lleft}
else if (SENSOR_1 < 50){go}
else {right}
}
}
缶をおいたあとのライントレース用プログラム。右回転は必要...
}
}
*まとめ [#yd2e7fd2]
交差点用のnの値がおかしいのか、最後の交差点を渡ることがた...
~次回の課題の時も、色々と工夫をして安定性に富んだものを作...
ページ名: