しゅうのマイクロマウス研修 キット製作研修

しゅうのマイクロマウス研修 – Pi:Co Classic編 Part 5

しゅうのマイクロマウス研修 - Pi:Co Classic編 Part 5 しゅうのマイクロマウス研修

ピザ

こんにちは、しゅうです。今回はピザを焼いてみました、ナポリピザってやつです。久々のピザはもう最高でしたね・・・今回は強力粉を使ったのでふわふわもちもちでした。次回は薄力粉のみで生地を作り、薄めに広げてカリカリに焼いてみようと思います♪

前回の記事はこちら。そして、今回の目標は二つ。

  1. タイヤのゴムを補強
  2. 音階の実装

タイヤのゴム

Part3_2でPi:Coを回転させて調整を行いましたが、実はよく見るとタイヤのゴムが少しずつ外側にずれていきました。これだと走行させる度にタイヤ幅がずれてしまうし、調整を行ってもその最中にずれていきます。これを解決するために、とある先輩の記事を参考に、ゴムを両面テープで固定することにしました。

ゴムを両面テープで固定

そして、薄いとはいえタイヤ径が変わるので再度調整をする必要があります。タイヤ幅も多少は変わるので調整しましょう。ちなみにバッテリーの残量が低すぎるとそれもそれで回転量がずれてしまうので注意してください。下の図はついでにタイヤをお掃除している様子です。

タイヤの掃除

音階

Pi:Coを起動した時や、モードを変えていく時など、結構頻繁にピッピッと音が鳴ります。サンプルプログラムを通してブザーを鳴らしたりもしましたね。

このブザーを使って今回はドレミファソラシド、という音階を作れるようにしましょう。実はとても簡単です。こちらの先輩の記事を参考にしました。

以下のコードをstatic_parameters.hに記入してください。


#define C1_FREQ		(261.83)	// Low C
#define CS1_FREQ	(277.18)	// Low C#
#define D1_FREQ		(293.66)	// Low D
#define EB1_FREQ	(311.13)	// Low Eb
#define E1_FREQ		(329.63)	// Low E
#define F1_FREQ		(349.23)	// Low F
#define FS1_FREQ	(369.99)	// Low F#
#define G1_FREQ		(392)		// Low G
#define GS1_FREQ	(415.3)		// Low G#
#define A1_FREQ		(440)		// Low A
#define BB1_FREQ	(466.16)	// Low Bb
#define B1_FREQ		(493.88)	// Low B

#define C2_FREQ		(523.25)	// C
#define CS2_FREQ	(554.37)	// C#
#define D2_FREQ		(587.33)	// D
#define EB2_FREQ	(622.25)	// Eb
#define E2_FREQ		(659.26)	// E
#define F2_FREQ		(698.46)	// F
#define FS2_FREQ	(739.99)	// F#
#define G2_FREQ		(783.99)	// G
#define GS2_FREQ	(830.61)	// G#
#define A2_FREQ		(880.00)	// A
#define BB2_FREQ	(932.33)	// Bb
#define B2_FREQ		(987.77)	// B

#define C3_FREQ		(1046.5)	// Hi C
#define CS3_FREQ	(1108.73)	// Hi C#
#define D3_FREQ		(1174.66)	// Hi D
#define EB3_FREQ	(1244.51)	// Hi Eb
#define E3_FREQ		(1318.51)	// Hi E
#define F3_FREQ		(1396.91)	// Hi F
#define FS3_FREQ	(1479.98)	// Hi F#
#define G3_FREQ		(1567.98)	// Hi G
#define GS3_FREQ	(1661.22)	// Hi G#
#define A3_FREQ		(1760)		// Hi A
#define BB3_FREQ	(1864.66)	// Hi Bb
#define B3_FREQ		(1975.53)	// Hi B

#define C4_FREQ		(2093)

すると、mainファイル(PiCoClassic3.cadjust.c)などで以下のように書き込むと音が鳴らせます。


SET_BUZZER_FREQ(C4_FREQ);
ENABLE_BUZZER;

これらと待ち時間のwait_ms関数などを調整して応用すると、好きなメロディを流すことができるようになります♪僕はカービィが好きなので、レベルクリア音を作ってみました。また、これによってPi:Coのモード選択ボタンを押した時になる音も変えることができますよ!

Shu – Kirby Winning theme

まとめ

今回はタイヤの固定とブザーの応用を実装しました。

次回はマイクロマウス大会について少し解説をして、16×16の迷路を走破します。

タイトルとURLをコピーしました