2019-09-15   6c6fb758

マイコンを使わないアナログ式電子オルゴールを作った

皆さんこんにちは。 今回は、私が 1 年がかりで作った「アナログ式電子オルゴール」の紹介をしたいと思います。

    動作風景

    ※音量小さいです。

    元ネタはピアノロール

    私が中学生のころ、クラシックなミッキーマウスのアニメーションを見るのが好きだったのですが、そこにピアノロール が出ていました。これは、ピアノの演奏情報を時系列的に記録した紙媒体であり、穴が空いているところに対応する鍵盤が自動的に押されるしくみのようです。

    これをもとに、幅 40 mm の紙テープで演奏データを記録することにしました。 本家のピアノロールは、鍵盤 1 つずつに 1 ライン使うため非常に幅の広い紙テープが必要になります。 そこで、音階(ドレミファソラシドと#)を 4 ビット、オクターブを 3 ビット、ノートオン/オフを 1 ビットの合計 8 ビットで表現しています。

    回路図

    画像形式と .CE3 形式で配布します。 .CE3 を BSch3V で開けば高解像で確認できるためお勧めします。 なお、パスコンなどのノイズ対策や電源の振動対策を行っておらず、自己責任にてお願いします。

    電源

    15V の AC アダプタからレールスプリッタで ±7.5V 電源を生成、プッシュプルで大電流対応。 そのほか、NJM4580DD オペアンプの動作電圧を作ったり、デジタル用+5V を三端子レギュレータで作っています。

    紙テープ巻取回路

    紙テープを一定の速度で巻き取ります。 モータの速度をフィードバックで制御していますが、なんと速度センサもまたモータ。 紙テープにローラーを当ててモータの軸を回し、微弱な起電圧を 300 倍に増幅します。 そして、半固定抵抗によって定めた基準電圧とコンパレータによって比較し、 紙テープを巻き取るモータをオン/オフします。 モータは激しいノイズ源になりそうですので、3V 電池を使って電源を隔離しています。

    紙テープ読取回路

    黒を 1、白を 0 のデジタル信号として、8 ビット幅の紙テープをフォトリフレクタで読み取ります。 1 ビットはノートオン信号として、これが Hi のときに残りの 7 ビットを読み取るようにします。

    音階デコーダ

    音階信号(ドレミファソラシドと半音)からオクターブ 4 の周波数信号を生成します。 音階に対応する周波数は半固定抵抗で調整する必要があります。 また、周波数出力 Vfreq4 はインピーダンスありの負電圧となります(オクターブデコーダとの兼ね合いのため)。

    オクターブデコーダ

    オクターブ 4 の周波数信号をもとに、オクターブ 0〜7 に変調します。 オクターブ 0 は実質 0V を出力することになります。 こちらも、各オクターブごとに半固定抵抗で周波数の調整が必要です。

    エンベロープ回路

    音量を変化させて減衰を表現します。 単純なコンデンサの充電放電と、分圧回路ですね。 なお、コンデンサの急放電によるストレスは無視。

    ノコギリ波 VCO&VCA

    周波数と音量を電圧として入力するとノコギリ波が生成されます。 周波数については入力電圧との線形性が成り立ちますが、振幅(音量)については J-FET の特性の影響を受けます。

    3D モデル

    紙テープ読取装置の 3D モデルです。 3D プリンタで印刷し、接着剤で組み立てればできあがります。 なお、.stl 形式と .rsdoc 形式で配布しますが、DesignSpark Mechanical で .rsdoc を開けば印刷用に部品が分割されていますのでお勧めします。

    モータ用ロール

    幅 40mm の紙テープを 130 モータとギアボックスで巻き取ります。

    手巻き用ロール

    こちらは手巻き用のノブがついています。

    ベース

    手前から順に、ギアボックス、速度センサ、紙テープの土台です。

    ヘッド

    格子 1 つにフォトリフレクタ LBR-127HLD が 2 つ入ります。 格子を 4 つ用意したので、8 ビット分の並列データ読み込みができます。

    モータホルダー

    FA-130RA モータを固定します。

    その他

    市販のパーツの紹介です。

    この記事の執筆者

    hato6502

    Hata  

    中学生の頃に 6502 という CPU からプログラミングの世界に入りました。 C/C++ で1から作ることも好きですが、最近は Web 系にシフトしつつあります。