2026年02月04日

ラズピコで PC-98 起動音「ピポッ」を再現

2月になりましたな。つい先日正月だったのに…(また言ってる)。DTMerの
皆さまにおかれましては、冬の全裸DTMが捗っておられる事とお慶び申し
上げます。


先日から作っている回路が今ひとつ上手く動かないので、今回はラズピコで
ちょっとしたものを作ってみました。ナイト2000 スキャナの回路を作って
満足し放置気味だったのでね…。
以前ロジックICで PC-98ピポ回路 なるものを作りましたが、それを今度は
Raspberry Pi Pico、ラズピコで作ろうかと。

ロジックICだとかなり複雑になりましたが、ラズピコのPWMを使えば至極
簡単な構成で作れます。が…自分はmicroPythonが未だ良く分からないので、
プログラムはGrokさんに丸投げ。

●可変抵抗の値を読んで鳴動速度を可変出来る
●ラズピコの電源を入れて1.5秒後に「ピポッ」を1回鳴らす
●「ピ」は2kHz、「ポ」は1kHz、デューティ比50%
●最初に「ピポッ」を鳴らした後は待機状態になり、トリガで再度鳴動
●鳴動している間はトリガを受け付けない

以上の条件でプログラムを組んでもらいました。可変抵抗で鳴動間隔を変更
しつつトリガを受けたら2kHz/1kHzを鳴らす 程度のプログラムはこれまで
やって来た事の応用で出来るものの、鳴動している間の再トリガ禁止は良く
分からなかったので。


RasPico98Pipo01NoVol.png

ラズピコの回路図はこんな感じにしました。

最初は出力(1ピン GP0)を直接圧電ブザーに繋いでいたのですが、やっぱり
微妙に音量が小さく楽しめないので、トランジスタで簡単に増幅する事に。
ただの矩形波は増幅が楽で良いっす。トランジスタはNPNなら何でもおk。
但し増幅すると圧電ブザーは鳴らなくなるので、スピーカ向け。音量調整が
必要な時は、1kΩとトランジスタの B の間に可変抵抗を入れてやれば良い
でしょう。

RasPico98Pipo01Vol.png

こんな感じに。

RasPico98Pipo02.jpg

音量調整なしVer.完成~。それっぽくする為に、PC-98の電源ランプと同じ
平型の緑LEDを付けておきました。

2ピン(GP1)-GND間には一応10kΩを入れていますが、プログラム上で内部
プルダウン抵抗を有効にしているので、多分入れなくても問題ありません。
また、トリガを受けるとすぐ鳴動ルーチンに入り、その間は再トリガを受け
付けないので、チャタリング対策も不要かと。


あとは、ラズピコをPCのUSBに接続して以下のテキストファイルの内容を
Thonny にコピペ、main.py というファイル名でラズピコに保存すればおk。

RasPico98Pipo.txt
※Seesaaブログでは行頭のスペースが正常に表示されないので、試したい
方はお手数ですが別タブに表示された内容をコピペするか、DLして下さい。


ラズピコをUSBに接続して通電されると、自動的にプログラムが実行される
ようになっているので、通電から1.5秒後 (PC-98のBIOS起動と内蔵HDDの
スピンアップ時間をシミュレート)「ピポッ」と鳴ります。

一部の実機は「ピポッ」の1秒くらい後に小さく「プツッ」とも鳴りまして、
そこまで再現するかどうか悩んだんですが、今回は無しにしました。


ボタンを押すごとに何度でも「ピポッ」を楽しむ事が出来ます。PC内部の
+5V取れる箇所に40ピン(VBUS)と38ピン(GND)を接続しておけば、どんな
PCでも電源ONした時に「ピポッ」と鳴らす事が出来ますね。
リセット信号が取れるのなら、2ピン(GP1)に入れてやる事で再起動時にも
鳴らす事は出来ると思います(最大+3.3Vである点に留意。またこの場合は
トリガを受けると即時に鳴ります)。


動画でもどうぞ(34秒)。



白い箱はスピーカの音を大きくする為のエンクロージャ。

うん、やっぱり正確に2kHz/1kHzが生成されているので、ロジックIC使用の
回路のように音痴になったりしませんね。

可変抵抗を最小にすると、CPUアクセラレータ搭載時のような「ピヨッ」と
ごく短い間隔で鳴り、最大だと「ピーポーッ」とクロックを落とした時の
ように長めに鳴ります。この辺はお好みでどうぞ。

通電してから最初の「ピポッ」までの時間は、60行目の
sleep(1.5)
の値で変更できます。プログラムを改変して32ピン(GP27)を使って別の可変
抵抗を接続し、この値を可変出来るようにすれば鳴るまでの間隔も変えられ
ますが、そこまでの必要はないかな。

可変抵抗で可変出来るよりも更にもっと短く(長く)したい場合は、26行目の
return 0.02 + (0.4 - 0.05) * ratio # 線形補間
の値を変更します。
0.02 が可変抵抗 最小時、0.4 が最大時の待ち時間です。

PICマイコンでも出来るのでしょうが、やっぱり書き込みに専用のライタが
不要というのは大きいですね。USBで繋ぐだけで済みますから。
ラズピコより更に小さいマイコンもたくさん出回っているので、PCへ内蔵
させるならそういう小型マイコンを選ぶのも良いでしょう。ラズピコも十分
小型ではありますが。


良く出来たので、ラズピコもう1個買ってDELLのPCに載せようかしら。



posted by ゆう at 2026年02月04日| Comment(0) | ラズピコ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください
最近の記事