2016a/Member/kakepon/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*課題 [#q14d3253]
#ref(2016a-mission2.png)
上図のA,B地点からロボットをスタートさせ、C,D地点にある紙...
なお美しさなども競う。
*ロボットの説明 [#m67cc8c1]
#ref(DSC_0180.JPG)
#ref(DSC_0181.JPG)
上図の黄色いはさみのような部分で紙コップを挟んでつかみ、...
#ref(DSC_0182.JPG)
アームが閉じきると、ここの部分のゴムが引っかかり、そのま...
#ref(image2 (2).JPG)
また、紙コップを挟んだ状態でアームを持ち上げたときにその...
*プログラムについて [#v4d6361f]
**定義 [#a8c575ff]
#define BLACK 44 //これ以下は黒
#define WHITE 50 //これ以上は白
#define RIGHT_S OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define RIGHT_K OnFwd(OUT_A);Off(OUT_C); //右回転
#define LEFT_S OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define LEFT_K OnFwd(OUT_C);Off(OUT_A); //左回転
#define go_fwd(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //...
#define go_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); //...
#define STEP 1
#define arm_up(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); //t秒...
#define arm_down(t) OnRev(OUT_B);Wait(t);Off(OUT_B); //t...
#define RIGHT_i(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off...
#define LEFT_i(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);OFF(...
**サブルーチン [#b601e9e1]
***ライトレース [#n90a3e75]
黒線の右側のライントレースのプログラム。交差点ではタイマ...
黒では右旋回、白では左旋回、その他では直進するようにして...
これは腕が上がっている時に使用した。
sub line_trace_i()
{
ClearTimer(0);
while(FastTimer(0) < 45) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK +2 ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE -2 ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
これは腕を下がっている状態の時使用した。
腕が下がっている状態では動きが鈍くなるため、交差点の判定...
sub line_trace_ii()
{
ClearTimer(0);
while(FastTimer(0) < 55) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK +2 ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE -2 ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
PlaySound(SOUND_UP);
Wait(100);
}
***交差点進入後 [#nbe47fe7]
交差点左折
sub turn_left()
{ ClearTimer(0);
while (FastTimer(0) < 290) {
LEFT_K;
}
}
交差点右折
sub turn_right()
{ ClearTimer(0);
while (FastTimer(0) < 90) {
RIGHT_K;
}
}
交差点直進
sub cross_fwd()
{ ClearTimer(0);
while (FastTimer(0) < 60) {
LEFT_K;
}
}
**メインプログラム [#oc0281e3]
task main()
{ go_fwd(100);
line_trace_i();
cross_fwd();
line_trace_i();
cross_fwd();
line_trace_i();
turn_right();
Off(OUT_AC);
arm_down(70);
go_fwd(200);
arm_up(90);
RIGHT_i(120);
arm_down(20);
Wait(50);
arm_down(70);
go_back(100);
arm_up(120);
RIGHT_i(50);
line_trace_ii();
arm_down(100);
go_fwd(200);
arm_up(80);
LEFT_i(130);
go_fwd(50);
arm_down(80);
}
*結果 [#cf4654ac]
ライントレースが上手く行かず一つも紙コップを運ぶことがで...
*反省と感想 [#b30e4072]
テスト走行の時点で、毎回必ず成功していた訳ではないので、...
結果的には成功できなっかたが、紙コップ一つを円の付近にま...
なかなか自分が他の五人と予定が合わせられなくて、他のメン...
終了行:
[[2016a/Member]]
*課題 [#q14d3253]
#ref(2016a-mission2.png)
上図のA,B地点からロボットをスタートさせ、C,D地点にある紙...
なお美しさなども競う。
*ロボットの説明 [#m67cc8c1]
#ref(DSC_0180.JPG)
#ref(DSC_0181.JPG)
上図の黄色いはさみのような部分で紙コップを挟んでつかみ、...
#ref(DSC_0182.JPG)
アームが閉じきると、ここの部分のゴムが引っかかり、そのま...
#ref(image2 (2).JPG)
また、紙コップを挟んだ状態でアームを持ち上げたときにその...
*プログラムについて [#v4d6361f]
**定義 [#a8c575ff]
#define BLACK 44 //これ以下は黒
#define WHITE 50 //これ以上は白
#define RIGHT_S OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define RIGHT_K OnFwd(OUT_A);Off(OUT_C); //右回転
#define LEFT_S OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define LEFT_K OnFwd(OUT_C);Off(OUT_A); //左回転
#define go_fwd(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //...
#define go_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); //...
#define STEP 1
#define arm_up(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); //t秒...
#define arm_down(t) OnRev(OUT_B);Wait(t);Off(OUT_B); //t...
#define RIGHT_i(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off...
#define LEFT_i(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);OFF(...
**サブルーチン [#b601e9e1]
***ライトレース [#n90a3e75]
黒線の右側のライントレースのプログラム。交差点ではタイマ...
黒では右旋回、白では左旋回、その他では直進するようにして...
これは腕が上がっている時に使用した。
sub line_trace_i()
{
ClearTimer(0);
while(FastTimer(0) < 45) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK +2 ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE -2 ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
これは腕を下がっている状態の時使用した。
腕が下がっている状態では動きが鈍くなるため、交差点の判定...
sub line_trace_ii()
{
ClearTimer(0);
while(FastTimer(0) < 55) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK +2 ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE -2 ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
PlaySound(SOUND_UP);
Wait(100);
}
***交差点進入後 [#nbe47fe7]
交差点左折
sub turn_left()
{ ClearTimer(0);
while (FastTimer(0) < 290) {
LEFT_K;
}
}
交差点右折
sub turn_right()
{ ClearTimer(0);
while (FastTimer(0) < 90) {
RIGHT_K;
}
}
交差点直進
sub cross_fwd()
{ ClearTimer(0);
while (FastTimer(0) < 60) {
LEFT_K;
}
}
**メインプログラム [#oc0281e3]
task main()
{ go_fwd(100);
line_trace_i();
cross_fwd();
line_trace_i();
cross_fwd();
line_trace_i();
turn_right();
Off(OUT_AC);
arm_down(70);
go_fwd(200);
arm_up(90);
RIGHT_i(120);
arm_down(20);
Wait(50);
arm_down(70);
go_back(100);
arm_up(120);
RIGHT_i(50);
line_trace_ii();
arm_down(100);
go_fwd(200);
arm_up(80);
LEFT_i(130);
go_fwd(50);
arm_down(80);
}
*結果 [#cf4654ac]
ライントレースが上手く行かず一つも紙コップを運ぶことがで...
*反省と感想 [#b30e4072]
テスト走行の時点で、毎回必ず成功していた訳ではないので、...
結果的には成功できなっかたが、紙コップ一つを円の付近にま...
なかなか自分が他の五人と予定が合わせられなくて、他のメン...
ページ名: