2012a/A5/L.H/M2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*ライントレースロボット [#pa8b6c75]
*ロボット本体 [#zace780e]
#ref(./TS3V00991.jpg,18.9)
今回のロボットはこれです。
#ref(./TS3V01001.jpg,26.4)
そして、コースはこれです
コースは自分たちのグループで自由に書くことができますが、...
-交差点を2つ
-ヘアピンカーブを一つ
-直角を一つ
-コースから出入りする線を四本
-一周以上回ってから離脱する
赤色で着色してある部分は色が薄くプログラムを書く際の難点...
*ロボットの特徴 [#m36b2d8b]
NXTを使うグループはライトセンサーが一つしかないため、...
基本的な動きは図のようになっています。黒い部分はラインを...
#ref(./無題1.jpg,6.2,)
まっすぐ走る
#ref(./無題1の複製.jpg,5.6)
左に曲がる
#ref(./無題1の複製の複製.jpg,6.3)
右に曲がる
最初に作ったロボットはライトセンサーとロボットの距離が遠...
#ref(./TS3V00961.jpg,17.9,)
また、ライトセンサーが車体に近い方がよいとアドバイスをも...
*プログラム [#y1836eb2]
#ref(./TS3V010012.jpg,32.3,)
図のように1〜8の場所において、以下の対応するプログラム...
#define black 27 //黒は27以下 白は43以上の値...
#define white 43
long time;
task main()
{
SetSensorLight(IN_3); //3にライトセンサーをセ...
SetSensorSound(IN_2); //2にサウンドセンサーを...
time=CurrentTick(); //タイマー開始
PlayTone(440,100); //音を鳴らす
OnFwd(OUT_A,40); //コースへ入る
Wait(600);
OnFwd(OUT_AC,30);
while(CurrentTick()-time<20500) //1、急カーブの手...
{
if (Sensor(IN_3) <= black) //ライン内に入った...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<23500) //2 急カー...
{
if (Sensor(IN_3) <= 36) //ライン内に...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
OnFwd(OUT_A,-30);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,20);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(110,100); //音を鳴らす
while(CurrentTick()-time<36000) //3、急カーブから...
{
if (Sensor(IN_3) <= 31) //ライン内に入った...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time45000) //4 ヘアピンカー...
{ //ライン内に入った...
if (Sensor(IN_3) <= 36)
{
Off(OUT_AC);
OnFwd(OUT_C,40);
OnFwd(OUT_A,-30);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,-20);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<59000) //5 一段階...
{
if (Sensor(IN_3) <= black)
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<67000) //6、ラインが薄い場...
{
if (Sensor(IN_3) <= 35) //ライン内に入っ...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
Off(OUT_AC);
while(CurrentTick()-time<75000) //7、直角...
{
if (Sensor(IN_3) >=43) //ライン内...
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,-20);
Wait(10);
OnFwd(OUT_AC,20);
}
if (Sensor(IN_3) <=36)
{
Off(OUT_AC);
OnFwd(OUT_C,30);
OnFwd(OUT_A,-20);
Wait(10);
OnFwd(OUT_AC,20);
}
}
PlayTone(220,100); //音を鳴らす
Off(OUT_AC);
while(true) //8 左へ曲...
{
OnFwd(OUT_A,40);
Wait(1400);
OnFwd(OUT_AC,40);
Wait(1000);
Off(OUT=AC);
}
}
今回、プログラミングの点で難関となったのは、コースライン...
一見簡単そうに思っていた課題でしたが、1つのセンサーでのラ...
終了行:
目次
#contents
*ライントレースロボット [#pa8b6c75]
*ロボット本体 [#zace780e]
#ref(./TS3V00991.jpg,18.9)
今回のロボットはこれです。
#ref(./TS3V01001.jpg,26.4)
そして、コースはこれです
コースは自分たちのグループで自由に書くことができますが、...
-交差点を2つ
-ヘアピンカーブを一つ
-直角を一つ
-コースから出入りする線を四本
-一周以上回ってから離脱する
赤色で着色してある部分は色が薄くプログラムを書く際の難点...
*ロボットの特徴 [#m36b2d8b]
NXTを使うグループはライトセンサーが一つしかないため、...
基本的な動きは図のようになっています。黒い部分はラインを...
#ref(./無題1.jpg,6.2,)
まっすぐ走る
#ref(./無題1の複製.jpg,5.6)
左に曲がる
#ref(./無題1の複製の複製.jpg,6.3)
右に曲がる
最初に作ったロボットはライトセンサーとロボットの距離が遠...
#ref(./TS3V00961.jpg,17.9,)
また、ライトセンサーが車体に近い方がよいとアドバイスをも...
*プログラム [#y1836eb2]
#ref(./TS3V010012.jpg,32.3,)
図のように1〜8の場所において、以下の対応するプログラム...
#define black 27 //黒は27以下 白は43以上の値...
#define white 43
long time;
task main()
{
SetSensorLight(IN_3); //3にライトセンサーをセ...
SetSensorSound(IN_2); //2にサウンドセンサーを...
time=CurrentTick(); //タイマー開始
PlayTone(440,100); //音を鳴らす
OnFwd(OUT_A,40); //コースへ入る
Wait(600);
OnFwd(OUT_AC,30);
while(CurrentTick()-time<20500) //1、急カーブの手...
{
if (Sensor(IN_3) <= black) //ライン内に入った...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<23500) //2 急カー...
{
if (Sensor(IN_3) <= 36) //ライン内に...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
OnFwd(OUT_A,-30);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,20);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(110,100); //音を鳴らす
while(CurrentTick()-time<36000) //3、急カーブから...
{
if (Sensor(IN_3) <= 31) //ライン内に入った...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time45000) //4 ヘアピンカー...
{ //ライン内に入った...
if (Sensor(IN_3) <= 36)
{
Off(OUT_AC);
OnFwd(OUT_C,40);
OnFwd(OUT_A,-30);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,-20);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<59000) //5 一段階...
{
if (Sensor(IN_3) <= black)
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
while(CurrentTick()-time<67000) //6、ラインが薄い場...
{
if (Sensor(IN_3) <= 35) //ライン内に入っ...
{
Off(OUT_AC);
OnFwd(OUT_C,40);
Wait(50);
OnFwd(OUT_AC,30);
}
if (Sensor(IN_3) >= white)
{
Off(OUT_AC);
OnFwd(OUT_A, 30);
Wait(50);
OnFwd(OUT_AC,30);
}
}
PlayTone(220,100); //音を鳴らす
Off(OUT_AC);
while(CurrentTick()-time<75000) //7、直角...
{
if (Sensor(IN_3) >=43) //ライン内...
{
Off(OUT_AC);
OnFwd(OUT_A,30);
OnFwd(OUT_C,-20);
Wait(10);
OnFwd(OUT_AC,20);
}
if (Sensor(IN_3) <=36)
{
Off(OUT_AC);
OnFwd(OUT_C,30);
OnFwd(OUT_A,-20);
Wait(10);
OnFwd(OUT_AC,20);
}
}
PlayTone(220,100); //音を鳴らす
Off(OUT_AC);
while(true) //8 左へ曲...
{
OnFwd(OUT_A,40);
Wait(1400);
OnFwd(OUT_AC,40);
Wait(1000);
Off(OUT=AC);
}
}
今回、プログラミングの点で難関となったのは、コースライン...
一見簡単そうに思っていた課題でしたが、1つのセンサーでのラ...
ページ名: