2012b/Member/naotoxu/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2012b/Member]]~
&size(18){目次};
#contents
*課題1[#ka48748d]
#ref(2012b/Member/naotoxu/Mission1/2012b-mission1.png,100...
※2012年度後期/課題ページの図を使いました。
図のようなコースを各自で作成した上で、次のような動作をす...
+スタート地点から出発し、スタート地点外のすぐ近くに置かれ...
+ピンポン玉をつかんだら速やかにスタート地点の境界の黒線に...
+ゴール地点に到達したら、ゴールエリア外からピンポン玉をゴ...
*メンバー [#pde98dde]
-naotoxu このページの作成者。機械システム工学科
-candle 頼れる相方。情報工学科
*ロボットの説明 [#v98318c4]
-作っていく過程などは記録していなかったので、本番に走った...
#ref(2012b/Member/naotoxu/Mission1/zentai.jpeg,80%,上から...
本番用のロボット、名前はない。
横幅を抑え、大きさもコンパクトにした。
光センサーは、より車軸に近づけ誤差を少なくした。
写真を見て分かるようにピンポン玉をつかんで離す動きしかで...
#ref(2012b/Member/naotoxu/Mission1/hasami1.jpeg,60%,ピン...
#ref(2012b/Member/naotoxu/Mission1/hasami2.jpeg,60%,ピン...
ピンポン玉をつかむ機構。
モーターの動力をゴムで歯車に伝えそれに応じて動く、という...
次は車体の後ろにある補助輪。
滑らかに曲がるためには地味に重要なパーツ。
#ref(2012b/Member/naotoxu/Mission1/hojorin.jpeg,80%,補助輪)
パッと見てどうなっているかわからないので~
これを、
#ref(2012b/Member/naotoxu/Mission1/hojorin_kaisetu.png,wr...
ブロックの上の部分が360度回転するので平面内なら自由自在に...
最後に横からの写真
#ref(2012b/Member/naotoxu/Mission1/yoko.jpeg,80%,横からの...
両側から本体を固定し、安定度を増した。
*プログラムの説明 [#d55bb747]
**本番で使ったプログラム [#u450a4f7]
-プログラムの概要
前半に急カーブの数が一定量を越えたら交差点渡りモードにな...
#define THRESHOLD 42 //しきい値、調節してこの値にな...
#define HIPOWER 7 //直線用のパワー
#define LOWPOWER 2 //カーブ用のパワー
#define set_power_H SetPower(OUT_AC,HIPOWER); //直線...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //カー...
#define go_forward set_power_H; OnFwd(OUT_AC); ...
#define turn_left1 set_power_L; OnRev(OUT_A); OnFwd(OUT_...
#define turn_left0 set_power_L; Off(OUT_A); OnFwd(OUT_C)...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define STEP 1 //1回の判断で動作させる時間(これは...
#define n0MAX 15 //通常のカーブとして許容できる繰り...
#define n1AMAX 2 //コース前半の急なカーブと判断され...
#define n1BMAX 4 //コース後半の急なカーブと判断され...
#define short_break Off(OUT_AC); Wait(100); ...
#define CROSS_TIME 20 ...
/* 交差点を渡る */
#define cross_line set_power_L; OnFwd(OUT_AC); Wait(CROS...
/* ピンポン玉をつかむ */
#define catch_ball set_power_L; Wait(300); OnRev(OUT_B);\
Wait(50); Off(OUT_B);OnFwd(OUT_AC); Wait(100); OnFwd(OUT...
Wait(50); Off(OUT_B); OnRev(OUT_AC); Wait(20); Off(OUT_A...
/* ピンポン玉をゴールにねじ込む */
#define kick_ball OnFwd(OUT_AC); OnRev(OUT_B);\
Wait(150); Off(OUT_B); OnRev(OUT_AC); Wait(150); Off(OUT...
#define first_time 400 ...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT); //光センサーをセ...
int n0nline=0; //続けて黒になっ...
int n1nline=0; //急カーブの回数
catch_ball;
while(n1nline < n1AMAX) //急なカーブが2回...
{
while(n0nline < n0MAX) //急なカーブがあるまで繰...
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++;...
else if (SENSOR_2 < THRESHOLD -2){ turn_left0; } ...
else if (SENSOR_2 < THRESHOLD +2){ go_forward; } ...
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; } ...
else { turn_right1; } ...
Wait(STEP);
}
PlaySound(SOUND_UP); //急なカーブの度に高い音を1...
n0nline=0; //カウンタをリセット
n1nline++; //急なカーブの数をカウント
}
n1nline=0;
ClearTimer(0); //タイマーをリ...
while(FastTimer(0) <= first_time) //交差点を渡り...
{
while(n0nline < n0MAX)
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++; }
else if (SENSOR_2 < THRESHOLD -2){ turn_left0...
else if (SENSOR_2 < THRESHOLD +2){ go_forward; }
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; }
else { turn_right1; }
Wait(STEP);
}
short_break; //小休止
turn_right1; Wait(n0MAX*STEP); //進行方向修正
cross_line; //交差点を渡る
n0nline=0; //カウンタをリセット
}
n0nline=0;
while((FastTimer(0) > first_time)&&(n1nline <n1BM...
{
while(n0nline < n0MAX)
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++; }
else if (SENSOR_2 < THRESHOLD -2){ turn_left0; }
else if (SENSOR_2 < THRESHOLD +2){ go_forward; }
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; }
else { turn_right1; }
Wait(STEP);
}
n1nline++;
n0nline=0;
PlaySound(SOUND_DOWN); //急なカーブがある度に低い音を...
}
short_break;
turn_right1; Wait(n0MAX*STEP); Off(OUT_AC); //方向転換
kick_ball; //シュート
}
-このプログラムでは急なカーブをロボットが判断するかどうか...
-n0MAXの値を何回も入れて試し、大きい値だと急なカーブに入...
-最後のシュートはピンポン玉を蹴るのではなく、押し込む形に...
*まとめ [#fc3b8df3]
**工夫した点 [#c2019c55]
-本番用のコースをきれいに書いた。(割とどうでもいい)
-ロボットをコンパクトにしようと心がけ、機構もシンプルに仕...
-いろんな値を入れる際に時間をかけてふさわしい値を探した。...
-急なカーブの度に音を鳴らしてわかりやすくした。
**反省点 [#ub84444a]
-一番はシュートをしていないこと、機構がうまくいかなかった...
-パーツを作る担当を明確に分けなかった点。
-プログラムは改善すべき点がたくさんあった。特に急カーブの...
**感想 [#y3b80752]
-はじめてロボットとプログラムを自分で作って、戸惑うことが...
-だが、やっていると楽しさもわかってきてもう少し時間をかけ...
-プログラムや機構にいたらない点が多かったのでこの経験を次...
終了行:
[[2012b/Member]]~
&size(18){目次};
#contents
*課題1[#ka48748d]
#ref(2012b/Member/naotoxu/Mission1/2012b-mission1.png,100...
※2012年度後期/課題ページの図を使いました。
図のようなコースを各自で作成した上で、次のような動作をす...
+スタート地点から出発し、スタート地点外のすぐ近くに置かれ...
+ピンポン玉をつかんだら速やかにスタート地点の境界の黒線に...
+ゴール地点に到達したら、ゴールエリア外からピンポン玉をゴ...
*メンバー [#pde98dde]
-naotoxu このページの作成者。機械システム工学科
-candle 頼れる相方。情報工学科
*ロボットの説明 [#v98318c4]
-作っていく過程などは記録していなかったので、本番に走った...
#ref(2012b/Member/naotoxu/Mission1/zentai.jpeg,80%,上から...
本番用のロボット、名前はない。
横幅を抑え、大きさもコンパクトにした。
光センサーは、より車軸に近づけ誤差を少なくした。
写真を見て分かるようにピンポン玉をつかんで離す動きしかで...
#ref(2012b/Member/naotoxu/Mission1/hasami1.jpeg,60%,ピン...
#ref(2012b/Member/naotoxu/Mission1/hasami2.jpeg,60%,ピン...
ピンポン玉をつかむ機構。
モーターの動力をゴムで歯車に伝えそれに応じて動く、という...
次は車体の後ろにある補助輪。
滑らかに曲がるためには地味に重要なパーツ。
#ref(2012b/Member/naotoxu/Mission1/hojorin.jpeg,80%,補助輪)
パッと見てどうなっているかわからないので~
これを、
#ref(2012b/Member/naotoxu/Mission1/hojorin_kaisetu.png,wr...
ブロックの上の部分が360度回転するので平面内なら自由自在に...
最後に横からの写真
#ref(2012b/Member/naotoxu/Mission1/yoko.jpeg,80%,横からの...
両側から本体を固定し、安定度を増した。
*プログラムの説明 [#d55bb747]
**本番で使ったプログラム [#u450a4f7]
-プログラムの概要
前半に急カーブの数が一定量を越えたら交差点渡りモードにな...
#define THRESHOLD 42 //しきい値、調節してこの値にな...
#define HIPOWER 7 //直線用のパワー
#define LOWPOWER 2 //カーブ用のパワー
#define set_power_H SetPower(OUT_AC,HIPOWER); //直線...
#define set_power_L SetPower(OUT_AC,LOWPOWER); //カー...
#define go_forward set_power_H; OnFwd(OUT_AC); ...
#define turn_left1 set_power_L; OnRev(OUT_A); OnFwd(OUT_...
#define turn_left0 set_power_L; Off(OUT_A); OnFwd(OUT_C)...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define STEP 1 //1回の判断で動作させる時間(これは...
#define n0MAX 15 //通常のカーブとして許容できる繰り...
#define n1AMAX 2 //コース前半の急なカーブと判断され...
#define n1BMAX 4 //コース後半の急なカーブと判断され...
#define short_break Off(OUT_AC); Wait(100); ...
#define CROSS_TIME 20 ...
/* 交差点を渡る */
#define cross_line set_power_L; OnFwd(OUT_AC); Wait(CROS...
/* ピンポン玉をつかむ */
#define catch_ball set_power_L; Wait(300); OnRev(OUT_B);\
Wait(50); Off(OUT_B);OnFwd(OUT_AC); Wait(100); OnFwd(OUT...
Wait(50); Off(OUT_B); OnRev(OUT_AC); Wait(20); Off(OUT_A...
/* ピンポン玉をゴールにねじ込む */
#define kick_ball OnFwd(OUT_AC); OnRev(OUT_B);\
Wait(150); Off(OUT_B); OnRev(OUT_AC); Wait(150); Off(OUT...
#define first_time 400 ...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT); //光センサーをセ...
int n0nline=0; //続けて黒になっ...
int n1nline=0; //急カーブの回数
catch_ball;
while(n1nline < n1AMAX) //急なカーブが2回...
{
while(n0nline < n0MAX) //急なカーブがあるまで繰...
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++;...
else if (SENSOR_2 < THRESHOLD -2){ turn_left0; } ...
else if (SENSOR_2 < THRESHOLD +2){ go_forward; } ...
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; } ...
else { turn_right1; } ...
Wait(STEP);
}
PlaySound(SOUND_UP); //急なカーブの度に高い音を1...
n0nline=0; //カウンタをリセット
n1nline++; //急なカーブの数をカウント
}
n1nline=0;
ClearTimer(0); //タイマーをリ...
while(FastTimer(0) <= first_time) //交差点を渡り...
{
while(n0nline < n0MAX)
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++; }
else if (SENSOR_2 < THRESHOLD -2){ turn_left0...
else if (SENSOR_2 < THRESHOLD +2){ go_forward; }
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; }
else { turn_right1; }
Wait(STEP);
}
short_break; //小休止
turn_right1; Wait(n0MAX*STEP); //進行方向修正
cross_line; //交差点を渡る
n0nline=0; //カウンタをリセット
}
n0nline=0;
while((FastTimer(0) > first_time)&&(n1nline <n1BM...
{
while(n0nline < n0MAX)
{
if (SENSOR_2 < THRESHOLD -4){ turn_left1; n0nline++; }
else if (SENSOR_2 < THRESHOLD -2){ turn_left0; }
else if (SENSOR_2 < THRESHOLD +2){ go_forward; }
else if (SENSOR_2 < THRESHOLD +4){ turn_right0; }
else { turn_right1; }
Wait(STEP);
}
n1nline++;
n0nline=0;
PlaySound(SOUND_DOWN); //急なカーブがある度に低い音を...
}
short_break;
turn_right1; Wait(n0MAX*STEP); Off(OUT_AC); //方向転換
kick_ball; //シュート
}
-このプログラムでは急なカーブをロボットが判断するかどうか...
-n0MAXの値を何回も入れて試し、大きい値だと急なカーブに入...
-最後のシュートはピンポン玉を蹴るのではなく、押し込む形に...
*まとめ [#fc3b8df3]
**工夫した点 [#c2019c55]
-本番用のコースをきれいに書いた。(割とどうでもいい)
-ロボットをコンパクトにしようと心がけ、機構もシンプルに仕...
-いろんな値を入れる際に時間をかけてふさわしい値を探した。...
-急なカーブの度に音を鳴らしてわかりやすくした。
**反省点 [#ub84444a]
-一番はシュートをしていないこと、機構がうまくいかなかった...
-パーツを作る担当を明確に分けなかった点。
-プログラムは改善すべき点がたくさんあった。特に急カーブの...
**感想 [#y3b80752]
-はじめてロボットとプログラムを自分で作って、戸惑うことが...
-だが、やっていると楽しさもわかってきてもう少し時間をかけ...
-プログラムや機構にいたらない点が多かったのでこの経験を次...
ページ名: