2014a/Member/an/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題の説明 [#j102d4a4]
#ref(2014a/Member/an/Mission1/2012b-mission1.png,100%)
図のようなコースを各自で作成した上で、次のような動作をす...
コースの詳細については授業中説明する(下の図において、黒...
1.スタート地点から出発し、黒い線にそって動く。
2.一つ目の十字の交差点と二つめの十字の交差点の間に置かれ...
3.さらに黒線に沿って動いてゴール地点を目指す。
4.ゴールに向けてピンポン玉をシュートする。
ただしT字路では、直進、右折、左折を正しく判断させること。...
さらに以下のような動作に挑戦することが望ましい。
•ゴールエリア外からピンポン玉をシュートする。
•曲線部中央の障害物に接触しないようにすること。
*ロボット [#s7ed91bc]
**本体 [#y6b5a3c3]
#ref(2014a/Member/an/Mission1/IMG_20140704_153730.jpg,30%...
#ref(2014a/Member/an/Mission1/IMG_20140704_153751.jpg,30%...
大きなタイヤを前輪として速度を調節しました。
光センサーを前に、地面から比較的に上に設置し影の影響を受...
無駄な部品は使わずに頑丈なタイプに作りました。
アームは作れなかったので装着してない状態です。
*プログラム [#n713ccca]
**定義 [#cad8221d]
#define THRESHOLD 40 // しきい値
#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; OnFwd(OUT_C); OnRev(OUT_...
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define STEP 1 // 動作する
#define Max 50 // 同じ動作を50回まで続ける
#define short_break Off(OUT_AC); Wait(500) // 少し止...
#define cross_time 200 // 交差点と判断して前進する時間
#define cross_line set_power_L; Wait(cross_time) // 交...
**基本プログラム [#id3d30c0]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT); // 光センサー...
int n; // 交差点の判断に使う
n=0; // 最初の値を0から始める
while(true) {
while( n < Max ) // 50回まで同じ動作を繰り返す。
{ if (SENSOR_2 < THRESHOLD-15) {turn_left1; n++;} ...
else { if(SENSOR_2 < THRESHOLD-8) { turn_left1;}...
else if (SENSOR_2 < THRESHOLD-3){turn_left0; } ...
else if (SENSOR_2 < THRESHOLD+3) go_forward;} ...
else if (SENSOR_2 < THRESHOLD+8) {turn_right0;...
else {turn_right1;} n=0; } // センサ...
Wait(STEP); } // 1回動作を行う
short_break; // 判別
turn_right1; // 右旋回する
Wait(Max*STEP); // 50回動作を行う
cross_line; // 交差点と判断し、直進する
n=0; } // 判別のやり直し
}
交差点を判断させるためにint nを利用する。nは0から始め、...
また、直角カーブと交差点を判断するときは、交差点に入った...
この作業で交差点また2種類のカーブの区分をつけることができ...
*反省 [#oaf45ccf]
ばらす前に写真を沢山とっておかなかったため2枚しかありませ...
アームを作れなかったのでアームプログラムもつくれませんで...
基本プログラム的にもたまたまトレースから外れる場合があり...
終了行:
目次
#contents
*課題の説明 [#j102d4a4]
#ref(2014a/Member/an/Mission1/2012b-mission1.png,100%)
図のようなコースを各自で作成した上で、次のような動作をす...
コースの詳細については授業中説明する(下の図において、黒...
1.スタート地点から出発し、黒い線にそって動く。
2.一つ目の十字の交差点と二つめの十字の交差点の間に置かれ...
3.さらに黒線に沿って動いてゴール地点を目指す。
4.ゴールに向けてピンポン玉をシュートする。
ただしT字路では、直進、右折、左折を正しく判断させること。...
さらに以下のような動作に挑戦することが望ましい。
•ゴールエリア外からピンポン玉をシュートする。
•曲線部中央の障害物に接触しないようにすること。
*ロボット [#s7ed91bc]
**本体 [#y6b5a3c3]
#ref(2014a/Member/an/Mission1/IMG_20140704_153730.jpg,30%...
#ref(2014a/Member/an/Mission1/IMG_20140704_153751.jpg,30%...
大きなタイヤを前輪として速度を調節しました。
光センサーを前に、地面から比較的に上に設置し影の影響を受...
無駄な部品は使わずに頑丈なタイプに作りました。
アームは作れなかったので装着してない状態です。
*プログラム [#n713ccca]
**定義 [#cad8221d]
#define THRESHOLD 40 // しきい値
#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; OnFwd(OUT_C); OnRev(OUT_...
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define STEP 1 // 動作する
#define Max 50 // 同じ動作を50回まで続ける
#define short_break Off(OUT_AC); Wait(500) // 少し止...
#define cross_time 200 // 交差点と判断して前進する時間
#define cross_line set_power_L; Wait(cross_time) // 交...
**基本プログラム [#id3d30c0]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT); // 光センサー...
int n; // 交差点の判断に使う
n=0; // 最初の値を0から始める
while(true) {
while( n < Max ) // 50回まで同じ動作を繰り返す。
{ if (SENSOR_2 < THRESHOLD-15) {turn_left1; n++;} ...
else { if(SENSOR_2 < THRESHOLD-8) { turn_left1;}...
else if (SENSOR_2 < THRESHOLD-3){turn_left0; } ...
else if (SENSOR_2 < THRESHOLD+3) go_forward;} ...
else if (SENSOR_2 < THRESHOLD+8) {turn_right0;...
else {turn_right1;} n=0; } // センサ...
Wait(STEP); } // 1回動作を行う
short_break; // 判別
turn_right1; // 右旋回する
Wait(Max*STEP); // 50回動作を行う
cross_line; // 交差点と判断し、直進する
n=0; } // 判別のやり直し
}
交差点を判断させるためにint nを利用する。nは0から始め、...
また、直角カーブと交差点を判断するときは、交差点に入った...
この作業で交差点また2種類のカーブの区分をつけることができ...
*反省 [#oaf45ccf]
ばらす前に写真を沢山とっておかなかったため2枚しかありませ...
アームを作れなかったのでアームプログラムもつくれませんで...
基本プログラム的にもたまたまトレースから外れる場合があり...
ページ名: