FC2ブログ

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

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

ミミクリーペット(ボイスレコーダー・チェンジャー換装)新バージョンのBOR対策

ミミクリーペットのボイスレコーダー・チェンジャー換装でBORするという相談を受けることがある。特に電池2本(3V)で動かす場合はBORしやすい。

先日「マイクでワンちゃんトイプードル」の修理で(僕としては)新たなBOR対策を講じたので、そのやり方をミミクリーペットにも適用した。

そのやり方は「BOR無効」にするという、全く詭弁な話だ。しかし、電池電圧の瞬低時にもVddを2.58V以上に維持するのは難しいので、そうするしかない。LFタイプを使えば解決するのだが、LFタイプはコスト高になるし、動作電圧が最大3.6Vに制約されてしまう。

BORを無効にするとVddが低下したときにハングアップする恐れがある。万一そのような事態になったときのために、WDTを有効にしてハングアップしたらリセットさせる。おもちゃ修理の用途では瞬低検知のレイテンシは問題にならないので、このような対策で十分だ。

対策実施後のプロジェクトは ここから ダウンロードできる。

今回の瞬低対応以外の設計情報については関連記事を参照。関連記事は「ミミクリ」で「ブログ内検索」すると出てくる。
スポンサーサイト



  1. 2018/12/31(月) 19:14:59|
  2. 音声再生・録音再生
  3. | コメント:0

マイクでワンちゃんトイプードルの修理(音声再生換装)

1.患者
マイクでワンちゃんトイプードル(イワヤ)
マイクでワンちゃんトイプードル外観

歌ったりお喋りしたり、クチパクと体も動かすそうだ。
取説はこれ。
マイクでワンちゃんトイプードル説明書1
マイクでワンちゃんトイプードル説明書2
マイクでワンちゃんトイプードル説明書3
マイクでワンちゃんトイプードル説明書4


2.症状
①全く動かない。

3.診察
①電池はOK。電池受け金具もOK。

②内部の基板をチェックすると、電源供給は正常で、左手ボタンと口元のリードSWの動作も正常。

③モーターは2個あり、一つはTr1個でシングル駆動されていて、駆動信号を与えると正常に動作する。もう一つはHスイッチ「MX-08」でフルブリッジ駆動されていて、駆動信号を与えると正常に正逆転する。

④スピーカはCOBから直接ドライブされていて、スピーカ自体は正常だ。

⑤モーターやスピーカーへの出力ポートのインピーダンスを測るとHighZになっていて、マイコンの初期化ができていないようだ。

⑥COB故障と判断した。改めてCOBを見ると、モールドの一部が剥がれていた。ここまで割れていると故障していてもおかしくはない。
マイクでワンちゃんトイプードルCOB割れ

4.治療
①故障したCOBをPIC電子オルゴールで換装する。歌を歌うのでオルゴール演奏では無く、すべて音声再生で実行する。先般、 PIC電子オルゴールで大容量メモリをサポート して、 「今後はオルゴール演奏しないPIC電子オルゴールの応用が進む」 と予想したが、その初めての事例になる。

【要件】
②歌とお喋りの内容や仕草は元々の動きが判らないので独自に創作することになる。

③取説では12曲を収容しているが、1曲2分とすると24分になる。8ビット8kspsでは12MバイトになりW25Q128が必要になる。しかし、W25Q128は@71円もするので、@42円で調達できるW25Q64にして、収容曲数を若干少なくする。W25Q64は約17分間の音声が記録でき、8曲程度を収容可能である。

④お喋りの文言も取説には50個とあるが、なかなか50個も思い浮かばないので、できるだけ多くということにしておく。

⑤仕草は、お喋りや鳴き声、それと歌っているときはクチパクさせる。音声データのPCM値を評価して、音声に合わせて動作させる。

⑥体の動きは、曲の演奏中は横振りを主に、音声レベルが高まると縦振りさせる。体は1個のモーターで駆動されていて、回転方向によって横振りと縦振りを変えている。つまり、縦振りと横振りは同時には実行できないメカになっている。

【設計】
⑦PCM値を一定の閾値と比較したのでは曲によっては動き過ぎたり動かなかったりするので、一定期間での最大値をサンプルして、その最大値の変化の大きさを評価することにした。

⑧その変化が大きいときは体を縦振りし、小さいときは横振りさせると曲の進行に合ったいい振り付けになった。閾値の設定と評価ロジックはソースコードを参照。

⑨鳴き声を出すトリガになる背中のセンサー(Piez素子)にはTr1段のアンプが付いていたが、信号観測するとポート入力に十分な信号が確認されたので、換装後はアンプを割愛した。

1MΩでプルダウンしたときの出力信号
マイクでワンちゃんトイプードル圧電波形

⑩寝かしつけの動作のトリガになる傾斜センサーの出力が極めてノイジーだったので、コンデンサを抱かせた。

対策前(内部プルアップのみ)
マイクでワンちゃんトイプードル傾斜センサー対策前

対策後(3.3uFを抱かせたとき)
マイクでワンちゃんトイプードル傾斜センサー対策後

⑩センサーとモーター制御の点数からポート数が1個足りなくなったので、左手SWと口元リードリレーを合わせて1個のADC入力にしてポート数を節約した。詳細は回路図を参照。

⑪W25Q64の動作電圧が3.6Vまでであるで、3.3Vのレギュレータを設置する。消費電流が1uAのSIIのS-812を採用した。動作時の負荷電流により電池電圧が瞬低しBORすることがあったので、Vddに大き目の電解コンを設置した。

対策前
マイクでワンちゃんトイプードルBOR対策前

対策後(Vddラインに2200uFを設置)
マイクでワンちゃんトイプードルBOR対策後

⑫それでも、電池が消耗してくるとBORするので、BORを無効にした。そうするとハングアップする可能性が出てくるので、WDTを有効にしてハングアップ時はリセットさせることにした。Sleep中はWDTを無効にする。

マイクでワンちゃんトイプードル瞬低対策後

【回路図と配線図】
マイクでワンちゃん回路図
RA1の2.2KΩとRA3の1.5KΩの直列抵抗は周辺回路がICSPに影響を来たさないように入れている。
Sleep中はRA3の内部プルアップを無効にするので、1MΩでプルダウンンしてポート電位をLに固定する。
RA4は、Sleep中はL出力する。
RA0は、Sleep中はデジタル入力設定に変えて内部プルアップを有効にして、IOCNでWakeUpする。ポート数を節約するため、若干の電流消費は受容する。

マイクでワンちゃん配線図部品面

マイクでワンちゃん配線図半田面

【部品代実費】
16F1503 85円(秋月)
W25Q64 42円(AliExpress)
S-812C3A-B-G(3.3レギュレータ) 13円(秋月)
IRLM6344 5円(AliExpress)
ICソケットDIP8 5円(AliExpress)
ICソケットDIP14 7円(AliExpress)
SOP8ピッチ変換基板 6円(AliExpress)
蛇の目基板 5円(AliExpress)
CR類 50円
合計 218円

目標コストの200円を超えていて、修理すべきだったかどうか微妙なところだ。

【ダウンロード】
設計資料とファームウェアの開発プロジェクトおよび開発際は ここから ダウンロードできる。

【開発と動作確認】
最初はシミュレーションデバグで個別処理の処理ルートとロジックの確認を行う。

次にPIC電子オルゴールのテストベンチで、デバグログの採取を行って走行ルートをトレースする。
走行ルートがOKになったら、デバグログをオフにして、実時間で動かして出力信号を確認する。
マイクでワンちゃんトイプードルデバグ1

ファームウエアの目途が付いたら、換装用の基板を作る。 (下の画像では最終版と異なる部分がある)
マイクでワンちゃんトイプードル換装基板1
マイクでワンちゃんトイプードル換装基板3


音楽に合わせた仕草は実際に動かせてみないと評価できないので、テスト動作とICSPを繰返して実行できるようにしておく。
換装基板をぬいぐるみの外に出して、PICをICテストクリップでPICプログラマーに繋いでおく。PICへのVdd供給はターゲットの電源から行う。
マイクでワンちゃんトイプードルデバグ2


動作確認の動画はこれ



【後日談】
このワンちゃんを修理した後で、別の個体を診る機会を得た。その個体は手のSW配線の断線で、制御の仕掛けは健全だったので、本来の動作を調べた。

電源SWのポジションは 「PLAY」-「OFF」-「SOUND」 となっていて、その使い分けは以下のとおりであることが判った。

「PLAY」 は音声出力し、モーターも稼働する。
「SOUND」 は音声出力のみで、モーターは稼働しない。

次回、修理の機会があったら、そのように設計変更する。

また、歌・おしゃべり・鳴き声・寝かしつけの動作の元々の音声をバックアップした。放置したときの音声は2言だけ録れたが、なかなか音を出さないのでやめた。
  1. 2018/12/31(月) 13:08:00|
  2. 電子オルゴール+音声再生
  3. | コメント:0

PIC電子オルゴールVer5_7で渡辺Dr(糸魚川)のCdSモデルを追加

PIC電子オルゴールVer5_7で渡辺Dr(糸魚川)のCdSモデルを追加

糸魚川の渡辺Drが PIC電子オルゴールのCdSをSWに使ったサンプル を使って、「100円均一商品のLEDタッチライトを、電子オルゴールに改造してみました。」 とのことで、渡辺Drのプロジェクトをorgel5_7に追加した。 ここから ダウンロードできる。 渡辺Drのデモ動画や回路図などの製作記事はここ

【追加(改善)したプロジェクト】
yurikago_LF1705.x
yurikago_LF1822.x
yurikago_LF1840.x
yurikago_LF18326.x
yurikago_PIC1572.x
yurikago_PIC1705.x
yurikago_PIC1822.x
yurikago_PIC1825.x
yurikago_PIC1840.x
yurikago_PIC18313.x
yurikago_PIC18325.x
yurikago_PIC18326.x

なお、yurikagoLED_**** のプロジェクトは割愛した。
  1. 2018/12/19(水) 07:43:48|
  2. 電子オルゴール+音声再生
  3. | コメント:1

PIC電子オルゴールで16F1503と12F1501のサンプルプロジェクトを追加

PIC電子オルゴールテストベンチ

【前振り】
PIC電子オルゴールで大容量SPIフラッシュをサポートしたことで、今後はオルゴール演奏しないPIC電子オルゴールの応用が進むと思う。

おもちゃでの音楽演奏は音声再生が使われているが、音声再生はメモリが嵩張るため汎用の部品で換装するとコスト高になってしまう。そこで、メモリが少なくて済むオルゴール演奏で代替すると言うのが元々の発想だった。ところが、近頃は大容量SPIフラッシュメモリが廉価に入手でき、本来の音声再生で換装することができるようになって、もはやオルゴール演奏で代替する必要が無くなった。

オルゴール演奏は音符データから演奏音の波形を生成するのにCPUを大喰いするので、PIC電子オルゴールはFoscが32MHz以上のデバイスをターゲットにしていた。しかし、音声再生はCPU負荷が軽いので16MHzのデバイスでも実行が可能である。

それで、より廉価な16F1503(@80円2018年秋月)でPIC電子オルゴールのサンプルプロジェクトを作った。なお、オルゴール演奏はできない。ついでに弟の12F1501のサンプルも作った。

【設計】
Foscが16MHzなので、PWM分解能が10ビットではPWM周期が64usになってしまう。それで、PWM分解能を9ビットにしてPWM周期を32usにする。PR2には128を設定して、PWMデューティレジスタ上位と下位には8ビットPCMデータを上位7ビットと下位1ビットに分けて設定する。

問題はデバイス個別の処理をどのようにインプリメントするかだ。orgelエンジンにはデバイス個別の処理を書くべきではない。そこで、orgelエンジンでは8ビットPCMデータをPWMデューティレジスタにそのまま設定し、TMR2割り込み処理のコールバック関数で1ビット右シフトをすることにした。それで、orgelエンジンは普遍的な処理のみに留めることができる。

16F1503にはPPS機能が無いので、MSSPモジュールのピン割当てを既存のテストベンチに合わせることができず、SPI通信はソフト実装とした。それでも音声再生でアンダーランは発生していない。

とはいえ、16F1503の内部プルアップ機能はポートAにしかないため、ポートAはアプリケーションで使用できるように残しておきたいこともある。それで、内蔵SPIモジュールを使用することも、#defineの宣言を変更することで可能とする。

【接続図】
既存のテストベンチの接続図を示す。16F1503の記載がないが、ピン割当てを共通にしている。

PIC電子オルゴールVer5_7で大容量SPIフラッシュメモリ(W25Q64)をサポート接続図
PWM出力は正論理がRC3、負論理がRC5に出る。
オートパワーオフ後のWakeUpトリガはRA3の立下りになっている。

【ダウンロード】
設計資料と開発プロジェクトは ここから ダウンロードできる。

追加したサンプルプロジェクトは以下である。
orgel5_7\onsei_PIC1503_SPI.X
orgel5_7\onsei_PIC1501_SPI.X

16F1503で内蔵SPIモジュールを使用する場合は #define SPI_SOFT を無効にする。
  1. 2018/12/08(土) 15:51:09|
  2. 電子オルゴール+音声再生
  3. | コメント:0

プロフィール

大泉茂幸

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

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

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

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

カテゴリ

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

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

QRコード

QR