- 追加された行はこの色です。
- 削除された行はこの色です。
♪目次♪
#contents
*課題3の内容 [#g992e50a]
+光を感知しその光源を追っかける。その際
ゴジラのテーマ曲を流す。
+次に光源を見失った場合、車体を回転させ
光を探す。その時はピンクパンサーの曲を流す。
+以上、追撃、探索で2つの曲を使い分けて光を追いかけるロボット
*ロボットの説明 [#vaaa2fc1]
今回は、ロボットの前に光センサーを2つ、しかも前向きに設置
これで光源の光を探知する。
*光を追いかけるプログラム (試作) 作成者:ガリ[#efab6ddb]
*プログラム (試作) [#efab6ddb]
task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーと定義
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2を光センサーと定義
while(true)
{if(SENSOR_1>43){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
//光が左からあたったとき、右の車輪を動かし、車体を右に
if(SENSOR_2>43){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
//光が右からあたったとき、左の車輪を動かし、車体を左に
}
*プログラム (完成版) [#d646a718]
☆試作の段階ではうまく光りに反応してくれる時とそうでない
時があったので、光センサーの値をいろいろと変えてみると
幾分よい具合になった。
*光を追いかけるプログラム (完成版) 作成者:ガリ[#d646a718]
task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーと定義
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2を光センサーと定義
while(true)
{if(SENSOR_1>55){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
//光が左からあたったとき、右の車輪を動かし、車体を右に
if(SENSOR_2>55){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
//光が右からあたったとき、左の車輪を動かし、車体を左に
}
*プログラム(♪ゴジラ) [#u93d437d]
#define Sol 196
*プログラム(♪ゴジラ) 作成者:ガリ[#u93d437d]
#define Sol 196
#define Ra 220
#define Si 247
#define Do 262
#define Do 262 //音の定義
task main() // 音楽を演奏するタスク
{
while (true)
{
PlayTone(Do,20); Wait(25); // Wait の時間の方を少し長くして
PlayTone(Si,20); Wait(25); // 同じ音を続けて鳴らす場合にも
PlayTone(Ra,40); Wait(45); // 一つの音にならないようにしている
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,40); Wait(45);
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,20); Wait(25);
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,40); Wait(45);
}
} //ガリ
}
*工夫した点(♪ゴジラ) [#s1059386]
ゴジラのテーマらしく音の定義を低めの音に設定して迫力をだした!!
*プログラム(♪ピンクパンサーのテーマ)試作 [#a514820b]
*プログラム(♪ピンクパンサーのテーマ)試作 作成者:ガリ[#a514820b]
#define Sol 831
#define Ra 880
#define Si 988
#define Do 1047
#define Mi 1319
#define Fa 1397
#define Raa 1976
#define Soll 1661
#define Soll 1661 //音の定義
task main()
{
while (true)
{
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(50);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(50);
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(35);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(35);
PlayTone(Fa,20); Wait(25);
PlayTone(Mi,20); Wait(35);
PlayTone(Do,20); Wait(25);
PlayTone(Mi,20); Wait(35);
PlayTone(Raa,20); Wait(25);
PlayTone(Soll,80); Wait(90);
}
} //ガリ
}
*プログラム(♪ピンク)改善点 [#baaa2175]
USBを使えない状況でつくったので音の長さや音程が確認できず、オンチなプログラムとなった。その後高いAの音を改善し、音の長さを改善し完成版となった。
*プログラム(♪ピンクパンサーのテーマ)完成版 [#k1632f18]
*プログラム(♪ピンクパンサーのテーマ)完成版 作成者:ガリ[#k1632f18]
#define Sol 831
#define Ra 880
#define Si 988
#define Do 1047
#define Mi 1319
#define Fa 1397
#define Raa 1760
#define Soll 1661
#define Soll 1661 //音の定義
task main()
{
while (true)
{
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(100);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(100);
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(35);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(35);
PlayTone(Fa,20); Wait(25);
PlayTone(Mi,20); Wait(35);
PlayTone(Do,20); Wait(25);
PlayTone(Mi,20); Wait(35);
PlayTone(Raa,20); Wait(25);
PlayTone(Soll,80); Wait(120);
}
} //ガリ
}
*プログラム(曲を分けて明るい方へ進む) [#e278f086]
*プログラム(曲を分けて明るい方へ進む) 作成者:ガリ[#e278f086]
#define Sol 196
#define Ra 220
#define Si 247
#define Do 262
#define Sola 831
#define Raa 880
#define Sia 988
#define Doa 1047
#define Mia 1319
#define Faa 1397
#define Raaa 1760
#define Solla 1661
#define Solla 1661 //音の定義
task play_music2()
{
while(true)
{
PlayTone(Do,20); Wait(25); // Wait の時間の方を少し長くして
PlayTone(Si,20); Wait(25); // 同じ音を続けて鳴らす場合にも
PlayTone(Ra,40); Wait(45); // 一つの音にならないようにしている
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,40); Wait(45);
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,20); Wait(25);
PlayTone(Sol,20); Wait(25);
PlayTone(Ra,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Do,20); Wait(25);
PlayTone(Si,20); Wait(25);
PlayTone(Ra,40); Wait(45);
}
}
task play_music1()
task play_music1() //仕事:音楽を演奏する
{
while (true)
{
PlayTone(Sola,20); Wait(25);
PlayTone(Raa,20); Wait(100);
PlayTone(Sia,20); Wait(25);
PlayTone(Doa,20); Wait(100);
PlayTone(Sola,20); Wait(25);
PlayTone(Raa,20); Wait(35);
PlayTone(Sia,20); Wait(25);
PlayTone(Doa,20); Wait(35);
PlayTone(Faa,20); Wait(25);
PlayTone(Mia,20); Wait(35);
PlayTone(Doa,20); Wait(25);
PlayTone(Mia,20); Wait(35);
PlayTone(Raaa,20); Wait(25);
PlayTone(Solla,80); Wait(120);
PlayTone(Solla,80); Wait(120); //音の定義
}
}
int Light=0;
int turn_time=90;
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT); //ライトセンサーを左右にセットする
ClearTimer(0);
while(Timer(0)<=turn_time)
{
if(SENSOR_1>Light)
{
Light=SENSOR_1;
Light=SENSOR_1; //センサー1が反応
}
OnFwd(OUT_A);
OnRev(OUT_C);
OnFwd(OUT_A); //Aのモーターを前に
OnRev(OUT_C); //Bのモーターを後ろに(車体を回転させる)
}
OnFwd(OUT_A);
OnRev(OUT_C);
start play_music1;
start play_music1; //センサー1が反応するまで曲を流す
until(SENSOR_1<Light);
while(true)
{
if(SENSOR_1<Light)
if(SENSOR_1<Light) //センサー1反応
{
OnFwd(OUT_A);
OnRev(OUT_C);
stop play_music1;
start play_music2;
OnFwd(OUT_A); //Aのモーターを前へ
OnRev(OUT_C); //Cのモーターを後ろへ
stop play_music1; //1つ目の曲を止める
start play_music2; //2つ目の曲を流す
until(SENSOR_1>=Light);
}
else
{
OnFwd(OUT_A+OUT_C);
stop play_music2;
start play_music1;
stop play_music2; //2つ目の曲を止める
start play_music1; //センサー1の値をきるまで1の曲を流す
until(SENSOR_1<Light);
}
}
}
}
*工夫したところ [#p4ed4ed0]
今回、一番見せたかったのはやはり音楽で、少し個性的な音楽を選んだ。時間を費やした分、自分なりにはとても出来がいいと思う。
*苦労したところ [#j95fd5f6]
光センサーに関するプログラミングがとても難しく、なかなか、思ったとおりに動いてくれなかった。自分の知識だけではできない所もあったので、友達から聞いたりして理解した。
*反省点 [#g77d3e49]
動きはゆっくりだけどうまく動いた(笑)
光を追いかけるプログラムがよくなかったのかな(;→д←)
音楽をならすのはとてもよくできたと思う!!
曲によって音の高さを変えたところはよっかた♪懐中電灯とか光源の準備が出来なかった。あとメンバーが減ってしまったのが残念。。、
*感想 [#lb4436b8]
今回は、自宅でプログラムを作ったりがんばった!!どんどんレベルがあがってきて、正直パソコンをいじれない自分にとってはキツくなってきた。。。次はいよいよロボコン!!
今まで学んできたことを使って、いいロボットを作りたいと思う!!みんながんばろーぜ!!
*次回へ向けて [#ad3f6ba9]
曲を鳴らす事はロボコンとは直接関係は無いけど、光センサー
のプログラミングは必須! 是非とも使いこなせるようにしたい。
*ロボゼミ仲間からのコメント [#bdb30c22]
気軽に書いて!!
#comment