- 追加された行はこの色です。
- 削除された行はこの色です。
[[2004/B6/26班]]
#contents
*ハート型を描くロボット [#f4299283]
&color(green){ハート型を描くロボットのプログラム};
task main ()
{
OnFwd(OUT_A+OUT_C);Wait(68);
OnFwd(OUT_A);Off(OUT_C);Wait(296);
OnRev(OUT_A);OnFwd(OUT_C);Wait(250);
OnFwd(OUT_A);Off(OUT_C);Wait(296);
OnFwd(OUT_A+OUT_C);Wait(110);
Off(OUT_A+OUT_C);
}
うまくいったようないかないような...
* 台から落ちないロボット [#j1005474]
&color(blue){台から落ちないロボットのプログラム};
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);
SetSensor(SENSOR_3,SENSOR_TOUCH);
while(true)
{
OnFwd(OUT_A+OUT_C);
until((SENSOR_1==1)||(SENSOR_3==1));
OnRev(OUT_A+OUT_C);Wait(100);
OnFwd(OUT_A);Wait(100);
OnFwd(OUT_C);
}
}
"手"が2つついたようなロボットでやりました。片方の手が台から出るとタッチセンサーが反応して少しバックしてから回転し、また前に進むということを繰り返します。
基本に忠実に作り、結構シンプルになりました。バックする時間と回転する時間の調節が難しかったです。
*モーター1つでライントレースするロボット [#xbaba159]
#ref(ROBO01.JPG,right,nolink,around)
&color(red){モーター1つでライントレースするプログラム};
#define THRESHOLD 45
#define RUN_TIME 150
task main ()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
while ( Timer(0) <= RUN_TIME ) {
if (SENSOR_2 < THRESHOLD) {
OnFwd(OUT_A);
} else {
OnRev(OUT_A);
}
}
}
本でトップシークレットと書かれたロボットの特殊なギアに片側の回転を逆にするギアを追加し、両側に後ろの回転を止めるストッパーを追加してロボットを作りました。タイヤと光センサーの配置は本のローヴァーロボットと同じにし、またモーターも本体の前に左右対象になるように配置し、モーター2つの場合と全く同じ動きをするようにしました。ギアの配置に苦労しました。
写真のようにギアを配置して作りました。タイヤの位置関係は最初に作ったローヴァーロボットと同じになっています。なるべく左右対称にしたかったので、モーターの配置も少しこだわりました。~
ギアの配置に結構苦労しました。写真は途中のもので、この後モーターと最初の小さいギアの間を強化して空転をなくしました。
*光を追いかけるロボット [#v20fcc69]
&color(brown){光を追いかけるロボットのプログラム};
*音のなるロボット [#s365010e]
&color(pink){音のなるロボットのプログラム};
#define Doo 1047
#define Ree 1175
#define Mii 1319
#define So 784
#define Ra 880
#define Si 988
#define Do 523
#define Re 587
#define Mi 659
#define Sso 392
#define Rra 440
#define Ssi 494
task play_music()
{
while (true)
{
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Mii+Mi,35);Wait(40);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Mii+Mi,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ssi+Si,15);Wait(20);
PlayTone(Rra+Ra,15);Wait(20);
PlayTone(Ssi+Si,15);Wait(20);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Ssi+Si,15);Wait(20);
PlayTone(Sso+So,10);Wait(20);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Mii+Mi,35);Wait(40);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Mii+Mi,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Doo+Do,15);Wait(20);
PlayTone(Ssi+Si,15);Wait(20);
PlayTone(Rra+Ra,15);Wait(20);
PlayTone(Ree+Re,15);Wait(20);
PlayTone(Ssi+Si,15);Wait(20);
PlayTone(Sso+So,15);Wait(20);
PlayTone(Doo+Do,15);Wait(20);
}
}
task main()
{
SetSensor(SENSOR_1, SENSOR_TOUCH);
start play_music ; // 演奏を開始
OnFwd(OUT_A+OUT_B); // 前進
until (SENSOR_1 == 1);
stop play_music ; // 演奏を停止
Off(OUT_A+OUT_B); // 動きも停止
}
別の講義で扱った曲を作ってみました。はもるようにしようと1オクターブずらした音も混ぜましたが大したことありませんでした。