2015a/Member/arata/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*ロボットの概形 [#oa08a804]
#ref(./gaikei.jpg,50%)
私たちが作ったロボットは車体部分の前方にアーム部分を取り...
#ref(./body4[1].jpg,50%)
後輪部分にはキャスターを用いてスムーズに走れるように工夫...
#ref(./body2[1].jpg,50%)
ライントレーサーをできるだけ中心に近い位置に着けて大きく...
*アームの部分 [#e4188ecf]
#ref(./arm2[1].jpg,50%)
#ref(./arm1[1].jpg,50%)
アームの部分は挟むような形ではモーターの回転速度が速く、...
#ref(./tukamu.jpg,50%)
このようにボールを囲むようにした。
*課題の内容 [#vea9aa32]
今回の課題内容はライントレースロボットを作り、下の画像の...
途中のP〜Q地点のどこかにボールを置きそのボールを指定され...
#ref(./map.png,50%)
*プログラミング [#fcb3ac5e]
カウンターで連続で黒だと判断したら交差点だと判断させた。
#define BLACK 42 //以下は黒
#define WHITE 50 //以上は白
#define go_forward OnFwd(OUT_AC); //前へ
#define go_back OnRev(OUT_AC); //後ろへ
#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define STEP 1 // 一回の判定で進む時間
#define short_break Off(OUT_AC); Wait(200); // 小休止
#define CROSS_TIME 20 // 交差点通過にかかる時間
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
#define FIX_TIME 15
#define nMAX 8
#define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B);
#define shoot go_back;Wait(50);go_forward;Wait(30);clip_...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて黒になった回数 (カウンタ)
if (true) { //黒を続けてnMAX回繰り返さない間、通常のラ...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付近...
go_forward; // 直進
} else { //線から外れる
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
turn_right;Wait(FIX_TIME); //方向右修正
clip_on; //捕球
cross_line; //交差点を渡る
nOnline=0; //カウンタをリセット
}
if (true) { //黒を続けてnMAX回繰り返さない間、通常のラ...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付...
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
turn_right;Wait(FIX_TIME); //方向修正
cross_line; //交差点を渡る
nOnline=0; //カウンタをリセット
}
if (true) { //黒を続けてnMAX回繰り返さない間、通常の...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付...
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
go_forward;Wait(100); //ゴール前へ
turn_right;Wait(80); //後退&前進
shoot; //シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
**定義した関数 [#lafaca61]
?#define BLACK 42 //以下は黒
?#define WHITE 50 //以上は白
?#define go_forward OnFwd(OUT_AC); //前へ
?#define go_back OnRev(OUT_AC); //後ろへ
?#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
?#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
?#define STEP 1 // 一回の判定で進む時間
?#define short_break Off(OUT_AC); Wait(200); // 小休止
?#define CROSS_TIME 20 // 交差点通過にかかる時間
?#define cross_line go_forward;Wait(CROSS_TIME);short_br...
?#define FIX_TIME 15
?#define nMAX 8
?#define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B);
?#define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B);
?#define shoot go_back;Wait(50);go_forward;Wait(30);clip...
***説明 [#bdfb1a9d]
?黒色と判断する値の設定。
?白色と判断する値の設定。
?前進。
?後退。
?時計回りに旋回。
?反時計回りに旋回。
?センサーの判断を1/100秒に設定。
?交差点と判断した時の2秒間停止。
?交差点通過にかかる時間の設定。
?交差点を渡る動作。
?交差点と判断した時の方向修正の時間の設定。
?交差点と判断するための連続回数の上限設定。
?囲いを上げる動作。
?囲いを下す動作。
?後ろへ下がり、前進して勢いをつけてから囲いを上げることに...
*動画 [#he534eb7]
http://www.youtube.com/watch?v=N1bcGyPMavc
*反省 感想 [#e71cee46]
今回の課題ではプログラミングが難しく手伝ってもらってしま...
終了行:
#contents
*ロボットの概形 [#oa08a804]
#ref(./gaikei.jpg,50%)
私たちが作ったロボットは車体部分の前方にアーム部分を取り...
#ref(./body4[1].jpg,50%)
後輪部分にはキャスターを用いてスムーズに走れるように工夫...
#ref(./body2[1].jpg,50%)
ライントレーサーをできるだけ中心に近い位置に着けて大きく...
*アームの部分 [#e4188ecf]
#ref(./arm2[1].jpg,50%)
#ref(./arm1[1].jpg,50%)
アームの部分は挟むような形ではモーターの回転速度が速く、...
#ref(./tukamu.jpg,50%)
このようにボールを囲むようにした。
*課題の内容 [#vea9aa32]
今回の課題内容はライントレースロボットを作り、下の画像の...
途中のP〜Q地点のどこかにボールを置きそのボールを指定され...
#ref(./map.png,50%)
*プログラミング [#fcb3ac5e]
カウンターで連続で黒だと判断したら交差点だと判断させた。
#define BLACK 42 //以下は黒
#define WHITE 50 //以上は白
#define go_forward OnFwd(OUT_AC); //前へ
#define go_back OnRev(OUT_AC); //後ろへ
#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define STEP 1 // 一回の判定で進む時間
#define short_break Off(OUT_AC); Wait(200); // 小休止
#define CROSS_TIME 20 // 交差点通過にかかる時間
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
#define FIX_TIME 15
#define nMAX 8
#define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B);
#define shoot go_back;Wait(50);go_forward;Wait(30);clip_...
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて黒になった回数 (カウンタ)
if (true) { //黒を続けてnMAX回繰り返さない間、通常のラ...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付近...
go_forward; // 直進
} else { //線から外れる
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
turn_right;Wait(FIX_TIME); //方向右修正
clip_on; //捕球
cross_line; //交差点を渡る
nOnline=0; //カウンタをリセット
}
if (true) { //黒を続けてnMAX回繰り返さない間、通常のラ...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付...
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
turn_right;Wait(FIX_TIME); //方向修正
cross_line; //交差点を渡る
nOnline=0; //カウンタをリセット
}
if (true) { //黒を続けてnMAX回繰り返さない間、通常の...
while (nOnline <nMAX) {
if (SENSOR_2 < BLACK){ // 線上なら
turn_left; // 左へ
nOnline++; //カウンタ増やす
} else {
if (SENSOR_2 < WHITE){ // 境界付...
go_forward; // 直進
} else { //線から外れれば
turn_right; //右へ
}
nOnline=0; //カウンタをリセット
}
Wait(STEP);
}
short_break; //小休憩
go_forward;Wait(100); //ゴール前へ
turn_right;Wait(80); //後退&前進
shoot; //シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
**定義した関数 [#lafaca61]
?#define BLACK 42 //以下は黒
?#define WHITE 50 //以上は白
?#define go_forward OnFwd(OUT_AC); //前へ
?#define go_back OnRev(OUT_AC); //後ろへ
?#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //右旋回
?#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //左旋回
?#define STEP 1 // 一回の判定で進む時間
?#define short_break Off(OUT_AC); Wait(200); // 小休止
?#define CROSS_TIME 20 // 交差点通過にかかる時間
?#define cross_line go_forward;Wait(CROSS_TIME);short_br...
?#define FIX_TIME 15
?#define nMAX 8
?#define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B);
?#define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B);
?#define shoot go_back;Wait(50);go_forward;Wait(30);clip...
***説明 [#bdfb1a9d]
?黒色と判断する値の設定。
?白色と判断する値の設定。
?前進。
?後退。
?時計回りに旋回。
?反時計回りに旋回。
?センサーの判断を1/100秒に設定。
?交差点と判断した時の2秒間停止。
?交差点通過にかかる時間の設定。
?交差点を渡る動作。
?交差点と判断した時の方向修正の時間の設定。
?交差点と判断するための連続回数の上限設定。
?囲いを上げる動作。
?囲いを下す動作。
?後ろへ下がり、前進して勢いをつけてから囲いを上げることに...
*動画 [#he534eb7]
http://www.youtube.com/watch?v=N1bcGyPMavc
*反省 感想 [#e71cee46]
今回の課題ではプログラミングが難しく手伝ってもらってしま...
ページ名: