2015a/Member/FA/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
課題2の目次
#contents
*課題 [#if4d069e]
今回は与えられたコース(BからAに向かう)をライントレースす...
そのときPとQの間に置いたボールを取り、ゴールにシュートす...
また、交差点や三叉路では2秒静止する。
*ロボットについて [#qedc3bab]
モーターはタイヤを動かすのに2つ、ボールをキャッチするアー...
モーターを回すとアームが下がりボールを押さえる仕組みにな...
また、シュートする時にはアームが一回転してボールを弾くよ...
本体自体は基本のロボットをほぼそのまま使用したが、光セン...
#ref(./Robot1.jpg,30%)
#ref(./Robot2.jpg,30%)
*プログラム [#f8ff16d5]
#define THRESHOLD 46
#define go_forward OnFwd(OUT_AC); // 直進
#define turn_left OnFwd(OUT_C);OnRev(OUT_A); // 左旋回
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define hold OnFwd(OUT_B);Wait(20);Off(OUT_B); //ボール...
#define shoot OnRev(OUT_B);Wait(20);Off(OUT_B);//シュー...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int black=0; // 続けて黒になった回数
while (black < 8) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
}
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
go_forward;Wait(30); //交差点を渡る
black=0; //カウンタをリセット
ClearTimer(0);
while (FastTimer(0) < 210 ) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
}
else {
turn_left;
}
}
Off(OUT_AC);Wait(100);
hold; //ボールをキャッチする
while (black < 10) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
black=0; // カウンタをリセット
}
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
go_forward;Wait(20); //交差点を渡る
int white=0; //続けて白になった回数 (最後...
while (white < 10) {
if (SENSOR_2 > THRESHOLD+2) {
turn_left;
white++; // カウンタを増やす
}
else if (SENSOR_2 > THRESHOLD-8) {
go_forward;
white=0; //カウンタをリセット
}
else {
turn_right;
white=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(100);
shoot; //ボールをシュートする
Off(OUT_ABC);
}
*工夫した点 [#s3c6b29f]
交差点を判断するために続けて黒や白になった回数を数え、そ...
続けて黒になった回数だけでなく白になった回数も数えたのは...
ボールをキャッチする時には時間を測る必要があったが、スタ...
最初は線の左側をトレースしていたが、右側をトレースしたほ...
*反省 [#ieebad8d]
交差点ごとにwhileを使ったためプログラムが長くなってしまっ...
明るさの判断をするのに3段階で分けたが、スピードを速くする...
前回は最後まできちんとした字を書くことができなかったが、...
終了行:
課題2の目次
#contents
*課題 [#if4d069e]
今回は与えられたコース(BからAに向かう)をライントレースす...
そのときPとQの間に置いたボールを取り、ゴールにシュートす...
また、交差点や三叉路では2秒静止する。
*ロボットについて [#qedc3bab]
モーターはタイヤを動かすのに2つ、ボールをキャッチするアー...
モーターを回すとアームが下がりボールを押さえる仕組みにな...
また、シュートする時にはアームが一回転してボールを弾くよ...
本体自体は基本のロボットをほぼそのまま使用したが、光セン...
#ref(./Robot1.jpg,30%)
#ref(./Robot2.jpg,30%)
*プログラム [#f8ff16d5]
#define THRESHOLD 46
#define go_forward OnFwd(OUT_AC); // 直進
#define turn_left OnFwd(OUT_C);OnRev(OUT_A); // 左旋回
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define hold OnFwd(OUT_B);Wait(20);Off(OUT_B); //ボール...
#define shoot OnRev(OUT_B);Wait(20);Off(OUT_B);//シュー...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int black=0; // 続けて黒になった回数
while (black < 8) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
}
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
go_forward;Wait(30); //交差点を渡る
black=0; //カウンタをリセット
ClearTimer(0);
while (FastTimer(0) < 210 ) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
}
else {
turn_left;
}
}
Off(OUT_AC);Wait(100);
hold; //ボールをキャッチする
while (black < 10) {
if (SENSOR_2 < THRESHOLD-6) {
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+3) {
go_forward;
black=0; // カウンタをリセット
}
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
go_forward;Wait(20); //交差点を渡る
int white=0; //続けて白になった回数 (最後...
while (white < 10) {
if (SENSOR_2 > THRESHOLD+2) {
turn_left;
white++; // カウンタを増やす
}
else if (SENSOR_2 > THRESHOLD-8) {
go_forward;
white=0; //カウンタをリセット
}
else {
turn_right;
white=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(100);
shoot; //ボールをシュートする
Off(OUT_ABC);
}
*工夫した点 [#s3c6b29f]
交差点を判断するために続けて黒や白になった回数を数え、そ...
続けて黒になった回数だけでなく白になった回数も数えたのは...
ボールをキャッチする時には時間を測る必要があったが、スタ...
最初は線の左側をトレースしていたが、右側をトレースしたほ...
*反省 [#ieebad8d]
交差点ごとにwhileを使ったためプログラムが長くなってしまっ...
明るさの判断をするのに3段階で分けたが、スピードを速くする...
前回は最後まできちんとした字を書くことができなかったが、...
ページ名: