2015a/Member/NY/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題 [#v597bc41]
指定された経路を黒い線にそって動くロボットを作成する。
そして、途中のP地点とQ地点の間においたピンポン玉を 目的地...
*ロボットの説明 [#ac4e6555]
&ref(./kikai1.jpg,30%,); &ref(./kikai2.jpg,30%);
モーターは左右のタイヤに二つとピンポン玉を運ぶためのアー...
光センサーはロボットができるだけ滑らかに動いてもらうため...
はじめはアームを取り付けずにそのままピンポン玉を運ぼうと...
*プログラムの説明1 [#k6a65151]
**定義文 [#z7109aec]
#define THRESHOLD 42
#define go_forward OnFwd(OUT_A);OnFwd(OUT_C); // 直進
#define turn_left OnFwd(OUT_C);OnRev(OUT_A); // 左旋回
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define down OnFwd(OUT_B);Wait(15);Off(OUT_B);//アームを...
#define up OnRev(OUT_B);Wait(15);Off(OUT_B);//アームを上...
**作成したプログラム [#k4843e31]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while (FastTimer(0)<1600){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
ClearTimer(0);
while (FastTimer(0)< 17) { //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
ClearTimer(0);// カウンタをリセット
}
Wait(STEP);
}
PlaySound(SOUND_DOWN);
Off(OUT_AC);Wait(200);
turn_right;Wait(25); // 進行方向修正
go_forward;Wait(18);
down;
ClearTimer(0);
while (FastTimer(0)<1100){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
ClearTimer(0);
while (FastTimer(0)< 20) { //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
ClearTimer(0);// カウンタをリセット
}
Wait(STEP);
}
PlaySound(SOUND_DOWN);
Off(OUT_AC);Wait(200);
turn_right;Wait(20); // 進行方向修正
go_forward;Wait(15);
ClearTimer(0);
while (FastTimer(0)<700){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
turn_right;Wait(20);
up;
go_forward;Wait(100);
Off(OUT_AC);
}
*ロボットの進み方 [#vc284cc6]
&ref(./ko-su1.jpg,30%); &ref(./ko-su2.jpg,30%);
AからBまでは左上の写真の赤い矢印の方向に進んでいく。
右上の写真より、
?の赤い線のところは交差点判断をしないでライントレースをす...
?の緑色の線のところは交差点を判断すようにしました。そして...
?の青い線のところも交差点判断をしないでライントレースをす...
?の黄色の線のところは交差点を判断すようにしました。
?のピンクの線のところは交差点判断をしないでライントレース...
*問題点 [#u1d0adc7]
?ロボットを動かす部屋の明るさによって進む時間が変わる。
?ロボットがピンポン玉を取るときと取らない時がある。
?最後にピンポン玉があまり転がらない。
*解決法 [#w390e522]
?その都度時間を測って時間をいじる。
?何回もやってピンポン玉を置くところを調節する。
?紙の折り目をきれいにし紙を平らにする。
*プログラムの説明2 (タイマーだけではないやつ)[#x9ffd711]
**定義文 [#rcc60454]
#define THRESHOLD 43
#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 shoot OnRev(OUT_B);Wait(30);Off(OUT_B);
**作成したプログラム [#rccadfcf]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int black=0; // 続けて黒になった回数 (カウンタ)SetSen...
ClearTimer(0);
while (FastTimer(0)<1800){
if (SENSOR_2 < THRESHOLD-3) {
turn_left
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
down;
while (black < 10)
{
if (SENSOR_2 < THRESHOLD-5)
{
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+5) {
go_forward;
black=0; }
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
OnFwd(OUT_AC);Wait(20);
ClearTimer(0);
while (FastTimer(0)<500)
{
if (SENSOR_2 < THRESHOLD-5)
{
turn_right;
}
else if (SENSOR_2 < THRESHOLD+5) {
go_forward;
black=0; }
else {
turn_left;
}
}
Off(OUT_AC);Wait(100);
shoot;
}
*ロボットの進み方 [#q8039fc9]
交差点の判断を一回少なくするために右側をライントレースす...
また、シュートはアームを一回たんさせてシュートするように...
*まとめ・感想 [#nd716108]
わからないところは先生に聞いたり、友達に相談をするなどし...
部屋の明るさによって進む時間が違ったり、ピンポン玉を取れ...
終了行:
#contents
*課題 [#v597bc41]
指定された経路を黒い線にそって動くロボットを作成する。
そして、途中のP地点とQ地点の間においたピンポン玉を 目的地...
*ロボットの説明 [#ac4e6555]
&ref(./kikai1.jpg,30%,); &ref(./kikai2.jpg,30%);
モーターは左右のタイヤに二つとピンポン玉を運ぶためのアー...
光センサーはロボットができるだけ滑らかに動いてもらうため...
はじめはアームを取り付けずにそのままピンポン玉を運ぼうと...
*プログラムの説明1 [#k6a65151]
**定義文 [#z7109aec]
#define THRESHOLD 42
#define go_forward OnFwd(OUT_A);OnFwd(OUT_C); // 直進
#define turn_left OnFwd(OUT_C);OnRev(OUT_A); // 左旋回
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define down OnFwd(OUT_B);Wait(15);Off(OUT_B);//アームを...
#define up OnRev(OUT_B);Wait(15);Off(OUT_B);//アームを上...
**作成したプログラム [#k4843e31]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while (FastTimer(0)<1600){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
ClearTimer(0);
while (FastTimer(0)< 17) { //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
ClearTimer(0);// カウンタをリセット
}
Wait(STEP);
}
PlaySound(SOUND_DOWN);
Off(OUT_AC);Wait(200);
turn_right;Wait(25); // 進行方向修正
go_forward;Wait(18);
down;
ClearTimer(0);
while (FastTimer(0)<1100){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
ClearTimer(0);
while (FastTimer(0)< 20) { //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
ClearTimer(0);// カウンタをリセット
}
Wait(STEP);
}
PlaySound(SOUND_DOWN);
Off(OUT_AC);Wait(200);
turn_right;Wait(20); // 進行方向修正
go_forward;Wait(15);
ClearTimer(0);
while (FastTimer(0)<700){ //?
if (SENSOR_2 < THRESHOLD-3) {
turn_left;
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
turn_right;Wait(20);
up;
go_forward;Wait(100);
Off(OUT_AC);
}
*ロボットの進み方 [#vc284cc6]
&ref(./ko-su1.jpg,30%); &ref(./ko-su2.jpg,30%);
AからBまでは左上の写真の赤い矢印の方向に進んでいく。
右上の写真より、
?の赤い線のところは交差点判断をしないでライントレースをす...
?の緑色の線のところは交差点を判断すようにしました。そして...
?の青い線のところも交差点判断をしないでライントレースをす...
?の黄色の線のところは交差点を判断すようにしました。
?のピンクの線のところは交差点判断をしないでライントレース...
*問題点 [#u1d0adc7]
?ロボットを動かす部屋の明るさによって進む時間が変わる。
?ロボットがピンポン玉を取るときと取らない時がある。
?最後にピンポン玉があまり転がらない。
*解決法 [#w390e522]
?その都度時間を測って時間をいじる。
?何回もやってピンポン玉を置くところを調節する。
?紙の折り目をきれいにし紙を平らにする。
*プログラムの説明2 (タイマーだけではないやつ)[#x9ffd711]
**定義文 [#rcc60454]
#define THRESHOLD 43
#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 shoot OnRev(OUT_B);Wait(30);Off(OUT_B);
**作成したプログラム [#rccadfcf]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int black=0; // 続けて黒になった回数 (カウンタ)SetSen...
ClearTimer(0);
while (FastTimer(0)<1800){
if (SENSOR_2 < THRESHOLD-3) {
turn_left
} else {
if (SENSOR_2 < THRESHOLD+3) {
go_forward;
} else {
turn_right;
}
}
}
down;
while (black < 10)
{
if (SENSOR_2 < THRESHOLD-5)
{
turn_right;
black++; // カウンタを増やす
}
else if (SENSOR_2 < THRESHOLD+5) {
go_forward;
black=0; }
else {
turn_left;
black=0; // カウンタをリセット
}
}
Off(OUT_AC);Wait(200);
OnFwd(OUT_AC);Wait(20);
ClearTimer(0);
while (FastTimer(0)<500)
{
if (SENSOR_2 < THRESHOLD-5)
{
turn_right;
}
else if (SENSOR_2 < THRESHOLD+5) {
go_forward;
black=0; }
else {
turn_left;
}
}
Off(OUT_AC);Wait(100);
shoot;
}
*ロボットの進み方 [#q8039fc9]
交差点の判断を一回少なくするために右側をライントレースす...
また、シュートはアームを一回たんさせてシュートするように...
*まとめ・感想 [#nd716108]
わからないところは先生に聞いたり、友達に相談をするなどし...
部屋の明るさによって進む時間が違ったり、ピンポン玉を取れ...
ページ名: