• もっと見る

<< 2024年04月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
診療記録の検索
検索語句
種類別アーカイブ
タグクラウド
最新の診療記録
最新コメント
最新トラックバック
リンク集
※修理技術に関すること以外で、おもちゃ病院に関するご意見・ご感想等がありましたら、ぜひ下のブログからコメント入力してください。
ゆりかご日記
ミニーマウスの貯金箱に、タッチSWで音声再生を実装 [2021年01月21日(Thu)]

ミニーマウスの貯金箱に、タッチSWで音声再生を実装

★2021/1/21 ToyDr.わたなべ、完成動画をご覧ください。



【PIC電子オルゴールの新バージョン】

私が愛用している、名張市つつじが丘おもちゃ病院 PIC電子オルゴールが、バージョンアップされました。開発者の Dr.大泉院長 に感謝申し上げます。

【プロジェクト試作報告】

早速、orgel_1823_MTOUCH を教材として、マルチタッチで音声再生を試作してみます。
外部メモリは、従来の4線SPI接続で試作しますが、オルゴールエンジン最新版です。

100均ショップで見つけたツムツムの貯金箱に組込みます。
ミニー貯金箱.jpg



大泉院長から作っていただいた、タッチSW3個のみのプロジェクトで、仕様どおりに音声再生されることが確認できました。


【ミニーマウスの音声再生】

さて、当方ではツムツム貯金箱のミニーマウスに、タッチSW3個で9種類の音声再生を実装してみます。

技術研修用に、実装プロジェクトの回路図を作成。
Minnie_1823_MTOUCH_回路図.jpg


【組立と完成動画】

タッチSWはコストパフォーマンスが良く、配置や形状などの工夫を(おもちゃドクター自身も)楽しめます。
丸いフォルムのツムツム貯金箱を前にして、タッチSW3個の配置と形状に悩みましたが、開発者の大泉院長から、「いかに人体をGNDレベルに近づけるかが、安定的な動作の秘訣」とのアドバイスをいただきました。

センサー線と平行に、もう1本ずつGND配線を沿わせ、
それを三角形に配置して、マルチタッチも可能にします。
ミニー説明図.jpg


技術研修中も大泉院長には、動画で途中経過を報告します。





【ダウンロード】(ここからは、おもちゃドクター向けの技術情報)

今回の技術研修に使ったプロジェクト一式は、ココから ダウンロードできます。

プロジェクト名は、Minnie_1823_MTOUCH.X で、
音声データは、voice_Minnie 内の、W25Q16.hex

実装する音声は9種類を選択、同梱のツールでSPI用の音声データに変換したもの。
元々の音質が良くないので、8ksps_8bitでSPIメモリに格納しました。

短押し時の音声データ
  もしもしミッキー? 私よ、あなたのミニー
  私の名前はミニーマウス、あなたは?
  ちょっと待って!

長押し時の音声データ
  お仕事大変みたいね、あなたってなんて頑張り屋のスターなの
  ハロー、あなたミッキーかと思ったわ
  みんな芸術的で素晴らしいわ、でもね、古めかしくって、退屈なの

マルチタッチ時の音声データ
  ウフフフ、くすぐったい
  そこに居るのはミッキー、あなたなの
  ミニーマウスのテーマ曲



【タッチSW3個用のカスタマイズ】

大泉院長によると、「非稼働中の評価周期を2ms+8ms=10msのままで行くと、3個の全体周期が30msになり、固有処理コールバック周期(32ms)でタッチ状態の変化を取り溢すことになるので、非稼働中の評価周期を2ms+16ms=18msにしました。」とのこと。

個別アプリケーション関連の構成情報が、次のようにカスタマイズされています。
  TSW_SU set 3      ;○実装タッチSW数を3にしておく
  TSW_PR equ 20160   ;○タッチSW1個分のCPS評価周期[us]
  TSW_LONG equ 600   ;○長タッチ判定時間[ms]

サンプルのソースファイルの冒頭に、より詳しく解説されていて(難しいですが)勉強になります。
また、アプリケーションにおいて、タッチSWの処理は4個目以上がコメントアウトされています。


【ミニーマウス用のカスタマイズ】

今回はデバイス構成情報で、PWM出力を次のとおり指定しました。
  BTL = 3 (BTL出力指定は、ブレーキ出力)
  VOLUME = 1 (出力音量指定は、音量50%)

サンプルプロジェクトでのSPI音声データ20個を、任意の音声に入れ替えます。
ソース末尾のインデックスに、実装する音声9個を、次のように定義します。

;音声データ(SPIフラッシュ)のインデックス
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
voiceS_tbl
;「voice_Minnie」の音声データ ;★wav2asmで生成したW25Q16.hexを使う
 vos_mac 0x0b4bda,0x0063c8,8000 ;mosimosi.wav もしもしミッキー、私よ、あなたのミニー
 vos_mac 0x0c422a,0x006f70,8000 ;myname.wav 私の名前はミニーマウス、あなたは
 vos_mac 0x0d79a2,0x002c1a,8000 ;wait.wav ちょっと待って
; vos_mac 0x000000,0x003aca,8000 ;secret.wav 内緒話しましょ
; vos_mac 0x003aca,0x002aac,8000 ;shake.wav 手をつなぎましょ
 vos_mac 0x0bafa2,0x009288,8000 ;gambariya.wav お仕事大変みたいね。
      あなたってなんて頑張り屋のスターなの
 vos_mac 0x0cb19a,0x00c808,8000 ;hello.wav ハロー、あなたミッキーかと思ったわ
 vos_mac 0x0da5bc,0x013d49,8000 ;artistic.wav みんな芸術的で素晴らしいわ。
      でもね、古めかしくって、退屈なの
; vos_mac 0x0112e8,0x005881,8000 ;sneeze.wav クシュン、風邪かしら
; vos_mac 0x006576,0x006222,8000 ;skip.wav スキップしましょ、ランララーン
 vos_mac 0x00c798,0x004b50,8000 ;ticklish.wav ウフフフ、くすぐったい
 vos_mac 0x0aefb2,0x005c28,8000 ;there.wav そこに居るのはミッキー、あなたなの
 vos_mac 0x016b69,0x098449,8000 ;YooHoo.wav ミニーマウスのテーマ曲(動画サイトより)

何とか頑張って揃えましたが、実際のおもちゃから録音した音声も含め、セリフが12個テーマ曲が1個でした。ここから9個を選択すれば良いでしょう。


音声データ数が減ったので、アプリケーション処理におけるプリセット音声番号を★印のとおり置き換えます。

;アプリケーションの処理
;++++++++++++++++++++++++++++++++++++++++++++++++
;長タッチ検知
  movlw 4 ;仮に「6番」にしておく ;★仮に「4番」に置き換え

;SW0とSW1〜4のマルチタッチ検知
  movlw 7 ;仮に「11番」にしておく ;★仮に「7番」に置き換え

;SW1とSW2〜4のマルチタッチ検知
  movlw 9 ;仮に「15番」にしておく ;★仮に「9番」に置き換え


【ユニバーサル基板に実装】

誤配線を防止するために、基板実装図2枚を作成しました。

Minnie_1823_MTOUCH_TOPビュー.jpg

Minnie_1823_MTOUCH_ボトムビュー.jpg


末筆ながら開発者に感謝申し上げ、技術研修の報告とします。

トラックバック
※トラックバックの受付は終了しました
コメント