2006a/C2/LightProgram1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2006a/C2/課題3右]]
光を追うプログラム
#contents
*目的 [#zfda61b7]
今回の実習の目的は、前回の続きで光センサーを使ったロボ...
*プログラム作成 [#o5d2af02]
今回は、課題を自分で選べるようになっていました。私はそ...
**プログラムに必要な定数 [#s089a4d2]
#define AROUND_TIME 210
#define HH 33
#define SH 65
#define DO 523
#define RE 587
#define MI 659
#define FA 698
#define SO 784
#define RA 880
#define SI 988
#define HDO 1047
AROUND_TIMEはロボが1周するまでの時間です。HHはロボが「...
**曲 [#f5739491]
これは、光を探すときに鳴る曲です。
task play_music1()
{
while(true)
{
PlayTone(DO,50);Wait(55);
PlayTone(MI,10);Wait(15);
PlayTone(MI,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(SI,10);Wait(15);
PlayTone(SI,10);Wait(15);
Wait(20);
}
}
こっちは、進んでいるときの曲です。
task play_music2()
{
while(true)
{
PlayTone(DO,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(MI,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(SO,30);Wait(30);
PlayTone(SI,10);Wait(15);
Wait(20);
}
}
**メインプログラム [#y5b2bab4]
ここからは、光を探したり、追ったりするプログラムです。
int light_strongest ;
int time_strongest ;
task main()
{
ここから
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true){
light_strongest = SENSOR_1;
ClearTimer(0);
OnFwd(OUT_A);
OnRev(OUT_C);
start play_music1 ;
while(FastTimer(0) < AROUND_TIME){
if(SENSOR_1>light_strongest){
light_strongest = SENSOR_1;
time_strongest = FastTimer(0);
}
}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait( AROUND_TIME - time_strongest );
Off(OUT_A + OUT_C);
stop play_music1 ;
Wait(20);
ここまでが光を探すプログラムです。そしてここから
OnRev(OUT_A+OUT_C);
start play_music2 ;
until(SENSOR_1<HH);
stop play_music2 ;
}
}
ここまでが光に向かって進むプログラムです。これでプログラ...
*苦労したところ [#v0b07e12]
今回、最も苦労したところは、「光を見失った」と判断させる...
*まとめ [#bc3ba0cf]
このプログラムを作るにあたって、光センサの便利さと、難し...
終了行:
[[2006a/C2/課題3右]]
光を追うプログラム
#contents
*目的 [#zfda61b7]
今回の実習の目的は、前回の続きで光センサーを使ったロボ...
*プログラム作成 [#o5d2af02]
今回は、課題を自分で選べるようになっていました。私はそ...
**プログラムに必要な定数 [#s089a4d2]
#define AROUND_TIME 210
#define HH 33
#define SH 65
#define DO 523
#define RE 587
#define MI 659
#define FA 698
#define SO 784
#define RA 880
#define SI 988
#define HDO 1047
AROUND_TIMEはロボが1周するまでの時間です。HHはロボが「...
**曲 [#f5739491]
これは、光を探すときに鳴る曲です。
task play_music1()
{
while(true)
{
PlayTone(DO,50);Wait(55);
PlayTone(MI,10);Wait(15);
PlayTone(MI,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(SI,10);Wait(15);
PlayTone(SI,10);Wait(15);
Wait(20);
}
}
こっちは、進んでいるときの曲です。
task play_music2()
{
while(true)
{
PlayTone(DO,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(MI,20);Wait(25);
PlayTone(RE,10);Wait(15);
PlayTone(SO,30);Wait(30);
PlayTone(SI,10);Wait(15);
Wait(20);
}
}
**メインプログラム [#y5b2bab4]
ここからは、光を探したり、追ったりするプログラムです。
int light_strongest ;
int time_strongest ;
task main()
{
ここから
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true){
light_strongest = SENSOR_1;
ClearTimer(0);
OnFwd(OUT_A);
OnRev(OUT_C);
start play_music1 ;
while(FastTimer(0) < AROUND_TIME){
if(SENSOR_1>light_strongest){
light_strongest = SENSOR_1;
time_strongest = FastTimer(0);
}
}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait( AROUND_TIME - time_strongest );
Off(OUT_A + OUT_C);
stop play_music1 ;
Wait(20);
ここまでが光を探すプログラムです。そしてここから
OnRev(OUT_A+OUT_C);
start play_music2 ;
until(SENSOR_1<HH);
stop play_music2 ;
}
}
ここまでが光に向かって進むプログラムです。これでプログラ...
*苦労したところ [#v0b07e12]
今回、最も苦労したところは、「光を見失った」と判断させる...
*まとめ [#bc3ba0cf]
このプログラムを作るにあたって、光センサの便利さと、難し...
ページ名: