2015a/Member/bizzyD/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題 [#g2ac3d5d]
#ref(./2015a-mission21.png,70%)
次のいずれかの経路を黒い線にそって動くロボットを作成する ...
•A地点からB地点へ (P三叉路およびQ交差点はともに直進)
•B地点からA地点へ (Q交差点では直進、P三叉路では直進)
•C地点からA地点へ (Q交差点では直進、P三叉路では右折)
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
可能であれば、A,B,Cのそれぞれにエリアに入る三叉路付近から...
自分はC地点からA地点へ行く経路を選んだ。
*ロボットの説明、アームの動かし方 [#sb5ebfdd]
#ref(./DSC_00071.jpg,40%)
#ref(./DSC_00041.jpg,50%)
アームを上下に動かし、光センサと横に取り付けたブロックの...
#ref(./1DSC_0005.jpg,70%)
そして、シュートするときはアームを上げて、後退し、アーム...
*プログラムの説明 [#if20647d]
#define BLACK 40 // これ以下は黒
#define WHITE 50 // これ以上は白
#define SPEED 35
#define speed 25
#define go_forward OnFwd(OUT_BC,SPEED); // 直進
#define turn_left OnFwd(OUT_B,speed);Off(OUT_C); ...
#define turn_right Off(OUT_B);OnFwd(OUT_C,speed); ...
#define STEP 1 // 一回の判断で動作させる時間
#define nMAX 200
#define short_break Off(OUT_BC);Wait(2000); /...
#define arm_down OnFwd(OUT_A,SPEED);Wait(500);Off(OUT_A)...
#define CROSS_TIME 500 // 交差点を通...
#define cross_line OnFwd(OUT_BC,SPEED);Wait(CROSS_TIME);...
#define arm_up OnRev(OUT_A,SPEED);Wait(500);Off(OUT_A);...
task main()
{
SetSensorLight(S3);
int nOnline=0; // 続けて黒になった回数(カ...
while (nOnline < nMAX) {
if (SENSOR_3 < BLACK) {
turn_left; // 黒の時は左に曲がる
nOnline++; // カウンタを増やす
} else if (SENSOR_3 < WHITE) {
go_forward; // 黒と白の間の時は直進する
} else {
turn_right; // 白の時は右に曲がる
nOnline=0; // カウンタリセット
}
Wait(STEP);
}
short_break; // 小休止
turn_right; Wait(nMAX*STEP);
cross_line; // 交差点を渡る
arm_down; // アームを下す
nOnline=0; // カウンタをリセ...
スタート 〜 一つ目の交差点、ボールのキャッチ
long t0 = CurrentTick(); // 開始時間
while (CurrentTick()-t0 <= 14000) { // ...
while (nOnline < nMAX) { // 再びライントレース...
if (SENSOR_3 < BLACK) {
turn_left; // 黒の時は左に曲がる
nOnline++; // カウンタを増やす
} else if (SENSOR_3 < WHITE) {
go_forward; // 黒と白の間の時は...
} else {
turn_right; // 白の時は右に曲がる
nOnline=0; // カウンタをリセットする
}
Wait(STEP);
}
}
// シュート
arm_up; // アームを上げる...
OnRev(OUT_BC,SPEED);Wait(600); // 後退する...
Off(OUT_BC); ...
arm_down; // アームを下げる ...
OnFwd(OUT_BC,SPEED);Wait(600); // 前進す...
Off(OUT_BC); ...
nOnline=0; // カウンタをリセット...
}
交差点,タイマーをセット〜ゴール
*改善点 [#r6cf5c7e]
三回に一回はカーブを交差点として認識してしまうので、その...
*感想 [#m43caad8]
今回の課題は、ライントレースについては特に苦労なくできた...
終了行:
#contents
*課題 [#g2ac3d5d]
#ref(./2015a-mission21.png,70%)
次のいずれかの経路を黒い線にそって動くロボットを作成する ...
•A地点からB地点へ (P三叉路およびQ交差点はともに直進)
•B地点からA地点へ (Q交差点では直進、P三叉路では直進)
•C地点からA地点へ (Q交差点では直進、P三叉路では右折)
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
可能であれば、A,B,Cのそれぞれにエリアに入る三叉路付近から...
自分はC地点からA地点へ行く経路を選んだ。
*ロボットの説明、アームの動かし方 [#sb5ebfdd]
#ref(./DSC_00071.jpg,40%)
#ref(./DSC_00041.jpg,50%)
アームを上下に動かし、光センサと横に取り付けたブロックの...
#ref(./1DSC_0005.jpg,70%)
そして、シュートするときはアームを上げて、後退し、アーム...
*プログラムの説明 [#if20647d]
#define BLACK 40 // これ以下は黒
#define WHITE 50 // これ以上は白
#define SPEED 35
#define speed 25
#define go_forward OnFwd(OUT_BC,SPEED); // 直進
#define turn_left OnFwd(OUT_B,speed);Off(OUT_C); ...
#define turn_right Off(OUT_B);OnFwd(OUT_C,speed); ...
#define STEP 1 // 一回の判断で動作させる時間
#define nMAX 200
#define short_break Off(OUT_BC);Wait(2000); /...
#define arm_down OnFwd(OUT_A,SPEED);Wait(500);Off(OUT_A)...
#define CROSS_TIME 500 // 交差点を通...
#define cross_line OnFwd(OUT_BC,SPEED);Wait(CROSS_TIME);...
#define arm_up OnRev(OUT_A,SPEED);Wait(500);Off(OUT_A);...
task main()
{
SetSensorLight(S3);
int nOnline=0; // 続けて黒になった回数(カ...
while (nOnline < nMAX) {
if (SENSOR_3 < BLACK) {
turn_left; // 黒の時は左に曲がる
nOnline++; // カウンタを増やす
} else if (SENSOR_3 < WHITE) {
go_forward; // 黒と白の間の時は直進する
} else {
turn_right; // 白の時は右に曲がる
nOnline=0; // カウンタリセット
}
Wait(STEP);
}
short_break; // 小休止
turn_right; Wait(nMAX*STEP);
cross_line; // 交差点を渡る
arm_down; // アームを下す
nOnline=0; // カウンタをリセ...
スタート 〜 一つ目の交差点、ボールのキャッチ
long t0 = CurrentTick(); // 開始時間
while (CurrentTick()-t0 <= 14000) { // ...
while (nOnline < nMAX) { // 再びライントレース...
if (SENSOR_3 < BLACK) {
turn_left; // 黒の時は左に曲がる
nOnline++; // カウンタを増やす
} else if (SENSOR_3 < WHITE) {
go_forward; // 黒と白の間の時は...
} else {
turn_right; // 白の時は右に曲がる
nOnline=0; // カウンタをリセットする
}
Wait(STEP);
}
}
// シュート
arm_up; // アームを上げる...
OnRev(OUT_BC,SPEED);Wait(600); // 後退する...
Off(OUT_BC); ...
arm_down; // アームを下げる ...
OnFwd(OUT_BC,SPEED);Wait(600); // 前進す...
Off(OUT_BC); ...
nOnline=0; // カウンタをリセット...
}
交差点,タイマーをセット〜ゴール
*改善点 [#r6cf5c7e]
三回に一回はカーブを交差点として認識してしまうので、その...
*感想 [#m43caad8]
今回の課題は、ライントレースについては特に苦労なくできた...
ページ名: