2015a/Member/Yuki_/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/Member]]
〜課題2の目次〜
#contents
*課題2の内容 [#zf0a17c6]
各チームで指定されたコースを作り、「ミッション」を遂行す...
詳しくはhttp://yakushi.shinshu-u.ac.jp/robotics/?2015a%2F...
*製作したロボットの概要 [#s2500f45]
**ロボットの概観 [#sf976709]
#ref(2015071621100500.jpg)
**ロボットについて [#nf0a1ee5]
***使用したモータ [#m9b4ce9c]
-車輪(モータB,C)
-ボールを捕まえるためのアーム(モータA)
***工夫した点 [#nede290b]
#ref(2015071621513900.jpg)
最初は光センサーを車輪より後ろに取り付けていたがうまくラ...
#ref(2015072011231200.jpg)
そのため、光センサーの後ろにはタッチセンサーが付いており...
***問題点 [#b38f2bf7]
-ボールがある程度固定されていないとタッチセンサーが機能し...
-電池を交換することで閾値やスピードが大幅に変化した
*プログラムの説明 [#x75661a7]
**C地点からA地点へ [#n0dd8607]
#define IKICHI_BLACK 45
#define SPEED_HIGH 35
#define SPEED_LOW 30
#define turn_left OnFwd(OUT_B,SPEED_HIGH);Off(OUT_C);
#define turn_left1 OnRev(OUT_C,SPEED_LOW);OnFwd(OUT_B,SP...
#define turn_right Off(OUT_B);OnFwd(OUT_C,SPEED_HIGH);
#define turn_right1 OnRev(OUT_B,SPEED_LOW);OnFwd(OUT_C,S...
#define STEP 1
#define nMax 30
#define short_break Off(OUT_BC);Wait(2000);
#define go_forward OnFwd(OUT_BC,SPEED_HIGH);
sub catch_ball() //ボールを捕まえる
{
SetSensorTouch(S2);
if (SENSOR_2 == 1) {
OnFwd(OUT_A,SPEED_HIGH);
Wait(200);
Off(OUT_A);
}
}
task main ()
{
SetSensorLight(S1);
int nOnline=0;
while (true) {
while (nOnline < nMax) {
if (SENSOR_1 < IKICHI_BLACK-15) { //閾値が45-15...
turn_left1;
nOnline++;
} else if (SENSOR_1 < IKICHI_BLACK-7) { //閾値が4...
turn_left;
} else if (SENSOR_1 < IKICHI_BLACK+7) { //閾値が4...
go_forward;
} else if (SENSOR_1 < IKICHI_BLACK+15) { //閾値が...
turn_right1;
} else { //その他...
turn_right;
}
nOnline=0;
}
Wait(STEP);
}
short_break; //2秒間の停止
turn_right1; //右へ旋回する
catch_ball();
}
**プログラムの問題点 [#j5d0d5c8]
whileのループから抜け出すことができていなかったため、思っ...
whileやカウントの使い方を練習問題などでマスターできていれ...
*ロボット・プログラムの製作時間 [#m747c2d9]
-ロボットの製作時間・・・・約4時間
-プログラムの製作時間・・・約6時間
-ホームページの製作時間・・約2時間
*反省点 [#i9121fa7]
C地点からA地点へライントレースをするプログラムは製作でき...
もっとプログラムが正確に書ければミッションを成功させるこ...
今回のコースやロボットの製作は楽しんで取り組むことができ...
終了行:
[[2015a/Member]]
〜課題2の目次〜
#contents
*課題2の内容 [#zf0a17c6]
各チームで指定されたコースを作り、「ミッション」を遂行す...
詳しくはhttp://yakushi.shinshu-u.ac.jp/robotics/?2015a%2F...
*製作したロボットの概要 [#s2500f45]
**ロボットの概観 [#sf976709]
#ref(2015071621100500.jpg)
**ロボットについて [#nf0a1ee5]
***使用したモータ [#m9b4ce9c]
-車輪(モータB,C)
-ボールを捕まえるためのアーム(モータA)
***工夫した点 [#nede290b]
#ref(2015071621513900.jpg)
最初は光センサーを車輪より後ろに取り付けていたがうまくラ...
#ref(2015072011231200.jpg)
そのため、光センサーの後ろにはタッチセンサーが付いており...
***問題点 [#b38f2bf7]
-ボールがある程度固定されていないとタッチセンサーが機能し...
-電池を交換することで閾値やスピードが大幅に変化した
*プログラムの説明 [#x75661a7]
**C地点からA地点へ [#n0dd8607]
#define IKICHI_BLACK 45
#define SPEED_HIGH 35
#define SPEED_LOW 30
#define turn_left OnFwd(OUT_B,SPEED_HIGH);Off(OUT_C);
#define turn_left1 OnRev(OUT_C,SPEED_LOW);OnFwd(OUT_B,SP...
#define turn_right Off(OUT_B);OnFwd(OUT_C,SPEED_HIGH);
#define turn_right1 OnRev(OUT_B,SPEED_LOW);OnFwd(OUT_C,S...
#define STEP 1
#define nMax 30
#define short_break Off(OUT_BC);Wait(2000);
#define go_forward OnFwd(OUT_BC,SPEED_HIGH);
sub catch_ball() //ボールを捕まえる
{
SetSensorTouch(S2);
if (SENSOR_2 == 1) {
OnFwd(OUT_A,SPEED_HIGH);
Wait(200);
Off(OUT_A);
}
}
task main ()
{
SetSensorLight(S1);
int nOnline=0;
while (true) {
while (nOnline < nMax) {
if (SENSOR_1 < IKICHI_BLACK-15) { //閾値が45-15...
turn_left1;
nOnline++;
} else if (SENSOR_1 < IKICHI_BLACK-7) { //閾値が4...
turn_left;
} else if (SENSOR_1 < IKICHI_BLACK+7) { //閾値が4...
go_forward;
} else if (SENSOR_1 < IKICHI_BLACK+15) { //閾値が...
turn_right1;
} else { //その他...
turn_right;
}
nOnline=0;
}
Wait(STEP);
}
short_break; //2秒間の停止
turn_right1; //右へ旋回する
catch_ball();
}
**プログラムの問題点 [#j5d0d5c8]
whileのループから抜け出すことができていなかったため、思っ...
whileやカウントの使い方を練習問題などでマスターできていれ...
*ロボット・プログラムの製作時間 [#m747c2d9]
-ロボットの製作時間・・・・約4時間
-プログラムの製作時間・・・約6時間
-ホームページの製作時間・・約2時間
*反省点 [#i9121fa7]
C地点からA地点へライントレースをするプログラムは製作でき...
もっとプログラムが正確に書ければミッションを成功させるこ...
今回のコースやロボットの製作は楽しんで取り組むことができ...
ページ名: