すでに何番煎じか分かりませんが、PC-9801 の起動音を再現するものです。 いまさらではありますが「16bitセンセーション ANOTHER LAYER」を観て懐かしくなったので作ってみました。
回路
圧電サウンダ (他励振) のピンをそれぞれ ATtiny85 の 5 Pin (PB0/OC0A) 及び GND に接続して下さい。 必要に応じて保護抵抗を入れるなどして下さい。 「 圧電サウンダ、圧電振動板 (他励振タイプ) の駆動回路例を教えてください。 」(村田製作所) が参考になるでしょう。
動作確認
以下の AVR で確認しました。
-
ATtiny85
ATtiny25, 45 の場合はソースファイル中の .include の部分を変更してアセンブルすれば使えると思います (未確認)。
使い方
-
アセンブル
例:
avra pipo.asm -
書き込み
例:
avrdude -c [programmer type] -p t85 -b 2400 -e -U flash:w:pipo.hex(
[programmer type]は使用しているライターを指定して下さい)
AVR がリセットされると、一定時間 (プログラム中で指定) 経過してからピポ音が鳴ります。 可変抵抗で長さが変わるとか、プッシュスイッチで再生するとか、ボリュームを調整するなどの機能はありません。 無音期間や音の長さを変えたい場合はソースを変更して再アセンブル + 書き込みして下さい。
プログラムについて
Timer0 でサウンド用の PWM 信号を、Timer1 で時間計測用の 10 kHz のクロックを生成しています。 動作後は power-down mode に入るので、大変省電力です (1 μA 未満)。
参考
以下に参考値として、いくつかのピポ音の長さを挙げておきます (「70 ms + 100 ms」はピが 約 70 ms、ポが 約 100 ms の意)。 録音等から計測したものですので正確性は保証しません。
- PC-9801DA (実録PC-98シリーズ起動音 のデーターを元に計測)
-
70 ms + 100 ms
- PC-9801VX21 (実録PC-98シリーズ起動音 のデーターを元に計測)
-
165 ms + 165 ms
- テレビアニメ『16bitセンセーション ANOTHER LAYER』 次回予告 (第1, 2, 3話で確認)
-
150 ms + 160 ms
- 「16bitセンセーション ANOTHER PLAYER」(公式WEBラジオ) オープニング (第1, 2, 3回で確認)
-
270 ms + 270 ms