2017a/Member/kenta/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#qbf53507]
#contents
*はじめに [#sc13e311]
今回の課題は、下図の黒い線をたどっていくロボットとプログ...
私は「E地点直進プログラム」を作った。&br;
A→E→F→Q→R→S→G→H→T→T→R→S→P→E→A と進んでいく。
#ref(2017a-mission2.png)
*ロボットの説明 [#p56520f7]
今回のロボットは小回りをきかせるために出来るだけ車体を小...
光センサーと車体の位置を極力近づけることで、旋回半径を小...
車体を二輪で作る案も検討したが、安定性と正確性を考慮した...
#ref(IMG_0793.JPG)
#ref(IMG_0797.JPG)
#ref(IMG_0800.JPG)
*プログラムについて [#t7349faf]
**定義 [#o8962740]
メインタスクを少しでも簡略化するためにいくつかの決まった...
#define sikii 40
#define migi Off(OUT_C);OnFwd(OUT_A);Off(OUT_AC);Wait(2);
#define hidari Off(OUT_A);OnFwd(OUT_C);Off(OUT_AC);Wait(...
#define migisen OnRev(OUT_C);OnFwd(OUT_A);Wait(2);Off(OU...
#define hidarisen PlaySound(SOUND_UP);OnFwd(OUT_AC);Wait...
#define hidarimage OnFwd(OUT_AC);Wait(43);OnFwd(OUT_C...
#define oto PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
#define mae OnFwd(OUT_AC);Wait(20);
**メインタスク [#u817a5ca]
メインタスクでは、タイマー式ではなくカウントアップ方式を...
最初の方はタイマー式で挑戦していたが誤作動が多く電池にも...
変数を大量に使ったため非常に長いプログラムとなった。
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while(n < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
n++;
}
}
hidarisen; //F
int l=0;
while(l < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
l++;
}
}
oto;
hidarisen; //Q
int m=0;
while(m < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
m++;
}
}
mae; //R
int o=0;
while(o < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
o++;
}
}
hidarimage; //S
int p=0;
while(p < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
p++;
}
}
hidarisen; //G
int q=0;
while(q < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
q++;
}
}
OnFwd(OUT_C);
Wait(200);
OnRev(OUT_A);
Wait(100);
Off(OUT_AC);
int k=0;
while(k < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
k++;
}
}
hidarisen; //H
int c=0;
while(c < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
c++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
mae; //T1
int r=0;
while(r < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
r++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
mae; //T2
int y=0;
while(y < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
y++;
}
}
oto;
hidarisen; //R
int e=0;
while(e < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
e++;
}
}
OnFwd(OUT_AC);
Wait(20); //S
int a=0;
while(a < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
a++;
}
}
hidarimage; //P
int g=0;
while(g < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
g++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
hidarisen; //E
int d=0;
while(d < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
d++;
}
}
OnFwd(OUT_AC);
Wait(50);
}
*感想・反省 [#g6fe1b41]
今回の反省点は、メインプログラムが長くなってしまったこと...
反省点はあるものの、しっかりとゴールし与えられた課題をク...
終了行:
*目次 [#qbf53507]
#contents
*はじめに [#sc13e311]
今回の課題は、下図の黒い線をたどっていくロボットとプログ...
私は「E地点直進プログラム」を作った。&br;
A→E→F→Q→R→S→G→H→T→T→R→S→P→E→A と進んでいく。
#ref(2017a-mission2.png)
*ロボットの説明 [#p56520f7]
今回のロボットは小回りをきかせるために出来るだけ車体を小...
光センサーと車体の位置を極力近づけることで、旋回半径を小...
車体を二輪で作る案も検討したが、安定性と正確性を考慮した...
#ref(IMG_0793.JPG)
#ref(IMG_0797.JPG)
#ref(IMG_0800.JPG)
*プログラムについて [#t7349faf]
**定義 [#o8962740]
メインタスクを少しでも簡略化するためにいくつかの決まった...
#define sikii 40
#define migi Off(OUT_C);OnFwd(OUT_A);Off(OUT_AC);Wait(2);
#define hidari Off(OUT_A);OnFwd(OUT_C);Off(OUT_AC);Wait(...
#define migisen OnRev(OUT_C);OnFwd(OUT_A);Wait(2);Off(OU...
#define hidarisen PlaySound(SOUND_UP);OnFwd(OUT_AC);Wait...
#define hidarimage OnFwd(OUT_AC);Wait(43);OnFwd(OUT_C...
#define oto PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
#define mae OnFwd(OUT_AC);Wait(20);
**メインタスク [#u817a5ca]
メインタスクでは、タイマー式ではなくカウントアップ方式を...
最初の方はタイマー式で挑戦していたが誤作動が多く電池にも...
変数を大量に使ったため非常に長いプログラムとなった。
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0;
while(n < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
n++;
}
}
hidarisen; //F
int l=0;
while(l < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
l++;
}
}
oto;
hidarisen; //Q
int m=0;
while(m < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
m++;
}
}
mae; //R
int o=0;
while(o < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
o++;
}
}
hidarimage; //S
int p=0;
while(p < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
p++;
}
}
hidarisen; //G
int q=0;
while(q < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
q++;
}
}
OnFwd(OUT_C);
Wait(200);
OnRev(OUT_A);
Wait(100);
Off(OUT_AC);
int k=0;
while(k < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
k++;
}
}
hidarisen; //H
int c=0;
while(c < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
c++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
mae; //T1
int r=0;
while(r < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
r++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
mae; //T2
int y=0;
while(y < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
y++;
}
}
oto;
hidarisen; //R
int e=0;
while(e < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
e++;
}
}
OnFwd(OUT_AC);
Wait(20); //S
int a=0;
while(a < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
a++;
}
}
hidarimage; //P
int g=0;
while(g < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
g++;
}
}
PlaySound(SOUND_DOWN);Off(OUT_AC);Wait(100);
hidarisen; //E
int d=0;
while(d < 3){
OnFwd(OUT_AC);
if(SENSOR_1 >= 50){
migisen;
}else if(SENSOR_1 >= sikii){
migi;
}else if(SENSOR_1 >= 36){
hidari;
}else if(SENSOR_1 <= 35){
hidari;
d++;
}
}
OnFwd(OUT_AC);
Wait(50);
}
*感想・反省 [#g6fe1b41]
今回の反省点は、メインプログラムが長くなってしまったこと...
反省点はあるものの、しっかりとゴールし与えられた課題をク...
ページ名: