合わせて3つあるコースのうち、それぞれ指定されたコースを辿りゴールを目指すロボットを作る。A地点なお今回私が作るのは、�を走るロボットである。†これが今回作ったロボットである。無駄なものをつけず、コンパクトなものを目指した。センサーはあえて固定せず、メンバーそれぞれが自分のプログラムに合わせて位置を調整できるようにした。車輪は先生からのアドバイスで、より薄いものへ交換した。後ろは摩擦を減らすため、課題1と同様に半球状のパーツを用いた。今回は音楽を鳴らしつつ、線を辿れるようにした。以下、プログラムの解説となる。後ほど登場するMUSIC_OPERATION()の音符の長さと、音の高さを定義。//高いラ以下がメインのプログラム。//音楽を鳴らしつつ、初めの四角から脱出するプログラム。//while()でなくrepeat()を使うことで行数を減らしている。//黒線の左側をトレースするプログラム。//以下3行が交差点を超えて直進するプログラム。片方の車輪だけ回すことでセンサー部を線から先に進ませている。//出来ればこの3行も関数にしたかったが、エラーにより断念。//ゴールの四角に入り、今までのBGMを止めて、レベルアップ音を鳴らすプログラム。}以下のタスクで鳴らしているのは、スクエアエニックスの「ドラゴンクエスト」シリーズの「序曲」である。言わずと知れた名曲なので、みなさん知っているかと思う。//ここだけは違和感を感じたので調整したため音が周波数で表されている。Wait(b2+b8+2);}}以下は、「序曲」を鳴らしつつ、初めの四角から脱出するサブルーチン。;while(SENSOR_2<Middle){OnFwd(OUT_AC);}while(SENSOR_2>Middle){OnFwd(OUT_AC);}OnFwd(OUT_AC);Wait(20);}以下は、黒線の左側をトレースするサブルーチン。五段階に分けたことで高速化に成功した。FastTimerを用いて、連続した時間において黒を認識し続けると、交差点であると判断させている。�のルートを50秒(レベルアップ音が終わるまで)で完走することが出来た。今回は、メインのタスクを動かしながらBGMを流したり、関数を多く使ったりと、初めてトライしたことが多い課題で、とても大変だったものの確実に実力をつけられた。BGMを除けばプログラムが100行に収まるように出来たのもよかったと思う。次の課題はついに2機の間で通信をしながら行うものだと聞いているので、さらに班のメンバーと協力してクリアしていきたい。