FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PIC電子オルゴールVer5_6でサポートデバイスを追加

お馴染みのPIC電子オルゴールでサポートデバイスを追加した。元々オルゴールエンジンはPIC16エンハンスドコアを対象に開発しているので個々のデバイス毎にサポート可否を言うのはあたらないのだが、言い換えれば新しいいデバイスのサンプルコードを作って動作確認をした、と言うことだ。サンプルコードは ここから ダウンロードできる。

【サポートデバイス】
現在サンプルコードを公開しているデバイスは以下の通りで、(新)と表示したのが今回追加したデバイスだ。プログラムメモリサイズ等の特徴と単価(2017年秋月)も表示した。

   12F1501  1kワード  8ピン  16MHz  @70円
   16F1503  2kワード  14ピン 16MHz  @70円(SOICパッケージ)
(新)16F1579  8kワード  20ピン MSSP無し @140円
   12F1612  2kワード  8ピン  MSSP無し @80円
   16F1705  8kワード  14ピン        @100円
   16F1709  8kワード  20ピン        @150円
   12F1822  2kワード  8ピン         @100円
   16F1827  4kワード  18ピン        @130円
   12F1840  4kワード  8ピン         @120円
   16F18313 2kワード  8ピン         @75円
(新)16F18325 8kワード  14ピン        @100円
(新)16F18326 16kワード 14ピン        @130円
(新)16F18857 32kワード 28ピン        @170円

音声再生を行う場合は多量のメモリが必要なので、今春(2017年3月~4月)に秋月で新発売されたものからプログラムメモリが大きくてコストパフォーマンスの良いものを(新)デバイスとして選択した。

16F18857は32kワードあるので24FC512を外付けするよりトータルコストは安く上がる。最大のメリットはI2Cでは同時に1個の音声しか再生できないが、プログラムメモリからの再生では複数音声の同時再生が可能なことだ。例えばエンジン音をバックグラウンドで流しながらアンパンマンをしゃべらせることができる。

16F1579は割高な感じがするが20ピンあるので、おもちゃの制御点数が多くて14ピンデバイスではポート数が足りないときに使える。16F15xxは大体が20MHzまでなのだが、これは内部オシレータで32MHz動作が可能だ。

12F1822はデータSRAMが128バイトしか無く陳腐化してしまった感があるが、まだユーザが多いようなので、PIC電子オルゴール初心者の学習用にサンプルコードを保持している。おもちゃへの換装用には16F18xxxがお薦めだ。

12F1612と16F1579はMSSPモジュールを内蔵していないので、I2CとSPI通信をソフト処理で行っている。そのため、音声再生とオルゴール演奏を同時に動かすとアンダーランが生じてしまうので、応用範囲が限られる。価格面でのメリットがあればと思ってサンプルを作ったが、意味が無かった。

12F1501と16F1503は最廉価で、これらを使ってSDカードからWAVファイルを再生する 「PICでSDカード再生」 を公開している。これをPIC電子オルゴールに統合した。これらのデバイスは内部オシレータが16MHzで、オルゴール演奏をさせるにはCPUが足りない。そのため音声再生のみのモデルになる。


【プロジェクトの説明】
機能とデバイスの組み合わせで個々にプロジェクトが作られていて、その組み合せはプロジェクト名に織り込まれている。

demo
消防車・パトカー・救急車のサイレン音を電子オルゴールで演奏するモデル。

kyoku
メモリが許す限り多くの曲を収容したモデル。音源は正弦波の基本波と4次高調波をミックスしたもの。

ongen
音源のバリエーションを聞かせるモデル。音源はピアノ・正弦波類・リング変調波など。

onsei
電子オルゴール演奏と音声再生を同時実行するモデル。但し、プログラムメモリが2kワードのデバイスは音声データだけでメモリが一杯になるので、音声再生のみを実装している。

PICxxx
xxxでターゲットのデバイス名を示す。

PROG
音声データをプログラムメモリに収容したモデル。

I2C
音声データを外付けの24FC512に収容したモデル。24FC512に入れるデータのプロジェクトは「Mirrorna_24FC512」。

SD
音声データをSDに収容したモデル。格納ファイルは「SD\ANPANMAN.wav」。

demo・kyoku・onseiのモデルは200Ωスピーカーまたは圧電スピーカーをPICから直接駆動するためにBTL出力としている。また、電源オンで演奏開始する。

PROG・I2C・SDのモデルはトリガ入力ピン(RC0~5)を操作して、演奏曲と再生音を選択し動作開始する。

例えば、「onsei_PIC18857_SD」は電子オルゴール演奏とSDからの音声再生をコンカレントに実行するモデルで、ターゲットは16F18857。RC0~RC5で演奏曲と再生音を選択する。

watanabe
糸魚川のおもちゃDr渡辺様が作られた楽曲を収容したモデル。PIC電子オルゴールの長所を上手く引き出してくれている。他のモデルでは11分のオートパワーオフが仕掛けてあるが、このモデルはエンドレスに演奏し続ける。開発作業のBGMに最適だ。


【プロジェクトの構成】
プロジェクトは単一のソースコードで構成されていて、ソースコード名は「プロジェクト名.asm」となっている。そのソースコードからオルゴールエンジン・音符データ・波形データなどがincludeされる。

下記のデバイスについては、デフォルトのリンカースクリプトではプログラムメモリのセグメントが分断されているので、PIC電子オルゴール向けに1セグメントにしたものを用意している。

16F1579
16F1705
16F1709
16F1827
16F1828
12F1840


【PIC電子オルゴールのセールスポイント】
今までのおもちゃ修理事例からPIC電子オルゴールのメリットを紹介する。

①マイコンだから演奏の自由度が高い。
うたおう!おうた カラオケ絵本」の修理では、カラオケであることから添付の楽譜通りに演奏しないといけない。PIC電子オルゴールは音符データを自由に作れるので元々の演奏内容を忠実に再現することが可能だ。演奏の表現としてベロシティ、テンポ、ピッチベンドの動的なコントロールも可能である。

②音声再生もコンカレントに実行できる。
電子オルゴールは音符データに従って演奏音のPCMデータを計算してPWM出力している。音声再生は、音声のPCMデータを電子オルゴールで計算したPCMデータに加算するだけでコンカレント実行が実現できる。「不思議なドレッサー ミラーナ」では、オルゴールを演奏しながら女の子がしゃべったり、効果音も同時に鳴らしている。
音声再生のチャネルは最大3個まで実装できる。つまり3音声まで同時に再生できるということだ。

③効果音もオルゴール演奏で実現できる。
効果音を音声再生でやると音声データが嵩張って大きなメモリが必要になる。パトカーや救急車のような音は音符表現すればオルゴール演奏で効果音を出すことができる。「キッズドライバーのハンドルV2」ではパトカー、救急車と消防車のサイレン音をPIC電子オルゴールで演奏している。サイレンの音程が滑らかに上下するのはピッチベンドコントロールの機能である。消防車の鐘の音は実際の鐘の音をオルゴールの音源データとして用いているのでかなりリアルに演奏できている。

④音源の自由度が高い。
消防車の鐘の音もそうだが、実際の楽器音をPCMデータにして音源データとすることで、楽器の音色を表現することができる。「電子オルゴール+音声再生」ではピアノの音色やリング変調による金属的な音色で演奏している。

⑤おもちゃの制御も同時に実行できる。
オルゴール演奏と音声再生をコンカレントに実行しながらおもちゃの制御も同時に行わないとおもちゃの修理には使えない。
アンパンマン電動レールでGO!GO!DX」では赤外線信号のデコードとモーター制御、更にバッテリー電圧の監視も同時に行っている。

⑥外部メモリを利用して長時間の音声再生ができる。
I2CインタフェースのシリアルEEPROM(24FCxxxなど)やSDカードから音声データを読み込んで、音声再生させることができる。SDカードなら数時間の音声を扱うことができる。
24FC512を繋いだ修理事例は「不思議なドレッサー ミラーナ
SDカードからの音声再生の事例は「SDカードからの音声再生


【PIC電子オルゴールの開発経緯】
①最初はビープ音から
今でこそサンプリングシンセ擬きの仕掛けになったが、最初は音高と音価に従ってポートをH/Lにして矩形波を出力する「ビープ音」だった。1つのポートには1つの音しか出せないため、複数ポートの出力を外部でミックスして複数パートの演奏をやっていた。

②PCM化
PWM内蔵の廉価なPICが出回り始めてPWMを使ったD/A変換が実装できるようになったので、内部の処理では音のデータをPCM形式で扱うようにした。単調なビープ音にエンベロープを付けて、少しはマシな楽音表現になった。パート数を増やすよりもエンベロープ表現を取込んだ方がオルゴール演奏としては効果が大きい。両方実現できれば良いのだが、廉価なPICではCPU能力が貧弱で無理だ。今のところパート数は通常2パートで、3パート演奏が限界だ。
音源もビープ音からPCM音源に替えた。音色のバリエーションを実現するのにリアルタイムに波形演算を行ったのではCPUが足りない。そのため、波形計算を予めPCで行って、その結果をPCM音源としてPICに持ち込むことにした。実際の楽器音をサンプリングしたPCM音源も再生できるが、当初の発想はPICの処理能力を補うための手法だった。
PCM化によってベロシティとピッチベンドの動的なコントロールが可能になった。

③音声再生機能を追加
内部処理をPCM化したことで、PCM録音された音声データの再生機能も容易に追加できた。

④外部メモリのサポート
音声データは嵩張るので、長時間の音声はPICの内蔵メモリには収まり切らない。そのため、容量の大きなメモリを外付けすることにして、I2CインタフェースのシリアルEEPROMとSDカードの接続をサポートした。
SDカードは、PICの性能が低いためFATシステムは実装できず、物理層でのアクセスを行っている。MP3デコードもできないためWAV形式のみのサポートとなる。
関連記事
スポンサーサイト
  1. 2017/05/29(月) 21:42:37|
  2. 電子オルゴール+音声
  3. | コメント:2
<<PIC電子オルゴールのI2C動作不良について(有識者の教示を乞う) | ホーム | クリスマスリースの修理(マイコン換装)>>

コメント

Re: エンドレスのBGMに、感激!

糸魚川おもちゃ病院とのご関係は理解しました。その旨で記事本文を訂正しました。
  1. 2017/06/09(金) 17:59:47 |
  2. URL |
  3. 大泉茂幸 #-
  4. [ 編集 ]

エンドレスのBGMに、感激!

「 おもちゃクリニック ゆりかご」用に、見よう見真似で作った楽譜データを、今回、プロジェクトに加えていただき、感謝します。エンドレスBGMには大感激です!
なお当クリニックは、40年以上前から精力的に活動されている「糸魚川おもちゃの病院」様とは、別の任意団体ですが、お互いに連携を図りながら、仲良く進めていきたいと存じます。
  1. 2017/06/07(水) 22:43:37 |
  2. URL |
  3. Dr.わたなべ.M #5cimggFc
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (87)
¦ ・電子オルゴール+音声 (32)
¦ ・音声再生・録音再生 (4)
¦ ・2.4GHzラジコン (29)
¦ ・レガシーラジコン (12)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (3)
ツール製作 (24)
¦ ・プログラマー (17)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (4)
修理事例 (150)
¦ ・マイコン換装 (70)
¦ ・電子・電気修理 (58)
¦ ・メカ修理 (22)
製作記事 (4)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (0)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR