2015a/Member/shibamasa/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/Member]]
*課題 [#r3fead0d]
#ref(./2015a-mission2.png,,40%)
B地点からA地点へ(Q交差点では直進、P三叉路では直進)黒い線...
*ロボットの説明 [#q736d003]
-全体像
右旋回、左旋回をしやすいので、説明書にものっている最も基...
モーターを2つ使用し、左右のタイヤを別々で稼働できるように...
前方に光センサーをつけ、ボールを捕球するためのアームを取...
#ref(./IMG_1747.jpg,,40%)
-アーム
モータを1つ使用し、モーターを回すことで虫取り網を振るよ...
アームは、ボールを囲むような「ロ」の字型にした。
シュートする際はアームを上げ、車体でボールを押すような形...
#ref(./IMG_1748.jpg,,40%)
-センサー
センサーは、紙面からの距離が近いほど正確にライントレース...
した。センサーの位置は前方にしたが、車体の中心にした方が...
#ref(./IMG_1751.jpg,,40%)
*プログラム [#z064af71]
アームは上げた状態でスタート。
ボールを扱う前後は小休止をはさむことで安定性を増した。
#define BLACK 40 //以下は黒
#define WHITE 45 //以上は白
#define go_forward OnFwd(OUT_AC); //直進
#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define STEP 1 // 一回の判定で進む時間
#define short_break Off(OUT_AC); Wait(200); // 小休止
#define CROSS_TIME 20 // 交差点通過にかかる時間
#define cross_line go_forward;Wait(CROSS_TIME);short_brea...
#define nMAX 8 //通常のカーブとして許容できる繰り返しの...
#define DOWN OnFwd(OUT_B);Wait(40);Off(OUT_B); //アームを...
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B); //アームを...
#define shot go_forward;Wait(100); //シュート
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて黒になった回数
A地点→Q地点
if (true) //黒を続けてnMAX回繰り返さない間、通常のライン...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE )//...
{
go_forward; // ...
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリセ...
}
Wait(STEP);
}
nOnline=0; //カウンタリセ...
}
if (true) //黒を続けてnMAX回繰り返さない間、通常のライ...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE) ...
{
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
交差点、ボール捕球
short_break; //小休止
turn_right;Wait(35); //方向修正
short_break; //小休止
DOWN; //アームを下げ捕球
turn_left;Wait(30); //方向修正
short_break; //小休止
cross_line; //交差点を渡る
nOnline=0; //カウンタリセット
Q地点→P地点→A地点
if (true) //黒を続けてnMAX回繰り返さない間、通常のライ...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // ...
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE )...
{
go_forward; /...
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリ...
}
Wait(STEP);
}
nOnline=0; //カウンタリ...
}
B地点、シュート
short_break; //小休止
turn_right;Wait(35); //方向修正
short_break; //小休止
UP; //アームを上げる
shot; //車体でボールを押し、シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
*苦労した点 [#nb2f7038]
-方向転換や、交差点を渡る時間などを計測し、微調整したこと。
-ラインの左側の境界線をトレースしたため、交差点と左折を区...
-シュートする際、ボールの位置が安定せず上手くゴールに入ら...
*反省[#rd5cbf61]
-ロボットの進むスピードが遅く、スムーズなものとは言えなか...
-ロボもプログラムも、サンプルに頼りがちだった。自分で考え...
終了行:
[[2015a/Member]]
*課題 [#r3fead0d]
#ref(./2015a-mission2.png,,40%)
B地点からA地点へ(Q交差点では直進、P三叉路では直進)黒い線...
*ロボットの説明 [#q736d003]
-全体像
右旋回、左旋回をしやすいので、説明書にものっている最も基...
モーターを2つ使用し、左右のタイヤを別々で稼働できるように...
前方に光センサーをつけ、ボールを捕球するためのアームを取...
#ref(./IMG_1747.jpg,,40%)
-アーム
モータを1つ使用し、モーターを回すことで虫取り網を振るよ...
アームは、ボールを囲むような「ロ」の字型にした。
シュートする際はアームを上げ、車体でボールを押すような形...
#ref(./IMG_1748.jpg,,40%)
-センサー
センサーは、紙面からの距離が近いほど正確にライントレース...
した。センサーの位置は前方にしたが、車体の中心にした方が...
#ref(./IMG_1751.jpg,,40%)
*プログラム [#z064af71]
アームは上げた状態でスタート。
ボールを扱う前後は小休止をはさむことで安定性を増した。
#define BLACK 40 //以下は黒
#define WHITE 45 //以上は白
#define go_forward OnFwd(OUT_AC); //直進
#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define STEP 1 // 一回の判定で進む時間
#define short_break Off(OUT_AC); Wait(200); // 小休止
#define CROSS_TIME 20 // 交差点通過にかかる時間
#define cross_line go_forward;Wait(CROSS_TIME);short_brea...
#define nMAX 8 //通常のカーブとして許容できる繰り返しの...
#define DOWN OnFwd(OUT_B);Wait(40);Off(OUT_B); //アームを...
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B); //アームを...
#define shot go_forward;Wait(100); //シュート
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて黒になった回数
A地点→Q地点
if (true) //黒を続けてnMAX回繰り返さない間、通常のライン...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE )//...
{
go_forward; // ...
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリセ...
}
Wait(STEP);
}
nOnline=0; //カウンタリセ...
}
if (true) //黒を続けてnMAX回繰り返さない間、通常のライ...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE) ...
{
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
交差点、ボール捕球
short_break; //小休止
turn_right;Wait(35); //方向修正
short_break; //小休止
DOWN; //アームを下げ捕球
turn_left;Wait(30); //方向修正
short_break; //小休止
cross_line; //交差点を渡る
nOnline=0; //カウンタリセット
Q地点→P地点→A地点
if (true) //黒を続けてnMAX回繰り返さない間、通常のライ...
{
while (nOnline <nMAX)
{
if (SENSOR_2 < BLACK) // 線上なら
{
turn_left; // ...
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE )...
{
go_forward; /...
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタリ...
}
Wait(STEP);
}
nOnline=0; //カウンタリ...
}
B地点、シュート
short_break; //小休止
turn_right;Wait(35); //方向修正
short_break; //小休止
UP; //アームを上げる
shot; //車体でボールを押し、シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
*苦労した点 [#nb2f7038]
-方向転換や、交差点を渡る時間などを計測し、微調整したこと。
-ラインの左側の境界線をトレースしたため、交差点と左折を区...
-シュートする際、ボールの位置が安定せず上手くゴールに入ら...
*反省[#rd5cbf61]
-ロボットの進むスピードが遅く、スムーズなものとは言えなか...
-ロボもプログラムも、サンプルに頼りがちだった。自分で考え...
ページ名: