- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/B2]]
#contents
*マシンの構造 [#u35d6d57]
**ロボットの外形 [#xf22438a]
今回の課題のロボットは、いつにないほどシンプルです。。光センサーの数は、二つだとたまに変な動きをするのでひとつに。
&ref(oto1.jpg); ←左後ろからみたマシン
&ref(oto2.jpg); ←右前からのマシン
今までは小さい方のタイヤが前輪、大きいほうが後輪だったが、今回は逆にしました。
&ref(oto3.jpg);
&ref(oto4.jpg);
↑↑光センサーは、マシンのフロント中央部分に設置しました。
*曲は?? [#j181cff4]
自分は音楽経験がないからどうなることになるかと思いきや、たかがピアノ経験者!!ということで曲はまかせます♪
**曲のプログラム [#yea1dd40]
「チューリップ」
製作日:// 06-06-31
製作者:// たか
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880
#define Si 988
task play_music()
{
while(true)
{
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Do,40);Wait(70);
PlayTone(So,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(So,30);Wait(70);
PlayTone(Mi,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Do,30);Wait(35);
Wait(20);
}
}
*本番プログラム共 [#y06ad2f5]
**『チューリップ』を演奏しながら回転して光をさがし回るプログラムです☆★ [#j9957949]
製作日:// 06-07-03
製作者:// Blue
製作者:// Blue たか
#define Do 523 //ドと定義
#define Re 587 //レと定義
#define Mi 659 //ミと定義
#define Fa 698 //ファと定義
#define So 784 //ソと定義
#define Ra 880 //ラと定義
#define Si 988 //シと定義
task play_music()
{
while(true)
{
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Do,40);Wait(70);
PlayTone(So,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(So,30);Wait(70);
PlayTone(Mi,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Do,30);Wait(35);
}
}
int Light=0;
int turn_time=90;
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1が光センサーと宣言
ClearTimer(0);
while(Timer(0)<=turn_time)
{
if(SENSOR_1>Light)
{
Light=SENSOR_1;
}
OnFwd(OUT_A);
OnRev(OUT_C);
}
OnFwd(OUT_A);
OnRev(OUT_C);
start play_music;
until(SENSOR_1>=Light);
while(true)
{
if(SENSOR_1<Light)
{
OnFwd(OUT_A);
OnRev(OUT_C);
until(SENSOR_1>=Light);
}
else
{
OnFwd(OUT_A+OUT_C);
stop play_music;
until(SENSOR_1<Light);
}
}
}
** [#ae597f5d]
** 光源に近づきすぎたら停止するプログラム[#ae597f5d]
製作日//: 06-7-03
製作者//: Blue たか
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880
#define Si 988
task play_music()
{
while(true)
{
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(Do,33);Wait(33);
PlayTone(Re,33);Wait(33);
PlayTone(Mi,40);Wait(70);
PlayTone(So,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Do,30);Wait(30);
PlayTone(Re,30);Wait(30);
PlayTone(Mi,30);Wait(30);
PlayTone(Do,40);Wait(70);
PlayTone(So,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(So,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(Ra,30);Wait(35);
PlayTone(So,30);Wait(70);
PlayTone(Mi,30);Wait(35);
PlayTone(Mi,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Re,30);Wait(35);
PlayTone(Do,30);Wait(35);
Wait(20);
}
}
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_stop Float(OUT_A+OUT_C);
#define TURN_TIME 500
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
int light_max=0,time_max=0;
turn_right;
start play_music;
ClearTimer(0);
while(FastTimer(0) < TURN_TIME)
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1:光センサー
while(true)
{
start play_music; //音楽を演奏
while(SENSOR_1<60) //明るさが60以下のとき
{
if(SENSOR_1 > light_max)
{
light_max=SENSOR_1;
time_max=FastTimer(0);
}
}
turn_stop;
Wait(50);
turn_left;
Wait(TURN_TIME-time_max);
turn_stop;
stop play_music;
while(true)
go_straight; //直進
}
while(SENSOR_1>60) //明るさが60より大きいとき
{
if(SENSOR_1==THRESHOLD) //明るさが100のとき
{
if(SENSOR_1<=light_max)
{
OnFwd(OUT_A+OUT_C);
}
if(SENSOR_1>80)
{
Off(OUT_A+OUT_C);
}
if(SENSOR_1<40)
{
Wait(100);
int light_max=0,time_max=0;
turn_right;
start play_music;
ClearTimer(0);
while(FastTimer(0) < TURN_TIME)
{
if(SENSOR_1 > light_max)
{
light_max=SENSOR_1;
time_max=FastTimer(0);
}
}
turn_stop;
Wait(50);
turn_left;
Wait(TURN_TIME-time_max);
turn_stop;
stop play_music;
}
Off(OUT_A+OUT_C); //停止
}
else{stop play_music; //明るさが60より大きく100より小さいとき
turn_left; //左旋回
}
}
}
}
*考察 [#s9196385]
**工夫した点 [#ea12336a]
今回の課題は回転動作が多いので、前輪のタイヤを大きいタイヤにした。それによって、スムーズな回転が実現!
曲を送り込むプログラム作成は、コピー/ペーストが使いやすかったので、自分のwindowsのパソコンで打ち込んだ。
**苦労した点 [#y32f1d21]
-光を探すプログラムが全くわからなかった。
ホームページや、プログラミングに強い人に聞きまくって、なんとかかんとか完成。
-光を感知したはずなのに、光を追いかけない
光センサーの値をいじって、なんとか追いかけるようになったが、まだまだ十分とはいえない。
**感想 [#dcf7ffe2]
またも時間がなかった。。徹夜で課題二つをこなしたから、結果的にはよかったが、健康面にやや障害が...泣
やはりロボティクスもここまできたら、一筋縄ではいかなくなった。正直しんどい...自分の知能に限界を感じている。
毎回同じようなホームページだなぁと思いつつひたすら打ち込む。色をつけようと試みるが、センスが感じられなかったので、速攻却下!
たかの音楽センスには頭が上がらない。。
個人的な事情だが、レポートなど課題をこなすのに精一杯でホームページ制作がかなり先延ばしになってしまった。
先生、TAの方々、ご迷惑をおかけしました↓↓