FC2ブログ

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

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

お人形の修理(音声再生換装)

本件は、(千葉県)鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様の修理事例であり、つつじが丘おもちゃ病院(当院)はファームウェアの開発を請け負った。
当記事には依頼元の 鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様 から提供していただいた情報や資料が含まれている。
お人形の修理外観

音声再生機能をPIC+EEPROMで換装する。そのためのファームウェアの開発と音声データの作成をつつじが丘おもちゃ病院で実施した。

開発要件は 依頼元のブログ を参照。

音声の長さはベアでは7秒程あり512kビットのEEPROMが必要になる。依頼元から支給された音声は無音の部分が含まれていて、それを切り詰めると実質約3.7秒になり、256kビットのEEPROMに収容できる。音声データ中に無音部分の印を埋め込み、ファームウェアではその場所で音声再生を止めて指定時間待合せる機能を持たせた。

マイコンはPWMモジュールが搭載されていればよいので、最も廉価なPIC12F1501(@70円2017年秋月)とEEPROMは24FC256(@90円2017年秋月)を採用した。I2Cモジュールは内蔵していないのでソフトウェアで実装する。

開発したファームウェアは ここから ダウンロードできる。
PICに書込むファームウェアのプロジェクトディレクトリは Talk_I2C\Talk_I2C_1501.X
EEPROMに書込む音声データのプロジェクトディレクトリは Talk_I2C\DATA\data_24FC256.X

【音声内容】
音声内容はこれ

【設計メモ】
//================================================
//音声再生を行うプログラム
//
//ターゲットは12F1501、内部オシレータ16MHz
//
//ピンの割当て
//RA0:TX(デバグ情報)出力(Hを出力)
//RA1:空き(Lを出力)
//RA2:PWM音声出力(正極性)
//RA3:トリガ入力(負論理、内部ブルアップする)
//RA4:I2C(SCL)(内部プルアップする)
//RA5:I2C(SDA)(内部プルアップする)
//
//音声データは8ビット8kspsのPCMデータで、I2C接続のEEPROMに置く。
//
//PCMデータをデューティ値としてPWM出力することで音声を再生する。
//PWM周期は32us(31.25kHz)とし、4倍オーバーサンプリングとする。
//TMR2のプリスケーラを1/1にして、TMR2クロックを4MHzとする。
//PWMステップ(PWMDCHの最大値)を127とすることでPWM周期を32usにする。
//PWMDCH+PWMDCL<7>で1/256分解能の分解能を確保する。
//TMR2ポストスケ-ラを1/4にして、PWMデューティの更新周期を128usにする。
// 8ksps(=125us)との差は無視する。
//
//PWMDCH+PWMDCLの更新は割込み処理で行う。
//PWMデューティ値の準備はタスク処理で行う。
//割込み処理とタスク処理の間のデータ授受はリングバッファを介して行う。
//バッファアンダーランが発生した場合は、割込み処理でPWMDCH+PWMDCLを更新しない。
//タスク処理はバッファフルのときは空くまで待つ。
//
//音声データトークンは以下とする。
// 音声データ=データ種別(0x00)+バイト数(2バイトで上位下位の順)+PCMデータ(バイト数分)
// 無音期間=データ種別(0x01)+静止させるPWM更新周期回数(2バイトで上位下位の順)
// 終了データ=データ種別(0xff)
//音声データトークンはEEPROMの0番地から連続して詰めていく。

//音声再生開始前はランプ上昇、終了後はランプ降下のデューティ値を出力し、ポップノイズを抑止する。

//I2Cモジュールは内蔵していないのでソフトで実装する。

//デバグ情報を取得するためのUARTモジュールも内蔵していないのでソフトで実装する。

//パワーオン後はSleepし、トリガポートのIOCでWakeUpして音声再生を1回実行する。
関連記事
スポンサーサイト
  1. 2017/02/16(木) 23:10:51|
  2. マイコン換装
  3. | コメント:0
<<サクソホーンDH-800の修理(ケミコン容量抜け) | ホーム | ショベルカーRCの修理(マイコン換装)>>

コメント

コメントの投稿


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

プロフィール

大泉茂幸

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

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

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

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

カテゴリ

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

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR